custom exceptions, methods to create modules and states of specific type from generic ones

This commit is contained in:
2022-11-20 22:17:32 +01:00
parent 8ee43d6823
commit b0df3f303a
9 changed files with 92 additions and 54 deletions

View File

@@ -41,14 +41,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Modules
public override void SetModule(Module module)
{
if (module is DoorModule doorModule)
{
Module = doorModule;
}
else
{
throw new Exception($"Tried to set wrong type of module ({module.GetType()} instead of DoorModule)");
}
Module = DoorModule.FromModule(module);
}
[Button(enabledMode: EButtonEnableMode.Playmode)]
@@ -62,5 +55,15 @@ namespace EscapeRoomEngine.Engine.Runtime.Modules
{
Unlocked = false;
}
public static DoorState FromState(ModuleState state)
{
if (state is DoorState doorState)
{
return doorState;
}
throw new WrongTypeException(typeof(DoorState), state.GetType(), typeof(ModuleState));
}
}
}