86 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using RuntimeData;
using Logic.Multilingual;
[Serializable]
[CreateAssetMenu(fileName = "GeoDataAssets", menuName = "TH1 Game Data/Geo Data Asset")]
public class GeoDataAssets : ScriptableObject
{
public List<GeoItem> GeoItemList = new List<GeoItem>();
public List<SmallClassInfo> SmallClassInfoList;
[NonSerialized]
private bool _initialized = false;
public string GetSmallClassName(GeoSmallClass smallClass)
{
foreach(var t in SmallClassInfoList)
if (t.GeoSmallClass == smallClass)
return MultilingualManager.Instance.GetMultilingualTextSafe(t.GeoSmallClassText);
return "";
}
}
public enum GeoBigClass {Building, Mountain, Plain, Forest, Water }
public enum GeoSmallClass {
NavelBase,
Military,
Windmill,
Market,
Hill,
Mountain,
Volcano,
Plain,
Floodplain,
Desert,
Savanna,
Sawmill,
Mangrove,
Deciduous,
Jungle,
Ocean,
Sea,
River,
Lake,
Port,
Mine,
Forge,
Oasis,
Marsh,
Grassland,
Evergreen,
Taiga,
Wetland,
Permafrost,
Tundra,
Fjord,
Bridge,
Island,
Peninsula
}
[Serializable]
public class GeoItem
{
public uint Id;
public GeoBigClass GeoBigClass;
public GeoSmallClass GeoSmallClass;
public CivEnum CivEnum;
public List<CityLibrary> NearbyCity;
[MultilingualField]
public string GeoName;
[MultilingualField]
public string GeoDesc;
}
[Serializable]
public class SmallClassInfo
{
public GeoSmallClass GeoSmallClass;
[MultilingualField]
public string GeoSmallClassText;
}