@@ -0,0 +1,2200 @@
+package tlf.lightingtest.common;%0A%0Aimport java.util.List;%0A%0Aimport net.minecraft.block.Block;%0Aimport net.minecraft.block.material.Material;%0Aimport net.minecraft.client.renderer.texture.IconRegister;%0Aimport net.minecraft.creativetab.CreativeTabs;%0Aimport net.minecraft.item.ItemStack;%0Aimport net.minecraft.util.AxisAlignedBB;%0Aimport net.minecraft.util.Icon;%0Aimport net.minecraft.world.IBlockAccess;%0Aimport net.minecraft.world.World;%0Aimport net.minecraft.world.chunk.Chunk;%0Aimport cpw.mods.fml.relauncher.Side;%0Aimport cpw.mods.fml.relauncher.SideOnly;%0A%0Apublic class BlockLight extends Block%0A%7B%0A%09private Icon blockIcon;%0A%0A%09public BlockLight(int par1) %7B%0A%09%09super(par1, Material.air);%0A%09%09this.setLightValue(1.0F);%0A%09%7D%0A%0A%09@Override%0A%09public boolean isAirBlock(World world, int x, int y, int z)%0A%09%7B%0A%09%09return true;%0A%09%7D%0A%0A%09@Override%0A%09public boolean isOpaqueCube()%0A%09%7B%0A%09%09return false;%0A%09%7D%0A%0A%09@Override%0A%09public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)%0A%09%7B%0A%09%09return false;%0A%09%7D%0A%0A%09@Override%0A%09public boolean isBlockReplaceable(World world, int x, int y, int z)%0A%09%7B%0A%09%09return true;%0A%09%7D%0A%0A%09@Override%0A%09public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)%0A%09%7B%0A%09%09return null;%0A%09%7D%0A%0A%09@Override%0A%09public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)%0A%09%7B%0A%09%09this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F);%0A%09%7D%0A%09%0A%09@Override%0A%09public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)%0A%09%7B%0A%09%09if (!par1World.isRemote && false)%0A%09%09%7B%0A%09%09%09if (par1World.canBlockSeeTheSky(par2, par3, par4))%0A%09%09%09%7B%0A%09%09%09%09par1World.setBlockToAir(par2, par3, par4);%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09%0A%09@SideOnly(Side.CLIENT)%0A%09@Override%0A%09public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)%0A%09%7B%0A%09%09//TODO add different light values?%0A%09%09par3List.add(new ItemStack(par1, 1, 0));%0A%09%09par3List.add(new ItemStack(par1, 1, 1));%0A%09%7D%0A%0A%09@SideOnly(Side.CLIENT)%0A%09@Override%0A%09public void registerIcons(IconRegister par1IconRegister)%0A%09%7B%0A%09%09this.blockIcon = par1IconRegister.registerIcon(%22tlf:active%22);%0A%09%7D%0A%0A%09@SideOnly(Side.CLIENT)%0A%09@Override%0A%09public Icon getIcon(int par1, int par2)%0A%09%7B%0A%09%09return this.blockIcon;%0A%09%7D%0A%7D%0A

Create BlockLight.java