Пример #1
0
        public static void _Postfix(ITab_Pawn_Needs __instance)
        {
            if (Find.CurrentMap == null)
            {
                return;
            }
            if (!TableDiner.settings.useExtraFeatures)
            {
                return;
            }
            Pawn SelPawn = Find.Selector.SingleSelectedThing as Pawn;

            if (SelPawn != null && SelPawn.IsColonist)
            {
                Vector2 size       = NeedsCardUtility.GetSize(SelPawn);
                Rect    tabRect    = new Rect(20, size.y - (ITab_Table.WinSize.y) + 10, ITab_Table.WinSize.x - 40, ITab_Table.WinSize.y - 20);
                Rect    tabRectBig = new Rect(10, size.y - (ITab_Table.WinSize.y) + 5, ITab_Table.WinSize.x - 20, ITab_Table.WinSize.y - 10);
                float   tr         = TableDinerGlobal.GetTableRadius(SelPawn.ThingID);
                GUI.color = Color.white;
                if (tr > TableDiner.settings.tableDistance)
                {
                    GUI.color = Color.yellow;
                }
                if (Mouse.IsOver(tabRect))
                {
                    Widgets.DrawHighlight(tabRectBig);
                    mOver = true;
                }
                TableDinerGlobal.tableRadii[SelPawn.ThingID] = Mathf.Pow(Widgets.HorizontalSlider(tabRect, Mathf.Sqrt(tr), 0, 23, true, tr < 1 ? "TDiner.Ignored".Translate() : Mathf.Round(tr).ToString(), "TDiner.TRSlideLabel".Translate()), 2);
                GUI.color = Color.white;
            }
        }
Пример #2
0
        public static void __Postfix(ITab_Pawn_Needs __instance)
        {
            if (Find.CurrentMap == null)
            {
                return;
            }
            if (!TableDiner.settings.displayRing)
            {
                return;
            }
            Pawn SelPawn = Find.Selector.SingleSelectedThing as Pawn;

            if (SelPawn != null && SelPawn.IsColonist && FillTab.mOver)
            {
                float r = TableDinerGlobal.GetTableRadius(SelPawn.ThingID);
                if (r < 1)
                {
                    r = TableDiner.settings.tableDistance;
                }
                Graphics.DrawMesh(TableDiner.tableCircle, Matrix4x4.TRS(SelPawn.TrueCenter() + Vector3.up * 10, Quaternion.identity, new Vector3(r, r, r)), TableDinerGlobal.circleMaterial, 0);
                FillTab.mOver = false;
            }
        }