diff --git a/Assets/Fungus/Scripts/Commands/GameCommands.cs b/Assets/Fungus/Scripts/Commands/GameCommands.cs index ea078dcf..e6a67dda 100644 --- a/Assets/Fungus/Scripts/Commands/GameCommands.cs +++ b/Assets/Fungus/Scripts/Commands/GameCommands.cs @@ -15,28 +15,26 @@ namespace Fungus */ public class Call : CommandQueue.Command { - Action callAction; + Action onExecute; - public Call(Action _callAction) + public Call(Action callAction) { - if (_callAction == null) + if (callAction == null) { Debug.LogError("Action must not be null."); return; } - callAction = _callAction; + onExecute = callAction; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - if (callAction != null) - { - callAction(); - } + if (onExecute != null) + onExecute(); - // Execute next command - onComplete(); + if (onComplete != null) + onComplete(); } } @@ -104,40 +102,43 @@ namespace Fungus */ public class MoveToRoom : CommandQueue.Command { - Room room; - - public MoveToRoom(Room _room) + Action onExecute; + + public MoveToRoom(Room room) { - if (_room == null) + if (room == null) { Debug.LogError("Room must not be null."); return; } - - room = _room; + + onExecute = delegate { + Game game = Game.GetInstance(); + game.waiting = true; + + // Fade out screen + game.cameraController.Fade(0f, game.roomFadeDuration / 2f, delegate { + + game.activeRoom = room; + + // Notify room script that the Room is being entered + // Calling private method on Room to hide implementation + game.activeRoom.gameObject.SendMessage("Enter"); + + // Fade in screen + game.cameraController.Fade(1f, game.roomFadeDuration / 2f, delegate { + game.waiting = false; + }); + }); + }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - Game game = Game.GetInstance(); - - game.waiting = true; - - // Fade out screen - game.cameraController.Fade(0f, game.roomFadeDuration / 2f, delegate { - - game.activeRoom = room; - - // Notify room script that the Room is being entered - // Calling private method on Room to hide implementation - game.activeRoom.gameObject.SendMessage("Enter"); - - // Fade in screen - game.cameraController.Fade(1f, game.roomFadeDuration / 2f, delegate { - game.waiting = false; - }); - }); - // MoveToRoom always resets the command queue so no need to call onComplete + if (onExecute != null) + onExecute(); + + // This command resets the command queue so no need to call onComplete } } @@ -146,29 +147,33 @@ namespace Fungus */ public class MoveToScene : CommandQueue.Command { - string sceneName; + Action onExecute; - public MoveToScene(string _sceneName) + public MoveToScene(string sceneName) { - if (_sceneName == "") + if (sceneName == "") { Debug.LogError("Scene name must not be empty"); return; } - - sceneName = _sceneName; + + onExecute = delegate { + Game game = Game.GetInstance(); + game.waiting = true; + + // Fade out screen + game.cameraController.Fade(0f, game.roomFadeDuration / 2f, delegate { + Game.GetInstance().LoadScene(sceneName, true); + }); + }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - Game game = Game.GetInstance(); - - game.waiting = true; - - // Fade out screen - game.cameraController.Fade(0f, game.roomFadeDuration / 2f, delegate { - Game.GetInstance().LoadScene(sceneName, true); - }); + if (onExecute != null) + onExecute(); + + // This command resets the command queue so no need to call onComplete } } @@ -177,22 +182,22 @@ namespace Fungus */ public class SetValue : CommandQueue.Command { - string key; - int value; - - public SetValue(string _key, int _value) + Action onExecute; + + public SetValue(string key, int value) { - key = _key; - value = _value; + onExecute = delegate { + Game.GetInstance().SetGameValue(key, value); + }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - Game.GetInstance().SetGameValue(key, value); + if (onExecute != null) + onExecute(); + if (onComplete != null) - { onComplete(); - } } } @@ -201,22 +206,22 @@ namespace Fungus */ public class SetString : CommandQueue.Command { - string key; - string value; + Action onExecute; - public SetString(string _key, string _value) + public SetString(string key, string value) { - key = _key; - value = _value; + onExecute = delegate { + Game.stringTable.SetString(key, value); + }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - Game.stringTable.SetString(key, value); + if (onExecute != null) + onExecute(); + if (onComplete != null) - { onComplete(); - } } } @@ -225,23 +230,21 @@ namespace Fungus */ public class Save : CommandQueue.Command { - Action commandAction; + Action onExecute; public Save(string saveName) { - commandAction = delegate { + onExecute = delegate { Game.GetInstance().SaveGame(saveName); }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - commandAction(); + onExecute(); if (onComplete != null) - { onComplete(); - } } } @@ -250,23 +253,21 @@ namespace Fungus */ public class Load : CommandQueue.Command { - Action commandAction; + Action onExecute; public Load(string saveName) { - commandAction = delegate { + onExecute = delegate { Game.GetInstance().LoadGame(saveName); }; } public override void Execute(CommandQueue commandQueue, Action onComplete) { - commandAction(); + onExecute(); if (onComplete != null) - { onComplete(); - } } } }