diff --git a/Characters/ExampleEnemy.tscn b/Characters/ExampleEnemy.tscn index 1569e97..cbf1c2e 100644 --- a/Characters/ExampleEnemy.tscn +++ b/Characters/ExampleEnemy.tscn @@ -12,6 +12,7 @@ [ext_resource type="AudioStream" uid="uid://njun3e6v4854" path="res://Assets/Sounds/hurt.wav" id="10_n1e64"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ms3xg"] +resource_local_to_scene = true shader = ExtResource("1_fx1w5") shader_parameter/color = Quaternion(1, 1, 1, 1) shader_parameter/intensity = 0.0 @@ -49,6 +50,7 @@ atlas = ExtResource("3_ocaae") region = Rect2(168, 0, 24, 24) [sub_resource type="SpriteFrames" id="SpriteFrames_6pejo"] +resource_local_to_scene = true animations = [{ "frames": [{ "duration": 1.0, @@ -177,7 +179,6 @@ shape = SubResource("RectangleShape2D_8lxmf") [node name="Inventory" type="Node2D" parent="."] y_sort_enabled = true script = ExtResource("7_43gq8") -Items = [null] [node name="Sword" parent="Inventory" instance=ExtResource("8_s3c8r")] Knockback = 100.0 diff --git a/Characters/Player.tscn b/Characters/Player.tscn index 119c503..6dbfec4 100644 --- a/Characters/Player.tscn +++ b/Characters/Player.tscn @@ -203,6 +203,7 @@ horizontal_alignment = 1 y_sort_enabled = true position = Vector2(0, 4) script = ExtResource("7_xyenu") +Items = Array[Node2D]([]) InventoryMap = { "equip_1": 0, "equip_2": 1 diff --git a/Items/Inventory.cs b/Items/Inventory.cs index 82e2b29..5466103 100644 --- a/Items/Inventory.cs +++ b/Items/Inventory.cs @@ -9,7 +9,7 @@ namespace SupaLidlGame.Items public Character Character { get; private set; } [Export] - public Array Items { get; private set; } = new Array(); + public Array Items { get; private set; } [Export] public Dictionary InventoryMap { get; set; } @@ -43,6 +43,26 @@ namespace SupaLidlGame.Items InventoryMap.Add("equip_3", 2); } + public override void _Ready() + { + if (Items is null) + { + // instantiating a new array will prevent characters from + // sharing inventories + Items = new Array(); + } + Character = GetParent(); + foreach (Node child in GetChildren()) + { + if (child is Item item) + { + GD.Print("Adding item " + item.Name); + AddItem(item); + } + } + base._Ready(); + } + private bool EquipItem(Item item, ref Item slot) { if (item is not null) @@ -122,19 +142,5 @@ namespace SupaLidlGame.Items var e = SelectedItem = item; throw new System.NotImplementedException(); } - - public override void _Ready() - { - Character = GetParent(); - foreach (Node child in GetChildren()) - { - if (child is Item item) - { - GD.Print("Adding item " + item.Name); - AddItem(item); - } - } - base._Ready(); - } } }