private GameObject PoolManagementSpawn() { if (!SpawningIsAvailable) { return(null); } Vector3 _position = GetSpawnPosition(); // check if the generated spawn position fullfil the given conditions if (CullingOptions.CheckCullingConditions(_position)) { return(null); } Quaternion _rotation = Quaternion.Euler(new Vector3(0, UnityEngine.Random.Range(0, 360), 0)); GameObject _object = ActivateSuspendedObject(_position, _rotation); if (_object == null) { _object = InstantiateNewObject(_position, _rotation); } if (_object != null) { m_SpawnCycles++; } return(_object); }
public MyRenderObject(uint id, string debugName, RenderFlags renderFlags = RenderFlags.Visible | RenderFlags.SkipIfTooSmall | RenderFlags.NeedsResolveCastShadow, CullingOptions cullingOptions = VRageRender.CullingOptions.Default) : base(id) { DebugName = debugName; Flags = MyElementFlag.EF_AABB_DIRTY; m_renderFlags = renderFlags; m_cullingOptions = cullingOptions; }
public static uint CreateRenderEntity( string debugName, string model, MatrixD worldMatrix, MyMeshDrawTechnique technique, RenderFlags flags, CullingOptions cullingOptions, Color diffuseColor, Vector3 colorMaskHsv, float dithering = 0, float maxViewDistance = float.MaxValue, byte depthBias = 0 ) { var message = MessagePool.Get<MyRenderMessageCreateRenderEntity>(MyRenderMessageEnum.CreateRenderEntity); uint id = GetMessageId(); message.ID = id; message.DebugName = debugName; message.Model = model; message.WorldMatrix = worldMatrix; message.Technique = technique; message.Flags = flags; message.CullingOptions = cullingOptions; message.MaxViewDistance = maxViewDistance; message.DepthBias = depthBias; EnqueueMessage(message); UpdateRenderEntity(id, diffuseColor, colorMaskHsv, dithering); return id; }
public static uint CreateRenderEntityAtmosphere( string debugName, string model, MatrixD worldMatrix, MyMeshDrawTechnique technique, RenderFlags flags, CullingOptions cullingOptions, float atmosphereRadius, float planetRadius, Vector3 atmosphereWavelengths, float dithering = 0, float maxViewDistance = float.MaxValue ) { var message = MessagePool.Get<MyRenderMessageCreateRenderEntityAtmosphere>(MyRenderMessageEnum.CreateRenderEntityAtmosphere); uint id = GetMessageId(); message.ID = id; message.DebugName = debugName; message.Model = model; message.WorldMatrix = worldMatrix; message.Technique = technique; message.Flags = flags; message.CullingOptions = cullingOptions; message.MaxViewDistance = maxViewDistance; message.AtmosphereRadius = atmosphereRadius; message.PlanetRadius = planetRadius; message.AtmosphereWavelengths = atmosphereWavelengths; EnqueueMessage(message); UpdateRenderEntity(id, Vector3.Zero, Vector3.Zero, dithering); return id; }
public static uint CreateRenderEntityCloudLayer( string debugName, string model, List<string> textures, Vector3D centerPoint, double altitude, double minScaledAltitude, bool scalingEnabled, double fadeOutRelativeAltitudeStart, double fadeOutRelativeAltitudeEnd, float applyFogRelativeDistance, double maxPlanetHillRadius, MyMeshDrawTechnique technique, RenderFlags flags, CullingOptions cullingOptions, Vector3D rotationAxis, float angularVelocity, float initialRotation ) { var message = MessagePool.Get<MyRenderMessageCreateRenderEntityClouds>(MyRenderMessageEnum.CreateRenderEntityClouds); uint id = GetMessageId(); message.ID = id; message.Model = model; message.Textures = textures; message.CenterPoint = centerPoint; message.Altitude = altitude; message.MinScaledAltitude = minScaledAltitude; message.ScalingEnabled = scalingEnabled; message.DebugName = debugName; message.Technique = technique; message.RotationAxis = rotationAxis; message.AngularVelocity = angularVelocity; message.InitialRotation = initialRotation; message.MaxPlanetHillRadius = maxPlanetHillRadius; message.FadeOutRelativeAltitudeStart = fadeOutRelativeAltitudeStart; message.FadeOutRelativeAltitudeEnd = fadeOutRelativeAltitudeEnd; message.ApplyFogRelativeDistance = applyFogRelativeDistance; EnqueueMessage(message); UpdateRenderEntity(id, null, null); return id; }