Update blend export to 1.12.2
This commit is contained in:
@@ -4,12 +4,17 @@ import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ChunkExporter;
|
||||
import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
|
||||
import net.minecraft.client.renderer.chunk.ChunkRenderWorker;
|
||||
import net.minecraft.util.EnumWorldBlockLayer;
|
||||
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.CallbackInfo;
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
//#else
|
||||
//$$ import net.minecraft.util.EnumWorldBlockLayer;
|
||||
//#endif
|
||||
|
||||
@Mixin(ChunkRenderWorker.class)
|
||||
public abstract class MixinChunkRenderWorker {
|
||||
|
||||
@@ -19,11 +24,7 @@ public abstract class MixinChunkRenderWorker {
|
||||
if (blendState != null) {
|
||||
if (task.getStatus() == ChunkCompileTaskGenerator.Status.DONE
|
||||
&& task.getType() == ChunkCompileTaskGenerator.Type.REBUILD_CHUNK) {
|
||||
for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) {
|
||||
if (task.getCompiledChunk().isLayerStarted(layer)) {
|
||||
blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), layer);
|
||||
}
|
||||
}
|
||||
blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), task.getCompiledChunk());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,23 @@ package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ParticlesExporter;
|
||||
import net.minecraft.client.particle.EffectRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
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.CallbackInfo;
|
||||
|
||||
@Mixin(EffectRenderer.class)
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.particle.ParticleManager;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.particle.EffectRenderer;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
@Mixin(ParticleManager.class)
|
||||
//#else
|
||||
//$$ @Mixin(EffectRenderer.class)
|
||||
//#endif
|
||||
public abstract class MixinEffectRenderer {
|
||||
|
||||
@Inject(method = "renderParticles", at = @At("HEAD"))
|
||||
|
||||
@@ -18,7 +18,11 @@ public abstract class MixinRenderGlobal {
|
||||
|
||||
@Inject(method = "renderEntities",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V"))
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V"))
|
||||
//#else
|
||||
//$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V"))
|
||||
//#endif
|
||||
public void preEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
@@ -28,7 +32,11 @@ public abstract class MixinRenderGlobal {
|
||||
|
||||
@Inject(method = "renderEntities",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V",
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V",
|
||||
//#else
|
||||
//$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V",
|
||||
//#endif
|
||||
shift = At.Shift.AFTER))
|
||||
public void postEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
|
||||
@@ -2,22 +2,33 @@ package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ItemExporter;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.resources.model.IBakedModel;
|
||||
import net.minecraft.item.ItemStack;
|
||||
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.CallbackInfo;
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.renderer.RenderItem;
|
||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.entity.RenderItem;
|
||||
//$$ import net.minecraft.client.resources.model.IBakedModel;
|
||||
//#endif
|
||||
|
||||
@Mixin(RenderItem.class)
|
||||
public abstract class MixinRenderItem {
|
||||
@Inject(method = "renderModel(Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
|
||||
//#if MC>=10904
|
||||
@Inject(method = "renderModel(Lnet/minecraft/client/renderer/block/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
|
||||
at = @At("HEAD"))
|
||||
//#else
|
||||
//$$ @Inject(method = "renderModel(Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
|
||||
//$$ at = @At("HEAD"))
|
||||
//#endif
|
||||
private void onRenderModel(IBakedModel model, ItemStack stack, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ItemExporter.class).onRender(model, stack);
|
||||
blendState.get(ItemExporter.class).onRender((RenderItem)(Object)this, model, stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,12 @@ import net.minecraft.entity.Entity;
|
||||
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;
|
||||
|
||||
//#if MC>=10904
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
//#else
|
||||
//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
//#endif
|
||||
|
||||
@Mixin(RenderManager.class)
|
||||
public abstract class MixinRenderManager {
|
||||
@@ -15,7 +20,12 @@ public abstract class MixinRenderManager {
|
||||
@Inject(method = "doRenderEntity",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFFZ)V"))
|
||||
public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box, CallbackInfoReturnable<Boolean> ci) {
|
||||
public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box,
|
||||
//#if MC>=10904
|
||||
CallbackInfo ci) {
|
||||
//#else
|
||||
//$$ CallbackInfoReturnable<Boolean> ci) {
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(EntityExporter.class).preRender(entity, x, y, z, yaw, renderPartialTicks);
|
||||
@@ -26,7 +36,12 @@ public abstract class MixinRenderManager {
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFFZ)V",
|
||||
shift = At.Shift.AFTER))
|
||||
public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box, CallbackInfoReturnable<Boolean> ci) {
|
||||
public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box,
|
||||
//#if MC>=10904
|
||||
CallbackInfo ci) {
|
||||
//#else
|
||||
//$$ CallbackInfoReturnable<Boolean> ci) {
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(EntityExporter.class).postRender(entity, x, y, z, yaw, renderPartialTicks);
|
||||
|
||||
@@ -12,18 +12,31 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
@Mixin(TileEntityRendererDispatcher.class)
|
||||
public abstract class MixinTileEntityRendererDispatcher {
|
||||
|
||||
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
|
||||
//#if MC>=11200
|
||||
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V",
|
||||
at = @At("HEAD"))
|
||||
public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) {
|
||||
public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, float alpha, CallbackInfo ci) {
|
||||
//#else
|
||||
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
|
||||
//$$ at = @At("HEAD"))
|
||||
//$$ public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) {
|
||||
//$$ float alpha = 1;
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage);
|
||||
blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage, alpha);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
|
||||
//#if MC>=11200
|
||||
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V",
|
||||
at = @At("RETURN"))
|
||||
public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) {
|
||||
public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, float alpha, CallbackInfo ci) {
|
||||
//#else
|
||||
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
|
||||
//$$ at = @At("RETURN"))
|
||||
//$$ public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) {
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).postRender();
|
||||
|
||||
Reference in New Issue
Block a user