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/LightBulbBlock.java | 60 +++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 11 deletions(-) (limited to 'ihl/enviroment/LightBulbBlock.java') diff --git a/ihl/enviroment/LightBulbBlock.java b/ihl/enviroment/LightBulbBlock.java index 720ca4e..7c95001 100644 --- a/ihl/enviroment/LightBulbBlock.java +++ b/ihl/enviroment/LightBulbBlock.java @@ -1,20 +1,29 @@ package ihl.enviroment; +import java.util.List; import java.util.Random; import cpw.mods.fml.common.registry.GameRegistry; - +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import ihl.IHLCreativeTab; +import ihl.flexible_cable.AnchorTileEntity; import ihl.items_blocks.IHLItemBlock; 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; public class LightBulbBlock extends Block implements ITileEntityProvider { - public static GlowningAirBlock glowningAir; public LightBulbBlock(String unlocalizedName1) { super(Material.glass); @@ -25,7 +34,7 @@ public class LightBulbBlock extends Block implements ITileEntityProvider { this.setResistance(0.5F); this.setCreativeTab(IHLCreativeTab.tab); this.setBlockTextureName("glass"); - this.setLightOpacity(16); + this.setLightOpacity(0); } @Override @@ -34,13 +43,22 @@ public class LightBulbBlock extends Block implements ITileEntityProvider { } public static void init() { - glowningAir = new GlowningAirBlock(); new LightBulbBlock("lightBulb"); new SpotlightBlock("spotlight"); - GameRegistry.registerBlock(glowningAir, "glowningAir"); GameRegistry.registerTileEntity(LightBulbTileEntity.class, "lightBulb"); GameRegistry.registerTileEntity(SpotlightTileEntity.class, "spotlight"); - SpotlightTileEntity.createLightSphereVectors(); + } + + @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); } /** @@ -73,6 +91,27 @@ public class LightBulbBlock extends Block implements ITileEntityProvider { } } + @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); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + super.onBlockPlacedBy(world, x, y, z, player, stack); + if (!world.isRemote) { + TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof LightBulbTileEntity && stack.stackTagCompound != null) + ((LightBulbTileEntity)tile).colour=stack.stackTagCompound.getInteger("colour"); + } + } + private void setBlockBoundsBasedOnFacing(int facing) { int var2 = facing & 7; float var6 = 0.1875F; @@ -109,11 +148,10 @@ public class LightBulbBlock extends Block implements ITileEntityProvider { } public int getLightValue(IBlockAccess world, int x, int y, int z) { -/* TileEntity te = world.getTileEntity(x, y, z); - if (te != null && te instanceof LightBulbTileEntity) { - LightBulbTileEntity ate = (LightBulbTileEntity) te; - return ate.getActive() ? 15 : 0; - }*/ + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof LightBulbTileEntity && ((LightBulbTileEntity)te).getActive()){ + return 15; + } return 0; } } -- cgit v1.2.3