Skip to content

Commit

Permalink
Merge pull request #629 from TechTastic/1.18.x/compat/modular_routers
Browse files Browse the repository at this point in the history
Modular Routers Compatibility
  • Loading branch information
StewStrong authored Nov 21, 2023
2 parents 90e23ed + 9b3a101 commit 75ac6a0
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
3 changes: 3 additions & 0 deletions forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ dependencies {
//modImplementation("curse.maven:tis3d-238603:3738437")
//modImplementation("curse.maven:markdownmanual-502485:3738124")

// Modular Routers
modCompileOnly("curse.maven:mr-250294:3776175")

// Add Kotlin for Forge (3.12.0)
forgeRuntimeLibrary('curse.maven:kotlinforforge-351264:4513187')

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.valkyrienskies.mod.forge.mixin.compat.modular_routers;

import me.desht.modularrouters.block.tile.ModularRouterBlockEntity;
import me.desht.modularrouters.container.ContainerModularRouter;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import org.joml.Vector3d;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.valkyrienskies.core.api.ships.Ship;
import org.valkyrienskies.mod.common.VSGameUtilsKt;
import org.valkyrienskies.mod.common.util.VectorConversionsMCKt;

@Pseudo
@Mixin(ContainerModularRouter.class)
public class MixinContainerModularRouter {
@Shadow
@Final
private ModularRouterBlockEntity router;

@Redirect(method = "stillValid", at = @At(target = "Lnet/minecraft/world/phys/Vec3;distanceToSqr(Lnet/minecraft/world/phys/Vec3;)D", value = "INVOKE"))
public double ValkyrienSkies$distanceCheck(final Vec3 instance, final Vec3 vec3) {
final Level level = router.getLevel();
final Ship ship = VSGameUtilsKt.getShipManagingPos(level, instance);
if (ship == null)
return instance.distanceToSqr(vec3);

final Vector3d newInstance = ship.getTransform().getShipToWorld().transformPosition(VectorConversionsMCKt.toJOML(instance));
return VectorConversionsMCKt.toMinecraft(newInstance).distanceToSqr(vec3);
}
}
1 change: 1 addition & 0 deletions forge/src/main/resources/valkyrienskies-forge.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"compat.immersivengineering.MixinBlockEntityInventory",
"compat.thermalexpansion.MixinTileCoFH",
"compat.tis3d.MixinInfraredPacketEntity",
"compat.modular_routers.MixinContainerModularRouter",
"feature.forge_interact.MixinIForgePlayer",
"world.level.block.FireMixin"
],
Expand Down

0 comments on commit 75ac6a0

Please sign in to comment.