Ejemplo n.º 1
0
 /// <summary>
 /// Запустить на выполнние
 /// </summary>
 /// <param name="model">модел откуда будут боатся entity</param>
 /// <param name="engine">движок</param>
 public void Execute(IGameStateModel model, AbstractPipelineEngine engine)
 {
     foreach (var rule in RuleList)
     {
         rule.CreatePipeline(model, engine);
     }
 }
Ejemplo n.º 2
0
        public void Init(IGameStateModel gameStateModel)
        {
            _prevFallDelay  = Time.time;
            _gameStateModel = gameStateModel;

            Debugger.Log(LogEntryCategory.Tetromino,
                         $"{nameof(TetrominoView)} initialization completed successfully");
        }
 public PlayerActionHappenedCommand(PlayerAction playerAction, IGameStateModel gameStateModel,
                                    ITetrominoModel tetrominoModel, IGridModel gridModel)
 {
     _playerAction   = playerAction;
     _gameStateModel = gameStateModel;
     _tetrominoModel = tetrominoModel;
     _gridModel      = gridModel;
 }
Ejemplo n.º 4
0
 public FellCommand(ITetrominoModel tetrominoModel, IGridModel gridModel, IGameStateModel gameStateModel,
                    IScoreModel scoreModel)
 {
     _tetrominoModel = tetrominoModel;
     _gridModel      = gridModel;
     _gameStateModel = gameStateModel;
     _scoreModel     = scoreModel;
 }
Ejemplo n.º 5
0
 public GameSetupCommand(IDataService dataService, IGridModel gridModel, IGameStateModel gameStateModel,
                         IScoreModel scoreModel, ITetrominoModel tetrominoModel)
 {
     _dataService    = dataService;
     _gridModel      = gridModel;
     _gameStateModel = gameStateModel;
     _scoreModel     = scoreModel;
     _tetrominoModel = tetrominoModel;
 }
Ejemplo n.º 6
0
        public virtual void CreatePipeline(IGameStateModel model, AbstractPipelineEngine engine)
        {
            var entity         = model.TryGetEntity <T>();
            var engineInternal = engine as PipelineEngine;

            if (!CheckRule(entity, engineInternal))
            {
                new LambdaPipelineStage <T>(engine, t => t, entity, this, "Return entity pipeline");
            }
        }
Ejemplo n.º 7
0
 public ButtonClickedCommand(string buttonName, PauseUIUpdatedSignal pauseUIUpdatedSignal,
                             IGameStateModel gameStateModel, ISaveService saveService, SetActivePanelSignal setActivePanelSignal,
                             PlayerActionHappenedSignal playerActionHappenedSignal)
 {
     _buttonName                 = buttonName;
     _pauseUIUpdatedSignal       = pauseUIUpdatedSignal;
     _gameStateModel             = gameStateModel;
     _saveService                = saveService;
     _setActivePanelSignal       = setActivePanelSignal;
     _playerActionHappenedSignal = playerActionHappenedSignal;
 }
Ejemplo n.º 8
0
        /// <summary> Строит массив матчей, пополняет на их основе конвейер и запускает его. </summary>
        /// <param name="engine"></param>
        /// <param name="trace">
        ///     Если этот параметр выставлен в какой-нибудь не null то все матчи и состояние движка после
        ///     пополнения пайплайна будет скинуто в дебаг.
        /// </param>
        /// <param name="model"></param>
        public virtual void Applay(IGameStateModel model, AbstractPipelineEngine engine, string trace = null)
        {
            Execute(model, engine);
            if (ExtremeCrutch != null)
            {
                trace         = ExtremeCrutch;
                ExtremeCrutch = null;
            }

            engine.PipelineStageExecuted = entity => Array.ForEach(entity, e => model.AddEntity(e));
            // Кинем в трейс всю кучу матчей для общего образования.
            engine.ExecuteAll();
        }
Ejemplo n.º 9
0
 public GameStateUseCase(IGameStateEntity gameStateEntity, IGameStateModel gameStateModel)
 {
     _gameStateEntity = gameStateEntity;
     _gameStateModel  = gameStateModel;
 }
Ejemplo n.º 10
0
 public void Clear()
 {
     _model = null;
     _inputController.MouseUp -= HandleInputControllerMouseUp;
 }
Ejemplo n.º 11
0
 public void Init(IGameStateModel model)
 {
     _model = model;
     _inputController.MouseUp += HandleInputControllerMouseUp;
 }
Ejemplo n.º 12
0
 /// <summary> Само по себе правило новых стэйджей не создаёт </summary>
 public void CreatePipeline(IGameStateModel model, AbstractPipelineEngine engine)
 {
     engine.PipelineStageExecuted = entity => Array.ForEach(entity, e => model.AddEntity(e));
     Childs.Execute(model, engine);
     engine.СonditionExecute(s => Childs.RuleList.Contains(s.Producer));
 }