./gradlew :1.15.2:setCoreVersion

Also `./gradlew :jGui:1.15.2:setCoreVersion`.
This commit is contained in:
Jonas Herzig
2020-04-06 12:35:56 +02:00
parent f3c4092c72
commit b119d2d127
70 changed files with 1217 additions and 1217 deletions

View File

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

View File

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

View File

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

View File

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