Switch core to 1.14 (generated via ./gradlew :1.14:setCoreVersion)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user