1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-08-26 15:32:17 +00:00

fix: mixins

This commit is contained in:
Nikita Savyolov 2021-10-08 23:08:03 +03:00
parent a7a9f4fa13
commit 86aecd945e
No known key found for this signature in database
GPG Key ID: 32C1EF023AFC184B
11 changed files with 12 additions and 119 deletions

View File

@ -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() );
}
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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<Program> list, List<Pair<Shader, Consumer<Shader>>> list2 ) throws IOException
{

View File

@ -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();
}

View File

@ -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();
}

View File

@ -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();
}
}

View File

@ -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 ) ) );
}

View File

@ -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() );
}
}

View File

@ -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 );

View File

@ -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": [