From b5c0f7f7446ec7eedf40ec7e92501ccd70bc5b38 Mon Sep 17 00:00:00 2001 From: gdavid04 Date: Sun, 18 Feb 2024 15:54:43 +0100 Subject: [PATCH] Plans --- README.md | 59 ++++++++++++++++++- .../gdavid/sixdoftest/mixin/EntityMixin.java | 2 +- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4f89143..0a69586 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # 6DOF Test +A WIP space mod for Fabric 1.20.1 with 6DOF movement. ## Zero gravity space - [x] no gravity @@ -7,14 +8,70 @@ - [ ] correct on ground to use all surface orientations - [x] no fall damage - [ ] bump into wall damage regardless of direction -- [ ] make mob AI less helpless in zero gravity +- [ ] make mob AI less helpless +- [ ] make knockback work vertically +- [ ] make pushing entities work vertically +- [ ] disable water flowing downwards +- [ ] make area effect clouds spherical +- [ ] consider slowing down movement without thrusters + - [ ] consider making movement speed depend on pressure when not using thrusters + - [ ] allow launching off of walls faster + - [ ] allow moving along walls normally without thrusters ## 6DOF - [x] camera - [ ] fix glitch when looking upside down (gimbal lock?) + - [ ] fix frustum culling - [x] model pose - [ ] look around - [x] controls for roll - [ ] camera relative movement (hook Entity.movementInputToVelocity) - [ ] sync orientation - [x] animate transition back to upright (roll) + +## Air +- [ ] make breath meter deplete in space +- [ ] oxygen tanks +- [ ] pressurization system + - [ ] airlocks +- [ ] make vacuum suck entities and air out of pressurized areas +- [ ] make vacuum deal damage + +## Equipment +- [ ] space suit + - [ ] thrusters + - [ ] fuel + - [ ] option to use oxygen instead of fuel + - [ ] particle effects when using thrusters + - [ ] forward + - [ ] directional thrusters + - [ ] rotation + - [ ] sound effects when using thrusters + - [ ] make forwards thrust faster + - [ ] helmet + - [ ] overlay + - [ ] oxygen supply +- [ ] tether + - [ ] limit movement distance from tether + - [ ] attach to tether on right click + - [ ] detach from previous tether when already attached to one + - [ ] keybind to detach from tether + - [ ] keybind to pull yourself towards tether +- [ ] antigravity chamber multiblock + - [ ] turns on zero gravity inside when powered +- [ ] gravity generator +- [ ] some sort of power source for gravity manipulating equipment + +## World +- [ ] space station dimension + - [ ] zero gravity + - [ ] maybe add a very weak pull towards the planet + - [ ] respect no gravity tag + - [ ] vacuum + - [ ] space skybox + - [ ] planet the station is orbiting + - [ ] day/night cycle for planet texture + - [ ] rotate skybox and planet as the station orbits the planet + - [ ] sky light based on planet's sun + - [ ] planet occluding the sun + - [ ] maybe sky light direction based on sun direction (would be easiest with shaders) diff --git a/src/main/java/gdavid/sixdoftest/mixin/EntityMixin.java b/src/main/java/gdavid/sixdoftest/mixin/EntityMixin.java index f330a8b..f4a1b91 100644 --- a/src/main/java/gdavid/sixdoftest/mixin/EntityMixin.java +++ b/src/main/java/gdavid/sixdoftest/mixin/EntityMixin.java @@ -44,7 +44,7 @@ private void noGravityIn6DOFSpace(CallbackInfoReturnable callback) { @Redirect(method = "writeNbt", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;hasNoGravity()Z")) private boolean noSaveGravityIn6DOFSpace(Entity instance) { - // TODO: do the same hack for Buckeable.copyDataToStack, we don't want people bringing back floating fish from space + // TODO: do the same hack for Bucketable.copyDataToStack, we don't want people bringing back floating fish from space if (SpaceManager.isIn6dof(instance)) return self().getDataTracker().get(NO_GRAVITY); return instance.hasNoGravity(); }