
No more manual handling of binding items to players. Retains all previous functionality. I have tested on both the Client and Server and it seems to work just fine. If any issues arise from this, do not hesitate to yell at me. The deprecated methods will be removed after beta.
66 lines
2.2 KiB
Java
66 lines
2.2 KiB
Java
package WayofTime.bloodmagic.block;
|
|
|
|
import WayofTime.bloodmagic.BloodMagic;
|
|
import WayofTime.bloodmagic.api.Constants;
|
|
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
|
|
import WayofTime.bloodmagic.item.ItemTelepositionFocus;
|
|
import WayofTime.bloodmagic.tile.TileTeleposer;
|
|
import net.minecraft.block.BlockContainer;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.block.state.IBlockState;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.InventoryHelper;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.BlockPos;
|
|
import net.minecraft.util.EnumFacing;
|
|
import net.minecraft.world.World;
|
|
|
|
public class BlockTeleposer extends BlockContainer
|
|
{
|
|
public BlockTeleposer()
|
|
{
|
|
super(Material.rock);
|
|
|
|
setCreativeTab(BloodMagic.tabBloodMagic);
|
|
setUnlocalizedName(Constants.Mod.MODID + ".teleposer");
|
|
setRegistryName(Constants.BloodMagicBlock.TELEPOSER.getRegName());
|
|
setHardness(2.0F);
|
|
setResistance(5.0F);
|
|
}
|
|
|
|
@Override
|
|
public int getRenderType()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
@Override
|
|
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
|
|
{
|
|
ItemStack playerItem = player.getCurrentEquippedItem();
|
|
|
|
if (playerItem != null && playerItem.getItem() instanceof ItemTelepositionFocus)
|
|
((ItemTelepositionFocus) playerItem.getItem()).setBlockPos(playerItem, world, pos);
|
|
else if (world.getTileEntity(pos) instanceof TileTeleposer)
|
|
player.openGui(BloodMagic.instance, Constants.Gui.TELEPOSER_GUI, world, pos.getX(), pos.getY(), pos.getZ());
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void breakBlock(World world, BlockPos blockPos, IBlockState blockState)
|
|
{
|
|
TileTeleposer tileTeleposer = (TileTeleposer) world.getTileEntity(blockPos);
|
|
if (tileTeleposer != null)
|
|
tileTeleposer.dropItems();
|
|
|
|
super.breakBlock(world, blockPos, blockState);
|
|
}
|
|
|
|
@Override
|
|
public TileEntity createNewTileEntity(World worldIn, int meta)
|
|
{
|
|
return new TileTeleposer();
|
|
}
|
|
}
|