43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using Cielonos.Core;
|
||
using Sirenix.OdinInspector;
|
||
using UnityEngine;
|
||
|
||
namespace Cielonos.MainGame.Map
|
||
{
|
||
[CreateAssetMenu(fileName = "MapBaseCollection", menuName = "Cielonos/BaseCollections/MainGameBaseCollection")]
|
||
public partial class MapBaseCollection : BaseCollection<MapBaseCollection>
|
||
{
|
||
[Title("Spawn Points"), SerializeField]
|
||
[Tooltip("不同组别对应的颜色,用于编辑器显示。注意,只需要SpawnPoint的groupName包含该字符串即可匹配。")]
|
||
private Dictionary<string, Color> _groupColors = new Dictionary<string, Color>();
|
||
public static Dictionary<string, Color> GroupColors => Instance._groupColors;
|
||
|
||
public Color GetGroupColor(string groupName)
|
||
{
|
||
if (!string.IsNullOrEmpty(groupName))
|
||
{
|
||
foreach (var pair in _groupColors.Where(pair => groupName.Contains(pair.Key)))
|
||
{
|
||
return pair.Value;
|
||
}
|
||
}
|
||
return Color.white;
|
||
}
|
||
}
|
||
|
||
public partial class MapBaseCollection
|
||
{
|
||
[Title("Runtime Objects"), SerializeField]
|
||
private Dictionary<string, GameObject> _interactables = new Dictionary<string, GameObject>();
|
||
public static Dictionary<string, GameObject> Interactables => Instance._interactables;
|
||
}
|
||
|
||
public partial class MapBaseCollection
|
||
{
|
||
[SerializeField]
|
||
private Dictionary<string, GameObject> _enemies = new Dictionary<string, GameObject>();
|
||
public static Dictionary<string, GameObject> Enemies => Instance._enemies;
|
||
}
|
||
} |