Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        //for some reason, Unity NULLs out my private variables some time
        //TODO: investigate why
        if (_selectionStateMachine == null)
        {
            _selectionStateMachine = SelectionStateMachine.GetInstance(TerrainTileMap, ObsticleTileMap, MouseTileMap, HighlightTile, SelectedTile);
        }

        if (HasMouseMoved() == true)
        {
            Vector2    mousePosition  = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector3Int mapPosition    = TerrainTileMap.WorldToCell(mousePosition);
            Vector3Int objectPosition = ObsticleTileMap.WorldToCell(mousePosition);

            if (TerrainTileMap.HasTile(mapPosition))
            {
                _selectionStateMachine.ProcessMouseMovement(mapPosition);
            }
        }
        if (Input.GetMouseButtonDown(ProgramConstants.MouseLeftClick) == true)
        {
            Vector2    mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector3Int mapPosition   = TerrainTileMap.WorldToCell(mousePosition);
            if (TerrainTileMap.HasTile(mapPosition))
            {
                _selectionStateMachine.ProcessMouseLeftClick(mapPosition);
            }
        }
    }
Exemplo n.º 2
0
 public static SelectionStateMachine GetInstance(Tilemap terrainMap, Tilemap objectMap, Tilemap uiMap, TileBase HighlightTile, TileBase SelectedTile)
 {
     if (_instance == null)
     {
         _instance = new SelectionStateMachine(terrainMap, objectMap, uiMap, HighlightTile, SelectedTile);
     }
     return(_instance);
 }
Exemplo n.º 3
0
 public NoUserSelectionState(SelectionStateMachine machine, Tilemap map) : base(machine, map)
 {
 }
Exemplo n.º 4
0
 public SelectionState(SelectionStateMachine machine, Tilemap mosueMap)
 {
     StateMachine = machine;
     MouseTileMap = mosueMap;
 }
Exemplo n.º 5
0
 // Start is called before the first frame update
 void Start()
 {
     _selectionStateMachine = SelectionStateMachine.GetInstance(TerrainTileMap, ObsticleTileMap, MouseTileMap, HighlightTile, SelectedTile);
 }
Exemplo n.º 6
0
 public UserSelectionState(SelectionStateMachine machine, Tilemap map, Tilemap objects, Tilemap terrain) : base(machine, map)
 {
     TerrainMap  = terrain;
     ObsticleMap = objects;
     ResetSelectedTile();
 }