From 60a32d44f61d4c15341a0ab93fc814c4ca398c4b Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Wed, 18 Mar 2015 01:09:58 +0000 Subject: [PATCH 1/2] CTM for the Induction Matrix internals. @aidancbrady, what do you think? Feel free to revert if you preferred it how it was. --- .../mekanism/common/block/BlockBasic.java | 37 +++++++++++++----- .../blocks/ctm/InductionCellAdvanced-ctm.png | Bin 0 -> 762 bytes .../blocks/ctm/InductionCellAdvanced.png | Bin 0 -> 467 bytes .../blocks/ctm/InductionCellBasic-ctm.png | Bin 0 -> 779 bytes .../blocks/ctm/InductionCellBasic.png | Bin 0 -> 484 bytes .../blocks/ctm/InductionCellElite-ctm.png | Bin 0 -> 1794 bytes .../blocks/ctm/InductionCellElite.png | Bin 0 -> 474 bytes .../blocks/ctm/InductionCellUltimate-ctm.png | Bin 0 -> 799 bytes .../blocks/ctm/InductionCellUltimate.png | Bin 0 -> 489 bytes .../ctm/InductionProviderAdvanced-ctm.png | Bin 0 -> 1333 bytes .../blocks/ctm/InductionProviderAdvanced.png | Bin 0 -> 903 bytes .../blocks/ctm/InductionProviderBasic-ctm.png | Bin 0 -> 1348 bytes .../blocks/ctm/InductionProviderBasic.png | Bin 0 -> 927 bytes .../blocks/ctm/InductionProviderElite-ctm.png | Bin 0 -> 1304 bytes .../blocks/ctm/InductionProviderElite.png | Bin 0 -> 909 bytes .../ctm/InductionProviderUltimate-ctm.png | Bin 0 -> 1343 bytes .../blocks/ctm/InductionProviderUltimate.png | Bin 0 -> 935 bytes 17 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellBasic-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellBasic.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellElite-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellElite.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellUltimate-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellUltimate.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderBasic-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderBasic.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderElite-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderElite.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate-ctm.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate.png diff --git a/src/main/java/mekanism/common/block/BlockBasic.java b/src/main/java/mekanism/common/block/BlockBasic.java index 240cc3cd0..eb5ecf70e 100644 --- a/src/main/java/mekanism/common/block/BlockBasic.java +++ b/src/main/java/mekanism/common/block/BlockBasic.java @@ -91,7 +91,7 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon { public IIcon[][] icons = new IIcon[16][6]; - public CTMData[][] ctms = new CTMData[16][2]; + public CTMData[][] ctms = new CTMData[16][4]; public BasicBlock blockType; @@ -181,20 +181,28 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon ctms[1][0] = new CTMData("ctm/InductionCasing", this, Arrays.asList(1, 2)).registerIcons(register); ctms[2][0] = new CTMData("ctm/InductionPortInput", this, Arrays.asList(1, 2)).registerIcons(register); ctms[2][1] = new CTMData("ctm/InductionPortOutput", this, Arrays.asList(1, 2)).registerIcons(register); + ctms[3][0] = new CTMData("ctm/InductionCellBasic", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[3][1] = new CTMData("ctm/InductionCellAdvanced", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[3][2] = new CTMData("ctm/InductionCellElite", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[3][3] = new CTMData("ctm/InductionCellUltimate", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[4][0] = new CTMData("ctm/InductionProviderBasic", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[4][1] = new CTMData("ctm/InductionProviderAdvanced", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[4][2] = new CTMData("ctm/InductionProviderElite", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[4][3] = new CTMData("ctm/InductionProviderUltimate", this, Arrays.asList(3, 4)).registerIcons(register); //TODO @unpairedbracket, mind fixing this? icons[0][0] = ctms[0][0].mainTextureData.icon; icons[1][0] = ctms[1][0].mainTextureData.icon; icons[2][0] = ctms[2][0].mainTextureData.icon; icons[2][1] = ctms[2][1].mainTextureData.icon; - icons[3][0] = register.registerIcon("mekanism:InductionCellBasic"); - icons[3][1] = register.registerIcon("mekanism:InductionCellAdvanced"); - icons[3][2] = register.registerIcon("mekanism:InductionCellElite"); - icons[3][3] = register.registerIcon("mekanism:InductionCellUltimate"); - icons[4][0] = register.registerIcon("mekanism:InductionProviderBasic"); - icons[4][1] = register.registerIcon("mekanism:InductionProviderAdvanced"); - icons[4][2] = register.registerIcon("mekanism:InductionProviderElite"); - icons[4][3] = register.registerIcon("mekanism:InductionProviderUltimate"); + icons[3][0] = ctms[3][0].mainTextureData.icon; + icons[3][1] = ctms[3][1].mainTextureData.icon; + icons[3][2] = ctms[3][2].mainTextureData.icon; + icons[3][3] = ctms[3][3].mainTextureData.icon; + icons[4][0] = ctms[4][0].mainTextureData.icon; + icons[4][1] = ctms[4][1].mainTextureData.icon; + icons[4][2] = ctms[4][2].mainTextureData.icon; + icons[4][3] = ctms[4][3].mainTextureData.icon; break; } } @@ -1049,6 +1057,17 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon return ctms[meta][1]; } + if(meta == 3) + { + TileEntityInductionCell tileEntity = (TileEntityInductionCell)world.getTileEntity(x, y, z); + return ctms[meta][tileEntity.tier.ordinal()]; + } + if(meta == 4) + { + TileEntityInductionProvider tileEntity = (TileEntityInductionProvider)world.getTileEntity(x, y, z); + return ctms[meta][tileEntity.tier.ordinal()]; + } + return ctms[meta][0]; } diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced-ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e1e680c819ef4fdff64972e18604d11925c13b GIT binary patch literal 762 zcmVC;$bZ019j+Nh0(!gu6H6-~7JdHMSb_s~uz(hapE9hEZ z90MTAu#7R|Ov@NE9v}6uW?^Z@fF$~a63bHG`N4=3Kvw$VZSlP?(F|O7KL7REN^~%>kX{VPQeW!>T-OIA zae*}TH4jJ{1O9bBpH~b>OJC~)ivAhY`T*DU0iqa?p}zC_0BI1+O1~86Z*#6q>jQK{ sL;)xO1)u;FK&n>mhwdL@uIf(vFR)CBR<_fU(EtDd07*qoM6N<$f^eKtQUCw| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellAdvanced.png new file mode 100644 index 0000000000000000000000000000000000000000..08fc0f9703a914b2e7480e6b54d716d61295b0f7 GIT binary patch literal 467 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellElite.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellElite.png new file mode 100644 index 0000000000000000000000000000000000000000..bd200172f4d408ef8a1f923463d4b0eee3b03c21 GIT binary patch literal 474 zcmV<00VV#4P) zK~z}7?U%7jLQxdPe}?cI&?30h*3j^#z#(uET8gOLauFN^2YF*# z4Gk`hZ7ta(5&Z!|_wvAS(T4Y4p@XSBc_i;l-?<#_`R@77x!fCJ_hCRPM^F}}^Bh=m zQaP3g*g^s!fsjCSqNvYTSWZsAdo1Y_0rkfE`6&PwUlx}!^9KV%zK7p$8vaY586c%Z zGk)=?uNl)7DZ=K}0AqW6)W;px^$t=>Y}+0inn)xNLSR<=e@l?cO(=m|W^EOYo=V*A zp8=4yiU2gtG60A7C2E-hy$(QQzEjXmgHj5m6y5Z^r@(D6*^=1UWUV4fDPF2|0QOFf z(RCdJ$M8MJ|+e!sn1+zRb3Md?4+Paj9Bl>i`q z3*5R(JnbKL>#l$NT0fqKtBc{(b(E6rj2OhE{-P<6&*#TZfxq7qynOcz*LCT1I-~zk zGKn#UFS|{C+&&!-;4CwC3RGIngBAXzw6D6>895KqI4(;YrOeG9-^X%m1GXAgkq zpLRG}-r(v2R@o9QN*Yu}cPfZ~q)&lv7Cg_x^E|rQ=|}Id{KYY#cv-@&yL9NVR@%h# zJZgu>0Ia-zMJkm71MBqze+beHH3kIn*E~Qn0)oVV6K9WZ)+Y~8K0IcjIlUMl^%nsM zN^YTvKkRz#X)7#$eGE!T^@rek{eYw84Zv>$L;XpIplyF~3;;jFGR6!tEo02!c)x!= z3kx#_1o01TF;r=lC%$8M6B#l$?}f4$ippO+1s>m78OrU$+!nX(uNxu?KmjNK1)u;F zzzi>kom@eDvP19Ow5%^tskUzyfb9#gsZwoUr+@-b017|>D1cd(_4)vbqV(7L0NeEe zB1PzL{l$nxQTki250EHI|Cz532s8y;*ByF4pXgg0HUc6kj8+h{H@mqhyXC;$Zz?rN~nu3Enc d>F4uN=s)2QwvFJVI1T^+002ovPDHLkV1lP;TzUWi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionCellUltimate.png new file mode 100644 index 0000000000000000000000000000000000000000..0c94b176518c5e94166cfc139f2596810d5e837b GIT binary patch literal 489 zcmV?Oh}tX0|`fx zYw-d*I2^73SAZ+PyUtI;_ZL)Uf8)bdC18z!*N-7j*S7$aKigD%+5!Vh+{CGJ$$ATv zAn3Y|68y%iTnXA>fq6T*=vDUnh#j@Uc}OBP^|ZWobK^4w?vki0lYRaFpdY{B1n z2UdHatJN4sW;X}uHCp%w+x38VTjl-%v$D_eul7K;GaEYui|#kW_A$)$>ojBeMKWNC z+iJmN1VRWVqj>>@SbR6Ri7j19AK!W#dwaMWCcJm_<5Id-1x^lv*|8c6U3oROI9|6bUv00000NkvXXu0mjfJIln{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced-ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..a12f4de7316d61137209055d8159d167e9bb6a2d GIT binary patch literal 1333 zcmV-512LY>yE%*Qc1j0!~ zK~#9!?OVTZ+eQ@rWK)79SS4$LEm}mdfeiJ~rCtIA>7cnwH)*RDMq4K%V}~ODgd-GC zNBs{)IVdpTMMi)O&QKtR5)=&)g^U7Ph#aZI>3BzqKaO^Ff-Am7_h{aIm&fnDdw2Je z>wk?o1m%}+>HvUWUzkF=h@85>z4ChSAM5~I*l^i+11Mn>yQw6N6GhQ=;48sD{&;5M zi+nu5tHtlb=VquLCr`eOpPX#`B?FvY0{wrOJ~;=92hn<%xC0=67nuG<^ztG3eS9bR z>&eDfq6V3qli!(31}q=V6EB_On2sQM`f zms#8!e2DzflnU0_Qm?VrCyVqglBN6!{C)7j+HxPT1&Py<}P1WJo9Km*go zcO-hYS}k^V=t zMxz18anR{>004$zKvh+*9i-sYVUq~rg~fnX;tMmNc#wYS3QD0$*62@vr|&BZKQso= z^s%(hvMJsNd%Yfp!yydA004A49n@;IB_E{eET6lJ#DG=e3p0R5-zcfoYEV@bs;Z(^ ztA!7)r(XeN<448-+L8JW?}P1j+t-KJc^{lvq`x}=u%9jltO{Q^57;ULvk~h^DQFmm zFZfUjQa!i~eSAxHXQ|U*N%+1Pz<-@EztMFanx=V~mZoXmbE?xezncqgMS0BAm>{?+ ze4)({wH{4JscV=gCg|#9E}ro^ZNDk8lr||DStq_CvW)cKr%z-1|H0Xw416Vue)RMu zx64jc_#FM}9kXg~msy*q?$lX;d=5-gFhC~0l5`qFeQ0tHY=1=tonQIi-L4S2UR|(f zxn2M6E}t?TmW3Z_fKte^K{Kl2!D5?P_FKGAT|TsQ2Y@?DzaNl=A8LT_KU>Wu#G8`X zdouBt3~+Hj`EnxZZZ1kL1STmPUlF;nNqcjX=5lo1_}S&?rW-(cup|ERpRX6x+7Z)l zg#n&^*xaxG^h4$XtEmsTZj`)?orUT?a=#qP18`R zRG?`Z3P(TT(KFJYCL)jTB&Wi%@w57Xb=L=k#Q>T38($v~83Wt_yK)NpV4Uzic=QLc zKHbcui2<_kv-*H_*9SzMH|cUk*q!-s}IQP0{~?80XLTaO?|+1<<{2+tn0=| r^d#vz|Bmc#@YG%ZBt-xF{3_&Mg_;A_@83j=00000NkvXXu0mjfiJ)o( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderAdvanced.png new file mode 100644 index 0000000000000000000000000000000000000000..5efc46f8971f71a3db20d5680927dd8d10f04a73 GIT binary patch literal 903 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 Bt(gD- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderElite-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderElite-ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5964252bb6b39ff003e449ff64b87772d7fcbf GIT binary patch literal 1304 zcmV+z1?T#SP)M+eQ@ryw)1q#7NzZ3MCO)Z~{JWb6g6(mHh+uDRmCQe<09PPdycS%w9OncLSjf!ps?CF5-yI3ckLd=qmeAhl6I>RThF_Ao;)+(F!SDg)_CHxQ|Z$#e+p)`9tm=+#5=J34w1 zzkHnWrKnD3XXJM=B^_1|$+KnIKah`aiC(M$3yaj>tpk@I81UQycI9+t%nN^G5Tsz$ zL*UbU(s|{8m8U~sIR*+d;A%qZR}TqTu}1y}$Y8D`Jn$nepxhupr30du_6Z0rm-hW8 zhbfzJxAO<2kHU4PRoOTNJL&(WB|)?@`3Zjm%{eUipT7{Vp$e!+lFOX007&z z-RD%dEDNfty6tBcP>}rQ>BStN$sIq|0%(MtJ8UcIbULtY87mW6h^jgylT06?qN0s!>;eE>kW+l65m zs}*?S0(;Fbh<6$q0JFkRw+)V?O~*7%IF19yabTKeXdN1Xqxy*5207pdV!!|oT{Dy( zu;*SAY_(c&90!JB004Adhb+r(dEEr(4jV)euNmnES>PwOfN~@K*0nCBeX>Vi{hhuo zFZ|FLK-0&{0n4VmKG^T~VVWj%T?YUdh5=2}0zOF7S#R#1BnD)OpV$Iu^o>k1G!3#W zLzZP|nik% z1E-NeFf05-haoz9G#wp`h-(bK`vZWtj5U4bLh`wr(#9ntdE!e+wvqa4BXt`4UkDF; zDa!ol+n2%~d!ypb(Jw!+SuO0b1B@4Z?yNvQ1Li3#fG55b_cn(5(CiE-enC22Ui#}6 zYs6eH|6KjWqSpb1Wgz;vAcJirS-bOJ_? z^lWY+w}x5R;xi#6nyi1fqOqaMY+KaGozyy@yB7#_<|phKR*Du;tPI2 zl5Irr0|Y-n@B;t{e!$J;|H2QrzT9$tK-MDo0Xc|-i_`o^k?`~REaYEJb^$NHm*m6% O0000OL7!@MZR z>5sW7XMKkS=1e(V*v`KHCrVq_ug4nz&^mnyg-7?Me0%v*G6Dbuhm^j*3B}$46t+l| z$5D457E91Sl5(*u$D`*T(_Nrb??8@&t~{_nc7DQ8z;AmsYR5?q}}iu(a9 z8sqh(2BA_`EW_oQJbY<0;=B7WY(u68*B!aOSeDANEAl%?W2Op1oeEo0QGQd(`8BCT z@%gnlpCrBVT)*=zz(uh(&1cZ9%hs5lA!$!XY5hR*Xmf*>FW0zA(fyGCU|(is!8Ah!|8 zx(h0m3PBLyx-I~Y<6sy@$lr89KS(xWA*~K1rOvdJUz0WB`u80W=m#9QUJ10nZ!_kqnB>%c-02JL90a)IMGvEWlKQ1Z<*ygZZL@lMU?CRvt+X_{fBGfgv` zSF+;uZkp7JC%WMBEGoyXqbG8F`wh@}Zpf0yI0;L7S~1E^lSZYV?$oI_&5dcQQmk%2 znbqhS;X+b-ztL$^I+J3e~q+|QldIDzE}25grO@9{};n2vz{ jV)<9}pS%s{_(J{*NvC8Fp`k7$00000NkvXXu0mjfTv(xV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate-ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..73716350e05a38cbf263bc339c9896ed817670a9 GIT binary patch literal 1343 zcmV-F1;F}=P)0xjexwO#-K1k6c9 zK~#9!?OQ!;+eQ@rWYelFLm+K|g&Tm5fgr8YAu)_j>11S0$3oidp@e{L8Cn#`9H8jX zYyk{*aJC8^lcH0*)#wliaE8RLQ6Mn^r6?hpgkVL86uHCc_$N{%?ed7!_ZHnF@9sMs z-+TA&?o;loweL?6Q=Tk70swq+{8=nLjvTc2@KO0jCit7z?_dTOTrT_s2tg)xUWw`_ z%tW)m7yK{Ze|Zh!dy7*$u+RnoT>blIpgv6wmv^VWXN^BG0j-lGJbC`W*8BTFp@L97 zNP10R?g}vYi|EC5@_TFTZsY)2;|pP(^!Lf{s7E?1u9Ih{1@Ay!zaaW-2^blq{@fK{ zctCJ6|fUu)?3}0yFYBYF_&?GB5?nFTdU+ zW+pp>PvQbB@B>}o^$TyHX`LM5aCsMp%e(mWn-4u@zfQ|kM#k8jJMjn35?=^fGv{4q z=N7{-V45ZjgY;^erv04ihG9UKWxIXf0CIxYJl&Y3_6l?SNEe_Hc3?S6$=22uOw&ZS z+eNKb0|0cp#ID@Bs;ZDA3BP~)r|rx1t0pmjR``NHEBgb#*^S)Mb7yAt530#DFyMV_N`?zG0#$3Pe$aD2h-NCAf1r`3k@qKQso=hSYc5K3K2UJx$!Y+XqJm zY2RxCSWOlK(!!6O2h0?KQO9XWO;A-;Pw=58NOk`*^rlUAXNl8bM);l>;Ql&6ek02= zBuTO}ElHB>=TxU<_ioO=6?J2V#eg*NV{L}$?9p^|_>8#54`2TTz+Hw*#UfG`960ob9o|7sAYsp1$OkoD&syjy^ngW;M6uY+&4`JFvzei@+d( z1+c^yqE2I|5B2wf*$+skr$cYu*%C3=;Y;UPZppj5n@gAuv%(LZfcb!BgJx8P%6OYu z^v-y`Jb7r@YXZGa^8ElS{J;sgv~oL@O9*Qr-r*oi{D}z=K0b-;DC%x5O#Z?1=%BnI)`22G8qECRZdHqi8%9|M1RpRM!FtnoQN zAZvcWgfPbE{D7?a0YNc*z6hP3Ow#(#mao@!jXP4^ER( zsbu@$&p+Nnq2g?2Zmr#o+zzwG=lp=I`2k@kIjrzGKOoLB!ubK5AHewm060J3-15KS z2b@*jd451vH%3WsjyOLcfd~ifz03y@_wVy*$iI?|Gq6$NAP)cl002ovPDHLkV1n4N BbV>jK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/InductionProviderUltimate.png new file mode 100644 index 0000000000000000000000000000000000000000..10ba4afda06fa3a41b2f5e6f584be3a9576aad6c GIT binary patch literal 935 zcmV;Y16cftP)_-)-=(>0QmA>$y?6Kfz4z{Y-=E(v^?dnlXJv7X zVNvR-xzf3tTN;Y-mBlqi7&4_*VQc#1e=&N$`lPo509Su4pk0~1G~;`-oAD6;jT)wf~n7BqhdIhz;HN6W90AyBEYE1vDTP?*h&cb)O5BY%Gid2|Ze zu2?^I3tH9CaMOn|t+$=TB$URoc{n~4$|vSRzP=5e3ZxovQWNX5d0}jHN_+?5OkYW; z()heEl$jH9CMS$YK9h@voO<}jf%2O|N2(DM%p2ArfAOaIg*i~{}7tix>U7^+Uyx_f*UDw4h zj9`Dmg;e@1Jc$m-3~%~jDXp%q;&~pmT8(0{2tchS;;PD)WufajU*CKWa!E$DZwKTi zHG4NUHgH{+VzJ2j`Z@rGLIHqsxeP$5RKm7x48!0y4+6t+;Xl6&EAgRo90%X`@qHi1 zaeA(i6%eQ6+$u=l3}qF9LZN`~``ES(fMr=|nilZg5H$UGCq|O`KwRncOPQSL5huSd z5P_yIszG)$H3!P&GLGY5Sr!1cZDX3|nH-SqJZW~sMnGnN9GRwxrfF!JhH09;l^e+w zkQf2EQDUd&K&e!UtW#w*2imUKU*87i2J8bPS!h?njS>ROvLeYRA&_!+86F>s>3E@G z)J=wApzC_j>2zHW-b-2X>NJfT#pgnBd>FRl*0)Ij-oN+&s61V=;Qh&J(9)BdQM#Wp zI@tfzcj?JCesGaPsTzKH`bo`%CmMA|w5s7>rDnnbrb5^BPmN4NbI=G#{3M2rT^PM4 zly+LtwWCu4uGTN*!Z8z_u4DND9hm4*HnO9Q&!3LjZ1j&axwD7X`Zm-n1CHbCHy&Tg zk=&oGp6@{V-qEGq3I4E??0|Y>`Cl~jyJ707xzZVy@w>St{sACHY_*KR^3nhR002ov JPDHLkV1iG%xq<)y literal 0 HcmV?d00001 From 4e3999ea9cf18502c2b2c8dd95511700eb12de02 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Wed, 18 Mar 2015 01:32:35 +0000 Subject: [PATCH 2/2] Make the rendering of Induction Matrix internals a bit nicer. --- src/main/java/mekanism/client/render/CTM.java | 206 ++++++++---------- .../client/render/block/RenderBlocksCTM.java | 12 +- src/main/java/mekanism/common/CTMData.java | 8 + .../mekanism/common/block/BlockBasic.java | 16 +- 4 files changed, 114 insertions(+), 128 deletions(-) diff --git a/src/main/java/mekanism/client/render/CTM.java b/src/main/java/mekanism/client/render/CTM.java index 3c0f04eea..8ca362695 100644 --- a/src/main/java/mekanism/client/render/CTM.java +++ b/src/main/java/mekanism/client/render/CTM.java @@ -81,14 +81,14 @@ public class CTM {}, }; - public static int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas) + public static int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas, boolean convexConnections) { - int index = getTexture(world, x, y, z, side, blockMetas); + int index = getTexture(world, x, y, z, side, blockMetas, convexConnections); return submaps[index]; } - public static int getTexture(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas) + public static int getTexture(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas, boolean convexConnections) { if(world == null) { @@ -98,157 +98,135 @@ public class CTM int texture = 0; boolean b[] = new boolean[6]; - + if(side <= 1) { - b[0] = isConnected(world, x - 1, y, z, side, blockMetas); - b[1] = isConnected(world, x + 1, y, z, side, blockMetas); - b[2] = isConnected(world, x, y, z + 1, side, blockMetas); - b[3] = isConnected(world, x, y, z - 1, side, blockMetas); - } - else if(side == 2) + b[0] = isConnected(world, x - 1, y, z, side, blockMetas, convexConnections); + b[1] = isConnected(world, x + 1, y, z, side, blockMetas, convexConnections); + b[2] = isConnected(world, x, y, z + 1, side, blockMetas, convexConnections); + b[3] = isConnected(world, x, y, z - 1, side, blockMetas, convexConnections); + } else if(side == 2) { - b[0] = isConnected(world, x + 1, y, z, side, blockMetas); - b[1] = isConnected(world, x - 1, y, z, side, blockMetas); - b[2] = isConnected(world, x, y - 1, z, side, blockMetas); - b[3] = isConnected(world, x, y + 1, z, side, blockMetas); - } - else if(side == 3) + b[0] = isConnected(world, x + 1, y, z, side, blockMetas, convexConnections); + b[1] = isConnected(world, x - 1, y, z, side, blockMetas, convexConnections); + b[2] = isConnected(world, x, y - 1, z, side, blockMetas, convexConnections); + b[3] = isConnected(world, x, y + 1, z, side, blockMetas, convexConnections); + } else if(side == 3) { - b[0] = isConnected(world, x - 1, y, z, side, blockMetas); - b[1] = isConnected(world, x + 1, y, z, side, blockMetas); - b[2] = isConnected(world, x, y - 1, z, side, blockMetas); - b[3] = isConnected(world, x, y + 1, z, side, blockMetas); - } - else if(side == 4) + b[0] = isConnected(world, x - 1, y, z, side, blockMetas, convexConnections); + b[1] = isConnected(world, x + 1, y, z, side, blockMetas, convexConnections); + b[2] = isConnected(world, x, y - 1, z, side, blockMetas, convexConnections); + b[3] = isConnected(world, x, y + 1, z, side, blockMetas, convexConnections); + } else if(side == 4) { - b[0] = isConnected(world, x, y, z - 1, side, blockMetas); - b[1] = isConnected(world, x, y, z + 1, side, blockMetas); - b[2] = isConnected(world, x, y - 1, z, side, blockMetas); - b[3] = isConnected(world, x, y + 1, z, side, blockMetas); - } - else if(side == 5) + b[0] = isConnected(world, x, y, z - 1, side, blockMetas, convexConnections); + b[1] = isConnected(world, x, y, z + 1, side, blockMetas, convexConnections); + b[2] = isConnected(world, x, y - 1, z, side, blockMetas, convexConnections); + b[3] = isConnected(world, x, y + 1, z, side, blockMetas, convexConnections); + } else if(side == 5) { - b[0] = isConnected(world, x, y, z + 1, side, blockMetas); - b[1] = isConnected(world, x, y, z - 1, side, blockMetas); - b[2] = isConnected(world, x, y - 1, z, side, blockMetas); - b[3] = isConnected(world, x, y + 1, z, side, blockMetas); + b[0] = isConnected(world, x, y, z + 1, side, blockMetas, convexConnections); + b[1] = isConnected(world, x, y, z - 1, side, blockMetas, convexConnections); + b[2] = isConnected(world, x, y - 1, z, side, blockMetas, convexConnections); + b[3] = isConnected(world, x, y + 1, z, side, blockMetas, convexConnections); } - + if(b[0] & !b[1] & !b[2] & !b[3]) { texture = 3; - } - else if(!b[0] & b[1] & !b[2] & !b[3]) + } else if(!b[0] & b[1] & !b[2] & !b[3]) { texture = 1; - } - else if(!b[0] & !b[1] & b[2] & !b[3]) + } else if(!b[0] & !b[1] & b[2] & !b[3]) { texture = 16; - } - else if(!b[0] & !b[1] & !b[2] & b[3]) + } else if(!b[0] & !b[1] & !b[2] & b[3]) { texture = 48; - } - else if(b[0] & b[1] & !b[2] & !b[3]) + } else if(b[0] & b[1] & !b[2] & !b[3]) { texture = 2; - } - else if(!b[0] & !b[1] & b[2] & b[3]) + } else if(!b[0] & !b[1] & b[2] & b[3]) { texture = 32; - } - else if(b[0] & !b[1] & b[2] & !b[3]) + } else if(b[0] & !b[1] & b[2] & !b[3]) { texture = 19; - } - else if(b[0] & !b[1] & !b[2] & b[3]) + } else if(b[0] & !b[1] & !b[2] & b[3]) { texture = 51; - } - else if(!b[0] & b[1] & b[2] & !b[3]) + } else if(!b[0] & b[1] & b[2] & !b[3]) { texture = 17; - } - else if(!b[0] & b[1] & !b[2] & b[3]) + } else if(!b[0] & b[1] & !b[2] & b[3]) { texture = 49; - } - else if(!b[0] & b[1] & b[2] & b[3]) + } else if(!b[0] & b[1] & b[2] & b[3]) { texture = 33; - } - else if(b[0] & !b[1] & b[2] & b[3]) + } else if(b[0] & !b[1] & b[2] & b[3]) { texture = 35; - } - else if(b[0] & b[1] & !b[2] & b[3]) + } else if(b[0] & b[1] & !b[2] & b[3]) { texture = 50; - } - else if(b[0] & b[1] & b[2] & !b[3]) + } else if(b[0] & b[1] & b[2] & !b[3]) { texture = 18; - } - else if(b[0] & b[1] & b[2] & b[3]) + } else if(b[0] & b[1] & b[2] & b[3]) { texture = 34; } boolean b2[] = new boolean[6]; - + if(side <= 1) { - b2[0] = !isConnected(world, x + 1, y, z + 1, side, blockMetas); - b2[1] = !isConnected(world, x - 1, y, z + 1, side, blockMetas); - b2[2] = !isConnected(world, x + 1, y, z - 1, side, blockMetas); - b2[3] = !isConnected(world, x - 1, y, z - 1, side, blockMetas); - } - else if(side == 2) + b2[0] = !isConnected(world, x + 1, y, z + 1, side, blockMetas, convexConnections); + b2[1] = !isConnected(world, x - 1, y, z + 1, side, blockMetas, convexConnections); + b2[2] = !isConnected(world, x + 1, y, z - 1, side, blockMetas, convexConnections); + b2[3] = !isConnected(world, x - 1, y, z - 1, side, blockMetas, convexConnections); + } else if(side == 2) { - b2[0] = !isConnected(world, x - 1, y - 1, z, side, blockMetas); - b2[1] = !isConnected(world, x + 1, y - 1, z, side, blockMetas); - b2[2] = !isConnected(world, x - 1, y + 1, z, side, blockMetas); - b2[3] = !isConnected(world, x + 1, y + 1, z, side, blockMetas); - } - else if(side == 3) + b2[0] = !isConnected(world, x - 1, y - 1, z, side, blockMetas, convexConnections); + b2[1] = !isConnected(world, x + 1, y - 1, z, side, blockMetas, convexConnections); + b2[2] = !isConnected(world, x - 1, y + 1, z, side, blockMetas, convexConnections); + b2[3] = !isConnected(world, x + 1, y + 1, z, side, blockMetas, convexConnections); + } else if(side == 3) { - b2[0] = !isConnected(world, x + 1, y - 1, z, side, blockMetas); - b2[1] = !isConnected(world, x - 1, y - 1, z, side, blockMetas); - b2[2] = !isConnected(world, x + 1, y + 1, z, side, blockMetas); - b2[3] = !isConnected(world, x - 1, y + 1, z, side, blockMetas); - } - else if(side == 4) + b2[0] = !isConnected(world, x + 1, y - 1, z, side, blockMetas, convexConnections); + b2[1] = !isConnected(world, x - 1, y - 1, z, side, blockMetas, convexConnections); + b2[2] = !isConnected(world, x + 1, y + 1, z, side, blockMetas, convexConnections); + b2[3] = !isConnected(world, x - 1, y + 1, z, side, blockMetas, convexConnections); + } else if(side == 4) { - b2[0] = !isConnected(world, x, y - 1, z + 1, side, blockMetas); - b2[1] = !isConnected(world, x, y - 1, z - 1, side, blockMetas); - b2[2] = !isConnected(world, x, y + 1, z + 1, side, blockMetas); - b2[3] = !isConnected(world, x, y + 1, z - 1, side, blockMetas); - } - else if(side == 5) + b2[0] = !isConnected(world, x, y - 1, z + 1, side, blockMetas, convexConnections); + b2[1] = !isConnected(world, x, y - 1, z - 1, side, blockMetas, convexConnections); + b2[2] = !isConnected(world, x, y + 1, z + 1, side, blockMetas, convexConnections); + b2[3] = !isConnected(world, x, y + 1, z - 1, side, blockMetas, convexConnections); + } else if(side == 5) { - b2[0] = !isConnected(world, x, y - 1, z - 1, side, blockMetas); - b2[1] = !isConnected(world, x, y - 1, z + 1, side, blockMetas); - b2[2] = !isConnected(world, x, y + 1, z - 1, side, blockMetas); - b2[3] = !isConnected(world, x, y + 1, z + 1, side, blockMetas); + b2[0] = !isConnected(world, x, y - 1, z - 1, side, blockMetas, convexConnections); + b2[1] = !isConnected(world, x, y - 1, z + 1, side, blockMetas, convexConnections); + b2[2] = !isConnected(world, x, y + 1, z - 1, side, blockMetas, convexConnections); + b2[3] = !isConnected(world, x, y + 1, z + 1, side, blockMetas, convexConnections); } if(texture == 17 && b2[0]) { texture = 4; } - + if(texture == 19 && b2[1]) { texture = 5; } - + if(texture == 49 && b2[2]) { texture = 20; } - + if(texture == 51 && b2[3]) { texture = 21; @@ -258,17 +236,17 @@ public class CTM { texture = 7; } - + if(texture == 33 && b2[0] && b2[2]) { texture = 6; } - + if(texture == 35 && b2[3] && b2[1]) { texture = 23; } - + if(texture == 50 && b2[3] && b2[2]) { texture = 22; @@ -278,17 +256,17 @@ public class CTM { texture = 39; } - + if(texture == 33 && b2[0] && !b2[2]) { texture = 38; } - + if(texture == 35 && !b2[3] && b2[1]) { texture = 53; } - + if(texture == 50 && b2[3] && !b2[2]) { texture = 52; @@ -298,17 +276,17 @@ public class CTM { texture = 37; } - + if(texture == 33 && !b2[0] && b2[2]) { texture = 36; } - + if(texture == 35 && b2[3] && !b2[1]) { texture = 55; } - + if(texture == 50 && !b2[3] && b2[2]) { texture = 54; @@ -323,17 +301,17 @@ public class CTM { texture = 9; } - + if(texture == 34 && b2[0] && !b2[1] && b2[2] && b2[3]) { texture = 25; } - + if(texture == 34 && b2[0] && b2[1] && !b2[2] && b2[3]) { texture = 8; } - + if(texture == 34 && b2[0] && b2[1] && b2[2] && !b2[3]) { texture = 24; @@ -343,17 +321,17 @@ public class CTM { texture = 11; } - + if(texture == 34 && !b2[0] && !b2[1] && b2[2] && b2[3]) { texture = 26; } - + if(texture == 34 && !b2[0] && b2[1] && !b2[2] && b2[3]) { texture = 27; } - + if(texture == 34 && b2[0] && !b2[1] && b2[2] && !b2[3]) { texture = 10; @@ -372,26 +350,26 @@ public class CTM { texture = 40; } - + if(texture == 34 && !b2[0] && b2[1] && !b2[2] && !b2[3]) { texture = 41; } - + if(texture == 34 && !b2[0] && !b2[1] && b2[2] && !b2[3]) { texture = 56; } - + if(texture == 34 && !b2[0] && !b2[1] && !b2[2] && b2[3]) { texture = 57; } - + return texture; } - public static boolean isConnected(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas) + public static boolean isConnected(IBlockAccess world, int x, int y, int z, int side, HashMap> blockMetas, boolean convexConnections) { int x2 = x, y2 = y, z2 = z; @@ -430,7 +408,7 @@ public class CTM { validBlockMeta1 |= block1.equals(entry.getKey()) && entry.getValue().contains(meta1); - invalidBlockMeta2 &= !(block2.equals(entry.getKey()) && entry.getValue().contains(meta2)); + invalidBlockMeta2 &= convexConnections || !(block2.equals(entry.getKey()) && entry.getValue().contains(meta2)); } return validBlockMeta1 && invalidBlockMeta2; diff --git a/src/main/java/mekanism/client/render/block/RenderBlocksCTM.java b/src/main/java/mekanism/client/render/block/RenderBlocksCTM.java index 058915476..6a319c14d 100644 --- a/src/main/java/mekanism/client/render/block/RenderBlocksCTM.java +++ b/src/main/java/mekanism/client/render/block/RenderBlocksCTM.java @@ -149,7 +149,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(0.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 4, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 4, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(1, 0, 4, 5, 14, 19, 17, 23, 9); side(1, 14, 9, 23, tex[0], false, 4); @@ -172,7 +172,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 5, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 5, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(3, 2, 6, 7, 15, 25, 16, 21, 11); side(11, 21, 3, 15, tex[3], false, 5); @@ -195,7 +195,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(0.0, 1.0, 0.0, i.getMinU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 2, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 2, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(2, 3, 0, 1, 15, 18, 14, 22, 8); side(2, 15, 8, 22, tex[0], false, 2); @@ -219,7 +219,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(1.0, 1.0, 1.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 3, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 3, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(4, 7, 6, 5, 20, 16, 24, 17, 10); side(17, 4, 20, 10, tex[2], false, 3); @@ -242,7 +242,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(1.0, 0.0, 1.0, i.getMaxU(), i.getMaxV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 0, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 0, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(0, 3, 7, 4, 18, 21, 20, 19, 13); side(13, 21, 7, 20, tex[3], true, 0); @@ -265,7 +265,7 @@ public class RenderBlocksCTM extends RenderBlocks tessellator.addVertexWithUV(1.0, 1.0, 0.0, i.getMaxU(), i.getMinV()); } else { - int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 1, dataCTM.acceptableBlockMetas); + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 1, dataCTM.acceptableBlockMetas, dataCTM.renderConvexConnections); setupSides(2, 1, 5, 6, 22, 23, 24, 25, 12); side(12, 24, 6, 25, tex[3], false, 1); diff --git a/src/main/java/mekanism/common/CTMData.java b/src/main/java/mekanism/common/CTMData.java index 50f334796..0c9858c7e 100644 --- a/src/main/java/mekanism/common/CTMData.java +++ b/src/main/java/mekanism/common/CTMData.java @@ -27,6 +27,8 @@ public class CTMData public int facing; + public boolean renderConvexConnections = false; + public CTMData(String textureName, Block block, List connectableMeta) { mainTextureData = new CTMTextureData(textureName); @@ -113,6 +115,12 @@ public class CTMData return this; } + public CTMData setRenderConvexConnections() + { + renderConvexConnections = true; + return this; + } + @SideOnly(Side.CLIENT) public boolean shouldRenderSide(IBlockAccess world, int x, int y, int z, int side) { diff --git a/src/main/java/mekanism/common/block/BlockBasic.java b/src/main/java/mekanism/common/block/BlockBasic.java index eb5ecf70e..9749d8819 100644 --- a/src/main/java/mekanism/common/block/BlockBasic.java +++ b/src/main/java/mekanism/common/block/BlockBasic.java @@ -181,14 +181,14 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon ctms[1][0] = new CTMData("ctm/InductionCasing", this, Arrays.asList(1, 2)).registerIcons(register); ctms[2][0] = new CTMData("ctm/InductionPortInput", this, Arrays.asList(1, 2)).registerIcons(register); ctms[2][1] = new CTMData("ctm/InductionPortOutput", this, Arrays.asList(1, 2)).registerIcons(register); - ctms[3][0] = new CTMData("ctm/InductionCellBasic", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[3][1] = new CTMData("ctm/InductionCellAdvanced", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[3][2] = new CTMData("ctm/InductionCellElite", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[3][3] = new CTMData("ctm/InductionCellUltimate", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[4][0] = new CTMData("ctm/InductionProviderBasic", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[4][1] = new CTMData("ctm/InductionProviderAdvanced", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[4][2] = new CTMData("ctm/InductionProviderElite", this, Arrays.asList(3, 4)).registerIcons(register); - ctms[4][3] = new CTMData("ctm/InductionProviderUltimate", this, Arrays.asList(3, 4)).registerIcons(register); + ctms[3][0] = new CTMData("ctm/InductionCellBasic", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[3][1] = new CTMData("ctm/InductionCellAdvanced", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[3][2] = new CTMData("ctm/InductionCellElite", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[3][3] = new CTMData("ctm/InductionCellUltimate", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[4][0] = new CTMData("ctm/InductionProviderBasic", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[4][1] = new CTMData("ctm/InductionProviderAdvanced", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[4][2] = new CTMData("ctm/InductionProviderElite", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); + ctms[4][3] = new CTMData("ctm/InductionProviderUltimate", this, Arrays.asList(3, 4)).registerIcons(register).setRenderConvexConnections(); //TODO @unpairedbracket, mind fixing this? icons[0][0] = ctms[0][0].mainTextureData.icon;