From ee87d8cef51f4a50638b154931c990d69892a648 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Wed, 9 Jul 2014 15:31:57 -0400 Subject: [PATCH] Transmitter code cleanup - killed the now-unused merge() method and separated data handlers from ITransmitterNetwork itself. Also added new pipe textures. --- .../java/mekanism/api/gas/GasNetwork.java | 19 +++---------- .../api/transmitters/DynamicNetwork.java | 2 +- .../api/transmitters/INetworkDataHandler.java | 10 +++++++ .../api/transmitters/ITransmitterNetwork.java | 8 ------ .../java/mekanism/common/EnergyNetwork.java | 21 +++------------ .../java/mekanism/common/FluidNetwork.java | 25 +++++------------- src/main/java/mekanism/common/Tier.java | 6 ++--- .../common/item/ItemNetworkReader.java | 8 +++--- .../common/multipart/PartMechanicalPipe.java | 16 ++++++----- .../common/multipart/PartPressurizedTube.java | 4 +-- .../common/multipart/PartTransmitter.java | 16 ----------- .../common/multipart/PartUniversalCable.java | 4 +-- .../textures/blocks/models/MechanicalPipe.png | Bin 1600 -> 0 bytes .../blocks/models/MechanicalPipeActive.png | Bin 1603 -> 0 bytes .../blocks/models/MechanicalPipeAdvanced.png | Bin 0 -> 1627 bytes .../blocks/models/MechanicalPipeBasic.png | Bin 0 -> 1635 bytes .../blocks/models/MechanicalPipeElite.png | Bin 0 -> 1641 bytes .../blocks/models/MechanicalPipeUltimate.png | Bin 0 -> 1643 bytes 18 files changed, 45 insertions(+), 94 deletions(-) create mode 100644 src/main/java/mekanism/api/transmitters/INetworkDataHandler.java delete mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipe.png delete mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeActive.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeAdvanced.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeBasic.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeElite.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeUltimate.png diff --git a/src/main/java/mekanism/api/gas/GasNetwork.java b/src/main/java/mekanism/api/gas/GasNetwork.java index 6127b03e2..0248c614b 100644 --- a/src/main/java/mekanism/api/gas/GasNetwork.java +++ b/src/main/java/mekanism/api/gas/GasNetwork.java @@ -346,19 +346,6 @@ public class GasNetwork extends DynamicNetwork } } - @Override - public synchronized void merge(GasNetwork network) - { - if(network != null && network != this) - { - Set networks = new HashSet(); - networks.add(this); - networks.add(network); - GasNetwork newNetwork = create(networks); - newNetwork.fullRefresh(); - } - } - public static class GasTransferEvent extends Event { public final GasNetwork gasNetwork; @@ -471,19 +458,19 @@ public class GasNetwork extends DynamicNetwork } @Override - public String getNeeded() + public String getNeededInfo() { return Integer.toString(getGasNeeded()); } @Override - public String getStored() + public String getStoredInfo() { return gasStored != null ? gasStored.getGas().getLocalizedName() + " (" + gasStored.amount + ")" : "None"; } @Override - public String getFlow() + public String getFlowInfo() { return Integer.toString(prevTransferAmount) + "/t"; } diff --git a/src/main/java/mekanism/api/transmitters/DynamicNetwork.java b/src/main/java/mekanism/api/transmitters/DynamicNetwork.java index 93393e3be..6bbc73d2e 100644 --- a/src/main/java/mekanism/api/transmitters/DynamicNetwork.java +++ b/src/main/java/mekanism/api/transmitters/DynamicNetwork.java @@ -21,7 +21,7 @@ import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.Event; -public abstract class DynamicNetwork> implements ITransmitterNetwork, IClientTicker +public abstract class DynamicNetwork> implements ITransmitterNetwork, IClientTicker, INetworkDataHandler { public LinkedHashSet> transmitters = new LinkedHashSet>(); diff --git a/src/main/java/mekanism/api/transmitters/INetworkDataHandler.java b/src/main/java/mekanism/api/transmitters/INetworkDataHandler.java new file mode 100644 index 000000000..38cd63702 --- /dev/null +++ b/src/main/java/mekanism/api/transmitters/INetworkDataHandler.java @@ -0,0 +1,10 @@ +package mekanism.api.transmitters; + +public interface INetworkDataHandler +{ + public String getNeededInfo(); + + public String getStoredInfo(); + + public String getFlowInfo(); +} diff --git a/src/main/java/mekanism/api/transmitters/ITransmitterNetwork.java b/src/main/java/mekanism/api/transmitters/ITransmitterNetwork.java index a72fa2606..4bb2e8236 100644 --- a/src/main/java/mekanism/api/transmitters/ITransmitterNetwork.java +++ b/src/main/java/mekanism/api/transmitters/ITransmitterNetwork.java @@ -11,12 +11,6 @@ public interface ITransmitterNetwork> public int getAcceptorSize(); - public String getNeeded(); - - public String getStored(); - - public String getFlow(); - public Set getAcceptors(Object... data); public void removeTransmitter(IGridTransmitter transmitter); @@ -29,8 +23,6 @@ public interface ITransmitterNetwork> public void split(IGridTransmitter splitPoint); - public void merge(N network); - public void fixMessedUpNetwork(IGridTransmitter transmitter); public void register(); diff --git a/src/main/java/mekanism/common/EnergyNetwork.java b/src/main/java/mekanism/common/EnergyNetwork.java index 4cd3e9e3a..da46c5772 100644 --- a/src/main/java/mekanism/common/EnergyNetwork.java +++ b/src/main/java/mekanism/common/EnergyNetwork.java @@ -357,19 +357,6 @@ public class EnergyNetwork extends DynamicNetwork } } - @Override - public synchronized void merge(EnergyNetwork network) - { - if(network != null && network != this) - { - Set networks = new HashSet(); - networks.add(this); - networks.add(network); - EnergyNetwork newNetwork = create(networks); - newNetwork.fullRefresh(); - } - } - public static class EnergyTransferEvent extends Event { public final EnergyNetwork energyNetwork; @@ -473,20 +460,20 @@ public class EnergyNetwork extends DynamicNetwork } @Override - public String getNeeded() + public String getNeededInfo() { return MekanismUtils.getEnergyDisplay(getEnergyNeeded()); } @Override - public String getStored() + public String getStoredInfo() { return MekanismUtils.getEnergyDisplay(electricityStored); } @Override - public String getFlow() + public String getFlowInfo() { - return MekanismUtils.getEnergyDisplay(20*joulesTransmitted) + " per second"; + return MekanismUtils.getEnergyDisplay(joulesTransmitted) + "/t"; } } diff --git a/src/main/java/mekanism/common/FluidNetwork.java b/src/main/java/mekanism/common/FluidNetwork.java index 8aa0c5ffd..36f6dbbe4 100644 --- a/src/main/java/mekanism/common/FluidNetwork.java +++ b/src/main/java/mekanism/common/FluidNetwork.java @@ -359,19 +359,6 @@ public class FluidNetwork extends DynamicNetwork } } - @Override - public synchronized void merge(FluidNetwork network) - { - if(network != null && network != this) - { - Set networks = new HashSet(); - networks.add(this); - networks.add(network); - FluidNetwork newNetwork = create(networks); - newNetwork.fullRefresh(); - } - } - public static class FluidTransferEvent extends Event { public final FluidNetwork fluidNetwork; @@ -486,20 +473,20 @@ public class FluidNetwork extends DynamicNetwork } @Override - public String getNeeded() + public String getNeededInfo() { - return "Fluid needed: " + (float)getFluidNeeded()/1000F + " buckets"; + return (float)getFluidNeeded()/1000F + " buckets"; } @Override - public String getStored() + public String getStoredInfo() { - return fluidStored == null ? "None" : fluidStored.getFluid().getLocalizedName() + ", " + fluidStored.amount + "mB"; + return fluidStored != null ? fluidStored.getFluid().getLocalizedName(fluidStored) + " (" + fluidStored.amount + " mB)" : "None"; } @Override - public String getFlow() + public String getFlowInfo() { - return Integer.toString(prevTransferAmount) + "mB/t"; + return Integer.toString(prevTransferAmount) + " mB/t"; } } diff --git a/src/main/java/mekanism/common/Tier.java b/src/main/java/mekanism/common/Tier.java index 58beaee6c..854785da6 100644 --- a/src/main/java/mekanism/common/Tier.java +++ b/src/main/java/mekanism/common/Tier.java @@ -139,11 +139,11 @@ public final class Tier { case 4: return BASIC; - case 9: + case 5: return ADVANCED; - case 10: + case 6: return ELITE; - case 11: + case 7: return ULTIMATE; default: return BASIC; diff --git a/src/main/java/mekanism/common/item/ItemNetworkReader.java b/src/main/java/mekanism/common/item/ItemNetworkReader.java index e843f04c7..c4ef0a79e 100644 --- a/src/main/java/mekanism/common/item/ItemNetworkReader.java +++ b/src/main/java/mekanism/common/item/ItemNetworkReader.java @@ -37,10 +37,10 @@ public class ItemNetworkReader extends ItemEnergized player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " -------------")); player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Transmitters: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getSize())); player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Acceptors: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getAcceptorSize())); - player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Needed: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getNeeded())); - player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Buffer: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getStored())); - player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Throughput: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getFlow())); - player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Capacity: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getCapacity() + "/tick")); + player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Needed: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getNeededInfo())); + player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Buffer: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getStoredInfo())); + player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Throughput: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getFlowInfo())); + player.addChatMessage(new ChatComponentText(EnumColor.GREY + " *Capacity: " + EnumColor.DARK_GREY + transmitter.getTransmitterNetwork().getCapacity())); player.addChatMessage(new ChatComponentText(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------")); } } diff --git a/src/main/java/mekanism/common/multipart/PartMechanicalPipe.java b/src/main/java/mekanism/common/multipart/PartMechanicalPipe.java index b32f8195b..2301b3889 100644 --- a/src/main/java/mekanism/common/multipart/PartMechanicalPipe.java +++ b/src/main/java/mekanism/common/multipart/PartMechanicalPipe.java @@ -30,7 +30,7 @@ public class PartMechanicalPipe extends PartTransmitter implements /** The fake tank used for fluid transfer calculations. */ public FluidTank dummyTank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME); - public static TransmitterIcons pipeIcons = new TransmitterIcons(2, 1); + public static TransmitterIcons pipeIcons = new TransmitterIcons(4, 1); public float currentScale; @@ -198,14 +198,15 @@ public class PartMechanicalPipe extends PartTransmitter implements public static void registerIcons(IIconRegister register) { - pipeIcons.registerCenterIcons(register, new String[] {"MechanicalPipe", "MechanicalPipeActive"}); + pipeIcons.registerCenterIcons(register, new String[] {"MechanicalPipeBasic", "MechanicalPipeAdvanced", + "MechanicalPipeElite", "MechanicalPipeUltimate"}); pipeIcons.registerSideIcons(register, new String[] {"MechanicalPipeSide"}); } @Override public IIcon getCenterIcon() { - return pipeIcons.getCenterIcon(0); + return pipeIcons.getCenterIcon(tier.ordinal()); } @Override @@ -221,7 +222,10 @@ public class PartMechanicalPipe extends PartTransmitter implements } @Override - public TransmitterType getTransmitter() { return tier.type; } + public TransmitterType getTransmitter() + { + return tier.type; + } @Override public boolean isValidAcceptor(TileEntity tile, ForgeDirection side) @@ -312,13 +316,13 @@ public class PartMechanicalPipe extends PartTransmitter implements @Override public String getTransmitterNetworkNeeded() { - return getTransmitterNetwork().getNeeded(); + return getTransmitterNetwork().getNeededInfo(); } @Override public String getTransmitterNetworkFlow() { - return getTransmitterNetwork().getFlow(); + return getTransmitterNetwork().getFlowInfo(); } @Override diff --git a/src/main/java/mekanism/common/multipart/PartPressurizedTube.java b/src/main/java/mekanism/common/multipart/PartPressurizedTube.java index c69434be2..ebd570188 100644 --- a/src/main/java/mekanism/common/multipart/PartPressurizedTube.java +++ b/src/main/java/mekanism/common/multipart/PartPressurizedTube.java @@ -232,13 +232,13 @@ public class PartPressurizedTube extends PartTransmitter implements @Override public String getTransmitterNetworkNeeded() { - return getTransmitterNetwork().getNeeded(); + return getTransmitterNetwork().getNeededInfo(); } @Override public String getTransmitterNetworkFlow() { - return getTransmitterNetwork().getFlow(); + return getTransmitterNetwork().getFlowInfo(); } @Override diff --git a/src/main/java/mekanism/common/multipart/PartTransmitter.java b/src/main/java/mekanism/common/multipart/PartTransmitter.java index 68ffad869..d50812e11 100644 --- a/src/main/java/mekanism/common/multipart/PartTransmitter.java +++ b/src/main/java/mekanism/common/multipart/PartTransmitter.java @@ -38,22 +38,6 @@ public abstract class PartTransmitter> extends Pa @Override public void refreshTransmitterNetwork() { - byte possibleTransmitters = getPossibleTransmitterConnections(); - byte possibleAcceptors = getPossibleAcceptorConnections(); - - for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) - { - if(connectionMapContainsSide(possibleTransmitters, side)) - { - TileEntity tileEntity = Coord4D.get(tile()).getFromSide(side).getTileEntity(world()); - - if(TransmissionType.checkTransmissionType(tileEntity, getTransmissionType())) - { - ((DynamicNetwork)getTransmitterNetwork()).merge(((IGridTransmitter)tileEntity).getTransmitterNetwork()); - } - } - } - ((DynamicNetwork)getTransmitterNetwork()).refresh(this); ((DynamicNetwork)getTransmitterNetwork()).refresh(); } diff --git a/src/main/java/mekanism/common/multipart/PartUniversalCable.java b/src/main/java/mekanism/common/multipart/PartUniversalCable.java index 6a71e49c4..119060a92 100644 --- a/src/main/java/mekanism/common/multipart/PartUniversalCable.java +++ b/src/main/java/mekanism/common/multipart/PartUniversalCable.java @@ -256,13 +256,13 @@ public class PartUniversalCable extends PartTransmitter implement @Override public String getTransmitterNetworkNeeded() { - return getTransmitterNetwork().getNeeded(); + return getTransmitterNetwork().getNeededInfo(); } @Override public String getTransmitterNetworkFlow() { - return getTransmitterNetwork().getFlow(); + return getTransmitterNetwork().getFlowInfo(); } @Override diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipe.png b/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipe.png deleted file mode 100644 index 5c736f1faeca7b5c0062d163eb1a13af17daee16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1600 zcmV-G2EX}4Tx0C?Jsl+SMzWf;dlyYtSh2{;E+0gJ(jKY)-zwqTG3L3g{$wouDv+hW_8 znCoMPiX1$ccrw9X5iY<%0|`MxY)DKvl=ve=5-x_+!%TMv zXvO#R%=3Pq@AvyW?~{Sd=T+Z#(-zEnp{kVf*7(GvmAOHhXIMiwYpQnO=gQ?FfU57i zJaX>+ObX!I_LcAd^Q@`Kz=qTlK(iLuvyeIlx@-F?1mhO4=V<7Mka-s9QsWbokjVmF z^(Za?T~kp!4s@x}No`@q40Cbh4CzWGcl~Ud+tLC)h%7op= zT>sBA>$aBlHUVpcnUO=lR!ALdsDVlxe_~gQBfyK0y6lJf3a}Ycf3#-Ca={irt|ajcdi^v~yrE#?Sk1c_{KG&Z<^rEXG`|s$wbP5r0c> zEaucV)T)I;zz)#&b0k$o(qsyWjmLc~DwN1$;iG6Wje|=GiHAhtq@H93XBAu-iHhS6 zqK?F45ru=j3MNvx9b=key~v7PA}jWaA+b;F5q((VHSxOGFA5?n`o!LLZ8@QDQRjA> z=UrMzEGir!f4aN1wWD`Zz3tdnPThH+y7`D_x$Gx70Rm>)$nDAgFU^0qp~G=qoO|oq z+Dr2se%yTZTl%7YUB9K@&=)!g{a1ZKU(j!m!^NeJWEP2oha^ZiNcM06myjwhzv0nL z;2uz%_D*+qZtN?k?#TCs?+tUZr<2Y8lKnG#J^N|)Z1(quro7^mw2!o}wC}aAwQsZ^ zv9$Br1?>mzqV}csZQ`v~-;eg&lS_0f@m8F*#5MEgM)L);U_NKQWDa%s%=KokIbd!v z3+Bf5yCwCKy*NzZwx_zXR)ibF!{I0rML-o7kK+&Re_Sm#iC!`I(AMq|dqvx&Q8Wrh z4$IhP^clUzK_l1kXKXPFMxU|8C_b=t_9`971S;9*cBYU7%%E_XL*f!3LwPI&=x_SR zl~Zqo*3NA96)WfauCxX{dq)ZeU0nJH7K~z}7y_ZdngD?z*pPkSk zA=GR19ISfko}(A3nnJK=(J=#^{)8F88w5mrkNDY1=y*J8UDt>)0sxp9-g~Gjx~{`x zjNg0j;hY0AgPBnj1&9cJ-$O)@Qi6y;M22U5-y?*87$dr_gRkovyWI}Y!a0X`p{htJ zftdjSZQFu~hIb+|5pLp*SC%Dwj1e(L+-^675QafTQ2@X&*zR-U(+rGx-jo2q<#NFm zQB@W8`#oZe@HTyRJ)KUpCcJ4HHP$zGDqxG42uLYq87?Qz=d4Tx0C?Jsl+SMzWf;dlyYtSh2{;E+0gJ(jKY)-zwqTG3L3g{$wouDv+hW_8 znCoMPiX1$ccrw9X5iY<%0|`MxY)DKvl=ve=5-x_+!%TMv zXvO#R%=3Pq@AvyW?~{Sd=T+Z#(-zEnp{kVf*7(GvmAOHhXIMiwYpQnO=gQ?FfU57i zJaX>+ObX!I_LcAd^Q@`Kz=qTlK(iLuvyeIlx@-F?1mhO4=V<7Mka-s9QsWbokjVmF z^(Za?T~kp!4s@x}No`@q40Cbh4CzWGcl~Ud+tLC)h%7op= zT>sBA>$aBlHUVpcnUO=lR!ALdsDVlxe_~gQBfyK0y6lJf3a}Ycf3#-Ca={irt|ajcdi^v~yrE#?Sk1c_{KG&Z<^rEXG`|s$wbP5r0c> zEaucV)T)I;zz)#&b0k$o(qsyWjmLc~DwN1$;iG6Wje|=GiHAhtq@H93XBAu-iHhS6 zqK?F45ru=j3MNvx9b=key~v7PA}jWaA+b;F5q((VHSxOGFA5?n`o!LLZ8@QDQRjA> z=UrMzEGir!f4aN1wWD`Zz3tdnPThH+y7`D_x$Gx70Rm>)$nDAgFU^0qp~G=qoO|oq z+Dr2se%yTZTl%7YUB9K@&=)!g{a1ZKU(j!m!^NeJWEP2oha^ZiNcM06myjwhzv0nL z;2uz%_D*+qZtN?k?#TCs?+tUZr<2Y8lKnG#J^N|)Z1(quro7^mw2!o}wC}aAwQsZ^ zv9$Br1?>mzqV}csZQ`v~-;eg&lS_0f@m8F*#5MEgM)L);U_NKQWDa%s%=KokIbd!v z3+Bf5yCwCKy*NzZwx_zXR)ibF!{I0rML-o7kK+&Re_Sm#iC!`I(AMq|dqvx&Q8Wrh z4$IhP^clUzK_l1kXKXPFMxU|8C_b=t_9`971S;9*cBYU7%%E_XL*f!3LwPI&=x_SR zl~Zqo*3NA96)WfauCxX{dqJtoZD9*Dm`TT~i%LB7$=c-g{VU;k}3VKK0)VtQ{w|4o707uK zGXa3zZigwNX&Nk-OK7bjv1IYN{CIsE6aKy0tRw4J8crHb6*-HYb47+LiLd9EqIEfo zOC4VVfBJmyl>iZ)5)hGx5-5e|tPldG6aJbX`bto$b8im}t#fe&Vo%;{!y)0FHZ1A? zF}^${P@?@<@ZKI6I*16|XO|m#Dl+qF6b}tAkxeNDUMv=aZbYSUWh)2fk~&I2I?+%w~l!zgDKCotqNicD+m(F0MJ zsiJdSpCW;C<4&5uCGT_+h}w@a5wCeCXNk2IN~v@Y{9bL=V|ySn0YHo~>1Nb4%_LW| zqRVM4(|*72Jnx-w9=@FR-Ouyt5K(8$Uh`GX`vJm=TTEN@-~Rvr002ovPDHLkV1oX& B2S@+_ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeAdvanced.png new file mode 100644 index 0000000000000000000000000000000000000000..6df474e5c778605167ec036b00ed7ac73200498f GIT binary patch literal 1627 zcmV-h2Bi6kP)4Tx062|}Ro!pfR1`mnZ(O7nKcKOW4i$^9Ra0BJ8yc;~21%2p=|UR0&DbiW z$#rfTQ`a`O(`{9s_5yDV_yd5l2Of}kLK+Oj_Ok5(v`JGz71bo9J#^YYXp{DWs&KBa zQ@dTpxRI}aIp=pi@6k0t$5)!;m`NF6-tt{FpOKHBn3g+MAqmexC-gw4rh87hTrL7G z#)U`L!(So6-Zux@>;H3gR;i~0B%VTSS3P|m@o9jRsXML@Al^p#@G0Lx-0?i(9WEw_ zSYddU<1E8793KxjQ|c&UmW!mTC>k>?{om1c9S zUx<6_jj_!T&^M{wWM#>IBbOSf*xP<^F{$j$aOQ5Y{cT zROCL1M7^NKKL z&(yA}mSw#iM0^;IB{ZO5!wl{^Sg-*ysE~&Yz8!E;Qv(A`lu*=Clo*MpVGd>OdF6n^ zam1Jntk;<}MrqIC5$=Q>n{*R}?8oOIDUw5En2dl--Xw34!z7E+5pr-OgyQ-soSab)C%saskMla`aQLVzg0+MZf20tJU&K{hZoBrUc+U4e9&3o zw|KmGEe4#xz17wBu{f`SS_4i66?j31EjY7n{zGfhONK~c+td!TS#B}JoR}5UAd7p& z5phTyXSkK0xCeD3xaYP^o&J~#Xp9xFb0C;HHml5fA<%h1eR|qw7wxF+oNL9T1Aits?sKNIwvGaN)^WO$I^cUV)HzL_| z1K?{9p!>B*)`xfEv!4N6IG{J&h49W#Bz^(#YWw%`e_a{8n{G9m5AeR~_yl0%<7V@p zs-;ETn=Gn!|dcL_lP0gjx{ zXA6L5>HtfyQSjoeR;y6bbFS0rWRb~;-XJp8yBv0D^)@vEo>$_CNRY3eZ_`uXKHopW zX0x%5ml{6lw_7Nt4B&SbDzV_y&yV?&o)RwKo)wuVq%YyrxJ&Q%`>Ly6b)NO;eqG}W zWjI6w-)^^A(~dC% z1;DTK)smYtOn>B8?6Y!gFu8D;?4D{JZTB)3O#56ow(OWJ0KUiV?GpwmNzLsLxR`Kl z88Qkv%drbGWU1QR*GwdmghbMpj9u{5Xr;{;%3R!JhTEVMgj-~L}%ZaXotFH(n7{iLQi znq?hMHB5)Y!8#`Wte1SqBz#_x_SY2~E_TG~)YHSMcZ8Fa01`~2#XAW`J1(vFwhw>%G&?{002ovPDHLkV1iL%BO(9* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeBasic.png new file mode 100644 index 0000000000000000000000000000000000000000..c60cb4bd230985f9a5cf07dbdc6a8a440af0f01f GIT binary patch literal 1635 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/MechanicalPipeUltimate.png new file mode 100644 index 0000000000000000000000000000000000000000..d3081b5a3e8af1f42ffa6180a21212eb1faae238 GIT binary patch literal 1643 zcmV-x29)`UP)4Tx062|}Ro!pfR1`mnZ(O7nKcKOW4i$^9Ra0BJ8yc;~21%2p=|UR0&DbiW z$#rfTQ`a`O(`{9s_5yDV_yd5l2Of}kLK+Oj_Ok5(v`JGz71bo9J#^YYXp{DWs&KBa zQ@dTpxRI}aIp=pi@6k0t$5)!;m`NF6-tt{FpOKHBn3g+MAqmexC-gw4rh87hTrL7G z#)U`L!(So6-Zux@>;H3gR;i~0B%VTSS3P|m@o9jRsXML@Al^p#@G0Lx-0?i(9WEw_ zSYddU<1E8793KxjQ|c&UmW!mTC>k>?{om1c9S zUx<6_jj_!T&^M{wWM#>IBbOSf*xP<^F{$j$aOQ5Y{cT zROCL1M7^NKKL z&(yA}mSw#iM0^;IB{ZO5!wl{^Sg-*ysE~&Yz8!E;Qv(A`lu*=Clo*MpVGd>OdF6n^ zam1Jntk;<}MrqIC5$=Q>n{*R}?8oOIDUw5En2dl--Xw34!z7E+5pr-OgyQ-soSab)C%saskMla`aQLVzg0+MZf20tJU&K{hZoBrUc+U4e9&3o zw|KmGEe4#xz17wBu{f`SS_4i66?j31EjY7n{zGfhONK~c+td!TS#B}JoR}5UAd7p& z5phTyXSkK0xCeD3xaYP^o&J~#Xp9xFb0C;HHml5fA<%h1eR|qw7wxF+oNL9T1Aits?sKNIwvGaN)^WO$I^cUV)HzL_| z1K?{9p!>B*)`xfEv!4N6IG{J&h49W#Bz^(#YWw%`e_a{8n{G9m5AeR~_yl0%<7V@p ze+S(o2fSF$Z^$68yHJ56`dJXpDp+YiH~guGu1*L%jDcgy71u zbf?oP*4aPXj@@K3iG8S_PN%LY3U|3&-1T~O=kqygo>hmQ&*zbc{{Vb8n^{KvjPo`j zNFczGvh)hiN#FR0kEfsNG=?PSZvcefFbZ9ed_=;EnUuX*SXD)Wz_++ zbx>QMbylA)UFE?o2I*9XN5Ur@3}4h41r~ z%XN%h&TfeT@acTC^@A(wltQ;ClE*vJOr%L;HdKn6)e=ZzbPE0WX-p9@369y?s zt!*E;m~i7ZWEOI^V;iK;R*h?4F%eG^5=mDww!u@gm8!SQ>;U?VFa=h<0*EJS9i63R zG^Q3S=70*)V}P59Ygt|e=|=}}FLx{}<^a&HB>Zn+_j1Rw0*S!3(CL_S`+s4%{lvsR zaG&F{NJ4O9;hn&tQ6H%>u4Y-6Q%%!uw~GUlzBfvOmhgH-7|@@!u52_o4eIXY)H=dR pN&pF_*`f@Te*CoGn?CI2^cO&pd1ppV1iSzM002ovPDHLkV1n4@G${Z8 literal 0 HcmV?d00001