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)); }
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); }
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 }
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); }