diff --git a/src/main/java/dan200/computercraft/api/client/TransformedModel.java b/src/main/java/dan200/computercraft/api/client/TransformedModel.java index 9edbbcdc5..201d53333 100644 --- a/src/main/java/dan200/computercraft/api/client/TransformedModel.java +++ b/src/main/java/dan200/computercraft/api/client/TransformedModel.java @@ -6,7 +6,6 @@ package dan200.computercraft.api.client; -import dan200.computercraft.fabric.mixin.AffineTransformationAccess; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -16,6 +15,7 @@ import net.minecraft.client.util.ModelIdentifier; import net.minecraft.util.math.AffineTransformation; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; +import net.minecraft.util.math.Vec3f; import javax.annotation.Nonnull; import java.util.Objects; @@ -73,22 +73,14 @@ public final class TransformedModel { matrixStack.push(); - AffineTransformationAccess access = (AffineTransformationAccess) (Object) matrix; - if( access.getTranslation() != null ) - { - matrixStack.translate( access.getTranslation().getX(), access.getTranslation().getY(), access.getTranslation().getZ() ); - } + Vec3f translation = matrix.getTranslation(); + matrixStack.translate( translation.getX(), translation.getY(), translation.getZ() ); matrixStack.multiply( matrix.getRotation2() ); - if( access.getScale() != null ) - { - matrixStack.scale( access.getScale().getX(), access.getScale().getY(), access.getScale().getZ() ); - } + Vec3f scale = matrix.getScale(); + matrixStack.scale( scale.getX(), scale.getY(), scale.getZ() ); - if( access.getRotation1() != null ) - { - matrixStack.multiply( access.getRotation1() ); - } + matrixStack.multiply( matrix.getRotation1() ); } } diff --git a/src/main/java/dan200/computercraft/fabric/mixin/AffineTransformationAccess.java b/src/main/java/dan200/computercraft/fabric/mixin/AffineTransformationAccess.java deleted file mode 100644 index 1a1e93b8f..000000000 --- a/src/main/java/dan200/computercraft/fabric/mixin/AffineTransformationAccess.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.fabric.mixin; - -import net.minecraft.util.math.AffineTransformation; -import net.minecraft.util.math.Vec3f; -import net.minecraft.util.math.Quaternion; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin( AffineTransformation.class ) -public interface AffineTransformationAccess -{ - @Accessor - Vec3f getTranslation(); - - @Accessor - Vec3f getScale(); - - @Accessor - Quaternion getRotation1(); -} diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MixinBlockEntity.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinBlockEntity.java deleted file mode 100644 index 3c8b42876..000000000 --- a/src/main/java/dan200/computercraft/fabric/mixin/MixinBlockEntity.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.fabric.mixin; - -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; -import org.spongepowered.asm.mixin.Shadow; - -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; - -@Mixin( BlockEntity.class ) -public class MixinBlockEntity -{ - @Final - @Mutable - @Shadow - protected BlockPos pos; - - public void setBlockPos( BlockPos pos ) - { - this.pos = pos; - } -} diff --git a/src/main/java/dan200/computercraft/fabric/mixin/GameRendererMixin.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinGameRenderer.java similarity index 95% rename from src/main/java/dan200/computercraft/fabric/mixin/GameRendererMixin.java rename to src/main/java/dan200/computercraft/fabric/mixin/MixinGameRenderer.java index a5cdf6581..7bb875fc3 100644 --- a/src/main/java/dan200/computercraft/fabric/mixin/GameRendererMixin.java +++ b/src/main/java/dan200/computercraft/fabric/mixin/MixinGameRenderer.java @@ -24,9 +24,8 @@ import java.util.List; import java.util.function.Consumer; @Mixin( GameRenderer.class ) -public class GameRendererMixin +public class MixinGameRenderer { - @SuppressWarnings( "UnresolvedMixinReference" ) @Inject( method = "loadShaders", at = @At( value = "INVOKE_ASSIGN", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", ordinal = 53 ), locals = LocalCapture.CAPTURE_FAILSOFT ) private void loadShaders( ResourceManager manager, CallbackInfo info, List list, List>> list2 ) throws IOException { diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MusicDiscItemAccessor.java b/src/main/java/dan200/computercraft/fabric/mixin/MusicDiscItemAccessor.java deleted file mode 100644 index 58a9fc4c8..000000000 --- a/src/main/java/dan200/computercraft/fabric/mixin/MusicDiscItemAccessor.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.fabric.mixin; - -import net.minecraft.item.MusicDiscItem; -import net.minecraft.sound.SoundEvent; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin( MusicDiscItem.class ) -public interface MusicDiscItemAccessor -{ - @Accessor - SoundEvent getSound(); -} diff --git a/src/main/java/dan200/computercraft/fabric/mixin/SoundEventAccess.java b/src/main/java/dan200/computercraft/fabric/mixin/SoundEventAccess.java deleted file mode 100644 index 87e9c7896..000000000 --- a/src/main/java/dan200/computercraft/fabric/mixin/SoundEventAccess.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.fabric.mixin; - -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin( SoundEvent.class ) -public interface SoundEventAccess -{ - @Accessor - Identifier getId(); -} diff --git a/src/main/java/dan200/computercraft/shared/media/items/RecordMedia.java b/src/main/java/dan200/computercraft/shared/media/items/RecordMedia.java index 730f8584f..6a4a7f8d2 100644 --- a/src/main/java/dan200/computercraft/shared/media/items/RecordMedia.java +++ b/src/main/java/dan200/computercraft/shared/media/items/RecordMedia.java @@ -3,11 +3,9 @@ * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. * Send enquiries to dratcliffe@gmail.com */ - package dan200.computercraft.shared.media.items; import dan200.computercraft.api.media.IMedia; -import dan200.computercraft.fabric.mixin.MusicDiscItemAccessor; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.MusicDiscItem; @@ -53,6 +51,6 @@ public final class RecordMedia implements IMedia { return null; } - return ((MusicDiscItemAccessor) item).getSound(); + return ((MusicDiscItem) item).getSound(); } } diff --git a/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java b/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java index 743a82c26..e37f4411e 100644 --- a/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java +++ b/src/main/java/dan200/computercraft/shared/network/NetworkHandler.java @@ -152,10 +152,9 @@ public final class NetworkHandler public static void sendToAllTracking( NetworkMessage packet, WorldChunk chunk ) { - // maybe bug with worlds for( PlayerEntity player : chunk.getWorld().getPlayers() ) { - if ( player.getChunkPos().equals( chunk.getPos() ) ) + if ( chunk.getWorld().getRegistryKey().getValue() == player.getEntityWorld().getRegistryKey().getValue() && player.getChunkPos().equals( chunk.getPos() ) ) { ((ServerPlayerEntity) player).networkHandler.sendPacket( new CustomPayloadS2CPacket( ID, encode( packet ) ) ); } diff --git a/src/main/java/dan200/computercraft/shared/network/client/PlayRecordClientMessage.java b/src/main/java/dan200/computercraft/shared/network/client/PlayRecordClientMessage.java index 3e623a892..35587fdcf 100644 --- a/src/main/java/dan200/computercraft/shared/network/client/PlayRecordClientMessage.java +++ b/src/main/java/dan200/computercraft/shared/network/client/PlayRecordClientMessage.java @@ -6,7 +6,6 @@ package dan200.computercraft.shared.network.client; -import dan200.computercraft.fabric.mixin.SoundEventAccess; import dan200.computercraft.shared.network.NetworkMessage; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -74,7 +73,7 @@ public class PlayRecordClientMessage implements NetworkMessage { buf.writeBoolean( true ); buf.writeString( name ); - buf.writeIdentifier( ((SoundEventAccess) soundEvent).getId() ); + buf.writeIdentifier( soundEvent.getId() ); } } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerPeripheral.java b/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerPeripheral.java index c943fd2f7..a74ea4849 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerPeripheral.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerPeripheral.java @@ -11,7 +11,6 @@ import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IPeripheral; -import dan200.computercraft.fabric.mixin.SoundEventAccess; import dan200.computercraft.shared.network.NetworkHandler; import dan200.computercraft.shared.network.client.SpeakerMoveClientMessage; import dan200.computercraft.shared.network.client.SpeakerPlayClientMessage; @@ -206,7 +205,7 @@ public abstract class SpeakerPeripheral implements IPeripheral // If the resource location for note block notes changes, this method call will need to be updated boolean success = playSound( context, - ((SoundEventAccess) instrument.getSound()).getId(), + instrument.getSound().getId(), volume, (float) Math.pow( 2.0, (pitch - 12.0) / 12.0 ), true ); diff --git a/src/main/resources/computercraft.mixins.json b/src/main/resources/computercraft.mixins.json index 219edc8ac..482f7cd98 100644 --- a/src/main/resources/computercraft.mixins.json +++ b/src/main/resources/computercraft.mixins.json @@ -6,25 +6,21 @@ "MinecraftServerAccess", "MixinBlock", "MixinEntity", - "MixinBlockEntity", "MixinServerWorld", "MixinWorld", "SignBlockEntityAccess", - "SoundEventAccess", "WorldSavePathAccess", "MixinServerPlayerInteractionManager", - "MusicDiscItemAccessor", - "GameRendererMixin", "MixinMatrix4f" ], "client": [ - "AffineTransformationAccess", "ChatHudAccess", "HeldItemRendererAccess", "MixinHeldItemRenderer", "MixinItemFrameEntityRenderer", "MixinMinecraftClient", "MixinScreen", + "MixinGameRenderer", "MixinWorldRenderer" ], "server": [