示例#1
0
        private float PlanetaryInfluence()
        {
            BoundingBoxD box           = _thisEntity.PositionComp.WorldAABB;
            MyPlanet     closestPlanet = MyGamePruningStructure.GetClosestPlanet(ref box);

            if (closestPlanet == null)
            {
                return(0);
            }
            MyGravityProviderComponent myGravityProviderComponent = closestPlanet.Components.Get <MyGravityProviderComponent>();

            return(closestPlanet.GetAirDensity(box.Center) * myGravityProviderComponent.GetGravityMultiplier(box.Center));
        }
示例#2
0
        public static float CalculateRequiredLift(MyCubeBlock block)
        {
            BoundingBoxD box           = block.PositionComp.WorldAABB;
            MyPlanet     closestPlanet = MyGamePruningStructure.GetClosestPlanet(ref box);

            if (closestPlanet == null)
            {
                return(0);
            }
            MyGravityProviderComponent myGravityProviderComponent = closestPlanet.Components.Get <MyGravityProviderComponent>();
            MatrixD worldMatrixRef = block.PositionComp.WorldMatrixRef;

            return(block.CubeGrid.Mass * myGravityProviderComponent.GetGravityMultiplier(worldMatrixRef.Translation) * GravityConstant);
        }
示例#3
0
        public static float PlanetaryInfluence(IMyEntity block)
        {
            BoundingBoxD box           = block.PositionComp.WorldAABB;
            MyPlanet     closestPlanet = MyGamePruningStructure.GetClosestPlanet(ref box);

            if (closestPlanet == null)
            {
                return(0);
            }
            MyGravityProviderComponent myGravityProviderComponent = closestPlanet.Components.Get <MyGravityProviderComponent>();

            return(closestPlanet.GetAirDensity(box.Center) * myGravityProviderComponent.GetGravityMultiplier(box.Center));
            //MySimpleObjectDraw
            //billboa
        }
示例#4
0
        bool IsInGravity()
        {
            Vector3D position = grid.MainGrid.PositionComp.GetPosition();
            MyPlanet planet   = MyGamePruningStructure.GetClosestPlanet(position);

            if (planet == null)
            {
                return(false);
            }

            MyGravityProviderComponent gravComp = planet.Components.Get <MyGravityProviderComponent>();

            if (gravComp == null)
            {
                return(false);
            }

            return(gravComp.GetGravityMultiplier(position) > 0);
        }