diff --git a/misc/2.5d/addons/node25d/main_screen/gizmo_25d.gd b/misc/2.5d/addons/node25d/main_screen/gizmo_25d.gd index b58253e7..5c5a2380 100644 --- a/misc/2.5d/addons/node25d/main_screen/gizmo_25d.gd +++ b/misc/2.5d/addons/node25d/main_screen/gizmo_25d.gd @@ -22,11 +22,12 @@ var dominant_axis @onready var lines_root = $Lines @onready var lines = [$Lines/X, $Lines/Y, $Lines/Z] + func _process(_delta): if not lines: - return # Somehow this node hasn't been set up yet. + return # Somehow this node hasn't been set up yet. if not node_25d: - return # We're most likely viewing the Gizmo25D scene. + return # We're most likely viewing the Gizmo25D scene. # While getting the mouse position works in any viewport, it doesn't do # anything significant unless the mouse is in the 2.5D viewport. var mouse_position = get_local_mouse_position() @@ -35,7 +36,7 @@ func _process(_delta): var closest_distance = 20.0 dominant_axis = -1 for i in range(3): - lines[i].modulate.a = 0.8 # Unrelated, but needs a loop too. + lines[i].modulate.a = 0.8 # Unrelated, but needs a loop too. var distance = _distance_to_segment_at_index(i, mouse_position) if distance < closest_distance: closest_distance = distance @@ -70,7 +71,9 @@ func _process(_delta): # Make sure the gizmo is located at the object. global_position = node_25d.global_position if ROUGHLY_ROUND_TO_PIXELS: - spatial_node.transform.origin = (spatial_node.transform.origin * Node25D.SCALE).round() / Node25D.SCALE + spatial_node.transform.origin = ( + (spatial_node.transform.origin * Node25D.SCALE).round() / Node25D.SCALE + ) # Move the gizmo lines appropriately. lines_root.global_position = node_25d.global_position node_25d.property_list_changed_notify() diff --git a/misc/2.5d/addons/node25d/main_screen/main_screen_25d.tscn b/misc/2.5d/addons/node25d/main_screen/main_screen_25d.tscn index 4901146d..28e2c9f6 100644 --- a/misc/2.5d/addons/node25d/main_screen/main_screen_25d.tscn +++ b/misc/2.5d/addons/node25d/main_screen/main_screen_25d.tscn @@ -1,173 +1,114 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://d3xt5cbt06bfy"] -[ext_resource path="res://addons/node25d/main_screen/viewport_25d.gd" type="Script" id=1] -[ext_resource path="res://addons/node25d/main_screen/view_mode_button_group.tres" type="ButtonGroup" id=2] +[ext_resource type="Script" path="res://addons/node25d/main_screen/viewport_25d.gd" id="1"] +[ext_resource type="ButtonGroup" path="res://addons/node25d/main_screen/view_mode_button_group.tres" id="2"] -[sub_resource type="ViewportTexture" id=1] +[sub_resource type="ViewportTexture" id="1"] viewport_path = NodePath("Viewport25D/Viewport2D") -[sub_resource type="ViewportTexture" id=2] +[sub_resource type="ViewportTexture" id="2"] viewport_path = NodePath("Viewport25D/ViewportOverlay") [node name="MainScreen25D" type="VBoxContainer"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 size_flags_horizontal = 3 size_flags_vertical = 3 -__meta__ = { -"_edit_use_anchors_": false -} [node name="TopBar" type="HBoxContainer" parent="."] -offset_right = 1600.0 -offset_bottom = 32.0 -rect_min_size = Vector2(0, 32) +layout_mode = 2 size_flags_horizontal = 3 [node name="ViewModeButtons" type="HBoxContainer" parent="TopBar"] -offset_right = 798.0 -offset_bottom = 32.0 +layout_mode = 2 size_flags_horizontal = 3 [node name="45Degree" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_right = 94.0 -offset_bottom = 32.0 -pressed = true -group = ExtResource( 2 ) +layout_mode = 2 +button_pressed = true +button_group = ExtResource("2") text = "45 Degree" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Isometric" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_left = 98.0 -offset_right = 188.0 -offset_bottom = 32.0 -group = ExtResource( 2 ) +layout_mode = 2 +button_group = ExtResource("2") text = "Isometric" -__meta__ = { -"_edit_use_anchors_": false -} [node name="TopDown" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_left = 192.0 -offset_right = 283.0 -offset_bottom = 32.0 -group = ExtResource( 2 ) +layout_mode = 2 +button_group = ExtResource("2") text = "Top Down" -__meta__ = { -"_edit_use_anchors_": false -} [node name="FrontSide" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_left = 287.0 -offset_right = 379.0 -offset_bottom = 32.0 -group = ExtResource( 2 ) +layout_mode = 2 +button_group = ExtResource("2") text = "Front Side" -__meta__ = { -"_edit_use_anchors_": false -} [node name="ObliqueY" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_left = 383.0 -offset_right = 473.0 -offset_bottom = 32.0 -group = ExtResource( 2 ) +layout_mode = 2 +button_group = ExtResource("2") text = "Oblique Y" -__meta__ = { -"_edit_use_anchors_": false -} [node name="ObliqueZ" type="CheckBox" parent="TopBar/ViewModeButtons"] -offset_left = 477.0 -offset_right = 568.0 -offset_bottom = 32.0 -group = ExtResource( 2 ) +layout_mode = 2 +button_group = ExtResource("2") text = "Oblique Z" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Zoom" type="HBoxContainer" parent="TopBar"] -offset_left = 802.0 -offset_right = 1600.0 -offset_bottom = 32.0 +layout_mode = 2 size_flags_horizontal = 3 alignment = 2 [node name="ZoomOut" type="Button" parent="TopBar/Zoom"] -offset_left = 680.0 -offset_right = 710.0 -offset_bottom = 32.0 -rect_min_size = Vector2(30, 0) +layout_mode = 2 text = "-" [node name="ZoomPercent" type="Label" parent="TopBar/Zoom"] -offset_left = 714.0 -offset_top = 9.0 -offset_right = 764.0 -offset_bottom = 23.0 -rect_min_size = Vector2(50, 0) +layout_mode = 2 text = "100%" -align = 1 +horizontal_alignment = 1 clip_text = true [node name="ZoomReset" type="Button" parent="TopBar/Zoom/ZoomPercent"] modulate = Color(1, 1, 1, 0) +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ZoomIn" type="Button" parent="TopBar/Zoom"] -offset_left = 768.0 -offset_right = 798.0 -offset_bottom = 32.0 -rect_min_size = Vector2(30, 0) +layout_mode = 2 text = "+" [node name="Viewport25D" type="ColorRect" parent="."] -offset_top = 36.0 -offset_right = 1600.0 -offset_bottom = 900.0 -rect_clip_content = true +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 color = Color(0.301961, 0.301961, 0.301961, 1) -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Viewport2D" type="SubViewport" parent="Viewport25D"] -size = Vector2(1600, 864) -transparent_bg = true disable_3d = true -usage = 1 -render_target_v_flip = true +transparent_bg = true +size = Vector2i(1600, 864) [node name="ViewportOverlay" type="SubViewport" parent="Viewport25D"] -size = Vector2(1600, 864) -transparent_bg = true disable_3d = true -usage = 1 -render_target_v_flip = true +transparent_bg = true +size = Vector2i(1600, 864) [node name="ViewportTexture" type="TextureRect" parent="Viewport25D"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 -texture = SubResource( 1 ) -expand = true -__meta__ = { -"_edit_use_anchors_": false -} +texture = SubResource("1") +expand_mode = 1 [node name="Overlay" type="TextureRect" parent="Viewport25D/ViewportTexture"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 -texture = SubResource( 2 ) -__meta__ = { -"_edit_use_anchors_": false -} +texture = SubResource("2") [connection signal="pressed" from="TopBar/Zoom/ZoomOut" to="Viewport25D" method="_on_ZoomOut_pressed"] [connection signal="pressed" from="TopBar/Zoom/ZoomPercent/ZoomReset" to="Viewport25D" method="_on_ZoomReset_pressed"] diff --git a/misc/2.5d/addons/node25d/main_screen/viewport_25d.gd b/misc/2.5d/addons/node25d/main_screen/viewport_25d.gd index 8ec16165..0697fc7a 100644 --- a/misc/2.5d/addons/node25d/main_screen/viewport_25d.gd +++ b/misc/2.5d/addons/node25d/main_screen/viewport_25d.gd @@ -7,15 +7,16 @@ var pan_center: Vector2 var viewport_center: Vector2 var view_mode_index := 0 -var editor_interface: EditorInterface # Set in node25d_plugin.gd +var editor_interface: EditorInterface # Set in node25d_plugin.gd var moving = false @onready var viewport_2d = $Viewport2D @onready var viewport_overlay = $ViewportOverlay -@onready var view_mode_button_group: ButtonGroup = $"../TopBar/ViewModeButtons/45Degree".group +@onready var view_mode_button_group: ButtonGroup = $"../TopBar/ViewModeButtons/45Degree".button_group @onready var zoom_label: Label = $"../TopBar/Zoom/ZoomPercent" @onready var gizmo_25d_scene = preload("res://addons/node25d/main_screen/gizmo_25d.tscn") + func _ready(): # Give Godot a chance to fully load the scene. Should take two frames. await get_tree().process_frame @@ -29,17 +30,19 @@ func _ready(): # Alright, we're loaded up. Now check if we have a valid world and assign it. var world_2d = edited_scene_root.get_viewport().world_2d if world_2d == get_viewport().world_2d: - return # This is the MainScreen25D scene opened in the editor! + return # This is the MainScreen25D scene opened in the editor! viewport_2d.world_2d = world_2d -func _process(delta): - if not editor_interface: # Something's not right... bail! +func _process(_delta): + if not editor_interface: # Something's not right... bail! return # View mode polling. var view_mode_changed_this_frame = false - var new_view_mode = view_mode_button_group.get_pressed_button().get_index() + var new_view_mode = -1 + if view_mode_button_group.get_pressed_button(): + new_view_mode = view_mode_button_group.get_pressed_button().get_index() if view_mode_index != new_view_mode: view_mode_index = new_view_mode view_mode_changed_this_frame = true @@ -123,14 +126,15 @@ func _gui_input(event): func _recursive_change_view_mode(current_node): - if current_node.has_method("set_view_mode"): - current_node.set_view_mode(view_mode_index) - for child in current_node.get_children(): - _recursive_change_view_mode(child) + if current_node: + if current_node.has_method("set_view_mode"): + current_node.set_view_mode(view_mode_index) + for child in current_node.get_children(): + _recursive_change_view_mode(child) func _get_zoom_amount(): - var zoom_amount = pow(1.05476607648, zoom_level) # 13th root of 2 + var zoom_amount = pow(1.05476607648, zoom_level) # 13th root of 2 zoom_label.text = str(round(zoom_amount * 1000) / 10) + "%" return zoom_amount diff --git a/misc/2.5d/addons/node25d/node25d_plugin.gd b/misc/2.5d/addons/node25d/node25d_plugin.gd index a9aaad21..e5c8ee6e 100644 --- a/misc/2.5d/addons/node25d/node25d_plugin.gd +++ b/misc/2.5d/addons/node25d/node25d_plugin.gd @@ -5,43 +5,53 @@ const MainPanel = preload("res://addons/node25d/main_screen/main_screen_25d.tscn var main_panel_instance + func _enter_tree(): main_panel_instance = MainPanel.instantiate() main_panel_instance.get_child(1).editor_interface = get_editor_interface() # Add the main panel to the editor's main viewport. - get_editor_interface().get_editor_viewport().add_child(main_panel_instance) + EditorInterface.get_editor_main_screen().add_child(main_panel_instance) # Hide the main panel. - make_visible(false) + _make_visible(false) # When this plugin node enters tree, add the custom types. add_custom_type("Node25D", "Node2D", preload("node_25d.gd"), preload("icons/node_25d_icon.png")) - add_custom_type("YSort25D", "Node", preload("y_sort_25d.gd"), preload("icons/y_sort_25d_icon.png")) - add_custom_type("ShadowMath25D", "CharacterBody3D", preload("shadow_math_25d.gd"), preload("icons/shadow_math_25d_icon.png")) + add_custom_type( + "YSort25D", "Node", preload("y_sort_25d.gd"), preload("icons/y_sort_25d_icon.png") + ) + add_custom_type( + "ShadowMath25D", + "CharacterBody3D", + preload("shadow_math_25d.gd"), + preload("icons/shadow_math_25d_icon.png") + ) func _exit_tree(): - main_panel_instance.queue_free() + if main_panel_instance: + main_panel_instance.queue_free() # When the plugin node exits the tree, remove the custom types. remove_custom_type("ShadowMath25D") remove_custom_type("YSort25D") remove_custom_type("Node25D") -func has_main_screen(): +func _has_main_screen(): return true -func make_visible(visible): - if visible: - main_panel_instance.show() - else: - main_panel_instance.hide() +func _make_visible(visible): + if main_panel_instance: + if visible: + main_panel_instance.show() + else: + main_panel_instance.hide() -func get_plugin_name(): +func _get_plugin_name(): return "2.5D" -func get_plugin_icon(): +func _get_plugin_icon(): return preload("res://addons/node25d/icons/viewport_25d.svg") diff --git a/misc/2.5d/project.godot b/misc/2.5d/project.godot index 7e638e3c..61690e83 100644 --- a/misc/2.5d/project.godot +++ b/misc/2.5d/project.godot @@ -16,7 +16,7 @@ in Godot by mixing 2D and 3D nodes. It also adds a 2.5D editor viewport for easily editing 2.5D levels." config/tags=PackedStringArray("2d", "demo", "official") run/main_scene="res://assets/demo_scene.tscn" -config/features=PackedStringArray("4.2") +config/features=PackedStringArray("4.3") config/icon="res://icon.webp" [display] @@ -34,120 +34,120 @@ enabled=PackedStringArray("res://addons/node25d/plugin.cfg") move_right={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } movement_modifier={ "deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } jump={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } reset_position={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } forty_five_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } isometric_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } top_down_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } front_side_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } oblique_y_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } oblique_z_mode={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":5,"pressure":0.0,"pressed":false,"script":null) ] } toggle_isometric_controls={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":8,"pressure":0.0,"pressed":false,"script":null) ] } toggle_control_hints={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":10,"pressure":0.0,"pressed":false,"script":null) ] } move_clockwise={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } move_counterclockwise={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } view_cube_demo={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ "deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] }