net.minecraft.util.EnumActionResult#SUCCESS源码实例Demo

下面列出了net.minecraft.util.EnumActionResult#SUCCESS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: TofuCraftReload   文件: ItemTofuHoe.java
@Override
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
    ItemStack itemstack = player.getHeldItem(hand);

    if (!player.canPlayerEdit(pos.offset(facing), facing, itemstack)) {
        return EnumActionResult.FAIL;
    } else {
        IBlockState iblockstate = worldIn.getBlockState(pos);
        Block block = iblockstate.getBlock();
        if (block == BlockLoader.MOMENTOFU || block == BlockLoader.tofuTerrain) {
            this.setBlock(itemstack, player, worldIn, pos, BlockLoader.TOFUFARMLAND.getDefaultState());
            return EnumActionResult.SUCCESS;
        }

        return super.onItemUse(player, worldIn, pos, hand, facing, hitX, hitY, hitZ);
    }
}
 
源代码2 项目: GregTech   文件: DynamiteBehaviour.java
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
    ItemStack itemstack = player.getHeldItem(hand);

    if (!player.capabilities.isCreativeMode) {
        itemstack.shrink(1);
    }

    if (world.isRemote) {
        return new ActionResult<>(EnumActionResult.SUCCESS, itemstack);
    }

    DynamiteEntity entity = new DynamiteEntity(world, player);
    entity.shoot(player, player.rotationPitch, player.rotationYaw, 0.0F, 0.7F, 1.0F);

    world.spawnEntity(entity);

    return new ActionResult<>(EnumActionResult.SUCCESS, itemstack);
}
 
源代码3 项目: GregTech   文件: SoftHammerBehaviour.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
    if (world.isRemote || world.isAirBlock(pos)) {
        return EnumActionResult.PASS;
    }
    ItemStack stack = player.getHeldItem(hand);

    TileEntity tileEntity = world.getTileEntity(pos);
    if (tileEntity != null) {
        IControllable controllable = tileEntity.getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, side);
        if (controllable != null) {
            if (controllable.isWorkingEnabled()) {
                controllable.setWorkingEnabled(false);
            } else {
                controllable.setWorkingEnabled(true);
            }
            GTUtility.doDamageItem(stack, cost, false);
            return EnumActionResult.SUCCESS;
        }
    }
    return EnumActionResult.PASS;
}
 
源代码4 项目: pycode-minecraft   文件: HandItem.java
@Override
public EnumActionResult onItemUse(ItemStack stackIn, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
    if (world.isRemote) {
        return EnumActionResult.PASS;
    }
    if (stackIn.stackSize != 0) {
        float yaw = player.getHorizontalFacing().getHorizontalAngle();
        NBTTagCompound compound = stackIn.getTagCompound();
        HandEntity entity = new HandEntity(world, compound,
                pos.getX() + .5, pos.getY() + 1.0, pos.getZ() + .5, yaw);
        world.spawnEntityInWorld(entity);
        --stackIn.stackSize;
        return EnumActionResult.SUCCESS;
    } else {
        return EnumActionResult.FAIL;
    }
}
 
源代码5 项目: GT-Classic   文件: GTItemDuctTape.java
@Override
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand,
		EnumFacing facing, float hitX, float hitY, float hitZ) {
	TileEntity tileEntity = worldIn.getTileEntity(pos);
	if (player.isSneaking()) {
		return super.onItemUse(player, worldIn, pos, hand, facing, hitX, hitY, hitZ);
	} else if (tileEntity instanceof IInsulationModifieableConductor) {
		IInsulationModifieableConductor wire = (IInsulationModifieableConductor) tileEntity;
		if (wire.tryAddInsulation()) {
			player.getHeldItem(hand).damageItem(1, player);
			IC2.audioManager.playOnce(player, Ic2Sounds.painterUse);
			return EnumActionResult.SUCCESS;
		} else {
			return EnumActionResult.FAIL;
		}
	} else {
		return EnumActionResult.FAIL;
	}
}
 
源代码6 项目: GregTech   文件: CoverPlaceBehavior.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
    TileEntity tileEntity = world.getTileEntity(pos);
    ICoverable coverable = tileEntity == null ? null : tileEntity.getCapability(GregtechTileCapabilities.CAPABILITY_COVERABLE, null);
    if (coverable == null) {
        return EnumActionResult.PASS;
    }
    EnumFacing coverSide = ICoverable.rayTraceCoverableSide(coverable, player);
    if (coverable.getCoverAtSide(coverSide) != null || !coverable.canPlaceCoverOnSide(coverSide)) {
        return EnumActionResult.PASS;
    }
    if (!world.isRemote) {
        ItemStack itemStack = player.getHeldItem(hand);
        boolean result = coverable.placeCoverOnSide(coverSide, itemStack, coverDefinition);
        if (result && !player.capabilities.isCreativeMode) {
            itemStack.shrink(1);
        }
        return result ? EnumActionResult.SUCCESS : EnumActionResult.FAIL;
    }
    return EnumActionResult.SUCCESS;
}
 
源代码7 项目: ExNihiloAdscensio   文件: ItemPebble.java
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand)
{
    stack.stackSize--;
    
    world.playSound(player, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
    
    if (!world.isRemote)
    {
        ItemStack thrown = stack.copy();
        thrown.stackSize = 1;
        
        ProjectileStone projectile = new ProjectileStone(world, player);
        projectile.setStack(thrown);
        projectile.setHeadingFromThrower(player, player.rotationPitch, player.rotationYaw, 0.0F, 1.5F, 0.5F);
        world.spawnEntity(projectile);
    }
    
    return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack);
}
 
源代码8 项目: Cyberware   文件: ItemExpCapsule.java
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World worldIn, EntityPlayer playerIn, EnumHand hand)
{
	if (!playerIn.capabilities.isCreativeMode)
	{
		--stack.stackSize;
	}
	
	int xp = 0;
	if (stack.hasTagCompound())
	{
		NBTTagCompound c = stack.getTagCompound();
		if (c.hasKey("xp"))
		{
			xp = c.getInteger("xp");
		}
	}
	
	playerIn.addExperience(xp);
	
	return new ActionResult(EnumActionResult.SUCCESS, stack);
}
 
源代码9 项目: GregTech   文件: LighterBehaviour.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
    ItemStack stack = player.getHeldItem(hand);
    if (!player.canPlayerEdit(pos, side, stack)) {
        return EnumActionResult.FAIL;
    }
    if (!tryIgniteBlock(world, pos.offset(side))) {
        return EnumActionResult.PASS;
    }
    useItemDurability(player, hand, stack, ItemStack.EMPTY);
    return EnumActionResult.SUCCESS;
}
 
源代码10 项目: pycode-minecraft   文件: PythonBookItem.java
@Nonnull
@Override
public ActionResult<ItemStack> onItemRightClick(@Nonnull ItemStack itemstack, World world, EntityPlayer playerIn, EnumHand hand) {
    FMLLog.info("Book onItemRightClick stack=%s, hand=%s", itemstack, hand);
    // don't activate the GUI if in offhand; don't do *anything*
    if (hand == EnumHand.OFF_HAND) return new ActionResult(EnumActionResult.FAIL, itemstack);

    PyCode.proxy.openBook(playerIn, itemstack);
    return new ActionResult(EnumActionResult.SUCCESS, itemstack);
}
 
源代码11 项目: GregTech   文件: PlungerBehaviour.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
    TileEntity tileEntity = world.getTileEntity(pos);
    if (tileEntity == null) {
        return EnumActionResult.PASS;
    }
    IFluidHandler fluidHandler = tileEntity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side);
    if (fluidHandler == null) {
        return EnumActionResult.PASS;
    }
    ItemStack toolStack = player.getHeldItem(hand);
    boolean isShiftClick = player.isSneaking();
    IFluidHandler handlerToRemoveFrom = isShiftClick ?
        (fluidHandler instanceof FluidHandlerProxy ? ((FluidHandlerProxy) fluidHandler).input : null) :
        (fluidHandler instanceof FluidHandlerProxy ? ((FluidHandlerProxy) fluidHandler).output : fluidHandler);

    if (handlerToRemoveFrom != null && GTUtility.doDamageItem(toolStack, cost, false)) {
        if (!world.isRemote) {
            FluidStack drainStack = handlerToRemoveFrom.drain(1000, true);
            int amountOfFluid = drainStack == null ? 0 : drainStack.amount;
            if (amountOfFluid > 0) {
                player.playSound(SoundEvents.ENTITY_SLIME_SQUISH, 1.0f, amountOfFluid / 1000.0f);
            }
        }
        return EnumActionResult.SUCCESS;
    }
    return EnumActionResult.PASS;
}
 
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
    if (facing != EnumFacing.UP) {
        return EnumActionResult.FAIL;
    } else {
        IBlockState iblockstate = worldIn.getBlockState(pos);
        Block block = iblockstate.getBlock();

        if (!block.isReplaceable(worldIn, pos)) {
            pos = pos.offset(facing);
        }

        ItemStack itemstack = player.getHeldItem(hand);

        if (player.canPlayerEdit(pos, facing, itemstack) && this.block.canPlaceBlockAt(worldIn, pos)) {
            EnumFacing enumfacing = EnumFacing.fromAngle((double) player.rotationYaw);
            int i = enumfacing.getFrontOffsetX();
            int j = enumfacing.getFrontOffsetZ();
            boolean flag = i < 0 && hitZ < 0.5F || i > 0 && hitZ > 0.5F || j < 0 && hitX > 0.5F || j > 0 && hitX < 0.5F;
            placeDoor(worldIn, pos, enumfacing, this.block, flag);
            SoundType soundtype = worldIn.getBlockState(pos).getBlock().getSoundType(worldIn.getBlockState(pos), worldIn, pos, player);
            worldIn.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F);
            itemstack.shrink(1);
            return EnumActionResult.SUCCESS;
        } else {
            return EnumActionResult.FAIL;
        }
    }
}
 
源代码13 项目: GregTech   文件: ColorSprayBehaviour.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) {
    ItemStack stack = player.getHeldItem(hand);
    if (!player.canPlayerEdit(pos, side, stack)) {
        return EnumActionResult.FAIL;
    }
    if (!tryPaintBlock(world, pos, side)) {
        return EnumActionResult.PASS;
    }
    useItemDurability(player, hand, stack, empty.copy());
    return EnumActionResult.SUCCESS;
}
 
源代码14 项目: TofuCraftReload   文件: ItemBugle.java
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
    ItemStack stack = playerIn.getHeldItem(handIn);

    playerIn.getCooldownTracker().setCooldown(stack.getItem(), 100);

    playerIn.playSound(TofuSounds.TOFUBUGLE, 20.0F, 1.0F);
    playerIn.addStat(StatList.getObjectUseStats(this));
    return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack);
}
 
源代码15 项目: customstuff4   文件: ItemFood.java
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
{
    ItemStack stack = playerIn.getHeldItem(handIn);

    if (playerIn.canEat(content.alwaysEdible.get(stack.getMetadata()).orElse(false)))
    {
        playerIn.setActiveHand(handIn);
        return new ActionResult<>(EnumActionResult.SUCCESS, stack);
    } else
    {
        return new ActionResult<>(EnumActionResult.FAIL, stack);
    }
}
 
源代码16 项目: Wizardry   文件: ItemFairyDust.java
@Nonnull
@Override
public EnumActionResult onItemUse(EntityPlayer entityPlayer, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
	if (world.isRemote) return EnumActionResult.SUCCESS;
	EntityJumpPad pad = new EntityJumpPad(world);
	pad.setPosition(pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5);
	world.spawnEntity(pad);
	entityPlayer.getHeldItem(hand).setCount(entityPlayer.getHeldItem(hand).getCount() - 1);
	return EnumActionResult.SUCCESS;
}
 
源代码17 项目: GregTech   文件: CoverItemFilter.java
@Override
public EnumActionResult onScrewdriverClick(EntityPlayer playerIn, EnumHand hand, CuboidRayTraceResult hitResult) {
    if (!playerIn.world.isRemote) {
        openUI((EntityPlayerMP) playerIn);
    }
    return EnumActionResult.SUCCESS;
}
 
源代码18 项目: GT-Classic   文件: GTItemMagnifyingGlass.java
@Override
public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX,
		float hitY, float hitZ, EnumHand hand) {
	Block block = world.getBlockState(pos).getBlock();
	if (player.isSneaking() || hand == EnumHand.OFF_HAND) {
		return EnumActionResult.PASS;
	}
	if (IC2.platform.isRendering()) {
		return EnumActionResult.SUCCESS;
	}
	TileEntity tileEntity = world.getTileEntity(pos);
	if (GTConfig.general.enableMagnifyingGlassGivesEUTooltips && tileEntity instanceof IEnergySink) {
		IEnergySink euSink = (IEnergySink) tileEntity;
		IC2.platform.messagePlayer(player, "Input Tier: " + euSink.getSinkTier());
		IC2.platform.messagePlayer(player, "Input Max: " + EnergyNet.instance.getPowerFromTier(euSink.getSinkTier())
				+ " EU");
	}
	if (tileEntity instanceof IProgressMachine) {
		IProgressMachine progress = (IProgressMachine) tileEntity;
		IC2.platform.messagePlayer(player, "Progress: "
				+ +(Math.round((progress.getProgress() / progress.getMaxProgress()) * 100)) + "%");
	}
	if (tileEntity instanceof IGTMultiTileStatus) {
		IGTMultiTileStatus multi = (IGTMultiTileStatus) tileEntity;
		IC2.platform.messagePlayer(player, "Correct Strucuture: " + multi.getStructureValid());
	}
	if (tileEntity instanceof IGTDebuggableTile) {
		LinkedHashMap<String, Boolean> data = new LinkedHashMap<>();
		IGTDebuggableTile debug = (IGTDebuggableTile) tileEntity;
		debug.getData(data);
		for (Map.Entry<String, Boolean> entry : data.entrySet()) {
			if (!entry.getValue()) {
				IC2.platform.messagePlayer(player, entry.getKey());
			}
		}
	}
	if (GTBedrockOreHandler.isBedrockOre(block)) {
		ItemStack resource = GTBedrockOreHandler.getResource(block);
		String amount = resource.getCount() > 1 ? " x " + resource.getCount() : "";
		IC2.platform.messagePlayer(player, "Contains: " + GTBedrockOreHandler.getResource(block).getDisplayName()
				+ amount);
	}
	world.playSound(null, player.getPosition(), SoundEvents.ENTITY_VILLAGER_AMBIENT, SoundCategory.PLAYERS, 1.0F, 1.0F);
	return EnumActionResult.SUCCESS;
}
 
源代码19 项目: Valkyrien-Skies   文件: ItemWrench.java
@Override
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos,
    EnumHand hand,
    EnumFacing facing, float hitX, float hitY, float hitZ) {
    if (worldIn.isRemote) {
        return EnumActionResult.SUCCESS;
    }

    if (player.isSneaking() && !VSConfig.wrenchModeless) {
        this.mode = EnumWrenchMode.values()[(this.mode.ordinal() + 1) % EnumWrenchMode.values().length]; // Switch to the next mode
        player.sendMessage(new TextComponentString(
            TextFormatting.BLUE + I18n.format("tooltip.vs_control.wrench_switched", this.mode.toString()))); // Say in chat
        return EnumActionResult.SUCCESS;
    }

    TileEntity blockTile = worldIn.getTileEntity(pos);
    boolean shouldConstruct = this.mode == EnumWrenchMode.CONSTRUCT || VSConfig.wrenchModeless;
    boolean shouldDeconstruct = this.mode == EnumWrenchMode.DECONSTRUCT || VSConfig.wrenchModeless;
    if (blockTile instanceof ITileEntityMultiblockPart) {
        ITileEntityMultiblockPart part = (ITileEntityMultiblockPart) blockTile;
        shouldConstruct = shouldConstruct && !part.isPartOfAssembledMultiblock();
        shouldDeconstruct = shouldDeconstruct && part.isPartOfAssembledMultiblock();
    } else if (blockTile instanceof TileEntityGearbox) {
        shouldConstruct = true;
    } else {
        return EnumActionResult.PASS;
    }
    if (shouldConstruct) {
        if (blockTile instanceof ITileEntityMultiblockPart) {
            if (((ITileEntityMultiblockPart) blockTile).attemptToAssembleMultiblock(worldIn, pos, facing)) {
                return EnumActionResult.SUCCESS;
            }
        } else if (blockTile instanceof TileEntityGearbox) {
            ((TileEntityGearbox) blockTile).setInputFacing(
                player.isSneaking() ? facing.getOpposite() : facing);
        }
    } else if (shouldDeconstruct) {
        ((ITileEntityMultiblockPart) blockTile).disassembleMultiblock();
        return EnumActionResult.SUCCESS;
    }

    return EnumActionResult.PASS;
}
 
源代码20 项目: Sakura_mod   文件: ItemRiceSeeds.java
@Override
  public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
      ItemStack itemstack = playerIn.getHeldItem(handIn);
      RayTraceResult raytraceresult = this.rayTrace(worldIn, playerIn, true);

      if (raytraceresult == null) {
          return new ActionResult<ItemStack>(EnumActionResult.PASS, itemstack);
      }
if (raytraceresult.typeOfHit == RayTraceResult.Type.BLOCK) {
    BlockPos blockpos = raytraceresult.getBlockPos();

    if (!worldIn.isBlockModifiable(playerIn, blockpos) || !playerIn.canPlayerEdit(blockpos.offset(raytraceresult.sideHit), raytraceresult.sideHit, itemstack)) {
        return new ActionResult<ItemStack>(EnumActionResult.FAIL, itemstack);
    }

    BlockPos blockpos1 = blockpos.up();
    IBlockState iblockstate = worldIn.getBlockState(blockpos);

    if (iblockstate.getMaterial() == Material.WATER && iblockstate.getValue(BlockLiquid.LEVEL).intValue() == 0 && worldIn.isAirBlock(blockpos1)) {
        // special case for handling block placement with water lilies
        net.minecraftforge.common.util.BlockSnapshot blocksnapshot = net.minecraftforge.common.util.BlockSnapshot.getBlockSnapshot(worldIn, blockpos1);
        worldIn.setBlockState(blockpos1, BlockLoader.RICECROP.getDefaultState());
        if (net.minecraftforge.event.ForgeEventFactory.onPlayerBlockPlace(playerIn, blocksnapshot, net.minecraft.util.EnumFacing.UP, handIn).isCanceled()) {
            blocksnapshot.restore(true, false);
            return new ActionResult<ItemStack>(EnumActionResult.FAIL, itemstack);
        }

        worldIn.setBlockState(blockpos1, BlockLoader.RICECROP.getDefaultState(), 11);

        if (playerIn instanceof EntityPlayerMP) {
            CriteriaTriggers.PLACED_BLOCK.trigger((EntityPlayerMP) playerIn, blockpos1, itemstack);
        }

        if (!playerIn.capabilities.isCreativeMode) {
            itemstack.shrink(1);
        }

        playerIn.addStat(StatList.getObjectUseStats(this));
        worldIn.playSound(playerIn, blockpos, SoundEvents.BLOCK_WATERLILY_PLACE, SoundCategory.BLOCKS, 1.0F, 1.0F);
        return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);
    }
}

return new ActionResult<ItemStack>(EnumActionResult.FAIL, itemstack);
  }
 
 同类方法