145 lines
3.8 KiB
C#
145 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace BriarQueen.Data.Identifiers
|
|
{
|
|
public enum UIKey
|
|
{
|
|
None = 0,
|
|
InventorySlot,
|
|
CodexLocationButton,
|
|
CodexEntryButton
|
|
}
|
|
|
|
public enum SceneKey
|
|
{
|
|
None = 0,
|
|
MainMenuScene,
|
|
UIScene,
|
|
OpeningCinematicScene,
|
|
GameScene
|
|
}
|
|
|
|
[Serializable]
|
|
public enum LevelKey
|
|
{
|
|
None = 0,
|
|
ChapterOneVillageEdge,
|
|
ChapterOneVillage,
|
|
ChapterOneVillageFurther,
|
|
ChapterOnePumphouse,
|
|
ChapterOneFountain,
|
|
ChapterOneWorkshop,
|
|
ChapterOnePumphousePipes,
|
|
ChapterOneWorkshopDrawer,
|
|
ChapterOneWorkshopUpstairs,
|
|
ChapterOneWorkshopCandlePuzzle,
|
|
ChapterOneWorkshopJewelleryBox,
|
|
ChapterOneWorkshopJewelleryBoxOpen,
|
|
ChapterOneWorkshopSafe,
|
|
ChapterOneWorkshopBag,
|
|
ChapterOneWorkshopDownstairs,
|
|
ChapterOnePumphouseTable,
|
|
ChapterOneWorkshopBookcase,
|
|
ChapterOneFountainPuzzle,
|
|
ChapterOneStreetGateSign,
|
|
ChapterOneStreetCart,
|
|
}
|
|
|
|
public enum AssetItemKey
|
|
{
|
|
None = 0,
|
|
ChapterOneBoxPuzzlePiece1,
|
|
ChapterOneBoxPuzzlePiece2,
|
|
ChapterOneBoxPuzzlePiece3,
|
|
ChapterOneBoxPuzzlePiece4,
|
|
ChapterOneBoxPuzzlePiece5,
|
|
ChapterOneBoxPuzzlePiece6,
|
|
ChapterOneBoxPuzzlePiece7,
|
|
ChapterOneBoxPuzzlePiece8,
|
|
ChapterOneWorkshopWornBook
|
|
}
|
|
|
|
public static class AssetKeyIdentifiers
|
|
{
|
|
private const string UI_PREFIX = "UI:";
|
|
private const string SCENE_PREFIX = "Scene:";
|
|
private const string LEVEL_PREFIX = "Level:";
|
|
private const string ITEM_PREFIX = "Item:";
|
|
|
|
public static string Get(UIKey key)
|
|
{
|
|
if (key == UIKey.None)
|
|
return string.Empty;
|
|
|
|
return $"{UI_PREFIX}{key}";
|
|
}
|
|
|
|
public static string Get(SceneKey key)
|
|
{
|
|
if (key == SceneKey.None)
|
|
return string.Empty;
|
|
|
|
return $"{SCENE_PREFIX}{key}";
|
|
}
|
|
|
|
public static string Get(LevelKey key)
|
|
{
|
|
if (key == LevelKey.None)
|
|
return string.Empty;
|
|
|
|
return $"{LEVEL_PREFIX}{key}";
|
|
}
|
|
|
|
public static string Get(AssetItemKey key)
|
|
{
|
|
if (key == AssetItemKey.None)
|
|
return string.Empty;
|
|
|
|
return $"{ITEM_PREFIX}{key}";
|
|
}
|
|
|
|
public static bool TryGet(UIKey key, out string value)
|
|
{
|
|
value = Get(key);
|
|
return !string.IsNullOrEmpty(value);
|
|
}
|
|
|
|
public static bool TryGet(SceneKey key, out string value)
|
|
{
|
|
value = Get(key);
|
|
return !string.IsNullOrEmpty(value);
|
|
}
|
|
|
|
public static bool TryGet(LevelKey key, out string value)
|
|
{
|
|
value = Get(key);
|
|
return !string.IsNullOrEmpty(value);
|
|
}
|
|
|
|
public static bool TryGet(AssetItemKey key, out string value)
|
|
{
|
|
value = Get(key);
|
|
return !string.IsNullOrEmpty(value);
|
|
}
|
|
|
|
public static IEnumerable<string> GetAllKeys()
|
|
{
|
|
foreach (UIKey key in Enum.GetValues(typeof(UIKey)))
|
|
if (key != UIKey.None)
|
|
yield return Get(key);
|
|
|
|
foreach (SceneKey key in Enum.GetValues(typeof(SceneKey)))
|
|
if (key != SceneKey.None)
|
|
yield return Get(key);
|
|
|
|
foreach (LevelKey key in Enum.GetValues(typeof(LevelKey)))
|
|
if (key != LevelKey.None)
|
|
yield return Get(key);
|
|
|
|
foreach (AssetItemKey key in Enum.GetValues(typeof(AssetItemKey)))
|
|
if (key != AssetItemKey.None)
|
|
yield return Get(key);
|
|
}
|
|
}
|
|
} |