public void LoadLevel(string level, Action <string> over) { IDataNode tmpAssetManager = GetInstence <IDataNode>("", "AssetManager", new Dictionary <string, object>() { { "Identify", level } }); IDataNode tmpScriptManager = GetInstence <IDataNode>("", "ScriptManager", new Dictionary <string, object>() { { "Identify", level } }); IDataNode tmpGameObjectManager = GetInstence <IDataNode>("", "GameObjectManager", new Dictionary <string, object>() { { "Identify", level } }); if (level == AppConst.RootLevel) { assetManager = tmpAssetManager; scriptManager = tmpScriptManager; gameObjectManager = tmpGameObjectManager; } else { assetManager.AddNode(tmpAssetManager); scriptManager.AddNode(tmpScriptManager); gameObjectManager.AddNode(tmpGameObjectManager); } LoadLevelState.TmpReductionStateEvent = over; LoadLevelState.ChangeState(level); }
public override void Initialization() { LoadLevelState.AddState((s) => { dataContainer.Load(s, LoadLevelState); }); LoadLevelState.AddState((s) => { bundleContainer.Load(s, LoadLevelState); }); LoadLevelState.AddState((s) => { resourceContainer.Load(s, LoadLevelState); }); LoadLevelState.TmpReductionStateEvent = (s) => { baseState.ReductionState(); }; LoadLevelState.TmpReductionStateEvent = (s) => { baseState.ReductionState(); }; }
private Basic() { LoadAppConfig(); LoadLevelState.AddState((s) => { assetManager.HandleEvent(new EventArgs <IState <string> >("Load", LoadLevelState, s)); }); LoadLevelState.AddState((s) => { scriptManager.HandleEvent(new EventArgs <IState <string> >("Load", LoadLevelState, s)); }); LoadLevelState.AddState((s) => { gameObjectManager.HandleEvent(new EventArgs <IState <string> >("Load", LoadLevelState, s)); }); }
private void CreateStateMachine() { _stateMachine = new StateMachine(); var menu = new MenuState(); var load = new LoadLevelState(this); var countDown = new CountDownState(this); var play = new PlayState(this); var pause = new PauseState(); var finishRace = new FinishRace(); var exit = new ExitState(); _stateMachine.SetState(menu); _stateMachine.AddTransition(menu, load, () => LoadLevelState.LevelToLoad != null); _stateMachine.AddTransition(menu, exit, () => ExitButton.Pressed); _stateMachine.AddTransition(load, countDown, load.FinishLoading); _stateMachine.AddTransition(countDown, play, () => RaceStarted); _stateMachine.AddTransition(countDown, pause, () => PlayerInput.Instance.Pause); _stateMachine.AddTransition(play, finishRace, () => RaceFinished); _stateMachine.AddTransition(play, pause, () => PlayerInput.Instance.Pause); _stateMachine.AddTransition(finishRace, menu, () => MenuButton.Pressed); _stateMachine.AddTransition(finishRace, load, () => LoadLevelState.LevelToLoad != null); _stateMachine.AddTransition(finishRace, exit, () => ExitButton.Pressed); _stateMachine.AddTransition(pause, countDown, () => PauseButton.Pressed && !RaceStarted); _stateMachine.AddTransition(pause, countDown, () => PlayerInput.Instance.Pause && !RaceStarted); _stateMachine.AddTransition(pause, play, () => PauseButton.Pressed && RaceStarted); _stateMachine.AddTransition(pause, play, () => PlayerInput.Instance.Pause && RaceStarted); _stateMachine.AddTransition(pause, load, () => LoadLevelState.LevelToLoad != null); _stateMachine.AddTransition(pause, menu, () => MenuButton.Pressed); _stateMachine.AddTransition(pause, exit, () => ExitButton.Pressed); }
public void Initialization() { LoadLevelState.AddState("Data", () => { dataContainer.Load(Level, LoadLevelState); }, null); LoadLevelState.AddState("Bundle", () => { bundleContainer.Load(Level, LoadLevelState); }, null); LoadLevelState.TmpReductionStateEvent = (s) => { baseState.RestoreState(); }; }