/// <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); } }
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; }
public FellCommand(ITetrominoModel tetrominoModel, IGridModel gridModel, IGameStateModel gameStateModel, IScoreModel scoreModel) { _tetrominoModel = tetrominoModel; _gridModel = gridModel; _gameStateModel = gameStateModel; _scoreModel = scoreModel; }
public GameSetupCommand(IDataService dataService, IGridModel gridModel, IGameStateModel gameStateModel, IScoreModel scoreModel, ITetrominoModel tetrominoModel) { _dataService = dataService; _gridModel = gridModel; _gameStateModel = gameStateModel; _scoreModel = scoreModel; _tetrominoModel = tetrominoModel; }
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"); } }
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; }
/// <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(); }
public GameStateUseCase(IGameStateEntity gameStateEntity, IGameStateModel gameStateModel) { _gameStateEntity = gameStateEntity; _gameStateModel = gameStateModel; }
public void Clear() { _model = null; _inputController.MouseUp -= HandleInputControllerMouseUp; }
public void Init(IGameStateModel model) { _model = model; _inputController.MouseUp += HandleInputControllerMouseUp; }
/// <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)); }