From c648ac6ef07ec0e03813d47f1e788cd2d0d546a4 Mon Sep 17 00:00:00 2001 From: Antifluxfield Date: Tue, 31 Oct 2017 01:39:13 +0800 Subject: [PATCH] Visualize fluid pipe input restriction --- .../java/gregtech/api/enums/Textures.java | 4 +- .../GT_MetaPipeEntity_Fluid.java | 74 +++++++++++++----- .../preload/GT_Loader_MetaTileEntities.java | 4 +- .../blocks/iconsets/PIPE_RESTRICTOR_DL.png | Bin 0 -> 410 bytes .../blocks/iconsets/PIPE_RESTRICTOR_DOWN.png | Bin 0 -> 309 bytes .../blocks/iconsets/PIPE_RESTRICTOR_DR.png | Bin 0 -> 406 bytes .../blocks/iconsets/PIPE_RESTRICTOR_LEFT.png | Bin 0 -> 316 bytes .../blocks/iconsets/PIPE_RESTRICTOR_LR.png | Bin 0 -> 428 bytes .../blocks/iconsets/PIPE_RESTRICTOR_ND.png | Bin 0 -> 499 bytes .../blocks/iconsets/PIPE_RESTRICTOR_NL.png | Bin 0 -> 493 bytes .../blocks/iconsets/PIPE_RESTRICTOR_NR.png | Bin 0 -> 498 bytes .../blocks/iconsets/PIPE_RESTRICTOR_NU.png | Bin 0 -> 499 bytes .../blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png | Bin 0 -> 320 bytes .../blocks/iconsets/PIPE_RESTRICTOR_UD.png | Bin 0 -> 408 bytes .../blocks/iconsets/PIPE_RESTRICTOR_UL.png | Bin 0 -> 398 bytes .../blocks/iconsets/PIPE_RESTRICTOR_UP.png | Bin 0 -> 302 bytes .../blocks/iconsets/PIPE_RESTRICTOR_UR.png | Bin 0 -> 408 bytes 17 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DR.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NL.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NR.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UL.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index f60fa257..ffde4650 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -103,7 +103,9 @@ public class Textures { OVERLAY_FRONT_PROCESSING_ARRAY, OVERLAY_FRONT_OIL_DRILL_ACTIVE, OVERLAY_FRONT_OIL_DRILL, OVERLAY_FRONT_DIESEL_ENGINE_ACTIVE, OVERLAY_FRONT_DIESEL_ENGINE, OVERLAY_FRONT_PYROLYSE_OVEN_ACTIVE, OVERLAY_FRONT_PYROLYSE_OVEN, OVERLAY_FRONT_OIL_CRACKER_ACTIVE, OVERLAY_FRONT_OIL_CRACKER, OVERLAY_FRONT_DISTILLATION_TOWER_ACTIVE, OVERLAY_FRONT_DISTILLATION_TOWER, OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE, OVERLAY_FRONT_ASSEMBLY_LINE, OVERLAY_FRONT_ORE_DRILL_ACTIVE, OVERLAY_FRONT_ORE_DRILL, OVERLAY_TOP_CLEANROOM_ACTIVE, OVERLAY_TOP_CLEANROOM, - OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR, OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE; + OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR, OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE, + PIPE_RESTRICTOR_UP, PIPE_RESTRICTOR_DOWN, PIPE_RESTRICTOR_LEFT, PIPE_RESTRICTOR_RIGHT, PIPE_RESTRICTOR_NU, PIPE_RESTRICTOR_ND, PIPE_RESTRICTOR_NL, PIPE_RESTRICTOR_NR, + PIPE_RESTRICTOR_UD, PIPE_RESTRICTOR_UL, PIPE_RESTRICTOR_UR, PIPE_RESTRICTOR_DL, PIPE_RESTRICTOR_DR, PIPE_RESTRICTOR_LR; /** * Icon for Fresh CFoam diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 6ebc0ff4..0126d422 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -87,27 +87,63 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity{ return new GT_MetaPipeEntity_Fluid(mName, mThickNess, mMaterial, mCapacity, mHeatResistance, mGasProof, mPipeAmount); } + protected static final byte[][] sRestrictionArray = new byte[][]{ + {2, 3, 5, 4}, + {2, 3, 4, 5}, + {1, 0, 4, 5}, + {1, 0, 4, 5}, + {1, 0, 2, 3}, + {1, 0, 2, 3}}; + @Override public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) { - if (aConnected) { - float tThickNess = getThickNess(); - if (tThickNess < 0.124F) - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (tThickNess < 0.374F)//0.375 - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (tThickNess < 0.499F)//0.500 - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (tThickNess < 0.749F)//0.750 - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (tThickNess < 0.874F)//0.825 - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (mPipeAmount == 4) - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeQuadruple.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - if (mPipeAmount == 9) - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeNonuple.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; - } - return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + float tThickNess = getThickNess(); + if (mDisableInput == 0) return new ITexture[]{aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) : new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))}; + byte tMask = 0; + if (aSide >= 0 && aSide < 6) for (byte i = 0; i < 4; i++) if ((mDisableInput & (1 << sRestrictionArray[aSide][i])) != 0) tMask |= 1 << i; + return new ITexture[]{aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) : new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), getRestrictorTexture(tMask)}; + } + + protected static final ITexture getBaseTexture(float aThickNess, int aPipeAmount, Materials aMaterial, byte aColorIndex) { + if (aPipeAmount >= 9) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeNonuple.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aPipeAmount >= 4) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeQuadruple.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aThickNess < 0.124F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aThickNess < 0.374F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aThickNess < 0.499F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aThickNess < 0.749F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + if (aThickNess < 0.874F) return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + return new GT_RenderedTexture(aMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + } + + protected static final ITexture getRestrictorTexture(byte aMask) { + switch (aMask) { + case 1: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UP); + case 2: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DOWN); + case 3: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UD); + case 4: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_LEFT); + case 5: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UL); + case 6: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DL); + case 7: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NR); + case 8: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_RIGHT); + case 9: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_UR); + case 10: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_DR); + case 11: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NL); + case 12: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_LR); + case 13: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_ND); + case 14: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR_NU); + case 15: return new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR); + default: return null; + } + } + + @Override + public void onValueUpdate(byte aValue) { + mDisableInput = aValue; + } + + @Override + public byte getUpdateData() { + return mDisableInput; } @Override diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java index d0e6b431..710bd3a6 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java @@ -1659,7 +1659,7 @@ public class GT_Loader_MetaTileEntities implements Runnable { } private static void generateFluidMultiPipes(Materials aMaterial, String name, String displayName, int startID, int baseCapacity, int heatCapacity, boolean gasProof){ - GT_OreDictUnificator.registerOre(OrePrefixes.pipeQuadruple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID, "GT_Pipe_" + name + "_Quadruple", "Quadruple " + displayName + " Fluid Pipe", 0.875F, aMaterial, baseCapacity, heatCapacity, gasProof, 4).getStackForm(1L)); - GT_OreDictUnificator.registerOre(OrePrefixes.pipeNonuple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID + 1, "GT_Pipe_" + name + "_Nonuple", "Nonuple " + displayName + " Fluid Pipe", 0.875F, aMaterial, baseCapacity / 3, heatCapacity, gasProof, 9).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeQuadruple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID, "GT_Pipe_" + name + "_Quadruple", "Quadruple " + displayName + " Fluid Pipe", 0.9F, aMaterial, baseCapacity, heatCapacity, gasProof, 4).getStackForm(1L)); + GT_OreDictUnificator.registerOre(OrePrefixes.pipeNonuple.get(aMaterial), new GT_MetaPipeEntity_Fluid(startID + 1, "GT_Pipe_" + name + "_Nonuple", "Nonuple " + displayName + " Fluid Pipe", 0.9F, aMaterial, baseCapacity / 3, heatCapacity, gasProof, 9).getStackForm(1L)); } } diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DL.png new file mode 100644 index 0000000000000000000000000000000000000000..766311a9524370715ed492d784206945421394b6 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqd|^E{-7<{&O#H%xX>$VNHu$3_51x?@ZH_>$7Rn69xFUzz$38Y z_+kD@F6_Vdwd^>bP0l+XkKPClEq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_DOWN.png new file mode 100644 index 0000000000000000000000000000000000000000..285fbf58e83ab4c4c29f0f659ea587068ae55052 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqj~^E{-7<{%d zpq_w&K*8jK#scX!?M)G_%0!|M?LR*8nK1Bt^aDB2-_YR(< x;^^fmbKK>5hXD^~6T|-}k7f7XeK9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqek9E{-7<{&O!GW;X{2uz&cz@Y2DDqC77Y zt~50B@v)U`xY3~GB)6nV@|Qwcf#9P6W<9>bg3b#yJL`Y{;VA$8w{Q1vV>g{bkrSU~ zj+7lcwaI1HvXTceb0?~B%1#JU>Pxoz5PO~D@B}^+-)04l7Y?_#eW;z!R}#y9z4YaQ zx7Q9A%2*ljFz5X4110+p8}L{eoHs6sUCw-ZQ$sPITFZgwFI!fvQrNHZ z>KBu!(AVeL<*xrPJIngKwec0c^5l5(!S|mzeJ>yATI4V-)uKj5VE^%sMI68Xx2&8{ wF>m|6tn~NSnrANST)U68{%Q8-XQ|EhlcM{Y?2l*w!<2!+)78&qol`;+0ClpV(f|Me literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LEFT.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e79be13ed9172b61c96323978a5f7c80815910 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqg2pE{-7<{&UYP4%x;XFA>9W+UL_aJ|&V zpig;9kj;a=?S^ga_s$)>CC(p_{jjZ({nx(sYqQwuUJCgw-TSKX573nip00i_>zopr E0IL3OoB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_LR.png new file mode 100644 index 0000000000000000000000000000000000000000..9346841e20dd258552f7ae82d6a07bc2ea1e41c9 GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpgmlkE{-7<{!=d-W;YiIuzvU*@N$CV3g>AK zx)A~g9XyzYN(_{o{t2)et0Z`7@hT~WY+!7+u;`djv-7&wg5P)R>@D8ezS_l?d%J0d zvKiC7=Z$So(<9TE6D5-N#x>7cb}+>#k$HCp`|WLxrLoCYb2l{}e%Np|i*;8_-GV(@ zIS(FJ94Xq#GBuSmv^JU9b5erc{N}Dj4eMU#DEJ0Tv@xFA#IyNk5ATyoKHtj@&p(Tc zz2`Oyn0CK@`RWDdFLN%-+|;;g)dCIu1r~jYkz&$6>i^g6Z+~o&vtVbOJY&zI7ZWp| z@rX`n=W20eP&CU~@V?q(5{rCFQhY^tOlifgW(`8q^d R+zA+R44$rjF6*2UngBzKpWy%i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_ND.png new file mode 100644 index 0000000000000000000000000000000000000000..9c759e8446176f8c525f34fcf9255afba3481947 GIT binary patch literal 499 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5dZ)S5dnW>Uy%R+00(qQO+^RZ2M!E1 zHA{zsEdT%j7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGmPe!Pyhe{QAtEWR5(wS zlg(EJKy}BL-+d~x7!WZG{xm|L6Rhh;~2+dg#CVx@H@nMy~bj(z;rrA5Cj;FM(~Cn zT-OD0@_RmyLZN_Su?St)VVWi^%R;qUMZM8LtJQ+t>A>lB;r9FRJP*F_!*Lu?sw#7` z3X;4@FhNH_iQDGNl4SlnpU=^5w?XG~0!`P%fX~$m&1MtC3o{H;4A^WosMTtqD2iSS zla8?4?NBb4L42x8r6L9#4hNJ8)K~8MZ)-f pK9S94L4&~nyPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5dZ)S5dnW>Uy%R+00(qQO+^RZ2M!E1 zHA{zsEdT%j7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGmPe!Pyhe{OG!jQR5(wa zlR<03KoCarqwK*$N+ak&r~w5PL~K1YHdu>TL2N8Fpa&1;;6VfR&%I`I zE);fPkMow9d7pARoj4wk9DJYse$Q^V!}C1W>n~QT6^oArv)PQvWWsnn#;O(0MFZy&1U5R z+wGQ2=2jjctQF!(d*B}qk-gFY5dkfXfHWWo0#sE+5y5x~(!oPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5dZ)S5dnW>Uy%R+00(qQO+^RZ2M!E1 zHA{zsEdT%j7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGmPe!Pyhe{P)S5VR5(wa zQ$1_KP!!FNvV()A3OZykUNx;E~5p1f2SVIjYfAQh; z_g#3~JLi6!bA-#~g7f)|uhR*~;}LNjBMd|Ab^(0f$NGJZ)oO*sVu9IghUs()!!V#v zbZD9efxu7MEb{q0L{Wq!Nswh3l}ZKmdL7MH3!P2}O0NfXFn~51LDzLymIYN+A)Hue z0<#kCdBR`O*wpzRF#Y|n!y!gdD)JN1!Ad2WpCAZ=zn z7W>aVq9{s|O1Yu%U9aExx!sUXry-2TV+@Bw^k4hvzI4%UxAEL)pjxe>TrM-0mLL_S oBrk-2eap07*qoM6N<$f)10(T>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_NU.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdda008b468cf183efcb960ee06c54a9630e986 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpgn<}E{-7<{!=GAW*>48XnpQ}v$=hW+lA%} z9AZ5S64olM3=3&`(8Tsgv2jVn$_}=bjG{I(n%Q};*nfY;_KP_!A>aD`yEE1Odegbj zJvZ)%Oj1dhrRHH~zfwy&AyVwuUptL1rIgK)ce*Xov-~f@wUVU zzINL!O~=@3e%VR&vT5)*i*)Pf9H_B#UmM1pYbHJAbgEgx&X`3(D;vUAi>|t=B`v_h z=(SWRW8)9EziZF2wLJW0S0(txboRolSsNL5-{qV2jpvgM|J$h#l!i_;d^Xn7XDQf#%Cc-_P{Tc;iraSWcWelF{r5}E)=DZm#1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_RIGHT.png new file mode 100644 index 0000000000000000000000000000000000000000..87fc09f32ebf3475481df63b88db3bf81a2016f1 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqhD}E{-7<{&UYPJ|lQIp$yc*mrV2-0Ob5)W*Qh zeM|0XWmdK II;Vst09x*CRsaA1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UD.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd53d6da35486fac2d59c42f1fcc518b0f6a964 GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqg)SY&*vF=|Q5L)s2L|JIi1GYrFq<_nr?NmGg>iT6TfeLTwpOJXmj@sru#3y9De_^N27~l^G%-9nK9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqe+HE{-7<{&Od<i{7 z-h0l+7D*L+FMiAA-d?mWJ0!H#=DebDr$wKlM~&6|g_%+%vF(Wx2EM}6QV$l&+<8~N zV;%ST?}BWMk5n3`2&G0U@i=$*ma1)hAlB=s>kCOlZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UP.png new file mode 100644 index 0000000000000000000000000000000000000000..344d254342da6f6877edcc2ead17f5c4a05ebdf8 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqd^}7sn6_|F;(u`I-$F94^Y`a`3PPHaqeJ z8nXCyMF=|u1qM1B@o)-ruq1VGz571>ZqlOr^`DQF#vYOQIY<3?;fD9tx3_Ivmp?5v zvF@zTWfu;{_qOLO+Y%4h=^m3flD{uivT|Oq2y1Gj($XcXv|jCccF#m(X~h=ZU9Syl p`?pRjl(`tC9OS9M`KR-M_yR7!*=KdV_5t0+;OXk;vd$@?2>@s@WFr6o literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/PIPE_RESTRICTOR_UR.png new file mode 100644 index 0000000000000000000000000000000000000000..cc316b91d411d78491d89fd98c7b8e0f6a364d1d GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p<)L71^VC4M4MkiEpy*OmPqJ0Fj!sdsy`E>K9K#5JNMI6tkV zJh3R1p&&6cuS72|wM4;0&p^+(=h^fCpqg)$X-m}Cl9g$(+QHGg zK%uF_q{%~8X~shPjsypnpd)N9J`0=p_^d2CF5I~@{f4(i`u}+^ZSQQ-neklmu}Pu? z+n3t@ZMlWJ|1MaU9kYMEMi*1%JZ0Zt70)J(t^;gy__Jy zrgQqx?}rT6OFusR&C%!HvRqgqx#O{fqd>#rdzO}m>la9PUS0!ZU6hPmoMjP-ouI3Gmd@SA7`{-Z^Mro wMxzbuv{@V%FxP*#u9&x+`F6$kO^2E1#7>B4U-@k+Fa#JpUHx3vIVCg!0MYT7kN^Mx literal 0 HcmV?d00001