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 df816dfc6..a192d20ca 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 5ffd2feae..570d7db35 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 000000000..7dfaa8f2e --- /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 zcmaFI{)1zJO1)%>YeY$Kep*R+Vo@rCV@iHfs)A>3VtQ&&YGO)d;mK4R1_l->PZ!6K zid%1H8D`&h5NVie9q#wXT!(|KftGwL0s`Ir4);M~R%<*%+Y{l`3`Ff6u=k z*SD9x(ifhkT0BQhmael7p5822l0@uwm^ z+k+1kw*7jrrTvG4+>W^g+4V;x{Wm@Scw={f-XlkQrSQdfraNXugam6FwaxU~RU&_) zc6QOaEQraXA=6k_u08B{P~s~i+Z4^yQokNZeLN_ChW*n4z9PlLf1LJRsV#WAp(lJ7 zze|>^yL`-RyB*~p4%R+yR-fUZ@;%UO?x)b1 zFd;YiT&S*d&r=^d;o03-Bafo{%jT^9eDDIh!wb6`)mN-o73R9h z#pq4eFj|2v?csuip5F|Nr>3OJ)*86h2qf3rOs=qZ=2nY-nVuZ{sQtRm^bPs-Pm&XlZpHt7f|d;E_t@gkXJHY_|4}7 zoGOAmbxx2_JMz^q&@nY~Lj5f(8Ihhq`8j9b+8LxqIzt0&0((;Qkqw#Fr@B2OSuJ*E zF+1`dQ!u^W`!Y!=qVKNd-+vD8Zcix=74A?ito30DF*0(H>YaY4pkBdfVM5O@2If~8 zwlxMF_oHhsc<;MatHAH`W82Nf}2 zr)nnXb-qqs)O2c-!q!p?4T;Bg7Mu6?r<~ffh5sL?0fX5x_QthYGh!JS7#KWV{an^L HB{Ts5F#8FR literal 1006 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU^u|R1`;{@*pGpMfhFD1*O7r?V?XzwL{BiK=qq+i3KO)a1FsaCuv22{}#JszyPozQgyW|m9kLlVcHXIhPIe)tB2~XVe zkI#Q5bSE5De&NAbd{p6pUxZ-%!$fz1-9~G6usR9YpO*A#IC8j8p)5EfA^gHbrVWqm zns;!#EMk=`lW3a%Xy%9LKQ{6?f@>;RWHl4kNwD1D)PAIG^M)fSyiIhw1IMFu%Vy3A z6*mNrrc}sT-mtOBmMdIIp1Rv@6E3O|~szW<1ys|JxId z$#;p(`P&nXBjT68Ju#Di8%LN;Q=f=II1kgC7SWHQpdi#f+!d|B@^SN=gDf5(@0qu< zm9ffdGHAau?&zMN7d|1eT`}Tb|Nj}UjsB4zARji${5QORjgmMK|L9X8WPhIQbaCeN z^|vP^eO`a3BqU}`{|+|9{@=+fVh6k2FHB^5*5%kRcZ1TtL!iWz8d1pIqEI)@cm_jf zyR74zWfu;tTcFIEaI}`KQ1H@IE~7UFET4~m^q+C>*#EeP&ALsZ{R@;?&xkfNSSPyH zw1Tvp+VDt>!|{(!x&fmQD9!sWY>ahu=Q_~!o9B_z67TuPm+$9UHr45xsku4>0|SGn LtDnm{r-UW|M5dA$