base mod created
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRedstoneLight extends Block
|
||||
{
|
||||
private final boolean isOn;
|
||||
|
||||
public BlockRedstoneLight(boolean isOn)
|
||||
{
|
||||
super(Material.REDSTONE_LIGHT);
|
||||
this.isOn = isOn;
|
||||
|
||||
if (isOn)
|
||||
{
|
||||
this.setLightLevel(1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after the block is set in the Chunk data, but before the Tile Entity is set
|
||||
*/
|
||||
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
|
||||
{
|
||||
if (!worldIn.isRemote)
|
||||
{
|
||||
if (this.isOn && !worldIn.isBlockPowered(pos))
|
||||
{
|
||||
worldIn.setBlockState(pos, Blocks.REDSTONE_LAMP.getDefaultState(), 2);
|
||||
}
|
||||
else if (!this.isOn && worldIn.isBlockPowered(pos))
|
||||
{
|
||||
worldIn.setBlockState(pos, Blocks.LIT_REDSTONE_LAMP.getDefaultState(), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a neighboring block was changed and marks that this state should perform any checks during a neighbor
|
||||
* change. Cases may include when redstone power is updated, cactus blocks popping off due to a neighboring solid
|
||||
* block, etc.
|
||||
*/
|
||||
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos)
|
||||
{
|
||||
if (!worldIn.isRemote)
|
||||
{
|
||||
if (this.isOn && !worldIn.isBlockPowered(pos))
|
||||
{
|
||||
worldIn.scheduleUpdate(pos, this, 4);
|
||||
}
|
||||
else if (!this.isOn && worldIn.isBlockPowered(pos))
|
||||
{
|
||||
worldIn.setBlockState(pos, Blocks.LIT_REDSTONE_LAMP.getDefaultState(), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand)
|
||||
{
|
||||
if (!worldIn.isRemote)
|
||||
{
|
||||
if (this.isOn && !worldIn.isBlockPowered(pos))
|
||||
{
|
||||
worldIn.setBlockState(pos, Blocks.REDSTONE_LAMP.getDefaultState(), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Item that this Block should drop when harvested.
|
||||
*/
|
||||
public Item getItemDropped(IBlockState state, Random rand, int fortune)
|
||||
{
|
||||
return Item.getItemFromBlock(Blocks.REDSTONE_LAMP);
|
||||
}
|
||||
|
||||
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
|
||||
{
|
||||
return new ItemStack(Blocks.REDSTONE_LAMP);
|
||||
}
|
||||
|
||||
protected ItemStack getSilkTouchDrop(IBlockState state)
|
||||
{
|
||||
return new ItemStack(Blocks.REDSTONE_LAMP);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user