public void Init(IMyEnvironmentOwner owner, ref MyEnvironmentSectorParameters parameters)
        {
            // Copy parameters in
            SectorCenter = parameters.Center;

            Bounds = parameters.Bounds;

            m_dataRange = parameters.DataRange;

            m_environment = (MyProceduralEnvironmentDefinition)parameters.Environment;

            EnvironmentDefinition = parameters.Environment;

            m_owner = owner;

            m_provider = parameters.Provider;

            // Compute appropriate render origin.
            Vector3D center = parameters.Center;

            owner.ProjectPointToSurface(ref center);

            if (!Engine.Platform.Game.IsDedicated)
            {
                m_render = new MyInstancedRenderSector(string.Format("{0}:Sector({1:X})", owner, parameters.SectorId), MatrixD.CreateTranslation(center));
            }

            SectorId = parameters.SectorId;

            BoundingBoxD worldBounds = BoundingBoxD.CreateInvalid();

            for (int i = 0; i < 8; ++i)
            {
                worldBounds.Include(Bounds[i]);
            }

            // Entity stuff
            PositionComp.SetPosition(parameters.Center);
            PositionComp.WorldAABB = worldBounds;

            // Add missing stuff
            AddDebugRenderComponent(new MyDebugRenderComponentEnvironmentSector(this));
            GameLogic = new MyNullGameLogicComponent();
            Save      = false;

            IsClosed = false;
        }
        public void Init(IMyEnvironmentOwner owner, ref Vector3D origin, ref Vector3D basisA, ref Vector3D basisB, double sectorSize, MyObjectBuilder_Base ob)
        {
            Debug.Assert(owner.EnvironmentDefinition is MyProceduralEnvironmentDefinition, "The procedural world environment provider requires a Procedural World Environment Definition.");

            Owner = owner;

            m_sectorSize = sectorSize;

            m_origin = origin;
            m_basisX = basisA;
            m_basisY = basisB;

            var builder = ob as MyObjectBuilder_ProceduralEnvironmentProvider;

            if (builder != null)
            {
                for (int i = 0; i < builder.Sectors.Count; i++)
                {
                    var sector = builder.Sectors[i];
                    m_savedSectors.Add(sector.SectorId, sector);
                }
            }
        }
Ejemplo n.º 3
0
        public void Init(IMyEnvironmentOwner owner, ref Vector3D origin, ref Vector3D basisA, ref Vector3D basisB, double sectorSize, MyObjectBuilder_Base ob)
        {
            Debug.Assert(owner.EnvironmentDefinition is MyProceduralEnvironmentDefinition, "The procedural world environment provider requires a Procedural World Environment Definition.");

            Owner = owner;

            m_sectorSize = sectorSize;

            m_origin = origin;
            m_basisX = basisA;
            m_basisY = basisB;

            var builder = ob as MyObjectBuilder_ProceduralEnvironmentProvider;

            if (builder != null)
            {
                for (int i = 0; i < builder.Sectors.Count; i++)
                {
                    var sector = builder.Sectors[i];
                    m_savedSectors.Add(sector.SectorId, sector);
                }
            }
        }
Ejemplo n.º 4
0
 public MyEnvironmentModelUpdateBatch(MyLogicalEnvironmentSectorBase sector)
 {
     m_sector = sector;
     m_owner  = m_sector.Owner;
 }