Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Mimics.API {
- public static class MimicsAPI {
- internal static List<MimicEventHandler> mimicEventHandlers = new List<MimicEventHandler>();
- public static void RegisterMimicEventHandler(MimicEventHandler handler){
- mimicEventHandlers.Add(handler);
- }
- public static MimicEventHandler currentMimicEventHandler { get; internal set; }
- internal static void RefreshMimicEventHandler(){
- currentMimicEventHandler = null;
- foreach(var m in mimicEventHandlers){
- if (m.IsMyInteriorLoaded) {
- currentMimicEventHandler = m;
- return;
- }
- }
- }
- internal static bool IgnoreBasePlacementValidation(Doorway doorway){
- if (currentMimicEventHandler == null) return false;
- return currentMimicEventHandler.IgnoreDefaultPlacementValidation(doorway);
- }
- internal static bool IsPlacementValid(Doorway doorway){
- if (currentMimicEventHandler == null) return true;
- return currentMimicEventHandler.IsPlacementValid(doorway);
- }
- }
- public abstract class MimicEventHandler {
- public virtual bool IsMyInteriorLoaded => false;
- public virtual bool IsPlacementValid(Doorway doorway) => true;
- public virtual bool IgnoreDefaultPlacementValidation(Doorway doorway) => false;
- public virtual void OnMimicCreated(MimicDoor mimicDoor, Doorway doorway) { }
- public virtual void OnMimicAttackStart(MimicDoor mimicDoor) { }
- public virtual void OnMimicAttackEnd(MimicDoor mimicDoor) { }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment