Skip to content

Commit

Permalink
compatibility change
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMoonThatRises committed Jan 28, 2025
1 parent 05db81f commit 3d01ea9
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
16 changes: 8 additions & 8 deletions PlayTools/Controls/ActionDispatcher.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,32 +54,32 @@ public class ActionDispatcher {
// in future, keymap format will be upgraded.
// PlayTools would maintain limited backwards compatibility.
// Meanwhile, keymap format upgrade would be rare.
if !keymap.keymapData.version.hasPrefix(keymapVersion) {
if !keymap.getCurrentKeymap().version.hasPrefix(keymapVersion) {
DispatchQueue.main.asyncAfter(
deadline: .now() + .seconds(5)) {
Toast.showHint(title: "Keymap format too new",
text: ["Current keymap version \(keymap.keymapData.version)" +
text: ["Current keymap version \(keymap.getCurrentKeymap().version)" +
" is too new and cannot be recognized\n" +
"For protection of your data, keymap is not loaded\n" +
"Please upgrade PlayCover, " +
"For protection of your data, keymap is not loaded\n" +
"Please upgrade PlayCover, " +
"or import an older version of keymap (requires \(keymapVersion)x"])
}
return
}

for button in keymap.keymapData.buttonModels {
for button in keymap.getCurrentKeymap().buttonModels {
actions.append(ButtonAction(data: button))
}

for draggableButton in keymap.keymapData.draggableButtonModels {
for draggableButton in keymap.getCurrentKeymap().draggableButtonModels {
actions.append(DraggableButtonAction(data: draggableButton))
}

for mouse in keymap.keymapData.mouseAreaModel {
for mouse in keymap.getCurrentKeymap().mouseAreaModel {
actions.append(CameraAction(data: mouse))
}

for joystick in keymap.keymapData.joystickModel {
for joystick in keymap.getCurrentKeymap().joystickModel {
// Left Thumbstick, Right Thumbstick, Mouse
if JoystickModel.isAnalog(joystick) {
actions.append(ContinuousJoystickAction(data: joystick))
Expand Down
10 changes: 5 additions & 5 deletions PlayTools/Editor/Controllers/EditorController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -96,20 +96,20 @@ class EditorController {
}

func showButtons() {
for button in keymap.getKeymap().draggableButtonModels {
for button in keymap.getCurrentKeymap().draggableButtonModels {
let ctrl = DraggableButtonModel(data: button)
addControlToView(control: ctrl)
}
for joystick in keymap.getKeymap().joystickModel {
for joystick in keymap.getCurrentKeymap().joystickModel {
let ctrl = JoystickModel(data: joystick)
addControlToView(control: ctrl)
}
for mouse in keymap.getKeymap().mouseAreaModel {
for mouse in keymap.getCurrentKeymap().mouseAreaModel {
let ctrl =
MouseAreaModel(data: mouse)
addControlToView(control: ctrl)
}
for button in keymap.getKeymap().buttonModels {
for button in keymap.getCurrentKeymap().buttonModels {
let ctrl = ButtonModel(data: button)
addControlToView(control: ctrl)
}
Expand All @@ -132,7 +132,7 @@ class EditorController {
break
}
}
keymap.setKeymap(map: keymapData)
keymap.setCurrentKeymap(map: keymapData)
controls = []
view.subviews.forEach { $0.removeFromSuperview() }
}
Expand Down
18 changes: 14 additions & 4 deletions PlayTools/Keymap/Keymapping.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class Keymapping {
keymapConfig = try PropertyListDecoder().decode(KeymapConfig.self, from: data)
} catch {
print("[PlayTools] Failed to decode config url.\n%@")
keymapConfig = KeymapConfig(defaultKm: "default", aspectRatio: "auto")
keymapConfig = KeymapConfig(defaultKm: "default")
resetConfig()
}

Expand All @@ -57,7 +57,10 @@ class Keymapping {
reloadKeymapCache()

currentKeymap = getKeymap(name: keymapConfig.defaultKm)
keymapIdx = keymapURLs.index(forKey: keymapConfig.defaultKm).

if let defaultKmIdx = keymapURLs.keys.firstIndex(of: keymapConfig.defaultKm) {
keymapIdx = keymapURLs.distance(from: keymapURLs.startIndex, to: defaultKmIdx)
}
}

public func reloadKeymapCache() {
Expand Down Expand Up @@ -98,6 +101,10 @@ class Keymapping {
}
}

public func getCurrentKeymap() -> KeymappingData {
return getKeymap(name: Array(keymapURLs.keys)[keymapIdx])
}

public func setKeymap(name: String, map: KeymappingData) {
let encoder = PropertyListEncoder()
encoder.outputFormat = .xml
Expand All @@ -120,6 +127,10 @@ class Keymapping {
}
}

public func setCurrentKeymap(map: KeymappingData) {
setKeymap(name: Array(keymapURLs.keys)[keymapIdx], map: map)
}

@discardableResult
public func reset(name: String) -> KeymappingData {
setKeymap(name: name, map: KeymappingData(bundleIdentifier: bundleIdentifier))
Expand All @@ -135,7 +146,7 @@ class Keymapping {
return resetConfig()
}

keymapConfig = KeymapConfig(defaultKm: defaultKm, aspectRatio: "auto")
keymapConfig = KeymapConfig(defaultKm: defaultKm)

return keymapConfig
}
Expand All @@ -153,5 +164,4 @@ struct KeymappingData: Codable {

struct KeymapConfig: Codable {
var defaultKm: String
var aspectRatio: String
}

0 comments on commit 3d01ea9

Please sign in to comment.