Replace all ATs with Mixin on 1.13+ in preparation for Fabric

This commit is contained in:
Jonas Herzig
2019-04-26 11:20:31 +02:00
parent d5b9e60c4d
commit 17fe5b345f
67 changed files with 1035 additions and 399 deletions

View File

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

View File

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

View File

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