From 0cb909491316aaab312b51921a2a052142f066cb Mon Sep 17 00:00:00 2001 From: JozsefA Date: Tue, 9 Feb 2021 16:14:44 -0800 Subject: [PATCH] non experimental contraption rendering is back. schematic rendering is fixed. both of these are kinda ugly hacks, and there is definitely some rewriting necessary for when it's time to be more opengl compatible. maybe fix belt lighting, again. remove old belt assets. --- .../base/KineticTileEntityRenderer.java | 2 +- .../actors/DrillMovementBehaviour.java | 4 +++- .../actors/HarvesterMovementBehaviour.java | 4 +++- .../crafter/MechanicalCrafterRenderer.java | 2 +- .../components/deployer/DeployerRenderer.java | 2 +- .../components/fan/EncasedFanRenderer.java | 2 +- .../mixer/MechanicalMixerRenderer.java | 2 +- .../contraptions/components/saw/SawRenderer.java | 2 +- .../AbstractContraptionEntityRenderer.java | 9 +++++++-- .../structureMovement/ContraptionRenderer.java | 11 ++++++----- .../relays/advanced/SpeedControllerRenderer.java | 2 +- .../contraptions/relays/belt/BeltRenderer.java | 2 +- .../contraptions/relays/belt/BeltTileEntity.java | 6 +++--- .../relays/encased/SplitShaftRenderer.java | 2 +- .../relays/gearbox/GearboxRenderer.java | 2 +- .../schematics/client/SchematicHandler.java | 2 +- .../foundation/render/FastRenderDispatcher.java | 6 ++++++ .../render/instancing/InstancedTileRenderer.java | 3 +++ .../create/textures/block/belt_animated.png | Bin 9546 -> 0 bytes .../textures/block/belt_diagonal_animated.png | Bin 5680 -> 0 bytes 20 files changed, 42 insertions(+), 23 deletions(-) delete mode 100644 src/main/resources/assets/create/textures/block/belt_animated.png delete mode 100644 src/main/resources/assets/create/textures/block/belt_diagonal_animated.png diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java index fa4853051..7b8c3f092 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java @@ -41,7 +41,7 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer protected void renderComponents(DeployerTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { IVertexBuilder vb = buffer.getBuffer(RenderType.getSolid()); - if (!FastRenderDispatcher.available()) { + if (!FastRenderDispatcher.available(te.getWorld())) { KineticTileEntityRenderer.renderRotatingKineticBlock(te, getRenderedBlockState(te), ms, vb, light); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java index 3d11bccde..dfb054de6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java @@ -28,7 +28,7 @@ public class EncasedFanRenderer extends KineticTileEntityRenderer { @Override protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { - if (FastRenderDispatcher.available()) return; + if (FastRenderDispatcher.available(te.getWorld())) return; Direction direction = te.getBlockState() .get(FACING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java index 9937e6cfa..1b76603b8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java @@ -38,7 +38,7 @@ public class MechanicalMixerRenderer extends KineticTileEntityRenderer { IVertexBuilder vb = buffer.getBuffer(RenderType.getSolid()); - if (!FastRenderDispatcher.available()) { + if (!FastRenderDispatcher.available(te.getWorld())) { SuperByteBuffer superBuffer = AllBlockPartials.SHAFTLESS_COGWHEEL.renderOn(blockState); standardKineticRotationTransform(superBuffer, te, light).renderInto(ms, vb); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java index aebbe7ef3..84564ddfb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java @@ -45,7 +45,7 @@ public class SawRenderer extends SafeTileEntityRenderer { renderItems(te, partialTicks, ms, buffer, light, overlay); FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay); - if (FastRenderDispatcher.available()) return; + if (FastRenderDispatcher.available(te.getWorld())) return; renderShaft(te, ms, buffer, light, overlay); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java index 3d5801a0a..399741243 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntityRenderer.java @@ -1,6 +1,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.foundation.render.FastRenderDispatcher; +import com.simibubi.create.foundation.render.gl.backend.Backend; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.culling.ClippingHelperImpl; @@ -55,8 +57,11 @@ public abstract class AbstractContraptionEntityRenderer { protected void renderSafe(BeltTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { - if (!FastRenderDispatcher.available()) { + if (!FastRenderDispatcher.available(te.getWorld())) { BlockState blockState = te.getBlockState(); if (!AllBlocks.BELT.has(blockState)) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index a8c45f527..34c972ae5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -99,6 +99,9 @@ public class BeltTileEntity extends KineticTileEntity { initializeItemHandler(); + if (blockLight == -1) + updateLight(); + // Move Items if (!isController()) return; @@ -125,9 +128,6 @@ public class BeltTileEntity extends KineticTileEntity { BeltMovementHandler.transportEntity(this, entity, info); }); toRemove.forEach(passengers::remove); - - if (blockLight == -1) - updateLight(); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java index 12fed3ad1..a4ccdffc4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java @@ -28,7 +28,7 @@ public class SplitShaftRenderer extends KineticTileEntityRenderer { @Override protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { - if (FastRenderDispatcher.available()) return; + if (FastRenderDispatcher.available(te.getWorld())) return; Block block = te.getBlockState().getBlock(); final Axis boxAxis = ((IRotate) block).getRotationAxis(te.getBlockState()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java index 2d5dd9a70..d97110116 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java @@ -26,7 +26,7 @@ public class GearboxRenderer extends KineticTileEntityRenderer { @Override protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) { - if (FastRenderDispatcher.available()) return; + if (FastRenderDispatcher.available(te.getWorld())) return; final Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS); final BlockPos pos = te.getPos(); diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java index 87e69f75b..87df3b517 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java @@ -56,7 +56,7 @@ public class SchematicHandler { public SchematicHandler() { renderers = new Vector<>(3); for (int i = 0; i < renderers.capacity(); i++) - renderers.add(new SchematicRendererWithInstancing()); + renderers.add(new SchematicRenderer()); overlay = new SchematicHotbarSlotOverlay(); currentTool = Tools.Deploy; diff --git a/src/main/java/com/simibubi/create/foundation/render/FastRenderDispatcher.java b/src/main/java/com/simibubi/create/foundation/render/FastRenderDispatcher.java index 4e0482a7d..0d7be045d 100644 --- a/src/main/java/com/simibubi/create/foundation/render/FastRenderDispatcher.java +++ b/src/main/java/com/simibubi/create/foundation/render/FastRenderDispatcher.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.KineticDebugger; +import com.simibubi.create.content.schematics.SchematicWorld; import com.simibubi.create.foundation.render.contraption.ContraptionRenderDispatcher; import com.simibubi.create.foundation.render.gl.backend.Backend; import com.simibubi.create.foundation.render.gl.backend.OptifineHandler; @@ -24,6 +25,7 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.SectionPos; import net.minecraft.world.ILightReader; import net.minecraft.world.LightType; +import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL20; @@ -62,6 +64,10 @@ public class FastRenderDispatcher { return Backend.enabled; } + public static boolean available(World world) { + return Backend.enabled && !(world instanceof SchematicWorld); + } + public static int getDebugMode() { return KineticDebugger.isActive() ? 1 : 0; } diff --git a/src/main/java/com/simibubi/create/foundation/render/instancing/InstancedTileRenderer.java b/src/main/java/com/simibubi/create/foundation/render/instancing/InstancedTileRenderer.java index 0ebf612f3..03908fb4d 100644 --- a/src/main/java/com/simibubi/create/foundation/render/instancing/InstancedTileRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/render/instancing/InstancedTileRenderer.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.render.instancing; import com.simibubi.create.foundation.render.FastRenderDispatcher; import com.simibubi.create.foundation.render.gl.BasicProgram; +import com.simibubi.create.foundation.render.gl.backend.Backend; import com.simibubi.create.foundation.render.gl.shader.ShaderCallback; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.client.renderer.Matrix4f; @@ -37,6 +38,8 @@ public abstract class InstancedTileRenderer

{ @SuppressWarnings("unchecked") @Nullable public TileEntityInstance getInstance(T tile, boolean create) { + if (!Backend.enabled) return null; + TileEntityInstance instance = instances.get(tile); if (instance != null) { diff --git a/src/main/resources/assets/create/textures/block/belt_animated.png b/src/main/resources/assets/create/textures/block/belt_animated.png deleted file mode 100644 index 527b162fa7bac935285f4b8269c4f33e875f0fb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9546 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 diff --git a/src/main/resources/assets/create/textures/block/belt_diagonal_animated.png b/src/main/resources/assets/create/textures/block/belt_diagonal_animated.png deleted file mode 100644 index 29a5552d586ced1c9d33c3a51b35630873343be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5680 zcmdUzRZtvWllCWAkl^sg2M7+qB`^@&-C@uqSdf9>8iG4Ph9CnB5@3S6!vH~(VQ>ph z7#xBIf&@12#aH!h)qAm9wR^D_-A~o;oYPO&x#)|I*Vk1eCZs0>006`q>dJnoNEs5<2UqGw zoTQ!;ue-pp!s zy4~M$D0gey*mf=Ze)*L8p@%W6R?w6Le82c-Z6f7dbokE|?rB?Z#{4G5!Q_~qm`}** zn~D8=Gg-zRh?%*WY?< zKRPsR5(Z_&JVdU{c-(*q8t#}8TaW=eLSeUiZ~f|irDCj7e3XS{F5z>)(={biwx z{z#0*a}?B$A9yi6%78tp^*xt+HN+LAD`z=&o(N^j({WS7&W;NX21VB7gCpu!Q@MV0 zsM^(S#=IAKVOwoU1Qc4WMUV78pTo;*tPb+1iFbr|-uTLCyY!K-;(c-KSE6&0+L_ez zVW9uE8pO4FyZ&h{!wX90|)v1Yd2j-dfRJ!*6MUH65bk0-9#Y`#rO;Y=!{ ztd;Gzs}v28sd!9wQ6Xz7vAJ9UH!9$F=HR|dm`^g>5&Hz}kF3d^B|YEj^cerM_x$u{ z=GvS;oYHqiZbQmoo(X~EW?+OPcp@AoGaj$x)AdVJtOJGtR$L)ytOjq4(D{4 ze$axHD^DlrG)GUglD{TpYc_Bh1hS2c@Xw@9iR9LYplPfo6S=Hsr^<&NqO54$cfQn3 z=#3?nCN1o7>uw})e)26jK9sltEn3I~^&KyNBMF)g^61~venT>!%YV1DhmLD*8c-?o z6T!rNL3kIabb@{|M8r|5z2z5v_S4Lb&q@%6{Z>jg z`yY|C+f9O|!IO{yiS84gYY1k_OB>l~pjPqj*!9f8wY!Fbf}XejGObFddcyk-(pYPr zDa{G8v713|pprrMo-dDMwVvt@M=hvJ4<8FbCi*1buExB1id*Qgw)olaN{ucPHS49q zk05ThvOK(ilVxldFOGXdi!Zfkt&d_OXG4Z?4*m%mhZq>$)9kU;}b5-i=hY?Ht zkJ`8uauf6F+m=cYw5$(9qOcMCtYW+e1MbbEpPuj-fiOO;T<@%RnC_&lcpjMqD(=(y zw(uFtC0&yCjq~)CyKl|(^C$aKc#p{{*ah>7$~I+q&ixihT&gOz4w=5&D;tI-W+$_7 zl*sLC0>6CmN-A<%`cc6qq#pP(={F=v+-hoa#Ge|>zX^PNoJTm&YCmwZ`Wl|SaAWo94qGW#C~ zfWUA>)8PBF%x<9h9*LC6|^0VtaEO0Hu} za^{_nxOnH5P_wisMLwHNT@lf(a0J&8J&$VzEBgU-LBV|8B&E@aogbGXW4t_@D=oy= zch=1kh&T6>#r2?E2y+;Rg$PXftx*$IhghNxXZS`I@1XieBsjl}B+jOy?o;5!$8MHr z>ZRh34oq)YhZq&XbX|#LqB%2ybjeU@#ayL>(BKfIzH)sx;qR{xHAji7XUv~Q(>cqJ zb)+&3X+I+8V%=8htc$JEv!14m$Z62{Yzr@u4}T}_7-qi>XpxN`?IjSRPAu9If)cm; zJKBI1KFXZmQKb6)W`&HrlH3-oEt7eYQ+ys9QU0{^RB9Co)tMr}_KE%H0*4;K#h^_B z?*pJywIwU7KkU~#6!&yJFRLv9C!296+@)rO{(ycwbq7W9t$nj*j4`|@s#k~!ElJWH z)JekvsxeF8z-Up*sXSS1w(2L*Ef83yNh>!|X~DA@C6<2g?%58TOT}~^o)_uHpieXy zE^UNRF%Y&E3O&jG|PbfRjbkzu7U~-Pmh+4@U!vwx5B>CSxzn%>dFQT z9(J%lv{l4cPkN|*3x8~YA4kOCLXZrV6&rLeS0NECF{!rXu!fSVcarL+{Z=v4<5mV}wBq8fW-nW~FLqIgtKp>86gA(}GvP5ksfQJbQY zqN%T2zxigod4K3w!8-<++#jPym_k2`|U=ijQa%`pb(DV?qJ}wpM z0;WLOv=3hmFySp+a{C|Dz#u+N5Jv(Op%EjVpb!~*zf$IAdlN)EBanr`|CvVPz@Wx2 zQlRp9sg1sesA_ST!V1*+R4IK7HYfi?EEOhVp~E}+Idig81Tjb0MQlq@h+Nxo=-5uj z%>Eb@u86EK68!pVPtF7-RlQ~7qOAUCqNgxbUo%ruEzA(MX z^maj#qP=v{S4H5l@@rW!l$7{dtfLfS`*z~l&P)h1Y%33TtkjribpGyt{qh;f%b$w> z6IO}WlHnbAXfLPoYr!{}(pu>E3XRKPmwO`E)|lbB?Zh+xOxQz&V|(Mw9gP?&zjV8& z5d8C*_yg{L;|cS`;Ub)si~FmtW^}Pv*i^VicN&1X*AAUnjwZMt@wlIqDbG>C_L`7; zM-qQ-r$00_e3{{6ug1iyt}VN7)QL8vK0Gia6q$N_xD$n)dg-A6#EXB0QVZBMvQ_N{ zcA)+oBX-VkM28PIvKY+7dI?YqDA7i|DVd@7p$T2_MCyj!5>|#Yct}|}T(v1@BKkiA z7WzLHl$E-40uomb@?W(!FIDLoYgBg7eWBrR(8#*onT%YXqla&6H<%?2<*g4xV}xAO zW&7NBa3~lD?r>Qskjah5Lv1HGSnUss$*irdcHFCwy?Mtc?VSvpEB{u~8!s1Wz3JkyiS>wA4>rXy8wF)e=1mYP;+0fFU%o!@6(I3F=ZQPU!|7pHAy zA$Mm+j}7{}dr~_ccB@F^XN=Mad7fjjqO8}(_IBR7?@=MoOX?NgteF)NIPh7EBTEJ-;8lt%9XtR=Xt%Zi@kY3~$Xk!9DkKzH%^nl;+Xhbx@wn4y){3i2}=JIUd`#0-@FrKdmyk*mI zp^YN7v-V%OcPIr{a+GF_rq2e=-CH@??w$1>+&`Y}-c)$&v1%}Su`prCfO>S92^)oB z8#bpJ9G;GP--+q7o}&^UqY+&lwqL{(Dl-VJ-HFc{yqlvgTzB^Cze&^3{t3V3Nh+Y^ z{R%>>0xe#ktk^jF3~Q^W8j8#!ry3$G1V#Ueco_ax*afD)8%4>P;%xm%U$=Wz)Ri+E z;4!JRnw1Kbk+7k{f3k5%H1;RB@0zx@ zs;%El%a;!3oT%)5kB0nG_WHGE(Leb^V(C7Ux5 zrG<8!ni{=2w4_n{==QS9AYOvuyQoLxbwkxJkg{tdl6$|(Yg z_b*!es40YV*A>8DK=6M8cjN9}{ikNVJPB^tdrH09YRFU-;NZLr3K?<}nfRQvtKQw>ba+4!MT1f^op& z5zJC=S(R3PJn48<92`MdLZA$Rd6^g$@=iPmMpqD*w>2Bb!^&I;$VR@{gjjcyCOY{O zpp|wLKc1q-s)jH9Wm><0Pci{4YUYx$atTG2>mAI zA!C=K=GU{kXJ~&X8JOkk;NUEF^un^a!@=+lz^$tG#K)CkxWya{-rm}fO+F>K3=P() zoZdiv4+e}b7uW~y-~wFrfalZaN&w{TrEBQ@mOlV#o4+%Az!pVzcRJ6oj~riw4(Bm4 zpT2RAcN+IoZ-jSn7QU|6j%;rB2ncK&cY;p49e2qSvXUtR>e|F=|1Lw!xUV4YRah*g z_OCp3SIBrcs&!*Gr#U?xCtTpuF0liinw5dNtqhY#s#Zv8wkLKl8VD#$r`XslWU*xB z$nff&BeV8~g_OdkfWk_@FC=2fT4ucOoN?BDx!j1sb=^Wr^opxI5EuxDvJ)ucU;2?! zX%PrUt?$jXz(%`Qu#1hS+*|jeSRDxf*Z}!Q078~0n-4gWQnH2s=Q$$IqKdu zZQYek%n`1N0e9G+Zd(r=?t+qH?wTRmrX@&+LDY^UCQ#Ras;wrO>^0^q|E(gv8>-ir ze|Hc^A#6u7+vM?X6stx$St-TH44)Oy$fnf|`}YTS4T_SCzh|EVfeK_~eoO2xyfI5A z_nE?&zz<}cfvZOEC_jq<4TTLytplzO{4o2dHlw|ld<3u+Gu*7hcfkNrzGyrPCRc_Huy5=5Ig1o6(Z+NgZ}-ATUk=4GSBL~ zn|#k9toQ66FW+U=pAuNj12syWn6=4gTt+IeGoY-cUBYP$?pg6xd2~${)kvZYfDnL8 zF{w?SK)*vi8^4$@tk86GV^nO|K#ov8?osc<4=fYB zwq_z@Ci%`Vzeh({i?~fhZ)he23a$SQ=tb;e_2UBPDcc)*KSlM}tg}{!s2K$CB zWiI^fDnvV6EsvN`#wR(ohI~p~@&Bt