private void OnPortalDestroyedHandler(PortalInstance instance) { Utils.Assert(instance != null); if (instance.Color == PortalInstance.eColor.Green && Green == null) { Utils.Assert(false); } if (instance.Color == PortalInstance.eColor.Red && Red == null) { Utils.Assert(false); } if (instance.Color == PortalInstance.eColor.Green) { Green = null; } else { Red = null; } // preventive check if (Green != null || Red != null) { Utils.Assert(Green != Red); } }
public static void RaiseOnObjectEnteredPortal(PortalInstance portal, WarppableObject obj) { if (ObjectEnteredPortal != null) { ObjectEnteredPortal.Invoke(portal, obj); } }
public static void RaiseOnObjectExitedPortal(PortalInstance portal, WarppableObject obj, bool crossedThePortal) { if (ObjectExitedPortal != null) { ObjectExitedPortal.Invoke(portal, obj, crossedThePortal); } }
public static void RaisePortalDestroyedEvent(PortalInstance portal) { if (PortalDestroyed != null) { PortalDestroyed.Invoke(portal); } }
public PortalInstance GetOtherPortal(PortalInstance instance) { if (!IsWormHoleOpen()) { return(null); } if (instance == Green) { return(Red); } if (instance == Red) { return(Green); } return(null); }
private void OnObjectEnterWarp(PortalInstance portal, WarppableObject warppableObj) { Debug.Log("OnObjectEnterWarp 1"); Utils.Assert(portal != null && warppableObj != null); if (!portalSet.IsWormHoleOpen()) { return; } if (GetWormHoleSet(warppableObj) != null) { return; } warppableObj.CloneObject(); warpableObjectSets.Add(new WarpableObjectSet(portal, portalSet.GetOtherPortal(portal), warppableObj)); }
private void OnObjectExitedWarp(PortalInstance portal, WarppableObject warppableObj, bool crossedTheWormHole) { Utils.Assert(portal != null && warppableObj != null); if (!portalSet.IsWormHoleOpen()) { return; } WarpableObjectSet warpableObjectSet = GetWormHoleSet(warppableObj); if (warpableObjectSet == null) { Debug.LogWarning("Check this!"); return; } if (crossedTheWormHole) { warpableObjectSet._warpObject.SwapWithClone(); } warpableObjectSet._warpObject.DestroyClone(); warpableObjectSets.Remove(warpableObjectSet); }
public WarpableObjectSet(PortalInstance portalA, PortalInstance portalB, WarppableObject warpableObj) { _portalA = portalA; _portalB = portalB; _warpObject = warpableObj; }