Get blend export running on 1.13
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
//#if MC>=10800
|
||||
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.DMaterial;
|
||||
import com.replaymod.render.blend.data.DMesh;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import com.replaymod.replaystudio.us.myles.ViaVersion.util.ReflectionUtil;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f;
|
||||
import lombok.SneakyThrows;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GLAllocation;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderGlobal;
|
||||
import net.minecraft.client.renderer.chunk.CompiledChunk;
|
||||
import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
@@ -20,7 +20,12 @@ import net.minecraft.client.renderer.vertex.VertexBuffer;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL15;
|
||||
import org.lwjgl.util.vector.Vector3f;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.renderer.WorldRenderer.ContainerLocalRenderInformation;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.RenderGlobal.ContainerLocalRenderInformation;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
@@ -68,10 +73,10 @@ public class ChunkExporter implements Exporter {
|
||||
@SneakyThrows
|
||||
public void setup() throws IOException {
|
||||
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
Minecraft mc = MCVer.getMinecraft();
|
||||
@SuppressWarnings("unchecked")
|
||||
List<RenderGlobal.ContainerLocalRenderInformation> renderInfos = mc.renderGlobal.renderInfos;
|
||||
for (RenderGlobal.ContainerLocalRenderInformation renderInfo : renderInfos) {
|
||||
List<ContainerLocalRenderInformation> renderInfos = mc.renderGlobal.renderInfos;
|
||||
for (ContainerLocalRenderInformation renderInfo : renderInfos) {
|
||||
RenderChunk renderChunk = ReflectionUtil.get(renderInfo, "renderChunk", RenderChunk.class); // SneakyThrows
|
||||
CompiledChunk compiledChunk = renderChunk.getCompiledChunk();
|
||||
if (!compiledChunk.isEmpty()) {
|
||||
@@ -167,7 +172,7 @@ public class ChunkExporter implements Exporter {
|
||||
GL15.glGetBufferSubData(OpenGlHelper.GL_ARRAY_BUFFER, 0, byteBuffer);
|
||||
vertexBuffer.unbindBuffer();
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(LOCATION_BLOCKS_TEXTURE);
|
||||
MCVer.getMinecraft().getTextureManager().bindTexture(LOCATION_BLOCKS_TEXTURE);
|
||||
|
||||
return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, DefaultVertexFormats.BLOCK, null, null);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.render.blend.exporters;
|
||||
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
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 lombok.SneakyThrows;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.Entity;
|
||||
import org.lwjgl.util.vector.Matrix4f;
|
||||
import org.lwjgl.util.vector.Vector3f;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.IdentityHashMap;
|
||||
@@ -17,7 +18,7 @@ import java.util.Map;
|
||||
import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
|
||||
|
||||
public class EntityExporter implements Exporter {
|
||||
private final Minecraft mc = Minecraft.getMinecraft();
|
||||
private final Minecraft mc = MCVer.getMinecraft();
|
||||
private final RenderState renderState;
|
||||
private DObject entitiesObject;
|
||||
private Map<Entity, DObject> entityObjects;
|
||||
@@ -59,7 +60,11 @@ public class EntityExporter implements Exporter {
|
||||
if (entityObject == null) {
|
||||
entityObject = new DObject(DObject.Type.OB_EMPTY);
|
||||
entityObject.setParent(renderState.peekObject());
|
||||
entityObject.id.name = entity.getName();
|
||||
//#if MC>=11300
|
||||
entityObject.id.name = entity.getName().getString();
|
||||
//#else
|
||||
//$$ entityObject.id.name = entity.getName();
|
||||
//#endif
|
||||
entityObjects.put(entity, entityObject);
|
||||
}
|
||||
renderState.pushObject(entityObject);
|
||||
|
||||
@@ -5,22 +5,29 @@ 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.block.model.BakedQuad;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.model.BakedQuad;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.client.model.pipeline.LightUtil;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.renderer.model.IBakedModel;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.renderer.RenderItem;
|
||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||
//$$ import net.minecraft.client.renderer.RenderItem;
|
||||
//$$ import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.entity.RenderItem;
|
||||
//$$ import net.minecraft.client.resources.model.IBakedModel;
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemExporter implements Exporter {
|
||||
private final RenderState renderState;
|
||||
@@ -29,7 +36,7 @@ public class ItemExporter implements Exporter {
|
||||
this.renderState = renderState;
|
||||
}
|
||||
|
||||
public void onRender(RenderItem renderItem, IBakedModel model, ItemStack stack) {
|
||||
public void onRender(Object renderItem, IBakedModel model, ItemStack stack) {
|
||||
DObject object = getObjectForItemStack(renderItem, model, stack);
|
||||
|
||||
renderState.pushObject(object);
|
||||
@@ -42,7 +49,7 @@ public class ItemExporter implements Exporter {
|
||||
renderState.pop();
|
||||
}
|
||||
|
||||
private DObject getObjectForItemStack(RenderItem renderItem, IBakedModel model, ItemStack stack) {
|
||||
private DObject getObjectForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
|
||||
int frame = renderState.getFrame();
|
||||
DObject parent = renderState.peekObject();
|
||||
DObject object = null;
|
||||
@@ -56,7 +63,11 @@ public class ItemExporter implements Exporter {
|
||||
}
|
||||
if (object == null) {
|
||||
object = new ItemBasedDObject(renderItem, model, stack);
|
||||
object.id.name = stack.getDisplayName();
|
||||
//#if MC>=11300
|
||||
object.id.name = stack.getDisplayName().getString();
|
||||
//#else
|
||||
//$$ object.id.name = stack.getDisplayName();
|
||||
//#endif
|
||||
object.setParent(parent);
|
||||
}
|
||||
object.lastFrame = frame;
|
||||
@@ -64,7 +75,7 @@ public class ItemExporter implements Exporter {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static DMesh generateMeshForItemStack(RenderItem renderItem, IBakedModel model, ItemStack stack) {
|
||||
private static DMesh generateMeshForItemStack(Object renderItem, IBakedModel model, ItemStack stack) {
|
||||
DMesh mesh = new DMesh();
|
||||
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
|
||||
builder.setWellBehaved(true);
|
||||
@@ -75,30 +86,41 @@ public class ItemExporter implements Exporter {
|
||||
//$$ builder.setVertexFormat(DefaultVertexFormats.ITEM);
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
//#if MC>=11300
|
||||
for (EnumFacing face : EnumFacing.values()) {
|
||||
renderQuads(renderItem, builder, model.getQuads(null, face, 0), stack);
|
||||
renderQuads(renderItem, builder, model.getQuads(null, face, new Random()), stack);
|
||||
}
|
||||
renderQuads(renderItem, builder, model.getQuads(null, null, 0), stack);
|
||||
renderQuads(renderItem, builder, model.getQuads(null, null, new Random()), stack);
|
||||
//#else
|
||||
//#if MC>=10904
|
||||
//$$ for (EnumFacing face : EnumFacing.values()) {
|
||||
//$$ renderQuads(renderItem, builder, model.getQuads(null, face, 0), stack);
|
||||
//$$ }
|
||||
//$$ renderQuads(renderItem, builder, model.getQuads(null, null, 0), stack);
|
||||
//#else
|
||||
//$$ for (EnumFacing face : EnumFacing.values()) {
|
||||
//$$ renderQuads(renderItem, builder, model.getFaceQuads(face), stack);
|
||||
//$$ }
|
||||
//$$ renderQuads(renderItem, builder, model.getGeneralQuads(), stack);
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
builder.finishDrawing();
|
||||
return mesh;
|
||||
}
|
||||
|
||||
private static void renderQuads(RenderItem renderItem, BlendMeshBuilder buffer, List<BakedQuad> quads, ItemStack stack) {
|
||||
private static void renderQuads(Object renderItem, BlendMeshBuilder buffer, List<BakedQuad> quads, ItemStack stack) {
|
||||
for (BakedQuad quad : quads) {
|
||||
int color = stack != null && quad.hasTintIndex()
|
||||
//#if MC>=10904
|
||||
? renderItem.itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000
|
||||
? ((ItemRenderer) renderItem).itemColors.getColor(stack, quad.getTintIndex()) | 0xff000000
|
||||
//#else
|
||||
//#if MC>=10904
|
||||
//$$ ? ((RenderItem) renderItem).itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000
|
||||
//#else
|
||||
//$$ ? stack.getItem().getColorFromItemStack(stack, quad.getTintIndex()) | 0xff000000
|
||||
//#endif
|
||||
//#endif
|
||||
: 0xffffffff;
|
||||
LightUtil.renderQuadColor(buffer, quad, color);
|
||||
}
|
||||
@@ -106,19 +128,19 @@ public class ItemExporter implements Exporter {
|
||||
}
|
||||
|
||||
private static class ItemBasedDObject extends DObject {
|
||||
private final RenderItem renderItem;
|
||||
private final Object renderItem;
|
||||
private final IBakedModel model;
|
||||
private final ItemStack stack;
|
||||
private boolean valid;
|
||||
|
||||
public ItemBasedDObject(RenderItem renderItem, IBakedModel model, ItemStack stack) {
|
||||
public ItemBasedDObject(Object renderItem, IBakedModel model, ItemStack stack) {
|
||||
super(generateMeshForItemStack(renderItem, model, stack));
|
||||
this.renderItem = renderItem;
|
||||
this.model = model;
|
||||
this.stack = stack;
|
||||
}
|
||||
|
||||
public boolean isBasedOn(RenderItem renderItem, IBakedModel model, ItemStack stack) {
|
||||
public boolean isBasedOn(Object renderItem, IBakedModel model, ItemStack stack) {
|
||||
return this.renderItem == renderItem && this.model == model && this.stack == stack;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
//#if MC>=10800
|
||||
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 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.entity.Entity;
|
||||
import org.lwjgl.util.vector.Matrix4f;
|
||||
import org.lwjgl.util.vector.Vector3f;
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.client.particle.Particle;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.particle.EntityFX;
|
||||
//$$ import net.minecraft.entity.Entity;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10809
|
||||
@@ -29,7 +30,7 @@ import static com.replaymod.core.versions.MCVer.*;
|
||||
import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
|
||||
|
||||
public class ParticlesExporter implements Exporter {
|
||||
private final Minecraft mc = Minecraft.getMinecraft();
|
||||
private final Minecraft mc = MCVer.getMinecraft();
|
||||
private final RenderState renderState;
|
||||
private DObject pointAtObject;
|
||||
private DObject particlesObject;
|
||||
@@ -151,7 +152,7 @@ public class ParticlesExporter implements Exporter {
|
||||
//$$ builder.startDrawingQuads();
|
||||
//#endif
|
||||
//#if MC>=10809
|
||||
particle.renderParticle(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
|
||||
particle.renderParticle(builder, MCVer.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
|
||||
//#else
|
||||
//$$ particle.func_180434_a(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0);
|
||||
//#endif
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.replaymod.render.blend.BlendState;
|
||||
import com.replaymod.render.blend.Exporter;
|
||||
import com.replaymod.render.blend.data.DMaterial;
|
||||
import com.replaymod.render.blend.data.DObject;
|
||||
import org.lwjgl.util.vector.Matrix4f;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.vector.Matrix4f;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Deque;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.render.blend.exporters;
|
||||
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.render.blend.BlendState;
|
||||
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 lombok.SneakyThrows;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import org.lwjgl.util.vector.Matrix4f;
|
||||
import org.lwjgl.util.vector.Vector3f;
|
||||
|
||||
//#if MC>=10904
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -24,7 +25,7 @@ import static com.replaymod.render.blend.Util.getGlModelViewMatrix;
|
||||
import static com.replaymod.render.blend.Util.getTileEntityId;
|
||||
|
||||
public class TileEntityExporter implements Exporter {
|
||||
private final Minecraft mc = Minecraft.getMinecraft();
|
||||
private final Minecraft mc = MCVer.getMinecraft();
|
||||
private final RenderState renderState;
|
||||
private DObject tileEntitiesObject;
|
||||
private Map<TileEntity, DObject> tileEntityObjects;
|
||||
|
||||
Reference in New Issue
Block a user