From 129ff8818a7e5aa7b2d4964643918a8532910a24 Mon Sep 17 00:00:00 2001 From: Yogi Wiguna Date: Thu, 26 Feb 2026 11:48:40 +0800 Subject: [PATCH] feat: Implement initial main scene with player input management and touch controls, including new graphics assets. --- assets/graphics/touch_control/grab_tekton.png | Bin 0 -> 36446 bytes .../touch_control/grab_tekton.png.import | 40 +++++++++++ .../graphics/touch_control/knock_tekton.png | Bin 0 -> 39150 bytes .../touch_control/knock_tekton.png.import | 40 +++++++++++ scenes/main.tscn | 29 ++++++-- scripts/managers/player_input_manager.gd | 15 ++-- scripts/managers/touch_controls.gd | 66 +++++++++++++----- 7 files changed, 162 insertions(+), 28 deletions(-) create mode 100644 assets/graphics/touch_control/grab_tekton.png create mode 100644 assets/graphics/touch_control/grab_tekton.png.import create mode 100644 assets/graphics/touch_control/knock_tekton.png create mode 100644 assets/graphics/touch_control/knock_tekton.png.import diff --git a/assets/graphics/touch_control/grab_tekton.png b/assets/graphics/touch_control/grab_tekton.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ff7c5ea678410e562aab22b6c5d9a3fa0d66d3 GIT binary patch literal 36446 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 z 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 oSTG~qERl`G-5W^$NS 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 literal 0 HcmV?d00001 diff --git a/assets/graphics/touch_control/knock_tekton.png.import b/assets/graphics/touch_control/knock_tekton.png.import new file mode 100644 index 0000000..306bfda --- /dev/null +++ b/assets/graphics/touch_control/knock_tekton.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdwk17moidkj2" +path="res://.godot/imported/knock_tekton.png-276cbbff0409c6bfcebf7936bc616b79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/touch_control/knock_tekton.png" +dest_files=["res://.godot/imported/knock_tekton.png-276cbbff0409c6bfcebf7936bc616b79.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/main.tscn b/scenes/main.tscn index 2a52815..8048ea6 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -32,6 +32,8 @@ [ext_resource type="Texture2D" uid="uid://3up2su2e0lfa" path="res://assets/graphics/touch_control/freeze_area.png" id="28_fv21b"] [ext_resource type="Texture2D" uid="uid://ckhdyxnho6sjp" path="res://assets/graphics/touch_control/spawn_tile.png" id="28_j8jky"] [ext_resource type="Texture2D" uid="uid://b2vhatfmufn3d" path="res://assets/graphics/touch_control/ghost.png" id="33_5q0nq"] +[ext_resource type="Texture2D" uid="uid://cdwk17moidkj2" path="res://assets/graphics/touch_control/knock_tekton.png" id="35_fuf3a"] +[ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="36_pibwh"] [ext_resource type="Script" uid="uid://86ikh0wuqk7v" path="res://scripts/ui/powerup_inventory_ui.gd" id="powerup_ui_script"] [ext_resource type="Script" uid="uid://b54tfa0n6kogi" path="res://scripts/managers/touch_controls.gd" id="touch_manager"] [ext_resource type="Script" uid="uid://djiml4sh61dc1" path="res://scripts/ui/virtual_joystick.gd" id="virtual_joystick"] @@ -1066,6 +1068,7 @@ theme_override_font_sizes/font_size = 32 text = "X0" [node name="StopTimer" type="PanelContainer" parent="." unique_id=991540081] +visible = false anchors_preset = 5 anchor_left = 0.5 anchor_right = 0.5 @@ -9768,10 +9771,10 @@ script = ExtResource("virtual_joystick") [node name="ActionsBtn" type="VBoxContainer" parent="TouchControls/TouchControls" unique_id=278736451] layout_mode = 0 -offset_left = 48.0 -offset_top = 106.00001 -offset_right = 119.80914 -offset_bottom = 309.7852 +offset_left = 48.000004 +offset_top = 82.00001 +offset_right = 114.71878 +offset_bottom = 350.68915 rotation = -0.10297442 theme_override_constants/separation = 15 @@ -9805,6 +9808,24 @@ flat = true icon_alignment = 1 expand_icon = true +[node name="TektonKnockBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=2133168886] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +icon = ExtResource("35_fuf3a") +flat = true +icon_alignment = 1 +expand_icon = true + +[node name="TektonThrowBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=2097928368] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +icon = ExtResource("36_pibwh") +flat = true +icon_alignment = 1 +expand_icon = true + [node name="GrabBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=914810452] visible = false layout_mode = 2 diff --git a/scripts/managers/player_input_manager.gd b/scripts/managers/player_input_manager.gd index f8584f6..00fc3d6 100644 --- a/scripts/managers/player_input_manager.gd +++ b/scripts/managers/player_input_manager.gd @@ -131,14 +131,19 @@ func handle_unhandled_input(event): player.powerup_manager.use_special_effect() KEY_G: if player.is_carrying_tekton: - player.throw_tekton() + if player.powerup_manager and player.powerup_manager.can_use_special(): + player.throw_tekton() + player.powerup_manager.reset_boost() else: player.grab_tekton() KEY_B: - if player.has_method("enter_knock_mode"): - player.enter_knock_mode() - else: - player.knock_tekton() + if player.powerup_manager and player.powerup_manager.can_use_special(): + if player.has_method("enter_knock_mode"): + player.enter_knock_mode() + player.powerup_manager.reset_boost() + else: + player.knock_tekton() + player.powerup_manager.reset_boost() # Handle spawn point selection if not yet selected diff --git a/scripts/managers/touch_controls.gd b/scripts/managers/touch_controls.gd index b713d4a..2066d50 100644 --- a/scripts/managers/touch_controls.gd +++ b/scripts/managers/touch_controls.gd @@ -14,6 +14,8 @@ var put_button: Button var attack_mode_button: Button # Renamed from special_button var spawn_boost_button: Button var settings_button: Button +var tekton_knock_button: Button +var tekton_throw_button: Button # Settings - persisted to config file const CONFIG_PATH = "user://touch_controls_settings.cfg" @@ -131,10 +133,15 @@ func _create_touch_ui(): grab_button = _find_or_create_action_button(actions_container, "Grab", "👋", button_positions.grab) put_button = _find_or_create_action_button(actions_container, "Put", "📦", button_positions.put) + tekton_knock_button = _find_or_create_action_button(actions_container, "TektonKnock", "👊", Vector2(-280, -160)) + tekton_throw_button = _find_or_create_action_button(actions_container, "TektonThrow", "🎯", Vector2(-280, -80)) + # Order: AttackMode, SpawnBoost, Grab if attack_mode_button: actions_container.move_child(attack_mode_button, 0) if spawn_boost_button: actions_container.move_child(spawn_boost_button, 1) if grab_button: actions_container.move_child(grab_button, 2) + if tekton_knock_button: actions_container.move_child(tekton_knock_button, 3) + if tekton_throw_button: actions_container.move_child(tekton_throw_button, 4) # Hide Put Button if put_button: @@ -252,15 +259,24 @@ func _ensure_shortcut_label(btn: Button, button_name: String): "Put": existing_lbl.text = "" "AttackMode": existing_lbl.text = "Q" if is_sng else "" "SpawnBoost": existing_lbl.text = "E" if is_sng else "" + "TektonKnock": existing_lbl.text = "B" + "TektonThrow": existing_lbl.text = "G" + + # Ensure correct placement (Top Right) + existing_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT + existing_lbl.vertical_alignment = VERTICAL_ALIGNMENT_TOP + existing_lbl.offset_top = -5 # Closer to top + existing_lbl.offset_right = 0 # Aligned with right edge return # Add Keyboard Shortcut Label var shortcut_lbl = Label.new() shortcut_lbl.name = "ShortcutLabel" shortcut_lbl.set_anchors_preset(Control.PRESET_FULL_RECT) - shortcut_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER - shortcut_lbl.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM - shortcut_lbl.offset_bottom = 20 # Below button + shortcut_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT + shortcut_lbl.vertical_alignment = VERTICAL_ALIGNMENT_TOP + shortcut_lbl.offset_top = -5 # Closer to top + shortcut_lbl.offset_right = 0 # Aligned with right edge shortcut_lbl.add_theme_font_size_override("font_size", 16) shortcut_lbl.add_theme_color_override("font_outline_color", Color.BLACK) shortcut_lbl.add_theme_constant_override("outline_size", 4) @@ -270,6 +286,8 @@ func _ensure_shortcut_label(btn: Button, button_name: String): "Put": shortcut_lbl.text = "" # Disabled shortcut "AttackMode": shortcut_lbl.text = "Q" "SpawnBoost": shortcut_lbl.text = "E" + "TektonKnock": shortcut_lbl.text = "B" + "TektonThrow": shortcut_lbl.text = "G" btn.add_child(shortcut_lbl) @@ -289,6 +307,8 @@ func _on_button_pressed(button_name: String): "Put": btn = put_button "AttackMode": btn = attack_mode_button "SpawnBoost": btn = spawn_boost_button + "TektonKnock": btn = tekton_knock_button + "TektonThrow": btn = tekton_throw_button if btn: var tween = create_tween() @@ -305,11 +325,9 @@ func _on_button_pressed(button_name: String): if local_player.has_method("auto_put_item"): local_player.auto_put_item() "AttackMode": - emit_signal("attack_mode_pressed") # Also special? - # emit_signal("special_pressed") # Keep legacy signal? + emit_signal("attack_mode_pressed") var powerup_mgr = local_player.get_node_or_null("PowerUpManager") if powerup_mgr: - # Require Full Boost to Activate (User Request: "Connect to boost bar") var can_use = powerup_mgr.can_use_special() var boost_val = powerup_mgr.current_boost print("[TouchControls] AttackMode Pressed. Boost: %s, CanUse: %s" % [boost_val, can_use]) @@ -317,24 +335,30 @@ func _on_button_pressed(button_name: String): if can_use: powerup_mgr.use_special_effect() # Sets is_attack_mode=true else: - # Optional feedback for not ready? pass else: print("[TouchControls] PowerUpManager missing on player") "SpawnBoost": var powerup_mgr = local_player.get_node_or_null("PowerUpManager") - if powerup_mgr: - var can_use = powerup_mgr.can_use_special() - var boost_val = powerup_mgr.current_boost - print("[TouchControls] SpawnBoost Pressed. Boost: %s, CanUse: %s" % [boost_val, can_use]) - - if can_use: # Check if boost is full - # Same usage logic, but specific action - if local_player.special_tiles_manager and local_player.special_tiles_manager.has_method("spawn_powerups_around"): - local_player.special_tiles_manager.spawn_powerups_around(local_player.current_position) - powerup_mgr.reset_boost() # Consume the boost manually - else: - print("[TouchControls] PowerUpManager missing on player") + if powerup_mgr and powerup_mgr.can_use_special(): + if local_player.special_tiles_manager and local_player.special_tiles_manager.has_method("spawn_powerups_around"): + local_player.special_tiles_manager.spawn_powerups_around(local_player.current_position) + powerup_mgr.reset_boost() + "TektonKnock": + var powerup_mgr = local_player.get_node_or_null("PowerUpManager") + if powerup_mgr and powerup_mgr.can_use_special(): + if local_player.has_method("enter_knock_mode"): + local_player.enter_knock_mode() + powerup_mgr.reset_boost() + elif local_player.has_method("knock_tekton"): + local_player.knock_tekton() + powerup_mgr.reset_boost() + "TektonThrow": + var powerup_mgr = local_player.get_node_or_null("PowerUpManager") + if powerup_mgr and powerup_mgr.can_use_special(): + if local_player.has_method("throw_tekton"): + local_player.throw_tekton() + powerup_mgr.reset_boost() func _on_button_released(button_name: String): var btn: Button @@ -343,6 +367,8 @@ func _on_button_released(button_name: String): "Put": btn = put_button "AttackMode": btn = attack_mode_button "SpawnBoost": btn = spawn_boost_button + "TektonKnock": btn = tekton_knock_button + "TektonThrow": btn = tekton_throw_button if btn: var tween = create_tween() @@ -512,6 +538,8 @@ func _on_boost_points_changed(current_points: int, max_points: int): _update_boost_button_state(attack_mode_button, is_full) _update_boost_button_state(spawn_boost_button, is_full) + _update_boost_button_state(tekton_knock_button, is_full) + _update_boost_button_state(tekton_throw_button, is_full) func _update_boost_button_state(btn: Button, is_enabled: bool): if not btn: return