From 0420779e5e930c51633b82c920d24fd9ec0a5519 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Tue, 23 Aug 2016 17:35:43 -0400 Subject: [PATCH] Added different types of mimic blocks and created their recipes --- .../bloodmagic/block/BlockMimic.java | 56 ++++++++++++++++-- .../waila/provider/DataProviderMimic.java | 2 +- .../bloodmagic/registry/ModRecipes.java | 3 + .../bloodmagic/blockstates/BlockMimic.json | 24 +++++++- .../assets/bloodmagic/lang/en_US.lang | 6 +- .../textures/blocks/EtherealOpaqueMimic.png | Bin 0 -> 972 bytes .../textures/blocks/SentientMimic.png | Bin 0 -> 901 bytes .../textures/blocks/SolidClearMimic.png | Bin 0 -> 969 bytes .../textures/blocks/SolidLightMimic.png | Bin 0 -> 964 bytes .../textures/blocks/SolidOpaqueMimic.png | Bin 0 -> 961 bytes 10 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/bloodmagic/textures/blocks/EtherealOpaqueMimic.png create mode 100644 src/main/resources/assets/bloodmagic/textures/blocks/SentientMimic.png create mode 100644 src/main/resources/assets/bloodmagic/textures/blocks/SolidClearMimic.png create mode 100644 src/main/resources/assets/bloodmagic/textures/blocks/SolidLightMimic.png create mode 100644 src/main/resources/assets/bloodmagic/textures/blocks/SolidOpaqueMimic.png diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java index 8a386ff1..d7a122dd 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockMimic.java @@ -36,7 +36,8 @@ import WayofTime.bloodmagic.tile.TileMimic; public class BlockMimic extends BlockStringContainer implements IVariantProvider { - public static final String[] names = { "nohitbox" }; + + public static final String[] names = { "nohitbox", "solidopaque", "solidclear", "solidlight", "sentient" }; public BlockMimic() { @@ -52,9 +53,36 @@ public class BlockMimic extends BlockStringContainer implements IVariantProvider } @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World world, BlockPos pos) + public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos) { - return NULL_AABB; + switch (this.getMetaFromState(state)) + { + case 1: + case 2: + case 3: + case 4: + TileMimic tileMimic = (TileMimic) world.getTileEntity(pos); + if (tileMimic != null && tileMimic.getStackInSlot(0) != null) + { + Block mimicBlock = Block.getBlockFromItem(tileMimic.getStackInSlot(0).getItem()); + if (mimicBlock == null) + { + return FULL_BLOCK_AABB; + } + IBlockState mimicState = mimicBlock.getStateFromMeta(tileMimic.metaOfReplacedBlock); + if (mimicBlock != this) + { + return mimicState.getCollisionBoundingBox(world, pos); + } + } else + { + return FULL_BLOCK_AABB; + } + case 0: + default: + return NULL_AABB; + } + } @Override @@ -82,8 +110,26 @@ public class BlockMimic extends BlockStringContainer implements IVariantProvider @Override public int getLightOpacity(IBlockState state) { - //Overriden for now so that in the future I don't have to. - return this.lightOpacity; + switch (this.getMetaFromState(state)) + { + case 2: + case 4: + return 0; + default: + return this.lightOpacity; + } + } + + @Override + public int getLightValue(IBlockState state) + { + switch (this.getMetaFromState(state)) + { + case 3: + return 15; + default: + return this.lightValue; + } } @Override diff --git a/src/main/java/WayofTime/bloodmagic/compat/waila/provider/DataProviderMimic.java b/src/main/java/WayofTime/bloodmagic/compat/waila/provider/DataProviderMimic.java index d3cdc2f2..2ccc255e 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/waila/provider/DataProviderMimic.java +++ b/src/main/java/WayofTime/bloodmagic/compat/waila/provider/DataProviderMimic.java @@ -21,7 +21,7 @@ public class DataProviderMimic implements IWailaDataProvider public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) { TileMimic mimic = (TileMimic) accessor.getTileEntity(); - return mimic != null && mimic.getStackInSlot(0) != null ? mimic.getStackInSlot(0) : new ItemStack(ModBlocks.mimic); + return mimic != null && mimic.getStackInSlot(0) != null ? mimic.getStackInSlot(0) : new ItemStack(ModBlocks.mimic, 1, mimic.getBlockMetadata()); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index b769cd3b..a39a5244 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -160,6 +160,9 @@ public class ModRecipes } GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.mimic, 4, 0), "b b", " r ", "bob", 'b', new ItemStack(ModBlocks.bloodStoneBrick), 'r', new ItemStack(ModBlocks.bloodRune), 'o', OrbRegistry.getOrbStack(ModItems.orbMagician))); + GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.mimic, 4, 1), "bsb", "srs", "bob", 'b', new ItemStack(ModBlocks.bloodStoneBrick), 'r', new ItemStack(ModBlocks.bloodRune), 's', "stone", 'o', OrbRegistry.getOrbStack(ModItems.orbMagician))); + GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.mimic, 4, 2), "bsb", "srs", "bob", 'b', new ItemStack(ModBlocks.bloodStoneBrick), 'r', new ItemStack(ModBlocks.bloodRune), 's', "blockGlass", 'o', OrbRegistry.getOrbStack(ModItems.orbMagician))); + GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.mimic, 2, 3), "bnb", "trt", "bob", 'b', new ItemStack(ModBlocks.bloodStoneBrick), 'r', new ItemStack(ModBlocks.bloodRune), 'n', Blocks.GLOWSTONE, 't', "torch", 'o', OrbRegistry.getOrbStack(ModItems.orbMagician))); } public static void addAltarRecipes() diff --git a/src/main/resources/assets/bloodmagic/blockstates/BlockMimic.json b/src/main/resources/assets/bloodmagic/blockstates/BlockMimic.json index f6fd033a..ae9c2042 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/BlockMimic.json +++ b/src/main/resources/assets/bloodmagic/blockstates/BlockMimic.json @@ -9,9 +9,29 @@ "type": { "nohitbox": { "textures": { - "all": "bloodmagic:blocks/LargeBloodStoneBrick" + "all": "bloodmagic:blocks/EtherealOpaqueMimic" } - } + }, + "solidopaque": { + "textures": { + "all": "bloodmagic:blocks/SolidOpaqueMimic" + } + }, + "solidclear": { + "textures": { + "all": "bloodmagic:blocks/SolidClearMimic" + } + }, + "solidlight": { + "textures": { + "all": "bloodmagic:blocks/SolidLightMimic" + } + }, + "sentient": { + "textures": { + "all": "bloodmagic:blocks/SentientMimic" + } + } } } } diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index a544e076..167314b4 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -250,7 +250,11 @@ tile.BloodMagic.demonCrystalDESTRUCTIVE.name=Destructive Will Crystal Cluster tile.BloodMagic.demonCrystalVENGEFUL.name=Vengeful Will Crystal Cluster tile.BloodMagic.demonCrystalSTEADFAST.name=Steadfast Will Crystal Cluster -tile.BloodMagic.mimic.nohitbox.name=Ethereal Mimic Block +tile.BloodMagic.mimic.nohitbox.name=Ethereal Opaque Mimic Block +tile.BloodMagic.mimic.solidopaque.name=Opaque Mimic Block +tile.BloodMagic.mimic.solidclear.name=Clear Ethereal Mimic Block +tile.BloodMagic.mimic.solidlight.name=Lighted Ethereal Mimic Block +tile.BloodMagic.mimic.sentient.name=Sentient Mimic Block # Fluids fluid.lifeEssence=Life Essence diff --git a/src/main/resources/assets/bloodmagic/textures/blocks/EtherealOpaqueMimic.png b/src/main/resources/assets/bloodmagic/textures/blocks/EtherealOpaqueMimic.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b0f00080bfe45760348588a54e2d619c9e1984 GIT binary patch literal 972 zcmV;-12g=IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&13gJZK~y+T6_e{v9Ay;7_s{T_R8zyUJ2TAe z>;(!mQG^P6--W%*?A-UFNxv5irIclN0gX^&3KF4ROssx1F@7=8l%(;GGBH0-zrK0T zInVh$&xy_4eMUN=qiZ_3xh3Y3b7agUDb*zL@dS1D6fLD-E~POuCb^VJR!@`8=_Ecl zB9=@Vtgo#w@I!h%2ft~Pji2Kmpw!C-PSld9)q@;mLry*{XefG?@b>=c*Ihw!M!_|q?6}#Dh0M5Kjpr0#nXdByjDbD zMU0h!wGBoB2lAD+p{qhQ84$>32o;KtjMKWYv4ORq21x~hjae9z2)!QznD&^ zbOMV|237J~g#D19?J=7;B^H1Gd%TVm3B(5i$_qRqf%@v^NB(^Mnm4y^nErH5(2K;8 zfa+!y|6x~DTikv3J5iu(cvg$RwkZkqV*xlmJmC1--?+KDmPS(!kALNG^c5q4S*~y5 zgbrOVz=$ivvgQJM{2LY%7u1Vww)X_$@)djAI|SZCqA=iSvdfAxWmlZ2h{d_tGjggx zR8+}ZSdF+9M z=Q(5&&+z3gzLXGIeoyl6v!q?Jxw%a!u`jN!F%V^nwm@v&Q23-;q2IHpHf8T1N2bZe?^J zG%heMHD!e|WdHyJ14%?dR5(u+liP0FMifQ$4~?xjLHp7lX>7@oco)UXaCn=cL^VL( zZ3m8HTeg(+2Z9!@3#UNSe<;u*27>-ouzLJJfEeJoLm_Ggx&MTfZs?bWc`zdij?r;MfI2T12$3mZG{~{$eT$ynUJ?$7qc&)ZYuh?aehe=Q$sLyOT!uT%9erxqZ#8zzpIA zm91DdMp*1I(7|(g8B+R>EYr*|NFZQHP=AB&Mrd>RuQGk2d;4dWolzxMpIb z7taaYlsI?s)tp3o;*Nvw&G4LvI1n36i&@v?j|!4la?n_&;;mj+G)*PTHKCQgcqt(& z+Lh#ACb}Mr#VJ-|?~TT+MOo@TXHd$f{SbxptAZ$#dmBsTN;6%fmB5l8OW{zta_?m( zg)5BhI2=t-k4el%$E49WB(k1L)-;_CNrPvy-uuL|rRCv>M22MYJ(D{t_kcvUPzn6( b#f1L>y44PyWMxgZ00000NkvXXu0mjfo7Je$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/blocks/SolidClearMimic.png b/src/main/resources/assets/bloodmagic/textures/blocks/SolidClearMimic.png new file mode 100644 index 0000000000000000000000000000000000000000..8c571249a2eda18245fa42b9399dad3c53c973d3 GIT binary patch literal 969 zcmV;)12+7LP)N2bZe?^J zG%heMHD!e|WdHyJM@d9MR5(u^l1pzJRTzf7;UX%ET9u}vA`4ozaS~r<>=;+5QX{3Y z9eZNW*b`r7=FHWxlLAr}K(3QG32oIqLa0rsF|gtvAQcc*)xXpQdN{E7bac+*J@5Cv zPr`qzhLSH(Or}r@X_A=&YEmVazKQux74w2lF1J7`m*Q42Pdc5WFq|k@!r>;`lDr+LAm4 z(a>Ue*~S)|1Z{!uLRc6Uc?P6xzaeS`0La(|ocqnOXH z+Z@M_XiH~b$UOQNEizeEIw&aEGCTcqOGzqaOjG4&L_X|*ULZn{q>(bJsaa$Ax`9= z=~bdABoZ#|cXblt?G|BZ;j|qZm5Qv*!;qvKQR4IOW)iGNKno6pD= zGPmgkJ-N3_vs7g`<8gR&#KY4OLD!Sk9Y*oj|GV0na#(c@Y}c36x)S?25_#z$kW~#r z!J4j7uW4xY7Di2H&Ct>HGFnH+XjQ40D`<_T{LIG7e|EjWcM2% z3x>fOPA{at?#Pf`9$aZ6tQPG+5?fwE$VT#W66IW0VR3PhPFHd-B=-{O{#6UVXXE+- zT{)hlF}h@8c`id&V($j5ELF(=$ANjFhB}ktMz%;YHHVV=l3;-KE~}(<00000NkvXXu0mjf?C;4E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/blocks/SolidLightMimic.png b/src/main/resources/assets/bloodmagic/textures/blocks/SolidLightMimic.png new file mode 100644 index 0000000000000000000000000000000000000000..9d020eddb71782bb5bbb905d040145e820f89e96 GIT binary patch literal 964 zcmV;#13UbQP)N2bZe?^J zG%heMHD!e|WdHyJLP z?Cj3Y%+Bx0Zfb%QBFUPx`y*>C^g*a^LbN2*AU^0zpVXj4|0+Q~p7!Cuy@z|xx##=+ zT*bcoHn+_w(oG39;>-! zLa#;8@_1Cfjvf01Zb9e zCr*lk(TMVTi7gSjQynLzPNJl&Y2vVfBRW)!0=>PybR6*Q@56sjem>>p@%Mc5>k+%d zF5PE6ij{(h>f=TU>G}sK`pOtV65va>qFxiFZ4$rD>5DV|`um)Ve=ayZ{)yNQal#O@ zT#}c0;#PpObQ#53eHU*d!b==V57aj*C$_`s>35u;U+~)>e{%NYF;38;6$X?`6~e?O za5jX4w@@k#mQ^pwGQRiB4^bZLvSA&7sVT z3*l>D0|PCuvLB}C4i4$}c1fCT?7-*i{Vt2JSZWG9)qF*ACJjv&mkjE4jiljWyLB=(;ouYP8jj4fo?oL8$1-2ccKs@0 zC&u4w61QD!Th@YiTblTBi$X!ea++kTAEMlPt;Q5>vq>}fOgi~& zx{1IxEyZ7t8p=NA)BE?xR;Go6JD17Gugc0dy;+*%w#1@2OQwDkeR+(^>KF^g6e&5A mHfBV53Bf;Izk;#y9{&U2;R;5ZjHbi@0000N2bZe?^J zG%heMHD!e|WdHyJKS@MER5(u^lWR{LWf+F%7x)3OSWHZei4=Bsc4kiyDq3pE9@rxc zdzka=3=1|PF_6Go=pNWAN&kTf7MHZd_`x4wBpUQj^@F*5+7I*LeKPNJzt4SNkK%m% z5$T*paydydv4*ZLvZ$}HoLQjx$qdHa3>h`SY9dEGonTqbqU$QDTnc;U9?F82X1!3w z?skYwldiqX!D1G}ve*wCEZ3mh^?91q@B<6)TaTXMQ7AkiDK#atu!I@8JSwaaxHi7+ z(qGJAh915X5IS9{`5Y%d!}omo$Dy=Q!1O{?Erp_HV{)(v0+(95PQKA%vsR{AC{Sx` zlke22Z&lc?ZBlPkX*LZ!&%xjG-jA*1Vh`xHrL$vFH1eFTt?}~Y8Ry3*c%mLT9foH^ zUVMMS+3F*zrQ&~<*QMqAENB@NJ*9J~#W+eOC^pIr&c~dsuQ56u;DVu=q`qr~83D2gMdzhAzc{&vml%b&TtnsPku(|z}y2z2lER|KjG&C6;ev2R@Z@l^`8uGYQ=0MjtlK6FX1tlRV1n+Y7 z4I0HdFV-K@ADuHC922#Bn7+r4&-zRT1IAxHq+BS|5kh-Htd^1naa9*n9Bd)bs8=Wm zMB7`N6eQA?z*8$$rPiX^*pieCc6J&>O&8PILDPkUB{hvD^W=-`G{aEl3pq;13HCy~ z{Wf9G!8Aj{rHrV$l9o-W)SzRv(c@pBq|&Nf{u