Sable Gravity 0.7.4
Sable Gravity is a multidimensional gravity-frame kernel for moving and arbitrarily rotated
Sable ships. A frame owns a dimension-qualified identity, a local coordinate system, a rigid
pose and a local -Y gravity direction.
Physics model
- Players use an oriented body and plot-local feet anchor. Crouching, standing, jumping, creative flight, edge sneaking and wall sliding are resolved in the ship frame without using the parent-world AABB as the source of truth.
- Entities always remain in physical parent-world coordinates. Sable is the only owner of their OBB collision, tracking and packet conversion; Sable Gravity rotates gravity, locomotion and drag into the selected frame without exposing the hidden plot grid to entity networking.
- Non-player entities keep their ordinary parent-world/network position. Their oriented body is foot-anchored only inside Sable's collision transform, so items and mobs do not need a spawn-time coordinate rebase and cannot leak plot coordinates into packets.
- Client particle attachment and packet conversion remain on Sable's native path. This mod does not install a second universal particle lifecycle on top of Sable's particle mixins.
- For the local player, plot-local feet position and relative velocity are authoritative. A translating or rotating ship is reconstructed from them every tick instead of accumulating pose deltas.
Dimensions and Cosmonautics
GravityFrameId contains provider, dimension and local UUID. Frame lookup is always performed in
the entity's current Level, so an identical SubLevel UUID in another dimension cannot alias the
old ship. A recreated destination frame is resolved again from that level's Sable container.
Gravity magnitude comes from the final parent-world Entity#getGravity() result while the entity
stays physical. Dimension/altitude modifiers such as Cosmonautics therefore compose with Sable
direction and never evaluate against the plot's synthetic Y coordinate.
There is no hardcoded list of planets, dimensions or entity types. The built-in provider accepts
Sable SubLevels from any Level, including Cosmonautics dimensions. Other mods can register a
higher-priority GravityFrameProvider through SableGravityApi for directional gravity and frame
consumers; arbitrary-orientation ship collision additionally requires a Sable-backed frame.
Development
The development client loads Create, Aeronautics, Cosmonautics and the local Minecraft MCP bridge.
The bridge is configured for 127.0.0.1:8765 only; it is not packaged into the release jar.
Build with:
.\gradlew.bat build
Player controls remain available through /sablegravity enable|disable,
/sablegravity strength <value> and /sablegravity test <state|frame|support|all>.