From 040c8d7280ad6860836b0ea78f379b74eaaa87b2 Mon Sep 17 00:00:00 2001 From: Alexander01998 Date: Tue, 20 Aug 2019 17:35:16 +0200 Subject: [PATCH] RenderBlockModelListener -> TesselateBlockListener --- ...tener.java => TesselateBlockListener.java} | 20 +++---- .../mixin/BlockModelRendererMixin.java | 60 ------------------- .../mixin/TerrainRenderContextMixin.java | 38 ++++++++++++ src/main/resources/modid.mixins.json | 4 +- 4 files changed, 50 insertions(+), 72 deletions(-) rename src/main/java/net/wurstclient/events/{RenderBlockModelListener.java => TesselateBlockListener.java} (55%) delete mode 100644 src/main/java/net/wurstclient/mixin/BlockModelRendererMixin.java create mode 100644 src/main/java/net/wurstclient/mixin/TerrainRenderContextMixin.java diff --git a/src/main/java/net/wurstclient/events/RenderBlockModelListener.java b/src/main/java/net/wurstclient/events/TesselateBlockListener.java similarity index 55% rename from src/main/java/net/wurstclient/events/RenderBlockModelListener.java rename to src/main/java/net/wurstclient/events/TesselateBlockListener.java index 57f117a8..f377872a 100644 --- a/src/main/java/net/wurstclient/events/RenderBlockModelListener.java +++ b/src/main/java/net/wurstclient/events/TesselateBlockListener.java @@ -13,16 +13,16 @@ import net.minecraft.block.BlockState; import net.wurstclient.event.CancellableEvent; import net.wurstclient.event.Listener; -public interface RenderBlockModelListener extends Listener +public interface TesselateBlockListener extends Listener { - public void onRenderBlockModel(RenderBlockModelEvent event); + public void onTesselateBlock(TesselateBlockEvent event); - public static class RenderBlockModelEvent - extends CancellableEvent + public static class TesselateBlockEvent + extends CancellableEvent { private final BlockState state; - public RenderBlockModelEvent(BlockState state) + public TesselateBlockEvent(BlockState state) { this.state = state; } @@ -33,11 +33,11 @@ public interface RenderBlockModelListener extends Listener } @Override - public void fire(ArrayList listeners) + public void fire(ArrayList listeners) { - for(RenderBlockModelListener listener : listeners) + for(TesselateBlockListener listener : listeners) { - listener.onRenderBlockModel(this); + listener.onTesselateBlock(this); if(isCancelled()) break; @@ -45,9 +45,9 @@ public interface RenderBlockModelListener extends Listener } @Override - public Class getListenerType() + public Class getListenerType() { - return RenderBlockModelListener.class; + return TesselateBlockListener.class; } } } diff --git a/src/main/java/net/wurstclient/mixin/BlockModelRendererMixin.java b/src/main/java/net/wurstclient/mixin/BlockModelRendererMixin.java deleted file mode 100644 index 4c7fabbf..00000000 --- a/src/main/java/net/wurstclient/mixin/BlockModelRendererMixin.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2014 - 2019 | Wurst-Imperium | All rights reserved. - * - * This source code is subject to the terms of the GNU General Public - * License, version 3. If a copy of the GPL was not distributed with this - * file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt - */ -package net.wurstclient.mixin; - -import java.util.Random; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import net.minecraft.block.BlockState; -import net.minecraft.client.render.BufferBuilder; -import net.minecraft.client.render.block.BlockModelRenderer; -import net.minecraft.client.render.model.BakedModel; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ExtendedBlockView; -import net.wurstclient.WurstClient; -import net.wurstclient.events.RenderBlockModelListener.RenderBlockModelEvent; - -@Mixin(BlockModelRenderer.class) -public class BlockModelRendererMixin -{ - @Inject(at = {@At("HEAD")}, - method = { - "tesselateSmooth(Lnet/minecraft/world/ExtendedBlockView;Lnet/minecraft/client/render/model/BakedModel;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/render/BufferBuilder;ZLjava/util/Random;J)Z"}, - cancellable = true) - private void onTesselateSmooth(ExtendedBlockView extendedBlockView_1, - BakedModel bakedModel_1, BlockState state, BlockPos blockPos_1, - BufferBuilder bufferBuilder_1, boolean boolean_1, Random random_1, - long long_1, CallbackInfoReturnable ci) - { - RenderBlockModelEvent event = new RenderBlockModelEvent(state); - WurstClient.INSTANCE.getEventManager().fire(event); - - if(event.isCancelled()) - ci.cancel(); - } - - @Inject(at = {@At("HEAD")}, - method = { - "tesselateFlat(Lnet/minecraft/world/ExtendedBlockView;Lnet/minecraft/client/render/model/BakedModel;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/render/BufferBuilder;ZLjava/util/Random;J)Z"}, - cancellable = true) - private void onTesselateFlat(ExtendedBlockView extendedBlockView_1, - BakedModel bakedModel_1, BlockState state, BlockPos blockPos_1, - BufferBuilder bufferBuilder_1, boolean boolean_1, Random random_1, - long long_1, CallbackInfoReturnable ci) - { - RenderBlockModelEvent event = new RenderBlockModelEvent(state); - WurstClient.INSTANCE.getEventManager().fire(event); - - if(event.isCancelled()) - ci.cancel(); - } -} diff --git a/src/main/java/net/wurstclient/mixin/TerrainRenderContextMixin.java b/src/main/java/net/wurstclient/mixin/TerrainRenderContextMixin.java new file mode 100644 index 00000000..af4ab6e7 --- /dev/null +++ b/src/main/java/net/wurstclient/mixin/TerrainRenderContextMixin.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2014 - 2019 | Wurst-Imperium | All rights reserved. + * + * This source code is subject to the terms of the GNU General Public + * License, version 3. If a copy of the GPL was not distributed with this + * file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt + */ +package net.wurstclient.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.fabricmc.indigo.renderer.render.TerrainRenderContext; +import net.minecraft.block.BlockState; +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.util.math.BlockPos; +import net.wurstclient.WurstClient; +import net.wurstclient.events.TesselateBlockListener.TesselateBlockEvent; + +@Mixin(TerrainRenderContext.class) +public class TerrainRenderContextMixin +{ + @Inject(at = {@At("HEAD")}, + method = { + "tesselateBlock(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/render/model/BakedModel;)Z"}, + cancellable = true) + private void tesselateBlock(BlockState blockState, BlockPos blockPos, + final BakedModel model, CallbackInfoReturnable cir) + { + TesselateBlockEvent event = new TesselateBlockEvent(blockState); + WurstClient.INSTANCE.getEventManager().fire(event); + + if(event.isCancelled()) + cir.cancel(); + } +} diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json index dfc10aa3..ec29f7c5 100644 --- a/src/main/resources/modid.mixins.json +++ b/src/main/resources/modid.mixins.json @@ -7,7 +7,6 @@ "client": [ "BlockEntityRenderDispatcherMixin", "BlockMixin", - "BlockModelRendererMixin", "BlockStateMixin", "ChatHudMixin", "ChunkOcclusionGraphBuilderMixin", @@ -19,7 +18,8 @@ "IngameHudMixin", "KeyBindingMixin", "KeyboardMixin", - "MinecraftClientMixin" + "MinecraftClientMixin", + "TerrainRenderContextMixin" ], "injectors": { "defaultRequire": 1