Exemplo n.º 1
0
        private bool DrawGrazeability(Rect rect, TransferableOneWay trad)
        {
            if (!trad.HasAnyThing)
            {
                return(false);
            }
            Pawn pawn = trad.AnyThing as Pawn;

            if (pawn == null || !VirtualPlantsUtility.CanEverEatVirtualPlants(pawn))
            {
                return(false);
            }
            rect.width = 40f;
            Rect position = new Rect(rect.x + (float)((int)((rect.width - 28f) / 2f)), rect.y + (float)((int)((rect.height - 28f) / 2f)), 28f, 28f);

            Widgets.DrawHighlightIfMouseover(rect);
            GUI.DrawTexture(position, TransferableOneWayWidget.CanGrazeIcon);
            TooltipHandler.TipRegion(rect, delegate()
            {
                string text = "AnimalCanGrazeTip".Translate();
                if (this.tile != -1)
                {
                    text = text + "\n\n" + VirtualPlantsUtility.GetVirtualPlantsStatusExplanationAt(this.tile, Find.TickManager.TicksAbs);
                }
                return(text);
            }, trad.GetHashCode() ^ 1948571634);
            return(true);
        }
Exemplo n.º 2
0
        private string <DrawGrazeability> m__4()
        {
            string text = "AnimalCanGrazeTip".Translate();

            if (this.tile != -1)
            {
                text = text + "\n\n" + VirtualPlantsUtility.GetVirtualPlantsStatusExplanationAt(this.tile, Find.TickManager.TicksAbs);
            }
            return(text);
        }
Exemplo n.º 3
0
        private string GetTileTip(int tile, int pathIndex)
        {
            int num = paths[pathIndex].NodesReversed.IndexOf(tile);
            int num2;

            if (num > 0)
            {
                num2 = paths[pathIndex].NodesReversed[num - 1];
            }
            else if (pathIndex < paths.Count - 1 && paths[pathIndex + 1].NodesReversed.Count >= 2)
            {
                num2 = paths[pathIndex + 1].NodesReversed[paths[pathIndex + 1].NodesReversed.Count - 2];
            }
            else
            {
                num2 = -1;
            }
            int           num3          = cachedTicksToWaypoint[pathIndex] + CaravanArrivalTimeEstimator.EstimatedTicksToArrive(paths[pathIndex].FirstNode, tile, paths[pathIndex], 0f, CaravanTicksPerMove, GenTicks.TicksAbs + cachedTicksToWaypoint[pathIndex]);
            int           num4          = GenTicks.TicksAbs + num3;
            StringBuilder stringBuilder = new StringBuilder();

            if (num3 != 0)
            {
                stringBuilder.AppendLine("EstimatedTimeToTile".Translate(num3.ToStringTicksToDays("0.##")));
            }
            stringBuilder.AppendLine("ForagedFoodAmount".Translate() + ": " + Find.WorldGrid[tile].biome.forageability.ToStringPercent());
            stringBuilder.Append(VirtualPlantsUtility.GetVirtualPlantsStatusExplanationAt(tile, num4));
            if (num2 != -1)
            {
                stringBuilder.AppendLine();
                stringBuilder.AppendLine();
                StringBuilder stringBuilder2 = new StringBuilder();
                float         num5           = WorldPathGrid.CalculatedMovementDifficultyAt(num2, false, new int?(num4), stringBuilder2);
                float         roadMovementDifficultyMultiplier = Find.WorldGrid.GetRoadMovementDifficultyMultiplier(tile, num2, stringBuilder2);
                stringBuilder.Append("TileMovementDifficulty".Translate() + ":\n" + stringBuilder2.ToString().Indented("  "));
                stringBuilder.AppendLine();
                stringBuilder.Append("  = ");
                stringBuilder.Append((num5 * roadMovementDifficultyMultiplier).ToString("0.#"));
            }
            return(stringBuilder.ToString());
        }