./gradlew :1.15.2:setCoreVersion
Also `./gradlew :jGui:1.15.2:setCoreVersion`.
This commit is contained in:
@@ -12,7 +12,7 @@ import net.minecraft.client.render.VertexFormatElement;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ import com.mojang.datafixers.util.Pair;
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
@@ -140,10 +140,10 @@ public class BlendMeshBuilder
|
||||
//$$ public static DMesh addBufferToMesh(WorldRenderer bufferBuilder, DMesh mesh, Vector3f vertOffset) {
|
||||
//#endif
|
||||
//#if MC>=11500
|
||||
//$$ Pair<DrawArrayParameters, ByteBuffer> data = bufferBuilder.popData();
|
||||
//$$ return addBufferToMesh(data.getSecond(), data.getFirst().getMode(), data.getFirst().getVertexFormat(), mesh, vertOffset);
|
||||
Pair<DrawArrayParameters, ByteBuffer> data = bufferBuilder.popData();
|
||||
return addBufferToMesh(data.getSecond(), data.getFirst().getMode(), data.getFirst().getVertexFormat(), mesh, vertOffset);
|
||||
//#else
|
||||
return addBufferToMesh(bufferBuilder.getByteBuffer(), bufferBuilder.getDrawMode(), bufferBuilder.getVertexFormat(), mesh, vertOffset);
|
||||
//$$ return addBufferToMesh(bufferBuilder.getByteBuffer(), bufferBuilder.getDrawMode(), bufferBuilder.getVertexFormat(), mesh, vertOffset);
|
||||
//#endif
|
||||
}
|
||||
|
||||
@@ -168,15 +168,15 @@ public class BlendMeshBuilder
|
||||
int posOffset = -1, colorOffset = -1, uvOffset = -1;
|
||||
int index = 0;
|
||||
//#if MC>=11500
|
||||
//$$ int elementOffset = 0;
|
||||
int elementOffset = 0;
|
||||
//#endif
|
||||
for (VertexFormatElement element : getElements(vertexFormat)) {
|
||||
//#if MC>=11500
|
||||
//$$ int offset = elementOffset;
|
||||
//$$ elementOffset += element.getSize();
|
||||
int offset = elementOffset;
|
||||
elementOffset += element.getSize();
|
||||
//#else
|
||||
//#if MC>=10809
|
||||
int offset = vertexFormat.getElementOffset(index);
|
||||
//$$ int offset = vertexFormat.getElementOffset(index);
|
||||
//#else
|
||||
//$$ int offset = element.getOffset();
|
||||
//#endif
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.replaymod.render.blend.data.Serializer;
|
||||
//#if MC>=10800
|
||||
// FIXME 1.15
|
||||
//#if MC<11500
|
||||
import com.replaymod.render.blend.exporters.ChunkExporter;
|
||||
//$$ import com.replaymod.render.blend.exporters.ChunkExporter;
|
||||
//#endif
|
||||
import com.replaymod.render.blend.exporters.EntityExporter;
|
||||
import com.replaymod.render.blend.exporters.ItemExporter;
|
||||
@@ -58,7 +58,7 @@ public class BlendState implements Exporter {
|
||||
register(renderState);
|
||||
// FIXME 1.15
|
||||
//#if MC<11500
|
||||
register(new ChunkExporter());
|
||||
//$$ register(new ChunkExporter());
|
||||
//#endif
|
||||
register(new EntityExporter(renderState));
|
||||
register(new TileEntityExporter(renderState));
|
||||
|
||||
@@ -1,175 +1,175 @@
|
||||
// FIXME 1.15
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.exporters;
|
||||
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.render.blend.BlendMeshBuilder;
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.Exporter;
|
||||
import com.replaymod.render.blend.data.DMesh;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import com.replaymod.render.blend.mixin.ContainerLocalRenderInformationAccessor;
|
||||
import com.replaymod.render.blend.mixin.WorldRendererAccessor;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.texture.SpriteAtlasTexture;
|
||||
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.VertexBuffer;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL15;
|
||||
|
||||
//$$ package com.replaymod.render.blend.exporters;
|
||||
//$$
|
||||
//$$ import com.replaymod.core.versions.MCVer;
|
||||
//$$ import com.replaymod.render.blend.BlendMeshBuilder;
|
||||
//$$ import com.replaymod.render.blend.BlendState;
|
||||
//$$ import com.replaymod.render.blend.Exporter;
|
||||
//$$ import com.replaymod.render.blend.data.DMesh;
|
||||
//$$ import com.replaymod.render.blend.data.DObject;
|
||||
//$$ import com.replaymod.render.blend.mixin.ContainerLocalRenderInformationAccessor;
|
||||
//$$ import com.replaymod.render.blend.mixin.WorldRendererAccessor;
|
||||
//$$ import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
|
||||
//$$ import net.minecraft.client.MinecraftClient;
|
||||
//$$ import net.minecraft.client.texture.SpriteAtlasTexture;
|
||||
//$$ 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.VertexBuffer;
|
||||
//$$ import org.apache.commons.lang3.tuple.Pair;
|
||||
//$$ import org.lwjgl.opengl.GL11;
|
||||
//$$ import org.lwjgl.opengl.GL15;
|
||||
//$$
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
//$$ import net.minecraft.client.render.RenderLayer;
|
||||
//$$ import net.minecraft.util.math.BlockPos;
|
||||
//#else
|
||||
//$$ import net.minecraft.util.BlockPos;
|
||||
//$$ import net.minecraft.util.EnumWorldBlockLayer;
|
||||
//#endif
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ChunkExporter implements Exporter {
|
||||
private final Map<BlockPos, DObject> chunkObjects = new HashMap<>();
|
||||
//$$
|
||||
//$$ import java.io.IOException;
|
||||
//$$ import java.nio.ByteBuffer;
|
||||
//$$ import java.util.ArrayList;
|
||||
//$$ import java.util.EnumMap;
|
||||
//$$ import java.util.HashMap;
|
||||
//$$ import java.util.List;
|
||||
//$$ import java.util.Map;
|
||||
//$$
|
||||
//$$ public class ChunkExporter implements Exporter {
|
||||
//$$ private final Map<BlockPos, DObject> chunkObjects = new HashMap<>();
|
||||
//#if MC>=10904
|
||||
private final Map<BlockPos, Map<RenderLayer, DObject>> chunkLayerObjects = new HashMap<>();
|
||||
private final List<Pair<ChunkRenderer, RenderLayer>> chunks = new ArrayList<>();
|
||||
//$$ private final Map<BlockPos, Map<RenderLayer, DObject>> chunkLayerObjects = new HashMap<>();
|
||||
//$$ private final List<Pair<ChunkRenderer, RenderLayer>> chunks = new ArrayList<>();
|
||||
//#else
|
||||
//$$ private final Map<BlockPos, Map<EnumWorldBlockLayer, DObject>> chunkLayerObjects = new HashMap<>();
|
||||
//$$ private final List<Pair<RenderChunk, EnumWorldBlockLayer>> chunks = new ArrayList<>();
|
||||
//#endif
|
||||
private DObject chunksObject;
|
||||
private int frame;
|
||||
|
||||
public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) {
|
||||
//$$ private DObject chunksObject;
|
||||
//$$ private int frame;
|
||||
//$$
|
||||
//$$ public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) {
|
||||
//#if MC>=10904
|
||||
for (RenderLayer layer : RenderLayer.values()) {
|
||||
//$$ for (RenderLayer layer : RenderLayer.values()) {
|
||||
//#else
|
||||
//$$ for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) {
|
||||
//#endif
|
||||
if (compiledChunk == null || compiledChunk.isBufferInitialized(layer)) {
|
||||
chunks.add(Pair.of(chunk, layer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setup() throws IOException {
|
||||
|
||||
MinecraftClient mc = MCVer.getMinecraft();
|
||||
@SuppressWarnings("unchecked")
|
||||
List<ContainerLocalRenderInformationAccessor> renderInfos = ((WorldRendererAccessor) mc.worldRenderer).getRenderInfos();
|
||||
for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) {
|
||||
ChunkRenderer renderChunk = renderInfo.getRenderChunk();
|
||||
ChunkRenderData compiledChunk = renderChunk.getData();
|
||||
if (!compiledChunk.isEmpty()) {
|
||||
addChunkUpdate(renderChunk, null);
|
||||
}
|
||||
}
|
||||
|
||||
chunksObject = new DObject(DObject.Type.OB_EMPTY);
|
||||
chunksObject.id.name = "Chunks";
|
||||
chunksObject.layers = 1 << 1;
|
||||
BlendState.getState().getScene().base.add(chunksObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tearDown() throws IOException {
|
||||
chunks.clear();
|
||||
chunkObjects.clear();
|
||||
chunksObject = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preFrame(int frame) throws IOException {
|
||||
this.frame = frame;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postFrame(int frame) throws IOException {
|
||||
//$$ if (compiledChunk == null || compiledChunk.isBufferInitialized(layer)) {
|
||||
//$$ chunks.add(Pair.of(chunk, layer));
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Override
|
||||
//$$ public void setup() throws IOException {
|
||||
//$$
|
||||
//$$ MinecraftClient mc = MCVer.getMinecraft();
|
||||
//$$ @SuppressWarnings("unchecked")
|
||||
//$$ List<ContainerLocalRenderInformationAccessor> renderInfos = ((WorldRendererAccessor) mc.worldRenderer).getRenderInfos();
|
||||
//$$ for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) {
|
||||
//$$ ChunkRenderer renderChunk = renderInfo.getRenderChunk();
|
||||
//$$ ChunkRenderData compiledChunk = renderChunk.getData();
|
||||
//$$ if (!compiledChunk.isEmpty()) {
|
||||
//$$ addChunkUpdate(renderChunk, null);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ chunksObject = new DObject(DObject.Type.OB_EMPTY);
|
||||
//$$ chunksObject.id.name = "Chunks";
|
||||
//$$ chunksObject.layers = 1 << 1;
|
||||
//$$ BlendState.getState().getScene().base.add(chunksObject);
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Override
|
||||
//$$ public void tearDown() throws IOException {
|
||||
//$$ chunks.clear();
|
||||
//$$ chunkObjects.clear();
|
||||
//$$ chunksObject = null;
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Override
|
||||
//$$ public void preFrame(int frame) throws IOException {
|
||||
//$$ this.frame = frame;
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Override
|
||||
//$$ public void postFrame(int frame) throws IOException {
|
||||
//#if MC>=10904
|
||||
for (Pair<ChunkRenderer, RenderLayer> pair : chunks) {
|
||||
RenderLayer layer = pair.getRight();
|
||||
//$$ for (Pair<ChunkRenderer, RenderLayer> pair : chunks) {
|
||||
//$$ RenderLayer layer = pair.getRight();
|
||||
//#else
|
||||
//$$ for (Pair<RenderChunk, EnumWorldBlockLayer> pair : chunks) {
|
||||
//$$ EnumWorldBlockLayer layer = pair.getRight();
|
||||
//#endif
|
||||
ChunkRenderer chunk = pair.getLeft();
|
||||
DObject chunkObject = chunkObjects.get(chunk.getOrigin());
|
||||
if (chunkObject == null) {
|
||||
chunkObject = buildChunkObject(chunk);
|
||||
chunkObjects.put(chunk.getOrigin(), chunkObject);
|
||||
chunkLayerObjects.put(chunk.getOrigin(), new EnumMap<>(layer.getDeclaringClass()));
|
||||
}
|
||||
DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer);
|
||||
if (layerObject == null) continue;
|
||||
//$$ ChunkRenderer chunk = pair.getLeft();
|
||||
//$$ DObject chunkObject = chunkObjects.get(chunk.getOrigin());
|
||||
//$$ if (chunkObject == null) {
|
||||
//$$ chunkObject = buildChunkObject(chunk);
|
||||
//$$ chunkObjects.put(chunk.getOrigin(), chunkObject);
|
||||
//$$ chunkLayerObjects.put(chunk.getOrigin(), new EnumMap<>(layer.getDeclaringClass()));
|
||||
//$$ }
|
||||
//$$ DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer);
|
||||
//$$ if (layerObject == null) continue;
|
||||
//#if MC>=10904
|
||||
Map<RenderLayer, DObject> layerObjects
|
||||
//$$ Map<RenderLayer, DObject> layerObjects
|
||||
//#else
|
||||
//$$ Map<EnumWorldBlockLayer, DObject> layerObjects
|
||||
//#endif
|
||||
= chunkLayerObjects.get(chunk.getOrigin());
|
||||
DObject oldLayerObject = layerObjects.get(layer);
|
||||
if (oldLayerObject != null) {
|
||||
oldLayerObject.keyframe("hide", 0, frame, 1f);
|
||||
}
|
||||
if (frame > 0) {
|
||||
layerObject.keyframe("hide", 0, frame - 1, 1f);
|
||||
layerObject.keyframe("hide", 0, frame, 0f);
|
||||
} else {
|
||||
layerObject.keyframe("hide", 0, frame, 0f);
|
||||
}
|
||||
layerObjects.put(layer, layerObject);
|
||||
}
|
||||
chunks.clear();
|
||||
}
|
||||
|
||||
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 + "]";
|
||||
chunkObject.loc = new Vector3f(pos.getX(), -pos.getZ(), pos.getY());
|
||||
return chunkObject;
|
||||
}
|
||||
|
||||
private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk,
|
||||
//$$ = chunkLayerObjects.get(chunk.getOrigin());
|
||||
//$$ DObject oldLayerObject = layerObjects.get(layer);
|
||||
//$$ if (oldLayerObject != null) {
|
||||
//$$ oldLayerObject.keyframe("hide", 0, frame, 1f);
|
||||
//$$ }
|
||||
//$$ if (frame > 0) {
|
||||
//$$ layerObject.keyframe("hide", 0, frame - 1, 1f);
|
||||
//$$ layerObject.keyframe("hide", 0, frame, 0f);
|
||||
//$$ } else {
|
||||
//$$ layerObject.keyframe("hide", 0, frame, 0f);
|
||||
//$$ }
|
||||
//$$ layerObjects.put(layer, layerObject);
|
||||
//$$ }
|
||||
//$$ chunks.clear();
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ 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 + "]";
|
||||
//$$ chunkObject.loc = new Vector3f(pos.getX(), -pos.getZ(), pos.getY());
|
||||
//$$ return chunkObject;
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk,
|
||||
//#if MC>=10904
|
||||
RenderLayer layer) {
|
||||
//$$ RenderLayer layer) {
|
||||
//#else
|
||||
//$$ EnumWorldBlockLayer layer) {
|
||||
//#endif
|
||||
VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal());
|
||||
if (vertexBuffer == null) return null;
|
||||
|
||||
DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer));
|
||||
layerObject.setParent(chunkObject);
|
||||
layerObject.id.name = chunkObject.id.name + " - " + layer + " - Frame " + frame;
|
||||
return layerObject;
|
||||
}
|
||||
|
||||
private DMesh buildChunkLayerMesh(VertexBuffer 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(SpriteAtlasTexture.BLOCK_ATLAS_TEX);
|
||||
|
||||
return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_LMAP, null, null);
|
||||
}
|
||||
|
||||
private static final int STRIDE = 28;
|
||||
}
|
||||
//$$ VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal());
|
||||
//$$ if (vertexBuffer == null) return null;
|
||||
//$$
|
||||
//$$ DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer));
|
||||
//$$ layerObject.setParent(chunkObject);
|
||||
//$$ layerObject.id.name = chunkObject.id.name + " - " + layer + " - Frame " + frame;
|
||||
//$$ return layerObject;
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ private DMesh buildChunkLayerMesh(VertexBuffer 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(SpriteAtlasTexture.BLOCK_ATLAS_TEX);
|
||||
//$$
|
||||
//$$ return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_LMAP, null, null);
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ private static final int STRIDE = 28;
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -125,13 +125,13 @@ public class ItemExporter implements Exporter {
|
||||
//#endif
|
||||
: 0xffffffff;
|
||||
//#if MC>=11500
|
||||
//$$ // FIXME 1.15
|
||||
// FIXME 1.15
|
||||
//#else
|
||||
//#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);
|
||||
//#endif
|
||||
|
||||
@@ -9,9 +9,9 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
//#if MC>=11400
|
||||
//#if MC>=11500
|
||||
//$$ import net.minecraft.client.model.ModelPart.Cuboid;
|
||||
import net.minecraft.client.model.ModelPart.Cuboid;
|
||||
//#else
|
||||
import net.minecraft.client.model.Box;
|
||||
//$$ import net.minecraft.client.model.Box;
|
||||
//#endif
|
||||
import net.minecraft.client.model.ModelPart;
|
||||
//#else
|
||||
@@ -72,9 +72,9 @@ public class ModelRendererExporter implements Exporter {
|
||||
if (object == null) {
|
||||
object = new ModelBasedDObject(model, scale);
|
||||
//#if MC>=11500
|
||||
//$$ object.id.name = "???"; // FIXME 1.15 can we somehow nicely derive this?
|
||||
object.id.name = "???"; // FIXME 1.15 can we somehow nicely derive this?
|
||||
//#else
|
||||
object.id.name = model.name;
|
||||
//$$ object.id.name = model.name;
|
||||
//#endif
|
||||
object.setParent(parent);
|
||||
}
|
||||
@@ -86,13 +86,13 @@ public class ModelRendererExporter implements Exporter {
|
||||
DMesh mesh = new DMesh();
|
||||
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
|
||||
//#if MC>=11500
|
||||
//$$ for (Cuboid box : cubeList(model)) {
|
||||
//$$ // FIXME 1.15
|
||||
//$$ }
|
||||
//#else
|
||||
for (Box box : cubeList(model)) {
|
||||
box.render(builder, scale);
|
||||
for (Cuboid box : cubeList(model)) {
|
||||
// FIXME 1.15
|
||||
}
|
||||
//#else
|
||||
//$$ for (Box box : cubeList(model)) {
|
||||
//$$ box.render(builder, scale);
|
||||
//$$ }
|
||||
//#endif
|
||||
builder.maybeFinishDrawing();
|
||||
return mesh;
|
||||
|
||||
@@ -117,11 +117,11 @@ public class ParticlesExporter implements Exporter {
|
||||
double dy = acc.getPrevPosY() + (acc.getPosY() - acc.getPrevPosY()) * renderPartialTicks;
|
||||
double dz = acc.getPrevPosZ() + (acc.getPosZ() - acc.getPrevPosZ()) * renderPartialTicks;
|
||||
//#if MC>=11500
|
||||
//$$ // FIXME 1.15 is this still required?
|
||||
// FIXME 1.15 is this still required?
|
||||
//#else
|
||||
dx -= Particle.cameraX;
|
||||
dy -= Particle.cameraY;
|
||||
dz -= Particle.cameraZ;
|
||||
//$$ dx -= Particle.cameraX;
|
||||
//$$ dy -= Particle.cameraY;
|
||||
//$$ dz -= Particle.cameraZ;
|
||||
//#endif
|
||||
Vector3f offset = new Vector3f((float) dx, (float) dy, (float) dz);
|
||||
Matrix4f.translate(offset, modelView, modelView);
|
||||
@@ -182,7 +182,7 @@ public class ParticlesExporter implements Exporter {
|
||||
//#endif
|
||||
0
|
||||
//#if MC<11500
|
||||
, 1, 1, 0, 0, 0
|
||||
//$$ , 1, 1, 0, 0, 0
|
||||
//#endif
|
||||
);
|
||||
//#else
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import org.spongepowered.asm.mixin.Mixin;
|
||||
//$$ import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
//$$
|
||||
//#if MC>=11500
|
||||
//$$ import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk;
|
||||
//#else
|
||||
import net.minecraft.client.render.chunk.ChunkRenderer;
|
||||
//$$ import net.minecraft.client.render.chunk.ChunkRenderer;
|
||||
//#endif
|
||||
|
||||
@Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo")
|
||||
public interface ContainerLocalRenderInformationAccessor {
|
||||
//$$
|
||||
//$$ @Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo")
|
||||
//$$ public interface ContainerLocalRenderInformationAccessor {
|
||||
//#if MC>=11500
|
||||
//$$ @Accessor("chunk")
|
||||
//$$ BuiltChunk getRenderChunk();
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
@Accessor("renderer")
|
||||
//$$ @Accessor("renderer")
|
||||
//#else
|
||||
//$$ @Accessor
|
||||
//#endif
|
||||
ChunkRenderer getRenderChunk();
|
||||
//$$ ChunkRenderer getRenderChunk();
|
||||
//#endif
|
||||
}
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
// FIXME 1.15
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ChunkExporter;
|
||||
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;
|
||||
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import com.replaymod.render.blend.BlendState;
|
||||
//$$ import com.replaymod.render.blend.exporters.ChunkExporter;
|
||||
//$$ 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>=11400
|
||||
import net.minecraft.client.render.chunk.ChunkRenderTask;
|
||||
//$$ import net.minecraft.client.render.chunk.ChunkRenderTask;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
|
||||
//#endif
|
||||
|
||||
@Mixin(ChunkRenderWorker.class)
|
||||
public abstract class MixinChunkRenderWorker {
|
||||
|
||||
@Inject(method = "runTask", at = @At("RETURN"))
|
||||
//$$
|
||||
//$$ @Mixin(ChunkRenderWorker.class)
|
||||
//$$ public abstract class MixinChunkRenderWorker {
|
||||
//$$
|
||||
//$$ @Inject(method = "runTask", at = @At("RETURN"))
|
||||
//#if MC>=11400
|
||||
public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
if (task.getStage() == ChunkRenderTask.Stage.DONE
|
||||
&& task.getMode() == ChunkRenderTask.Mode.REBUILD_CHUNK) {
|
||||
blendState.get(ChunkExporter.class).addChunkUpdate(task.getChunkRenderer(), task.getRenderData());
|
||||
}
|
||||
}
|
||||
}
|
||||
//$$ public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ if (task.getStage() == ChunkRenderTask.Stage.DONE
|
||||
//$$ && task.getMode() == ChunkRenderTask.Mode.REBUILD_CHUNK) {
|
||||
//$$ blendState.get(ChunkExporter.class).addChunkUpdate(task.getChunkRenderer(), task.getRenderData());
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#else
|
||||
//$$ public void afterChunkUpdate(ChunkCompileTaskGenerator task, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
@@ -41,5 +41,5 @@ public abstract class MixinChunkRenderWorker {
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
}
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -1,64 +1,64 @@
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ParticlesExporter;
|
||||
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;
|
||||
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import com.replaymod.render.blend.BlendState;
|
||||
//$$ import com.replaymod.render.blend.exporters.ParticlesExporter;
|
||||
//$$ 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;
|
||||
//#endif
|
||||
|
||||
//$$
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.particle.ParticleManager;
|
||||
//$$ import net.minecraft.client.particle.ParticleManager;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.particle.EffectRenderer;
|
||||
//#endif
|
||||
|
||||
//$$
|
||||
//#if MC>=10904
|
||||
@Mixin(ParticleManager.class)
|
||||
//$$ @Mixin(ParticleManager.class)
|
||||
//#else
|
||||
//$$ @Mixin(EffectRenderer.class)
|
||||
//#endif
|
||||
public abstract class MixinEffectRenderer {
|
||||
|
||||
@Inject(method = "renderParticles", at = @At("HEAD"))
|
||||
private void preRender(
|
||||
//$$ public abstract class MixinEffectRenderer {
|
||||
//$$
|
||||
//$$ @Inject(method = "renderParticles", at = @At("HEAD"))
|
||||
//$$ private void preRender(
|
||||
//#if MC>=11400
|
||||
Camera view,
|
||||
//$$ Camera view,
|
||||
//#else
|
||||
//$$ Entity view,
|
||||
//#endif
|
||||
float renderPartialTicks,
|
||||
CallbackInfo ci
|
||||
) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ParticlesExporter.class).preParticlesRender(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "renderParticles", at = @At("RETURN"))
|
||||
private void postRender(
|
||||
//$$ float renderPartialTicks,
|
||||
//$$ CallbackInfo ci
|
||||
//$$ ) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ParticlesExporter.class).preParticlesRender(false);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "renderParticles", at = @At("RETURN"))
|
||||
//$$ private void postRender(
|
||||
//#if MC>=11400
|
||||
Camera view,
|
||||
//$$ Camera view,
|
||||
//#else
|
||||
//$$ Entity view,
|
||||
//#endif
|
||||
float renderPartialTicks,
|
||||
CallbackInfo ci
|
||||
) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ParticlesExporter.class).postParticlesRender();
|
||||
}
|
||||
}
|
||||
|
||||
//$$ float renderPartialTicks,
|
||||
//$$ CallbackInfo ci
|
||||
//$$ ) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ParticlesExporter.class).postParticlesRender();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//#if MC<11400
|
||||
//$$ @Inject(method = "renderLitParticles", at = @At("HEAD"))
|
||||
//$$ public void preLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) {
|
||||
@@ -76,5 +76,5 @@ public abstract class MixinEffectRenderer {
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
}
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
// FIXME 1.15
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.ModelRendererExporter;
|
||||
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;
|
||||
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import com.replaymod.render.blend.BlendState;
|
||||
//$$ import com.replaymod.render.blend.exporters.ModelRendererExporter;
|
||||
//$$ 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.model.ModelPart;
|
||||
//$$ import net.minecraft.client.model.ModelPart;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.model.ModelRenderer;
|
||||
//#endif
|
||||
|
||||
@Mixin(ModelPart.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((ModelPart)(Object)this, scale);
|
||||
}
|
||||
}
|
||||
|
||||
@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((ModelPart)(Object)this, scale);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "render", at = @At("RETURN"))
|
||||
public void postRender(float scale, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ModelRendererExporter.class).postRenderModel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "method_2852", at = @At("RETURN"))
|
||||
public void postRenderWithRotation(float scale, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ModelRendererExporter.class).postRenderModel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "render",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"),
|
||||
expect = 3)
|
||||
public void onRender(float scale, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ModelRendererExporter.class).onRenderModel();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "method_2852",
|
||||
at = @At(value = "INVOKE",
|
||||
target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"))
|
||||
public void onRenderWithRotation(float scale, CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(ModelRendererExporter.class).onRenderModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
//$$
|
||||
//$$ @Mixin(ModelPart.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((ModelPart)(Object)this, scale);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @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((ModelPart)(Object)this, scale);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "render", at = @At("RETURN"))
|
||||
//$$ public void postRender(float scale, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ModelRendererExporter.class).postRenderModel();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "method_2852", at = @At("RETURN"))
|
||||
//$$ public void postRenderWithRotation(float scale, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ModelRendererExporter.class).postRenderModel();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "render",
|
||||
//$$ at = @At(value = "INVOKE",
|
||||
//$$ target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"),
|
||||
//$$ expect = 3)
|
||||
//$$ public void onRender(float scale, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ModelRendererExporter.class).onRenderModel();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "method_2852",
|
||||
//$$ at = @At(value = "INVOKE",
|
||||
//$$ target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"))
|
||||
//$$ public void onRenderWithRotation(float scale, CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(ModelRendererExporter.class).onRenderModel();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -10,9 +10,9 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ import net.minecraft.client.render.Frustum;
|
||||
import net.minecraft.client.render.Frustum;
|
||||
//#else
|
||||
import net.minecraft.client.render.VisibleRegion;
|
||||
//$$ import net.minecraft.client.render.VisibleRegion;
|
||||
//#endif
|
||||
|
||||
//#if MC>=11400
|
||||
@@ -37,12 +37,12 @@ public abstract class MixinRenderGlobal {
|
||||
// FIXME wither skull ._. mojang pls
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ @Inject(method = "renderEntity", at = @At("HEAD"))
|
||||
@Inject(method = "renderEntity", at = @At("HEAD"))
|
||||
//#else
|
||||
@Inject(method = "renderEntities",
|
||||
at = @At(value = "INVOKE",
|
||||
//$$ @Inject(method = "renderEntities",
|
||||
//$$ at = @At(value = "INVOKE",
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(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
|
||||
@@ -55,16 +55,16 @@ public abstract class MixinRenderGlobal {
|
||||
}
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ @Inject(method = "renderEntity", at = @At("RETURN"))
|
||||
@Inject(method = "renderEntity", at = @At("RETURN"))
|
||||
//#else
|
||||
@Inject(method = "renderEntities",
|
||||
at = @At(value = "INVOKE",
|
||||
//$$ @Inject(method = "renderEntities",
|
||||
//$$ at = @At(value = "INVOKE",
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(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))
|
||||
//$$ shift = At.Shift.AFTER))
|
||||
//#endif
|
||||
private void postEntityRender(CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
@@ -74,38 +74,38 @@ public abstract class MixinRenderGlobal {
|
||||
}
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ // FIXME
|
||||
// FIXME
|
||||
//#else
|
||||
@Inject(method = "renderEntities", at = @At(
|
||||
value = "INVOKE",
|
||||
//$$ @Inject(method = "renderEntities", at = @At(
|
||||
//$$ value = "INVOKE",
|
||||
//#if MC>=11400
|
||||
target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;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(CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).preTileEntitiesRender();
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "renderEntities", at = @At(
|
||||
value = "INVOKE",
|
||||
//$$ ))
|
||||
//$$ private void preTileEntityRender(CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(TileEntityExporter.class).preTileEntitiesRender();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//$$ @Inject(method = "renderEntities", at = @At(
|
||||
//$$ value = "INVOKE",
|
||||
//#if MC>=11400
|
||||
target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;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
|
||||
shift = At.Shift.AFTER
|
||||
))
|
||||
private void postTileEntityRender(CallbackInfo ci) {
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).postTileEntitiesRender();
|
||||
}
|
||||
}
|
||||
//$$ shift = At.Shift.AFTER
|
||||
//$$ ))
|
||||
//$$ private void postTileEntityRender(CallbackInfo ci) {
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(TileEntityExporter.class).postTileEntitiesRender();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
}
|
||||
//#endif
|
||||
|
||||
@@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ import net.minecraft.client.render.VertexConsumer;
|
||||
//$$ import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
//#endif
|
||||
|
||||
//#if MC>=11400
|
||||
@@ -34,11 +34,11 @@ import net.minecraft.client.render.model.BakedModel;
|
||||
//#endif
|
||||
public abstract class MixinRenderItem {
|
||||
//#if MC>=11500
|
||||
//$$ @Inject(method = "renderBakedItemModel", at = @At("HEAD"))
|
||||
//$$ private void onRenderModel(BakedModel model, ItemStack stack, int int_1, int int_2, MatrixStack matrixStack_1, VertexConsumer vertexConsumer_1, CallbackInfo ci) {
|
||||
@Inject(method = "renderBakedItemModel", at = @At("HEAD"))
|
||||
private void onRenderModel(BakedModel model, ItemStack stack, int int_1, int int_2, MatrixStack matrixStack_1, VertexConsumer vertexConsumer_1, CallbackInfo ci) {
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
@Inject(method = "renderItemModel", at = @At("HEAD"))
|
||||
//$$ @Inject(method = "renderItemModel", at = @At("HEAD"))
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
//$$ @Inject(method = "renderModel(Lnet/minecraft/client/renderer/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V",
|
||||
@@ -53,7 +53,7 @@ public abstract class MixinRenderItem {
|
||||
//#endif
|
||||
//#endif
|
||||
//#endif
|
||||
private void onRenderModel(BakedModel model, ItemStack stack, CallbackInfo ci) {
|
||||
//$$ private void onRenderModel(BakedModel model, ItemStack stack, CallbackInfo ci) {
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
|
||||
@@ -21,20 +21,20 @@ import net.minecraft.client.render.entity.LivingEntityRenderer;
|
||||
//#endif
|
||||
public abstract class MixinRenderLivingBase {
|
||||
//#if MC>=11500
|
||||
//$$ @Inject(method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(
|
||||
@Inject(method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(
|
||||
//#else
|
||||
//#if FABRIC>=1
|
||||
@Inject(method = "render(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
|
||||
//$$ @Inject(method = "render(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
|
||||
//#else
|
||||
//$$ @Inject(method = "doRender(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
|
||||
//#endif
|
||||
//#endif
|
||||
value = "INVOKE",
|
||||
//#if MC>=11500
|
||||
//$$ target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scale(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/client/util/math/MatrixStack;F)V",
|
||||
target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scale(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/client/util/math/MatrixStack;F)V",
|
||||
//#else
|
||||
//#if MC>=10904
|
||||
target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;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
|
||||
|
||||
@@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
|
||||
//#if MC>=11500
|
||||
//$$ import net.minecraft.client.render.VertexConsumerProvider;
|
||||
//$$ import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
@@ -25,10 +25,10 @@ public abstract class MixinRenderManager {
|
||||
|
||||
@Inject(
|
||||
//#if MC>=11500
|
||||
//$$ method = "render",
|
||||
method = "render",
|
||||
//#else
|
||||
//#if MC>=11400 && FABRIC>=1
|
||||
method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
|
||||
//$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
//$$ method = "renderEntity",
|
||||
@@ -39,17 +39,17 @@ public abstract class MixinRenderManager {
|
||||
//#endif
|
||||
at = @At(value = "INVOKE",
|
||||
//#if MC>=11500
|
||||
//$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V"))
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V"))
|
||||
//#else
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V"))
|
||||
//$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V"))
|
||||
//#endif
|
||||
public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks,
|
||||
//#if MC>=11500
|
||||
//$$ MatrixStack matrixStack,
|
||||
//$$ VertexConsumerProvider vertexConsumerProvider,
|
||||
//$$ int int_1,
|
||||
MatrixStack matrixStack,
|
||||
VertexConsumerProvider vertexConsumerProvider,
|
||||
int int_1,
|
||||
//#else
|
||||
boolean box,
|
||||
//$$ boolean box,
|
||||
//#endif
|
||||
//#if MC>=10904
|
||||
CallbackInfo ci) {
|
||||
@@ -64,10 +64,10 @@ public abstract class MixinRenderManager {
|
||||
|
||||
@Inject(
|
||||
//#if MC>=11500
|
||||
//$$ method = "render",
|
||||
method = "render",
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
|
||||
//$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V",
|
||||
//#else
|
||||
//#if MC>=11400
|
||||
//$$ method = "renderEntity",
|
||||
@@ -78,18 +78,18 @@ public abstract class MixinRenderManager {
|
||||
//#endif
|
||||
at = @At(value = "INVOKE",
|
||||
//#if MC>=11500
|
||||
//$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V",
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V",
|
||||
//#else
|
||||
target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V",
|
||||
//$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V",
|
||||
//#endif
|
||||
shift = At.Shift.AFTER))
|
||||
public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks,
|
||||
//#if MC>=11500
|
||||
//$$ MatrixStack matrixStack,
|
||||
//$$ VertexConsumerProvider vertexConsumerProvider,
|
||||
//$$ int int_1,
|
||||
MatrixStack matrixStack,
|
||||
VertexConsumerProvider vertexConsumerProvider,
|
||||
int int_1,
|
||||
//#else
|
||||
boolean box,
|
||||
//$$ boolean box,
|
||||
//#endif
|
||||
//#if MC>=10904
|
||||
CallbackInfo ci) {
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
// FIXME 1.15
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.exporters.TileEntityExporter;
|
||||
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(BlockEntityRenderDispatcher.class)
|
||||
public abstract class MixinTileEntityRendererDispatcher {
|
||||
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import com.replaymod.render.blend.BlendState;
|
||||
//$$ import com.replaymod.render.blend.exporters.TileEntityExporter;
|
||||
//$$ 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(BlockEntityRenderDispatcher.class)
|
||||
//$$ public abstract class MixinTileEntityRendererDispatcher {
|
||||
//$$
|
||||
//#if MC>=11400
|
||||
//#if MC>=11400
|
||||
@Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
|
||||
at = @At("HEAD"))
|
||||
//$$ @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(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) {
|
||||
float alpha = 1;
|
||||
//$$ 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
|
||||
//$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V",
|
||||
@@ -36,21 +36,21 @@ public abstract class MixinTileEntityRendererDispatcher {
|
||||
//$$ float alpha = 1;
|
||||
//#endif
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage, alpha);
|
||||
}
|
||||
}
|
||||
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage, alpha);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$
|
||||
//#if MC>=11400
|
||||
//#if MC>=11400
|
||||
@Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V",
|
||||
at = @At("RETURN"))
|
||||
//$$ @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(BlockEntity 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",
|
||||
@@ -62,10 +62,10 @@ public abstract class MixinTileEntityRendererDispatcher {
|
||||
//$$ public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) {
|
||||
//#endif
|
||||
//#endif
|
||||
BlendState blendState = BlendState.getState();
|
||||
if (blendState != null) {
|
||||
blendState.get(TileEntityExporter.class).postRender();
|
||||
}
|
||||
}
|
||||
}
|
||||
//$$ BlendState blendState = BlendState.getState();
|
||||
//$$ if (blendState != null) {
|
||||
//$$ blendState.get(TileEntityExporter.class).postRender();
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
// FIXME 1.15
|
||||
//#if MC>=10800 && MC<11500
|
||||
package com.replaymod.render.blend.mixin;
|
||||
|
||||
import net.minecraft.client.render.WorldRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mixin(WorldRenderer.class)
|
||||
public interface WorldRendererAccessor {
|
||||
@Accessor("chunkInfos")
|
||||
List getRenderInfos();
|
||||
}
|
||||
//$$ package com.replaymod.render.blend.mixin;
|
||||
//$$
|
||||
//$$ import net.minecraft.client.render.WorldRenderer;
|
||||
//$$ import org.spongepowered.asm.mixin.Mixin;
|
||||
//$$ import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
//$$
|
||||
//$$ import java.util.List;
|
||||
//$$
|
||||
//$$ @Mixin(WorldRenderer.class)
|
||||
//$$ public interface WorldRendererAccessor {
|
||||
//$$ @Accessor("chunkInfos")
|
||||
//$$ List getRenderInfos();
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
Reference in New Issue
Block a user