From 034ed30da10c2117e9c2507ed1fef3cab43ee79c Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Wed, 02 Apr 2025 08:56:56 +0000 Subject: [PATCH] #36 load all items into itemDatabase on startup --- Assets/Resources.meta | 8 ++++++++ Assets/Scripts/Inventory/ItemDatabase.cs | 27 +++++++++++++++++++++++++-- Assets/Resources/Items/IronOreItem.prefab.meta | 0 Assets/Resources/Items.meta | 8 ++++++++ Assets/Scenes/GameplayScene.unity | 10 ++++------ Assets/Resources/Items/IronOreItem.prefab | 0 Assets/TileSets/Palettes/DrillIronOre.prefab | 2 +- 7 files changed, 46 insertions(+), 9 deletions(-) diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..09c3897 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4ac220fd0e1536641a480531bbb38c65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Items.meta b/Assets/Resources/Items.meta new file mode 100644 index 0000000..78101c4 --- /dev/null +++ b/Assets/Resources/Items.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd3098fe15f11cf41b0623e380a01529 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Ore/IronOreItem.prefab b/Assets/Resources/Items/IronOreItem.prefab similarity index 100% rename from Assets/Prefabs/Ore/IronOreItem.prefab rename to Assets/Resources/Items/IronOreItem.prefab diff --git a/Assets/Prefabs/Ore/IronOreItem.prefab.meta b/Assets/Resources/Items/IronOreItem.prefab.meta similarity index 100% rename from Assets/Prefabs/Ore/IronOreItem.prefab.meta rename to Assets/Resources/Items/IronOreItem.prefab.meta diff --git a/Assets/Scenes/GameplayScene.unity b/Assets/Scenes/GameplayScene.unity index e90f5a2..6d5aa06 100644 --- a/Assets/Scenes/GameplayScene.unity +++ b/Assets/Scenes/GameplayScene.unity @@ -697,7 +697,7 @@ m_GameObject: {fileID: 519420028} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -6.15, y: -24.87, z: -10} + m_LocalPosition: {x: 62, y: -22.89, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2576,8 +2576,6 @@ m_Script: {fileID: 11500000, guid: e4d1fabb0e4577b4d987741f664e3d68, type: 3} m_Name: m_EditorClassIdentifier: - items: - - {fileID: 7215668260114684477, guid: ead8eea59ce41c244814a994365e1129, type: 3} --- !u!1 &1190838619 GameObject: m_ObjectHideFlags: 0 @@ -4186,7 +4184,7 @@ m_GameObject: {fileID: 1624236510} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -6.15, y: -24.87, z: -10} + m_LocalPosition: {x: 62, y: -22.89, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -5743,11 +5741,11 @@ objectReference: {fileID: 0} - target: {fileID: 2368348636056148999, guid: c220ec455fce341408d66d880b464cad, type: 3} propertyPath: m_LocalPosition.x - value: -6.15 + value: 62 objectReference: {fileID: 0} - target: {fileID: 2368348636056148999, guid: c220ec455fce341408d66d880b464cad, type: 3} propertyPath: m_LocalPosition.y - value: -24.87 + value: -22.89 objectReference: {fileID: 0} - target: {fileID: 2368348636056148999, guid: c220ec455fce341408d66d880b464cad, type: 3} propertyPath: m_LocalPosition.z diff --git a/Assets/Scripts/Inventory/ItemDatabase.cs b/Assets/Scripts/Inventory/ItemDatabase.cs index c0a0067..b4832cb 100644 --- a/Assets/Scripts/Inventory/ItemDatabase.cs +++ b/Assets/Scripts/Inventory/ItemDatabase.cs @@ -5,9 +5,7 @@ { public static ItemDatabase Instance { get; private set; } - [SerializeField] private List<Item> items = new List<Item>(); - private Dictionary<string, Item> itemDictionary = new Dictionary<string, Item>(); private Dictionary<int, Item> itemIdDictionary = new Dictionary<int, Item>(); @@ -16,6 +14,7 @@ if (Instance == null) { Instance = this; + LoadItemsFromResources(); InitializeItemDictionary(); } else @@ -24,6 +23,30 @@ } } + private void LoadItemsFromResources() + { + // Load all Item prefabs from the "Resources/Items" folder + GameObject[] itemPrefabs = Resources.LoadAll<GameObject>("Items"); + + foreach (GameObject prefab in itemPrefabs) + { + Item item = prefab.GetComponent<Item>(); + if (item != null) + { + items.Add(item); + } + else + { + Debug.LogWarning($"Prefab {prefab.name} does not have an Item component"); + } + } + + if (items.Count == 0) + { + Debug.LogWarning("No items found in Resources/Items folder"); + } + } + private void InitializeItemDictionary() { itemDictionary.Clear(); diff --git a/Assets/TileSets/Palettes/DrillIronOre.prefab b/Assets/TileSets/Palettes/DrillIronOre.prefab index c94273e..5f06d3b 100644 --- a/Assets/TileSets/Palettes/DrillIronOre.prefab +++ b/Assets/TileSets/Palettes/DrillIronOre.prefab @@ -76,7 +76,7 @@ m_EditorClassIdentifier: isGenerateable: 1 weight: 7 - clusterWeight: 40 + clusterWeight: 30 minClusterSize: 8 tile: {fileID: 11400000, guid: bbc5a3964d8331546a4dbc880f8ae9fc, type: 2} maxSpawnHeight: 250 -- Gitblit v1.9.3