コード例 #1
0
        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);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
 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;
 }
コード例 #4
0
        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;
        }
コード例 #5
0
        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;
        }
コード例 #6
0
		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;
		}