From adc21a724a17c518e5904271a535ece452e58566 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sat, 22 Feb 2014 18:54:06 +0800 Subject: [PATCH] Added new textures for detector and thermopile --- .../generator/thermopile/BlockThermopile.java | 1 - .../electrical/levitator/PartLevitator.java | 10 +-- .../electrical/tesla/BlockTesla.java | 8 +- .../logistic/belt/BlockDetector.java | 78 +++++------------- .../core/ResonantInduction.java | 3 +- .../languages/en_US.properties | 1 + .../textures/blocks/detector_front_green.png | Bin 0 -> 1553 bytes .../textures/blocks/detector_front_red.png | Bin 0 -> 1512 bytes .../textures/blocks/detector_green.png | Bin 4583 -> 0 bytes .../textures/blocks/detector_red.png | Bin 4494 -> 0 bytes .../textures/blocks/detector_side_green.png | Bin 0 -> 1154 bytes .../textures/blocks/detector_side_red.png | Bin 0 -> 1128 bytes .../textures/blocks/thermopile.png | Bin 0 -> 1406 bytes 13 files changed, 33 insertions(+), 68 deletions(-) create mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_front_green.png create mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_front_red.png delete mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_green.png delete mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_red.png create mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_side_green.png create mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/detector_side_red.png create mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/thermopile.png diff --git a/electrical/src/main/java/resonantinduction/electrical/generator/thermopile/BlockThermopile.java b/electrical/src/main/java/resonantinduction/electrical/generator/thermopile/BlockThermopile.java index f3420e7e..78ab86a4 100644 --- a/electrical/src/main/java/resonantinduction/electrical/generator/thermopile/BlockThermopile.java +++ b/electrical/src/main/java/resonantinduction/electrical/generator/thermopile/BlockThermopile.java @@ -11,7 +11,6 @@ public class BlockThermopile extends BlockTile public BlockThermopile(int id) { super(id, UniversalElectricity.machine); - setTextureName(Reference.PREFIX + "material_metal_top"); } @Override diff --git a/electrical/src/main/java/resonantinduction/electrical/levitator/PartLevitator.java b/electrical/src/main/java/resonantinduction/electrical/levitator/PartLevitator.java index 11080883..ab792efa 100644 --- a/electrical/src/main/java/resonantinduction/electrical/levitator/PartLevitator.java +++ b/electrical/src/main/java/resonantinduction/electrical/levitator/PartLevitator.java @@ -29,8 +29,8 @@ import resonantinduction.electrical.Electrical; import resonantinduction.electrical.tesla.TileTesla; import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.VectorWorld; -import calclavia.components.tool.ToolModeLink; import calclavia.lib.render.EnumColor; +import calclavia.lib.utility.LinkUtility; import calclavia.lib.utility.WrenchUtility; import calclavia.lib.utility.inventory.InventoryUtility; import codechicken.lib.data.MCDataInput; @@ -79,19 +79,19 @@ public class PartLevitator extends PartFace { if (WrenchUtility.isWrench(itemStack)) { - if (tryLink(ToolModeLink.getLink(itemStack), ToolModeLink.getSide(itemStack))) + if (tryLink(LinkUtility.getLink(itemStack), LinkUtility.getSide(itemStack))) { if (world().isRemote) player.addChatMessage("Successfully linked devices."); - ToolModeLink.clearLink(itemStack); + LinkUtility.clearLink(itemStack); } else { if (world().isRemote) player.addChatMessage("Marked link for device."); - ToolModeLink.setLink(itemStack, new VectorWorld(world(), x(), y(), z())); - ToolModeLink.setSide(itemStack, (byte) placementSide.ordinal()); + LinkUtility.setLink(itemStack, new VectorWorld(world(), x(), y(), z())); + LinkUtility.setSide(itemStack, (byte) placementSide.ordinal()); } return true; diff --git a/electrical/src/main/java/resonantinduction/electrical/tesla/BlockTesla.java b/electrical/src/main/java/resonantinduction/electrical/tesla/BlockTesla.java index 7424b66f..983a904e 100644 --- a/electrical/src/main/java/resonantinduction/electrical/tesla/BlockTesla.java +++ b/electrical/src/main/java/resonantinduction/electrical/tesla/BlockTesla.java @@ -14,9 +14,9 @@ import resonantinduction.core.Reference; import resonantinduction.core.render.RIBlockRenderingHandler; import universalelectricity.api.UniversalElectricity; import universalelectricity.api.vector.VectorWorld; -import calclavia.components.tool.ToolModeLink; import calclavia.lib.prefab.block.BlockSidedIO; import calclavia.lib.utility.LanguageUtility; +import calclavia.lib.utility.LinkUtility; import calclavia.lib.utility.WrenchUtility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -106,18 +106,18 @@ public class BlockTesla extends BlockSidedIO implements ITileEntityProvider if (WrenchUtility.isWrench(itemStack)) { - if (((TileTesla)tile).tryLink(ToolModeLink.getLink(itemStack))) + if (((TileTesla)tile).tryLink(LinkUtility.getLink(itemStack))) { if (world.isRemote) player.addChatMessage("Successfully linked devices."); - ToolModeLink.clearLink(itemStack); + LinkUtility.clearLink(itemStack); } else { if (world.isRemote) player.addChatMessage("Marked link for device."); - ToolModeLink.setLink(itemStack, new VectorWorld(world, x, y, z)); + LinkUtility.setLink(itemStack, new VectorWorld(world, x, y, z)); } return true; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java index 1f7e93cf..0ce1c111 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java @@ -19,8 +19,7 @@ import cpw.mods.fml.relauncher.SideOnly; /** @author Briman0094 */ public class BlockDetector extends BlockImprintable { - Icon eye_red; - Icon eye_green; + Icon front_red, front_green, side_green, side_red; public BlockDetector(int id) { @@ -28,47 +27,14 @@ public class BlockDetector extends BlockImprintable setTextureName(Reference.PREFIX + "material_metal_side"); } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) - { - int angle = MathHelper.floor_double((entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - int change = 2; - - switch (angle) - { - case 0: - change = ForgeDirection.NORTH.ordinal(); - break; - case 1: - change = ForgeDirection.EAST.ordinal(); - break; - case 2: - change = ForgeDirection.SOUTH.ordinal(); - break; - case 3: - change = ForgeDirection.WEST.ordinal(); - break; - } - - if (entity.rotationPitch < -70f) // up - { - change = ForgeDirection.DOWN.ordinal(); - } - if (entity.rotationPitch > 70f) // down - { - change = ForgeDirection.UP.ordinal(); - } - - world.setBlockMetadataWithNotify(x, y, z, change, 3); - } - @SideOnly(Side.CLIENT) @Override public void registerIcons(IconRegister iconReg) { - super.registerIcons(iconReg); - this.eye_green = iconReg.registerIcon(Reference.PREFIX + "detector_green"); - this.eye_red = iconReg.registerIcon(Reference.PREFIX + "detector_red"); + front_green = iconReg.registerIcon(Reference.PREFIX + "detector_front_green"); + front_red = iconReg.registerIcon(Reference.PREFIX + "detector_front_red"); + side_green = iconReg.registerIcon(Reference.PREFIX + "detector_side_green"); + side_red = iconReg.registerIcon(Reference.PREFIX + "detector_side_red"); super.registerIcons(iconReg); } @@ -76,24 +42,17 @@ public class BlockDetector extends BlockImprintable @SideOnly(Side.CLIENT) public Icon getBlockTexture(IBlockAccess iBlockAccess, int x, int y, int z, int side) { + boolean isInverted = false; + boolean isFront = false; TileEntity tileEntity = iBlockAccess.getBlockTileEntity(x, y, z); + if (tileEntity instanceof TileDetector) { - if (side == ForgeDirection.getOrientation(iBlockAccess.getBlockMetadata(x, y, z)).ordinal()) - { - if (((TileDetector) tileEntity).isInverted()) - { - return this.eye_red; - - } - else - { - return this.eye_green; - } - } + isFront = side == ((TileDetector) tileEntity).getDirection().ordinal(); + isInverted = ((TileDetector) tileEntity).isInverted(); } - return this.blockIcon; + return isInverted ? (isFront ? front_red : side_red) : (isFront ? front_green : side_green); } @Override @@ -102,17 +61,24 @@ public class BlockDetector extends BlockImprintable { if (side == ForgeDirection.SOUTH.ordinal()) { - return this.eye_green; + return front_green; } - return this.blockIcon; + return side_green; } @Override public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) { - world.setBlockMetadataWithNotify(x, y, z, side, 3); - return true; + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileDetector) + { + ((TileDetector) tileEntity).toggleInversion(); + return true; + } + + return false; } @Override diff --git a/src/main/java/resonantinduction/core/ResonantInduction.java b/src/main/java/resonantinduction/core/ResonantInduction.java index 7e6311a2..679fa648 100644 --- a/src/main/java/resonantinduction/core/ResonantInduction.java +++ b/src/main/java/resonantinduction/core/ResonantInduction.java @@ -21,13 +21,13 @@ import resonantinduction.core.resource.TileMaterial; import resonantinduction.core.resource.fluid.TileFluidMixture; import resonantinduction.core.resource.item.ItemOreResource; import calclavia.components.tool.ToolMode; -import calclavia.components.tool.ToolModeLink; import calclavia.lib.content.ContentRegistry; import calclavia.lib.network.PacketAnnotation; import calclavia.lib.network.PacketHandler; import calclavia.lib.network.PacketTile; import calclavia.lib.prefab.item.ItemBlockMetadata; import calclavia.lib.utility.LanguageUtility; +import calclavia.lib.utility.LinkUtility; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -92,7 +92,6 @@ public class ResonantInduction ResonantInduction.LOGGER.setParent(FMLLog.getLogger()); NetworkRegistry.instance().registerGuiHandler(this, proxy); Modstats.instance().getReporter().registerMod(this); - ToolMode.REGISTRY.add(new ToolModeLink()); Settings.load(); diff --git a/src/main/resources/assets/resonantinduction/languages/en_US.properties b/src/main/resources/assets/resonantinduction/languages/en_US.properties index fa876aa7..2a92234a 100644 --- a/src/main/resources/assets/resonantinduction/languages/en_US.properties +++ b/src/main/resources/assets/resonantinduction/languages/en_US.properties @@ -75,6 +75,7 @@ tile.resonantinduction\:grate.name=Grate tile.resonantinduction\:conveyorBelt.name=Conveyor Belt tile.resonantinduction\:tank.name=Tank tile.resonantinduction\:detector.name=Detector +tile.resonantinduction\:detector.tooltip=Outputs a Redstone signal upon item detection. Wrench to invert imprint filter. tile.resonantinduction\:manipulator.name=Manipulator tile.resonantinduction\:rejector.name=Rejector diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/detector_front_green.png b/src/main/resources/assets/resonantinduction/textures/blocks/detector_front_green.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb53711271016570352869ec2d80ab516088790 GIT binary patch literal 1553 zcmV+s2JZQZP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000GmNkl_ihIe2A><|*eJW5S}W&S(Y-7UhR`kty&=dU`IP6x4A z%vxJpt)`~t1=ZKrTU}k9H8wVe-;RzB>+bHhwzf9s8yXryYH4Y48GGoU3$OFwMe(tT zZFgXJc-ZOw{@&Ks)=u%A=3%psK3MIy*b9si`ScAUqIjWUSeT zC)Dum?d=|JzTzQt2tP96!9$7o*mehWLljn5S3NWkYhoWRsJVwy>~Zo12>si0t6tz_zxwYTS7>YlxQ^Q-;w`_DebD75_ie9Owpa>~riwCwEc zkk81-u)MrHD<~+iqM{okTz^!Swk&zLn(a}-= zj*X4k`1rW*;RL#*Ar+1W5%u9+zz=PrQOZGN5LJrjH#avP+T!A3H~QfhfxU{;>u=)p zb(}sAEG*(kx%qF+Gp_;%mkKu^?duR&F6Zc z7->QDNCAww@Em{ z#}+M$ZLa}6uK?-2rdR)o(9!&Ws3E?Zs;YkdA%Pb@>#z+8gB}JvmjenDq+vn?xaGh7 zCF3lFAvp>OU;mUm1^P2WVE~4L3WU1g3(r1!IE2G;8bfkeUkxDi`NFdnzKRgr{u~oJ zgyeNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000G7Nkl{qh2|;GeZ%g4n6VeP$s+6BDpnPXok%8=uA`&F z)z{ajpsA_JH8wW7mX?-i?C$P%eSLkdv$NCW=H})I?d|Qh#vVH8BI|qjLVj#w+Z-4h z8#6pTJ-N-z%}8d>TAVyOIvVK@4-Xqcd2nzrk_QF`43cpWm;((B4Q^y)#1vj%U)|#3 zV)OxX)|mJA_eV11LqkI;`WTg*zK;w-8GURgYHMp@Utd9WRT8}ZF4{;L}6oN!$Jd?v&LLu6I2g?0|=~Z6d#U-GRE85+WvJQ z4B5iMf~5p7C)bkMUtL{wGcz-8d3o9G?CcmJYsbgOZg+Rr&CSi(H>w*rG#9^QbD*xS z&OGkz?KOp^r6u!LVIs_cH9$0UTINJf5e!Ei3gA3WiC+$2JHa&}9OU-y?k>t1IcJSM z?Q`Pw^>ufCer{yo=H|xj?d=&ckzgLyhvx8!9|t)ww(S-mVD$O<*@$#9jp6CYc{mRv z0tW^qEB8ba2gJ`BPT4J>i6|tT=;-Lknnq=1rK_o_v8KVP=jZ3mdvXZKx1s*JpYO7=vLfIF zkOS-kIf&D7Jn+k&IY1?<&`==Egzfvc&+hA&kFL79+SZ8xr{=nikB=KBCMIm0oSbx1 zQ&YBw6X=qLI36`3>cegUKU@>FQa)r2P^EZ&e}8YGEh{VgY1E%+%7ZZl-Wj3+sDX4I z@e_WoC3|)Y!W!7x+KOa>!YL^!u?TR|KfJLkk4uk3k28z|?|{;Cd3l+^lg@9qfJ)Wt zg~I;+zU4@FpKzU?o<_MP0&l#rBae3;7ape=_h1h_(!e)d@338qA6rBK+XdDE)*T!iWHb=gxZ?mLIDo;K ze@4LC^z^hjN>9LnbRO~RZ7>H2177lIQ0;Mzh^9gjLQFacHI4{G1>@{d0~Hk&R=DXr z;#XuX1r(Yd9&*HoaSa6HDnx35IpJoVd(So1RV^lA=#WdU6i@T@^|d|2 zR5-64>kkhP89d_07FQJ8Rs(uoA<}!zUHvbhqy7P?Ax3poRloj_Ad8=QbPWlE9tJ#@ z0}2yRGa&+;^8fyl@h!lR90lUnKP5|n{)|u znYs8?gxI#{n9#9EUT0@#BV)|fq#*v)zhr!aK7d0}6hF?3H{~A@3V6tzM!}pl?f))9 zzBt+b5mBXTjfaPac72#rILuko2jLz$Wdy9T&nO*a@#*_?8QUpu0bPp!ehMFR)|itL z$;zqpnZqGjArARMSvLmT34IL6DV3^clsRh@62&N)0>X&&;otzF9P%NKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000LPNklY|Ir$Anp1FJ%x3V+4lt+N(EO?;Im&+SoP&iq@)e#))kk=1>La z9E@XdJ`T=x zW{@$MIfy)&BdLnD<6P}nwJ-n(6-X$qthA6yt%O~UY#|l_oh0TZTvfE=aS-XWCR9#! zQLz**W>GbXOe$YU%L@E&V63<=)_k&-fh5XTJMXuRI8H1VVyzji%P2%e!@Qst(~Bag z1%D>5{p1V$_Upf8w3DL1_^+3z^Tr?E;G>`ZWw$@PJfTV^|Wuy|Db5Q5RVlqZBGH6%um%HH808pqF zA=i)rYfdqtPvV&5C|bXDeD54G_N=AfeWzlvetqQn(Cbi-g7bgF&R3v*eGyefA}Aw( zT}k+ztsLvMx}c&MGa-Y_B%-iBD2Y;1^~u-uzR*L9fciJeU-#ll?h*nkFeRvvmT*=c zJaQ5tyg5b*t00%gE)|;wmaC7fK2-^p7ci_ql`x7&1jopQNUZnTWN;ouYqx7=6_W{a zRCYlr+U)%B-5>I!Z~d6pZm$4(NzfM&pW=yM{P7pOnQwx0mCjZoaj9k&>_+5?B_9%JObCY=Jy6}uaK}T z*5&uC`)VDnK)jF&HzI;Li#f(c2Q8N*Azz&|BWP`d44SkKCXX?QScb%`$V{61a=7JW zb0p}!v$^5Dfr}W+lyq}K#h8=h@xZK6nQQvChEd3jN+=s}o>UC5;3ZD4zIq2ONj7g_ zPRwAAlaU88C-T)!k%i-Iy|HbbzAqn{m6++}Ac_K2AQ@gpCNLAjh)8_jFp1{9Gmb&Y zu@uR3##1t8agIS%G9&n0eg@PpJ1zFDqu!Qz2`DAU$HgSZ_#^5sBr3ecv}^aGXix zgb42UPL^NtR6NdEd)wuGS@`puY}-0bH_7<@oA3O`V6kS!%nT}@-R~uh7tTBX@!KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000KLNkl~ffRT_dz!4sZ2jUsvCHxE^4sbwN z7#92wFSg|MeluN_nH;LWZ@rR{kPq}>rl+UXnH?1o8Koyro)mzYVJ0$*^?RM4&nIrT zo%=&t-`loPKxJVrnl}KditF`CRdG66?r(>AkV< zlWl8c6=R>6=}WKQ7dxLf0LBP1^ObA&$Mw3ua_#(0AR|3TG4!o7$p zEQP!w3Iwx6#-J6*j3{9eE|>}CA|{lA?xF;hMpO_ZXw5+d1>gVfcK~Q+#`(M<;IzF) zYeq>lce0A+PH*dc&V-y)L1D;5Z;sp`!K`Sl(YH>NF>gDxhLl(tu?I76Jp1HdY+J+K zX$WQ{xZ`e|&Sy^B1zDlyY}P3ihKNd{lAMWAL_zn4xzS5hGg@z4E@wt1HG=1#y&W~_!c<(e7Nn$urg%AdKbCOAuQ)QTSio#87r;czO z7)snlL~@-I0p^X2z)VQCNEkCogm>rhGbXOe&N0j;rt& zz*u$f&v|(+14)!GIiJoOaoe%A{J0y_oqM6_5oEG zUw))Je|_sMe*O8skIt4+t&d_VX@1nK!XlI2ozx)bM3t08)`A-)^~(GHk4LSgq6F43 z?3go2_Epo&Xu0%6?vvZT)BA-)s6=H@wTge^Z-3|e1wWD4>dPCNz#psl`FMq-L@oR@6)hh+# z?vB5`{Wkf|J0KmY$5tb8xMmidY`LU_ogZBoV?ZTtpjuK9D|AT4SEJ!-9ABuW6*&W= z*uqy$psB>=@rCyBGIOy8iBy;hlSsk)Kl%|oeac^c^P5*psItgfT(MgBfAHfs;p2Z| z2VW>Lab>0WC8bw?W$+Hv@M}g(Rfqu_oiUA3lW*D5q2phO9N^zhJsLY&9k= zc1vK#|Gu(d0m_%$Y4>rt2Kc4GgsS11q&YOm$~B5*kV&YhXy}-rX?AeF$P!jUrh`Wv zmmLXWNqyKnQnF~zpFe-FQLJck(u{IPI#H=bN?WAT5yvYMs*sAZduv^skk!!+xP*I$ zvIkeJFs|2qWy01Pk%33x+SdHu!0j;!D`Fja&$=(^Xcgk#D%^+&<}BtI2OYFhl7xII zX-3f6c948!#TF6FF_}3rtK|vqE8&)t&5@w@&gO>q1}-Imv)IR=Dwz>{Grtb%%d8|$TSvXE z@Dfl;Zr3|*3AtZUEm!T{z#VKY(QO}KhDn^yXPTKG1S&pw_8#q1K#dVWQ?mI+RPp}) z8CD{i;F`3qhuvxx5cRO(kb%)q2FQpEvL^C&5LfK`MAF(Dp3fUU_}&};_s!|DVi|vV z=Yv-Ui~gta_R@Sm{qz$gqxZ(^uYa58pWpG(M;}oIee1{mz#baBCz~Wrr_;l8 gPUjPMcX#|}05o}L1pE&>=>Px#07*qoM6N<$f{A-_wg3PC diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/detector_side_green.png b/src/main/resources/assets/resonantinduction/textures/blocks/detector_side_green.png new file mode 100644 index 0000000000000000000000000000000000000000..eb279dfc741253da7755490064e849cc5560b5ea GIT binary patch literal 1154 zcmV-|1bzF7P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000B=Nklgp;30|Qat-`^iGOg&TI*Vk8idwWZFcXt?ncz8J4hK7cs%>VfD zWAufiuh{YN@u;gtMn=lyM@P&tt|WUjcM#4fT;%T zZfb>gpwl|5BCj{;10L2UYpuw2C@y&snQ@n6UX)00DE_UM$ne$w~Owzk2}u@z1LK^!FD7*h~Yh;$b#wz$sa2bXuvjJc7>8&m*U6Yis4* zuT}Z**S~=B+Nc4OV9nyS!EDq3jL?7-)Cn9M97HDqG6NvY04YN4Nq}Bj#cPKN+mUT7 z!Zi5`SYrxO1FvZ?Ve{#Y@M9bLX(aIZ^XDg>o8`QjJ=YF13FKJ+A&@CJIy!oGpEoO8 z{(4F*uNl_MFkvq&EIg(lb^!vJ7r}RTcV%a1=LukA&YNi<%Vwu8%Lao9yG|fhfC!U- zj@Q@MWp8gU{MR&?u=&Qa3qpi`uuKA%mzSa3dgqsFpwYy`gsp5WkCfPkxpXRh-Pvbn zXD#o7=W-0JS-dkJCTy#17g+u{h%l-Xkf+1L!pjkZ4z=WM+4Gs=|5g`qz z%Mls_$Z3{a#lwVM-*NFCsIP$U{{DX1*w_d_0x|<2EYEf`N&+m)t>R(A7N75dI0xiG zWxfZFkB`gx`g-`UX)s~)O%{Q86M7XV0m~%F_iI>UBVgBr2XKsAs;vG0l;u4C&Sg7H*vgrLI0xzk7DTKU`=yV7vE$Dv z0&Xd+J<+|8_?XwPT{BZBHfLw%z_RRw6GLpU;P7FJu?@wuxC@-=%(?vbf6u4NKOQBS UVlVv3i~s-t07*qoM6N<$g5zK$r~m)} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/detector_side_red.png b/src/main/resources/assets/resonantinduction/textures/blocks/detector_side_red.png new file mode 100644 index 0000000000000000000000000000000000000000..48131355a7c84cb7313b561f63b8bdb7b12c9a52 GIT binary patch literal 1128 zcmV-u1eg1XP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000BmNklh9{*tGiYYrS$|pPikJzHsyvJ3T!e zb;ZQQL^(G%SFWtAlzbi6*Vn^zoSd92XJ%%i>^n6zRj#eAMcH>@VIjT@sQ!TU)waC6 z9CgM>+@+{K&Z1GlGd}u(UeTe}7<>jT^ z-`@`(;Exu_A1(W>WxuveowkpxQ#?%Ad@F!}L#g06gfcId>H7LQeC&T|f&AIBzy1XU z*rb6@@i6Nea7q>$omMI>kD$A|yU6MG_I3c?we0tny|heT>l!c#))cP|W?cg?LIYAz zC2)Rz9-Rot41h2LqzJVq0ea~auN@|AN4BvD)8q?a^%SHAzS3aA=F=PD$2Rm+CvbXt z+Sa)#=S}ueJIo}IWBrFfrr`4O^22@JRJQ!plvrLftd?QIUR_;%PeJSg1TrszUteF# z!^6Wiz~PpQFAx_&EHpG?=jY#xm+uPfYcfm(F2G$hs%!divYTE^tKMo>{ss!Ze z;^Ly?U7$}r#|SjV(+o`5Io9at=szN)0hM_jV|jFR6h6SOx(i^!<|BYqTt?ml$x7q> z{e9eAeC)sKE`SMJoUyDL9ki{0ucZ=98=dZg)Q+5Hxl=q$*wq~u?}6$H_@14emAkvU z0Z2e*0EFe)ZbnIfWw}#4OxWV{JrL)BJgCg~z}3}NxwEqq{#P1I*nE>kAl`&t#Yw<2 z3G)3Jme>f`H6g+(0cZ7hn6az?{k;=N4R|&Y3zfR07_};E|376p&%blo4imO=rXbFN zDglOF)v_+zt1*0n%5wVE`g*_g5ioZAIYq!Ng|#QT7ZM-y>a}ZT>cr;k%p6#jop54^ u4Hg_eOfj~hcouhoGo3k?zyI&~eEBzftda86y literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/thermopile.png b/src/main/resources/assets/resonantinduction/textures/blocks/thermopile.png new file mode 100644 index 0000000000000000000000000000000000000000..a40786d429416b69e63abdcbce87c4bc102d4ce9 GIT binary patch literal 1406 zcmV-^1%djBP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A000E-Nklf3Z z-x;dve?wzqqaj5_MV6nRpOk`v0xK&k(|BoVsn#HjBaD}nlvr_bu@x2;O6XTsR%))I zqCz_T`ucj=f`ctq5Cnx8LFcz;#oqtZ;mOgv3 zw+O(L3D~W!uG-Mhkk~n6!umNn;IYTdg9$b|1Q;X5BGBC2ECL%F8?Pb|AeGcm;KvE{ z^z>)}?UxY8b^;V>;0FTahazH8Utgd4E)?SD=&8aym|&yhEG?%ZkOv6Biu^cBsx&Pv z&C=7;Eh8f%nOpSd#A_k8#aoX6a}eM}aq2{X&78o}(vlWam;hvFXIoZQmgdku_5}Oz zO|XOZV83+*`|HPGzkd6mfBi82HfW8nbz8gz6Kv*)HqNL9nB-hSfd1Orn)UYfs*e|$ znVAxFK#_|d5*r=X2fO($(f{R5qDB7A7EG||69EWtDFr%QLY^1GG&MD){-<*LsTz20 zJ(#IAz%3b=FMth!gsEiNwF+1Z(GZ*SZB`np|SUfR*ok;XSSH|_TJ z)~>IwlPN%O5CJo_2G~P2Knh|4qoboTB8=BxJ?51;#@U>fF@$lfI+uz@}t*tGs#Rgk2 z(7^lpHrN?>?+SbdB?{FI0QI$qN5?ChwG1<&!w31EY*69Cf*_+I}Y;9(vg zA6I?^@_n$a2XD~HKWlb(ccstI&r3+h{r!E?p73IWEg0xvGS}YTo=kyG0R%iR01)2( z{(gaC{QJ9L=N&=%#l?lzP=x4{laqR6$gvaf=wO4b695zJn1CWc5jp`3mzS4qaBxt4 z!uQAMV+zPWEw37FEO&QzYJCkh*m?@U1e-p4aSBv~{J`7^EG#V8^z^j)82|Zmu#dfo zB0M}iRIw3C>Vad(?Y6SAVpmsJ8Yeoe#Rgk2*aJ+kod6#xI);9n7^KC!nVFg7TX0(a zcntmcu?h2xA%qh$oG8C;vB4G$?tC!8Cfb|=!mo=6Mi@8&HW?cmQ(jXqqJx729YylI zx3{OF#B)E6b8~YlN+*Co7#uLc_Pxr>%M(RN4KV1>F)RlL2GoB^0n=*-0+7;U#P@)+ zViFH{x#$xVicd!2IF(T)&EjpNBI|0&09XyEuEumsDp#$J0o@2ZP6YTiJ>3blK z0PV=gh;?^&ivV8ulggZbBRnTw)UhoQ026HH{Chz60C`~0zXv8JCakNgOZ}G=Fu|se zvk=fXAz#H#fH1L$_DhIkLx4L#MHmy{B6$sAFCswwB?)*9@YzJMP^COl2-S+t{QuF( zx&NK>c`(67_Y~+JhzTIDi^a!$K3+qgf^yya@p!78_aVUE`f~~aUMX1fiOv@ieVCIg z<`Fz&jJ56^o&)AOHympyHn6~<4<>6khO9^Q7I3E{+{>^3_q@^m20+iFG?RI;?*IS* M07*qoM6N<$f|#9)w*UYD literal 0 HcmV?d00001