mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-20 01:12:13 +02:00
RenderBlockModelListener -> TesselateBlockListener
This commit is contained in:
parent
d83b6d50b2
commit
040c8d7280
@ -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<RenderBlockModelListener>
|
||||
public static class TesselateBlockEvent
|
||||
extends CancellableEvent<TesselateBlockListener>
|
||||
{
|
||||
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<RenderBlockModelListener> listeners)
|
||||
public void fire(ArrayList<TesselateBlockListener> 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<RenderBlockModelListener> getListenerType()
|
||||
public Class<TesselateBlockListener> getListenerType()
|
||||
{
|
||||
return RenderBlockModelListener.class;
|
||||
return TesselateBlockListener.class;
|
||||
}
|
||||
}
|
||||
}
|
@ -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<Boolean> 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<Boolean> ci)
|
||||
{
|
||||
RenderBlockModelEvent event = new RenderBlockModelEvent(state);
|
||||
WurstClient.INSTANCE.getEventManager().fire(event);
|
||||
|
||||
if(event.isCancelled())
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
@ -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<Boolean> cir)
|
||||
{
|
||||
TesselateBlockEvent event = new TesselateBlockEvent(blockState);
|
||||
WurstClient.INSTANCE.getEventManager().fire(event);
|
||||
|
||||
if(event.isCancelled())
|
||||
cir.cancel();
|
||||
}
|
||||
}
|
@ -7,7 +7,6 @@
|
||||
"client": [
|
||||
"BlockEntityRenderDispatcherMixin",
|
||||
"BlockMixin",
|
||||
"BlockModelRendererMixin",
|
||||
"BlockStateMixin",
|
||||
"ChatHudMixin",
|
||||
"ChunkOcclusionGraphBuilderMixin",
|
||||
@ -19,7 +18,8 @@
|
||||
"IngameHudMixin",
|
||||
"KeyBindingMixin",
|
||||
"KeyboardMixin",
|
||||
"MinecraftClientMixin"
|
||||
"MinecraftClientMixin",
|
||||
"TerrainRenderContextMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
Loading…
Reference in New Issue
Block a user