Get blend export running on 1.13

This commit is contained in:
Jonas Herzig
2019-03-13 19:10:44 +01:00
parent 4eb5d2d9cf
commit 22ab39c2db
20 changed files with 220 additions and 97 deletions

View File

@@ -1,12 +1,12 @@
package com.replaymod.render.blend; package com.replaymod.render.blend;
import com.replaymod.core.versions.MCVer;
import com.replaymod.render.capturer.RenderInfo; import com.replaymod.render.capturer.RenderInfo;
import com.replaymod.render.capturer.WorldRenderer; import com.replaymod.render.capturer.WorldRenderer;
import com.replaymod.render.frame.RGBFrame; import com.replaymod.render.frame.RGBFrame;
import com.replaymod.render.rendering.FrameCapturer; import com.replaymod.render.rendering.FrameCapturer;
import com.replaymod.render.utils.ByteBufferPool; import com.replaymod.render.utils.ByteBufferPool;
import net.minecraft.client.Minecraft; import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import org.lwjgl.util.Dimension;
import java.io.IOException; import java.io.IOException;
@@ -34,7 +34,7 @@ public class BlendFrameCapturer implements FrameCapturer<RGBFrame> {
renderInfo.updateForNextFrame(); renderInfo.updateForNextFrame();
BlendState.getState().preFrame(framesDone); BlendState.getState().preFrame(framesDone);
worldRenderer.renderWorld(Minecraft.getMinecraft().timer.renderPartialTicks, null); worldRenderer.renderWorld(MCVer.getMinecraft().timer.renderPartialTicks, null);
BlendState.getState().postFrame(framesDone); BlendState.getState().postFrame(framesDone);
return new RGBFrame(framesDone++, new Dimension(0, 0), ByteBufferPool.allocate(0)); return new RGBFrame(framesDone++, new Dimension(0, 0), ByteBufferPool.allocate(0));

View File

@@ -3,13 +3,13 @@ package com.replaymod.render.blend;
import com.replaymod.render.blend.data.DMaterial; import com.replaymod.render.blend.data.DMaterial;
import com.replaymod.render.blend.data.DMesh; import com.replaymod.render.blend.data.DMesh;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.ReadableVector3f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector2f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.client.renderer.vertex.VertexFormatElement;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.util.vector.ReadableVector3f;
import org.lwjgl.util.vector.Vector2f;
import org.lwjgl.util.vector.Vector3f;
//#if MC>=10904 //#if MC>=10904
//#if MC>=11200 //#if MC>=11200
@@ -139,7 +139,12 @@ public class BlendMeshBuilder
} }
public static DMesh addBufferToMesh(ByteBuffer buffer, int mode, VertexFormat vertexFormat, DMesh mesh, ReadableVector3f vertOffset) { public static DMesh addBufferToMesh(ByteBuffer buffer, int mode, VertexFormat vertexFormat, DMesh mesh, ReadableVector3f vertOffset) {
return addBufferToMesh(buffer, buffer.remaining() / vertexFormat.getNextOffset(), mode, vertexFormat, mesh, vertOffset); //#if MC>=11300
int vertexCount = buffer.remaining() / vertexFormat.getSize();
//#else
//$$ int vertexCount = buffer.remaining() / vertexFormat.getNextOffset();
//#endif
return addBufferToMesh(buffer, vertexCount, mode, vertexFormat, mesh, vertOffset);
} }
public static DMesh addBufferToMesh(ByteBuffer buffer, int vertexCount, int mode, VertexFormat vertexFormat, DMesh mesh, ReadableVector3f vertOffset) { public static DMesh addBufferToMesh(ByteBuffer buffer, int vertexCount, int mode, VertexFormat vertexFormat, DMesh mesh, ReadableVector3f vertOffset) {
@@ -188,7 +193,11 @@ public class BlendMeshBuilder
List<DMesh.Vertex> vertices = new ArrayList<>(vertexCount); List<DMesh.Vertex> vertices = new ArrayList<>(vertexCount);
List<Vector2f> uvs = new ArrayList<>(vertexCount); List<Vector2f> uvs = new ArrayList<>(vertexCount);
List<Integer> colors = new ArrayList<>(vertexCount); List<Integer> colors = new ArrayList<>(vertexCount);
int step = vertexFormat.getNextOffset(); //#if MC>=11300
int step = vertexFormat.getSize();
//#else
//$$ int step = vertexFormat.getNextOffset();
//#endif
for (int offset = 0; offset < vertexCount * step; offset += step) { for (int offset = 0; offset < vertexCount * step; offset += step) {
vertices.add(new DMesh.Vertex( vertices.add(new DMesh.Vertex(
buffer.getFloat(offset ) - vertOffset.getX(), buffer.getFloat(offset ) - vertOffset.getX(),

View File

@@ -12,7 +12,6 @@ import com.replaymod.render.blend.exporters.TileEntityExporter;
//#endif //#endif
import net.minecraft.crash.CrashReport; import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory; import net.minecraft.crash.CrashReportCategory;
import net.minecraft.util.ReportedException;
import org.apache.commons.io.output.NullOutputStream; import org.apache.commons.io.output.NullOutputStream;
import org.blender.utils.BlenderFactory; import org.blender.utils.BlenderFactory;
import org.cakelab.blender.io.BlenderFile; import org.cakelab.blender.io.BlenderFile;
@@ -134,7 +133,7 @@ public class BlendState implements Exporter {
CrashReport report = CrashReport.makeCrashReport(e, "Pre frame of blend exporter"); CrashReport report = CrashReport.makeCrashReport(e, "Pre frame of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter"); CrashReportCategory category = report.makeCategory("Exporter");
addDetail(category, "Exporter", exporter::toString); addDetail(category, "Exporter", exporter::toString);
category.addCrashSection("Frame", frame); addDetail(category, "Frame", () -> String.valueOf(frame));
throw newReportedException(report); throw newReportedException(report);
} }
} }
@@ -149,7 +148,7 @@ public class BlendState implements Exporter {
CrashReport report = CrashReport.makeCrashReport(e, "Post frame of blend exporter"); CrashReport report = CrashReport.makeCrashReport(e, "Post frame of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter"); CrashReportCategory category = report.makeCategory("Exporter");
addDetail(category, "Exporter", exporter::toString); addDetail(category, "Exporter", exporter::toString);
category.addCrashSection("Frame", frame); addDetail(category, "Frame", () -> String.valueOf(frame));
throw newReportedException(report); throw newReportedException(report);
} }
} }

View File

@@ -1,5 +1,9 @@
package com.replaymod.render.blend; package com.replaymod.render.blend;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix3f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Quaternion;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@@ -8,10 +12,6 @@ import org.blender.dna.ListBase;
import org.blender.utils.BlenderFactory; import org.blender.utils.BlenderFactory;
import org.cakelab.blender.nio.CPointer; import org.cakelab.blender.nio.CPointer;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.util.vector.Matrix3f;
import org.lwjgl.util.vector.Matrix4f;
import org.lwjgl.util.vector.Quaternion;
import org.lwjgl.util.vector.Vector3f;
import java.io.IOException; import java.io.IOException;
import java.nio.FloatBuffer; import java.nio.FloatBuffer;
@@ -37,7 +37,11 @@ public class Util {
private static FloatBuffer floatBuffer = GLAllocation.createDirectFloatBuffer(16); private static FloatBuffer floatBuffer = GLAllocation.createDirectFloatBuffer(16);
public static Matrix4f getGlMatrix(int matrix) { public static Matrix4f getGlMatrix(int matrix) {
floatBuffer.clear(); floatBuffer.clear();
GL11.glGetFloat(matrix, floatBuffer); //#if MC>=11300
GL11.glGetFloatv(matrix, floatBuffer);
//#else
//$$ GL11.glGetFloat(matrix, floatBuffer);
//#endif
floatBuffer.rewind(); floatBuffer.rewind();
Matrix4f mat = new Matrix4f(); Matrix4f mat = new Matrix4f();
mat.load(floatBuffer); mat.load(floatBuffer);
@@ -159,7 +163,11 @@ public class Util {
public static String getTileEntityId(TileEntity tileEntity) { public static String getTileEntityId(TileEntity tileEntity) {
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
tileEntity.writeToNBT(nbt); //#if MC>=11300
tileEntity.write(nbt);
//#else
//$$ tileEntity.writeToNBT(nbt);
//#endif
return nbt.getString("id"); return nbt.getString("id");
} }

View File

@@ -1,5 +1,7 @@
package com.replaymod.render.blend.data; package com.replaymod.render.blend.data;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector2f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import org.blender.dna.CustomData; import org.blender.dna.CustomData;
import org.blender.dna.CustomDataLayer; import org.blender.dna.CustomDataLayer;
import org.blender.dna.Image; import org.blender.dna.Image;
@@ -16,8 +18,6 @@ import org.blender.dna.Mesh;
import org.cakelab.blender.io.block.BlockCodes; import org.cakelab.blender.io.block.BlockCodes;
import org.cakelab.blender.nio.CArrayFacade; import org.cakelab.blender.nio.CArrayFacade;
import org.cakelab.blender.nio.CPointer; import org.cakelab.blender.nio.CPointer;
import org.lwjgl.util.vector.Vector2f;
import org.lwjgl.util.vector.Vector3f;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -199,9 +199,9 @@ public class DMesh {
public void serialize(MVert mVert) throws IOException { public void serialize(MVert mVert) throws IOException {
CArrayFacade<Float> pos = mVert.getCo(); CArrayFacade<Float> pos = mVert.getCo();
pos.set(0, this.pos.x); pos.set(0, this.pos.getX());
pos.set(1, this.pos.y); pos.set(1, this.pos.getY());
pos.set(2, this.pos.z); pos.set(2, this.pos.getZ());
CArrayFacade<Short> norm = mVert.getNo(); CArrayFacade<Short> norm = mVert.getNo();
norm.set(0, this.normX); norm.set(0, this.normX);
norm.set(1, this.normY); norm.set(1, this.normY);

View File

@@ -1,6 +1,8 @@
package com.replaymod.render.blend.data; package com.replaymod.render.blend.data;
import com.replaymod.render.blend.Util; import com.replaymod.render.blend.Util;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Quaternion;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import org.blender.dna.AnimData; import org.blender.dna.AnimData;
import org.blender.dna.BlenderObject; import org.blender.dna.BlenderObject;
import org.blender.dna.Material; import org.blender.dna.Material;
@@ -11,8 +13,6 @@ import org.blender.dna.bTrackToConstraint;
import org.cakelab.blender.io.block.BlockCodes; import org.cakelab.blender.io.block.BlockCodes;
import org.cakelab.blender.nio.CArrayFacade; import org.cakelab.blender.nio.CArrayFacade;
import org.cakelab.blender.nio.CPointer; import org.cakelab.blender.nio.CPointer;
import org.lwjgl.util.vector.Quaternion;
import org.lwjgl.util.vector.Vector3f;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,18 +1,18 @@
//#if MC>=10800 //#if MC>=10800
package com.replaymod.render.blend.exporters; package com.replaymod.render.blend.exporters;
import com.replaymod.core.versions.MCVer;
import com.replaymod.render.blend.BlendMeshBuilder; import com.replaymod.render.blend.BlendMeshBuilder;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DMaterial;
import com.replaymod.render.blend.data.DMesh; import com.replaymod.render.blend.data.DMesh;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import com.replaymod.replaystudio.us.myles.ViaVersion.util.ReflectionUtil; import com.replaymod.replaystudio.us.myles.ViaVersion.util.ReflectionUtil;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.client.renderer.chunk.CompiledChunk; import net.minecraft.client.renderer.chunk.CompiledChunk;
import net.minecraft.client.renderer.chunk.RenderChunk; import net.minecraft.client.renderer.chunk.RenderChunk;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
@@ -20,7 +20,12 @@ import net.minecraft.client.renderer.vertex.VertexBuffer;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15; import org.lwjgl.opengl.GL15;
import org.lwjgl.util.vector.Vector3f;
//#if MC>=11300
import net.minecraft.client.renderer.WorldRenderer.ContainerLocalRenderInformation;
//#else
//$$ import net.minecraft.client.renderer.RenderGlobal.ContainerLocalRenderInformation;
//#endif
//#if MC>=10904 //#if MC>=10904
import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.BlockRenderLayer;
@@ -68,10 +73,10 @@ public class ChunkExporter implements Exporter {
@SneakyThrows @SneakyThrows
public void setup() throws IOException { public void setup() throws IOException {
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = MCVer.getMinecraft();
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<RenderGlobal.ContainerLocalRenderInformation> renderInfos = mc.renderGlobal.renderInfos; List<ContainerLocalRenderInformation> renderInfos = mc.renderGlobal.renderInfos;
for (RenderGlobal.ContainerLocalRenderInformation renderInfo : renderInfos) { for (ContainerLocalRenderInformation renderInfo : renderInfos) {
RenderChunk renderChunk = ReflectionUtil.get(renderInfo, "renderChunk", RenderChunk.class); // SneakyThrows RenderChunk renderChunk = ReflectionUtil.get(renderInfo, "renderChunk", RenderChunk.class); // SneakyThrows
CompiledChunk compiledChunk = renderChunk.getCompiledChunk(); CompiledChunk compiledChunk = renderChunk.getCompiledChunk();
if (!compiledChunk.isEmpty()) { if (!compiledChunk.isEmpty()) {
@@ -167,7 +172,7 @@ public class ChunkExporter implements Exporter {
GL15.glGetBufferSubData(OpenGlHelper.GL_ARRAY_BUFFER, 0, byteBuffer); GL15.glGetBufferSubData(OpenGlHelper.GL_ARRAY_BUFFER, 0, byteBuffer);
vertexBuffer.unbindBuffer(); vertexBuffer.unbindBuffer();
Minecraft.getMinecraft().getTextureManager().bindTexture(LOCATION_BLOCKS_TEXTURE); MCVer.getMinecraft().getTextureManager().bindTexture(LOCATION_BLOCKS_TEXTURE);
return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, DefaultVertexFormats.BLOCK, null, null); return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, DefaultVertexFormats.BLOCK, null, null);
} }

View File

@@ -1,14 +1,15 @@
//#if MC>=10800 //#if MC>=10800
package com.replaymod.render.blend.exporters; package com.replaymod.render.blend.exporters;
import com.replaymod.core.versions.MCVer;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import org.lwjgl.util.vector.Matrix4f;
import org.lwjgl.util.vector.Vector3f;
import java.io.IOException; import java.io.IOException;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
@@ -17,7 +18,7 @@ import java.util.Map;
import static com.replaymod.render.blend.Util.getGlModelViewMatrix; import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
public class EntityExporter implements Exporter { public class EntityExporter implements Exporter {
private final Minecraft mc = Minecraft.getMinecraft(); private final Minecraft mc = MCVer.getMinecraft();
private final RenderState renderState; private final RenderState renderState;
private DObject entitiesObject; private DObject entitiesObject;
private Map<Entity, DObject> entityObjects; private Map<Entity, DObject> entityObjects;
@@ -59,7 +60,11 @@ public class EntityExporter implements Exporter {
if (entityObject == null) { if (entityObject == null) {
entityObject = new DObject(DObject.Type.OB_EMPTY); entityObject = new DObject(DObject.Type.OB_EMPTY);
entityObject.setParent(renderState.peekObject()); entityObject.setParent(renderState.peekObject());
entityObject.id.name = entity.getName(); //#if MC>=11300
entityObject.id.name = entity.getName().getString();
//#else
//$$ entityObject.id.name = entity.getName();
//#endif
entityObjects.put(entity, entityObject); entityObjects.put(entity, entityObject);
} }
renderState.pushObject(entityObject); renderState.pushObject(entityObject);

View File

@@ -5,22 +5,29 @@ import com.replaymod.render.blend.BlendMeshBuilder;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DMesh; import com.replaymod.render.blend.data.DMesh;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraftforge.client.model.pipeline.LightUtil; import net.minecraftforge.client.model.pipeline.LightUtil;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
//#if MC>=11300
import net.minecraft.client.renderer.model.IBakedModel;
//#else
//$$ import net.minecraft.client.renderer.block.model.BakedQuad;
//#if MC>=10904 //#if MC>=10904
import net.minecraft.client.renderer.RenderItem; //$$ import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.IBakedModel; //$$ import net.minecraft.client.renderer.block.model.IBakedModel;
//#else //#else
//$$ import net.minecraft.client.renderer.entity.RenderItem; //$$ import net.minecraft.client.renderer.entity.RenderItem;
//$$ import net.minecraft.client.resources.model.IBakedModel; //$$ import net.minecraft.client.resources.model.IBakedModel;
//#endif //#endif
//#endif
import java.util.List; import java.util.List;
import java.util.Random;
public class ItemExporter implements Exporter { public class ItemExporter implements Exporter {
private final RenderState renderState; private final RenderState renderState;
@@ -29,7 +36,7 @@ public class ItemExporter implements Exporter {
this.renderState = renderState; this.renderState = renderState;
} }
public void onRender(RenderItem renderItem, IBakedModel model, ItemStack stack) { public void onRender(Object renderItem, IBakedModel model, ItemStack stack) {
DObject object = getObjectForItemStack(renderItem, model, stack); DObject object = getObjectForItemStack(renderItem, model, stack);
renderState.pushObject(object); renderState.pushObject(object);
@@ -42,7 +49,7 @@ public class ItemExporter implements Exporter {
renderState.pop(); renderState.pop();
} }
private DObject getObjectForItemStack(RenderItem renderItem, IBakedModel model, ItemStack stack) { private DObject getObjectForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
int frame = renderState.getFrame(); int frame = renderState.getFrame();
DObject parent = renderState.peekObject(); DObject parent = renderState.peekObject();
DObject object = null; DObject object = null;
@@ -56,7 +63,11 @@ public class ItemExporter implements Exporter {
} }
if (object == null) { if (object == null) {
object = new ItemBasedDObject(renderItem, model, stack); object = new ItemBasedDObject(renderItem, model, stack);
object.id.name = stack.getDisplayName(); //#if MC>=11300
object.id.name = stack.getDisplayName().getString();
//#else
//$$ object.id.name = stack.getDisplayName();
//#endif
object.setParent(parent); object.setParent(parent);
} }
object.lastFrame = frame; object.lastFrame = frame;
@@ -64,7 +75,7 @@ public class ItemExporter implements Exporter {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static DMesh generateMeshForItemStack(RenderItem renderItem, IBakedModel model, ItemStack stack) { private static DMesh generateMeshForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
DMesh mesh = new DMesh(); DMesh mesh = new DMesh();
BlendMeshBuilder builder = new BlendMeshBuilder(mesh); BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
builder.setWellBehaved(true); builder.setWellBehaved(true);
@@ -75,30 +86,41 @@ public class ItemExporter implements Exporter {
//$$ builder.setVertexFormat(DefaultVertexFormats.ITEM); //$$ builder.setVertexFormat(DefaultVertexFormats.ITEM);
//#endif //#endif
//#if MC>=10904 //#if MC>=11300
for (EnumFacing face : EnumFacing.values()) { for (EnumFacing face : EnumFacing.values()) {
renderQuads(renderItem, builder, model.getQuads(null, face, 0), stack); renderQuads(renderItem, builder, model.getQuads(null, face, new Random()), stack);
} }
renderQuads(renderItem, builder, model.getQuads(null, null, 0), stack); renderQuads(renderItem, builder, model.getQuads(null, null, new Random()), stack);
//#else
//#if MC>=10904
//$$ for (EnumFacing face : EnumFacing.values()) {
//$$ renderQuads(renderItem, builder, model.getQuads(null, face, 0), stack);
//$$ }
//$$ renderQuads(renderItem, builder, model.getQuads(null, null, 0), stack);
//#else //#else
//$$ for (EnumFacing face : EnumFacing.values()) { //$$ for (EnumFacing face : EnumFacing.values()) {
//$$ renderQuads(renderItem, builder, model.getFaceQuads(face), stack); //$$ renderQuads(renderItem, builder, model.getFaceQuads(face), stack);
//$$ } //$$ }
//$$ renderQuads(renderItem, builder, model.getGeneralQuads(), stack); //$$ renderQuads(renderItem, builder, model.getGeneralQuads(), stack);
//#endif //#endif
//#endif
builder.finishDrawing(); builder.finishDrawing();
return mesh; return mesh;
} }
private static void renderQuads(RenderItem renderItem, BlendMeshBuilder buffer, List<BakedQuad> quads, ItemStack stack) { private static void renderQuads(Object renderItem, BlendMeshBuilder buffer, List<BakedQuad> quads, ItemStack stack) {
for (BakedQuad quad : quads) { for (BakedQuad quad : quads) {
int color = stack != null && quad.hasTintIndex() int color = stack != null && quad.hasTintIndex()
//#if MC>=10904 //#if MC>=10904
? renderItem.itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000 ? ((ItemRenderer) renderItem).itemColors.getColor(stack, quad.getTintIndex()) | 0xff000000
//#else
//#if MC>=10904
//$$ ? ((RenderItem) renderItem).itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000
//#else //#else
//$$ ? stack.getItem().getColorFromItemStack(stack, quad.getTintIndex()) | 0xff000000 //$$ ? stack.getItem().getColorFromItemStack(stack, quad.getTintIndex()) | 0xff000000
//#endif //#endif
//#endif
: 0xffffffff; : 0xffffffff;
LightUtil.renderQuadColor(buffer, quad, color); LightUtil.renderQuadColor(buffer, quad, color);
} }
@@ -106,19 +128,19 @@ public class ItemExporter implements Exporter {
} }
private static class ItemBasedDObject extends DObject { private static class ItemBasedDObject extends DObject {
private final RenderItem renderItem; private final Object renderItem;
private final IBakedModel model; private final IBakedModel model;
private final ItemStack stack; private final ItemStack stack;
private boolean valid; private boolean valid;
public ItemBasedDObject(RenderItem renderItem, IBakedModel model, ItemStack stack) { public ItemBasedDObject(Object renderItem, IBakedModel model, ItemStack stack) {
super(generateMeshForItemStack(renderItem, model, stack)); super(generateMeshForItemStack(renderItem, model, stack));
this.renderItem = renderItem; this.renderItem = renderItem;
this.model = model; this.model = model;
this.stack = stack; this.stack = stack;
} }
public boolean isBasedOn(RenderItem renderItem, IBakedModel model, ItemStack stack) { public boolean isBasedOn(Object renderItem, IBakedModel model, ItemStack stack) {
return this.renderItem == renderItem && this.model == model && this.stack == stack; return this.renderItem == renderItem && this.model == model && this.stack == stack;
} }

View File

@@ -1,20 +1,21 @@
//#if MC>=10800 //#if MC>=10800
package com.replaymod.render.blend.exporters; package com.replaymod.render.blend.exporters;
import com.replaymod.core.versions.MCVer;
import com.replaymod.render.blend.BlendMeshBuilder; import com.replaymod.render.blend.BlendMeshBuilder;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DMesh; import com.replaymod.render.blend.data.DMesh;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import org.lwjgl.util.vector.Matrix4f;
import org.lwjgl.util.vector.Vector3f;
//#if MC>=10904 //#if MC>=10904
import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.Particle;
//#else //#else
//$$ import net.minecraft.client.particle.EntityFX; //$$ import net.minecraft.client.particle.EntityFX;
//$$ import net.minecraft.entity.Entity;
//#endif //#endif
//#if MC>=10809 //#if MC>=10809
@@ -29,7 +30,7 @@ import static com.replaymod.core.versions.MCVer.*;
import static com.replaymod.render.blend.Util.getGlModelViewMatrix; import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
public class ParticlesExporter implements Exporter { public class ParticlesExporter implements Exporter {
private final Minecraft mc = Minecraft.getMinecraft(); private final Minecraft mc = MCVer.getMinecraft();
private final RenderState renderState; private final RenderState renderState;
private DObject pointAtObject; private DObject pointAtObject;
private DObject particlesObject; private DObject particlesObject;
@@ -151,7 +152,7 @@ public class ParticlesExporter implements Exporter {
//$$ builder.startDrawingQuads(); //$$ builder.startDrawingQuads();
//#endif //#endif
//#if MC>=10809 //#if MC>=10809
particle.renderParticle(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0); particle.renderParticle(builder, MCVer.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
//#else //#else
//$$ particle.func_180434_a(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0); //$$ particle.func_180434_a(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
//#endif //#endif

View File

@@ -5,7 +5,7 @@ import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DMaterial; import com.replaymod.render.blend.data.DMaterial;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import org.lwjgl.util.vector.Matrix4f; import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
import java.io.IOException; import java.io.IOException;
import java.util.Deque; import java.util.Deque;

View File

@@ -1,14 +1,15 @@
//#if MC>=10800 //#if MC>=10800
package com.replaymod.render.blend.exporters; package com.replaymod.render.blend.exporters;
import com.replaymod.core.versions.MCVer;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.Exporter; import com.replaymod.render.blend.Exporter;
import com.replaymod.render.blend.data.DObject; import com.replaymod.render.blend.data.DObject;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import org.lwjgl.util.vector.Matrix4f;
import org.lwjgl.util.vector.Vector3f;
//#if MC>=10904 //#if MC>=10904
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@@ -24,7 +25,7 @@ import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
import static com.replaymod.render.blend.Util.getTileEntityId; import static com.replaymod.render.blend.Util.getTileEntityId;
public class TileEntityExporter implements Exporter { public class TileEntityExporter implements Exporter {
private final Minecraft mc = Minecraft.getMinecraft(); private final Minecraft mc = MCVer.getMinecraft();
private final RenderState renderState; private final RenderState renderState;
private DObject tileEntitiesObject; private DObject tileEntitiesObject;
private Map<TileEntity, DObject> tileEntityObjects; private Map<TileEntity, DObject> tileEntityObjects;

View File

@@ -3,31 +3,42 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.ChunkExporter; import com.replaymod.render.blend.exporters.ChunkExporter;
import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
import net.minecraft.client.renderer.chunk.ChunkRenderWorker; import net.minecraft.client.renderer.chunk.ChunkRenderWorker;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=10904 //#if MC>=11300
import net.minecraft.util.BlockRenderLayer; import net.minecraft.client.renderer.chunk.ChunkRenderTask;
//#else //#else
//$$ import net.minecraft.util.EnumWorldBlockLayer; //$$ import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
//#endif //#endif
@Mixin(ChunkRenderWorker.class) @Mixin(ChunkRenderWorker.class)
public abstract class MixinChunkRenderWorker { public abstract class MixinChunkRenderWorker {
@Inject(method = "processTask", at = @At("RETURN")) @Inject(method = "processTask", at = @At("RETURN"))
public void afterChunkUpdate(ChunkCompileTaskGenerator task, CallbackInfo ci) { //if MC>=11300
public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) {
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {
if (task.getStatus() == ChunkCompileTaskGenerator.Status.DONE if (task.getStatus() == ChunkRenderTask.Status.DONE
&& task.getType() == ChunkCompileTaskGenerator.Type.REBUILD_CHUNK) { && task.getType() == ChunkRenderTask.Type.REBUILD_CHUNK) {
blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), task.getCompiledChunk()); blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), task.getCompiledChunk());
} }
} }
} }
//#else
//$$ public void afterChunkUpdate(ChunkCompileTaskGenerator task, CallbackInfo ci) {
//$$ BlendState blendState = BlendState.getState();
//$$ if (blendState != null) {
//$$ if (task.getStatus() == ChunkCompileTaskGenerator.Status.DONE
//$$ && task.getType() == ChunkCompileTaskGenerator.Type.REBUILD_CHUNK) {
//$$ blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), task.getCompiledChunk());
//$$ }
//$$ }
//$$ }
//#endif
} }
//#endif //#endif

View File

@@ -3,12 +3,17 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.ModelRendererExporter; import com.replaymod.render.blend.exporters.ModelRendererExporter;
import net.minecraft.client.model.ModelRenderer;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11300
import net.minecraft.client.renderer.entity.model.ModelRenderer;
//#else
//$$ import net.minecraft.client.model.ModelRenderer;
//#endif
@Mixin(ModelRenderer.class) @Mixin(ModelRenderer.class)
public abstract class MixinModelRenderer { public abstract class MixinModelRenderer {
@Inject(method = "render", at = @At("HEAD")) @Inject(method = "render", at = @At("HEAD"))

View File

@@ -4,7 +4,6 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState; import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.EntityExporter; import com.replaymod.render.blend.exporters.EntityExporter;
import com.replaymod.render.blend.exporters.TileEntityExporter; import com.replaymod.render.blend.exporters.TileEntityExporter;
import net.minecraft.client.renderer.RenderGlobal;
import net.minecraft.client.renderer.culling.ICamera; import net.minecraft.client.renderer.culling.ICamera;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -12,7 +11,17 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(RenderGlobal.class) //#if MC>=11300
import net.minecraft.client.renderer.WorldRenderer;
//#else
//$$ import net.minecraft.client.renderer.RenderGlobal;
//#endif
//#if MC>=11300
@Mixin(WorldRenderer.class)
//#else
//$$ @Mixin(RenderGlobal.class)
//#endif
public abstract class MixinRenderGlobal { public abstract class MixinRenderGlobal {
// FIXME wither skull ._. mojang pls // FIXME wither skull ._. mojang pls
@@ -46,9 +55,14 @@ public abstract class MixinRenderGlobal {
} }
} }
@Inject(method = "renderEntities", @Inject(method = "renderEntities", at = @At(
at = @At(value = "INVOKE", value = "INVOKE",
target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V")) //#if MC>=11300
target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;render(Lnet/minecraft/tileentity/TileEntity;FI)V"
//#else
//$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V")
//#endif
))
public void preTileEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) { public void preTileEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {
@@ -56,10 +70,15 @@ public abstract class MixinRenderGlobal {
} }
} }
@Inject(method = "renderEntities", @Inject(method = "renderEntities", at = @At(
at = @At(value = "INVOKE", value = "INVOKE",
target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V", //#if MC>=11300
shift = At.Shift.AFTER)) target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;render(Lnet/minecraft/tileentity/TileEntity;FI)V",
//#else
//$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V"),
//#endif
shift = At.Shift.AFTER
))
public void postTileEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) { public void postTileEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {

View File

@@ -9,27 +9,40 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11300
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.model.IBakedModel;
//#else
//#if MC>=10904 //#if MC>=10904
import net.minecraft.client.renderer.RenderItem; //$$ import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.IBakedModel; //$$ import net.minecraft.client.renderer.block.model.IBakedModel;
//#else //#else
//$$ import net.minecraft.client.renderer.entity.RenderItem; //$$ import net.minecraft.client.renderer.entity.RenderItem;
//$$ import net.minecraft.client.resources.model.IBakedModel; //$$ import net.minecraft.client.resources.model.IBakedModel;
//#endif //#endif
@Mixin(RenderItem.class) //#if MC>=11300
@Mixin(ItemRenderer.class)
//#else
//$$ @Mixin(RenderItem.class)
//#endif
public abstract class MixinRenderItem { public abstract class MixinRenderItem {
//#if MC>=10904 //#if MC>=11300
@Inject(method = "renderModel(Lnet/minecraft/client/renderer/block/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V", @Inject(method = "renderModel(Lnet/minecraft/client/renderer/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
at = @At("HEAD")) at = @At("HEAD"))
//#else //#else
//#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", //$$ @Inject(method = "renderModel(Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
//$$ at = @At("HEAD")) //$$ at = @At("HEAD"))
//#endif //#endif
//#endif
private void onRenderModel(IBakedModel model, ItemStack stack, CallbackInfo ci) { private void onRenderModel(IBakedModel model, ItemStack stack, CallbackInfo ci) {
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {
blendState.get(ItemExporter.class).onRender((RenderItem)(Object)this, model, stack); blendState.get(ItemExporter.class).onRender(this, model, stack);
} }
} }
} }

View File

@@ -18,7 +18,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(RenderManager.class) @Mixin(RenderManager.class)
public abstract class MixinRenderManager { public abstract class MixinRenderManager {
@Inject(method = "doRenderEntity", @Inject(
//#if MC>=11300
method = "renderEntity",
//#else
//$$ method = "doRenderEntity",
//#endif
at = @At(value = "INVOKE", at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V")) target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V"))
public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box, public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box,
@@ -33,7 +38,12 @@ public abstract class MixinRenderManager {
} }
} }
@Inject(method = "doRenderEntity", @Inject(
//#if MC>=11300
method = "renderEntity",
//#else
//$$ method = "doRenderEntity",
//#endif
at = @At(value = "INVOKE", at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V", target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V",
shift = At.Shift.AFTER)) shift = At.Shift.AFTER))

View File

@@ -13,15 +13,22 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TileEntityRendererDispatcher.class) @Mixin(TileEntityRendererDispatcher.class)
public abstract class MixinTileEntityRendererDispatcher { public abstract class MixinTileEntityRendererDispatcher {
//#if MC>=11200 //#if MC>=11300
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V", @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
at = @At("HEAD")) at = @At("HEAD"))
public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, float alpha, CallbackInfo ci) { public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
float alpha = 1;
//#else
//#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, float alpha, CallbackInfo ci) {
//#else //#else
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V", //$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
//$$ at = @At("HEAD")) //$$ 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, CallbackInfo ci) {
//$$ float alpha = 1; //$$ float alpha = 1;
//#endif
//#endif //#endif
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {
@@ -29,14 +36,19 @@ public abstract class MixinTileEntityRendererDispatcher {
} }
} }
//#if MC>=11200 //#if MC>=11300
@Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V", @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
at = @At("RETURN")) at = @At("RETURN"))
public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, float alpha, CallbackInfo ci) { public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
//#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, float alpha, CallbackInfo ci) {
//#else //#else
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V", //$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFI)V",
//$$ at = @At("RETURN")) //$$ 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, CallbackInfo ci) {
//#endif
//#endif //#endif
BlendState blendState = BlendState.getState(); BlendState blendState = BlendState.getState();
if (blendState != null) { if (blendState != null) {

View File

@@ -110,8 +110,11 @@ public net.minecraft.client.renderer.WorldRenderer field_72740_G # renderEntitie
##endif ##endif
##endif ##endif
public net.minecraft.client.renderer.RenderGlobal$ContainerLocalRenderInformation ##if MC>=11300
#public net.minecraft.client.renderer.RenderGlobal$ContainerLocalRenderInformation field_178553_a # renderChunk public net.minecraft.client.renderer.WorldRenderer$ContainerLocalRenderInformation
##else
#$$ public net.minecraft.client.renderer.RenderGlobal$ContainerLocalRenderInformation
##endif
# ChunkRenderDispatcher # ChunkRenderDispatcher
public-f net.minecraft.client.renderer.chunk.ChunkRenderDispatcher field_178519_d # queueChunkUpdates public-f net.minecraft.client.renderer.chunk.ChunkRenderDispatcher field_178519_d # queueChunkUpdates

View File

@@ -179,7 +179,7 @@ dependencies {
shade 'org.aspectj:aspectjrt:1.8.2' shade 'org.aspectj:aspectjrt:1.8.2'
shade 'com.github.ReplayMod.JavaBlend:2.79.0:e0a1b9a' shade 'com.github.ReplayMod.JavaBlend:2.79.0:a0696f8'
def studioVersion = mcVersionStr def studioVersion = mcVersionStr
if (studioVersion == '1.8.9') studioVersion = '1.8' if (studioVersion == '1.8.9') studioVersion = '1.8'