From 9b342735724402003b87ecc5d944da47f5f1f5b3 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Wed, 20 Mar 2013 16:28:45 -0400 Subject: [PATCH] v5.4.2 Beta #4 *Unique sounds for Smelting Factory depending on it's operation. *Energized Smelter -- a furnace that runs on energy. *Better, more efficient sound management. *Steel Casing for machines. *Different textures for Steel and Osmium blocks. --- .../mods/mekanism/gui/GuiEnergizedSmelter.png | Bin 0 -> 5152 bytes .../sound/{Factory.ogg => Smelter.ogg} | Bin .../blocks/EnergizedSmelterFrontOff.png | Bin 0 -> 1872 bytes .../blocks/EnergizedSmelterFrontOn.png | Bin 0 -> 3977 bytes .../blocks/EnergizedSmelterFrontOn.txt | 0 .../mekanism/textures/blocks/OsmiumBlock.png | Bin 1267 -> 1510 bytes .../mekanism/textures/blocks/SteelBlock.png | Bin 1092 -> 1413 bytes .../mekanism/textures/blocks/SteelCasing.png | Bin 0 -> 1267 bytes src/minecraft/mekanism/api/IFactory.java | 15 +++++-- .../mekanism/client/ClientProxy.java | 2 + .../mekanism/client/GuiEnergizedSmelter.java | 12 ++++++ src/minecraft/mekanism/client/IHasSound.java | 10 +++++ .../mekanism/client/SoundHandler.java | 17 +++++++- src/minecraft/mekanism/common/BlockBasic.java | 3 ++ .../mekanism/common/BlockMachine.java | 38 ++++++++++++++--- .../mekanism/common/CommonProxy.java | 2 + .../mekanism/common/ItemBlockBasic.java | 4 ++ .../mekanism/common/ItemBlockMachine.java | 4 ++ src/minecraft/mekanism/common/Mekanism.java | 35 +++++++++------ .../common/TileEntityBasicMachine.java | 9 +++- .../common/TileEntityEnergizedSmelter.java | 40 ++++++++++++++++++ .../mekanism/common/TileEntityFactory.java | 11 ++++- .../common/TileEntityMetallurgicInfuser.java | 9 +++- .../generators/common/MekanismGenerators.java | 4 +- .../common/TileEntityGenerator.java | 9 +++- 25 files changed, 194 insertions(+), 30 deletions(-) create mode 100755 bin/minecraft/mods/mekanism/gui/GuiEnergizedSmelter.png rename bin/minecraft/mods/mekanism/sound/{Factory.ogg => Smelter.ogg} (100%) create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOff.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.txt mode change 100755 => 100644 bin/minecraft/mods/mekanism/textures/blocks/OsmiumBlock.png mode change 100755 => 100644 bin/minecraft/mods/mekanism/textures/blocks/SteelBlock.png create mode 100755 bin/minecraft/mods/mekanism/textures/blocks/SteelCasing.png create mode 100644 src/minecraft/mekanism/client/GuiEnergizedSmelter.java create mode 100644 src/minecraft/mekanism/client/IHasSound.java create mode 100644 src/minecraft/mekanism/common/TileEntityEnergizedSmelter.java diff --git a/bin/minecraft/mods/mekanism/gui/GuiEnergizedSmelter.png b/bin/minecraft/mods/mekanism/gui/GuiEnergizedSmelter.png new file mode 100755 index 0000000000000000000000000000000000000000..3fe5e07d0e9b027962061d9287c54503acc2b74a GIT binary patch literal 5152 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 literal 0 HcmV?d00001 diff --git a/bin/minecraft/mods/mekanism/sound/Factory.ogg b/bin/minecraft/mods/mekanism/sound/Smelter.ogg similarity index 100% rename from bin/minecraft/mods/mekanism/sound/Factory.ogg rename to bin/minecraft/mods/mekanism/sound/Smelter.ogg diff --git a/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOff.png b/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOff.png new file mode 100644 index 0000000000000000000000000000000000000000..1878235740dacd9985d0dd1a2b2a644dde287e15 GIT binary patch literal 1872 zcmV-W2e0^vP)WFU8GbZ8()Nlj2>E@cM*00y*4L_t(o!@ZZwiyg-m z#($?C-F@eAXM{3iNu$V;A`9{YTLj`LgplAx7G7l+Lck$}K>n31L&(P9rO7Ir*dh-Q zA_*bb*kCUbJuF#Rl1Cb89@4$H``)fPl|^-5jS@SUXh=arQ#5@}o%+7-d`FHPIg$X3 zF^ILK7y;(*R0MoiAr9?^z z2XOY>3xp7G&JkuaTv3n|LOVsQ{lxt~SW#5~#I{9MpV;fytZAOu>;HA-op*88duC0; ztq(tf1W5i!qvouw`Q&|LKtM$1`^Fk#$Q86*MF5f}RP~9y&!0L0fU_bLRYlT-t31|w zP{lZhF@_KV-sgP{0aYc&h=`C+qR4z?BI$5 zYb`DzXowhVu-;RaCDYv#5Ujx z%d}MTM)(-|Z~A|hhIC`D0{1lmbJY+^bKEH5muSPnS6b{K&B4|edS;q}*l!xz7N zmh<2J7Jt3?XU6yM0tSt3#z0-ySno4HRQSoyf6A|a`6^GlzVq$#y!g#;;JxGH+napl zOJC*X@4w82-@Zu@GS&cRoMT!y9jz2Andi5!U;CefZ=61Zi17PAUSMf;nWIP7xpDIv zCr_Rx5dqu9G#C+~C@Vsn5#F|egIKO87z{G^OTPdJp@B9;LK`T`3Q$Ztoz794g@glJ zFTM0VVyh&HeC^!Vi7B8#=i1RxJp;lRgNR^y#d*rrPN&2+aOltqlS$3Wp&_m^7?U53 zZI)tH#d?nzArXmsFjs&iCe4J&q{ez-cYBYf$;cNYSnqQ(s`^+i6Wrf=a3Jwjp{OeA z@r2N{6oqHwnIl+hNSeBD6cb}4wk-%)vDnfdOad`-;f>!RA`FLzxpe6w$r_a0S7O_e zV#IjwG1g~o7x>3}?;l74Z@u+4DFj3;TX#1>6MuU14|wY`)~xR^&?#XI5myM3%$&B~0j0ojmfzjR$ZHO2#s77MY z4on~jNH!?3>y!Y8*VoW6!wwwBjvwcr?_Fl=<4w}Pk<9f*0>CaUlO|(^!(|4`i&Rxb zSq@kzOWG81T>}9Ks)SiqGuJttHbx5PP>rONz!>6GxpDO-TX#1z9*%8r@57H!&3fRf zs-kT(J*>6Fg++F^ci7$D=}sev70?6*41xj%5NmRS0zwG6%O!Ffp1YU?Dqvv!xwDM- z_HwdaOeZ1?7MA7)BepH4o__&jZEo_ttBH|mUGs2zo2Av&?1(z=_#gc1yrYIdIT)a- zgxQSAXoQH+$GqD#S%}(MgRutV9L@GFm*0LT|0^ZVo_ikW9L;3HpeR^Aae@#6h4-Ht zeDBdCQjEBwz}S3k(-^VVGL6~%w6i9=ss2t=O4%Yg$E}qsh=(Kh&fuJ5TGy-&hrIi@ zzkenMoIC#_yAL0Ba@-=FP3v25+ShPgfA<lJs#(TIv)z)Mx)U@o8C|!-aU>Vd#rcF z7^ypI^%?8j`N6EGaQE!j(HJA%d)l^Tytl{xYR{S`_XF3t+5N-GFYespjhi=6RR)WT zr0`^e5}@4|l#Uf`vdO+RkRV*%*VWKDOqQ$^5``Q`*z8Pvo^PJck%VQe|4#Y>mehgOZKYX9&P{ zcmK2Q+2{iI`wPP*mR47pj7F4$0mhh2@ot^~aK6k_m$i0ILlNPblP6GBGz4Z%!`{{w z^?1yYlPB5U+V?*Zd19nxizf@NLil0000< KMNUMnLSTXjre~i3 literal 0 HcmV?d00001 diff --git a/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.png b/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.png new file mode 100644 index 0000000000000000000000000000000000000000..43daa3fc4d2917857dec12577e26c6cc53d763a0 GIT binary patch literal 3977 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 literal 0 HcmV?d00001 diff --git a/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.txt b/bin/minecraft/mods/mekanism/textures/blocks/EnergizedSmelterFrontOn.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/minecraft/mods/mekanism/textures/blocks/OsmiumBlock.png b/bin/minecraft/mods/mekanism/textures/blocks/OsmiumBlock.png old mode 100755 new mode 100644 index 9e8131df41345ec254ec3e3198a8b672bd332c75..bab6ea716495945146c8311efbbde8d7ac02ce88 GIT binary patch delta 1492 zcmV;_1uOdV3FZrsB!47nLqkwWLqi}?a&Km7Y-IodI1zQlu6?AXrC- zip8&0Q(L(k8m-0#Nt31RN*1N**eWFCIyZ@_8wcCzwyIBifj0*H0YKRU4@f*A4F+O+ z+4jJ+NmGX^s!2$D=)?~pChY}P;k$NXCsV{+_4>;>-#OX-eVh__(Z?q}P9Z-Dj?gOW6|D%o z20XmjW-qs4Uw;D_$dln!ZX3EHW|6b4l3{Ys;V+MIw=w?@E}M1q>|KLc`<$h@W4I5A z-YfQ0zKK8Awe%eDOR!(Bxk+Jv1^AEp(tHAVA5rwFl6`dE=SN>(trXq{-UWNnaHk7R z`)YMDdmI?C(e)+kn8+hI*L7zSv!oY*?^gJ<*kkCCsDH>)Y2abt!AgCqnO~Z5R_27= z%d=XU%mO2iWWT4) zbyOBQPEhjvKz%5PQO?=#8v4zT{)U>cODpsvPk+!cG+XTxAO{m@bvM#Jr)z6J><&E2 z2D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7qW-CFs9&fT)ZaU5gc&=gBz-Da zCx3k}{Y;8Pod(y&RKbhpuXfcI6;Cqz3RHyZ!0HyS%%BL5cAW%EB-0C9M18!Hn4 z00DhTL_t(o3Ds9iQo=wGP0UOn5kDJmW|cb+;03&lhwuuX!YU77xsbAgRKm=JpiZYT z-4KXqDlH58GavfB*BLV5-pfIuO# z>zga`^YbYQgQr&-2bEz72#Y-5nm747$;)9tjZ#wCUgTu2k!$6}baQ{g2jeS`{5Cc6U=6~IfL|0!rz|K+2`JZ~Im%#nX<4#@fVKVqQP zcvU~gr3KA-cOx^XHAie&Z%xQ$Kt)hn7={3OoF$RK@+O1^Y z|4Fp^dgcs`a4PwqAF7e1R-e}CizH|D(|%}nd!aSxhwk7kG<#iZUoMBCdoi$ntlfqWq4k+>^v|r{8hk0%ny#YHSN&SIU5&AhR`0Y!#((0;?JAtl=izd39mdy- zFulJGqu4*6O~PnCi}SbTcU8^voyFgiRg{~|!f3S&quV@8*Xxi!KZTp;UAX)D6x&P4 z?>Awwxik6ceI7<}ExN$23>cZ>+=LKj5sOiRGL)hm5WoNhe3lqxx}4FriMScfvq?5v z82}CWZfnA7a({!T(7uu0s(;!wS=Q3WEw~4zxC^&6`=>@Vv#IS$^ewoKWd!V+)1Zn{o;3{knMFVy)u9=*cm~jK`$sH zhF8-__hnda)+YC`fBB%$jEG~?n><`^H(~Yk7_J{5!hhrU*GhK0n1|uw%0OiR*f9p$ z=JQcr_@q)E{XCE3jnj@PX3Q&816z(zet#ZZOZ>e2_}4JN0`n~fwmVA?CJDByyPG#7O8NwfJNOcua)Ce|_FpSQ#h`)5 zfLz2Fdj0vsFu(%SVxW6|QCV*lFYb!G#|ZCp?VOlEq5Lib0B4TilK}!B=SvGt*a1U$ zU}xkgMdIf9+47P!LV@?WXToA70#Sryl)x+6-G9y{tE>P6EHJ^&q7VyPc2Fu^VuxLs7I zm4B=jmH3f908#`H2Bc~Esdf}DW>afkRt!nE6{m=443G*M@VTo)W||i#9tPmkwezXu zL?>f_qmTI5yuO%=e8$+ia>GR$MxTfhQIw_~6rJmTm|RQ^_>;F`YQXQ_hA9)YgKtCg z*I)NG)N}dJQ~FnLLl)yhd!qAHKlCb@zJm)sX-I002ov JPDHLkV1kljaY6t9 diff --git a/bin/minecraft/mods/mekanism/textures/blocks/SteelBlock.png b/bin/minecraft/mods/mekanism/textures/blocks/SteelBlock.png old mode 100755 new mode 100644 index aee67ed13ac5e8775ac5b54f97a4def221a97f58..0c5f6332dc8681e226fb7106e8b3bb80a1eb7eba GIT binary patch delta 1394 zcmV-&1&#W|2!#ufB!47nLqkwWLqi}?a&Km7Y-IodI1zQlu6?AXrC- zip8&0Q(L(k8m-0#Nt31RN*1N**eWFCIyZ@_8wcCzwyIBifj0*H0YKRU4@f*A4F+O+ z+4jJ+NmGX^s!2$D=)?~pChY}P;k$NXCsV{+_4>;>-#OX-eVh__(Z?q}P9Z-Dj?gOW6|D%o z20XmjW-qs4Uw;D_$dln!ZX3EHW|6b4l3{Ys;V+MIw=w?@E}M1q>|KLc`<$h@W4I5A z-YfQ0zKK8Awe%eDOR!(Bxk+Jv1^AEp(tHAVA5rwFl6`dE=SN>(trXq{-UWNnaHk7R z`)YMDdmI?C(e)+kn8+hI*L7zSv!oY*?^gJ<*kkCCsDH>)Y2abt!AgCqnO~Z5R_27= z%d=XU%mO2iWWT4) zbyOBQPEhjvKz%5PQO?=#8v4zT{)U>cODpsvPk+!cG+XTxAO{m@bvM#Jr)z6J><&E2 z2D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7qW-CFs9&fT)ZaU5gc&=gBz-Da zCx3k}{Y;8Pod(y&RKbhpuXfcI6;Cqz3RHyZ!0HyS%%BL5cAW%EB-0C9M18!Hn4 z00A6HL_t(o3B{L54udcZMQPPTa14&bMY#`K*dVcK`H^fH(u~+43z87vJr5gR!!Ufi z2ge8Od7d9p==;8N0-%rM7?fC+C4YD(57u>++vs|lCU^dhK6M;gz$G&(U=4=|mq1$O zg7HpC+9iY5o&PC1?$Y1ZN-x*NT`Tr}>ltx_OpD)0{u0j~+2s^TRCCWL7TQfqKXm}DRa z+#~}8iOs4R$c=p4Hg;0$ff_h0)C4%B!i9=JZS-)x)dRU;fMngVr%{~&4LBsKGLQ=o zMNQFTF3x}^yjVaR4goF!{j1?-%i#p@m-^KB0bkF9s@;z@g8%>k07*qoM6N<$g5O7+ AVE_OC delta 1071 zcmV+~1kn413&aSJB!3G@L_t(|+U1wYQXDZ1hWky}p@14Vg`ESHAtc4Vgms3!fcJj^ zhtHL-BSas#=b*ORmi5cpY&TO=Q)PO3y7U$n%D3gE+J_bw7t8$oeC>~ojg^s+kuozg zQ^$L~UhOka3(d~XwrlOv+8-YuZ^u{%O-xLbhQ%i*CuMJMuYVjJ9aTCzJ1d8Whh=wn zx9sol*Lhp#X-`j2%klAX<>Q||b2m3PWiS|&;c!^#^767=TwGLsWg`phRsjZ?gb8LA zDF9&zWgZZ~0HqIqR4OV<3!k#xAe(I!zzo;d*Ogh)l(+@5AIE9oWo;dMcMI-8DDJ{- zjALrX>7y+CD1Q#&{sv)L0hL%?T`kMY%eCFu*r+YEwYAkMfKYj%&CSiWpLtana9Xgd z3mlA$DuKB$BW{83;o;$vK$XC(xDIz+U0s#O$H$fzH_!sA0&NT+9N*A)0srUc=haO5 zGYXUd*R;&-{Q6nx`T4p2E87i$!9U|w0S3_s1_m%&RDS|S{skA%U3ZN=Jv|jIYmhRI zI~Yf{7Oyd2bP|wjYiq5b><$D<`dwZXxV^vcTnq2(>ubdj??Viz!20@nn~p5he1hT* zT7pv-2x5E~)b1Q`Ecy2K)+*4(0BNH3qz=sFeJv=%!H0B%hzWPDiJ2eX-qtySPXz?W z+yo~IfPWz#*bO-f7@!CsjSwJswgd#9k!)r#=6u|_yk-UeZV>E7;dgg;RU;M&E`Unt zs;C5h6L47@WCIM03Y1Vvdb0yw`u+WZ`RaX;c9yg6G|Q-|p9QABsMQ zC%R*0Wu>jO)&T<>>?R)$mf|Qd?vi<06xjWnZqeuQV&YNGS`>JGd8ru8dH6N?c*Fu3 zT*0HGqo2|)yGTW2oiLpVrxvz5QXPGQW)bac7nmi7i=>Ij4=j+liICh-~UOp`g-OJjc_XYpC77`rB5C+1 z_0xW6c6*^U=!fp$EHryvYhNyhp?fi~ey!CAwd3Q^IO`YVAwwxik6ceI7<}ExN$23>cZ>+=LKj z5sOiRGL)hm5WoNhe3lqxx}4FriMScfvq?5v82}CWZfnA7a)YPPzLDOlf7&%!*3!o< zxCf=U3%51Kgjwxo$D^vqq)I#}X z1flKz`DU`Fn*c301O`})gPk#mMF^PxB8}b%1oP6EHJ^&q7VyPc2Fu^VuxLs7Im8=$(_>n#UQUnkNq-pu7b`&mVQ)^yU3`w^Y zr-*3`kO~^`xvN8FninS?2H?}R^Qq)SCu4x4kNDWUzL<-A#@M=Y!$lfKpNJAsl%^dN zqu7HBm@@+7U_`PCIAb@i^M@8qE(beHg96Im9i5Rr6f4#IZd8f^fgO#d^+V$da3Azp znigq!MfrU^-MmqUN^u&vo<+%Gn5C>s`z$RClvuCG7bIVjQFyRUxD4=F#2g#>Jh}*z zn3gJhSy~!pKw1sc-Iy`Yk9PKZpIgQ_cW?+%)+z5+h$4ora$sla;gFW%beGKgONN(K z9H}l4pxVIdWoKsr7|YGJI{dQqc!Yrz+*i0X?NS%XP;OG5HFnKysuS;%qj*2i@t>s^ z1l{3Mg}%I|m)AosN_Cuci%e=p{o`d`U4XLmigXAZR(vV;fFG)18AF~W`V=(XsQnc% zOD~D(*~D?M8$}eu3X9?!dJmT zm|RQ^_>;F`YQXQ_hA9)YgKtCg*I)NG)N}dJQ~FnLLl)yhd!qAHKlCb@zJm)sX-I002ovPDHLkV1l6oZ(INX literal 0 HcmV?d00001 diff --git a/src/minecraft/mekanism/api/IFactory.java b/src/minecraft/mekanism/api/IFactory.java index aa836a6c6..aeae1d863 100644 --- a/src/minecraft/mekanism/api/IFactory.java +++ b/src/minecraft/mekanism/api/IFactory.java @@ -30,11 +30,12 @@ public interface IFactory public static enum RecipeType { - SMELTING("Smelting"), - ENRICHING("Enriching"), - CRUSHING("Crushing"); + SMELTING("Smelting", "Smelter.ogg"), + ENRICHING("Enriching", "Chamber.ogg"), + CRUSHING("Crushing", "Crusher.ogg"); private String name; + private String sound; public ItemStack getCopiedOutput(ItemStack input, boolean stackDecrease) { @@ -66,9 +67,15 @@ public interface IFactory return name; } - private RecipeType(String s) + public String getSound() + { + return sound; + } + + private RecipeType(String s, String s1) { name = s; + sound = s1; } } } diff --git a/src/minecraft/mekanism/client/ClientProxy.java b/src/minecraft/mekanism/client/ClientProxy.java index 92300f03b..cb289fd71 100644 --- a/src/minecraft/mekanism/client/ClientProxy.java +++ b/src/minecraft/mekanism/client/ClientProxy.java @@ -151,6 +151,8 @@ public class ClientProxy extends CommonProxy } case 15: return new GuiPurificationChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity); + case 16: + return new GuiEnergizedSmelter(player.inventory, (TileEntityElectricMachine)tileEntity); } return null; } diff --git a/src/minecraft/mekanism/client/GuiEnergizedSmelter.java b/src/minecraft/mekanism/client/GuiEnergizedSmelter.java new file mode 100644 index 000000000..97e450373 --- /dev/null +++ b/src/minecraft/mekanism/client/GuiEnergizedSmelter.java @@ -0,0 +1,12 @@ +package mekanism.client; + +import mekanism.common.TileEntityElectricMachine; +import net.minecraft.entity.player.InventoryPlayer; + +public class GuiEnergizedSmelter extends GuiElectricMachine +{ + public GuiEnergizedSmelter(InventoryPlayer inventory, TileEntityElectricMachine tentity) + { + super(inventory, tentity); + } +} diff --git a/src/minecraft/mekanism/client/IHasSound.java b/src/minecraft/mekanism/client/IHasSound.java new file mode 100644 index 000000000..c593eb24b --- /dev/null +++ b/src/minecraft/mekanism/client/IHasSound.java @@ -0,0 +1,10 @@ +package mekanism.client; + +public interface IHasSound +{ + /** + * Gets the sound. + * @return sound + */ + public Sound getSound(); +} diff --git a/src/minecraft/mekanism/client/SoundHandler.java b/src/minecraft/mekanism/client/SoundHandler.java index bf4cb70ee..0ab6fa27f 100644 --- a/src/minecraft/mekanism/client/SoundHandler.java +++ b/src/minecraft/mekanism/client/SoundHandler.java @@ -53,8 +53,13 @@ public class SoundHandler TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getBlockTileEntity(sound.xCoord, sound.yCoord, sound.zCoord); - if(tileEntity != null && tileEntity instanceof IActiveState) + if(tileEntity != null && tileEntity instanceof IActiveState && tileEntity instanceof IHasSound) { + if(((IHasSound)tileEntity).getSound() != sound) + { + soundsToRemove.add(sound); + continue; + } if(((IActiveState)tileEntity).getActive() != sound.isPlaying) { if(((IActiveState)tileEntity).getActive()) @@ -66,9 +71,19 @@ public class SoundHandler } } } + else if(tileEntity == null) + { + soundsToRemove.add(sound); + } } } + for(Sound sound : soundsToRemove) + { + System.out.println("[Mekanism] Removed dead sound '" + sound.identifier + ".'"); + sound.remove(); + } + masterVolume = FMLClientHandler.instance().getClient().gameSettings.soundVolume; } } diff --git a/src/minecraft/mekanism/common/BlockBasic.java b/src/minecraft/mekanism/common/BlockBasic.java index 72ca65221..c5952b501 100644 --- a/src/minecraft/mekanism/common/BlockBasic.java +++ b/src/minecraft/mekanism/common/BlockBasic.java @@ -35,6 +35,7 @@ import net.minecraftforge.common.ForgeChunkManager; * 6: Control Panel * 7: Teleporter * 8: Teleporter Frame + * 9: Steel Casing * @author AidanBrady * */ @@ -61,6 +62,7 @@ public class BlockBasic extends Block icons[6] = register.func_94245_a("mekanism:ControlPanel"); icons[7] = register.func_94245_a("mekanism:Teleporter"); icons[8] = register.func_94245_a("mekanism:TeleporterFrame"); + icons[9] = register.func_94245_a("mekanism:SteelCasing"); } @Override @@ -88,6 +90,7 @@ public class BlockBasic extends Block //list.add(new ItemStack(i, 1, 6)); list.add(new ItemStack(i, 1, 7)); list.add(new ItemStack(i, 1, 8)); + list.add(new ItemStack(i, 1, 9)); } @Override diff --git a/src/minecraft/mekanism/common/BlockMachine.java b/src/minecraft/mekanism/common/BlockMachine.java index c35856ae6..01c788531 100644 --- a/src/minecraft/mekanism/common/BlockMachine.java +++ b/src/minecraft/mekanism/common/BlockMachine.java @@ -48,6 +48,7 @@ import cpw.mods.fml.relauncher.SideOnly; * 7: Elite Factory * 8: Metallurgic Infuser * 9: Purification Chamber + * 10: Energized Smelter * @author AidanBrady * */ @@ -69,16 +70,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable { icons[0][0] = register.func_94245_a("mekanism:EnrichmentChamberFrontOff"); icons[0][1] = register.func_94245_a("mekanism:EnrichmentChamberFrontOn"); - icons[0][2] = register.func_94245_a("mekanism:OsmiumBlock"); + icons[0][2] = register.func_94245_a("mekanism:SteelCasing"); icons[1][0] = register.func_94245_a("mekanism:OsmiumCompressorFrontOff"); icons[1][1] = register.func_94245_a("mekanism:OsmiumCompressorFrontOn"); - icons[1][2] = register.func_94245_a("mekanism:OsmiumBlock"); + icons[1][2] = register.func_94245_a("mekanism:SteelCasing"); icons[2][0] = register.func_94245_a("mekanism:CombinerFrontOff"); icons[2][1] = register.func_94245_a("mekanism:CombinerFrontOn"); - icons[2][2] = register.func_94245_a("mekanism:OsmiumBlock"); + icons[2][2] = register.func_94245_a("mekanism:SteelCasing"); icons[3][0] = register.func_94245_a("mekanism:CrusherFrontOff"); icons[3][1] = register.func_94245_a("mekanism:CrusherFrontOn"); - icons[3][2] = register.func_94245_a("mekanism:OsmiumBlock"); + icons[3][2] = register.func_94245_a("mekanism:SteelCasing"); icons[5][0] = register.func_94245_a("mekanism:BasicSmeltingFactoryFront"); icons[5][1] = register.func_94245_a("mekanism:BasicSmeltingFactorySide"); icons[5][2] = register.func_94245_a("mekanism:BasicSmeltingFactoryTop"); @@ -98,7 +99,10 @@ public class BlockMachine extends BlockContainer implements IDismantleable icons[8][7] = register.func_94245_a("mekanism:MetallurgicInfuserBackOn"); icons[9][0] = register.func_94245_a("mekanism:PurificationChamberFrontOff"); icons[9][1] = register.func_94245_a("mekanism:PurificationChamberFrontOn"); - icons[9][2] = register.func_94245_a("mekanism:OsmiumBlock"); + icons[9][2] = register.func_94245_a("mekanism:SteelCasing"); + icons[10][0] = register.func_94245_a("mekanism:EnergizedSmelterFrontOff"); + icons[10][1] = register.func_94245_a("mekanism:EnergizedSmelterFrontOn"); + icons[10][2] = register.func_94245_a("mekanism:SteelCasing"); } @Override @@ -289,6 +293,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable return icons[9][2]; } } + else if(meta == 10) + { + if(side == 3) + { + return icons[10][0]; + } + else { + return icons[10][2]; + } + } return null; } @@ -412,6 +426,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable return icons[9][2]; } } + else if(metadata == 10) + { + if(side == tileEntity.facing) + { + return MekanismUtils.isActive(world, x, y, z) ? icons[10][1] : icons[10][0]; + } + else { + return icons[10][2]; + } + } return null; } @@ -448,6 +472,7 @@ public class BlockMachine extends BlockContainer implements IDismantleable list.add(new ItemStack(i, 1, 8)); list.add(new ItemStack(i, 1, 9)); + list.add(new ItemStack(i, 1, 10)); } @Override @@ -726,7 +751,8 @@ public class BlockMachine extends BlockContainer implements IDismantleable ADVANCED_FACTORY(6, 11, 10000, TileEntityAdvancedFactory.class, false), ELITE_FACTORY(7, 11, 14000, TileEntityEliteFactory.class, false), METALLURGIC_INFUSER(8, 12, 2000, TileEntityMetallurgicInfuser.class, false), - PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false); + PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false), + ENERGIZED_SMELTER(10, 16, 2000, TileEntityEnergizedSmelter.class, false); public int meta; public int guiId; diff --git a/src/minecraft/mekanism/common/CommonProxy.java b/src/minecraft/mekanism/common/CommonProxy.java index e66a43e3b..1dddede03 100644 --- a/src/minecraft/mekanism/common/CommonProxy.java +++ b/src/minecraft/mekanism/common/CommonProxy.java @@ -153,6 +153,8 @@ public class CommonProxy return new ContainerTeleporter(player.inventory, (TileEntityTeleporter)tileEntity); case 15: return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity); + case 16: + return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity); } return null; } diff --git a/src/minecraft/mekanism/common/ItemBlockBasic.java b/src/minecraft/mekanism/common/ItemBlockBasic.java index f88e49025..71261d661 100644 --- a/src/minecraft/mekanism/common/ItemBlockBasic.java +++ b/src/minecraft/mekanism/common/ItemBlockBasic.java @@ -16,6 +16,7 @@ import net.minecraft.util.Icon; * 6: Control Panel * 7: Teleporter * 8: Teleporter Frame + * 9: Steel Casing * @author AidanBrady * */ @@ -75,6 +76,9 @@ public class ItemBlockBasic extends ItemBlock case 8: name = "TeleporterFrame"; break; + case 9: + name = "SteelCasing"; + break; default: name = "Unknown"; break; diff --git a/src/minecraft/mekanism/common/ItemBlockMachine.java b/src/minecraft/mekanism/common/ItemBlockMachine.java index ef2012764..8be6376fc 100644 --- a/src/minecraft/mekanism/common/ItemBlockMachine.java +++ b/src/minecraft/mekanism/common/ItemBlockMachine.java @@ -32,6 +32,7 @@ import net.minecraft.world.World; * 7: Elite Factory * 8: Metallurgic Infuser * 9: Purification Chamber + * 10: Energized Smelter * @author AidanBrady * */ @@ -90,6 +91,9 @@ public class ItemBlockMachine extends ItemBlock implements IItemElectric, ICusto case 9: name = "PurificationChamber"; break; + case 10: + name = "EnergizedSmelter"; + break; default: name = "Unknown"; break; diff --git a/src/minecraft/mekanism/common/Mekanism.java b/src/minecraft/mekanism/common/Mekanism.java index 5ef57f3f0..5c4bc3cf3 100644 --- a/src/minecraft/mekanism/common/Mekanism.java +++ b/src/minecraft/mekanism/common/Mekanism.java @@ -26,6 +26,7 @@ import net.minecraftforge.common.Configuration; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; import thermalexpansion.api.crafting.CraftingManagers; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; @@ -228,16 +229,16 @@ public class Mekanism "RCR", "ECE", "RCR", Character.valueOf('C'), Item.ingotGold, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] { - "ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), "blockSteel", Character.valueOf('C'), ControlCircuit + "ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9), Character.valueOf('C'), ControlCircuit })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] { - "RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), "blockSteel" + "RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 2), new Object[] { - "SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), "blockSteel" + "SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] { - "RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), "blockSteel" + "RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(SpeedUpgrade), new Object[] { " G ", "APA", " G ", Character.valueOf('P'), "dustOsmium", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), Block.glass @@ -251,9 +252,6 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(AtomicDisassembler.getUnchargedItem(), new Object[] { "AEA", "ACA", " O ", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('C'), AtomicCore, Character.valueOf('O'), "ingotRefinedObsidian" })); - CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedAlloy), new Object[] { - " R ", "RIR", " R ", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), Item.ingotIron - })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(StorageTank.getEmptyItem(), new Object[] { "III", "IDI", "III", Character.valueOf('I'), Item.ingotIron, Character.valueOf('D'), "dustIron" })); @@ -261,7 +259,7 @@ public class Mekanism "PPP", "PDP", "PPP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('D'), "dustIron" })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] { - "RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), "blockSteel" + "RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] { "EGE", "TBT", "EGE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('G'), Item.ingotGold, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC) @@ -275,8 +273,8 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ControlCircuit), new Object[] { " P ", "PEP", " P ", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), EnrichedAlloy })); - CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedIron, 6), new Object[] { - "A", "I", "A", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('I'), Item.ingotIron + CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(new ItemStack(EnrichedIron, 2), new Object[] { + Item.redstone, Item.ingotIron })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(EnrichedIron, 4), new Object[] { "C", "I", "C", Character.valueOf('C'), "dustCopper", Character.valueOf('I'), Item.ingotIron @@ -297,7 +295,7 @@ public class Mekanism "COC", "OTO", "COC", Character.valueOf('C'), "basicCircuit", Character.valueOf('O'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('T'), TeleportationCore })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 9), new Object[] { - "CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(MachineBlock, 1, 0) + "CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(BasicBlock, 1, 9) })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Configurator), new Object[] { " L ", "AEA", " S ", Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('S'), Item.stick @@ -308,10 +306,19 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(PressurizedTube, 8), new Object[] { "IAI", "PPP", "IAI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('P'), "dustOsmium" })); + CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(BasicBlock, 1, 9), new Object[] { + "SRS", "RPR", "SRS", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), Item.redstone, Character.valueOf('P'), "ingotOsmium" + })); + CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(BasicBlock, 1, 9), new Object[] { + "RSR", "SPS", "RSR", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), Item.redstone, Character.valueOf('P'), "ingotOsmium" + })); + CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 10), new Object[] { + "SCS", "GIG", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), ControlCircuit, Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) + })); //Factory Recipes CraftingManager.getInstance().getRecipeList().add(new FactoryRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, RecipeType.SMELTING), new Object[] { - "CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), Block.furnaceIdle + "CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), new ItemStack(MachineBlock, 1, 10) })); CraftingManager.getInstance().getRecipeList().add(new FactoryRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, RecipeType.ENRICHING), new Object[] { "CAC", "GOG", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), "dustGold", Character.valueOf('O'), new ItemStack(MachineBlock, 1, 0) @@ -343,6 +350,7 @@ public class Mekanism FurnaceRecipes.smelting().addSmelting(Dust.itemID, 0, new ItemStack(Item.ingotIron), 1.0F); FurnaceRecipes.smelting().addSmelting(Dust.itemID, 1, new ItemStack(Item.ingotGold), 1.0F); FurnaceRecipes.smelting().addSmelting(Dust.itemID, 5, new ItemStack(Ingot, 1, 4), 1.0F); + FurnaceRecipes.smelting().addSmelting(EnrichedIron.itemID, 0, new ItemStack(EnrichedAlloy), 1.0F); //Enrichment Chamber Recipes RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreRedstone), new ItemStack(Item.redstone, 12)); @@ -436,6 +444,7 @@ public class Mekanism LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.ControlPanel.name", "Control Panel"); LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.Teleporter.name", "Teleporter"); LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.TeleporterFrame.name", "Teleporter Frame"); + LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.SteelCasing.name", "Steel Casing"); //Localization for MachineBlock LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnrichmentChamber.name", "Enrichment Chamber"); @@ -448,6 +457,7 @@ public class Mekanism LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EliteFactory.name", "Elite Factory"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.MetallurgicInfuser.name", "Metallurgic Infuser"); LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PurificationChamber.name", "Purification Chamber"); + LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnergizedSmelter.name", "Energized Smelter"); //Localization for OreBlock LanguageRegistry.instance().addStringLocalization("tile.OreBlock.OsmiumOre.name", "Osmium Ore"); @@ -912,6 +922,7 @@ public class Mekanism GameRegistry.registerTileEntity(TileEntityMetallurgicInfuser.class, "MetallurgicInfuser"); GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter"); GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber"); + GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter"); //Load tile entities that have special renderers. proxy.registerSpecialTileEntities(); diff --git a/src/minecraft/mekanism/common/TileEntityBasicMachine.java b/src/minecraft/mekanism/common/TileEntityBasicMachine.java index 87b7ef597..382a205df 100644 --- a/src/minecraft/mekanism/common/TileEntityBasicMachine.java +++ b/src/minecraft/mekanism/common/TileEntityBasicMachine.java @@ -15,6 +15,7 @@ import mekanism.api.IEnergyCube; import mekanism.api.IFactory; import mekanism.api.IUpgradeManagement; import mekanism.api.SideData; +import mekanism.client.IHasSound; import mekanism.client.Sound; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +33,7 @@ import cpw.mods.fml.relauncher.SideOnly; import dan200.computer.api.IComputerAccess; import dan200.computer.api.IPeripheral; -public abstract class TileEntityBasicMachine extends TileEntityElectricBlock implements IElectricMachine, IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement +public abstract class TileEntityBasicMachine extends TileEntityElectricBlock implements IElectricMachine, IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound { /** The Sound instance for this machine. */ @SideOnly(Side.CLIENT) @@ -410,4 +411,10 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp { speedMultiplier = multiplier; } + + @Override + public Sound getSound() + { + return audio; + } } diff --git a/src/minecraft/mekanism/common/TileEntityEnergizedSmelter.java b/src/minecraft/mekanism/common/TileEntityEnergizedSmelter.java new file mode 100644 index 000000000..97b54fc59 --- /dev/null +++ b/src/minecraft/mekanism/common/TileEntityEnergizedSmelter.java @@ -0,0 +1,40 @@ +package mekanism.common; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; + +import mekanism.common.RecipeHandler.Recipe; + +public class TileEntityEnergizedSmelter extends TileEntityElectricMachine +{ + public TileEntityEnergizedSmelter() + { + super("Smelter.ogg", "Energized Smelter", "/mods/mekanism/gui/GuiEnergizedSmelter.png", 10, 200, 2000); + } + + @Override + public Map getRecipes() + { + HashMap map = new HashMap(); + + for(Map.Entry, ItemStack> entry : FurnaceRecipes.smelting().getMetaSmeltingList().entrySet()) + { + map.put(new ItemStack(entry.getKey().get(0), 1, entry.getKey().get(1)), entry.getValue()); + } + + for(Object obj : FurnaceRecipes.smelting().getSmeltingList().entrySet()) + { + if(obj instanceof Map.Entry) + { + Map.Entry entry = (Map.Entry)obj; + map.put(new ItemStack(entry.getKey(), 1, 0), entry.getValue()); + } + } + + return map; + } +} diff --git a/src/minecraft/mekanism/common/TileEntityFactory.java b/src/minecraft/mekanism/common/TileEntityFactory.java index a93ab7bad..a64d951fd 100644 --- a/src/minecraft/mekanism/common/TileEntityFactory.java +++ b/src/minecraft/mekanism/common/TileEntityFactory.java @@ -14,6 +14,7 @@ import mekanism.api.IUpgradeManagement; import mekanism.api.SideData; import mekanism.api.IFactory.RecipeType; import mekanism.api.Tier.FactoryTier; +import mekanism.client.IHasSound; import mekanism.client.Sound; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -37,7 +38,7 @@ import cpw.mods.fml.relauncher.SideOnly; import dan200.computer.api.IComputerAccess; import dan200.computer.api.IPeripheral; -public class TileEntityFactory extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement +public class TileEntityFactory extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound { /** This Factory's tier. */ public FactoryTier tier; @@ -274,7 +275,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg { if(FMLClientHandler.instance().getClient().sndManager.sndSystem != null) { - audio = Mekanism.audioHandler.getSound("Factory.ogg", worldObj, xCoord, yCoord, zCoord); + audio = Mekanism.audioHandler.getSound(RecipeType.values()[recipeType].getSound(), worldObj, xCoord, yCoord, zCoord); } } @@ -660,4 +661,10 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg { speedMultiplier = multiplier; } + + @Override + public Sound getSound() + { + return audio; + } } diff --git a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java index e21ecc184..bb2065d32 100644 --- a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java +++ b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java @@ -19,6 +19,7 @@ import mekanism.api.InfusionInput; import mekanism.api.InfusionOutput; import mekanism.api.InfusionType; import mekanism.api.SideData; +import mekanism.client.IHasSound; import mekanism.client.Sound; import mekanism.common.RecipeHandler.Recipe; import net.minecraft.entity.player.EntityPlayer; @@ -42,7 +43,7 @@ import cpw.mods.fml.relauncher.SideOnly; import dan200.computer.api.IComputerAccess; import dan200.computer.api.IPeripheral; -public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement +public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implements IEnergySink, IPeripheral, IActiveState, IConfigurable, IUpgradeManagement, IHasSound { /** The Sound instance for this machine. */ @SideOnly(Side.CLIENT) @@ -609,6 +610,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem return sideConfig; } + @Override + public Sound getSound() + { + return audio; + } + @Override public int getOrientation() { diff --git a/src/minecraft/mekanism/generators/common/MekanismGenerators.java b/src/minecraft/mekanism/generators/common/MekanismGenerators.java index b0e334379..d069feb85 100644 --- a/src/minecraft/mekanism/generators/common/MekanismGenerators.java +++ b/src/minecraft/mekanism/generators/common/MekanismGenerators.java @@ -77,13 +77,13 @@ public class MekanismGenerators "SES", "SES", "III", Character.valueOf('S'), new ItemStack(Generator, 1, 1), Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), Item.ingotIron })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 4), new Object[] { - "RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), "blockSteel", Character.valueOf('N'), Item.ingotIron + "RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('N'), Item.ingotIron })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 2), new Object[] { "IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 3), new Object[] { - "PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), "blockSteel", Character.valueOf('C'), ElectrolyticCore + "PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('C'), ElectrolyticCore })); CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ElectrolyticCore), new Object[] { "EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold" diff --git a/src/minecraft/mekanism/generators/common/TileEntityGenerator.java b/src/minecraft/mekanism/generators/common/TileEntityGenerator.java index db775d3f8..68789e9f6 100644 --- a/src/minecraft/mekanism/generators/common/TileEntityGenerator.java +++ b/src/minecraft/mekanism/generators/common/TileEntityGenerator.java @@ -16,6 +16,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mekanism.api.IActiveState; +import mekanism.client.IHasSound; import mekanism.client.Sound; import mekanism.common.Mekanism; import mekanism.common.MekanismUtils; @@ -37,7 +38,7 @@ import buildcraft.api.power.PowerProvider; import dan200.computer.api.IComputerAccess; import dan200.computer.api.IPeripheral; -public abstract class TileEntityGenerator extends TileEntityElectricBlock implements IEnergySource, IEnergyStorage, IPowerReceptor, IPeripheral, IActiveState +public abstract class TileEntityGenerator extends TileEntityElectricBlock implements IEnergySource, IEnergyStorage, IPowerReceptor, IPeripheral, IActiveState, IHasSound { /** The Sound instance for this generator. */ @SideOnly(Side.CLIENT) @@ -368,4 +369,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem { return INFINITE_EXTENT_AABB; } + + @Override + public Sound getSound() + { + return audio; + } }