コード例 #1
0
        private void ItemCardBasic(HoverTextDrawer hoverTextDrawer, KSelectable kselectable3)
        {
            PrimaryElement primaryElement = kselectable3.GetComponent <PrimaryElement>();
            string         text12         = GameUtil.GetUnitFormattedName(kselectable3.gameObject, true);

            if (primaryElement != null && kselectable3.GetComponent <Building>() != null)
            {
                text12 = StringFormatter.Replace(StringFormatter.Replace(UI.TOOLS.GENERIC.BUILDING_HOVER_NAME_FMT, "{Name}", text12), "{Element}", primaryElement.Element.nameUpperCase);
            }
            hoverTextDrawer.DrawText(text12, __this.Styles_BodyText.Standard);
        }
コード例 #2
0
 static void Postfix(ref bool __result, KSelectable selectable)
 {
     if (selectable.GetComponent <ConduitBridge>() is ConduitBridge bridge)
     {
         __result |= bridge.type == ConduitType.Liquid;
     }
 }
コード例 #3
0
    public void UpdateData(Texture2D texture, byte[] textureBytes, HashedString viewMode, byte alpha)
    {
        if (!dataUpdateFuncs.TryGetValue(viewMode, out Action <SimDebugView, Texture> value))
        {
            value = SetDefaultPoint;
        }
        value(this, texture);
        Grid.GetVisibleExtents(out int min_x, out int min_y, out int max_x, out int max_y);
        selectedPathProber = null;
        KSelectable selected = SelectTool.Instance.selected;

        if ((UnityEngine.Object)selected != (UnityEngine.Object)null)
        {
            selectedPathProber = selected.GetComponent <PathProber>();
        }
        updateSimViewWorkItems.Reset(new UpdateSimViewSharedData(this, texBytes, viewMode, this));
        int num = 16;

        for (int i = min_y; i <= max_y; i += num)
        {
            int y = Math.Min(i + num - 1, max_y);
            updateSimViewWorkItems.Add(new UpdateSimViewWorkItem(min_x, i, max_x, y));
        }
        currentFrame = Time.frameCount;
        selectedCell = Grid.PosToCell(Camera.main.ScreenToWorldPoint(KInputManager.GetMousePos()));
        GlobalJobManager.Run(updateSimViewWorkItems);
        texture.LoadRawTextureData(textureBytes);
        texture.Apply();
    }
コード例 #4
0
        private void ItemCardThermal(HoverTextDrawer hoverTextDrawer, KSelectable kselectable3)
        {
            if (kselectable3.GetComponent <Constructable>())
            {
                return;
            }
            if (CurrentMode != OverlayModes.None.ID && CurrentMode != OverlayModes.Temperature.ID)
            {
                return;
            }
            // None か Temperatureオーバーレイでのみ表示

            PrimaryElement primaryElement = kselectable3.GetComponent <PrimaryElement>();
            float          temp           = 0f;
            float          dtu            = -1f;
            bool           flag10         = CurrentMode == OverlayModes.Temperature.ID && Game.Instance.temperatureOverlayMode != Game.TemperatureOverlayModes.HeatFlow;

            if (flag10 && primaryElement)
            {
                temp = primaryElement.Temperature;
                dtu  = temp * primaryElement.Element.specificHeatCapacity * primaryElement.Mass;
            }
            else if (kselectable3.GetComponent <Building>() && primaryElement)
            {
                temp = primaryElement.Temperature;
                dtu  = temp * primaryElement.Element.specificHeatCapacity * primaryElement.Mass;
            }
            else if (kselectable3.GetComponent <CellSelectionObject>() != null)
            {
                CellSelectionObject obj = kselectable3.GetComponent <CellSelectionObject>();
                temp = obj.temperature;
                dtu  = temp * obj.element.specificHeatCapacity * obj.Mass;
            }
            else
            {
                return;
            }

            hoverTextDrawer.NewLine(26);
            hoverTextDrawer.DrawIcon(__this.iconDash, 18);
            hoverTextDrawer.DrawText(GameUtil.GetFormattedTemperature(temp, GameUtil.TimeSlice.None, GameUtil.TemperatureInterpretation.Absolute, true, false), __this.Styles_BodyText.Standard);

            DrawKiloDTU(hoverTextDrawer, dtu);
        }
コード例 #5
0
    public void UpdatePortrait(GameObject target)
    {
        KSelectable component = target.GetComponent <KSelectable>();

        if (!((UnityEngine.Object)component == (UnityEngine.Object)null))
        {
            TabTitle.portrait.ClearPortrait();
            Building component2 = component.GetComponent <Building>();
            if ((bool)component2)
            {
                Sprite sprite = null;
                sprite = component2.Def.GetUISprite("ui", false);
                if ((UnityEngine.Object)sprite != (UnityEngine.Object)null)
                {
                    TabTitle.portrait.SetPortrait(sprite);
                    return;
                }
            }
            MinionIdentity component3 = target.GetComponent <MinionIdentity>();
            if ((bool)component3)
            {
                TabTitle.SetPortrait(component.gameObject);
            }
            else
            {
                Edible component4 = target.GetComponent <Edible>();
                if ((UnityEngine.Object)component4 != (UnityEngine.Object)null)
                {
                    KBatchedAnimController component5  = component4.GetComponent <KBatchedAnimController>();
                    Sprite uISpriteFromMultiObjectAnim = Def.GetUISpriteFromMultiObjectAnim(component5.AnimFiles[0], "ui", false, string.Empty);
                    TabTitle.portrait.SetPortrait(uISpriteFromMultiObjectAnim);
                }
                else
                {
                    PrimaryElement component6 = target.GetComponent <PrimaryElement>();
                    if ((UnityEngine.Object)component6 != (UnityEngine.Object)null)
                    {
                        TabTitle.portrait.SetPortrait(Def.GetUISpriteFromMultiObjectAnim(ElementLoader.FindElementByHash(component6.ElementID).substance.anim, "ui", false, string.Empty));
                    }
                    else
                    {
                        CellSelectionObject component7 = target.GetComponent <CellSelectionObject>();
                        if ((UnityEngine.Object)component7 != (UnityEngine.Object)null)
                        {
                            string animName = (!component7.element.IsSolid) ? component7.element.substance.name : "ui";
                            Sprite uISpriteFromMultiObjectAnim2 = Def.GetUISpriteFromMultiObjectAnim(component7.element.substance.anim, animName, false, string.Empty);
                            TabTitle.portrait.SetPortrait(uISpriteFromMultiObjectAnim2);
                        }
                    }
                }
            }
        }
    }
コード例 #6
0
        private void ItemCardDisease(HoverTextDrawer hoverTextDrawer, KSelectable selectable)
        {
            if (!modeIsDisease)
            {
                return;
            }

            PrimaryElement primaryElement = selectable.GetComponent <PrimaryElement>();

            string text13 = UI.OVERLAYS.DISEASE.NO_DISEASE;

            if (primaryElement != null && primaryElement.DiseaseIdx != 255)
            {
                text13 = GameUtil.GetFormattedDisease(primaryElement.DiseaseIdx, primaryElement.DiseaseCount, true);
            }
            Storage storage = selectable.GetComponent <Storage>();

            if (storage != null && storage.showInUI)
            {
                foreach (GameObject item in storage.items)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    PrimaryElement itemElement = item.GetComponent <PrimaryElement>();
                    if (itemElement.DiseaseIdx != 255)
                    {
                        text13 += string.Format(
                            UI.OVERLAYS.DISEASE.CONTAINER_FORMAT,
                            item.GetComponent <KSelectable>().GetProperName(),
                            GameUtil.GetFormattedDisease(itemElement.DiseaseIdx, itemElement.DiseaseCount, true)
                            );
                    }
                }
            }
            hoverTextDrawer.NewLine(26);
            hoverTextDrawer.DrawIcon(__this.iconDash, 18);
            hoverTextDrawer.DrawText(text13, __this.Styles_Values.Property.Standard);
        }
コード例 #7
0
        // 本体
        internal void UpdateHoverElements(List <KSelectable> hoverObjects)
        {
            if (__this.iconWarning == null)
            {
                __this.ConfigureHoverScreen();
            }
            if (OverlayScreen.Instance == null || !Grid.IsValidCell(cellPos))
            {
                return;
            }

            HoverTextDrawer hoverTextDrawer = HoverTextScreen.Instance.BeginDrawing();

            __private_accessor.overlayValidHoverObjects.Clear();
            foreach (KSelectable kselectable in hoverObjects)
            {
                if (__private_accessor.ShouldShowSelectableInCurrentOverlay(kselectable))
                {
                    __private_accessor.overlayValidHoverObjects.Add(kselectable);
                }
            }

            __this.currentSelectedSelectableIndex = -1;
            if (SelectToolHoverTextCard.highlightedObjects.Count > 0)
            {
                SelectToolHoverTextCard.highlightedObjects.Clear();
            }

            if (CurrentMode == OverlayModes.Temperature.ID && Game.Instance.temperatureOverlayMode == Game.TemperatureOverlayModes.HeatFlow)
            {
                HeatflowCard(hoverTextDrawer);
            }
            else if (CurrentMode == OverlayModes.Decor.ID)
            {
                DecorCard(hoverTextDrawer);
            }
            else if (CurrentMode == OverlayModes.Rooms.ID)
            {
                RoomCard(hoverTextDrawer);
            }
            else if (CurrentMode == OverlayModes.Light.ID)
            {
                LightingCard(hoverTextDrawer);
            }
            else if (CurrentMode == OverlayModes.Logic.ID)
            {
                LogicCard(hoverTextDrawer, hoverObjects);
            }

            int numOfSelectableCard = 0;

            // kを使いたいのでforeachではなくfor
            for (int k = 0; k < __private_accessor.overlayValidHoverObjects.Count; k++)
            {
                KSelectable kselectable3 = __private_accessor.overlayValidHoverObjects[k];
                if (kselectable3 == null)
                {
                    continue;
                }
                if (kselectable3.GetComponent <CellSelectionObject>() != null)
                {
                    continue;
                }

                // if ((!(OverlayScreen.Instance != null) || !(OverlayScreen.Instance.mode != OverlayModes.None.ID) || (kselectable3.gameObject.layer & __private_accessor.maskOverlay) == 0) && isVisible)
                if (!isVisible)
                {
                    continue;
                }
                if (!(OverlayScreen.Instance != null) || !(OverlayScreen.Instance.mode != OverlayModes.None.ID) || (kselectable3.gameObject.layer & __private_accessor.maskOverlay) == 0)
                {
                }
                else
                {
                    continue;
                }


                bool selected = SelectTool.Instance.selected == kselectable3;
                if (selected)
                {
                    __this.currentSelectedSelectableIndex = k;
                }
                numOfSelectableCard++;

                ItemCard(hoverTextDrawer, kselectable3, selected);
            }
            __this.recentNumberOfDisplayedSelectables = numOfSelectableCard + 1;

            if (displayMiscCard)
            {
                MiscCard(hoverTextDrawer);
            }
            else if (!isVisible)
            {
                hoverTextDrawer.BeginShadowBar(false);
                hoverTextDrawer.DrawIcon(__this.iconWarning, 18);
                hoverTextDrawer.DrawText(UI.TOOLS.GENERIC.UNKNOWN, __this.Styles_BodyText.Standard);
                hoverTextDrawer.EndShadowBar();
            }
            hoverTextDrawer.EndDrawing();
        }