Ejemplo n.º 1
0
 public Double GetDistance(int ind, SpecialPoints specialPoint)
 {
     if (ind < 0)
     {
         throw new ArgumentOutOfRangeException();
     }
     return(_specialMatrix[1, ind]);
 }
        public new bool CheckLimits()
        {
            //begin mod
            if (BuildingDecorationDetour.DisableLimits)
            {
                return(true);
            }
            var propTool = ToolsModifierControl.GetCurrentTool <PropTool>();

            if (propTool != null)
            {
                var pointType = SpecialPoints.GetSpecialPointType(propTool.m_prefab);
                if (pointType != SpecialPointType.Unknown)
                {
                    if (!Panel.specialPointTypeCount.TryGetValue(pointType, out var pointTypeCount))
                    {
                        pointTypeCount = 9999;
                    }
                    return(pointTypeCount < SpecialPoints.GetMaxNumberOfPoints(ToolsModifierControl.toolController.m_editPrefabInfo as BuildingInfo, pointType));
                }
            }
            //end mod
            ItemClass.Availability availability = Singleton <ToolManager> .instance.m_properties.m_mode;
            if ((availability & ItemClass.Availability.MapEditor) != ItemClass.Availability.None)
            {
                if (this.m_propCount >= 50000)
                {
                    return(false);
                }
            }
            else if ((availability & ItemClass.Availability.AssetEditor) != ItemClass.Availability.None)
            {
                //begin mod
                if (this.m_propCount + Singleton <TreeManager> .instance.m_treeCount >= 64 + SpecialPoints.CountSpecialPoints())
                {
                    return(false);
                }
                //end mod
            }
            else if (this.m_propCount >= 65531)
            {
                return(false);
            }
            return(true);
        }
        public static Dictionary <ushort, SpecialPointType> CollectSpecialPoints()
        {
            var instance      = PropManager.instance;
            var specialPoints = new Dictionary <ushort, SpecialPointType>();

            for (ushort index1 = 0; index1 < ushort.MaxValue; ++index1)
            {
                var propInstance = instance.m_props.m_buffer[index1];
                if (propInstance.m_flags == 0)
                {
                    continue;
                }
                var propInfo = propInstance.Info;
                if (SpecialPoints.GetSpecialPointType(propInfo) != SpecialPointType.Unknown)
                {
                    var specialPointType = SpecialPoints.GetSpecialPointType(propInfo);
                    specialPoints.Add(index1, specialPointType);
                }
            }
            return(specialPoints);
        }
Ejemplo n.º 4
0
 public new bool CheckLimits()
 {
     //begin mod
     if (BuildingDecorationDetour.DisableLimits)
     {
         return(true);
     }
     //end mod
     ItemClass.Availability availability = Singleton <ToolManager> .instance.m_properties.m_mode;
     if ((availability & ItemClass.Availability.MapEditor) != ItemClass.Availability.None)
     {
         if (this.m_treeCount >= 250000)
         {
             return(false);
         }
     }
     else if ((availability & ItemClass.Availability.AssetEditor) != ItemClass.Availability.None)
     {
         //begin mod
         if (this.m_treeCount + Singleton <PropManager> .instance.m_propCount >= 64 + SpecialPoints.CountSpecialPoints())
         {
             return(false);
         }
         //end mod
     }
     else if (this.m_treeCount >= 262139)
     {
         return(false);
     }
     return(true);
 }
 private void UpdateHeader()
 {
     if ((UnityEngine.Object)ToolsModifierControl.GetCurrentTool <TreeTool>() != (UnityEngine.Object)null)
     {
         if (!this.m_Header.isVisible)
         {
             this.ShowHeader();
         }
         if (!Singleton <TreeManager> .exists)
         {
             return;
         }
         //begin mod
         this.m_Header.text = string.Format(Locale.Get("CHIRPHEADER_TREESNPROPS"), (object)(Singleton <TreeManager> .instance.m_treeCount + Singleton <PropManager> .instance.m_propCount - SpecialPoints.CountSpecialPoints()), (object)64.ToString());
         //end mod
     }
     else if ((UnityEngine.Object)ToolsModifierControl.GetCurrentTool <PropTool>() != (UnityEngine.Object)null)
     {
         if (!this.m_Header.isVisible)
         {
             this.ShowHeader();
         }
         if (!Singleton <PropManager> .exists)
         {
             return;
         }
         //begin mod
         this.m_Header.text = string.Format(Locale.Get("CHIRPHEADER_TREESNPROPS"), (object)(Singleton <PropManager> .instance.m_propCount + Singleton <TreeManager> .instance.m_treeCount - SpecialPoints.CountSpecialPoints()), (object)64.ToString());
         //end mod
     }
     else
     {
         this.HideHeader();
     }
 }