From 686bd75c6fe996d7c7ec8a0ca33d31a830eb3fc6 Mon Sep 17 00:00:00 2001 From: StewStrong Date: Tue, 24 Sep 2024 04:31:20 -0700 Subject: [PATCH] Make gravity dimension specific --- .../mod/mixin/server/MixinMinecraftServer.java | 4 +++- .../mod/mixin/server/world/MixinServerLevel.java | 8 ++++++-- .../main/kotlin/org/valkyrienskies/mod/util/McMathUtil.kt | 4 ++++ gradle.properties | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/org/valkyrienskies/mod/mixin/server/MixinMinecraftServer.java b/common/src/main/java/org/valkyrienskies/mod/mixin/server/MixinMinecraftServer.java index 1b1af8967..c5642f5f3 100644 --- a/common/src/main/java/org/valkyrienskies/mod/mixin/server/MixinMinecraftServer.java +++ b/common/src/main/java/org/valkyrienskies/mod/mixin/server/MixinMinecraftServer.java @@ -65,6 +65,7 @@ import org.valkyrienskies.mod.compat.LoadedMods; import org.valkyrienskies.mod.compat.Weather2Compat; import org.valkyrienskies.mod.util.KrunchSupport; +import org.valkyrienskies.mod.util.McMathUtilKt; @Mixin(MinecraftServer.class) public abstract class MixinMinecraftServer implements IShipObjectWorldServerProvider, GameServer { @@ -159,7 +160,8 @@ private void postCreateLevels(final CallbackInfo ci) { getShipObjectWorld().addDimension( VSGameUtilsKt.getDimensionId(overworld()), - VSGameUtilsKt.getYRange(overworld()) + VSGameUtilsKt.getYRange(overworld()), + McMathUtilKt.getDEFAULT_WORLD_GRAVITY() ); } diff --git a/common/src/main/java/org/valkyrienskies/mod/mixin/server/world/MixinServerLevel.java b/common/src/main/java/org/valkyrienskies/mod/mixin/server/world/MixinServerLevel.java index 20bf2a70d..af9fa6e19 100644 --- a/common/src/main/java/org/valkyrienskies/mod/mixin/server/world/MixinServerLevel.java +++ b/common/src/main/java/org/valkyrienskies/mod/mixin/server/world/MixinServerLevel.java @@ -56,6 +56,7 @@ import org.valkyrienskies.mod.common.util.VectorConversionsMCKt; import org.valkyrienskies.mod.mixin.accessors.server.level.ChunkMapAccessor; import org.valkyrienskies.mod.mixin.accessors.server.level.DistanceManagerAccessor; +import org.valkyrienskies.mod.util.McMathUtilKt; @Mixin(ServerLevel.class) public abstract class MixinServerLevel implements IShipObjectWorldServerProvider, VSServerLevel { @@ -95,8 +96,11 @@ void onInit(final MinecraftServer minecraftServer, final Executor executor, // This only happens when overworld gets loaded on startup, we have a mixin in MixinMinecraftServer for this specific case if (getShipObjectWorld() != null) { - getShipObjectWorld().addDimension(VSGameUtilsKt.getDimensionId((ServerLevel) (Object) this), - VSGameUtilsKt.getYRange((ServerLevel) (Object) this)); + getShipObjectWorld().addDimension( + VSGameUtilsKt.getDimensionId((ServerLevel) (Object) this), + VSGameUtilsKt.getYRange((ServerLevel) (Object) this), + McMathUtilKt.getDEFAULT_WORLD_GRAVITY() + ); } } diff --git a/common/src/main/kotlin/org/valkyrienskies/mod/util/McMathUtil.kt b/common/src/main/kotlin/org/valkyrienskies/mod/util/McMathUtil.kt index 507aea658..43968e4f7 100644 --- a/common/src/main/kotlin/org/valkyrienskies/mod/util/McMathUtil.kt +++ b/common/src/main/kotlin/org/valkyrienskies/mod/util/McMathUtil.kt @@ -1,6 +1,8 @@ package org.valkyrienskies.mod.util import net.minecraft.world.phys.AABB +import org.joml.Vector3d +import org.joml.Vector3dc fun AABB.scale(scale: Double): AABB { val sizeX = (this.xsize * scale) / 2 @@ -15,3 +17,5 @@ fun AABB.scale(scale: Double): AABB { this.center.z + sizeZ ) } + +val DEFAULT_WORLD_GRAVITY: Vector3dc = Vector3d(0.0, -10.0, 0.0) diff --git a/gradle.properties b/gradle.properties index 9a8749045..8f0f19c5d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ forge_version=1.18.2-40.2.4 create_fabric_version=0.5.1-f-build.1333+mc1.18.2 flywheel_version_fabric=0.6.9-38 createbigcannons_version= 0.5.2-nightly-e815ca4 -vs_core_version=1.1.0+04c69b50d2 +vs_core_version=1.1.0+cf7b0d3c5b # Prevent kotlin from autoincluding stdlib as a dependency, which breaks # gradle's composite builds (includeBuild) for some reason. We'll add it manually kotlin.stdlib.default.dependency=false