86 lines
2.1 KiB
Java
86 lines
2.1 KiB
Java
package storagecraft.block;
|
|
|
|
import net.minecraft.block.ITileEntityProvider;
|
|
import net.minecraft.block.properties.IProperty;
|
|
import net.minecraft.block.properties.PropertyInteger;
|
|
import net.minecraft.block.state.BlockState;
|
|
import net.minecraft.block.state.IBlockState;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.BlockPos;
|
|
import net.minecraft.util.EnumFacing;
|
|
import net.minecraft.world.World;
|
|
import storagecraft.StorageCraft;
|
|
import storagecraft.StorageCraftGUI;
|
|
import storagecraft.tile.TileController;
|
|
|
|
public class BlockController extends BlockBase implements ITileEntityProvider
|
|
{
|
|
public static final PropertyInteger ENERGY = PropertyInteger.create("energy", 0, 15);
|
|
|
|
public BlockController()
|
|
{
|
|
super("controller");
|
|
}
|
|
|
|
@Override
|
|
protected BlockState createBlockState()
|
|
{
|
|
return new BlockState(this, new IProperty[]
|
|
{
|
|
ENERGY
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public IBlockState getStateFromMeta(int meta)
|
|
{
|
|
return getDefaultState().withProperty(ENERGY, meta);
|
|
}
|
|
|
|
@Override
|
|
public int getMetaFromState(IBlockState state)
|
|
{
|
|
return ((Integer) state.getValue(ENERGY));
|
|
}
|
|
|
|
@Override
|
|
public TileEntity createNewTileEntity(World world, int meta)
|
|
{
|
|
return new TileController();
|
|
}
|
|
|
|
@Override
|
|
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
|
|
{
|
|
if (!world.isRemote)
|
|
{
|
|
player.openGui(StorageCraft.INSTANCE, StorageCraftGUI.CONTROLLER, world, pos.getX(), pos.getY(), pos.getZ());
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void onBlockDestroyedByPlayer(World world, BlockPos pos, IBlockState state) // @TODO: What about explosions?
|
|
{
|
|
((TileController) world.getTileEntity(pos)).onDestroyed();
|
|
|
|
super.onBlockDestroyedByPlayer(world, pos, state);
|
|
}
|
|
|
|
@Override
|
|
public boolean hasComparatorInputOverride()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public int getComparatorInputOverride(World world, BlockPos pos)
|
|
{
|
|
TileController tile = (TileController) world.getTileEntity(pos);
|
|
|
|
return tile.getEnergyScaled(15);
|
|
}
|
|
}
|