当前位置: 首页>>代码示例>>Java>>正文


Java Block.onBlockPlacedBy方法代码示例

本文整理汇总了Java中net.minecraft.block.Block.onBlockPlacedBy方法的典型用法代码示例。如果您正苦于以下问题:Java Block.onBlockPlacedBy方法的具体用法?Java Block.onBlockPlacedBy怎么用?Java Block.onBlockPlacedBy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.minecraft.block.Block的用法示例。


在下文中一共展示了Block.onBlockPlacedBy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onBlockActivated

import net.minecraft.block.Block; //导入方法依赖的package包/类
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
	ItemStack stack = player.getHeldItem(hand);
	boolean isBlock = stack.getItem() instanceof ItemBlock && stack.getItem() != ModItems.ANGSTROM;
	if(!world.isRemote && isBlock) {
		//Replace
		ItemBlock item = (ItemBlock) stack.getItem();
		Block block = Block.getBlockFromItem(item);
		int meta = item.getMetadata(stack);
		IBlockState inState = block.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, player, hand);
		world.setBlockState(pos, inState);
		block.onBlockPlacedBy(world, pos, inState, player, stack);
		SoundType sound = block.getSoundType(inState, world, pos, player);
		world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), sound.getPlaceSound(), SoundCategory.BLOCKS, 0.75F, 0.8F);
		//Exchange
		ItemStack drop = new ItemStack(Item.getItemFromBlock(this));
		ItemHandlerHelper.giveItemToPlayer(player, drop);
		if(!player.capabilities.isCreativeMode) {
			stack.shrink(1);
		}
	}
	return isBlock;
}
 
开发者ID:ArekkuusuJerii,项目名称:Solar,代码行数:24,代码来源:BlockAngstrom.java

示例2: canPlantCrop

import net.minecraft.block.Block; //导入方法依赖的package包/类
public static boolean canPlantCrop(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, Block cropBlock) {
	
	if (side != EnumFacing.UP)
		return false;
	
	if (!world.isRemote && cropBlock instanceof BlockCropsBase && !((BlockCropsBase)cropBlock).canPlantCrop()) {
		UCPacketHandler.sendToNearbyPlayers(world, pos, new PacketUCEffect(EnumParticleTypes.BARRIER, pos.getX(), pos.getY() + 2, pos.getZ(), 0));
		return false;
	}
	else if (player.canPlayerEdit(pos, side, stack) && player.canPlayerEdit(pos.offset(EnumFacing.UP), side, stack)) {
		IBlockState state = world.getBlockState(pos);
		if (state.getBlock().canSustainPlant(state, world, pos, EnumFacing.UP, (IPlantable)stack.getItem()) && world.isAirBlock(pos.offset(EnumFacing.UP))) {
			if (cropBlock == UCBlocks.cropCollis) {
				if (!world.provider.isSurfaceWorld() || pos.getY() <= 100)
					return false;
			}
			if (cropBlock == UCBlocks.cropCinderbella) {
				long time = world.getWorldTime() % 24000L;
				if (time >= 18000)
					return false;
				
				BlockPos pos1 = pos.add(0, 1, 0);
				int pumpkins = 0;
				for (EnumFacing facing : EnumFacing.HORIZONTALS) {
					IBlockState pumpkin = world.getBlockState(pos1.offset(facing));
					if (pumpkin.getBlock() != null && pumpkin.getBlock() == Blocks.PUMPKIN && !world.isRemote) {
						pumpkins++;
					}
				}
				if (pumpkins >= 4) {
					cropBlock.onBlockPlacedBy(world, pos.offset(side), cropBlock.getDefaultState(), player, stack);
					return true;
				}
			}
			if (cropBlock == UCBlocks.cropFeroxia) {
				cropBlock.onBlockPlacedBy(world, pos.offset(side), cropBlock.getDefaultState(), player, stack);
				return true;
			}
			if (cropBlock == UCBlocks.cropEula) {
				player.openGui(UniqueCrops.instance, 1, world, (int)player.posX, (int)player.posY, (int)player.posZ);
			}
			if (cropBlock == UCBlocks.cropAbstract) {
				player.renderBrokenItemStack(stack);
				if (!player.worldObj.isRemote)
					setAbstractCropGrowth(player, true);
				return true;
			}
			if (cropBlock == UCBlocks.cropPetramia && pos.offset(side).getY() >= 10) {
				return false;
			}
			world.setBlockState(pos.offset(side), cropBlock.getDefaultState(), 3);
			return true;
		}
	}
	return false;
}
 
开发者ID:bafomdad,项目名称:uniquecrops,代码行数:57,代码来源:SeedBehavior.java


注:本文中的net.minecraft.block.Block.onBlockPlacedBy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。