From 21f4d5e6b68953a1d04d0c0eacacea929fd163f9 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Mon, 3 Oct 2016 12:57:06 +0200 Subject: [PATCH] Added the "rainbow" effect to molecular assemblers. --- .../crafting/BlockMolecularAssembler.java | 35 +++++++++++++++++- .../blockstates/molecular_assembler.json | 11 +++++- .../block/molecular_assembler_lights.json | 21 +++++++++++ .../blocks/molecular_assembler_lights.png | Bin 1006 -> 1144 bytes 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json diff --git a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java index df816dfc..a192d20c 100644 --- a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java +++ b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java @@ -22,6 +22,8 @@ package appeng.block.crafting; import javax.annotation.Nullable; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -29,7 +31,10 @@ import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; @@ -40,6 +45,8 @@ import appeng.util.Platform; public class BlockMolecularAssembler extends AEBaseTileBlock { + public static final PropertyBool POWERED = PropertyBool.create( "powered" ); + public BlockMolecularAssembler() { super( Material.IRON ); @@ -50,9 +57,33 @@ public class BlockMolecularAssembler extends AEBaseTileBlock } @Override - public boolean canRenderInLayer( final IBlockState state, final BlockRenderLayer layer ) + protected IProperty[] getAEStates() { - return layer == BlockRenderLayer.CUTOUT_MIPPED; + return new IProperty[] { POWERED }; + } + + @Override + public IBlockState getActualState( IBlockState state, IBlockAccess worldIn, BlockPos pos ) + { + boolean powered = false; + TileMolecularAssembler te = getTileEntity( worldIn, pos ); + if( te != null ) + { + powered = te.isPowered(); + } + + return super.getActualState( state, worldIn, pos ).withProperty( POWERED, powered ); + } + + @SideOnly( Side.CLIENT) + public BlockRenderLayer getBlockLayer() + { + return BlockRenderLayer.TRANSLUCENT; + } + + public boolean isFullCube(IBlockState state) + { + return false; } @Override diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/molecular_assembler.json b/src/main/resources/assets/appliedenergistics2/blockstates/molecular_assembler.json index 5ffd2fea..570d7db3 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/molecular_assembler.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/molecular_assembler.json @@ -1,5 +1,14 @@ { + "forge_marker": 1, + "defaults": { + "model": "appliedenergistics2:molecular_assembler" + }, "variants": { - "normal": { "model": "appliedenergistics2:molecular_assembler" } + "powered": { + "false": {}, + "true": { + "submodel": "appliedenergistics2:molecular_assembler_lights" + } + } } } diff --git a/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json b/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json new file mode 100644 index 00000000..7dfaa8f2 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json @@ -0,0 +1,21 @@ +{ + "uvlMarker": true, + "parent": "block/block", + "textures": { + "all": "appliedenergistics2:blocks/molecular_assembler_lights" + }, + "elements": [ + { + "from": [2, 2, 2], + "to": [14, 14, 14], + "faces": { + "down": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "down" }, + "up": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "up" }, + "north": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "north" }, + "south": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "south" }, + "west": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "west" }, + "east": { "texture": "#all", "uv": [2.6, 2.6, 13.4, 13.4], "cullface": "east" } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/molecular_assembler_lights.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/molecular_assembler_lights.png index 47f40b82707d1ed8d5e5441c965b4e60460ec880..9e086c5878273379ed2e1dbb0e62f3b58eb3569b 100644 GIT binary patch delta 1123 zcmV-p1f2Ws2lxn(B!3xnMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o000CU zNklBjE6o8#OS400thOCXJ3|(s1PC#>)3>_0_e?c1$rvIQrh6GwjhIS4F zQ*}wep5%@RG`}MSsa9N_s;AtY@1EZw1!T~HQIPNMJ?p;rp?{pTu~;lxWg62@y#Dyt zw{`9glBMr9AOm^eL&)qAI}h3M$ERl(;@FnIgp+vVN-zegVNp%3m_+;p@p;vs`|$Uw zkKC8FO15T#d;+l~00^}Km5dIMO5@KlUnWsxLcv&R7$o|q_aR>TZlm&YE1a;|Cuu_OQp zwG~vB1*xsWLBSaH0S1&Q%NqLN8u7s&%m?zo4ss#G{6fCeeQ@Qlj90o3L~0#JA6)A` zxOecuedB{Cm_RH^=;#BWk||UXn+WziFx(%AOeh$mK7YV~x>^q(#DhDl50c(@yAR}n zJo#mfnD7_b(Hn0ruL7KGwKkFe7Sv!2Qp2K}8cdQ+z=JnVAc9}E#6>|s6_N5>2-da2PJ?kTFx(%cnNTpseSiRE!o7w*xQ*>T zI8P8C$OEx0V%W6Z@-!dZM06j>eHo0%OC zj@>!^{y^^Alyg-Rh$V4-OaxRiGC&%Qm)vlFATps~jQRir>S#TDFo@q}9DASD`-6V;j$Dm$Uk0gRQGZRX$QWko&cBc|koz{}T-5|(NdORP11gz9 z6|sq60e`#f1Ca>@W7G#2P$t}K>4PcagBbI{)JHd8iwha%KG@NHFmdp~ME61LyfIy5 z{J4CPgAby{2T$OGsqx! zKx~T`Hf_gS+WScT8+tX$eHoYqW1@n}vLLl} pI4Bt7J~*?#k7UZSv=9CXFaS2D2Z60>m|Xw>002ovPDHLkV1h9F36KB) literal 1006 zcmeAS@N?(olHy`uVBq!ia0vp^0ziC#gAF8d_OTz3Vo7)Ob!1@J*w6hZkrl}2Ebxdd zW?q|3=GU! zo-U3d8P0EK8RlIL5OBRI?G{!xsY!Oh8WmPoscnuEb(bW_i?~g*oA;)gJ zy_MnRefRpke|)L1`PZ%Z^54ngVjmE{weGHrNd*Sv${Wf7}n znMBk4M>9V}|FMzJ5nNNjBCDCOPJ-nIr}iUln>QRu;ccSZ9XKAPTQ+k}sJJ0`B#(>t z4VP6AL)e{k0dd9Hbqa_1oHv}=zfC!PgP%Q+w7a1c@sYzS=s=7i#|GiBBjF%T>v**D z8U>D=FJco`__#s2~wMF^!2wVBz<0grz9k1 zOb2QQ8e;$NpT0vS)ZFnTc;rK@< y-GEUDl;(XGHpT+;!GW&dJdc!?c+Wq+d_T{!sZQ5S&DDW