Files

165 lines
6.0 KiB
C#

using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace BriarQueen.Data.Identifiers
{
public enum ItemKey
{
None = 0,
RustedKnife = 1,
SharpenedKnife = 2,
EmeraldAmulet = 3,
DustyMirror = 4,
SmallRag = 5,
GreenCandle = 6,
IndigoCandle = 7,
DirtyMagnifyingGlass = 8,
PumphouseKey = 9,
RedCandle = 10,
OrangeCandle = 11,
YellowCandle = 12,
BlueCandle = 13,
VioletCandle = 14,
Pliers = 15,
Emerald = 16,
Sapphire = 17,
Ruby = 18,
RubyRing = 19,
SilverCoin = 20,
GoldCoin = 21,
GrindstoneAxlePin = 22,
Diamond = 23,
DiamondTiara = 24,
DustySapphire = 25,
TornPage1 = 26,
TornPage2 = 27,
TornPage3 = 28,
TornPage4 = 29,
TornPage5 = 30,
IncompleteBook = 31,
CompleteBook = 32
}
public enum EnvironmentKey
{
None = 0,
ChainLock = 1,
FountainVines = 2,
GrindingStone = 3,
WorkshopWindow = 4,
WorkshopDamagedBook = 5,
WorkshopBookSlot = 6,
WorkshopDiary = 7,
PumphouseWaterValve = 8,
WorkshopFadedPhoto = 9,
WorkshopDownstairsLight = 10,
WorkshopBrokenLantern = 11,
WorkshopWriting = 12,
StreetVines = 13,
}
public enum PuzzleSlotKey
{
None = 0,
WorkshopCandleSlot = 1,
WorkshopPuzzleBoxSlot = 2,
FountainGemSlot = 3,
}
public static class ItemIDs
{
public static readonly IReadOnlyDictionary<PuzzleSlotKey, string> PuzzleSlots =
new ReadOnlyDictionary<PuzzleSlotKey, string>(
new Dictionary<PuzzleSlotKey, string>
{
{ PuzzleSlotKey.WorkshopCandleSlot, "PUZ_WorkshopCandleSlot" },
{ PuzzleSlotKey.WorkshopPuzzleBoxSlot, "PUZ_WorkshopPuzzleBoxSlot" }
});
public static readonly IReadOnlyDictionary<EnvironmentKey, string> Environment =
new ReadOnlyDictionary<EnvironmentKey, string>(
new Dictionary<EnvironmentKey, string>
{
{ EnvironmentKey.ChainLock, "ENV_ChainLock" },
{ EnvironmentKey.FountainVines, "ENV_FountainVines" },
{ EnvironmentKey.GrindingStone, "ENV_GrindingStone" },
{ EnvironmentKey.WorkshopWindow, "ENV_WorkshopWindow" },
{ EnvironmentKey.WorkshopDamagedBook, "ENV_WorkshopDamagedBook" },
{ EnvironmentKey.WorkshopBookSlot, "ENV_WorkshopBookSlot" },
{ EnvironmentKey.WorkshopDiary, "ENV_WorkshopDiary" },
{ EnvironmentKey.PumphouseWaterValve, "ENV_PumphouseWaterValve" },
{ EnvironmentKey.WorkshopFadedPhoto, "ENV_WorkshopFadedPhoto" },
{ EnvironmentKey.WorkshopDownstairsLight, "ENV_WorkshopDownstairsLight" },
{ EnvironmentKey.WorkshopBrokenLantern, "ENV_WorkshopBrokenLantern" },
{ EnvironmentKey.WorkshopWriting, "ENV_WorkshopWriting" },
{ EnvironmentKey.StreetVines, "ENV_StreetVines" },
});
public static readonly IReadOnlyDictionary<ItemKey, string> Pickups =
new ReadOnlyDictionary<ItemKey, string>(
new Dictionary<ItemKey, string>
{
{ ItemKey.RustedKnife, "00_RustedKnife" },
{ ItemKey.SharpenedKnife, "01_SharpenedKnife" },
{ ItemKey.EmeraldAmulet, "02_EmeraldAmulet" },
{ ItemKey.DustyMirror, "03_DustyMirror" },
{ ItemKey.SmallRag, "04_SmallRag" },
{ ItemKey.GreenCandle, "05_GreenCandle" },
{ ItemKey.IndigoCandle, "06_IndigoCandle" },
{ ItemKey.DirtyMagnifyingGlass, "07_DirtyMagnifyingGlass" },
{ ItemKey.PumphouseKey, "08_PumphouseKey" },
{ ItemKey.RedCandle, "09_RedCandle" },
{ ItemKey.OrangeCandle, "10_OrangeCandle" },
{ ItemKey.YellowCandle, "11_YellowCandle" },
{ ItemKey.BlueCandle, "12_BlueCandle" },
{ ItemKey.VioletCandle, "13_VioletCandle" },
{ ItemKey.Pliers, "14_Pliers" },
{ ItemKey.Emerald, "15_Emerald" },
{ ItemKey.Sapphire, "16_Sapphire" },
{ ItemKey.Ruby, "17_Ruby" },
{ ItemKey.RubyRing, "18_RubyRing" },
{ ItemKey.SilverCoin, "19_SilverCoin" },
{ ItemKey.GoldCoin, "20_GoldCoin" },
{ ItemKey.GrindstoneAxlePin, "21_GrindstoneAxlePin" },
{ ItemKey.Diamond, "22_Diamond" },
{ ItemKey.DiamondTiara, "23_DiamondTiara" },
{ ItemKey.DustySapphire, "24_DustySapphire" },
});
public static string Get(ItemKey key)
{
return Pickups.TryGetValue(key, out var id) ? id : string.Empty;
}
public static string Get(EnvironmentKey key)
{
return Environment.TryGetValue(key, out var id) ? id : string.Empty;
}
public static string Get(PuzzleSlotKey key)
{
return PuzzleSlots.TryGetValue(key, out var id) ? id : string.Empty;
}
public static bool TryGet(ItemKey key, out string id)
{
return Pickups.TryGetValue(key, out id);
}
public static bool TryGet(EnvironmentKey key, out string id)
{
return Environment.TryGetValue(key, out id);
}
public static bool TryGet(PuzzleSlotKey key, out string id)
{
return PuzzleSlots.TryGetValue(key, out id);
}
public static IEnumerable<string> GetAllItemIDs()
{
return Pickups.Values;
}
}
}