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.10.0