use of net.minecraft.block.BlockCauldron in project SpongeCommon by SpongePowered.
the class DefaultTeleportHelperFilter method isSafeBodyMaterial.
@Override
public boolean isSafeBodyMaterial(BlockState blockState) {
IBlockState state = BlockUtil.toNative(blockState);
Material material = state.getMaterial();
// Deny blocks that suffocate
if (state.causesSuffocation()) {
return false;
}
// Deny dangerous lava
if (material == Material.LAVA) {
return false;
}
// Deny non-passable non "full" blocks
return !(state.getBlock() instanceof BlockSlab || state.getBlock() instanceof BlockCauldron || state.getBlock() instanceof BlockAnvil || state.getBlock() instanceof BlockFence || state.getBlock() instanceof BlockChorusPlant || state.getBlock() instanceof BlockSnow || material == Material.GLASS || material == Material.LEAVES);
}
use of net.minecraft.block.BlockCauldron in project Charset by CharsetMC.
the class DyeableItemWashHandler method onBlockInteract.
@SubscribeEvent
public void onBlockInteract(PlayerInteractEvent.RightClickBlock event) {
if (!event.getWorld().isRemote && !event.getEntityPlayer().isSneaking()) {
ItemStack stack = event.getEntityPlayer().getHeldItem(event.getHand());
if (!stack.isEmpty() && stack.getItem() instanceof IDyeableItem) {
IBlockState state = event.getWorld().getBlockState(event.getPos());
if (state.getBlock() instanceof BlockCauldron && state.getPropertyKeys().contains(BlockCauldron.LEVEL)) {
event.setCanceled(true);
int level = state.getValue(BlockCauldron.LEVEL);
if (level > 0 && ((IDyeableItem) stack.getItem()).hasColor(stack)) {
if (((IDyeableItem) stack.getItem()).removeColor(stack)) {
event.getWorld().setBlockState(event.getPos(), state.withProperty(BlockCauldron.LEVEL, level - 1));
event.getEntityPlayer().addStat(StatList.ARMOR_CLEANED);
}
}
}
}
}
}
Aggregations