refactor static methods

This commit is contained in:
Teatov 2025-08-03 03:49:32 +10:00
parent 8df1181be3
commit 532505c812
6 changed files with 25 additions and 25 deletions

View File

@ -57,17 +57,6 @@ var _requested_keys_limit: int = 0
#endregion
#region static
static func get_rotated_key_pos(
key_pos: Vector3, pivot: Vector2, angle: float
) -> Vector3:
var pivot_pos := Vector3(pivot.x, 0, pivot.y)
return (key_pos - pivot_pos).rotated(Vector3.UP, angle) + pivot_pos
#endregion
#region builtins
func _ready() -> void:
if Engine.is_editor_hint():
@ -249,7 +238,7 @@ func _iterate_row(
)
key_pos.z += key_props.y * key_size
key_pos = get_rotated_key_pos(key_pos, pivot, angle)
key_pos = KeyHelper.get_rotated_key_pos(key_pos, pivot, angle)
iter_function.call(key_props, key_pos, angle, current_keys)
@ -295,7 +284,7 @@ func _get_scale_with_gaps(key_scale: float) -> float:
func _generate_editor_keys() -> void:
_delete_editor_keys()
_iterate_keys(_generate_key, AbstractLayout.get_layout_rows(LayoutANSI.new()))
_iterate_keys(_generate_key, LayoutANSI.new().get_key_props_rows())
func _delete_editor_keys() -> void:

View File

@ -65,7 +65,7 @@ func _set_defaults() -> void:
func _set_layout(layout: AbstractLayout) -> void:
print("SETTING LAYOUT: '%s'" % layout.get_name())
current_layout = layout
layout_rows = AbstractLayout.get_layout_rows(current_layout)
layout_rows = current_layout.get_key_props_rows()
func _load_config() -> Error:

View File

@ -49,3 +49,10 @@ const ADJACENCY_MAP: Dictionary[Key, Array] = {
KEY_PERIOD: [KEY_L, KEY_SEMICOLON, KEY_SLASH, KEY_COMMA],
KEY_SLASH: [KEY_SEMICOLON, KEY_APOSTROPHE, KEY_PERIOD],
}
static func get_rotated_key_pos(
key_pos: Vector3, pivot: Vector2, angle: float
) -> Vector3:
var pivot_pos := Vector3(pivot.x, 0, pivot.y)
return (key_pos - pivot_pos).rotated(Vector3.UP, angle) + pivot_pos

View File

@ -54,6 +54,10 @@ func is_unicode() -> bool:
return OS.is_keycode_unicode(physical_keycode)
func is_viable_player_pos_key() -> bool:
return KeyHelper.ADJACENCY_MAP.has(physical_keycode)
func has_secondary_rect() -> bool:
return width2 != 1 or height2 != 1 or x2 != 0 or y2 != 0

View File

@ -1,19 +1,19 @@
class_name AbstractLayout
static func get_layout_rows(layout: AbstractLayout) -> Array[Array]:
var rows: Array[Array] = []
for dict_row: Array[Dictionary] in layout.get_rows():
var row: Array[KeyProps] = []
for props_dict: Dictionary in dict_row:
row.append(KeyProps.new().props_from_dict(props_dict))
rows.append(row)
return rows
func get_name() -> String:
return ""
func get_rows() -> Array[Array]:
return []
func get_key_props_rows() -> Array[Array]:
var rows: Array[Array] = []
for dict_row: Array[Dictionary] in get_rows():
var row: Array[KeyProps] = []
for props_dict: Dictionary in dict_row:
row.append(KeyProps.new().props_from_dict(props_dict))
rows.append(row)
return rows

View File

@ -166,7 +166,7 @@ func _deserialize_row(
pos.x += data_key[X] if data_key.has(X) else 0.0
pos.y += data_key[Y] if data_key.has(Y) else 0.0
var key_pos_rotated := GameKeyboard.get_rotated_key_pos(
var key_pos_rotated := KeyHelper.get_rotated_key_pos(
Vector3(pos.x, 0, pos.y), pivot, angle
)
var key_pos_dict := {