From 3fea00d031beeb02207003b8e61f520bb7de590d Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Wed, 02 Apr 2025 13:19:06 +0000 Subject: [PATCH] #35 generate ores from resource folder --- Assets/Scripts/Cache.meta | 8 ++ Assets/Scripts/Cache/ItemDatabase.cs.meta | 0 Assets/TileSets/Ores/Ore/IronOreHigh.png.meta | 127 +++++++++++++++++++++++++++++++ Assets/Resources/Generateable/IronOre.prefab.meta | 0 Assets/Scripts/Prefab/Drilling/Generateable.cs | 4 Assets/Resources/Generateable.meta | 8 ++ Assets/Resources/Generateable/IronOreHigh.prefab | 16 ++-- Assets/Scripts/Cache/ItemDatabase.cs | 0 Assets/Resources/Generateable/IronOre.prefab | 4 Assets/Resources/Generateable/IronOreHigh.prefab.meta | 7 + Assets/TileSets/Ores/Ore/IronOreHigh.png | 0 Assets/TileSets/Palettes/IronOreRuleCustom.asset | 26 ------ Assets/Scripts/GenerateTileMap.cs | 30 +++++++ 13 files changed, 195 insertions(+), 35 deletions(-) diff --git a/Assets/Resources/Generateable.meta b/Assets/Resources/Generateable.meta new file mode 100644 index 0000000..e643bbd --- /dev/null +++ b/Assets/Resources/Generateable.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97b6063fa71536b4e87a96b6218fb104 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TileSets/Palettes/DrillIronOre.prefab b/Assets/Resources/Generateable/IronOre.prefab similarity index 95% rename from Assets/TileSets/Palettes/DrillIronOre.prefab rename to Assets/Resources/Generateable/IronOre.prefab index 5f06d3b..929cf8d 100644 --- a/Assets/TileSets/Palettes/DrillIronOre.prefab +++ b/Assets/Resources/Generateable/IronOre.prefab @@ -13,7 +13,7 @@ - component: {fileID: 3926666667628910059} - component: {fileID: 5943816882416256805} m_Layer: 6 - m_Name: DrillIronOre + m_Name: IronOre m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -78,6 +78,6 @@ weight: 7 clusterWeight: 30 minClusterSize: 8 - tile: {fileID: 11400000, guid: bbc5a3964d8331546a4dbc880f8ae9fc, type: 2} maxSpawnHeight: 250 minSpawnHeight: 150 + sprite: {fileID: 21300000, guid: 83ee72e0f385a7641b729c9f5c288e74, type: 3} diff --git a/Assets/TileSets/Palettes/DrillIronOre.prefab.meta b/Assets/Resources/Generateable/IronOre.prefab.meta similarity index 100% rename from Assets/TileSets/Palettes/DrillIronOre.prefab.meta rename to Assets/Resources/Generateable/IronOre.prefab.meta diff --git a/Assets/TileSets/Palettes/DrillIronOre.prefab b/Assets/Resources/Generateable/IronOreHigh.prefab similarity index 90% copy from Assets/TileSets/Palettes/DrillIronOre.prefab copy to Assets/Resources/Generateable/IronOreHigh.prefab index 5f06d3b..94a4adf 100644 --- a/Assets/TileSets/Palettes/DrillIronOre.prefab +++ b/Assets/Resources/Generateable/IronOreHigh.prefab @@ -13,7 +13,7 @@ - component: {fileID: 3926666667628910059} - component: {fileID: 5943816882416256805} m_Layer: 6 - m_Name: DrillIronOre + m_Name: IronOreHigh m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -61,7 +61,7 @@ m_EditorClassIdentifier: isDropable: 1 dropable: {fileID: 7215668260114684477, guid: ead8eea59ce41c244814a994365e1129, type: 3} - dropAmount: 2 + dropAmount: 4 --- !u!114 &5943816882416256805 MonoBehaviour: m_ObjectHideFlags: 0 @@ -75,9 +75,9 @@ m_Name: m_EditorClassIdentifier: isGenerateable: 1 - weight: 7 - clusterWeight: 30 - minClusterSize: 8 - tile: {fileID: 11400000, guid: bbc5a3964d8331546a4dbc880f8ae9fc, type: 2} - maxSpawnHeight: 250 - minSpawnHeight: 150 + weight: 8 + clusterWeight: 25 + minClusterSize: 4 + maxSpawnHeight: 200 + minSpawnHeight: 100 + sprite: {fileID: 21300000, guid: f2e947bf683bb8e419d65be7f14b0679, type: 3} diff --git a/Assets/Resources/Generateable/IronOreHigh.prefab.meta b/Assets/Resources/Generateable/IronOreHigh.prefab.meta new file mode 100644 index 0000000..cdc4c33 --- /dev/null +++ b/Assets/Resources/Generateable/IronOreHigh.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ab4d91bcb33d69e438751ef6299da505 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Cache.meta b/Assets/Scripts/Cache.meta new file mode 100644 index 0000000..1f4e1ce --- /dev/null +++ b/Assets/Scripts/Cache.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0538179ca52d13c40969742a1a14306d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Inventory/ItemDatabase.cs b/Assets/Scripts/Cache/ItemDatabase.cs similarity index 100% rename from Assets/Scripts/Inventory/ItemDatabase.cs rename to Assets/Scripts/Cache/ItemDatabase.cs diff --git a/Assets/Scripts/Inventory/ItemDatabase.cs.meta b/Assets/Scripts/Cache/ItemDatabase.cs.meta similarity index 100% rename from Assets/Scripts/Inventory/ItemDatabase.cs.meta rename to Assets/Scripts/Cache/ItemDatabase.cs.meta diff --git a/Assets/Scripts/GenerateTileMap.cs b/Assets/Scripts/GenerateTileMap.cs index 01742a2..79785c4 100644 --- a/Assets/Scripts/GenerateTileMap.cs +++ b/Assets/Scripts/GenerateTileMap.cs @@ -5,6 +5,7 @@ using UnityEngine; using UnityEngine.Tilemaps; using UnityEngine.UIElements; +using static UnityEditor.Progress; //[Serializable] //public class Ore @@ -58,6 +59,35 @@ SetSettingsFromSeed(seed.Value); transform.position = new Vector3((maxWidth / 2) * -1, (maxGroundHeight + 1) * -1, transform.position.z); + + LoadGenerateablesFromResources(); + } + private void LoadGenerateablesFromResources() + { + // Load all Item prefabs from the "Resources/Items" folder + GameObject[] generateablePrefabs = Resources.LoadAll<GameObject>("Generateable"); + generateables = new List<Generateable>(); + foreach (GameObject prefab in generateablePrefabs) + { + Generateable generateable = prefab.GetComponent<Generateable>(); + if (generateable != null) + { + generateable.tile = ScriptableObject.CreateInstance<CustomRuleTile>(); + generateable.tile.m_DefaultGameObject = prefab; + generateable.tile.m_DefaultSprite = generateable.sprite; + generateables.Add(generateable); + forestRuleTile.siblings.Add(generateable.tile); + } + else + { + Debug.LogWarning($"Prefab {prefab.name} does not have an Item component"); + } + } + + if (generateables.Count == 0) + { + Debug.LogWarning("No items found in Resources/Items folder"); + } } public void SetSettingsFromSeed(int seed) diff --git a/Assets/Scripts/Prefab/Drilling/Generateable.cs b/Assets/Scripts/Prefab/Drilling/Generateable.cs index 64190ea..4324e6f 100644 --- a/Assets/Scripts/Prefab/Drilling/Generateable.cs +++ b/Assets/Scripts/Prefab/Drilling/Generateable.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using Unity.VisualScripting; using UnityEngine; [Serializable] @@ -23,7 +24,8 @@ [Range(10, 100000)] public int clusterWeight; public int minClusterSize; - public CustomRuleTile tile; + internal CustomRuleTile tile; public int maxSpawnHeight; public int minSpawnHeight; + public Sprite sprite; } diff --git a/Assets/TileSets/Ores/Ore/IronOreHigh.png b/Assets/TileSets/Ores/Ore/IronOreHigh.png new file mode 100644 index 0000000..f758315 --- /dev/null +++ b/Assets/TileSets/Ores/Ore/IronOreHigh.png Binary files differ diff --git a/Assets/TileSets/Ores/Ore/IronOreHigh.png.meta b/Assets/TileSets/Ores/Ore/IronOreHigh.png.meta new file mode 100644 index 0000000..d009ab0 --- /dev/null +++ b/Assets/TileSets/Ores/Ore/IronOreHigh.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: f2e947bf683bb8e419d65be7f14b0679 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 16 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TileSets/Palettes/IronOreRuleCustom.asset b/Assets/TileSets/Palettes/IronOreRuleCustom.asset index 48457aa..e750e43 100644 --- a/Assets/TileSets/Palettes/IronOreRuleCustom.asset +++ b/Assets/TileSets/Palettes/IronOreRuleCustom.asset @@ -15,27 +15,5 @@ m_DefaultSprite: {fileID: 21300000, guid: 83ee72e0f385a7641b729c9f5c288e74, type: 3} m_DefaultGameObject: {fileID: 3549545049718014148, guid: 858e9987645c29748a5b0990923da82f, type: 3} m_DefaultColliderType: 1 - m_TilingRules: - - m_Id: 0 - m_Sprites: - - {fileID: 21300000, guid: 83ee72e0f385a7641b729c9f5c288e74, type: 3} - m_GameObject: {fileID: 3549545049718014148, guid: 858e9987645c29748a5b0990923da82f, type: 3} - m_MinAnimationSpeed: 1 - m_MaxAnimationSpeed: 1 - m_PerlinScale: 0.5 - m_Output: 0 - m_ColliderType: 1 - m_RandomTransform: 0 - m_Neighbors: 0200000002000000020000000200000002000000020000000200000002000000 - m_NeighborPositions: - - {x: -1, y: 1, z: 0} - - {x: -1, y: 0, z: 0} - - {x: -1, y: -1, z: 0} - - {x: 0, y: -1, z: 0} - - {x: 1, y: 0, z: 0} - - {x: 0, y: 1, z: 0} - - {x: 1, y: 1, z: 0} - - {x: 1, y: -1, z: 0} - m_RuleTransform: 0 - siblings: - - {fileID: 11400000, guid: 3999614e192b37546a6b710bf5ceb30c, type: 2} + m_TilingRules: [] + siblings: [] -- Gitblit v1.9.3