Replace all ATs with Mixin on 1.13+ in preparation for Fabric
This commit is contained in:
@@ -34,7 +34,7 @@ public class BlendFrameCapturer implements FrameCapturer<RGBFrame> {
|
||||
renderInfo.updateForNextFrame();
|
||||
|
||||
BlendState.getState().preFrame(framesDone);
|
||||
worldRenderer.renderWorld(MCVer.getMinecraft().timer.renderPartialTicks, null);
|
||||
worldRenderer.renderWorld(MCVer.getRenderPartialTicks(), null);
|
||||
BlendState.getState().postFrame(framesDone);
|
||||
|
||||
return new RGBFrame(framesDone++, new Dimension(0, 0), ByteBufferPool.allocate(0));
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.Exporter;
|
||||
import com.replaymod.render.blend.data.DMesh;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import com.replaymod.render.blend.mixin.ContainerLocalRenderInformationAccessor;
|
||||
import com.replaymod.render.blend.mixin.WorldRendererAccessor;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GLAllocation;
|
||||
@@ -19,12 +21,6 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL15;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.renderer.WorldRenderer.ContainerLocalRenderInformation;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.RenderGlobal.ContainerLocalRenderInformation;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -72,9 +68,9 @@ public class ChunkExporter implements Exporter {
|
||||
|
||||
Minecraft mc = MCVer.getMinecraft();
|
||||
@SuppressWarnings("unchecked")
|
||||
List<ContainerLocalRenderInformation> renderInfos = mc.renderGlobal.renderInfos;
|
||||
for (ContainerLocalRenderInformation renderInfo : renderInfos) {
|
||||
RenderChunk renderChunk = renderInfo.renderChunk;
|
||||
List<ContainerLocalRenderInformationAccessor> renderInfos = ((WorldRendererAccessor) mc.renderGlobal).getRenderInfos();
|
||||
for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) {
|
||||
RenderChunk renderChunk = renderInfo.getRenderChunk();
|
||||
CompiledChunk compiledChunk = renderChunk.getCompiledChunk();
|
||||
if (!compiledChunk.isEmpty()) {
|
||||
addChunkUpdate(renderChunk, null);
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.replaymod.render.blend.BlendMeshBuilder;
|
||||
import com.replaymod.render.blend.Exporter;
|
||||
import com.replaymod.render.blend.data.DMesh;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -13,6 +12,7 @@ import net.minecraftforge.client.model.pipeline.LightUtil;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
//#if MC>=11300
|
||||
import com.replaymod.render.blend.mixin.ItemRendererAccessor;
|
||||
import net.minecraft.client.renderer.model.BakedQuad;
|
||||
import net.minecraft.client.renderer.model.IBakedModel;
|
||||
//#else
|
||||
@@ -113,7 +113,7 @@ public class ItemExporter implements Exporter {
|
||||
for (BakedQuad quad : quads) {
|
||||
int color = stack != null && quad.hasTintIndex()
|
||||
//#if MC>=11300
|
||||
? ((ItemRenderer) renderItem).itemColors.getColor(stack, quad.getTintIndex()) | 0xff000000
|
||||
? ((ItemRendererAccessor) renderItem).getItemColors().getColor(stack, quad.getTintIndex()) | 0xff000000
|
||||
//#else
|
||||
//#if MC>=10904
|
||||
//$$ ? ((RenderItem) renderItem).itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.Exporter;
|
||||
import com.replaymod.render.blend.data.DMesh;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import com.replaymod.render.blend.mixin.ParticleAccessor;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -110,9 +111,10 @@ public class ParticlesExporter implements Exporter {
|
||||
// renderer translate there again.
|
||||
// Instead of actually translating, we just add the translation on the current model-view-matrix.
|
||||
Matrix4f modelView = getGlModelViewMatrix();
|
||||
double dx = particle.prevPosX + (particle.posX - particle.prevPosX) * renderPartialTicks - Particle.interpPosX;
|
||||
double dy = particle.prevPosY + (particle.posY - particle.prevPosY) * renderPartialTicks - Particle.interpPosY;
|
||||
double dz = particle.prevPosZ + (particle.posZ - particle.prevPosZ) * renderPartialTicks - Particle.interpPosZ;
|
||||
ParticleAccessor acc = (ParticleAccessor) particle;
|
||||
double dx = acc.getPrevPosX() + (acc.getPosX() - acc.getPrevPosX()) * renderPartialTicks - Particle.interpPosX;
|
||||
double dy = acc.getPrevPosY() + (acc.getPosY() - acc.getPrevPosY()) * renderPartialTicks - Particle.interpPosY;
|
||||
double dz = acc.getPrevPosZ() + (acc.getPosZ() - acc.getPrevPosZ()) * renderPartialTicks - Particle.interpPosZ;
|
||||
Vector3f offset = new Vector3f((float) dx, (float) dy, (float) dz);
|
||||
Matrix4f.translate(offset, modelView, modelView);
|
||||
renderState.pushModelView(modelView);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
//#if MC>=11300
|
||||
@Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation")
|
||||
//#else
|
||||
//$$ @Mixin(targets = "net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation")
|
||||
//#endif
|
||||
public interface ContainerLocalRenderInformationAccessor {
|
||||
@Accessor
|
||||
RenderChunk getRenderChunk();
|
||||
}
|
||||
//#endif
|
||||
@@ -0,0 +1,23 @@
|
||||
//#if MC<10904
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import net.minecraft.entity.Entity;
|
||||
//$$ import org.spongepowered.asm.mixin.Mixin;
|
||||
//$$ import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
//$$
|
||||
//$$ @Mixin(Entity.class)
|
||||
//$$ public interface EntityAccessor {
|
||||
//$$ @Accessor
|
||||
//$$ double getPrevPosX();
|
||||
//$$ @Accessor
|
||||
//$$ double getPrevPosY();
|
||||
//$$ @Accessor
|
||||
//$$ double getPrevPosZ();
|
||||
//$$ @Accessor
|
||||
//$$ double getPosX();
|
||||
//$$ @Accessor
|
||||
//$$ double getPosY();
|
||||
//$$ @Accessor
|
||||
//$$ double getPosZ();
|
||||
//$$ }
|
||||
//#endif
|
||||
@@ -0,0 +1,14 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.color.ItemColors;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(ItemRenderer.class)
|
||||
public interface ItemRendererAccessor {
|
||||
@Accessor
|
||||
ItemColors getItemColors();
|
||||
}
|
||||
//#endif
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import net.minecraft.client.particle.Particle;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(Particle.class)
|
||||
public interface ParticleAccessor
|
||||
//#if MC<10904
|
||||
//$$ extends EntityAccessor
|
||||
//#endif
|
||||
{
|
||||
//#if MC>=10904
|
||||
@Accessor
|
||||
double getPrevPosX();
|
||||
@Accessor
|
||||
double getPrevPosY();
|
||||
@Accessor
|
||||
double getPrevPosZ();
|
||||
@Accessor
|
||||
double getPosX();
|
||||
@Accessor
|
||||
double getPosY();
|
||||
@Accessor
|
||||
double getPosZ();
|
||||
//#endif
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mixin(WorldRenderer.class)
|
||||
public interface WorldRendererAccessor {
|
||||
@Accessor
|
||||
List getRenderInfos();
|
||||
}
|
||||
//#endif
|
||||
Reference in New Issue
Block a user