From 9836de8aa07e6001c7c71d26913a4070c9927741 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 4 Aug 2020 21:36:47 +0200 Subject: [PATCH] crystallizer upgrades, dud packet fix, recipes --- .../java/assets/hbm/models/machines/rtg.obj | 324 +++++++++--------- .../java/assets/hbm/textures/blocks/rtg.png | Bin 0 -> 1234 bytes .../assets/hbm/textures/blocks/rtg_cell.png | Bin 0 -> 1295 bytes .../hbm/textures/gui/gui_boiler_electric.png | Bin 2835 -> 2955 bytes .../assets/hbm/textures/gui/gui_soyuz.png | Bin 3837 -> 3949 bytes .../assets/hbm/textures/gui/gui_turbine.png | Bin 2954 -> 3086 bytes .../gui/processing/gui_crystallizer.png | Bin 2105 -> 2343 bytes .../hbm/textures/models/machines/rtg.png | Bin 1179 -> 1234 bytes .../hbm/textures/models/machines/rtg_cell.png | Bin 0 -> 1295 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/machine/MachineAmgen.java | 4 - .../hbm/blocks/machine/MachineMiniRTG.java | 36 ++ .../com/hbm/blocks/machine/MachineRTG.java | 2 +- .../hbm/inventory/CrystallizerRecipes.java | 2 +- .../container/ContainerCrystallizer.java | 8 +- .../hbm/inventory/gui/GUICrystallizer.java | 8 + .../hbm/inventory/gui/GUIMachineBoiler.java | 28 +- .../gui/GUIMachineBoilerElectric.java | 33 +- .../com/hbm/inventory/gui/GUIMachineCoal.java | 19 +- .../hbm/inventory/gui/GUIMachineReactor.java | 18 +- .../items/machine/ItemAssemblyTemplate.java | 28 ++ .../hbm/items/machine/ItemMachineUpgrade.java | 18 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + src/main/java/com/hbm/main/MainRegistry.java | 1 + .../com/hbm/main/ModEventHandlerClient.java | 22 ++ .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/render/block/RenderRTGBlock.java | 53 +++ .../com/hbm/render/tileentity/RenderRTG.java | 9 +- .../java/com/hbm/render/util/ObjUtil.java | 48 +++ .../machine/TileEntityMachineAmgen.java | 4 - .../machine/TileEntityMachineBoiler.java | 2 +- .../TileEntityMachineCrystallizer.java | 137 +++++++- .../machine/TileEntityMachineMiniRTG.java | 76 ++++ 34 files changed, 653 insertions(+), 236 deletions(-) create mode 100644 src/main/java/assets/hbm/textures/blocks/rtg.png create mode 100644 src/main/java/assets/hbm/textures/blocks/rtg_cell.png create mode 100644 src/main/java/assets/hbm/textures/models/machines/rtg_cell.png create mode 100644 src/main/java/com/hbm/blocks/machine/MachineMiniRTG.java create mode 100644 src/main/java/com/hbm/render/block/RenderRTGBlock.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java diff --git a/src/main/java/assets/hbm/models/machines/rtg.obj b/src/main/java/assets/hbm/models/machines/rtg.obj index fbace81fb..234ce94d4 100644 --- a/src/main/java/assets/hbm/models/machines/rtg.obj +++ b/src/main/java/assets/hbm/models/machines/rtg.obj @@ -17,44 +17,44 @@ v -0.125000 0.625000 -0.125000 v -0.125000 0.625000 0.125000 v -0.125000 0.375000 -0.125000 v -0.125000 0.375000 0.125000 -vt 0.761905 1.000000 -vt 0.904762 0.714286 -vt 0.904762 1.000000 -vt 0.761905 0.714286 -vt 0.904762 1.000000 -vt 0.761905 1.000000 -vt 0.714286 0.714286 -vt 0.761905 0.714286 -vt 0.761905 1.000000 -vt 0.714286 0.714286 -vt 0.761905 0.714286 -vt 0.761905 1.000000 -vt 0.714286 0.714286 -vt 0.761905 0.714286 -vt 0.761905 1.000000 -vt 0.714286 0.714286 -vt 0.761905 0.714286 -vt 0.714286 0.904762 -vt 0.619048 0.714286 -vt 0.714286 0.714286 -vt 0.714286 0.904762 -vt 0.619048 0.714286 -vt 0.714286 0.714286 -vt 0.714286 0.904762 -vt 0.619048 0.714286 -vt 0.714286 0.714286 -vt 0.714286 0.904762 -vt 0.619048 0.714286 -vt 0.714286 0.714286 -vt 0.904762 0.714286 -vt 0.714286 1.000000 -vt 0.714286 1.000000 -vt 0.714286 1.000000 -vt 0.714286 1.000000 -vt 0.619048 0.904762 -vt 0.619048 0.904762 -vt 0.619048 0.904762 -vt 0.619048 0.904762 +vt 0.761905 0.500000 +vt 0.904762 0.357143 +vt 0.904762 0.500000 +vt 0.761905 0.357143 +vt 0.904762 0.500000 +vt 0.761905 0.500000 +vt 0.714286 0.357143 +vt 0.761905 0.357143 +vt 0.761905 0.500000 +vt 0.714286 0.357143 +vt 0.761905 0.357143 +vt 0.761905 0.500000 +vt 0.714286 0.357143 +vt 0.761905 0.357143 +vt 0.761905 0.500000 +vt 0.714286 0.357143 +vt 0.761905 0.357143 +vt 0.714286 0.452381 +vt 0.619048 0.357143 +vt 0.714286 0.357143 +vt 0.714286 0.452381 +vt 0.619048 0.357143 +vt 0.714286 0.357143 +vt 0.714286 0.452381 +vt 0.619048 0.357143 +vt 0.714286 0.357143 +vt 0.714286 0.452381 +vt 0.619048 0.357143 +vt 0.714286 0.357143 +vt 0.904762 0.357143 +vt 0.714286 0.500000 +vt 0.714286 0.500000 +vt 0.714286 0.500000 +vt 0.714286 0.500000 +vt 0.619048 0.452381 +vt 0.619048 0.452381 +vt 0.619048 0.452381 +vt 0.619048 0.452381 vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 @@ -179,134 +179,134 @@ v -0.132583 1.000000 -0.132583 v -0.132583 0.062500 -0.132583 v -0.353553 1.000000 -0.353553 v -0.353553 0.062500 -0.353553 -vt 0.380952 0.809524 -vt 0.000000 0.761905 -vt 0.380952 0.761905 -vt 0.380952 0.809524 -vt 0.000000 0.761905 -vt 0.380952 0.761905 -vt 0.380952 0.809524 -vt -0.000000 0.761905 -vt 0.380952 0.761905 -vt 0.380952 0.809524 -vt 0.000000 0.761905 -vt 0.380952 0.761905 -vt 0.000000 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 0.761905 +vt 0.380952 0.404762 +vt 0.000000 0.380952 +vt 0.380952 0.380952 +vt 0.380952 0.404762 +vt 0.000000 0.380952 +vt 0.380952 0.380952 +vt 0.380952 0.404762 +vt 0.000000 0.380952 +vt 0.380952 0.380952 +vt 0.380952 0.404762 +vt 0.000000 0.380952 +vt 0.380952 0.380952 vt 0.000000 0.000000 vt 0.380952 0.000000 -vt 0.761905 -0.000000 -vt 0.821429 0.666667 -vt 0.761905 0.666667 -vt 0.809524 0.714286 -vt 0.773810 0.714286 -vt 0.880952 -0.000000 -vt 0.880952 0.666667 -vt 0.940476 -0.000000 -vt 0.940476 0.666667 -vt 1.000000 -0.000000 -vt 1.000000 0.666667 -vt 0.523810 0.666667 +vt 0.380952 0.380952 +vt 0.000000 0.000000 +vt 0.380952 0.000000 +vt 0.761905 0.000000 +vt 0.821429 0.333333 +vt 0.761905 0.333333 +vt 0.809524 0.357143 +vt 0.773810 0.357143 +vt 0.880952 0.000000 +vt 0.880952 0.333333 +vt 0.940476 0.000000 +vt 0.940476 0.333333 +vt 1.000000 0.000000 +vt 1.000000 0.333333 +vt 0.523810 0.333333 vt 0.583333 0.000000 -vt 0.583333 0.666667 -vt 0.642857 -0.000000 -vt 0.642857 0.666667 -vt 0.702381 -0.000000 -vt 0.702381 0.666667 -vt 0.750000 0.714286 -vt 0.690476 0.714286 -vt 0.654762 0.714286 -vt 0.595238 0.714286 -vt 0.630952 0.714286 -vt 0.571429 0.714286 -vt 0.535714 0.714286 -vt 0.952381 0.714286 -vt 0.988095 0.714286 -vt 0.892857 0.714286 -vt 0.928571 0.714286 -vt 0.833333 0.714286 -vt 0.869048 0.714286 -vt 0.919818 0.876219 -vt 0.906124 0.810097 -vt 0.919818 0.743974 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.380952 0.714286 -vt 0.523810 -0.000000 -vt 0.523810 0.714286 -vt 0.523810 -0.000000 -vt 0.380952 0.714286 -vt 0.523810 0.714286 -vt 0.000000 0.809524 -vt 0.000000 0.809524 -vt -0.000000 0.809524 -vt 0.000000 0.809524 -vt 0.000000 0.761905 -vt 0.821429 -0.000000 +vt 0.583333 0.333333 +vt 0.642857 0.000000 +vt 0.642857 0.333333 +vt 0.702381 0.000000 +vt 0.702381 0.333333 +vt 0.750000 0.357143 +vt 0.690476 0.357143 +vt 0.654762 0.357143 +vt 0.595238 0.357143 +vt 0.630952 0.357143 +vt 0.571429 0.357143 +vt 0.535714 0.357143 +vt 0.952381 0.357143 +vt 0.988095 0.357143 +vt 0.892857 0.357143 +vt 0.928571 0.357143 +vt 0.833333 0.357143 +vt 0.869048 0.357143 +vt 0.916667 0.440476 +vt 0.904762 0.404762 +vt 0.916667 0.369048 +vt 0.380952 0.357143 vt 0.523810 0.000000 -vt 0.714286 0.714286 -vt 0.952879 0.716585 -vt 0.985940 0.876219 -vt 0.985940 0.743974 -vt 0.999635 0.810097 -vt 0.952879 0.903608 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 -vt 0.380952 -0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.380952 0.357143 +vt 0.523810 0.000000 +vt 0.523810 0.357143 +vt 0.523810 0.000000 +vt 0.380952 0.357143 +vt 0.523810 0.357143 +vt 0.000000 0.404762 +vt 0.000000 0.404762 +vt 0.000000 0.404762 +vt 0.000000 0.404762 +vt 0.000000 0.380952 +vt 0.821429 0.000000 +vt 0.523810 0.000000 +vt 0.714286 0.357143 +vt 0.952381 0.357143 +vt 0.988095 0.440476 +vt 0.988095 0.369048 +vt 1.000000 0.404762 +vt 0.952381 0.452381 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 +vt 0.380952 0.000000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 1.0000 0.0000 0.0000 diff --git a/src/main/java/assets/hbm/textures/blocks/rtg.png b/src/main/java/assets/hbm/textures/blocks/rtg.png new file mode 100644 index 0000000000000000000000000000000000000000..de6f873738b0130dead24a4a017beb0c92220bac GIT binary patch literal 1234 zcmV;@1TFiCP)~z!`mf*r<}LU0pFaiF|IG>N<+~s3 z>G!w6RcxG~b;rmBQ4KNw9YBu9z<2^k2`~nT2oM5@w>D7FrLcE2z5exi;n7YyzrX(k za1OlJMgzX$S6e&XZWlW{JJ{adMv^4h+S)=CMPO{X0nHyDfw%vF;RyI!8-B?`ZCEVR zWHJFh{4%}2|1?h*hlht!^`5#)SsaGc|9UU`dfY5;gE0oi7;bNG+Z79!OhEtq4h(0O zso;E?-iZMrrG%7nK_DfHO&rFUwT#MdmeD&(@0?}3VQm6ta}fcPnP00hRETLh=YY@~ zrZ-$qt74%(k<8y(g`j1@x9fRuoH-LS;=ubKr}t0&nW%y+6hPP)kRsj!I0N4G=4tPG z!07YTO4p<8*DWqD^X#&CCcSE%It{9Fnl(CKuLBndj5 z4x%Um0KC4w;`;hJxbaOOOiS}kP%a_OjxfuqJT9vSfRmFG2>?$|PY^=j?d=V593zh7 zTu=bm+uN(y#PyPgP0C_8FAq)2#z}?l-cm|rSyr%CU@ByiB*mASS!f)`NRp%==m62&0E&~1FV^%;R4&YMR4-?9`OC{oZ-r-PXZ3n@ z#S|u`P`-3Ha9L;-q9{VY-_QT=^?J^{P2|f3t?SMqg#1QX9C~wegTY`>C}V3}zu#{p zpU?w%*H_arv3)R9nUnzF`1m-#e|&s&{#FzDazR~RMs@MIw@R-vDFOaQH=S=SE*~;x zhQ^@)3a*!?>0)Iwn#d=BqL}M&dy|cGd1XPXvQk&Qs?#>oCMewE{>Pu!3=^s96EWeTaUEV(xSs!mF+cX`*c-KwnAj3lZ~O09Q! zVEJRF3zxfBi9=iM@@0EOb@6TXDK^UG)y*nIb&Z+kb(3749UL4;&N=kIFF7G%+em6H+Q+DP0%t6wVg((6Nk2blg|8# z@tyq8uPRU3k)6=|p>b&IEmT>i!ga7qzbb5V!Z literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/blocks/rtg_cell.png b/src/main/java/assets/hbm/textures/blocks/rtg_cell.png new file mode 100644 index 0000000000000000000000000000000000000000..688e1c13157e1d49dd2f8532d9bb2d94749cf930 GIT binary patch literal 1295 zcmV+q1@QWbP)ogNBt={t1cP(nBE5^01{YTt zT$yzK1a1up2{!mcxJVVqa*3Nj3O8qPbq6uQg_xgF%x1>!-h2 z%RPVdl~euiouF1e`Yb#B^4z(KnG>|^82La{P0WAJAO-_qFa(4E7z20%;2fCqXHd|w z@bTxPjEy&-dHoCU z?|;DCKJb?^{E~%ckztuS!y&Nn_2~Ta<$XF|US1Zm_vBHC^e`ma4jx+DXY11_;YUObpC!N6< z!^Oo#s*0_Pm7tE=dCyV%*;ac+DaaNW{u6O>6vy(9E;GLOls z0bqZBUjV?(%?*6t$L;Mcf*?S%*#zetS65d6fQ5yHM>KPCBw>@Z7|+WOP4mV{iR#`$ z2*h!mvQ}UuWEh62I;4dLL4Y6#z&S^|-39>6&(AwHtsYWws1&v6*k*ElJ>B!XBwfEQ zMP-a3%jKgeLbuz+i|5}KdbUYp4D8EJ7&ejhYrS3%yc_H5^D!Hnv#PHc^?-$5FLhmdkH%Z(A!oJUlGds}+-)lw5i2 zaA2~~B5=;p>2#9+>+9>rymjPD1TE{%F1XwyFAm+^-NotYX{tNw~ev%(=X@psK9YRIlu`nRNN8ur2?oxW=KIo10>)UEVdQFUvTs zf2v&`$Xk@~)b1pwlA=Q;7)5pJ}lhV|?ylL64Dl63^iK3Iz)Vn+|{xQ>p z$=!>@p;PVhdEbc2V*A)9nJJf-Csl}Q8Z-6dEV(>eT3QmG=Ry5FW`{`Dw` z7{lQ(DYLb;g)j`A!&$=kByn%^}J{r>0gN;bJ#xU@`(X=9gqlw@^+o>x8UVlu|Cx3|ZD`>i;D z-Q{J3Fs&pmuWpmkg>n_twM^FMXesQ$!GW;3yxRHG$p6I$nm`X^qBH;i002ovPDHLk FV1m(9aM%C< literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/gui/gui_boiler_electric.png b/src/main/java/assets/hbm/textures/gui/gui_boiler_electric.png index 05bf03882346b94506790bbe3d5caec27bdaafbd..facf1cf978b52f7c2e87c489a73687b5d79e6a67 100644 GIT binary patch literal 2955 zcmc&$dof#pkTSWB$4p5w zBkx8UW^@#4%8)X7j8Tk9(qz2O%oy&}S@-^N@49Q9b^p2hpZ)!O_gmdLD$&VmFSxN3N=kA}7JH>cs4?ktO;gpZ%0Kf)k57)hZ7fNTj z$o!F>E!}g!T*`=#%X$wV_Zu>@9&e+5pcs7qy==u~bp7>`yMZxHuT&y7Vv2u61(Ycm zXrgxp45zJUoSs*@sQ9Q$=}cvy?;SJsXUHEqvvCYq#Cu}Ez5824@Xq%+2G4tg33%N~ zre%?5%*bqlJ#nPS+Re(!buc>ULBP4>lqsAH=}uq#NbN33=ginik&+{O^d7i@XK|Z1 zr)n_q;@Zh)q|6#;ul!%jU`|aKD>s#t8nzYNLbgV!+o&a85?`J_sSFj60v`l~)4LtIg5RNTKC0M?|vJcM6Vte!&qT3FA9R);`s>+2%KD zyc74Iq*i(UoGgtKw%+NcRCa+GdxMv&;%_`@DD%Rukg-{V#(vSQZV|5dveXw zuZ=WAc0=Nj=b$AqFy{!fDk-Loq;xH)VW?oL&u~0ml{|Yeh`-jY zQtU^RXL-tVJ~|P)HfA(dL#6Mqw#C|5$01E+eoK;2J;dRR4$+&&5IJ+uAuc2pOf`gT zS3S>7FTgJ-4nsS;vD_Im3mCfn6qn(8DP6DLSA%TUK;J(X=#Y8=!RrWJTP_-9b3M;S0*v!78u_P6 zA>(%v1)I05>Y`?WzF=P~2B$y>E{qOA4AZJ_lay+7fMN40ultFwS`rL{hvzO>dfd>? zQ#i(iQsWS)fpWs&S=NGK$1&T2;ybr$S&MUaN3t67|L+8%p~a!a1yZEigeJZ4}+%qJxYHcI0&i8gz7 z!p@H5yBUD}Tv_3HqG?mC>Y>BegkbGgn=DgmDi_%wQr63yHOMBxkIxl)Gc^I7XHbP6 z&(w880pW+Ox1A7oz`$gqV46ILELI~#c30P`*)JqxIjYP?fy)B8`Ig3ttv+xdq$Y3| zx1r2_fpg_yk;ck>9iVplu60=3yH#lXproLl7`;b?s z=z@EcLT?(}MfqdjPe7yo(a-z6c+`(+6^n{S*Ff6bvC%}3zMrqhX_yyEjVeNQi{LFJ%k%@|Xw3eH;5Ke1S)K2j~fwim!PiuN^t9guhHin)pjkNd)^4$=ond|?V3Hc)yh;Exe@su9s|8t<}Oo+Juc zcDqPEi&>}TZ%2KBXE5w+*(O@U4g(s0e`jN8>Z zKpLggXNHmtB`6(WRmG6v&Gsuq*cKZ&wQJw3Tio(VAX^f!d^yJb6Ul-6i(~7_6%V26kTq0M+dP(5Vb`?EdfY&M0)Wn|LuWkIRou{Tlln z`k(m*zwUY)EB{^p0>^(=s5fhYoc!4mVow}{mRf)t4AfZ9!?kioGNqk58G(5ceykfg zR#)MFBi~)C{Pf%#YsmXpw{5p7@IPa;%nbg#%C-P!b?O2Ux*$N;9RMzA0fZxpe-+04 z$);Sja0Nwh$7uDy)ItB6UQL4Lbt<^&dmlQwtFitO-zuvf%m}dRc(@&Ot#yvL_zyG4EGYm0 literal 2835 zcmcJRX;9PG8pi)XgcM}4ipV01UPX{qC`%61E%fht8e3cY3EE?)&9A@0Z_m&NK6#bAEPp zc954=wIWFcTdW(+3dg!DK%fCtchtdK|u?O{~()~MSXk@PTD0(rlpxk)x_dRiw*@fgK}F8D%KS)3b< zXzN{Axcp*wAy~N;ah$-2C?5f4xCS!;)S2=!mM7N8$Oz}{%oea#zVzcZ_yYPBBj4>^ zqp9VMYy6k<@lFUDo&Kw`r7*hM+ly{Hk3DsJ6*!pM;ja~m!;SEr&c|m=Pfi}$s^sn! zcxu^(Ztra7EEsWTd!32|tlM0OwKaC@t%HL@U-;16GrZXBp)X-*uv-UaI=dFOVniNW zHA_7i$q{gZ$o?189(mfcT-d9n=(xDJq4%T|J?J zH7Y{2JuTU>>-srCK3Wl-Cp;05#N#QF9=!%lk%$u(> zOJmYTYh_Hx%xA;M@Xj)SLUFerYI!ZG9~6|7cDk+sS!Wk zbc1%>-Y3cB+bG>IV+CrB8Xio2pNTR9C4bq>v1G2@w$U#m_pa)zHPDOM#WLx^ZYs20 z9mi+7l>*bat{2onmWv0ipaIXzcUR0epfY|~@`5A^^TIfqupXl26uhNS_)Itb@tI^v zhV#lHNaBZ1i5gZReg*WtuSCXm5Ef`TQjrHk#Aanr0~QVv$x5vo8`v+8E}55;{U8$b zL@OUZ=?@=TEYu_CiG=d`he*yzx3pUTe`($03{CUfMth?d+0L#GW5n4cw$@+7+O3etDu-H21~acsl43%y+54smi2xHHO(gMx{jo@pR*4BjKYF(W9d&fc)?>+a22f>6Nx& zN4-jZXbo~$P%^)5`Na6D&kEpERa91lFFXgBAK27@^)+}_zGSe{45!nTPm#vzuZhO^!Lu>DCHU z6u7|S?x5KoXyAAL^I!JH|4Lil8*o z6vDR)>UKW;u?%m)M1P)|I{tH~dV>x1twhb(Yj;(-cXfC-Ujn+8?UBGkKe@z}_s%nA z?pVf$Ir@FI)O8s4m!9v!e8$b8e1fI&Nhz)?Snndrm-)bZd9Yw%BdJ$pT_C^|i?4vy zF{H@$Rlfta!KN8G69ts8qI^AsW4xWW`hVm@#bP^$N@mFBB?_rqa9Zo+LH%c`o-Hl1{dzJoyPJX2oXlU z`<>bl7389;hI@WL-WbM;hGV!TW#m#Kv_tSq&PQXZ&d{N3W|kILqeVn>oS1#-G>59T zJPLaM&Kj`rY#$=l@BC54Bo6Ms7pagxzcl4RvVlUOE=M%F=8A^=?X(XQCAC@SOZC}0 zLeNND%7Kxh3VfI59wSgEYxa766{OcImRt%6VDbIR1!yyV*vmqpdmUB9J~2jGRaWD4 zU*HPJO-rVduai4HJ$(m{&k^?~jLDv`xuQcO3R07N-f%*QcvOe;g0@ArJ+X*?o7LNg zDlOW(%sYp7tHNVT8Lu}7NJN57xfC*3o)xX?en=+0DxR+^6hzL!oz4QiOt@SCl0}Hc$(N^x}ok~(_WstP& z>k%ol#r+px<0fF>bvBTY_RU|5R|ezGnyGs_?-NafB%|g0uQrwVwT&)OVCVqi*BI6b z`a5FK#eHSSKwofQ;J)ewU$fRTD6%@5F1BH$!5%-_Lid2pHKqaWKuO@#@xLY4K~=e* zvf3hh#Lzd!Vp^N&(RAKFnl;QMraxetfOn{Kk`^xod&kwxIBWj6%p#PUjkXj*dI12?z SkI&hBHGrRUK3idj{OO+u7*D_e diff --git a/src/main/java/assets/hbm/textures/gui/gui_soyuz.png b/src/main/java/assets/hbm/textures/gui/gui_soyuz.png index eab1dc3cbf3c787ffb21ae3a101c6b0554a1dc50..2ae2fbdfe1d07c11dca1b6686b6cb2453b623efa 100644 GIT binary patch literal 3949 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 F>hG`nSatva literal 3837 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 IW?ql}4OsX%pa1{> diff --git a/src/main/java/assets/hbm/textures/gui/gui_turbine.png b/src/main/java/assets/hbm/textures/gui/gui_turbine.png index 86f6bf854e4f80009474e5713578ceaa487fb7ee..235ae4775817650a4dc6b6e23d3cefacd8077964 100644 GIT binary patch literal 3086 zcmc&$X;72b8va5;pt1z27Gw*G7EzEOJD3pJlp=;*KnfIEi~$1@5K0n>rOG0RSQf3A zfYQcbWk)s>aKRu!zy$#z1`1&jA#6!VAmm~@y+1m0=XUO&`~G>)bIv>GJnu5koGkC- zN7T0HYykj3&Eu%6F93ixmmokHy6Hj_?nZAq2*KIIUwP9=%HL)JfJ%pl>tX+tk~!{S z{BV;2d$CPP@z=}t-uhrm&chB)|%`c)lp_yP*4lN4{6NPz-M~mi44EztGHQv)O**wl+7tB!!`w80T^J z<3mW~^Nx-VAJ@Pto|CbhdV1yDxR_k^+*o|^$rys23OpCBF-bCM!2JCD6?>53!I9O5 zGxD|}9(HXZh&2FjQ))XlfJ$l=LB%u z^v26^wu#B1=#$DCKu~=#d<;P3+9zGbj7J!PC~ic3JGJRc6mBP3E$q*TvN~YiK20;t zXutv37+%N&WT~++I1K|S0GGdTRNK2`qr7*Ql4NMmD;>tHR0H+Z^tm%6^VS1>r_oVn zyK09X^3p!lRDYY8m2aX3;j6i1#H2riq_-(Iq;x2+XNTAMOT>gJ)_G|%eD zXOez_5`p2lbFbh{EY<;scOj9VqWMnp4P9BY6CRHu$#9GhN~o^j|^}&14l(F z_j3xQ*|(r8)*BjY6=*MaAwbGPvNIoMrj0XRZbc9ugdl$N>#GBJgo7fy<`LslTp#0MkLn@g5uQLBS9tif914lv>?5#)9V`sxG+s=zk=#sIKDcxvB%EOjz7IEW zJz&lgKuIZf%mI#Fm)@6(=(r4!`^+oEvxi|hE%A?uiu!S&=7SM*EYeE6&hOrEr+ z^+kLG^X1S3$jv(=Y!ku}SVtr82?xrn<&E3`0vVSBYH}uQsL77Qo)us&&#{qH=D){H zC=q*mgMlVo9!Q%pwM;y{>V9wO`PinU&1NVSf-fA>MfkmF1)XuxQWRDMNXi$e<9Vbi zO(f-*nK%)7i-+m=!x+A8#}L~!&xMISsUN& zu-O2e9W_ENFTlhN!w!NY+IXD){=#G(<9v}8q#+b8ial$>e?2Tp*Bk(S6cYvAPK1E4 zS>epgq2#;nh8MxchwigJmd6pt^ve~+dMTjbzonWNQ!`J z6rcRGAL8YpQq2>zRy_Q9_DPr%{+MLtfec$NvKkE{luU)ax@$K8GWE0qE=A{i_$<{Q zX9#cHcE^-9CQu(Apb?~@Q@Cm+M8l&3gHe+jR1`Jbo2a^Z*t2~f?U%Gl!ifouh@L5M z0qNrj)hOUBga5jMbv61AspQbXFBW&-e#>rRqDXso2cnRN?6<)8D5CRp%ho8@0x?GT zp{)zZk$S#gF!YXZR^FvV^0(sFk>}OVWYeIr z!8LoR<}}}8GVBfh{&h)0>wflfvDoSH5>AITplZnN8osPeG|OGH+LIkGeHY2R$r zjn89-Yo0NyzOu+0bnI{q_^SxQ;> z+)}YdkI5NZ92Hu9e<&p@I5z0YdwzT|4ymUAWNQMHNC;4>4FdMM1OE^P{lreM(<@3x zxxryQIcQUQ2EWNtVKHSP;ksrfKe0_O8d8yA@lQGaErTd`!=l%+1aFw7LQTnh@sk|1 z5MiXjnK^IYt?Unr`XA_i%I(=Fnrr-0>U0hoop)XHuAVyR--R=EQ11M#{f{*26z=Fn zD@NOM%`+a&q}oCLTY>*Z{xA6F6-q+He#93U!527V8h>@Gdhf4mc?VHhow$Y&eHxXz zHx#|&H8|+&(9rIdU1)VEz=>B`u;YXP672fsfBOG#6w8&gc)N1j1DGqjKe6#}JMLQP I9Pz`y0O=rV@c;k- literal 2954 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 U*7NQ^jsjJ9dj#w%+e!NMe?qG9KL7v# delta 1807 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 a3;I96>VOm6-uJKo0000w~?0*SRq z9STTg$#7DqRxJGmY-}L@7r%g!g`pDdROyCWKw@g8qHaZesOYYji#yyo=lE>LAr}%3 z9tkBluYK|3_j&!sHo*%+6h*vD{a&v}Y|mMl#uo))7&_VA-{0rjyf{L`FvM^;L>$L| zh~qdd|N8cuwce+nAD!BNafDj&=DoiB>cY8+g(I|VjGQ4=A@gq!JdS~Q1aJ-z0x%C? z4DeeENa$R!zCFJFI-hy898K@9&Hze*H7Od&r~sg8UgP zlB9z{2*Ks$Wu}pXg9FYOL%ZEZ5Cmwq+weRO0PyhefRmFG=g!vwrh1xff-(`Q4uo1y z*qFQ;0CsnGIRM<=-hwfPe!mZY-}mABeo80+tgo*Z?BdfRO`C+rP@12b=EX??S>Bv; zBuSF-R$xqI5Cqwmns})1`v`&{L+I-2szbNxLnaRuq!x{BCh4o?l+v_ZeJ)5Pguo_w zmjSO6#>Bqtgkd9DeKr^jFc=J`FJ+N@;|bMu+*Ib0u-hOjKyIsuUZ#$&bKP#Y7CR;<@TRY(c|!NWP-Id9fSsM4^#11N#`s%x z*rkM;zKqJkCT~$*WKsfu?47RL?nxx?5;I-%PyiX}MNu@{*aUUhF(6CkQ^;P$!bx6u zP*q-PYF7-}LQ1|W*p~lfxaOfz6!At&-ZiN&i+Or~qa_dMSK_OTqc(C~^3Z1|`FRp4 zuPm81|B6mZjhDP>*{&)tRWpgAlTza)56nMinqZQ9kvz1~lF!?JBPt8qW}m=9NnYGk zL8>Wcs@Fx5JlWjb;GBmZ9v<>%v3!?@ zygaf_MF-`456?Q#h%L!@oH*@V12^!oZbw~ac%)NlB_6C*N;o-WZH=>dvON+Mh| z73pe|yl-xjq>j*UJP*~KMk$krHhz;%{fe=j{E)B0Chy3OtG#O;+ISBYo+)5D*d<>D zbc3MU%2$<4LI{qJj|nh6iUZgsFTZOOkxE`ZCZiJNN~mic-FCDfc5iQw+a%v~LjMDa WpnwyjvgiQ-0000ogNBt={t1cP(nBE5^01{YTt zT$yzK1a1up2{!mcxJVVqa*3Nj3O8qPbq6uQg_xgF%x1>!-h2 z%RPVdl~euiouF1e`Yb#B^4z(KnG>|^82La{P0WAJAO-_qFa(4E7z20%;2fCqXHd|w z@bTxPjEy&-dHoCU z?|;DCKJb?^{E~%ckztuS!y&Nn_2~Ta<$XF|US1Zm_vBHC^e`ma4jx+DXY11_;YUObpC!N6< z!^Oo#s*0_Pm7tE=dCyV%*;ac+DaaNW{u6O>6vy(9E;GLOls z0bqZBUjV?(%?*6t$L;Mcf*?S%*#zetS65d6fQ5yHM>KPCBw>@Z7|+WOP4mV{iR#`$ z2*h!mvQ}UuWEh62I;4dLL4Y6#z&S^|-39>6&(AwHtsYWws1&v6*k*ElJ>B!XBwfEQ zMP-a3%jKgeLbuz+i|5}KdbUYp4D8EJ7&ejhYrS3%yc_H5^D!Hnv#PHc^?-$5FLhmdkH%Z(A!oJUlGds}+-)lw5i2 zaA2~~B5=;p>2#9+>+9>rymjPD1TE{%F1XwyFAm+^-NotYX{tNw~ev%(=X@psK9YRIlu`nRNN8ur2?oxW=KIo10>)UEVdQFUvTs zf2v&`$Xk@~)b1pwlA=Q;7)5pJ}lhV|?ylL64Dl63^iK3Iz)Vn+|{xQ>p z$=!>@p;PVhdEbc2V*A)9nJJf-Csl}Q8Z-6dEV(>eT3QmG=Ry5FW`{`Dw` z7{lQ(DYLb;g)j`A!&$=kByn%^}J{r>0gN;bJ#xU@`(X=9gqlw@^+o>x8UVlu|Cx3|ZD`>i;D z-Q{J3Fs&pmuWpmkg>n_twM^FMXesQ$!GW;3yxRHG$p6I$nm`X^qBH;i002ovPDHLk FV1m(9aM%C< literal 0 HcmV?d00001 diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4bca1cb22..91178d7e4 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1114,7 +1114,7 @@ public class ModBlocks { machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg"); //machine_rtg_red = new MachineRTG(Material.iron).setBlockName("machine_rtg_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); //machine_rtg_orange = new MachineRTG(Material.iron).setBlockName("machine_rtg_orange").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); //machine_rtg_yellow = new MachineRTG(Material.iron).setBlockName("machine_rtg_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1124,7 +1124,7 @@ public class ModBlocks { //machine_rtg_purple = new MachineRTG(Material.iron).setBlockName("machine_rtg_purple").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_geo = new MachineAmgen(Material.iron).setBlockName("machine_geo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_minirtg = new MachineAmgen(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_minirtg = new MachineMiniRTG(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_cell"); red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_icon"); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAmgen.java b/src/main/java/com/hbm/blocks/machine/MachineAmgen.java index 930c0734e..8768c2e52 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAmgen.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAmgen.java @@ -39,10 +39,6 @@ public class MachineAmgen extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_geo_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_geo_side"); } - if(this == ModBlocks.machine_minirtg) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_minirtg_top"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_minirtg_side"); - } } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineMiniRTG.java b/src/main/java/com/hbm/blocks/machine/MachineMiniRTG.java new file mode 100644 index 000000000..2c65aefdd --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineMiniRTG.java @@ -0,0 +1,36 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.machine.TileEntityMachineMiniRTG; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineMiniRTG extends BlockContainer { + + public MachineMiniRTG(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineMiniRTG(); + } + + @Override + public int getRenderType() { + return 334087; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineRTG.java b/src/main/java/com/hbm/blocks/machine/MachineRTG.java index b64886cf2..279095138 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRTG.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRTG.java @@ -28,7 +28,7 @@ public class MachineRTG extends BlockContainer { @Override public int getRenderType() { - return -1; + return 334087; } @Override diff --git a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java index d8376d17b..d7394efbc 100644 --- a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java @@ -33,7 +33,7 @@ public class CrystallizerRecipes { recipes.put("oreTitanium", new ItemStack(ModItems.crystal_titanium)); recipes.put("oreSulfur", new ItemStack(ModItems.crystal_sulfur)); recipes.put("oreNiter", new ItemStack(ModItems.crystal_niter)); - recipes.put("oreSalpeter", new ItemStack(ModItems.crystal_niter)); + recipes.put("oreSaltpeter", new ItemStack(ModItems.crystal_niter)); recipes.put("oreCopper", new ItemStack(ModItems.crystal_copper)); recipes.put("oreTungsten", new ItemStack(ModItems.crystal_tungsten)); recipes.put("oreAluminum", new ItemStack(ModItems.crystal_aluminium)); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index d13f887e7..bae2fa4b9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -1,6 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; +import com.hbm.inventory.SlotUpgrade; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; import net.minecraft.entity.player.EntityPlayer; @@ -21,7 +22,9 @@ public class ContainerCrystallizer extends Container { this.addSlotToContainer(new Slot(tedf, 1, 8, 53)); this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 140, 35)); this.addSlotToContainer(new Slot(tedf, 3, 26, 17)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 25, 53)); + this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 26, 53)); + this.addSlotToContainer(new SlotUpgrade(tedf, 5, 98, 17)); + this.addSlotToContainer(new SlotUpgrade(tedf, 6, 116, 17)); for(int i = 0; i < 3; i++) { @@ -57,7 +60,8 @@ public class ContainerCrystallizer extends Container { if (!this.mergeItemStack(var5, 0, 2, false)) if (!this.mergeItemStack(var5, 3, 4, false)) - return null; + if (!this.mergeItemStack(var5, 5, 7, false)) + return null; } if (var5.stackSize == 0) diff --git a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java index e1dad814c..320e8b79e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java @@ -31,6 +31,12 @@ public class GUICrystallizer extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, acidomatic.power, acidomatic.maxPower); acidomatic.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 17, 16, 52); + + String[] text = new String[] { "Acceptable upgrades:", + " -Speed (stacks to level 3)", + " -Effectiveness (stacks to level 3)", + " -Overdrive (stacks to level 3)"}; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 87, guiTop + 21, 8, 8, guiLeft + 200, guiTop + 45, text); } @Override @@ -52,6 +58,8 @@ public class GUICrystallizer extends GuiInfoContainer { int j = acidomatic.getProgressScaled(23); drawTexturedModalRect(guiLeft + 104, guiTop + 34, 192, 0, j, 16); + + this.drawInfoPanel(guiLeft + 87, guiTop + 21, 8, 8, 8); Minecraft.getMinecraft().getTextureManager().bindTexture(acidomatic.tank.getSheet()); acidomatic.tank.renderTank(this, guiLeft + 44, guiTop + 69, acidomatic.tank.getTankType().textureX() * FluidTank.x, acidomatic.tank.getTankType().textureY() * FluidTank.y, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java index 1654cd081..0a420ae0f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBoiler.java @@ -7,6 +7,7 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineBoiler; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineBoiler; + import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; @@ -72,27 +73,30 @@ public class GUIMachineBoiler extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.burnTime > 0) - drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); - - int j = (int)diFurnace.getHeatScaled(17); - drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); + + //"It just works" -Todd Howard + TileEntityMachineBoiler dud = diFurnace; if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineBoiler) - diFurnace = (TileEntityMachineBoiler) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + dud = (TileEntityMachineBoiler) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + + if(dud.burnTime > 0) + drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); + + int j = (int)dud.getHeatScaled(17); + drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - if(diFurnace.tanks[1].getTankType().name().equals(FluidType.NONE.name())) { + if(dud.tanks[1].getTankType().name().equals(FluidType.NONE.name())) { this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); } - Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[0].getSheet()); - diFurnace.tanks[0].renderTank(this, guiLeft + 62, guiTop + 69, diFurnace.tanks[0].getTankType().textureX() * FluidTank.x, diFurnace.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(dud.tanks[0].getSheet()); + dud.tanks[0].renderTank(this, guiLeft + 62, guiTop + 69, dud.tanks[0].getTankType().textureX() * FluidTank.x, dud.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); - Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[1].getSheet()); - diFurnace.tanks[1].renderTank(this, guiLeft + 134, guiTop + 69, diFurnace.tanks[1].getTankType().textureX() * FluidTank.x, diFurnace.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(dud.tanks[1].getSheet()); + dud.tanks[1].renderTank(this, guiLeft + 134, guiTop + 69, dud.tanks[1].getTankType().textureX() * FluidTank.x, dud.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java index a1f2ed780..222255699 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBoilerElectric.java @@ -74,30 +74,33 @@ public class GUIMachineBoilerElectric extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.power > 0) - drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); - - int j = (int)diFurnace.getHeatScaled(17); - drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); - - int i = (int)diFurnace.getPowerScaled(34); - drawTexturedModalRect(guiLeft + 123, guiTop + 69 - i, 200, 34 - i, 7, i); + + // + TileEntityMachineBoilerElectric dud = diFurnace; if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineBoilerElectric) - diFurnace = (TileEntityMachineBoilerElectric) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + dud = (TileEntityMachineBoilerElectric) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + + if(dud.power > 0) + drawTexturedModalRect(guiLeft + 97, guiTop + 34, 176, 0, 18, 18); + + int j = (int)dud.getHeatScaled(17); + drawTexturedModalRect(guiLeft + 103, guiTop + 33 - j, 194, 16 - j, 6, j); + + int i = (int)dud.getPowerScaled(34); + drawTexturedModalRect(guiLeft + 123, guiTop + 69 - i, 200, 34 - i, 7, i); this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - if(diFurnace.tanks[1].getTankType().name().equals(FluidType.NONE.name())) { + if(dud.tanks[1].getTankType().name().equals(FluidType.NONE.name())) { this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); } - Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[0].getSheet()); - diFurnace.tanks[0].renderTank(this, guiLeft + 62, guiTop + 69, diFurnace.tanks[0].getTankType().textureX() * FluidTank.x, diFurnace.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(dud.tanks[0].getSheet()); + dud.tanks[0].renderTank(this, guiLeft + 62, guiTop + 69, dud.tanks[0].getTankType().textureX() * FluidTank.x, dud.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); - Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[1].getSheet()); - diFurnace.tanks[1].renderTank(this, guiLeft + 134, guiTop + 69, diFurnace.tanks[1].getTankType().textureX() * FluidTank.x, diFurnace.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(dud.tanks[1].getSheet()); + dud.tanks[1].renderTank(this, guiLeft + 134, guiTop + 69, dud.tanks[1].getTankType().textureX() * FluidTank.x, dud.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java index 0cb44b87d..a117ca721 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java @@ -70,26 +70,29 @@ public class GUIMachineCoal extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) - diFurnace = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + //It's as horrifying as it is functional. + TileEntityMachineCoal dud = diFurnace; - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); + if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) + dud = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + + if(dud.power > 0) { + int i = (int)dud.getPowerScaled(52); drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); } - if(diFurnace.burnTime > 0) + if(dud.burnTime > 0) { drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); } - if(diFurnace.tank.getFill() <= 0) + if(dud.tank.getFill() <= 0) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tank.getSheet()); - diFurnace.tank.renderTank(this, guiLeft + 8, guiTop + 69, diFurnace.tank.getTankType().textureX() * FluidTank.x, diFurnace.tank.getTankType().textureY() * FluidTank.y, 16, 52); + Minecraft.getMinecraft().getTextureManager().bindTexture(dud.tank.getSheet()); + dud.tank.renderTank(this, guiLeft + 8, guiTop + 69, dud.tank.getTankType().textureX() * FluidTank.x, dud.tank.getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java b/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java index 4b2acc882..95aa0445c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineReactor.java @@ -49,13 +49,25 @@ public class GUIMachineReactor extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(breeder.hasPower()) + /* + * A dud is a tile entity which did not survive a block state change (i.e. a furnace becoming lit) on the client. + * Usually, most functionality is preserved since vanilla interacts with the open GUI screen rather than the TE + * itself, though this does not apply to NTM packets. The client will think the TE bound to the GUI is invalid, + * and therefore miss out on NTM status packets, but it will still require the old TE for slot changes. The refreshed + * "dud" is only used for status bars, it will not replace the actual invalid TE instance in the GUI screen. + */ + TileEntityMachineReactor dud = breeder; + + if(breeder.isInvalid() && breeder.getWorldObj().getTileEntity(breeder.xCoord, breeder.yCoord, breeder.zCoord) instanceof TileEntityMachineReactor) + dud = (TileEntityMachineReactor) breeder.getWorldObj().getTileEntity(breeder.xCoord, breeder.yCoord, breeder.zCoord); + + if(dud.hasPower()) drawTexturedModalRect(guiLeft + 55, guiTop + 35, 176, 0, 18, 16); - int i = breeder.getProgressScaled(23); + int i = dud.getProgressScaled(23); drawTexturedModalRect(guiLeft + 80, guiTop + 34, 176, 16, i, 16); - int j = breeder.getHeatScaled(16); + int j = dud.getHeatScaled(16); drawTexturedModalRect(guiLeft + 48, guiTop + 51 - j, 194, 16 - j, 4, j); } diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 9f88fef78..0fbcceefa 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -659,6 +659,34 @@ public class ItemAssemblyTemplate extends Item { new ItemStack(ModItems.circuit_targeting_tier4, 1)), new ItemStack(ModItems.mp_warhead_15_n2)), + SOYUZ(2000, Arrays.asList( + new ItemStack(ModItems.rocket_fuel, 40), + new ItemStack(ModBlocks.det_cord, 20), + new ItemStack(ModItems.thruster_medium, 12), + new ItemStack(ModItems.thruster_small, 12), + new ItemStack(ModItems.tank_steel, 10), + new ItemStack(ModItems.circuit_targeting_tier4, 4), + new ItemStack(ModItems.circuit_targeting_tier3, 8), + new ItemStack(ModItems.plate_polymer, 64), + new ItemStack(ModItems.fins_small_steel, 4), + new ItemStack(ModItems.hull_big_titanium, 40), + new ItemStack(ModItems.hull_big_steel, 24), + new ItemStack(ModItems.ingot_fiberglass, 64)), + + new ItemStack(ModItems.missile_soyuz)), + + LANDER(1000, Arrays.asList( + new ItemStack(ModItems.rocket_fuel, 10), + new ItemStack(ModItems.thruster_small, 3), + new ItemStack(ModItems.tank_steel, 2), + new ItemStack(ModItems.circuit_targeting_tier3, 4), + new ItemStack(ModItems.plate_polymer, 32), + new ItemStack(ModItems.hull_big_aluminium, 2), + new ItemStack(ModItems.sphere_steel, 1), + new ItemStack(ModItems.ingot_fiberglass, 12)), + + new ItemStack(ModItems.missile_soyuz_lander)), + GERALD(1200, Arrays.asList( new ItemStack(ModItems.cap_star, 1), new ItemStack(ModItems.chlorine_pinwheel, 1), diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 0df8cddcf..7bcf0fc52 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -23,6 +23,9 @@ public class ItemMachineUpgrade extends Item { list.add(""); list.add("Chemical Plant:"); list.add("Delay -25 / Consumption +300"); + list.add(""); + list.add("Crystallizer"); + list.add("Delay -10% / Consumption +1000"); } if(this == ModItems.upgrade_speed_2) @@ -35,6 +38,9 @@ public class ItemMachineUpgrade extends Item { list.add(""); list.add("Chemical Plant:"); list.add("Delay -50 / Consumption +600"); + list.add(""); + list.add("Crystallizer"); + list.add("Delay -20% / Consumption +2000"); } if(this == ModItems.upgrade_speed_3) @@ -47,24 +53,36 @@ public class ItemMachineUpgrade extends Item { list.add(""); list.add("Chemical Plant:"); list.add("Delay -75 / Consumption +900"); + list.add(""); + list.add("Crystallizer"); + list.add("Speed Delay -30% / Consumption +3000"); } if(this == ModItems.upgrade_effect_1) { list.add("Mining Drill:"); list.add("Radius +1 / Consumption +80"); + list.add(""); + list.add("Crystallizer"); + list.add("+5% chance of not consuming an item / Acid consumption +1000mB"); } if(this == ModItems.upgrade_effect_2) { list.add("Mining Drill:"); list.add("Radius +2 / Consumption +160"); + list.add(""); + list.add("Crystallizer"); + list.add("+10% chance of not consuming an item / Acid consumption +2000mB"); } if(this == ModItems.upgrade_effect_3) { list.add("Mining Drill:"); list.add("Radius +3 / Consumption +240"); + list.add(""); + list.add("Crystallizer"); + list.add("+15% chance of not consuming an item / Acid consumption +3000mB"); } if(this == ModItems.upgrade_power_1) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1d80ca861..76725d709 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3565)"; + public static final String VERSION = "1.0.27 BETA (3586)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index af3b70ce3..02e96ab80 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -138,6 +138,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCrystallizer.class, new RenderCrystallizer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMicrowave.class, new RenderMicrowave()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRTG.class, new RenderRTG()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiniRTG.class, new RenderRTG()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFF.class, new RenderForceField()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField()); //AMS @@ -454,6 +455,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderAntennaTop()); RenderingRegistry.registerBlockHandler(new RenderConserve()); RenderingRegistry.registerBlockHandler(new RenderConveyor()); + RenderingRegistry.registerBlockHandler(new RenderRTGBlock()); } @Override diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index c7022fbfe..0edea2e0a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -572,6 +572,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityNukeBalefire.class, "tileentity_nuke_fstbmb"); GameRegistry.registerTileEntity(TileEntityProxyCombo.class, "tileentity_proxy_combo"); GameRegistry.registerTileEntity(TileEntityMicrowave.class, "tileentity_microwave"); + GameRegistry.registerTileEntity(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 80610c70b..88bf2cb40 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -31,6 +31,8 @@ import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; @@ -122,6 +124,26 @@ public class ModEventHandlerClient { if(time > animation.animation.getDuration()) HbmAnimations.hotbar[i] = null; } + + if(event.type == ElementType.CROSSHAIRS && player.ticksExisted < 200) { + + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + + ScaledResolution resolution = event.resolution; + int pX = resolution.getScaledWidth() / 2; + int pZ = resolution.getScaledHeight() / 2; + + String msg = "PLEASE"; + font.drawStringWithShadow(msg, pX - font.getStringWidth(msg) / 2, pZ - 40, 0xffffff); + msg = "THIS IS A DEVELOPMENT VERSION"; + if(player.ticksExisted > 30) font.drawStringWithShadow(msg, pX - font.getStringWidth(msg) / 2, pZ - 20, 0xffffff); + msg = "OBVIOUSLY SOME THINGS AREN'T GOING TO WORK"; + if(player.ticksExisted > 60) font.drawStringWithShadow(msg, pX - font.getStringWidth(msg) / 2, pZ, 0xffffff); + msg = "PLEASE AT LEAST TRY TO REMEMBER THAT"; + if(player.ticksExisted > 90) font.drawStringWithShadow(msg, pX - font.getStringWidth(msg) / 2, pZ + 20, 0xffffff); + msg = "FOR THE LOVE OF GOD"; + if(player.ticksExisted > 120) font.drawStringWithShadow(msg, pX - font.getStringWidth(msg) / 2, pZ + 40, 0xb00000); + } } @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1ec1ed596..6a8bbf6da 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -249,6 +249,7 @@ public class ResourceManager { //RTG public static final ResourceLocation rtg_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg.png"); + public static final ResourceLocation rtg_cell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_cell.png"); //Anti Mass Spectrometer public static final ResourceLocation ams_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_base.png"); diff --git a/src/main/java/com/hbm/render/block/RenderRTGBlock.java b/src/main/java/com/hbm/render/block/RenderRTGBlock.java new file mode 100644 index 000000000..a63dd506d --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderRTGBlock.java @@ -0,0 +1,53 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderRTGBlock implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rtg, "Gen", iicon, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return 334087; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRTG.java b/src/main/java/com/hbm/render/tileentity/RenderRTG.java index 98ade2afb..9bccff56a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRTG.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRTG.java @@ -2,6 +2,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; @@ -18,8 +19,12 @@ public class RenderRTG extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); - - bindTexture(ResourceManager.rtg_tex); + + if(te.getBlockType() == ModBlocks.machine_rtg_grey) + bindTexture(ResourceManager.rtg_tex); + else + bindTexture(ResourceManager.rtg_cell_tex); + ResourceManager.rtg.renderPart("Gen"); int ix = te.xCoord; diff --git a/src/main/java/com/hbm/render/util/ObjUtil.java b/src/main/java/com/hbm/render/util/ObjUtil.java index 4175203f8..024e81374 100644 --- a/src/main/java/com/hbm/render/util/ObjUtil.java +++ b/src/main/java/com/hbm/render/util/ObjUtil.java @@ -50,4 +50,52 @@ public class ObjUtil { } } } + + public static void renderPartWithIcon(WavefrontObject model, String name, IIcon icon, Tessellator tes, float rot, boolean shadow) { + + GroupObject go = null; + + for(GroupObject obj : model.groupObjects) { + if(obj.name.equals(name)) + go = obj; + } + + if(go == null) + return; + + for(Face f : go.faces) { + + Vertex n = f.faceNormal; + tes.setNormal(n.x, n.y, n.z); + + if(shadow) { + float brightness = (n.y + 1) * 0.65F; + + if(brightness < 0.45F) + brightness = 0.45F; + + tes.setColorOpaque_F(brightness, brightness, brightness); + } + + for(int i = 0; i < f.vertices.length; i++) { + + Vertex v = f.vertices[i]; + + Vec3 vec = Vec3.createVectorHelper(v.x, v.y, v.z); + vec.rotateAroundY(rot); + + float x = (float) vec.xCoord; + float y = (float) vec.yCoord; + float z = (float) vec.zCoord; + + TextureCoordinate t = f.textureCoordinates[i]; + tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16), icon.getInterpolatedV(t.v * 16)); + + // The shoddy way of rendering a tringulated model with a quad + // tessellator + if(i % 3 == 2) + tes.addVertexWithUV(x, y, z, icon.getInterpolatedU(t.u * 16), icon.getInterpolatedV(t.v * 16)); + } + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java index 05f0777aa..8f08b4788 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java @@ -37,10 +37,6 @@ public class TileEntityMachineAmgen extends TileEntity implements ISource { data.decrementRad(worldObj, xCoord, zCoord, 5F); - } else if(block == ModBlocks.machine_minirtg) { - - power += 25; - } else if(block == ModBlocks.machine_geo) { Block b = worldObj.getBlock(xCoord, yCoord - 1, zCoord); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 7b63dbc0d..12ec5a74a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -258,7 +258,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento mark = true; } - if(burnTime > 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_on) + if(burnTime <= 0 && worldObj.getBlock(xCoord, yCoord, zCoord) == ModBlocks.machine_boiler_on) MachineBoiler.updateBlockState(false, worldObj, xCoord, yCoord, zCoord); if(heat > maxHeat) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index a1a1c27ba..5b97cc3fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -8,6 +8,8 @@ import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.CrystallizerRecipes; import com.hbm.inventory.FluidTank; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; @@ -22,7 +24,7 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IConsumer, IFluidAcceptor { public long power; - public static final long maxPower = 100000; + public static final long maxPower = 1000000; public static final int demand = 1000; public static final int acidRequired = 500; public short progress; @@ -34,7 +36,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme public FluidTank tank; public TileEntityMachineCrystallizer() { - super(5); + super(7); tank = new FluidTank(FluidType.ACID, 8000, 0); } @@ -51,21 +53,24 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.loadTank(3, 4, slots); - if(canProcess()) { + for(int i = 0; i < getCycleCount(); i++) { - progress++; - power -= demand; - - if(progress > duration) { - progress = 0; - tank.setFill(tank.getFill() - acidRequired); - processItem(); + if(canProcess()) { - this.markDirty(); + progress++; + power -= getPowerRequired(); + + if(progress > getDuration()) { + progress = 0; + tank.setFill(tank.getFill() - getRequiredAcid()); + processItem(); + + this.markDirty(); + } + + } else { + progress = 0; } - - } else { - progress = 0; } tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); @@ -79,7 +84,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme prevAngle = angle; if(progress > 0) { - angle += 5F; + angle += 5F * this.getCycleCount(); if(angle >= 360) { angle -= 360; @@ -107,7 +112,10 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme else if(slots[2].stackSize < slots[2].getMaxStackSize()) slots[2].stackSize++; - this.decrStackSize(0, 1); + float freeChance = this.getFreeChance(); + + if(freeChance == 0 || freeChance < worldObj.rand.nextFloat()) + this.decrStackSize(0, 1); } private boolean canProcess() { @@ -116,10 +124,10 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme if(slots[0] == null) return false; - if(power < demand) + if(power < getPowerRequired()) return false; - if(tank.getFill() < acidRequired) + if(tank.getFill() < getRequiredAcid()) return false; ItemStack result = CrystallizerRecipes.getOutput(slots[0]); @@ -139,6 +147,91 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme return true; } + public int getRequiredAcid() { + + int extra = 0; + + for(int i = 5; i <= 6; i++) { + + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) + extra += 1000; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) + extra += 2000; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) + extra += 3000; + } + + return acidRequired + Math.min(extra, 3000); + } + + public float getFreeChance() { + + float chance = 0.0F; + + for(int i = 5; i <= 6; i++) { + + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) + chance += 0.05F; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) + chance += 0.1F; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) + chance += 0.15F; + } + + return Math.min(chance, 0.15F); + } + + public int getDuration() { + + float durationMod = 1; + + for(int i = 5; i <= 6; i++) { + + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) + durationMod -= 0.1F; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) + durationMod -= 0.2F; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) + durationMod -= 0.3F; + } + + return (int) (duration * Math.max(durationMod, 0.7F)); + } + + public int getPowerRequired() { + + int consumption = 0; + + for(int i = 5; i <= 6; i++) { + + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) + consumption += 1000; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) + consumption += 2000; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) + consumption += 3000; + } + + return (int) (demand + Math.min(consumption, 3000)); + } + + public float getCycleCount() { + + int cycles = 1; + + for(int i = 5; i <= 6; i++) { + + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_1) + cycles += 1; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_2) + cycles += 2; + if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_3) + cycles += 3; + } + + return Math.min(cycles, 4); + } + public long getPowerScaled(int i) { return (power * i) / maxPower; } @@ -242,4 +335,12 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme { return 65536.0D; } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && i >= 5 && i <= 6 && stack.getItem() instanceof ItemMachineUpgrade) + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java new file mode 100644 index 000000000..dc3856d54 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiniRTG.java @@ -0,0 +1,76 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.ISource; +import com.hbm.lib.Library; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachineMiniRTG extends TileEntity implements ISource { + + public List list = new ArrayList(); + public long power; + public long maxPower = 100; + boolean tact = false; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + power += 25; + + if(power > maxPower) + power = maxPower; + + tact = false; + ffgeuaInit(); + tact = true; + ffgeuaInit(); + } + } + + @Override + public void ffgeuaInit() { + ffgeua(this.xCoord, this.yCoord + 1, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact()); + ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact()); + } + + @Override + public void ffgeua(int x, int y, int z, boolean newTact) { + + Library.ffgeua(x, y, z, newTact, this, worldObj); + } + + @Override + public boolean getTact() { + return tact; + } + + @Override + public long getSPower() { + return power; + } + + @Override + public void setSPower(long i) { + power = i; + } + + @Override + public List getList() { + return list; + } + + @Override + public void clearList() { + list.clear(); + } +}