コード例 #1
0
        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();
        }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
        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));
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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;
        }
コード例 #7
0
        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;
        }