Exemplo n.º 1
0
        // Update is called once per frame
        void Update()
        {
            Vector3  mousePositionOnScreen = Input.mousePosition;
            Vector3  worldMousePosition    = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
            Position mousePosition         = _unityGridInfoProvider.WorldToCell(worldMousePosition).ToPosition();
            Vector3  selectorWorldPosition = _unityGridInfoProvider.GetCellCenterWorld(mousePosition);

            if (_lastMousePositionOnScreen != mousePositionOnScreen)
            {
                _lastMousePositionOnScreen         = mousePositionOnScreen;
                _selectionImage.transform.position = selectorWorldPosition;

                if (!_contextManager.Current.PositionFlags.IsWithinBounds(mousePosition))
                {
                    return;
                }
                var        positionText   = new StringBuilder();
                GameEntity entityAtCursor = GetEntityAtCursor(mousePosition);
                if (entityAtCursor != null)
                {
                    positionText.Append(entityAtCursor.recipee.RecipeeName + Environment.NewLine);
                }

                _uiFacade.ShowEntityDetails(entityAtCursor);
                AddTerrainText(mousePosition, positionText);
                _uiFacade.SetHoveredPositionText(positionText.ToString());
            }
        }
Exemplo n.º 2
0
 public void MarkWithColor(Dictionary <Position, int> positionsToDelays)
 {
     foreach (Text text in GetComponentsInChildren <Text>())
     {
         Position positionInGrid = _unityGridInfoProvider.WorldToCell(text.transform.position).ToPosition();
         if (positionsToDelays.ContainsKey(positionInGrid))
         {
             int   delay = positionsToDelays[positionInGrid];
             Color color = delay == 0 ? Color.green : delay == 1 ? Color.yellow : delay == 2 ? Color.red : delay == 3 ? Color.gray : Color.black;
             text.color = color;
         }
     }
 }