public virtual void FromNodeToGame(GameNodeBase gn) { if (gameNode != null) { Debug.LogError("Exit previous Game Node"); FromGameToNode(); } if (loopLockEnt.Unlocked) { using (loopLockEnt.Lock()) { //Debug.Log("From node to game"); if (CurrentNode != null) { if (CurrentNode != null) { preGameNode = CurrentNode; } else { Debug.LogError("Current Node {0}: {1} is not a Node".F(CurrentNode.GetNameForInspector(), CurrentNode.GetType().ToPegiStringType())); preGameNode = gn.parentNode; } } else { preGameNode = gn.parentNode; } Shortcuts.CurrentNode = null; HideAllBackgrounds(); gn.Enter(); gameNode = gn; } } }
public virtual void FromGameToNode(bool failed = false) { if (loopLockExit.Unlocked) { using (loopLockExit.Lock()) { if (gameNode != null) { if (failed) { gameNode.FailExit(); } else { gameNode.Exit(); } } gameNode = null; if (failed) { Shortcuts.users.current.ReturnToBookMark(); } else { if (preGameNode != null) { Shortcuts.CurrentNode = preGameNode; } else { Debug.LogError("Pre Game Node was null"); } } } } }
public bool IsCurrentGameNode(GameNodeBase gb) => (gameNode != null && gameNode == gb);