Thanks,
@FirEmerald wrote:
I am contacting you and Micdoodle as per EzerArch's suggestion to ask if the IArmorGravity interface can be extended to apply to space stations, as wearing the gravity suit makes it nigh impossible to navigate space stations due to jump boost propelling you 20+ blocks into the air.
The Gravity Suit is from your Metroid Prime mod that we talked about a couple of years back? See detailed question below, is there anything else you need switched off for IArmorGravity as well as that jump boost?
@pra and others:
I need to know
specifically what needs changing. There are many components to Zero G - a.k.a. "freefall" - it's not a simple subject bearing in mind we also have to interact with the vanilla game engine instead of starting from scratch! Roughly speaking the components are these:
1) Replace vanilla gravity "acceleration" of -0.08 in the Y direction with gravity specified by the IGalacticraftWorldProvider - this happens in
all Galacticraft dimensions. In zero or low gravity dimensions (like Asteroids) the Galacticraft-specified gravity is low but not zero. It's because there's a lower limit due to what some parts of vanilla mechanics can handle
2) For the player entity: undo any vanilla (or modded) motion each tick, and replace it with our own physics, i.e. continue moving with the same momentum until there's an impulse or collision (Newton's 1st Law!)
3) For the player entity: control effects, acceleration from using the W/S/Sneak/Jump keys (and A/D in Creative mode)
4) For the player entity: new sneak/jump mechanics
5) For the player entity: new collision mechanics
6) Different mechanics and control effects for players who are in
contact with a surface, for example a wall - this is supposed to signify an astronaut pushing themselves around inside a space station using their arms (I plan to animate the arms when I have time)
7) For
all entities: similar to (2)
8) For
all entities: update entity positions even if they are close to the edge of the loaded chunks (keep mobs moving with the same momentum instead of 'freezing')
9) Evolved Zombies and Evolved Skeletons: "tumbling" rotation motion if they are in freefall, this is an Easter Egg
10)
If the dimension is
spinning, extra adjustment to position and motion of
all entities which are not in contact with solid blocks, so that the entity doesn't spin around with the solid blocks unless the entity is actually standing on the solid blocks [I think there's currently a minor bug for EntityItems - dropped items - which are being updated correctly only server side not client side so will "glitch" when the client receives a server update, EntityItems already glitch like this in vanilla but the change is bigger if the dimension is spinning]
11)
If the dimension is
spinning, extra physics adjustment for the
player if he is inside the space station or in contact with solid blocks, to give the correct physics effects of the spin: centrifugal force, maybe even a Coriolis effect happens automatically here but I didn't check.
@pra I need you to be more specific about what you mean by "selectively disable zero g effects for certain entities". And maybe you really want us to test whether the player is wearing an item, like the IArmorGravity?