protected override void Init(MyObjectBuilder_DefinitionBase builder) { base.Init(builder); var ob = builder as MyObjectBuilder_PlanetPrefabDefinition; this.PlanetBuilder = ob.PlanetBuilder; }
public override MyObjectBuilder_EntityBase GetObjectBuilder(bool copy = false) { MyObjectBuilder_Planet planetBuilder = (MyObjectBuilder_Planet)base.GetObjectBuilder(copy); planetBuilder.Radius = m_planetInitValues.AveragePlanetRadius; planetBuilder.HasAtmosphere = m_planetInitValues.HasAtmosphere; planetBuilder.AtmosphereRadius = m_planetInitValues.AtmosphereRadius; planetBuilder.MinimumSurfaceRadius = m_planetInitValues.MinimumSurfaceRadius; planetBuilder.MaximumHillRadius = m_planetInitValues.MaximumHillRadius; planetBuilder.AtmosphereWavelengths = m_planetInitValues.AtmosphereWavelengths; planetBuilder.MaximumOxygen = m_planetInitValues.MaxOxygen; planetBuilder.SavedEnviromentSectors = m_savedEnviromentSectors; planetBuilder.GravityFalloff = m_planetInitValues.GravityFalloff; planetBuilder.MarkAreaEmpty = m_planetInitValues.MarkAreaEmpty; return(planetBuilder); }
private bool TestPlacement() { if (MySession.Static.ControlledEntity != null && (MySession.Static.GetCameraControllerEnum() == MyCameraControllerEnum.Entity || MySession.Static.GetCameraControllerEnum() == MyCameraControllerEnum.ThirdPersonSpectator || MySession.Static.GetCameraControllerEnum() == MyCameraControllerEnum.Spectator)) { for (int i = 0; i < m_previewVoxelMaps.Count; ++i) { var aabb = m_previewVoxelMaps[i].PositionComp.WorldAABB; using (m_tmpResultList.GetClearToken()) { MyGamePruningStructure.GetTopMostEntitiesInBox(ref aabb, m_tmpResultList); if (TestPlacement(m_tmpResultList) == false) { return(false); } } } if (m_planetMode) { for (int i = 0; i < m_copiedVoxelMaps.Count; ++i) { MyObjectBuilder_Planet builder = m_copiedVoxelMaps[i] as MyObjectBuilder_Planet; if (builder != null) { using (m_tmpResultList.GetClearToken()) { BoundingSphereD sphere = new BoundingSphereD(m_pastePosition, builder.Radius * 1.1f); MyGamePruningStructure.GetAllTopMostEntitiesInSphere(ref sphere, m_tmpResultList); if (TestPlacement(m_tmpResultList) == false) { return(false); } } } } } } return(true); }
public override MyObjectBuilder_EntityBase GetObjectBuilder(bool copy = false) { MyObjectBuilder_Planet planetBuilder = (MyObjectBuilder_Planet)base.GetObjectBuilder(copy); planetBuilder.Radius = m_planetInitValues.Radius; planetBuilder.HasAtmosphere = m_planetInitValues.HasAtmosphere; planetBuilder.AtmosphereRadius = m_planetInitValues.AtmosphereRadius; planetBuilder.MinimumSurfaceRadius = m_planetInitValues.MinRadius; planetBuilder.MaximumHillRadius = m_planetInitValues.MaxRadius; planetBuilder.AtmosphereWavelengths = m_planetInitValues.AtmosphereWavelengths; planetBuilder.GravityFalloff = m_planetInitValues.GravityFalloff; planetBuilder.MarkAreaEmpty = m_planetInitValues.MarkAreaEmpty; planetBuilder.AtmosphereSettings = m_planetInitValues.AtmosphereSettings; planetBuilder.SurfaceGravity = m_planetInitValues.SurfaceGravity; planetBuilder.ShowGPS = m_planetInitValues.AddGps; planetBuilder.SpherizeWithDistance = m_planetInitValues.SpherizeWithDistance; planetBuilder.PlanetGenerator = Generator != null?Generator.Id.SubtypeId.ToString() : null; return(planetBuilder); }
private void UpdateVoxelMapTransformations() { if (m_planetMode) { for (int i = 0; i < m_copiedVoxelMaps.Count; ++i) { MyObjectBuilder_Planet builder = m_copiedVoxelMaps[i] as MyObjectBuilder_Planet; if (builder != null) { VRageRender.MyRenderProxy.DebugDrawSphere(m_pastePosition, builder.Radius * 1.1f, Color.Green, 1.0f, true, true); } } } else { for (int i = 0; i < m_previewVoxelMaps.Count; ++i) { m_previewVoxelMaps[i].PositionLeftBottomCorner = m_pastePosition + m_copiedVoxelMapOffsets[i] - m_previewVoxelMaps[i].Storage.Size * 0.5f; m_previewVoxelMaps[i].PositionComp.SetPosition(m_pastePosition + m_copiedVoxelMapOffsets[i]); } } }
public override MyObjectBuilder_EntityBase GetObjectBuilder(bool copy = false) { MyObjectBuilder_Planet planetBuilder = (MyObjectBuilder_Planet)base.GetObjectBuilder(copy); var len = SavedSectors.Count; var sectors = new MyObjectBuilder_Planet.SavedSector[len]; int i = 0; foreach (var sect in SavedSectors) { sectors[i++] = new MyObjectBuilder_Planet.SavedSector() { IdPos = sect.Key.Position, IdDir = sect.Key.Direction, RemovedItems = new HashSet <int>(sect.Value) }; } planetBuilder.Radius = m_planetInitValues.Radius; planetBuilder.HasAtmosphere = m_planetInitValues.HasAtmosphere; planetBuilder.AtmosphereRadius = m_planetInitValues.AtmosphereRadius; planetBuilder.MinimumSurfaceRadius = m_planetInitValues.MinRadius; planetBuilder.MaximumHillRadius = m_planetInitValues.MaxRadius; planetBuilder.AtmosphereWavelengths = m_planetInitValues.AtmosphereWavelengths; planetBuilder.SavedEnviromentSectors = sectors; planetBuilder.GravityFalloff = m_planetInitValues.GravityFalloff; planetBuilder.MarkAreaEmpty = m_planetInitValues.MarkAreaEmpty; planetBuilder.AtmosphereSettings = m_planetInitValues.AtmosphereSettings; planetBuilder.SurfaceGravity = m_planetInitValues.SurfaceGravity; planetBuilder.ShowGPS = m_planetInitValues.AddGps; planetBuilder.SpherizeWithDistance = m_planetInitValues.SpherizeWithDistance; planetBuilder.PlanetGenerator = Generator != null?Generator.Id.SubtypeId.ToString() : null; return(planetBuilder); }