public NextPresenter(ITetriMinoRepository tetriMinoRepository, IBlockRenderer blockRenderer, ITetriMinoRotation tetriMinoRotation, ITetriMinoSupplier tetriMinoSupplier) { _tetriMinoRepository = tetriMinoRepository; _blockRenderer = blockRenderer; _tetriMinoRotation = tetriMinoRotation; _tetriMinoSupplier = tetriMinoSupplier; }
public BlockRendererFacade( IBlockRenderer <ListBlock> listRenderer, IBlockRenderer <ParagraphBlock> paragraphRenderer) { _listRenderer = listRenderer; _paragraphRenderer = paragraphRenderer; }
public static void Add(int pos, IBlockRenderer blockRenderer) { while (pos >= Renderers.Count) { Renderers.Add(null); } Renderers[pos] = blockRenderer; }
public Block(string name, bool isOpaque, IBlockRenderer renderer, string description, IEnumerable <BlockBehavior> behaviors) { Name = name; Renderer = renderer; Description = description; _properties = new Dictionary <string, object>(); _behaviors = behaviors.ToArray(); }
public MainLoop(IField field, IBlockRenderer blockRenderer, IActiveMino activeMino, IInputManager inputManager, INextPresenter nextPresenter, ITetriMinoRepositoryInitializer tetriMinoRepositoryInitializer) { _blockRenderer = blockRenderer; _activeMino = activeMino; _inputManager = inputManager; _nextPresenter = nextPresenter; _tetriMinoRepositoryInitializer = tetriMinoRepositoryInitializer; _field = field; Application.targetFrameRate = 60; _tetriMinoRepositoryInitializer.Initialize(); }
public ActiveMino(IBlockRenderer blockRenderer, IField field, ITetriMinoRepository tetriMinoRepository, IInputManager inputManager, ITetriMinoRotation rotation, ITetriMinoSupplier tetriMinoSupplier) { _blockRenderer = blockRenderer; _tetriMinoRepository = tetriMinoRepository; _rotation = rotation; _field = field; _minoType = tetriMinoSupplier.Current; inputManager.OnRotate1ButtonDown.Subscribe(_ => Rotate(rot => rot.RotateRight())); inputManager.OnRotate2ButtonDown.Subscribe(_ => Rotate(rot => rot.RotateLeft())); inputManager.OnRightButtonDown.Subscribe(_ => { if (IsValid(_position + new Point(1, 0), _rotation)) { _position.X += 1; } }); inputManager.OnLeftButtonDown.Subscribe(_ => { if (IsValid(_position + new Point(-1, 0), _rotation)) { _position.X -= 1; } }); inputManager.OnDownButtonDown.Subscribe(_ => { if (IsValid(_position + new Point(0, 1), _rotation)) { _position.Y += 1; } else { var tetriMino = _tetriMinoRepository.GetTetriMino(_minoType, _rotation); field.SetTetriMino(tetriMino, _position); field.RemoveLines(); tetriMinoSupplier.Update(); _position = new Point(3, 0); _minoType = tetriMinoSupplier.Current; _rotation = new TetriMinoRotation(); if (inputManager.IsRotate1Down) { Debug.Log("Test"); _rotation = _rotation.RotateRight(); } else if (inputManager.IsRotate2Down) { _rotation = _rotation.RotateLeft(); } } }); inputManager.OnUpButtonDown.Subscribe(_ => { while (IsValid(_position + new Point(0, 1), _rotation)) { _position.Y += 1; } }); _onUpdateSubject.SelectMany(Observable.Range(0, 20)).Subscribe(_ => { if (IsValid(_position + new Point(0, 1), _rotation)) { _position.Y += 1; } }); }
public Field(IBlockRenderer blockRenderer) { _blockRenderer = blockRenderer; _blocks = new Color?[Width, Height]; }
public BlocksRenderer(IBlockRenderer blockRenderer) { _blockRenderer = blockRenderer; }