Java 类net.minecraft.util.MainOrOffHand 实例源码

项目:DoubleDoors    文件:DoubleDoorsMod.java   
public static void onBlockActivatedHook(BlockDoor door, World world, BlockPos pos, IBlockState state, EntityPlayer player, MainOrOffHand hand, EnumFacing side, float hitX, float hitY, float hitZ)
{
    if (player.isSneaking()) return;

    state = world.getBlockState(pos);       
    BlockPos doorBase = state.getValue(BlockDoor.HALF) == BlockDoor.EnumDoorHalf.LOWER ? pos : pos.down();
    state = world.getBlockState(doorBase);

    for (EnumFacing facing : EnumFacing.values()) {
        if (facing == EnumFacing.DOWN || facing == EnumFacing.UP) continue;

        BlockPos newPos = doorBase.offset(facing);
        IBlockState newState = world.getBlockState(newPos);
        if (newState == null) continue;
        if (newState.getBlock() != door) continue;
        if ((boolean)newState.getValue(BlockDoor.OPEN) == (boolean)state.getValue(BlockDoor.OPEN)) continue;
        if (newState.getValue(BlockDoor.HALF) != state.getValue(BlockDoor.HALF)) continue;

        //newState.getBlock().onBlockActivated(world, newPos, newState, player, hand, stack, side, hitX, hitY, hitZ);
        newState = newState.cycleProperty(BlockDoor.OPEN);
        world.setBlockState(newPos, newState, 2);
           world.markBlockRangeForRenderUpdate(newPos, newPos);
           //world.playAuxSFXAtEntity(player, ((Boolean)newState.getValue(BlockDoor.OPEN)).booleanValue() ? 1003 : 1006, newPos, 0);
           world.playAuxSFXAtEntity(player, ((Boolean)newState.getValue(BlockDoor.OPEN)).booleanValue() ? 1005 : 1011, newPos, 0);
       }
}
项目:JourneyStone    文件:ItemJourneyStone.java   
@Override
public ObjectActionHolder<ItemStack> onItemRightClick(World world, EntityPlayer player, MainOrOffHand hand) 
{
    ItemStack stack = player.getHeldItem(hand);

    boolean hasKeys = false;

    NBTTagCompound tag = stack.getTagCompound();
    if (tag != null) {          
        if (tag.hasKey("teleportX", 3) && tag.hasKey("teleportY", 3) && tag.hasKey("teleportZ", 3)) hasKeys = true;
    }

    if (hasKeys) {
        player.setItemInUse(hand);  
        return new ObjectActionHolder<ItemStack>(ItemUseResult.SUCCESS, stack);
    }
    else return new ObjectActionHolder<ItemStack>(ItemUseResult.FAIL, stack);
}
项目:JustBackpack    文件:ItemBackpack.java   
@Override
public ObjectActionHolder<ItemStack> onItemRightClick(World world, EntityPlayer player, MainOrOffHand hand)
{
    ItemStack stack = player.getHeldItem(hand);

    if (!world.isRemote)
    {
        InventoryBackpack backpackInventory = getInventory(stack);

        int size = player.inventory.getSizeInventory();
        int slotNum = -1;
        for (int n = 0; n < size; n++) {
            if (player.inventory.getStackInSlot(n) == stack) { slotNum = n; break; }
        }           
        backpackInventory.setSlotNum(slotNum);

        //if (backpackInventory != null) player.displayGui(new BackpackInteractionObject(player, backpackInventory));
        if (backpackInventory != null) player.displayGUIChest(backpackInventory);
    }
    return new ObjectActionHolder<ItemStack>(ItemUseResult.SUCCESS, stack);
}
项目:FullyLoded    文件:FullyLoded.java   
public static boolean destroyBlock(IBlockState state, World world, BlockPos newPos, EntityPlayer player) {      
    if (player.getHeldMainHandItem() == null || player.getHeldMainHandItem().getStackSize() < 1) return false;      

    IBlockState upState = world.getBlockState(newPos);
    if (upState == null) return false;              
    Block block = state.getBlock();

    if (blocksAreRelated(upState, state))
    {
        world.setBlockState(newPos, Blocks.air.getDefaultState(), 3);                   
        player.getHeldMainHandItem().damageItem(1, player);

        if (player.getHeldMainHandItem().getStackSize() < 1) {                          
            player.setHeldItem(MainOrOffHand.MAIN_HAND, ItemStack.NULL_STACK);
        }

        if (!world.isRemote) block.harvestBlock(world, player, newPos, upState, null, player.getHeldMainHandItem() == null ? null : player.getHeldMainHandItem().copy());

        return true;
    }

    return false;
}
项目:HeavyMeddle    文件:HeavyMeddleMod.java   
/**
 * Destroys a single log block in the world.
 * @param block
 * @param world
 * @param pos
 * @param player
 * @return Whether the block was successfully destroyed by the player.
 */
public static boolean destroyBlock(Block block, World world, BlockPos pos, EntityPlayer player) {
    if (player.getHeldMainHandItem() == null || player.getHeldMainHandItem().getStackSize() < 1) return false;

    IBlockState upState = world.getBlockState(pos);
    if (upState == null) return false;              

    if (upState.getBlock() != null && upState.getBlock() == block) 
    {
        world.setBlockState(pos, Blocks.air.getDefaultState(), 3);                  
        player.getHeldMainHandItem().damageItem(1, player);

        if (player.getHeldMainHandItem().getStackSize() < 1) {                          
            player.setHeldItem(MainOrOffHand.MAIN_HAND, ItemStack.NULL_STACK);
        }                   

        block.harvestBlock(world, player, pos, upState, null, player.getHeldMainHandItem() == null ? null : player.getHeldMainHandItem().copy());
        return true;
    }

    return false;

}
项目:JourneyStone    文件:ItemJourneyStone.java   
@Override
public ItemUseResult onItemUse(EntityPlayer player, World world, BlockPos pos, MainOrOffHand hand, EnumFacing facing, float x, float y, float z) 
{
    // TODO - Don't let you teleport in the wrong dimension

    ItemStack stack = player.getHeldItem(hand);

    boolean hasKeys = false;
    boolean hasTempKeys = false;

    NBTTagCompound tag = stack.getTagCompound();
    if (tag != null) {          
        if (tag.hasKey("teleportX", 3) && tag.hasKey("teleportY", 3) && tag.hasKey("teleportZ", 3)) hasKeys = true;
        if (tag.hasKey("confirmX", 3) && tag.hasKey("confirmY", 3) && tag.hasKey("confirmZ", 3)) hasTempKeys = true;
    }

    // Do it the hard way since we don't have enough mappings
    BlockPos destPos = null;        
    switch (facing.ordinal()) {
        case 0: destPos = pos.down(); break;
        case 1: destPos = pos.up(); break;
        case 2: destPos = pos.north(); break;
        case 3: destPos = pos.south(); break;
        case 4: destPos = pos.west(); break;
        case 5: destPos = pos.east(); break;
    }

    if (tag == null) { 
        tag = new NBTTagCompound();
        stack.setTagCompound(tag);
    }               

    if (!hasKeys && !hasTempKeys) {         
        tag.setInteger("confirmX", destPos.getX());
        tag.setInteger("confirmY", destPos.getY());
        tag.setInteger("confirmZ", destPos.getZ());             

        if (world.isRemote) player.addChatMessage(new ChatComponentText("Select again to confirm coordinates."));
    }
    else if (!hasKeys && hasTempKeys)
    {
        int cx = tag.getInteger("confirmX");
        int cy = tag.getInteger("confirmY");
        int cz = tag.getInteger("confirmZ");
        if (cx == destPos.getX() && cy == destPos.getY() && cz == destPos.getZ()) {
            tag.removeTag("confirmX");
            tag.removeTag("confirmY");
            tag.removeTag("confirmZ");
            tag.setInteger("teleportX", destPos.getX());
            tag.setInteger("teleportY", destPos.getY());
            tag.setInteger("teleportZ", destPos.getZ());
            if (world.isRemote) player.addChatMessage(new ChatComponentText("Coordinates saved."));
        }
        else {
            tag.setInteger("confirmX", destPos.getX());
            tag.setInteger("confirmY", destPos.getY());
            tag.setInteger("confirmZ", destPos.getZ());             

            if (world.isRemote) player.addChatMessage(new ChatComponentText("Select again to confirm coordinates."));
        }
    }

    return super.onItemUse(player, world, pos, hand, facing, x, y, z);
}
项目:JustBackpack    文件:ItemBackpack.java   
@Override
public ItemUseResult onItemUse(EntityPlayer player, World world, BlockPos pos, MainOrOffHand hand,
        EnumFacing facing, float x, float y, float z)
{
    return super.onItemUse(player,  world,  pos,  hand,  facing,  x,  y,  z);
}