Switch core to 1.14 (generated via ./gradlew :1.14:setCoreVersion)

This commit is contained in:
Jonas Herzig
2019-05-10 14:09:22 +02:00
parent 7f7d33def8
commit 7cbf7f7c94
183 changed files with 3250 additions and 3250 deletions

View File

@@ -4,7 +4,7 @@ import com.replaymod.render.blend.data.DImage;
import com.replaymod.render.blend.data.DMaterial;
import com.replaymod.render.blend.data.DPackedFile;
import com.replaymod.render.blend.data.DTexture;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.util.GlAllocationUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
@@ -27,7 +27,7 @@ public class BlendMaterials {
// Read raw image data from GL
int width = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_WIDTH);
int height = GL11.glGetTexLevelParameteri(GL11.GL_TEXTURE_2D, 0, GL11.GL_TEXTURE_HEIGHT);
ByteBuffer buffer = GLAllocation.createDirectByteBuffer(width * height * 4);
ByteBuffer buffer = GlAllocationUtils.allocateByteBuffer(width * height * 4);
GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer);
// Convert to BufferedImage

View File

@@ -6,14 +6,14 @@ 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.vertex.VertexFormat;
import net.minecraft.client.renderer.vertex.VertexFormatElement;
import net.minecraft.client.render.Tessellator;
import net.minecraft.client.render.VertexFormat;
import net.minecraft.client.render.VertexFormatElement;
import org.lwjgl.opengl.GL11;
//#if MC>=10904
//#if MC>=11200
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.render.BufferBuilder;
//#else
//$$ import net.minecraft.client.renderer.VertexBuffer;
//#endif
@@ -68,7 +68,7 @@ public class BlendMeshBuilder
// Someone probably finished drawing with the global instance instead of this one,
// let's just assume that what's happened and finish our last draw by ourselves
// (might miss correct texture though)
super.finishDrawing();
super.end();
addBufferToMesh();
} else {
throw new IllegalStateException("Already drawing!");
@@ -91,14 +91,14 @@ public class BlendMeshBuilder
public void maybeFinishDrawing() {
if (isDrawing) {
isDrawing = false;
super.finishDrawing();
super.end();
addBufferToMesh();
}
}
@Override
//#if MC>=10809
public void finishDrawing() {
public void end() {
//#else
//$$ public int finishDrawing() {
//#endif
@@ -106,13 +106,13 @@ public class BlendMeshBuilder
throw new IllegalStateException("Not building!");
} else {
if (!wellBehaved) {
Tessellator.getInstance().getBuffer().finishDrawing();
Tessellator.getInstance().getBufferBuilder().end();
}
//#if MC<10809
//$$ int ret =
//#endif
super.finishDrawing();
super.end();
addBufferToMesh();
@@ -140,7 +140,7 @@ public class BlendMeshBuilder
public static DMesh addBufferToMesh(ByteBuffer buffer, int mode, VertexFormat vertexFormat, DMesh mesh, ReadableVector3f vertOffset) {
//#if MC>=11300
int vertexCount = buffer.remaining() / vertexFormat.getSize();
int vertexCount = buffer.remaining() / vertexFormat.getVertexSize();
//#else
//$$ int vertexCount = buffer.remaining() / vertexFormat.getNextOffset();
//#endif
@@ -160,26 +160,26 @@ public class BlendMeshBuilder
int index = 0;
for (VertexFormatElement element : getElements(vertexFormat)) {
//#if MC>=10809
int offset = vertexFormat.getOffset(index);
int offset = vertexFormat.getElementOffset(index);
//#else
//$$ int offset = element.getOffset();
//#endif
switch (element.getUsage()) {
switch (element.getType()) {
case POSITION:
if (element.getType() != VertexFormatElement.EnumType.FLOAT) {
if (element.getFormat() != VertexFormatElement.Format.FLOAT) {
throw new UnsupportedOperationException("Only float is supported for position elements!");
}
posOffset = offset;
break;
case COLOR:
if (element.getType() != VertexFormatElement.EnumType.UBYTE) {
if (element.getFormat() != VertexFormatElement.Format.UNSIGNED_BYTE) {
throw new UnsupportedOperationException("Only unsigned byte is supported for color elements!");
}
colorOffset = offset;
break;
case UV:
if (element.getIndex() != 0) break;
if (element.getType() != VertexFormatElement.EnumType.FLOAT) {
if (element.getFormat() != VertexFormatElement.Format.FLOAT) {
throw new UnsupportedOperationException("Only float is supported for UV elements!");
}
uvOffset = offset;
@@ -194,7 +194,7 @@ public class BlendMeshBuilder
List<Vector2f> uvs = new ArrayList<>(vertexCount);
List<Integer> colors = new ArrayList<>(vertexCount);
//#if MC>=11300
int step = vertexFormat.getSize();
int step = vertexFormat.getVertexSize();
//#else
//$$ int step = vertexFormat.getNextOffset();
//#endif

View File

@@ -10,9 +10,9 @@ import com.replaymod.render.blend.exporters.ParticlesExporter;
import com.replaymod.render.blend.exporters.RenderState;
import com.replaymod.render.blend.exporters.TileEntityExporter;
//#endif
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.crash.ReportedException;
import net.minecraft.util.crash.CrashReport;
import net.minecraft.util.crash.CrashReportSection;
import net.minecraft.util.crash.CrashException;
import org.apache.commons.io.output.NullOutputStream;
import org.blender.utils.BlenderFactory;
import org.cakelab.blender.io.BlenderFile;
@@ -80,10 +80,10 @@ public class BlendState implements Exporter {
try {
exporter.setup();
} catch (IOException e) {
CrashReport report = CrashReport.makeCrashReport(e, "Setup of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter");
CrashReport report = CrashReport.create(e, "Setup of blend exporter");
CrashReportSection category = report.addElement("Exporter");
addDetail(category, "Exporter", exporter::toString);
throw new ReportedException(report);
throw new CrashException(report);
}
}
}
@@ -94,10 +94,10 @@ public class BlendState implements Exporter {
try {
exporter.tearDown();
} catch (IOException e) {
CrashReport report = CrashReport.makeCrashReport(e, "Tear down of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter");
CrashReport report = CrashReport.create(e, "Tear down of blend exporter");
CrashReportSection category = report.addElement("Exporter");
addDetail(category, "Exporter", exporter::toString);
throw new ReportedException(report);
throw new CrashException(report);
}
}
@@ -131,11 +131,11 @@ public class BlendState implements Exporter {
try {
exporter.preFrame(frame);
} catch (IOException e) {
CrashReport report = CrashReport.makeCrashReport(e, "Pre frame of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter");
CrashReport report = CrashReport.create(e, "Pre frame of blend exporter");
CrashReportSection category = report.addElement("Exporter");
addDetail(category, "Exporter", exporter::toString);
addDetail(category, "Frame", () -> String.valueOf(frame));
throw new ReportedException(report);
throw new CrashException(report);
}
}
}
@@ -146,11 +146,11 @@ public class BlendState implements Exporter {
try {
exporter.postFrame(frame);
} catch (IOException e) {
CrashReport report = CrashReport.makeCrashReport(e, "Post frame of blend exporter");
CrashReportCategory category = report.makeCategory("Exporter");
CrashReport report = CrashReport.create(e, "Post frame of blend exporter");
CrashReportSection category = report.addElement("Exporter");
addDetail(category, "Exporter", exporter::toString);
addDetail(category, "Frame", () -> String.valueOf(frame));
throw new ReportedException(report);
throw new CrashException(report);
}
}

View File

@@ -4,10 +4,10 @@ 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.Minecraft;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.util.GlAllocationUtils;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.block.entity.BlockEntity;
import org.blender.dna.Link;
import org.blender.dna.ListBase;
import org.blender.utils.BlenderFactory;
@@ -18,7 +18,7 @@ import java.io.IOException;
import java.nio.FloatBuffer;
//#if MC>=11400
//$$ import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3d;
//#endif
public class Util {
@@ -39,7 +39,7 @@ public class Util {
}
}
private static FloatBuffer floatBuffer = GLAllocation.createDirectFloatBuffer(16);
private static FloatBuffer floatBuffer = GlAllocationUtils.allocateFloatBuffer(16);
public static Matrix4f getGlMatrix(int matrix) {
floatBuffer.clear();
//#if MC>=11300
@@ -138,16 +138,16 @@ public class Util {
//#if MC>=10800
public static Vector3f getCameraPos() {
Minecraft mc = Minecraft.getInstance();
MinecraftClient mc = MinecraftClient.getInstance();
//#if MC>=11400
//$$ Vec3d pos = mc.getEntityRenderManager().camera.getPos();
//$$ return new Vector3f((float) pos.x, (float) pos.y, (float) pos.z);
Vec3d pos = mc.getEntityRenderManager().camera.getPos();
return new Vector3f((float) pos.x, (float) pos.y, (float) pos.z);
//#else
return new Vector3f(
(float) -mc.getRenderManager().viewerPosX,
(float) -mc.getRenderManager().viewerPosY,
(float) -mc.getRenderManager().viewerPosZ
);
//$$ return new Vector3f(
//$$ (float) -mc.getRenderManager().viewerPosX,
//$$ (float) -mc.getRenderManager().viewerPosY,
//$$ (float) -mc.getRenderManager().viewerPosZ
//$$ );
//#endif
}
//#endif
@@ -182,10 +182,10 @@ public class Util {
}
}
public static String getTileEntityId(TileEntity tileEntity) {
NBTTagCompound nbt = new NBTTagCompound();
public static String getTileEntityId(BlockEntity tileEntity) {
CompoundTag nbt = new CompoundTag();
//#if MC>=11300
tileEntity.write(nbt);
tileEntity.toTag(nbt);
//#else
//$$ tileEntity.writeToNBT(nbt);
//#endif

View File

@@ -10,19 +10,19 @@ 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;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.chunk.CompiledChunk;
import net.minecraft.client.renderer.chunk.RenderChunk;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.renderer.vertex.VertexBuffer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.util.GlAllocationUtils;
import com.mojang.blaze3d.platform.GLX;
import net.minecraft.client.render.chunk.ChunkRenderData;
import net.minecraft.client.render.chunk.ChunkRenderer;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.client.gl.GlBuffer;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
//#if MC>=10904
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.block.BlockRenderLayer;
import net.minecraft.util.math.BlockPos;
//#else
//$$ import net.minecraft.util.BlockPos;
@@ -43,7 +43,7 @@ public class ChunkExporter implements Exporter {
private final Map<BlockPos, DObject> chunkObjects = new HashMap<>();
//#if MC>=10904
private final Map<BlockPos, Map<BlockRenderLayer, DObject>> chunkLayerObjects = new HashMap<>();
private final List<Pair<RenderChunk, BlockRenderLayer>> chunks = new ArrayList<>();
private final List<Pair<ChunkRenderer, BlockRenderLayer>> chunks = new ArrayList<>();
//#else
//$$ private final Map<BlockPos, Map<EnumWorldBlockLayer, DObject>> chunkLayerObjects = new HashMap<>();
//$$ private final List<Pair<RenderChunk, EnumWorldBlockLayer>> chunks = new ArrayList<>();
@@ -51,13 +51,13 @@ public class ChunkExporter implements Exporter {
private DObject chunksObject;
private int frame;
public void addChunkUpdate(RenderChunk chunk, CompiledChunk compiledChunk) {
public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) {
//#if MC>=10904
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
//#else
//$$ for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) {
//#endif
if (compiledChunk == null || compiledChunk.isLayerStarted(layer)) {
if (compiledChunk == null || compiledChunk.isBufferInitialized(layer)) {
chunks.add(Pair.of(chunk, layer));
}
}
@@ -66,12 +66,12 @@ public class ChunkExporter implements Exporter {
@Override
public void setup() throws IOException {
Minecraft mc = MCVer.getMinecraft();
MinecraftClient mc = MCVer.getMinecraft();
@SuppressWarnings("unchecked")
List<ContainerLocalRenderInformationAccessor> renderInfos = ((WorldRendererAccessor) mc.renderGlobal).getRenderInfos();
List<ContainerLocalRenderInformationAccessor> renderInfos = ((WorldRendererAccessor) mc.worldRenderer).getRenderInfos();
for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) {
RenderChunk renderChunk = renderInfo.getRenderChunk();
CompiledChunk compiledChunk = renderChunk.getCompiledChunk();
ChunkRenderer renderChunk = renderInfo.getRenderChunk();
ChunkRenderData compiledChunk = renderChunk.getChunkRenderData();
if (!compiledChunk.isEmpty()) {
addChunkUpdate(renderChunk, null);
}
@@ -98,18 +98,18 @@ public class ChunkExporter implements Exporter {
@Override
public void postFrame(int frame) throws IOException {
//#if MC>=10904
for (Pair<RenderChunk, BlockRenderLayer> pair : chunks) {
for (Pair<ChunkRenderer, BlockRenderLayer> pair : chunks) {
BlockRenderLayer layer = pair.getRight();
//#else
//$$ for (Pair<RenderChunk, EnumWorldBlockLayer> pair : chunks) {
//$$ EnumWorldBlockLayer layer = pair.getRight();
//#endif
RenderChunk chunk = pair.getLeft();
DObject chunkObject = chunkObjects.get(chunk.getPosition());
ChunkRenderer chunk = pair.getLeft();
DObject chunkObject = chunkObjects.get(chunk.getOrigin());
if (chunkObject == null) {
chunkObject = buildChunkObject(chunk);
chunkObjects.put(chunk.getPosition(), chunkObject);
chunkLayerObjects.put(chunk.getPosition(), new EnumMap<>(layer.getDeclaringClass()));
chunkObjects.put(chunk.getOrigin(), chunkObject);
chunkLayerObjects.put(chunk.getOrigin(), new EnumMap<>(layer.getDeclaringClass()));
}
DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer);
if (layerObject == null) continue;
@@ -118,7 +118,7 @@ public class ChunkExporter implements Exporter {
//#else
//$$ Map<EnumWorldBlockLayer, DObject> layerObjects
//#endif
= chunkLayerObjects.get(chunk.getPosition());
= chunkLayerObjects.get(chunk.getOrigin());
DObject oldLayerObject = layerObjects.get(layer);
if (oldLayerObject != null) {
oldLayerObject.keyframe("hide", 0, frame, 1f);
@@ -134,8 +134,8 @@ public class ChunkExporter implements Exporter {
chunks.clear();
}
private DObject buildChunkObject(RenderChunk renderChunk) {
BlockPos pos = renderChunk.getPosition();
private DObject buildChunkObject(ChunkRenderer renderChunk) {
BlockPos pos = renderChunk.getOrigin();
DObject chunkObject = new DObject(DObject.Type.OB_EMPTY);
chunkObject.setParent(chunksObject);
chunkObject.id.name = "Chunk[" + pos.getX()/16 + "/" + pos.getY()/16 + "/" + pos.getZ()/16 + "]";
@@ -143,13 +143,13 @@ public class ChunkExporter implements Exporter {
return chunkObject;
}
private DObject buildChunkLayerObject(DObject chunkObject, RenderChunk renderChunk,
private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk,
//#if MC>=10904
BlockRenderLayer layer) {
//#else
//$$ EnumWorldBlockLayer layer) {
//#endif
VertexBuffer vertexBuffer = renderChunk.getVertexBufferByLayer(layer.ordinal());
GlBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal());
if (vertexBuffer == null) return null;
DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer));
@@ -158,16 +158,16 @@ public class ChunkExporter implements Exporter {
return layerObject;
}
private DMesh buildChunkLayerMesh(VertexBuffer vertexBuffer) {
vertexBuffer.bindBuffer();
int size = GL15.glGetBufferParameteri(OpenGlHelper.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE);
ByteBuffer byteBuffer = GLAllocation.createDirectByteBuffer(size);
GL15.glGetBufferSubData(OpenGlHelper.GL_ARRAY_BUFFER, 0, byteBuffer);
vertexBuffer.unbindBuffer();
private DMesh buildChunkLayerMesh(GlBuffer vertexBuffer) {
vertexBuffer.bind();
int size = GL15.glGetBufferParameteri(GLX.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE);
ByteBuffer byteBuffer = GlAllocationUtils.allocateByteBuffer(size);
GL15.glGetBufferSubData(GLX.GL_ARRAY_BUFFER, 0, byteBuffer);
vertexBuffer.unbind();
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, VertexFormats.POSITION_COLOR_UV_LMAP, null, null);
}
private static final int STRIDE = 28;

View File

@@ -7,9 +7,9 @@ import com.replaymod.render.blend.Exporter;
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.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.LivingEntity;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -18,7 +18,7 @@ import static com.replaymod.render.blend.Util.getCameraPos;
import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
public class EntityExporter implements Exporter {
private final Minecraft mc = MCVer.getMinecraft();
private final MinecraftClient mc = MCVer.getMinecraft();
private final RenderState renderState;
private DObject entitiesObject;
private Map<Entity, DObject> entityObjects;
@@ -69,7 +69,7 @@ public class EntityExporter implements Exporter {
// So, we translate there, then store the model-view-matrix and then translate back to let the
// renderer translate there again.
// Instead of actually translating, we just add the translation on the current model-view-matrix.
if (!(entity instanceof EntityLivingBase)) { // except for EntityLivingBase which get special (better) treatment
if (!(entity instanceof LivingEntity)) { // except for EntityLivingBase which get special (better) treatment
Matrix4f modelView = getGlModelViewMatrix();
Matrix4f.translate(new Vector3f((float) dx, (float) dy, (float) dz), modelView, modelView);
renderState.pushModelView(modelView);

View File

@@ -5,20 +5,20 @@ 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.vertex.DefaultVertexFormats;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.Direction;
import org.lwjgl.opengl.GL11;
//#if MC>=11400
//$$ import net.minecraft.util.math.Vec3i;
import net.minecraft.util.math.Vec3i;
//#else
import net.minecraftforge.client.model.pipeline.LightUtil;
//$$ import net.minecraftforge.client.model.pipeline.LightUtil;
//#endif
//#if MC>=11300
import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.render.model.BakedQuad;
import net.minecraft.client.render.model.BakedModel;
//#else
//$$ import net.minecraft.client.renderer.block.model.BakedQuad;
//#if MC>=10904
@@ -42,7 +42,7 @@ public class ItemExporter implements Exporter {
this.renderState = renderState;
}
public void onRender(Object renderItem, IBakedModel model, ItemStack stack) {
public void onRender(Object renderItem, BakedModel model, ItemStack stack) {
DObject object = getObjectForItemStack(renderItem, model, stack);
renderState.pushObject(object);
@@ -55,7 +55,7 @@ public class ItemExporter implements Exporter {
renderState.pop();
}
private DObject getObjectForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
private DObject getObjectForItemStack(Object renderItem, BakedModel model, ItemStack stack) {
int frame = renderState.getFrame();
DObject parent = renderState.peekObject();
DObject object = null;
@@ -81,19 +81,19 @@ public class ItemExporter implements Exporter {
}
@SuppressWarnings("unchecked")
private static DMesh generateMeshForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
private static DMesh generateMeshForItemStack(Object renderItem, BakedModel model, ItemStack stack) {
DMesh mesh = new DMesh();
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
builder.setWellBehaved(true);
//#if MC>=10809
builder.begin(GL11.GL_QUADS, DefaultVertexFormats.ITEM);
builder.begin(GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_NORMAL);
//#else
//$$ builder.startDrawingQuads();
//$$ builder.setVertexFormat(DefaultVertexFormats.ITEM);
//#endif
//#if MC>=11300
for (EnumFacing face : EnumFacing.values()) {
for (Direction face : Direction.values()) {
renderQuads(renderItem, builder, model.getQuads(null, face, new Random()), stack);
}
renderQuads(renderItem, builder, model.getQuads(null, null, new Random()), stack);
@@ -111,26 +111,26 @@ public class ItemExporter implements Exporter {
//#endif
//#endif
builder.finishDrawing();
builder.end();
return mesh;
}
private static void renderQuads(Object renderItem, BlendMeshBuilder buffer, List<BakedQuad> quads, ItemStack stack) {
for (BakedQuad quad : quads) {
int color = stack != null && quad.hasTintIndex()
int color = stack != null && quad.hasColor()
//#if MC>=10904
? ((ItemRendererAccessor) renderItem).getItemColors().getColor(stack, quad.getTintIndex()) | 0xff000000
? ((ItemRendererAccessor) renderItem).getItemColors().getRenderColor(stack, quad.getColorIndex()) | 0xff000000
//#else
//$$ ? stack.getItem().getColorFromItemStack(stack, quad.getTintIndex()) | 0xff000000
//#endif
: 0xffffffff;
//#if MC>=11400
//$$ buffer.putVertexData(quad.getVertexData());
//$$ buffer.setQuadColor(color);
//$$ Vec3i vec3i_1 = quad.getFace().getVector();
//$$ buffer.postNormal(vec3i_1.getX(), vec3i_1.getY(), vec3i_1.getZ());
buffer.putVertexData(quad.getVertexData());
buffer.setQuadColor(color);
Vec3i vec3i_1 = quad.getFace().getVector();
buffer.postNormal(vec3i_1.getX(), vec3i_1.getY(), vec3i_1.getZ());
//#else
LightUtil.renderQuadColor(buffer, quad, color);
//$$ LightUtil.renderQuadColor(buffer, quad, color);
//#endif
}
@@ -138,18 +138,18 @@ public class ItemExporter implements Exporter {
private static class ItemBasedDObject extends DObject {
private final Object renderItem;
private final IBakedModel model;
private final BakedModel model;
private final ItemStack stack;
private boolean valid;
public ItemBasedDObject(Object renderItem, IBakedModel model, ItemStack stack) {
public ItemBasedDObject(Object renderItem, BakedModel model, ItemStack stack) {
super(generateMeshForItemStack(renderItem, model, stack));
this.renderItem = renderItem;
this.model = model;
this.stack = stack;
}
public boolean isBasedOn(Object renderItem, IBakedModel model, ItemStack stack) {
public boolean isBasedOn(Object renderItem, BakedModel model, ItemStack stack) {
return this.renderItem == renderItem && this.model == model && this.stack == stack;
}

View File

@@ -8,8 +8,8 @@ import com.replaymod.render.blend.data.DObject;
import org.lwjgl.opengl.GL11;
//#if MC>=11300
import net.minecraft.client.renderer.entity.model.ModelBox;
import net.minecraft.client.renderer.entity.model.ModelRenderer;
import net.minecraft.client.model.Box;
import net.minecraft.client.model.Cuboid;
//#else
//$$ import net.minecraft.client.model.ModelBox;
//$$ import net.minecraft.client.model.ModelRenderer;
@@ -31,7 +31,7 @@ public class ModelRendererExporter implements Exporter {
public void setup() throws IOException {
}
public void preRenderModel(ModelRenderer model, float scale) {
public void preRenderModel(Cuboid model, float scale) {
DObject object = getObjectForModel(model, scale);
renderState.pushObject(object);
renderState.pushModelView();
@@ -53,7 +53,7 @@ public class ModelRendererExporter implements Exporter {
renderState.pop();
}
private DObject getObjectForModel(ModelRenderer model, float scale) {
private DObject getObjectForModel(Cuboid model, float scale) {
int frame = renderState.getFrame();
DObject parent = renderState.peekObject();
DObject object = null;
@@ -67,17 +67,17 @@ public class ModelRendererExporter implements Exporter {
}
if (object == null) {
object = new ModelBasedDObject(model, scale);
object.id.name = model.boxName;
object.id.name = model.name;
object.setParent(parent);
}
object.lastFrame = frame;
return object;
}
private static DMesh generateMesh(ModelRenderer model, float scale) {
private static DMesh generateMesh(Cuboid model, float scale) {
DMesh mesh = new DMesh();
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
for (ModelBox box : cubeList(model)) {
for (Box box : cubeList(model)) {
box.render(builder, scale);
}
builder.maybeFinishDrawing();
@@ -85,17 +85,17 @@ public class ModelRendererExporter implements Exporter {
}
private static class ModelBasedDObject extends DObject {
private final ModelRenderer model;
private final Cuboid model;
private final float scale;
private boolean valid;
public ModelBasedDObject(ModelRenderer model, float scale) {
public ModelBasedDObject(Cuboid model, float scale) {
super(generateMesh(model, scale));
this.model = model;
this.scale = scale;
}
public boolean isBasedOn(ModelRenderer model, float scale) {
public boolean isBasedOn(Cuboid model, float scale) {
return this.model == model && Math.abs(this.scale - scale) < 1e-4;
}

View File

@@ -10,10 +10,10 @@ 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;
import net.minecraft.client.MinecraftClient;
//#if MC>=11400
//$$ import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3d;
//#endif
//#if MC>=10904
@@ -24,7 +24,7 @@ import net.minecraft.client.particle.Particle;
//#endif
//#if MC>=10809
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.render.VertexFormats;
//#endif
import java.io.IOException;
@@ -35,7 +35,7 @@ import static com.replaymod.render.blend.Util.getCameraPos;
import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
public class ParticlesExporter implements Exporter {
private final Minecraft mc = MCVer.getMinecraft();
private final MinecraftClient mc = MCVer.getMinecraft();
private final RenderState renderState;
private DObject pointAtObject;
private DObject particlesObject;
@@ -113,9 +113,9 @@ public class ParticlesExporter implements Exporter {
// Instead of actually translating, we just add the translation on the current model-view-matrix.
Matrix4f modelView = getGlModelViewMatrix();
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;
double dx = acc.getPrevPosX() + (acc.getPosX() - acc.getPrevPosX()) * renderPartialTicks - Particle.cameraX;
double dy = acc.getPrevPosY() + (acc.getPosY() - acc.getPrevPosY()) * renderPartialTicks - Particle.cameraY;
double dz = acc.getPrevPosZ() + (acc.getPosZ() - acc.getPrevPosZ()) * renderPartialTicks - Particle.cameraZ;
Vector3f offset = new Vector3f((float) dx, (float) dy, (float) dz);
Matrix4f.translate(offset, modelView, modelView);
renderState.pushModelView(modelView);
@@ -162,22 +162,22 @@ public class ParticlesExporter implements Exporter {
builder.setReverseOffset(offset);
builder.setWellBehaved(true);
//#if MC>=10809
builder.begin(7, DefaultVertexFormats.PARTICLE_POSITION_TEX_COLOR_LMAP);
builder.begin(7, VertexFormats.POSITION_UV_COLOR_LMAP);
//#else
//$$ builder.startDrawingQuads();
//#endif
//#if MC>=10809
particle.renderParticle(builder,
particle.buildGeometry(builder,
//#if MC>=11400
//$$ MCVer.getMinecraft().gameRenderer.getCamera(),
MCVer.getMinecraft().gameRenderer.getCamera(),
//#else
MCVer.getMinecraft().getRenderViewEntity(),
//$$ MCVer.getMinecraft().getRenderViewEntity(),
//#endif
0, 1, 1, 0, 0, 0);
//#else
//$$ particle.func_180434_a(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
//#endif
builder.finishDrawing();
builder.end();
return mesh;
}

View File

@@ -7,8 +7,8 @@ import com.replaymod.render.blend.Exporter;
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.tileentity.TileEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.block.entity.BlockEntity;
//#if MC>=10904
import net.minecraft.util.math.BlockPos;
@@ -24,11 +24,11 @@ import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
import static com.replaymod.render.blend.Util.getTileEntityId;
public class TileEntityExporter implements Exporter {
private final Minecraft mc = MCVer.getMinecraft();
private final MinecraftClient mc = MCVer.getMinecraft();
private final RenderState renderState;
private DObject tileEntitiesObject;
private Map<TileEntity, DObject> tileEntityObjects;
private Map<TileEntity, DObject> tileEntityObjectsSeen;
private Map<BlockEntity, DObject> tileEntityObjects;
private Map<BlockEntity, DObject> tileEntityObjectsSeen;
public TileEntityExporter(RenderState renderState) {
this.renderState = renderState;
@@ -52,13 +52,13 @@ public class TileEntityExporter implements Exporter {
// so we position it at 0/0/0 and instead have the tile entities themselves move more
Matrix4f.translate(new Vector3f(
//#if MC>=11400
//$$ (float) -mc.getEntityRenderManager().camera.getPos().x,
//$$ (float) -mc.getEntityRenderManager().camera.getPos().y,
//$$ (float) -mc.getEntityRenderManager().camera.getPos().z
(float) -mc.getEntityRenderManager().camera.getPos().x,
(float) -mc.getEntityRenderManager().camera.getPos().y,
(float) -mc.getEntityRenderManager().camera.getPos().z
//#else
(float) -mc.getRenderManager().viewerPosX,
(float) -mc.getRenderManager().viewerPosY,
(float) -mc.getRenderManager().viewerPosZ
//$$ (float) -mc.getRenderManager().viewerPosX,
//$$ (float) -mc.getRenderManager().viewerPosY,
//$$ (float) -mc.getRenderManager().viewerPosZ
//#endif
), modelView, modelView);
renderState.push(tileEntitiesObject, modelView);
@@ -68,7 +68,7 @@ public class TileEntityExporter implements Exporter {
renderState.pop();
}
public void preRender(TileEntity tileEntity, double dx, double dy, double dz, float renderPartialTicks, int destroyStage, float alpha) {
public void preRender(BlockEntity tileEntity, double dx, double dy, double dz, float renderPartialTicks, int destroyStage, float alpha) {
// FIXME: handle alpha
DObject tileEntityObject = tileEntityObjects.get(tileEntity);
if (tileEntityObject == null) {
@@ -102,7 +102,7 @@ public class TileEntityExporter implements Exporter {
@Override
public void postFrame(int frame) throws IOException {
for (Map.Entry<TileEntity, DObject> entry : tileEntityObjects.entrySet()) {
for (Map.Entry<BlockEntity, DObject> entry : tileEntityObjects.entrySet()) {
if (!tileEntityObjectsSeen.containsKey(entry.getKey())) {
DObject object = entry.getValue();
object.keyframe("hide", 0, renderState.getFrame(), 1f);

View File

@@ -1,25 +1,25 @@
//#if MC>=10800
package com.replaymod.render.blend.mixin;
import net.minecraft.client.renderer.chunk.RenderChunk;
import net.minecraft.client.render.chunk.ChunkRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
//#if MC>=11400
//$$ @Mixin(targets = "net/minecraft/client/render/WorldRenderer/ChunkInfo")
@Mixin(targets = "net/minecraft/client/render/WorldRenderer/ChunkInfo")
//#else
//#if MC>=11300
@Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation")
//$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation")
//#else
//$$ @Mixin(targets = "net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation")
//#endif
//#endif
public interface ContainerLocalRenderInformationAccessor {
//#if MC>=11400
//$$ @Accessor("renderer")
@Accessor("renderer")
//#else
@Accessor
//$$ @Accessor
//#endif
RenderChunk getRenderChunk();
ChunkRenderer getRenderChunk();
}
//#endif

View File

@@ -1,14 +1,14 @@
//#if MC>=10904
package com.replaymod.render.blend.mixin;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.color.ItemColors;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.item.ItemColorMap;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ItemRenderer.class)
public interface ItemRendererAccessor {
@Accessor
ItemColors getItemColors();
@Accessor("colorMap")
ItemColorMap getItemColors();
}
//#endif

View File

@@ -3,14 +3,14 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.ChunkExporter;
import net.minecraft.client.renderer.chunk.ChunkRenderWorker;
import net.minecraft.client.render.chunk.ChunkRenderWorker;
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>=11300
import net.minecraft.client.renderer.chunk.ChunkRenderTask;
import net.minecraft.client.render.chunk.ChunkRenderTask;
//#else
//$$ import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
//#endif
@@ -18,14 +18,14 @@ import net.minecraft.client.renderer.chunk.ChunkRenderTask;
@Mixin(ChunkRenderWorker.class)
public abstract class MixinChunkRenderWorker {
@Inject(method = "processTask", at = @At("RETURN"))
@Inject(method = "runTask", at = @At("RETURN"))
//#if MC>=11300
public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
if (task.getStatus() == ChunkRenderTask.Status.DONE
&& task.getType() == ChunkRenderTask.Type.REBUILD_CHUNK) {
blendState.get(ChunkExporter.class).addChunkUpdate(task.getRenderChunk(), task.getCompiledChunk());
if (task.getStage() == ChunkRenderTask.Stage.DONE
&& task.getMode() == ChunkRenderTask.Mode.REBUILD_CHUNK) {
blendState.get(ChunkExporter.class).addChunkUpdate(task.getChunkRenderer(), task.getRenderData());
}
}
}

View File

@@ -9,9 +9,9 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11400
//$$ import net.minecraft.client.render.Camera;
import net.minecraft.client.render.Camera;
//#else
import net.minecraft.entity.Entity;
//$$ import net.minecraft.entity.Entity;
//#endif
//#if MC>=10904
@@ -30,9 +30,9 @@ public abstract class MixinEffectRenderer {
@Inject(method = "renderParticles", at = @At("HEAD"))
private void preRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
float renderPartialTicks,
CallbackInfo ci
@@ -46,9 +46,9 @@ public abstract class MixinEffectRenderer {
@Inject(method = "renderParticles", at = @At("RETURN"))
private void postRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
float renderPartialTicks,
CallbackInfo ci
@@ -60,21 +60,21 @@ public abstract class MixinEffectRenderer {
}
//#if MC<11400
@Inject(method = "renderLitParticles", at = @At("HEAD"))
public void preLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ParticlesExporter.class).preParticlesRender(true);
}
}
@Inject(method = "renderLitParticles", at = @At("RETURN"))
public void postLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ParticlesExporter.class).postParticlesRender();
}
}
//$$ @Inject(method = "renderLitParticles", at = @At("HEAD"))
//$$ public void preLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) {
//$$ BlendState blendState = BlendState.getState();
//$$ if (blendState != null) {
//$$ blendState.get(ParticlesExporter.class).preParticlesRender(true);
//$$ }
//$$ }
//$$
//$$ @Inject(method = "renderLitParticles", at = @At("RETURN"))
//$$ public void postLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) {
//$$ BlendState blendState = BlendState.getState();
//$$ if (blendState != null) {
//$$ blendState.get(ParticlesExporter.class).postParticlesRender();
//$$ }
//$$ }
//#endif
}
//#endif

View File

@@ -9,26 +9,26 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11300
import net.minecraft.client.renderer.entity.model.ModelRenderer;
import net.minecraft.client.model.Cuboid;
//#else
//$$ import net.minecraft.client.model.ModelRenderer;
//#endif
@Mixin(ModelRenderer.class)
@Mixin(Cuboid.class)
public abstract class MixinModelRenderer {
@Inject(method = "render", at = @At("HEAD"))
public void preRender(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ModelRendererExporter.class).preRenderModel((ModelRenderer)(Object)this, scale);
blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale);
}
}
@Inject(method = "renderWithRotation", at = @At("HEAD"))
@Inject(method = "method_2852", at = @At("HEAD"))
public void preRenderWithRotation(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ModelRendererExporter.class).preRenderModel((ModelRenderer)(Object)this, scale);
blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale);
}
}
@@ -40,7 +40,7 @@ public abstract class MixinModelRenderer {
}
}
@Inject(method = "renderWithRotation", at = @At("RETURN"))
@Inject(method = "method_2852", at = @At("RETURN"))
public void postRenderWithRotation(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
@@ -50,7 +50,7 @@ public abstract class MixinModelRenderer {
@Inject(method = "render",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/GlStateManager;callList(I)V"),
target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"),
expect = 3)
public void onRender(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
@@ -59,9 +59,9 @@ public abstract class MixinModelRenderer {
}
}
@Inject(method = "renderWithRotation",
@Inject(method = "method_2852",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/GlStateManager;callList(I)V"))
target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"))
public void onRenderWithRotation(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {

View File

@@ -4,20 +4,20 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.EntityExporter;
import com.replaymod.render.blend.exporters.TileEntityExporter;
import net.minecraft.client.renderer.culling.ICamera;
import net.minecraft.client.render.VisibleRegion;
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>=11400
//$$ import net.minecraft.client.render.Camera;
import net.minecraft.client.render.Camera;
//#else
import net.minecraft.entity.Entity;
//$$ import net.minecraft.entity.Entity;
//#endif
//#if MC>=11300
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.render.WorldRenderer;
//#else
//$$ import net.minecraft.client.renderer.RenderGlobal;
//#endif
@@ -34,17 +34,17 @@ public abstract class MixinRenderGlobal {
@Inject(method = "renderEntities",
at = @At(value = "INVOKE",
//#if MC>=10904
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V"))
target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V"))
//#else
//$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z"))
//#endif
private void preEntityRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
ICamera camera, float renderPartialTicks, CallbackInfo ci) {
VisibleRegion camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(EntityExporter.class).preEntitiesRender();
@@ -54,18 +54,18 @@ public abstract class MixinRenderGlobal {
@Inject(method = "renderEntities",
at = @At(value = "INVOKE",
//#if MC>=10904
target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V",
target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V",
//#else
//$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z",
//#endif
shift = At.Shift.AFTER))
private void postEntityRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
ICamera camera, float renderPartialTicks, CallbackInfo ci) {
VisibleRegion camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(EntityExporter.class).postEntitiesRender();
@@ -75,18 +75,18 @@ public abstract class MixinRenderGlobal {
@Inject(method = "renderEntities", at = @At(
value = "INVOKE",
//#if MC>=11300
target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;render(Lnet/minecraft/tileentity/TileEntity;FI)V"
target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V"
//#else
//$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V"
//#endif
))
private void preTileEntityRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
ICamera camera, float renderPartialTicks, CallbackInfo ci) {
VisibleRegion camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(TileEntityExporter.class).preTileEntitiesRender();
@@ -96,7 +96,7 @@ public abstract class MixinRenderGlobal {
@Inject(method = "renderEntities", at = @At(
value = "INVOKE",
//#if MC>=11300
target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;render(Lnet/minecraft/tileentity/TileEntity;FI)V",
target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V",
//#else
//$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V",
//#endif
@@ -104,11 +104,11 @@ public abstract class MixinRenderGlobal {
))
private void postTileEntityRender(
//#if MC>=11400
//$$ Camera view,
Camera view,
//#else
Entity view,
//$$ Entity view,
//#endif
ICamera camera, float renderPartialTicks, CallbackInfo ci) {
VisibleRegion camera, float renderPartialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(TileEntityExporter.class).postTileEntitiesRender();

View File

@@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11300
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.BakedModel;
//#else
//#if MC>=10904
//$$ import net.minecraft.client.renderer.RenderItem;
@@ -29,11 +29,11 @@ import net.minecraft.client.renderer.model.IBakedModel;
//#endif
public abstract class MixinRenderItem {
//#if MC>=11400
//$$ @Inject(method = "renderItemModel", at = @At("HEAD"))
@Inject(method = "renderItemModel", at = @At("HEAD"))
//#else
//#if MC>=11300
@Inject(method = "renderModel(Lnet/minecraft/client/renderer/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
at = @At("HEAD"))
//$$ @Inject(method = "renderModel(Lnet/minecraft/client/renderer/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
//$$ at = @At("HEAD"))
//#else
//#if MC>=10904
//$$ @Inject(method = "renderModel(Lnet/minecraft/client/renderer/block/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
@@ -44,7 +44,7 @@ public abstract class MixinRenderItem {
//#endif
//#endif
//#endif
private void onRenderModel(IBakedModel model, ItemStack stack, CallbackInfo ci) {
private void onRenderModel(BakedModel model, ItemStack stack, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ItemExporter.class).onRender(this, model, stack);

View File

@@ -3,34 +3,34 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.EntityExporter;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.LivingEntity;
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.entity.RenderLivingBase;
import net.minecraft.client.render.entity.LivingEntityRenderer;
//#else
//$$ import net.minecraft.client.renderer.entity.RendererLivingEntity;
//#endif
//#if MC>=10904
@Mixin(RenderLivingBase.class)
@Mixin(LivingEntityRenderer.class)
//#else
//$$ @Mixin(RendererLivingEntity.class)
//#endif
public abstract class MixinRenderLivingBase {
@Inject(method = "doRender", at = @At(
@Inject(method = "method_4054", at = @At(
value = "INVOKE",
//#if MC>=10904
target = "Lnet/minecraft/client/renderer/entity/RenderLivingBase;prepareScale(Lnet/minecraft/entity/EntityLivingBase;F)F",
target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F",
//#else
//$$ target = "Lnet/minecraft/client/renderer/entity/RendererLivingEntity;preRenderCallback(Lnet/minecraft/entity/EntityLivingBase;F)V",
//#endif
shift = At.Shift.AFTER
))
private void recordModelMatrix(EntityLivingBase entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) {
private void recordModelMatrix(LivingEntity entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(EntityExporter.class).postEntityLivingSetup();

View File

@@ -3,7 +3,7 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.EntityExporter;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -15,21 +15,21 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
//#endif
@Mixin(RenderManager.class)
@Mixin(EntityRenderDispatcher.class)
public abstract class MixinRenderManager {
@Inject(
//#if MC>=11400
//$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
//#else
//#if MC>=11300
method = "renderEntity",
//$$ method = "renderEntity",
//#else
//$$ method = "doRenderEntity",
//#endif
//#endif
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V"))
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V"))
public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box,
//#if MC>=10904
CallbackInfo ci) {
@@ -44,16 +44,16 @@ public abstract class MixinRenderManager {
@Inject(
//#if MC>=11400
//$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
//#else
//#if MC>=11300
method = "renderEntity",
//$$ method = "renderEntity",
//#else
//$$ method = "doRenderEntity",
//#endif
//#endif
at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V",
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V",
shift = At.Shift.AFTER))
public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box,
//#if MC>=10904

View File

@@ -3,25 +3,25 @@ package com.replaymod.render.blend.mixin;
import com.replaymod.render.blend.BlendState;
import com.replaymod.render.blend.exporters.TileEntityExporter;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.block.entity.BlockEntity;
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(TileEntityRendererDispatcher.class)
@Mixin(BlockEntityRenderDispatcher.class)
public abstract class MixinTileEntityRendererDispatcher {
//#if MC>=11300
//#if MC>=11400
//$$ @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
//$$ at = @At("HEAD"))
//#else
@Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
@Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
at = @At("HEAD"))
//#else
//$$ @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
//$$ at = @At("HEAD"))
//#endif
public void preRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
public void preRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
float alpha = 1;
//#else
//#if MC>=11200
@@ -43,13 +43,13 @@ public abstract class MixinTileEntityRendererDispatcher {
//#if MC>=11300
//#if MC>=11400
//$$ @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
//$$ at = @At("RETURN"))
//#else
@Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
@Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
at = @At("RETURN"))
//#else
//$$ @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V",
//$$ at = @At("RETURN"))
//#endif
public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
public void postRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
//#else
//#if MC>=11200
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V",

View File

@@ -17,11 +17,11 @@ public interface ParticleAccessor
double getPrevPosY();
@Accessor
double getPrevPosZ();
@Accessor
@Accessor("x")
double getPosX();
@Accessor
@Accessor("y")
double getPosY();
@Accessor
@Accessor("z")
double getPosZ();
//#endif
}

View File

@@ -1,7 +1,7 @@
//#if MC>=10800
package com.replaymod.render.blend.mixin;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.render.WorldRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@@ -9,7 +9,7 @@ import java.util.List;
@Mixin(WorldRenderer.class)
public interface WorldRendererAccessor {
@Accessor
@Accessor("chunkInfos")
List getRenderInfos();
}
//#endif