From aa42aedecd2d2842351088085e8fd9d69ec79565 Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Fri, 14 Apr 2017 07:58:16 +0300 Subject: Colourful lights --- ihl/enviroment/SpotlightBlock.java | 49 ++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) (limited to 'ihl/enviroment/SpotlightBlock.java') diff --git a/ihl/enviroment/SpotlightBlock.java b/ihl/enviroment/SpotlightBlock.java index 2cabecf..02cafd1 100644 --- a/ihl/enviroment/SpotlightBlock.java +++ b/ihl/enviroment/SpotlightBlock.java @@ -4,17 +4,25 @@ import ic2.core.IC2; import ihl.IHLCreativeTab; import ihl.items_blocks.IHLItemBlock; +import java.util.List; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemDye; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class SpotlightBlock extends Block implements ITileEntityProvider { @@ -36,7 +44,20 @@ public class SpotlightBlock extends Block implements ITileEntityProvider { return true; } - + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List itemlist) { + for (int colour : ItemDye.field_150922_c) { + ItemStack stack = new ItemStack(item); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("colour", colour); + itemlist.add(stack); + } + } + + + /** * Returns the quantity of items to drop on block destruction. */ @@ -80,16 +101,30 @@ public class SpotlightBlock extends Block implements ITileEntityProvider } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { TileEntity t = world.getTileEntity(x, y, z); if(IC2.platform.isSimulating() && t instanceof SpotlightTileEntity) { SpotlightTileEntity te = (SpotlightTileEntity)t; te.setDirectionVector(player); + if(stack.stackTagCompound!=null) + te.colour=stack.stackTagCompound.getInteger("colour"); } } + @Override + public void onBlockPreDestroy(World world, int x, int y, int z, int meta) { + if (world.isRemote) { + TileEntity te = world.getTileEntity(x, y, z); + if (te != null && te instanceof LightBulbTileEntity) { + LightBulbTileEntity ate = (LightBulbTileEntity) te; + ate.invalidate(); + } + } + super.onBlockPreDestroy(world, x, y, z, meta); + } + @Override public boolean onBlockActivated(World world,int x,int y,int z,EntityPlayer player,int i,float pos_x,float pos_y,float pos_z) { @@ -102,7 +137,11 @@ public class SpotlightBlock extends Block implements ITileEntityProvider return false; } - - - + public int getLightValue(IBlockAccess world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof LightBulbTileEntity && ((LightBulbTileEntity)te).getActive()){ + return 15; + } + return 0; + } } \ No newline at end of file -- cgit v1.2.3