From 6be3966b78ffe7c9e9eee5f9a84b1962454c18b0 Mon Sep 17 00:00:00 2001 From: StewStrong Date: Wed, 25 Sep 2024 23:22:44 -0700 Subject: [PATCH] Well the fabric work --- common/build.gradle | 3 +- .../trackOutlines/MixinTrackBlockOutline.java | 134 ------------------ .../mod/common/command/VSCommands.kt | 14 +- .../mod/compat/Weather2Compat.kt | 7 +- .../valkyrienskies-common.mixins.json | 1 - .../cc_restitched/MixinSpeakerSound.java | 5 +- gradle.properties | 2 +- 7 files changed, 12 insertions(+), 154 deletions(-) delete mode 100644 common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/create/client/trackOutlines/MixinTrackBlockOutline.java diff --git a/common/build.gradle b/common/build.gradle index 5e2948337..9a179885f 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -39,8 +39,7 @@ dependencies { //implementation("io.github.fabricators_of_create.Porting-Lib:Porting-Lib:$port_lib_version+$minecraft_version") modCompileOnly("maven.modrinth:create-big-cannons:${createbigcannons_version}") - modCompileOnly("io.github.fabricators_of_create:Porting-Lib:${port_lib_version}+${minecraft_version}") - modCompileOnly("com.rbasamoyai:createbigcannons-fabric-${minecraft_version}:${createbigcannons_version}") + // modCompileOnly("io.github.fabricators_of_create:Porting-Lib:${port_lib_version}+${minecraft_version}") //Bluemap fabric 1.19 modCompileOnly("curse.maven:bluemap-406463:4474497") diff --git a/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/create/client/trackOutlines/MixinTrackBlockOutline.java b/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/create/client/trackOutlines/MixinTrackBlockOutline.java deleted file mode 100644 index 83141fca5..000000000 --- a/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/create/client/trackOutlines/MixinTrackBlockOutline.java +++ /dev/null @@ -1,134 +0,0 @@ -package org.valkyrienskies.mod.mixin.mod_compat.create.client.trackOutlines; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.content.trains.track.TrackBlockOutline; -import com.simibubi.create.content.trains.track.TrackBlockOutline.BezierPointSelection; -import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.minecraft.world.phys.Vec3; -import org.joml.Quaterniond; -import org.joml.Vector3d; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyArg; -import org.spongepowered.asm.mixin.injection.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import org.valkyrienskies.core.api.ships.Ship; -import org.valkyrienskies.core.impl.game.ships.ShipObjectClient; -import org.valkyrienskies.mod.common.VSClientGameUtils; -import org.valkyrienskies.mod.common.VSGameUtilsKt; -import org.valkyrienskies.mod.common.util.VectorConversionsMCKt; - -@Mixin(TrackBlockOutline.class) -public class MixinTrackBlockOutline { - @Unique - private static Vec3 valkyrienskies$cameraVec3; - @Unique - private static Vec3 valkyrienskies$vec; - @Unique - private static Vec3 valkyrienskies$angles; - - @Inject(method = "drawCurveSelection", - at = @At(value = "INVOKE", - target = "Lcom/simibubi/create/content/trains/track/TrackBlockOutline$BezierPointSelection;angles()Lnet/minecraft/world/phys/Vec3;"), - locals = LocalCapture.CAPTURE_FAILHARD) - private static void harvestDrawCurveSelection(final PoseStack ms, final MultiBufferSource buffer, final Vec3 camera, - final CallbackInfo ci, final Minecraft mc, - final BezierPointSelection result, final VertexConsumer vb, final Vec3 vec) { - valkyrienskies$cameraVec3 = camera; - valkyrienskies$vec = result.vec(); - valkyrienskies$angles = result.angles(); - } - @ModifyArg(method = "drawCurveSelection", - at = @At(value = "INVOKE", - target = "Lcom/simibubi/create/content/trains/track/TrackBlockOutline;renderShape(Lnet/minecraft/world/phys/shapes/VoxelShape;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Ljava/lang/Boolean;)V"), - index = 1) - private static PoseStack redirectTransformStackTranslate(final PoseStack ms) { - - final Level level = Minecraft.getInstance().level; - if (level != null && valkyrienskies$vec != null) { - final ShipObjectClient ship; - if ((ship = (ShipObjectClient) VSGameUtilsKt.getShipManagingPos(level, valkyrienskies$vec)) != null) { - final Quaterniond rotation = new Quaterniond().identity(); - final Quaterniond yawQuat = new Quaterniond().rotateY(valkyrienskies$angles.y); - final Quaterniond pitchQuat = new Quaterniond().rotateX(valkyrienskies$angles.x); - - yawQuat.mul(pitchQuat, rotation); - ship.getRenderTransform().getShipToWorldRotation().mul(rotation, rotation); - - final Vector3d worldVec = ship.getRenderTransform().getShipToWorld() - .transformPosition( - new Vector3d(valkyrienskies$vec.x, valkyrienskies$vec.y + .125, valkyrienskies$vec.z), - new Vector3d()); - - ms.popPose(); - ms.pushPose(); - ms.translate(worldVec.x - valkyrienskies$cameraVec3.x, - worldVec.y - valkyrienskies$cameraVec3.y, - worldVec.z - valkyrienskies$cameraVec3.z); - ms.mulPose(VectorConversionsMCKt.toMinecraft(rotation)); - ms.translate(-.5, -.125f, -.5); - } - } - return ms; - } - - @Unique - private static Camera valkyrienskies$info; - @Unique - private static BlockHitResult valkyrienskies$hitResult; - - @ModifyArg(method = "drawCustomBlockSelection", at = @At(value = "INVOKE", - target = "Lnet/minecraft/world/level/border/WorldBorder;isWithinBounds(Lnet/minecraft/core/BlockPos;)Z")) - private static BlockPos modIsWithinBounds(final BlockPos blockPos) { - final Level level = Minecraft.getInstance().level; - if (level != null) { - final Ship ship; - if ((ship = VSGameUtilsKt.getShipManagingPos(level, blockPos)) != null) { - return new BlockPos(VectorConversionsMCKt.toMinecraft(ship.getShipToWorld() - .transformPosition(VectorConversionsMCKt.toJOMLD(blockPos)))); - } - } - return blockPos; - } - - @Inject(method = "drawCustomBlockSelection", - at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;translate(DDD)V")) - private static void harvest(final LevelRenderer context, final Camera info, final HitResult hitResult, - final float partialTicks, - final PoseStack ms, final MultiBufferSource buffers, final CallbackInfoReturnable cir) { - valkyrienskies$info = info; - valkyrienskies$hitResult = (BlockHitResult) hitResult; - } - - @Redirect(method = "drawCustomBlockSelection", - at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;translate(DDD)V")) - private static void redirectTranslate(final PoseStack instance, final double d, final double e, final double f) { - final Level level = Minecraft.getInstance().level; - if (level != null) { - final ShipObjectClient ship; - if ((ship = (ShipObjectClient) VSGameUtilsKt.getShipManagingPos(level, - valkyrienskies$hitResult.getBlockPos())) != null) { - final Vec3 camPos = valkyrienskies$info.getPosition(); - VSClientGameUtils.transformRenderWithShip(ship.getRenderTransform(), instance, - valkyrienskies$hitResult.getBlockPos(), - camPos.x, camPos.y, camPos.z); - } else { - instance.translate(d, e, f); - } - } else { - instance.translate(d, e, f); - } - } -} diff --git a/common/src/main/kotlin/org/valkyrienskies/mod/common/command/VSCommands.kt b/common/src/main/kotlin/org/valkyrienskies/mod/common/command/VSCommands.kt index 1fc4a2968..0d3ca88dd 100644 --- a/common/src/main/kotlin/org/valkyrienskies/mod/common/command/VSCommands.kt +++ b/common/src/main/kotlin/org/valkyrienskies/mod/common/command/VSCommands.kt @@ -3,7 +3,6 @@ package org.valkyrienskies.mod.common.command import com.mojang.brigadier.CommandDispatcher import com.mojang.brigadier.arguments.ArgumentType import com.mojang.brigadier.arguments.BoolArgumentType -import com.mojang.brigadier.arguments.DoubleArgumentType import com.mojang.brigadier.arguments.StringArgumentType import com.mojang.brigadier.builder.LiteralArgumentBuilder import com.mojang.brigadier.builder.RequiredArgumentBuilder @@ -14,7 +13,6 @@ import net.minecraft.commands.arguments.EntityArgument import net.minecraft.commands.arguments.coordinates.BlockPosArgument import net.minecraft.commands.arguments.coordinates.Vec3Argument import net.minecraft.network.chat.Component -import net.minecraft.network.chat.Component.translatable import net.minecraft.world.entity.Entity import net.minecraft.world.phys.BlockHitResult import org.joml.Vector3d @@ -23,12 +21,9 @@ import org.valkyrienskies.core.api.world.ServerShipWorld import org.valkyrienskies.core.api.world.ShipWorld import org.valkyrienskies.core.apigame.ShipTeleportData import org.valkyrienskies.core.impl.game.ShipTeleportDataImpl -import org.valkyrienskies.core.impl.game.ships.ShipData -import org.valkyrienskies.core.impl.game.ships.ShipObject import org.valkyrienskies.core.util.x import org.valkyrienskies.core.util.y import org.valkyrienskies.core.util.z -import org.valkyrienskies.mod.common.dimensionId import org.valkyrienskies.mod.common.getShipManagingPos import org.valkyrienskies.mod.common.util.toJOML import org.valkyrienskies.mod.common.util.toJOMLD @@ -77,14 +72,7 @@ object VSCommands { val r = ShipArgument.getShips(it, "ships").toList() as List val isStatic = BoolArgumentType.getBool(it, "is-static") r.forEach { ship -> - if (ship is ShipObject) { - // TODO: AAAAAAAAA THIS IS HORRIBLE how can the API support this? - (ship.shipData as ShipData).isStatic = isStatic - } else if (ship is ShipData) { - // TODO: AAAAAAAAA THIS IS HORRIBLE how can the API support this? - ship.isStatic = isStatic - } - + ship.isStatic = isStatic } it.source.sendVSMessage( Component.translatable( diff --git a/common/src/main/kotlin/org/valkyrienskies/mod/compat/Weather2Compat.kt b/common/src/main/kotlin/org/valkyrienskies/mod/compat/Weather2Compat.kt index 975b461e8..43e827abc 100644 --- a/common/src/main/kotlin/org/valkyrienskies/mod/compat/Weather2Compat.kt +++ b/common/src/main/kotlin/org/valkyrienskies/mod/compat/Weather2Compat.kt @@ -1,6 +1,7 @@ package org.valkyrienskies.mod.compat import net.minecraft.server.level.ServerLevel +/* import org.joml.Vector3d import org.valkyrienskies.core.api.ships.getAttachment import org.valkyrienskies.mod.common.config.VSGameConfig @@ -8,10 +9,13 @@ import org.valkyrienskies.mod.common.shipObjectWorld import org.valkyrienskies.mod.common.util.GameTickForceApplier import org.valkyrienskies.mod.common.util.toMinecraft import weather2.ServerTickHandler -import weather2.weathersystem.storm.StormObject +import weather2.weathersystem.storm.StormObject= + */ object Weather2Compat { + // Weather mod is not on 1.19.2, so it must be disabled! fun tick(level: ServerLevel) { + /* val mgr = ServerTickHandler .getWeatherManagerFor(level.dimension()) @@ -69,5 +73,6 @@ object Weather2Compat { } } } + */ } } diff --git a/common/src/main/resources/valkyrienskies-common.mixins.json b/common/src/main/resources/valkyrienskies-common.mixins.json index 2b0fc4659..08c5f8bb8 100644 --- a/common/src/main/resources/valkyrienskies-common.mixins.json +++ b/common/src/main/resources/valkyrienskies-common.mixins.json @@ -169,7 +169,6 @@ "mod_compat.create.client.MixinSchematicTransformation", "mod_compat.create.client.MixinValueBox", "mod_compat.create.client.trackOutlines.MixinBigOutlines", - "mod_compat.create.client.trackOutlines.MixinTrackBlockOutline", "mod_compat.flywheel.InstancingEngineAccessor", "mod_compat.flywheel.MixinBlockEntityInstanceManager", "mod_compat.flywheel.MixinInstanceManager", diff --git a/fabric/src/main/java/org/valkyrienskies/mod/fabric/mixin/compat/cc_restitched/MixinSpeakerSound.java b/fabric/src/main/java/org/valkyrienskies/mod/fabric/mixin/compat/cc_restitched/MixinSpeakerSound.java index 1244e4b49..fe62b1155 100644 --- a/fabric/src/main/java/org/valkyrienskies/mod/fabric/mixin/compat/cc_restitched/MixinSpeakerSound.java +++ b/fabric/src/main/java/org/valkyrienskies/mod/fabric/mixin/compat/cc_restitched/MixinSpeakerSound.java @@ -5,6 +5,7 @@ import net.minecraft.client.resources.sounds.AbstractSoundInstance; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; import org.joml.Vector3d; @@ -23,8 +24,8 @@ public abstract class MixinSpeakerSound extends AbstractSoundInstance implements @Unique private SpeakerPosition speakerPosition; @Unique private Ship ship; - protected MixinSpeakerSound(ResourceLocation arg, SoundSource arg2) { - super(arg, arg2); + protected MixinSpeakerSound(ResourceLocation arg, SoundSource arg2, RandomSource arg3) { + super(arg, arg2, arg3); } @Inject( diff --git a/gradle.properties b/gradle.properties index 688ed12a2..6de3bbe7d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ create_fabric_version=0.5.1-c-build.1160+mc1.19.2 flywheel_version_fabric=0.6.9-6 # https://modrinth.com/mod/create-big-cannons/version/ -createbigcannons_version= 0.5.2.a +createbigcannons_version=0.5.2.a vs_core_version=1.1.0+cf7b0d3c5b # Prevent kotlin from autoincluding stdlib as a dependency, which breaks