Beispiel #1
0
        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);
        }
Beispiel #2
0
 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(); };
 }
Beispiel #3
0
        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)); });
        }
Beispiel #4
0
    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);
    }
Beispiel #5
0
 public void Initialization()
 {
     LoadLevelState.AddState("Data", () => { dataContainer.Load(Level, LoadLevelState); }, null);
     LoadLevelState.AddState("Bundle", () => { bundleContainer.Load(Level, LoadLevelState); }, null);
     LoadLevelState.TmpReductionStateEvent = (s) => { baseState.RestoreState(); };
 }