public void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob) { if (ob != null) m_disabledItems.UnionWith(((MyObjectBuilder_DummyEnvironmentModule)ob).DisabledItems); m_sector = sector; }
public void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob) { if (ob != null) { m_disabledItems.UnionWith(((MyObjectBuilder_DummyEnvironmentModule)ob).DisabledItems); } m_sector = sector; }
public override unsafe void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob) { base.Init(sector, ob); var penv = (MyPlanetEnvironmentComponent)sector.Owner; if (penv.CollisionCheckEnabled) { m_boxes = penv.GetCollidedBoxes(sector.Id); if (m_boxes != null) { m_boxes = new List <MyOrientedBoundingBoxD>(m_boxes); // duplicate the list so the debug draw works } } var builder = (MyObjectBuilder_StaticEnvironmentModule)ob; if (builder != null) { var newDisabled = builder.DisabledItems; foreach (var item in newDisabled) { if (!m_disabledItems.Contains(item)) { OnItemEnable(item, false); } } m_disabledItems.UnionWith(newDisabled); if (builder.Boxes != null && builder.MinScanned > 0) { m_boxes = builder.Boxes; m_minScannedLod = builder.MinScanned; } } // Postprocess positions so they are local and simplify tests if (m_boxes != null) { var sWorldPos = sector.WorldPos; int cnt = m_boxes.Count; fixed(MyOrientedBoundingBoxD *bb = m_boxes.GetInternalArray()) for (int i = 0; i < cnt; ++i) { bb[i].Center -= sWorldPos; } } }
public override unsafe void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob) { base.Init(sector, ob); var penv = (MyPlanetEnvironmentComponent)sector.Owner; if (penv.CollisionCheckEnabled) { m_boxes = penv.GetCollidedBoxes(sector.Id); if (m_boxes != null) m_boxes = new List<MyOrientedBoundingBoxD>(m_boxes); // duplicate the list so the debug draw works } var builder = (MyObjectBuilder_StaticEnvironmentModule)ob; if (builder != null) { var newDisabled = builder.DisabledItems; foreach (var item in newDisabled) { if (!m_disabledItems.Contains(item)) OnItemEnable(item, false); } m_disabledItems.UnionWith(newDisabled); if (builder.Boxes != null && builder.MinScanned > 0) { m_boxes = builder.Boxes; m_minScannedLod = builder.MinScanned; } } // Postprocess positions so they are local and simplify tests if (m_boxes != null) { var sWorldPos = sector.WorldPos; int cnt = m_boxes.Count; fixed (MyOrientedBoundingBoxD* bb = m_boxes.GetInternalArray()) for (int i = 0; i < cnt; ++i) { bb[i].Center -= sWorldPos; } } }
public void GetLogicalSector(int item, out int logicalItem, out MyLogicalEnvironmentSectorBase sector) { int logical = SectorOffsets.BinaryIntervalSearch(item) - 1; logicalItem = item - SectorOffsets[logical] + IntraSectorOffsets[logical]; sector = LogicalSectors[logical]; }
public virtual void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob) { Sector = sector; }