Shortcut fix

This commit is contained in:
Rendo 2025-07-17 22:42:14 +05:00
commit fdff25d451
6 changed files with 224 additions and 39 deletions

View file

@ -1,22 +1,133 @@
[gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=6 format=3 uid="uid://ctbue7dex4umy"] [gd_resource type="Resource" script_class="AdventureLevelResource" load_steps=30 format=3 uid="uid://ctbue7dex4umy"]
[ext_resource type="Script" uid="uid://bximdujbkj2n4" path="res://addons/pvzadventure/AdventureLevelResource.cs" id="1_46lr8"] [ext_resource type="Script" uid="uid://bximdujbkj2n4" path="res://addons/pvzadventure/AdventureLevelResource.cs" id="1_46lr8"]
[ext_resource type="Script" uid="uid://cw7yc3i2lgcja" path="res://addons/pvzadventure/WaveEvent.cs" id="2_otfbt"] [ext_resource type="Script" uid="uid://cw7yc3i2lgcja" path="res://addons/pvzadventure/WaveEvent.cs" id="2_otfbt"]
[ext_resource type="Script" uid="uid://7rptlb5qr3b6" path="res://addons/pvzadventure/WaveData.cs" id="3_cugtx"] [ext_resource type="Script" uid="uid://7rptlb5qr3b6" path="res://addons/pvzadventure/WaveData.cs" id="3_cugtx"]
[ext_resource type="Script" uid="uid://dl12rj75tk2qi" path="res://addons/pvzadventure/RowSpawn.cs" id="4_y1e37"] [ext_resource type="Script" uid="uid://dl12rj75tk2qi" path="res://addons/pvzadventure/RowSpawn.cs" id="4_y1e37"]
[ext_resource type="Script" uid="uid://cqxj7o8hdm82n" path="res://scripts/resources/ZombieResource.cs" id="5_y1e37"]
[ext_resource type="Resource" uid="uid://buvacn56kyy2p" path="res://resources/zombies/basic.tres" id="6_qsvr4"]
[ext_resource type="Resource" uid="uid://nceohd32fkxk" path="res://resources/zombies/conehead.tres" id="7_qsvr4"]
[sub_resource type="Resource" id="Resource_5e1dl"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, null, null, ExtResource("6_qsvr4"), null])
[sub_resource type="Resource" id="Resource_qsvr4"] [sub_resource type="Resource" id="Resource_qsvr4"]
script = ExtResource("3_cugtx") script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([]) zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_5e1dl")])
events = Array[ExtResource("2_otfbt")]([]) events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0 customWaveDelay = 0.0
isHugeWave = false isHugeWave = false
[sub_resource type="Resource" id="Resource_y1e37"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), null, null, null])
[sub_resource type="Resource" id="Resource_otfbt"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_y1e37")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_ciic2"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), null, null, ExtResource("6_qsvr4"), null])
[sub_resource type="Resource" id="Resource_nv3y4"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_ciic2")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_1ut7p"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), null, null])
[sub_resource type="Resource" id="Resource_mt5r8"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_1ut7p")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_he3sm"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, null])
[sub_resource type="Resource" id="Resource_kugcf"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_he3sm")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_sadu8"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")])
[sub_resource type="Resource" id="Resource_p5aki"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), null, null])
[sub_resource type="Resource" id="Resource_oyvhx"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_sadu8"), SubResource("Resource_p5aki")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_vikxa"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([ExtResource("7_qsvr4"), null, null, null, ExtResource("7_qsvr4")])
[sub_resource type="Resource" id="Resource_k4k25"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_vikxa")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_gp8ns"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, null, ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), null])
[sub_resource type="Resource" id="Resource_ki4sn"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")])
[sub_resource type="Resource" id="Resource_oxbea"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_gp8ns"), SubResource("Resource_ki4sn")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 0.0
isHugeWave = false
[sub_resource type="Resource" id="Resource_2irq2"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null])
[sub_resource type="Resource" id="Resource_ipu8d"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("6_qsvr4"), ExtResource("6_qsvr4"), null, ExtResource("6_qsvr4")])
[sub_resource type="Resource" id="Resource_vu1ng"]
script = ExtResource("4_y1e37")
zombies = Array[ExtResource("5_y1e37")]([null, ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), ExtResource("7_qsvr4"), null])
[sub_resource type="Resource" id="Resource_5cdj6"]
script = ExtResource("3_cugtx")
zombiesOrdered = Array[ExtResource("4_y1e37")]([SubResource("Resource_2irq2"), SubResource("Resource_ipu8d"), SubResource("Resource_vu1ng")])
events = Array[ExtResource("2_otfbt")]([])
customWaveDelay = 20.0
isHugeWave = true
[resource] [resource]
script = ExtResource("1_46lr8") script = ExtResource("1_46lr8")
startSun = 50.0 startSun = 50.0
wavePercentage = 0.0 wavePercentage = 0.5
standardWaveDelay = 30.0 standardWaveDelay = 15.0
initialWaveDelay = 1.0 initialWaveDelay = 20.0
waves = [SubResource("Resource_qsvr4")] waves = [SubResource("Resource_qsvr4"), SubResource("Resource_otfbt"), SubResource("Resource_nv3y4"), SubResource("Resource_mt5r8"), SubResource("Resource_kugcf"), SubResource("Resource_oyvhx"), SubResource("Resource_k4k25"), SubResource("Resource_oxbea"), SubResource("Resource_5cdj6")]
initialScenes = Array[PackedScene]([null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]) initialScenes = Array[PackedScene]([null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null])

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=32 format=3 uid="uid://cfnmspei3k4p7"] [gd_scene load_steps=48 format=3 uid="uid://cfnmspei3k4p7"]
[ext_resource type="PackedScene" uid="uid://ky35veswaytr" path="res://scenes/gui/sun_counter.tscn" id="1_le3od"] [ext_resource type="PackedScene" uid="uid://ky35veswaytr" path="res://scenes/gui/sun_counter.tscn" id="1_le3od"]
[ext_resource type="Theme" uid="uid://b8l285cjcgeyi" path="res://resources/themes/GameStyle.tres" id="1_xf6ra"] [ext_resource type="Theme" uid="uid://b8l285cjcgeyi" path="res://resources/themes/GameStyle.tres" id="1_xf6ra"]
@ -6,6 +6,7 @@
[ext_resource type="Texture2D" uid="uid://bbh0uwloi87tn" path="res://assets/sprites/gui/PlantPanel.png" id="2_eg3hk"] [ext_resource type="Texture2D" uid="uid://bbh0uwloi87tn" path="res://assets/sprites/gui/PlantPanel.png" id="2_eg3hk"]
[ext_resource type="PackedScene" uid="uid://t0vpmycj6c8j" path="res://scenes/gui/shovel_button.tscn" id="3_bheea"] [ext_resource type="PackedScene" uid="uid://t0vpmycj6c8j" path="res://scenes/gui/shovel_button.tscn" id="3_bheea"]
[ext_resource type="PackedScene" uid="uid://cgm7td1hgs0rr" path="res://scenes/gui/fast_forward_button.tscn" id="4_66uy4"] [ext_resource type="PackedScene" uid="uid://cgm7td1hgs0rr" path="res://scenes/gui/fast_forward_button.tscn" id="4_66uy4"]
[ext_resource type="Script" uid="uid://di45o67gxmiql" path="res://scripts/gui/seedpackets/HotbarShortcutSetter.cs" id="5_5kkbf"]
[ext_resource type="PackedScene" uid="uid://u5l3jd00s8vd" path="res://scenes/gui/pause_button.tscn" id="5_jyq78"] [ext_resource type="PackedScene" uid="uid://u5l3jd00s8vd" path="res://scenes/gui/pause_button.tscn" id="5_jyq78"]
[ext_resource type="PackedScene" uid="uid://b4lx8adw6rbqs" path="res://scenes/particles/dirt_explosion.tscn" id="6_5jtun"] [ext_resource type="PackedScene" uid="uid://b4lx8adw6rbqs" path="res://scenes/particles/dirt_explosion.tscn" id="6_5jtun"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="7_5kkbf"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="7_5kkbf"]
@ -19,72 +20,116 @@ texture_margin_right = 4.0
texture_margin_bottom = 4.0 texture_margin_bottom = 4.0
axis_stretch_horizontal = 1 axis_stretch_horizontal = 1
[sub_resource type="GDScript" id="GDScript_lxxir"] [sub_resource type="InputEventKey" id="InputEventKey_xq48m"]
resource_name = "shortcutter"
script/source = "extends Node
@export var keys : Array[InputEventKey]
@export var where_to_map : Node
func _ready() -> void:
while get_tree() != null and get_tree().paused:
await get_tree().process_frame
for i in range(where_to_map.get_child_count()):
var key = InputEventKey.new()
where_to_map.get_child(i).shortcut = Shortcut.new()
where_to_map.get_child(i).shortcut.events.append(keys[i])
"
[sub_resource type="InputEventKey" id="InputEventKey_lxxir"]
device = -1 device = -1
keycode = 49 keycode = 49
unicode = 49 unicode = 49
[sub_resource type="InputEventKey" id="InputEventKey_5kkbf"] [sub_resource type="Shortcut" id="Shortcut_hmpwl"]
events = [SubResource("InputEventKey_xq48m")]
[sub_resource type="InputEventKey" id="InputEventKey_kqrbi"]
device = -1 device = -1
keycode = 50 keycode = 50
unicode = 50 unicode = 50
[sub_resource type="InputEventKey" id="InputEventKey_xq48m"] [sub_resource type="Shortcut" id="Shortcut_s6pj4"]
events = [SubResource("InputEventKey_kqrbi")]
[sub_resource type="InputEventKey" id="InputEventKey_ar74i"]
device = -1 device = -1
keycode = 51 keycode = 51
unicode = 51 unicode = 51
[sub_resource type="InputEventKey" id="InputEventKey_cti1a"] [sub_resource type="Shortcut" id="Shortcut_k8sc7"]
events = [SubResource("InputEventKey_ar74i")]
[sub_resource type="InputEventKey" id="InputEventKey_6klug"]
device = -1 device = -1
keycode = 52 keycode = 52
unicode = 52 unicode = 52
[sub_resource type="InputEventKey" id="InputEventKey_s07y0"] [sub_resource type="Shortcut" id="Shortcut_lxteg"]
events = [SubResource("InputEventKey_6klug")]
[sub_resource type="InputEventKey" id="InputEventKey_vbeir"]
device = -1 device = -1
keycode = 53 keycode = 53
unicode = 53 unicode = 53
[sub_resource type="InputEventKey" id="InputEventKey_hmpwl"] [sub_resource type="InputEventKey" id="InputEventKey_7hbdx"]
device = -1
keycode = 81
unicode = 1081
[sub_resource type="Shortcut" id="Shortcut_q5vyg"]
events = [SubResource("InputEventKey_vbeir"), SubResource("InputEventKey_7hbdx")]
[sub_resource type="InputEventKey" id="InputEventKey_6l5gn"]
device = -1 device = -1
keycode = 54 keycode = 54
unicode = 54 unicode = 54
[sub_resource type="InputEventKey" id="InputEventKey_kqrbi"] [sub_resource type="InputEventKey" id="InputEventKey_2abg0"]
device = -1
keycode = 87
unicode = 1094
[sub_resource type="Shortcut" id="Shortcut_6awm7"]
events = [SubResource("InputEventKey_6l5gn"), SubResource("InputEventKey_2abg0")]
[sub_resource type="InputEventKey" id="InputEventKey_mu0ut"]
device = -1 device = -1
keycode = 55 keycode = 55
unicode = 55 unicode = 55
[sub_resource type="InputEventKey" id="InputEventKey_s6pj4"] [sub_resource type="InputEventKey" id="InputEventKey_o6p06"]
device = -1
keycode = 69
unicode = 1091
[sub_resource type="Shortcut" id="Shortcut_dsi7v"]
events = [SubResource("InputEventKey_mu0ut"), SubResource("InputEventKey_o6p06")]
[sub_resource type="InputEventKey" id="InputEventKey_iruld"]
device = -1 device = -1
keycode = 56 keycode = 56
unicode = 56 unicode = 56
[sub_resource type="InputEventKey" id="InputEventKey_ar74i"] [sub_resource type="InputEventKey" id="InputEventKey_hr1by"]
device = -1
keycode = 82
unicode = 1082
[sub_resource type="Shortcut" id="Shortcut_d5mmq"]
events = [SubResource("InputEventKey_iruld"), SubResource("InputEventKey_hr1by")]
[sub_resource type="InputEventKey" id="InputEventKey_h2jfj"]
device = -1 device = -1
keycode = 57 keycode = 57
unicode = 57 unicode = 57
[sub_resource type="InputEventKey" id="InputEventKey_k8sc7"] [sub_resource type="InputEventKey" id="InputEventKey_xrhoa"]
device = -1
keycode = 84
unicode = 1077
[sub_resource type="Shortcut" id="Shortcut_yda1n"]
events = [SubResource("InputEventKey_h2jfj"), SubResource("InputEventKey_xrhoa")]
[sub_resource type="InputEventKey" id="InputEventKey_iupjv"]
device = -1 device = -1
keycode = 48 keycode = 48
unicode = 48 unicode = 48
[sub_resource type="InputEventKey" id="InputEventKey_icels"]
device = -1
keycode = 89
unicode = 1085
[sub_resource type="Shortcut" id="Shortcut_lnrbg"]
events = [SubResource("InputEventKey_iupjv"), SubResource("InputEventKey_icels")]
[sub_resource type="InputEventAction" id="InputEventAction_xq48m"] [sub_resource type="InputEventAction" id="InputEventAction_xq48m"]
action = &"short_shovel" action = &"short_shovel"
pressed = true pressed = true
@ -194,11 +239,11 @@ layout_mode = 2
mouse_filter = 2 mouse_filter = 2
theme_override_constants/separation = 0 theme_override_constants/separation = 0
[node name="ShortcutSetter" type="Node" parent="MarginContainer/Control/Hotbar/PanelContainer" node_paths=PackedStringArray("where_to_map")] [node name="ShortcutSetter" type="Node" parent="MarginContainer/Control/Hotbar/PanelContainer" node_paths=PackedStringArray("hotbar")]
process_mode = 1 process_mode = 1
script = SubResource("GDScript_lxxir") script = ExtResource("5_5kkbf")
keys = Array[InputEventKey]([SubResource("InputEventKey_lxxir"), SubResource("InputEventKey_5kkbf"), SubResource("InputEventKey_xq48m"), SubResource("InputEventKey_cti1a"), SubResource("InputEventKey_s07y0"), SubResource("InputEventKey_hmpwl"), SubResource("InputEventKey_kqrbi"), SubResource("InputEventKey_s6pj4"), SubResource("InputEventKey_ar74i"), SubResource("InputEventKey_k8sc7")]) shortcuts = Array[Shortcut]([SubResource("Shortcut_hmpwl"), SubResource("Shortcut_s6pj4"), SubResource("Shortcut_k8sc7"), SubResource("Shortcut_lxteg"), SubResource("Shortcut_q5vyg"), SubResource("Shortcut_6awm7"), SubResource("Shortcut_dsi7v"), SubResource("Shortcut_d5mmq"), SubResource("Shortcut_yda1n"), SubResource("Shortcut_lnrbg")])
where_to_map = NodePath("../Seedpackets") hotbar = NodePath("../Seedpackets")
[node name="Space" type="Control" parent="MarginContainer/Control/Hotbar"] [node name="Space" type="Control" parent="MarginContainer/Control/Hotbar"]
layout_mode = 2 layout_mode = 2

View file

@ -2,7 +2,7 @@ extends Node
func _on_play_button_pressed() -> void: func _on_play_button_pressed() -> void:
LevelController.call("StartLevel",preload("uid://bu0dh5ct387xu"),preload("uid://br3364jty1j0i")) LevelController.call("StartLevel",preload("uid://bu0dh5ct387xu"),preload("uid://ctbue7dex4umy"))
$ChannelPlayer.call("Play") $ChannelPlayer.call("Play")

View file

@ -0,0 +1,25 @@
using Godot;
using Godot.Collections;
using Newlon.Components.GUI.Seedpackets;
using Newlon.Components.Level;
public partial class HotbarShortcutSetter : Node
{
[Export] private Array<Shortcut> shortcuts;
[Export] private Control hotbar;
public override void _Ready()
{
RuntimeLevelData.Instance.OnLevelStateChanged += OnLevelStateChanged;
}
private void OnLevelStateChanged(RuntimeLevelData.LevelStates state)
{
if (state == RuntimeLevelData.LevelStates.Pregame)
{
for (int i = 0; i < hotbar.GetChildCount(); i++)
{
((Seedpacket)hotbar.GetChild(i)).Shortcut = shortcuts[i];
}
}
}
}

View file

@ -0,0 +1 @@
uid://di45o67gxmiql

View file

@ -28,11 +28,14 @@ public partial class RuntimeLevelData : Node
private LevelStates _currentState = LevelStates.ChooseYourSeeds; private LevelStates _currentState = LevelStates.ChooseYourSeeds;
public override void _EnterTree()
{
Instance = this;
}
public override void _Ready() public override void _Ready()
{ {
Instance = this;
Engine.TimeScale = 1.0; Engine.TimeScale = 1.0;
SetLevelState(LevelStates.ChooseYourSeeds); SetLevelState(LevelStates.ChooseYourSeeds);
} }