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); } } }