public static void CreateSpecialPoint(BuildingInfo buildingInfo, SpecialPointType pointType, Vector3 position)
        {
            var info = SpecialPoints.GetSpecialPointProp(pointType);

            if (info == null || info.m_prefabDataIndex == -1)
            {
                return;
            }
            if (SpecialPoints.GetMaxNumberOfPoints(buildingInfo, pointType) < 1)
            {
                return;
            }
            ushort prop;

            BuildingDecorationDetour.DisableLimits = true;
            try
            {
                if (PropManager.instance.CreateProp(out prop, ref Singleton <SimulationManager> .instance.m_randomizer,
                                                    info,
                                                    position, 0, true))
                {
                    PropManager.instance.m_props.m_buffer[(int)prop].FixedHeight = true;
                }
            }
            finally
            {
                BuildingDecorationDetour.DisableLimits = false;
            }
        }
        public static void ClearProps(bool specialPoints = false)
        {
            var instance = PropManager.instance;

            for (ushort index1 = 0; index1 < ushort.MaxValue; ++index1)
            {
                var propInstance = instance.m_props.m_buffer[index1];
                if (propInstance.m_flags == 0)
                {
                    continue;
                }
                var isSpecialPoint = SpecialPoints.GetSpecialPointType(propInstance.Info) != SpecialPointType.Unknown;
                if (isSpecialPoint == specialPoints)
                {
                    instance.ReleaseProp(index1);
                }
            }
        }