public GridInputManager(Camera camera, EventSystem eventSystem, IGridPositionCalculator gridPositionCalculator) { _camera = camera; _gridPositionCalculator = gridPositionCalculator; // These are initialized on construction to avoid race conditions on initialize MouseTileCoords = Observable.EveryUpdate() .Select(_ => GetTileAtMousePositionInternal()) .DistinctUntilChanged() .ToReadOnlyReactiveProperty(); IObservable <IntVector2> mouseDownStream = Observable.EveryUpdate() .Where(_ => Input.GetMouseButtonDown(0)) .Where(_ => !eventSystem.IsPointerOverGameObject()) .Where(_ => TileAtMousePosition != null) .Select(_ => TileAtMousePosition.GetValueChecked()); IObservable <IntVector2> mouseUpStream = Observable.EveryUpdate() .Where(_ => Input.GetMouseButtonUp(0)) .Where(_ => !eventSystem.IsPointerOverGameObject()) .Where(_ => TileAtMousePosition != null) .Select(_ => TileAtMousePosition.GetValueChecked()); IObservable <IntVector2> mouseDragStream = Observable.EveryUpdate() .Where(_ => Input.GetMouseButton(0)) .Where(_ => TileAtMousePosition != null) .TakeUntil(mouseUpStream) .Select(_ => TileAtMousePosition.GetValueChecked()); LeftMouseButtonOnTile = mouseDownStream.Select(pos => mouseUpStream).Switch(); LeftMouseDownOnTile = mouseDownStream; LeftMouseDragOnTile = mouseDragStream; }
public GridVisualizer(IGrid grid, IGridPositionCalculator gridPositionCalculator, IGridCellHighlightPool cellHighlightPool, IDebugSettings debugSettings) { _grid = grid; _positionCalculator = gridPositionCalculator; _cellHighlightPool = cellHighlightPool; _debugSettings = debugSettings; }
public BatchUnitSelectionDetector(EventSystem eventSystem, ISelectionBox selectionBox, IGridPositionCalculator gridPositionCalculator, IGridUnitManager gridUnitManager) { _eventSystem = eventSystem; _selectionBox = selectionBox; _gridPositionCalculator = gridPositionCalculator; _gridUnitManager = gridUnitManager; }
public SequentialUniqueTileLoader(ILogger logger, IMapSectionData mapSectionData, IGridPositionCalculator positionCalculator, TileRendererBehaviour.Pool tileRendererPool) { _logger = logger; _mapSectionData = mapSectionData; _positionCalculator = positionCalculator; _tileRendererPool = tileRendererPool; }
public GridUnitManager(IGrid grid, IGridPositionCalculator gridPositionCalculator, IUnitTransformRegistry unitTransformRegistry, ILogger logger) { _grid = grid; _gridPositionCalculator = gridPositionCalculator; _unitTransformRegistry = unitTransformRegistry; _logger = logger; }
public void CommonInstall() { _grid = Substitute.For <IGrid>(); _grid.TileSize.Returns(1U); Container.Bind <IGridPositionCalculator>().To <GridPositionCalculator>().AsSingle(); Container.Bind <IGrid>().FromInstance(_grid); Container.Inject(this); _positionCalculator = Container.Resolve <IGridPositionCalculator>(); }
public TileVisibilityUpdater(List <ITileVisibilityDelegate> tileVisibilityDelegates, IGrid grid, IGridUnitManager gridUnitManager, IGridPositionCalculator gridPositionCalculator) { _tileVisibilityDelegates = tileVisibilityDelegates; _grid = grid; _gridUnitManager = gridUnitManager; _gridPositionCalculator = gridPositionCalculator; _visibilityMatrix = new Dictionary <IntVector2, TileVisibilityData>(); }
public RandomizedRepeatedTileLoader(IRandomProvider randomProvider, ILogger logger, IMapSectionData mapSectionData, IGridPositionCalculator positionCalculator, TileRendererBehaviour.Pool tileRendererPool) { _randomProvider = randomProvider; _logger = logger; _mapSectionData = mapSectionData; _positionCalculator = positionCalculator; _tileRendererPool = tileRendererPool; }
public UnitDestinationSelector(IGridUnitManager gridUnitManager, IGridInputManager gridInputManager, IGridPositionCalculator gridPositionCalculator, IGridCellHighlightPool gridCellHighlightPool, ILogger logger) { _gridUnitManager = gridUnitManager; _gridInputManager = gridInputManager; _gridPositionCalculator = gridPositionCalculator; _gridCellHighlightPool = gridCellHighlightPool; _logger = logger; _validTiles = new HashSet <IntVector2>(); }
public DrawableTileRegistry(ILogger logger, IGrid grid, IGridPositionCalculator gridPositionCalculator, IFactory <Sprite> drawableSpriteFactory, IMapSectionData mapSectionData, DrawableTileBehaviour.Pool drawableTilePool) { _logger = logger; _grid = grid; _gridPositionCalculator = gridPositionCalculator; _drawableSprite = drawableSpriteFactory.Create(); _mapSectionData = mapSectionData; _drawableTilePool = drawableTilePool; }
public UnitDragAndDropHandler(IGridInputManager gridInputManager, IGridUnitManager gridUnitManager, IGridPositionCalculator gridPositionCalculator, ICommandQueue commandQueue, IUnitTransformRegistry unitTransformRegistry, ILogger logger) { _gridInputManager = gridInputManager; _gridUnitManager = gridUnitManager; _gridPositionCalculator = gridPositionCalculator; _commandQueue = commandQueue; _unitTransformRegistry = unitTransformRegistry; _logger = logger; }
public void CommonInstall() { IGrid grid = Substitute.For <IGrid>(); grid.NumTilesX.Returns((uint)100); grid.NumTilesY.Returns((uint)100); grid.TileSize.Returns((uint)1); _gridPositionCalculator = Substitute.For <IGridPositionCalculator>(); _randomProvider = new AlwaysReturnSameWeightRandomProvider(0); Container.Bind <IGrid>().FromInstance(grid); Container.Bind <IGridPositionCalculator>().To <IGridPositionCalculator>() .FromInstance(_gridPositionCalculator).AsTransient(); Container.Bind <IRandomProvider>().To <AlwaysReturnSameWeightRandomProvider>().FromInstance(_randomProvider) .AsSingle(); Container.Bind <NotUniqueRandomGridPositionProvider>().AsSingle(); Container.Inject(this); }
public void Construct(Camera worldCamera, ICommandQueue commandQueue, IUnitMovementController unitMovementController, IGridPositionCalculator gridPositionCalculator, IGridUnitManager gridUnitManager, IInputLock inputLock, ILogger logger) { _camera = worldCamera; _commandQueue = commandQueue; _unitMovementController = unitMovementController; _gridPositionCalculator = gridPositionCalculator; _gridUnitManager = gridUnitManager; _inputLock = inputLock; _logger = logger; // TODO: Can we inject this instead? _radialMenu = GetComponent <IRadialMenu>(); }
public void Construct(Camera camera, UnitSelectionHighlighter unitSelectionHighlighter, ICommandQueue commandQueue, IUnitActionPlanner unitActionPlanner, IGridUnitManager gridUnitManager, IGridUnitInputManager gridUnitInputManager, IGridPositionCalculator gridPositionCalculator, ILogger logger) { _camera = camera; _commandQueue = commandQueue; _unitSelectionHighlighter = unitSelectionHighlighter; _unitActionPlanner = unitActionPlanner; _gridUnitManager = gridUnitManager; _gridUnitInputManager = gridUnitInputManager; _gridPositionCalculator = gridPositionCalculator; _logger = logger; // TODO: Be better _radialMenu = GetComponent <IRadialMenu>(); }
public void Construct(IGridPositionCalculator gridPositionCalculator) { _gridPositionCalculator = gridPositionCalculator; }
public GridCellHighlightPool(IGridPositionCalculator gridPositionCalculator, GridCellHighlight.Pool monoPool) { _gridPositionCalculator = gridPositionCalculator; _monoPool = monoPool; _spawnedHighlights = new List <IGridCellHighlight>(); }
public void Construct(Camera camera, IGridPositionCalculator gridPositionCalculator) { _camera = camera; _gridPositionCalculator = gridPositionCalculator; _radialMenu = GetComponent <IRadialMenu>(); }