public static void GetExpandedWorldObjectUnderMouse(Vector2 mousePos, List <WorldObject> outList) { outList.Clear(); Vector2 point = mousePos; point.y = (float)UI.screenHeight - point.y; List <WorldObject> allWorldObjects = Find.WorldObjects.AllWorldObjects; for (int i = 0; i < allWorldObjects.Count; i++) { WorldObject worldObject = allWorldObjects[i]; if (ExpandableWorldObjectsUtility.IsExpanded(worldObject)) { if (ExpandableWorldObjectsUtility.ExpandedIconScreenRect(worldObject).Contains(point)) { if (!worldObject.HiddenBehindTerrainNow()) { outList.Add(worldObject); } } } } ExpandableWorldObjectsUtility.SortByExpandingIconPriority(outList); outList.Reverse(); }
public static void ExpandableWorldObjectsOnGUI() { if (TransitionPct != 0f) { tmpWorldObjects.Clear(); tmpWorldObjects.AddRange(Find.WorldObjects.AllWorldObjects); SortByExpandingIconPriority(tmpWorldObjects); WorldTargeter worldTargeter = Find.WorldTargeter; List <WorldObject> worldObjectsUnderMouse = null; if (worldTargeter.IsTargeting) { worldObjectsUnderMouse = GenWorldUI.WorldObjectsUnderMouse(UI.MousePositionOnUI); } for (int i = 0; i < tmpWorldObjects.Count; i++) { WorldObject worldObject = tmpWorldObjects[i]; if (worldObject.def.expandingIcon && !worldObject.HiddenBehindTerrainNow()) { Color expandingIconColor = worldObject.ExpandingIconColor; expandingIconColor.a = TransitionPct; if (worldTargeter.IsTargetedNow(worldObject, worldObjectsUnderMouse)) { float num = GenMath.LerpDouble(-1f, 1f, 0.7f, 1f, Mathf.Sin(Time.time * 8f)); expandingIconColor.r *= num; expandingIconColor.g *= num; expandingIconColor.b *= num; } GUI.color = expandingIconColor; GUI.DrawTexture(ExpandedIconScreenRect(worldObject), worldObject.ExpandingIcon); } } tmpWorldObjects.Clear(); GUI.color = Color.white; } }
public static bool VisibleToCameraNow(this WorldObject o) { if (!WorldRendererUtility.WorldRenderedNow) { return(false); } if (o.HiddenBehindTerrainNow()) { return(false); } Vector2 point = o.ScreenPos(); return(new Rect(0f, 0f, UI.screenWidth, UI.screenHeight).Contains(point)); }
public static void ExpandableWorldObjectsOnGUI() { if (TransitionPct == 0f) { return; } tmpWorldObjects.Clear(); tmpWorldObjects.AddRange(Find.WorldObjects.AllWorldObjects); SortByExpandingIconPriority(tmpWorldObjects); WorldTargeter worldTargeter = Find.WorldTargeter; List <WorldObject> worldObjectsUnderMouse = null; if (worldTargeter.IsTargeting) { worldObjectsUnderMouse = GenWorldUI.WorldObjectsUnderMouse(UI.MousePositionOnUI); } for (int i = 0; i < tmpWorldObjects.Count; i++) { try { WorldObject worldObject = tmpWorldObjects[i]; if (worldObject.def.expandingIcon && !worldObject.HiddenBehindTerrainNow()) { Color expandingIconColor = worldObject.ExpandingIconColor; expandingIconColor.a = TransitionPct; if (worldTargeter.IsTargetedNow(worldObject, worldObjectsUnderMouse)) { float num = GenMath.LerpDouble(-1f, 1f, 0.7f, 1f, Mathf.Sin(Time.time * 8f)); expandingIconColor.r *= num; expandingIconColor.g *= num; expandingIconColor.b *= num; } GUI.color = expandingIconColor; Rect rect = ExpandedIconScreenRect(worldObject); if (worldObject.ExpandingIconFlipHorizontal) { rect.x = rect.xMax; rect.width *= -1f; } Widgets.DrawTextureRotated(rect, worldObject.ExpandingIcon, worldObject.ExpandingIconRotation); } } catch (Exception ex) { Log.Error("Error while drawing " + tmpWorldObjects[i].ToStringSafe() + ": " + ex); } } tmpWorldObjects.Clear(); GUI.color = Color.white; }
public static bool VisibleToCameraNow(this WorldObject o) { bool result; if (!WorldRendererUtility.WorldRenderedNow) { result = false; } else if (o.HiddenBehindTerrainNow()) { result = false; } else { Vector2 point = o.ScreenPos(); Rect rect = new Rect(0f, 0f, (float)UI.screenWidth, (float)UI.screenHeight); result = rect.Contains(point); } return(result); }
private static void DrawSelectionBracketOnGUIFor(WorldObject obj) { Vector2 vector = obj.ScreenPos(); SelectionDrawerUtility.CalculateSelectionBracketPositionsUI <WorldObject>(rect: new Rect(vector.x - 17.5f, vector.y - 17.5f, 35f, 35f), textureSize: new Vector2((float)SelectionDrawerUtility.SelectedTexGUI.width * 0.4f, (float)SelectionDrawerUtility.SelectedTexGUI.height * 0.4f), bracketLocs: bracketLocs, obj: obj, selectTimes: selectTimes, jumpDistanceFactor: 25f); if (obj.HiddenBehindTerrainNow()) { GUI.color = HiddenSelectionBracketColor; } else { GUI.color = Color.white; } int num = 90; for (int i = 0; i < 4; i++) { Widgets.DrawTextureRotated(bracketLocs[i], SelectionDrawerUtility.SelectedTexGUI, (float)num, 0.4f); num += 90; } GUI.color = Color.white; }
private static void DrawSelectionBracketOnGUIFor(WorldObject obj) { Vector2 vector = obj.ScreenPos(); Rect rect = new Rect((float)(vector.x - 17.5), (float)(vector.y - 17.5), 35f, 35f); Vector2 textureSize = new Vector2((float)((float)SelectionDrawerUtility.SelectedTexGUI.width * 0.40000000596046448), (float)((float)SelectionDrawerUtility.SelectedTexGUI.height * 0.40000000596046448)); SelectionDrawerUtility.CalculateSelectionBracketPositionsUI(WorldSelectionDrawer.bracketLocs, obj, rect, WorldSelectionDrawer.selectTimes, textureSize, 25f); if (obj.HiddenBehindTerrainNow()) { GUI.color = WorldSelectionDrawer.HiddenSelectionBracketColor; } else { GUI.color = Color.white; } int num = 90; for (int i = 0; i < 4; i++) { Widgets.DrawTextureRotated(WorldSelectionDrawer.bracketLocs[i], SelectionDrawerUtility.SelectedTexGUI, (float)num, 0.4f); num += 90; } GUI.color = Color.white; }