using Articy.Touhou.Features; using Articy.Unity; using UnityEngine.Serialization; namespace Game { public enum EDoorType { LT, Lm, Ld, RT, Rm, Rd, TL, TM, TR, DL, Dm, Dr, } public class LevelNodeDoor : LevelNode { [FormerlySerializedAs("m_DoorType")] public EDoorType mDoorType; private string _mTargetLevelId; public void SetTargetLevel(LevelFeature levelFeature) { switch (mDoorType) { case EDoorType.LT: _mTargetLevelId = GetName(levelFeature.LevelLink_LT); break; case EDoorType.Lm: _mTargetLevelId = GetName(levelFeature.LevelLink_LM); break; case EDoorType.Ld: _mTargetLevelId = GetName(levelFeature.LevelLink_LD); break; case EDoorType.RT: _mTargetLevelId = GetName(levelFeature.LevelLink_RT); break; case EDoorType.Rm: _mTargetLevelId = GetName(levelFeature.LevelLink_RM); break; case EDoorType.Rd: _mTargetLevelId = GetName(levelFeature.LevelLink_RD); break; case EDoorType.TL: _mTargetLevelId = GetName(levelFeature.LevelLink_TL); break; case EDoorType.TM: _mTargetLevelId = GetName(levelFeature.LevelLink_TM); break; case EDoorType.TR: _mTargetLevelId = GetName(levelFeature.LevelLink_TR); break; case EDoorType.DL: _mTargetLevelId = GetName(levelFeature.LevelLink_DL); break; case EDoorType.Dm: _mTargetLevelId = GetName(levelFeature.LevelLink_DM); break; case EDoorType.Dr: _mTargetLevelId = GetName(levelFeature.LevelLink_DR); break; } SetTargetId(_mTargetLevelId); } public bool IsFromPreLevel(string preLevelId) { return _mTargetLevelId == preLevelId; } private string GetName(ArticyObject obj) { if (obj == null) { return ""; } return obj.TechnicalName; } } }