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;
        }
Esempio n. 3
0
        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;
                    }
            }
        }
Esempio n. 5
0
        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;
 }
 public virtual void Init(MyLogicalEnvironmentSectorBase sector, MyObjectBuilder_Base ob)
 {
     Sector = sector;
 }