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); }
static void Postfix(ref bool __result, KSelectable selectable) { if (selectable.GetComponent <ConduitBridge>() is ConduitBridge bridge) { __result |= bridge.type == ConduitType.Liquid; } }
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(); }
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); }
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); } } } } } }
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); }
// 本体 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(); }