Compare commits

..

No commits in common. "6af8540bac7f6349ab2af806818156240b0efb2b" and "97cdf2675102be29142ac5d70b5b23348392342a" have entirely different histories.

9 changed files with 26 additions and 82 deletions

View File

@ -838,6 +838,11 @@ y_sort_enabled = true
script = ExtResource("30_y2wmw") script = ExtResource("30_y2wmw")
Hotbar = [null, null, null] Hotbar = [null, null, null]
Items = Array[Object]([ExtResource("33_3qyfl"), ExtResource("34_70ron"), ExtResource("35_4pap1")]) Items = Array[Object]([ExtResource("33_3qyfl"), ExtResource("34_70ron"), ExtResource("35_4pap1")])
InventoryMap = {
"equip_1": 0,
"equip_2": 1,
"equip_3": 2
}
[node name="Hurtbox" parent="." node_paths=PackedStringArray("InvincibilityTimer") instance=ExtResource("9_avyu4")] [node name="Hurtbox" parent="." node_paths=PackedStringArray("InvincibilityTimer") instance=ExtResource("9_avyu4")]
visible = false visible = false

View File

@ -11,10 +11,11 @@ public partial class Inventory : Node2D, IItemCollection<ItemMetadata>
[Export] [Export]
public Array<Item> Hotbar { get; private set; } public Array<Item> Hotbar { get; private set; }
public Array<int> HotbarToItemIndexMap { get; set; } = new(); [Export]
public Array<ItemMetadata> Items { get; private set; }
[Export] [Export]
public Array<ItemMetadata> Items { get; set; } public Dictionary<string, int> InventoryMap { get; set; }
[Signal] [Signal]
public delegate void UsedItemEventHandler(Item item); public delegate void UsedItemEventHandler(Item item);
@ -61,12 +62,6 @@ public partial class Inventory : Node2D, IItemCollection<ItemMetadata>
public bool IsUsingItem => SelectedItem?.IsUsing ?? false; public bool IsUsingItem => SelectedItem?.IsUsing ?? false;
public Inventory()
{
HotbarToItemIndexMap.Resize(HotbarCapacity);
HotbarToItemIndexMap.Fill(-1);
}
public override void _Ready() public override void _Ready()
{ {
if (Hotbar is null) if (Hotbar is null)
@ -135,6 +130,21 @@ public partial class Inventory : Node2D, IItemCollection<ItemMetadata>
return EquipIndex(index); return EquipIndex(index);
} }
[System.Obsolete]
public Item GetItemByMap(string keymap)
{
if (InventoryMap.ContainsKey(keymap))
{
int idx = InventoryMap[keymap];
if (idx < Hotbar.Count)
{
return Hotbar[InventoryMap[keymap]];
}
}
else GD.Print(keymap + " does not exist");
return null;
}
public Item AddToHotbar(ItemMetadata metadata) public Item AddToHotbar(ItemMetadata metadata)
{ {
//AddItemMetadata(metadata); //AddItemMetadata(metadata);
@ -145,19 +155,7 @@ public partial class Inventory : Node2D, IItemCollection<ItemMetadata>
return item; return item;
} }
public Item SetHotbarIndexToItemIndex(int hotbarIndex, int itemIndex) public Item SetHotbarIndexToItem(int index, ItemMetadata metadata)
{
HotbarToItemIndexMap[hotbarIndex] = itemIndex;
if (itemIndex >= 0)
{
return SetHotbarIndexToItem(hotbarIndex, Items[itemIndex]);
}
return null;
}
private Item SetHotbarIndexToItem(int index, ItemMetadata metadata)
{ {
var oldItem = Hotbar[index]; var oldItem = Hotbar[index];
Item newItem = null; Item newItem = null;

View File

@ -76,19 +76,6 @@ public partial class GlobalState : Node
Progression = save.Progression; Progression = save.Progression;
MapState = save.MapState; MapState = save.MapState;
Stats = save.Stats; Stats = save.Stats;
var inventory = World.Instance.CurrentPlayer.Inventory;
inventory.Items = Stats.Items;
for (int i = 0; i < Stats.HotbarToItemIndexMap.Count; i++)
{
int itemIndex = Stats.HotbarToItemIndexMap[i];
if (itemIndex >= 0)
{
inventory.SetHotbarIndexToItemIndex(i, itemIndex);
}
}
} }
public void ExportToSave(Save save) public void ExportToSave(Save save)
@ -96,9 +83,5 @@ public partial class GlobalState : Node
save.Progression = Progression; save.Progression = Progression;
save.MapState = MapState; save.MapState = MapState;
save.Stats = Stats; save.Stats = Stats;
var inventory = World.Instance.CurrentPlayer.Inventory;
Stats.Items = inventory.Items;
Stats.HotbarToItemIndexMap = inventory.HotbarToItemIndexMap;
} }
} }

View File

@ -1,5 +1,4 @@
using Godot; using Godot;
using Godot.Collections;
namespace SupaLidlGame.State.Global; namespace SupaLidlGame.State.Global;
@ -14,10 +13,4 @@ public partial class Stats : Resource
[Export] [Export]
public int DeathCount { get; set; } = 0; public int DeathCount { get; set; } = 0;
[Export]
public Array<Items.ItemMetadata> Items { get; set; } = new();
[Export]
public Array<int> HotbarToItemIndexMap { get; set; } = new();
} }

View File

@ -72,7 +72,6 @@ public partial class InventoryGrid : GridContainer
ItemMetadata item = items.Current; ItemMetadata item = items.Current;
slot.Item = item; slot.Item = item;
slot.Index = i;
} }
// make remaining slots display empty // make remaining slots display empty
@ -81,7 +80,6 @@ public partial class InventoryGrid : GridContainer
InventorySlot slot = children[i] as InventorySlot; InventorySlot slot = children[i] as InventorySlot;
slot.Item = null; slot.Item = null;
slot.Index = i;
} }
} }

View File

@ -76,6 +76,6 @@ public partial class InventoryMenu : BaseMenu, IModal
{ {
int slot = button.GetMeta("slot").AsInt32(); int slot = button.GetMeta("slot").AsInt32();
GD.Print("Equipping item at slot " + slot); GD.Print("Equipping item at slot " + slot);
Source.SetHotbarIndexToItemIndex(slot, _selected.Index); Source.SetHotbarIndexToItem(slot, _selected.Item);
} }
} }

View File

@ -33,8 +33,6 @@ public partial class InventorySlot : Button
private static Texture2D _placeholderTexture; private static Texture2D _placeholderTexture;
public int Index { get; set; }
private Items.ItemMetadata _item; private Items.ItemMetadata _item;
public Items.ItemMetadata Item public Items.ItemMetadata Item

View File

@ -21,12 +21,7 @@ public partial class ScenePath : ResourcePath
// add scene to loaded to not have to reload scene when called again // add scene to loaded to not have to reload scene when called again
var scene = base.Load<PackedScene>(); var scene = base.Load<PackedScene>();
_loaded.Add(Path, scene);
if (useCached)
{
_loaded.Add(Path, scene);
}
return scene; return scene;
} }

View File

@ -84,13 +84,6 @@ public partial class World : Node
{ {
throw new System.Exception("Another World instance is running."); throw new System.Exception("Another World instance is running.");
} }
Debug = new DebugCommands(this);
}
~World()
{
Debug.Free();
} }
public override void _Ready() public override void _Ready()
@ -342,23 +335,4 @@ public partial class World : Node
} }
public Node FindEntity(string name) => CurrentMap.Entities.GetNode(name); public Node FindEntity(string name) => CurrentMap.Entities.GetNode(name);
internal DebugCommands Debug { get; set; }
}
internal partial class DebugCommands : GodotObject
{
private World _world;
internal DebugCommands(World world)
{
_world = world;
}
internal void GiveItem(string item)
{
var itemMetadata = ResourceLoader
.Load<Items.ItemMetadata>($"res://Items/{item}.tres");
_world.CurrentPlayer.Inventory.Items.Add(itemMetadata);
}
} }