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); } } }
public MyEnvironmentModelUpdateBatch(MyLogicalEnvironmentSectorBase sector) { m_sector = sector; m_owner = m_sector.Owner; }