Пример #1
0
    public void HandleTooltip(Vector2 position, MouseCursor cursor, bool isDragging)
    {
        cursor.Reset();
        Tile t = WorldController.Instance.GetTileAtWorldCoord(position);

        int validPostionCount    = 0;
        int invalidPositionCount = 0;
        List <GameObject> dragPreviewGameObjects = WorldController.Instance.MouseController.DragPreviewGameObjects;

        // Placing furniture object.
        if (BuildMode == BuildMode.FURNITURE)
        {
            cursor.DisplayCursorInfo(TextAnchor.LowerRight, LocalizationTable.GetLocalization(PrototypeManager.Furniture.Get(BuildModeType).GetName()), MouseCursor.TextColor, false);

            // Dragging and placing multiple furniture.
            if (t != null && isDragging == true && dragPreviewGameObjects.Count > 1)
            {
                for (int i = 0; i < dragPreviewGameObjects.Count; i++)
                {
                    Tile t1 = WorldController.Instance.GetTileAtWorldCoord(dragPreviewGameObjects[i].transform.position);
                    if (World.Current.FurnitureManager.IsPlacementValid(BuildModeType, t1) &&
                        (t1.PendingBuildJobs == null || t1.PendingBuildJobs.Count == 0))
                    {
                        validPostionCount++;
                    }
                    else
                    {
                        invalidPositionCount++;
                    }
                }

                string currentBuildRequirements = string.Empty;

                Build buildOrder = PrototypeManager.Furniture.Get(BuildModeType).GetOrderAction <Build>();
                if (buildOrder != null)
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (KeyValuePair <string, int> item in buildOrder.Inventory)
                    {
                        sb.Append(string.Format("{0}x {1}", item.Value * validPostionCount, PrototypeManager.Inventory.Get(item.Key).LocalizedName));
                        if (buildOrder.Inventory.Count > 1)
                        {
                            sb.AppendLine();
                        }
                    }

                    currentBuildRequirements = sb.ToString();
                }
                else
                {
                    UnityDebugger.Debugger.LogError("BuildOrder is null");
                }

                cursor.DisplayCursorInfo(TextAnchor.UpperLeft, validPostionCount.ToString(), Color.green, false);
                cursor.DisplayCursorInfo(TextAnchor.UpperRight, invalidPositionCount.ToString(), Color.red, false);
                cursor.DisplayCursorInfo(TextAnchor.LowerLeft, currentBuildRequirements, MouseCursor.TextColor, false);
            }
        }
        else if (BuildMode == BuildMode.FLOOR)
        {
            // Placing tiles and dragging.
            if (t != null && isDragging == true && dragPreviewGameObjects.Count >= 1)
            {
                cursor.DisplayCursorInfo(TextAnchor.UpperLeft, dragPreviewGameObjects.Count.ToString(), MouseCursor.TextColor, false);
                cursor.DisplayCursorInfo(TextAnchor.LowerLeft, LocalizationTable.GetLocalization(GetFloorTile()), MouseCursor.TextColor, false);
            }
        }
    }
Пример #2
0
 public void HandleTooltip(Vector2 position, MouseCursor cursor, bool isDragging)
 {
     cursor.Reset();
     cursor.DisplayCursorInfo(TextAnchor.MiddleRight, AmountToCreate + "x " + InventoryToBuild, MouseCursor.TextColor, false);
 }