From e7b5ba9e723c607569041fc73ac0eb29622bc318 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 4 Mar 2018 16:28:04 +0100 Subject: [PATCH] Update blend export for all remaining MC versions --- .../com/replaymod/core/versions/MCVer.java | 15 ++++++++--- .../render/blend/BlendMeshBuilder.java | 26 ++++++++++++++----- .../render/blend/exporters/ItemExporter.java | 7 ++--- .../blend/exporters/ParticlesExporter.java | 2 +- .../render/blend/mixin/MixinRenderGlobal.java | 4 +-- .../blend/mixin/MixinRenderManager.java | 4 +-- 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/replaymod/core/versions/MCVer.java b/src/main/java/com/replaymod/core/versions/MCVer.java index 4af23393..6de9133e 100644 --- a/src/main/java/com/replaymod/core/versions/MCVer.java +++ b/src/main/java/com/replaymod/core/versions/MCVer.java @@ -16,6 +16,8 @@ import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.vertex.VertexFormat; +import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.client.resources.ResourcePackRepository; import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.Entity; @@ -408,22 +410,27 @@ public class MCVer { //#endif } + //#if MC>=10904 //#if MC>=11200 public static BufferBuilder getBuffer(Tessellator tessellator) { //#else + //$$ public static VertexBuffer getBuffer(Tessellator tessellator) { + //#endif + //#else //$$ public static WorldRenderer getBuffer(Tessellator tessellator) { //#endif //#if MC>=10904 - //#if MC>=11200 return Tessellator.getInstance().getBuffer(); //#else - //$$ return Tessellator.getInstance().getBuffer(); - //#endif - //#else //$$ return Tessellator.getInstance().getWorldRenderer(); //#endif } + @SuppressWarnings("unchecked") + public static List getElements(VertexFormat vertexFormat) { + return vertexFormat.getElements(); + } + public static int floor(double val) { //#if MC>=11102 return MathHelper.floor(val); diff --git a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java index 14717875..1a91e697 100644 --- a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java +++ b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java @@ -10,9 +10,13 @@ import org.lwjgl.util.vector.ReadableVector3f; import org.lwjgl.util.vector.Vector2f; import org.lwjgl.util.vector.Vector3f; +//#if MC>=10904 //#if MC>=11200 import net.minecraft.client.renderer.BufferBuilder; //#else +//$$ import net.minecraft.client.renderer.VertexBuffer; +//#endif +//#else //$$ import net.minecraft.client.renderer.WorldRenderer; //#endif @@ -23,9 +27,13 @@ import java.util.List; import static com.replaymod.core.versions.MCVer.*; public class BlendMeshBuilder + //#if MC>=10904 //#if MC>=11200 extends BufferBuilder //#else + //$$ extends VertexBuffer + //#endif + //#else //$$ extends WorldRenderer //#endif { @@ -49,7 +57,7 @@ public class BlendMeshBuilder } @Override - //#if MC>=11200 + //#if MC>=10809 public void begin(int mode, VertexFormat vertexFormat) { //#else //$$ public void startDrawing(int mode) { @@ -72,7 +80,7 @@ public class BlendMeshBuilder BufferBuilder_beginPosTexCol(mode); } - //#if MC>=11200 + //#if MC>=10809 super.begin(mode, vertexFormat); //#else //$$ super.startDrawing(mode); @@ -88,7 +96,7 @@ public class BlendMeshBuilder } @Override - //#if MC>=11200 + //#if MC>=10809 public void finishDrawing() { //#else //$$ public int finishDrawing() { @@ -100,14 +108,14 @@ public class BlendMeshBuilder getBuffer(Tessellator.getInstance()).finishDrawing(); } - //#if MC<11200 + //#if MC<10809 //$$ int ret = //#endif super.finishDrawing(); addBufferToMesh(); - //#if MC<11200 + //#if MC<10809 //$$ return ret; //#endif } @@ -117,9 +125,13 @@ public class BlendMeshBuilder addBufferToMesh(this, mesh, offset); } + //#if MC>=10904 //#if MC>=11200 public static DMesh addBufferToMesh(BufferBuilder bufferBuilder, DMesh mesh, ReadableVector3f vertOffset) { //#else + //$$ public static DMesh addBufferToMesh(VertexBuffer bufferBuilder, DMesh mesh, Vector3f vertOffset) { + //#endif + //#else //$$ public static DMesh addBufferToMesh(WorldRenderer bufferBuilder, DMesh mesh, Vector3f vertOffset) { //#endif return addBufferToMesh(bufferBuilder.getByteBuffer(), bufferBuilder.getDrawMode(), bufferBuilder.getVertexFormat(), mesh, vertOffset); @@ -140,8 +152,8 @@ public class BlendMeshBuilder // Determine offset of vertex components int posOffset = -1, colorOffset = -1, uvOffset = -1; int index = 0; - for (VertexFormatElement element : vertexFormat.getElements()) { - //#if MC>11200 + for (VertexFormatElement element : getElements(vertexFormat)) { + //#if MC>=10809 int offset = vertexFormat.getOffset(index); //#else //$$ int offset = element.getOffset(); diff --git a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java index 279d18ed..7ad96a85 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java @@ -4,17 +4,18 @@ 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.RenderItem; import net.minecraft.client.renderer.block.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>=10904 +import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.IBakedModel; -import org.lwjgl.opengl.GL11; //#else +//$$ import net.minecraft.client.renderer.entity.RenderItem; //$$ import net.minecraft.client.resources.model.IBakedModel; //#endif @@ -92,7 +93,7 @@ public class ItemExporter implements Exporter { private static void renderQuads(RenderItem renderItem, BlendMeshBuilder buffer, List quads, ItemStack stack) { for (BakedQuad quad : quads) { int color = stack != null && quad.hasTintIndex() - //#if MC>=11200 + //#if MC>=10904 ? renderItem.itemColors.getColorFromItemstack(stack, quad.getTintIndex()) | 0xff000000 //#else //$$ ? stack.getItem().getColorFromItemStack(stack, quad.getTintIndex()) | 0xff000000 diff --git a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java index 80acae4f..b4a129aa 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java @@ -149,7 +149,7 @@ public class ParticlesExporter implements Exporter { //#else //$$ builder.startDrawingQuads(); //#endif - //#if MC>=10904 + //#if MC>=10809 particle.renderParticle(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0); //#else //$$ particle.func_180434_a(builder, Minecraft.getMinecraft().getRenderViewEntity(), 0, 1, 1, 0, 0, 0); diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java index af1a356e..93832e02 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java @@ -21,7 +21,7 @@ public abstract class MixinRenderGlobal { //#if MC>=10904 target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V")) //#else - //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V")) + //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z")) //#endif public void preEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) { BlendState blendState = BlendState.getState(); @@ -35,7 +35,7 @@ public abstract class MixinRenderGlobal { //#if MC>=10904 target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntityStatic(Lnet/minecraft/entity/Entity;FZ)V", //#else - //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)V", + //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z", //#endif shift = At.Shift.AFTER)) public void postEntityRender(Entity view, ICamera camera, float renderPartialTicks, CallbackInfo ci) { diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java index a52f74e8..e2867302 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java @@ -19,7 +19,7 @@ public abstract class MixinRenderManager { @Inject(method = "doRenderEntity", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFFZ)V")) + target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V")) public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box, //#if MC>=10904 CallbackInfo ci) { @@ -34,7 +34,7 @@ public abstract class MixinRenderManager { @Inject(method = "doRenderEntity", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFFZ)V", + target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V", shift = At.Shift.AFTER)) public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, boolean box, //#if MC>=10904