當前位置: 首頁>>代碼示例>>Java>>正文


Java Action類代碼示例

本文整理匯總了Java中net.minecraftforge.event.entity.player.PlayerInteractEvent.Action的典型用法代碼示例。如果您正苦於以下問題:Java Action類的具體用法?Java Action怎麽用?Java Action使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Action類屬於net.minecraftforge.event.entity.player.PlayerInteractEvent包,在下文中一共展示了Action類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onPlayerInteract

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
public static void onPlayerInteract(PlayerInteractEvent event) {
	if (EtFuturum.enableGrassPath)
		if (event.entityPlayer != null) {
			World world = event.entityPlayer.worldObj;
			if (event.action == Action.RIGHT_CLICK_BLOCK)
				if (world.getBlock(event.x, event.y, event.z) == Blocks.grass) {
					ItemStack stack = event.entityPlayer.getCurrentEquippedItem();
					if (stack != null && (stack.getItem() instanceof ItemSpade || isTinkersShovel(stack))) {
						world.setBlock(event.x, event.y, event.z, ModBlocks.grass_path);
						event.entityPlayer.swingItem();
						stack.damageItem(1, event.entityPlayer);
						world.playSoundEffect(event.x + 0.5F, event.y + 0.5F, event.z + 0.5F, Block.soundTypeGravel.getStepResourcePath(), 1.0F, 0.8F);
					}
				}
		}
}
 
開發者ID:jm-organization,項目名稱:connor41-etfuturum2,代碼行數:17,代碼來源:GrassPath.java

示例2: handleCropRightClick

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void handleCropRightClick(PlayerInteractEvent event) {
  int x = event.x, y = event.y, z = event.z;
  Block block = event.world.getBlock(x, y, z);
  int meta = event.world.getBlockMetadata(x, y, z);
  if (ConfigHandler.allowCropRC && event.action == Action.RIGHT_CLICK_BLOCK && (event.entityPlayer.getHeldItem() == null || !event.entityPlayer.isSneaking())) {
    for (PlantInfo info : plants) {
      if (info.blockInst == block && meta == info.meta) {
        if (event.world.isRemote) {
          event.entityPlayer.swingItem();
        } else {
          currentPlant = info;
          block.dropBlockAsItem(event.world, x, y, z, meta, 0);
          currentPlant = null;
          event.world.setBlockMetadataWithNotify(x, y, z, info.resetMeta, 3);
          event.setCanceled(true);
        }
        break;
      }
    }
  }
}
 
開發者ID:SleepyTrousers,項目名稱:EnderCore,代碼行數:23,代碼來源:RightClickCropHandler.java

示例3: onPlayerInteract

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void onPlayerInteract(PlayerInteractEvent event)
{
	if (event.entityPlayer.worldObj.isRemote)
		return;
	
	ItemStack itemInHand = event.entityPlayer.getCurrentEquippedItem();
	if (itemInHand == null) {
		return;
	}
	//Disable interaction between Mek and OpenBlock tanks and TFC Barrels or Vessels **Dupe bug***
	boolean validAction = event.action == Action.RIGHT_CLICK_BLOCK;
			
	if(validAction) {
		Block target = event.world.getBlock(event.x, event.y, event.z);
		if (target == TFCBlocks.barrel || target == TFCBlocks.vessel) {
			String name = itemInHand.getUnlocalizedName();
			if (name.contains("tile.openblocks.tank") || name.contains("tile.MachineBlock2.PortableTank") ||
					name.contains("ImmersiveEngineering.drill") || name.contains("ImmersiveEngineering.chemthrower")
					|| name.contains("ImmersiveEngineering.jerrycan") || name.contains("MachineBlock2")){
				event.setCanceled(true);
				return;
			}
		}
	}
}
 
開發者ID:AnodeCathode,項目名稱:TechNodefirmacraftMod,代碼行數:27,代碼來源:PlayerInteractHandler.java

示例4: onEntitySwing

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
/**
 * Called when the player left-clicks
 */
@Override
public boolean onEntitySwing( final EntityLivingBase entity, final ItemStack wandStack )
{
	// Is the entity a player?
	if( entity instanceof EntityPlayer )
	{
		// Cast to player
		EntityPlayer player = (EntityPlayer)entity;

		// Ray trace
		MovingObjectPosition position = this.getMovingObjectPositionFromPlayer( player.worldObj, player, true );

		// Was a block hit?
		if( ( position != null ) && ( position.typeOfHit == MovingObjectType.BLOCK ) )
		{
			// Use the focus
			return this.onUse( player.worldObj, player, position, wandStack, Action.LEFT_CLICK_BLOCK );
		}
	}

	return false;

}
 
開發者ID:Nividica,項目名稱:ThaumicEnergistics,代碼行數:27,代碼來源:ItemFocusAEWrench.java

示例5: onEntityInteract

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void onEntityInteract(EntityInteractEvent ev) {
    if(ev.entity.worldObj.isRemote || ev.isCanceled()) {
        return;
    }
    int x = (int) Math.floor(ev.target.posX);
    int y = (int) Math.floor(ev.target.posY);
    int z = (int) Math.floor(ev.target.posZ);

    Resident res = MyTownUniverse.instance.getOrMakeResident(ev.entityPlayer);
    ProtectionManager.checkInteraction(ev.target, res, ev);
    if(!ev.isCanceled() && ev.entityPlayer.getHeldItem() != null) {
        BlockPos bp = new BlockPos(x, y, z, ev.target.dimension);
        ProtectionManager.checkUsage(ev.entityPlayer.getHeldItem(), res, PlayerInteractEvent.Action.RIGHT_CLICK_AIR, bp, -1, ev);
    }
}
 
開發者ID:MyEssentials,項目名稱:MyTown2,代碼行數:17,代碼來源:ProtectionHandlers.java

示例6: onInteract

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void onInteract(PlayerInteractEvent pie){
	if(pie.action==Action.RIGHT_CLICK_BLOCK) {
		ItemStack i=pie.entityPlayer.getCurrentEquippedItem();
		
		if(i!=null && i.getItem().equals(Items.flint_and_steel)){
			PortalHandler.establishPortal(pie.world, pie.x, pie.y, pie.z, pie.face);
		}
		
		if(Properties.enableSimpleSetSpawn 
				&& pie.world instanceof WorldServer
				&& pie.world.getBlock(pie.x, pie.y, pie.z)==Blocks.bed) {
			ChunkCoordinates bedPosition=new ChunkCoordinates(pie.x, pie.y, pie.z);
			pie.entityPlayer.setSpawnChunk(bedPosition, false);
			pie.entityPlayer.addChatComponentMessage(new ChatComponentText("Spawn reset to ("+pie.x+", "+pie.y+", "+pie.z+")"));			}
	}
}
 
開發者ID:planetguy32,項目名稱:Gizmos,代碼行數:18,代碼來源:ForgeEventHandler.java

示例7: onPlayerInteractEvent

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void onPlayerInteractEvent(PlayerInteractEvent event) {
  if (Util.isClientSide()) {
    if (event.action != Action.RIGHT_CLICK_BLOCK) {
      return;
    }
    EntityPlayer player = event.entityPlayer;
    if (player == null) {
      return;
    }
    if (player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemBlockManipulator) || player.getHeldItem().stackTagCompound == null || !(player.getHeldItem().getItem() instanceof OEItemInterface)) {
      return;
    }
    NBTTagCompound nbt = new NBTTagCompound();
    nbt.setInteger("x", event.x);
    nbt.setInteger("y", event.y);
    nbt.setInteger("z", event.z);
    nbt.setInteger("face", event.face);// Bottom = 0, Top = 1, Sides = 2-5
    NetworkUtil.sendToServer(Channel.BlockManipulater, nbt);
    event.setCanceled(true);
  }
}
 
開發者ID:ictrobot,項目名稱:Open-Exchange,代碼行數:23,代碼來源:ItemBlockManipulator.java

示例8: onPlayerInteract

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public boolean onPlayerInteract(PlayerInteractEvent event){
    if(event.action == Action.RIGHT_CLICK_BLOCK && isListeningToCoordTrackerSetting) {
        isListeningToCoordTrackerSetting = false;
        ForgeDirection dir = ForgeDirection.getOrientation(event.face);
        reset();
        ItemStack stack = event.entityPlayer.getCurrentArmor(3);
        if(stack != null) {
            NBTTagCompound tag = NBTUtil.getCompoundTag(stack, "CoordTracker");
            tag.setInteger("dimID", event.entity.worldObj.provider.dimensionId);
            tag.setInteger("x", event.x + dir.offsetX);
            tag.setInteger("y", event.y + dir.offsetY);
            tag.setInteger("z", event.z + dir.offsetZ);
        }
        NetworkHandler.sendToServer(new PacketCoordTrackUpdate(event.entity.worldObj, event.x + dir.offsetX, event.y + dir.offsetY, event.z + dir.offsetZ));
    }
    return false;
}
 
開發者ID:MineMaarten,項目名稱:PneumaticCraft,代碼行數:19,代碼來源:CoordTrackUpgradeHandler.java

示例9: eventPlayerInteractEvent

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void eventPlayerInteractEvent(PlayerInteractEvent event) {
	World world = event.world;
	int x = event.x;
	int y = event.y;
	int z = event.z;
	EntityPlayer player = event.entityPlayer;
	if (player != null && player.getHeldItem() != null && player.getHeldItem().getItem() == Items.stick) {
		if (TOConfig.debugEnable && TOConfig.debugScanner && !world.isRemote
				&& event.action.equals(Action.RIGHT_CLICK_BLOCK) && player.capabilities.isCreativeMode) {
			int radius = TOConfig.debugRemoverScannerRadius;
			int[] counter = new int[] { 0, 0, 0, 0, 0, 0 };
			for (int xx = x - radius; xx < x + radius; xx++)
				for (int zz = z - radius; zz < z + radius; zz++)
					for (int yy = 0; yy < 257; yy++)
						if ((world.getBlock(xx, yy, zz) instanceof BlockInfusedBlockOre)
								&& world.getBlockMetadata(xx, yy, zz) < 6)
							counter[world.getBlockMetadata(xx, yy, zz)]++;
			String text = "[DEBUG " + ThaumOresMod.NAME + "] Scanned blocks at " + x + ";" + z + " with radius "
					+ radius;
			for (int meta = 0; meta < 6; meta++)
				text += "\n Count ores with meta " + meta + " = " + counter[meta];
			for (String string : text.split("\n")) {
				ThaumOresMod.log.info(string);
				player.addChatMessage(new ChatComponentText(string));
			}
		}
	}
}
 
開發者ID:MJaroslav,項目名稱:ThaumOres,代碼行數:30,代碼來源:TOEvents.java

示例10: getInteractionType

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
public static InteractionType getInteractionType(final PlayerInteractEvent event) {

			if (event.action != Action.RIGHT_CLICK_BLOCK)
				return Nothing;

			if(event.entityPlayer.capabilities.isCreativeMode) {
				final ItemStack held = event.entityPlayer.getHeldItem();
				if(held != null && held.getItem() == CONFIGURE_ITEM) {
					return Configure;
				}
			}
			
			return Use;
		}
 
開發者ID:OreCruncher,項目名稱:Pathways,代碼行數:15,代碼來源:PlayerInteractEventHandler.java

示例11: playerInteractEventHandler

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
    public void playerInteractEventHandler(PlayerInteractEvent event)
    {
//    	if(event.world.isRemote)
//    	{
    		//generate the json file
//    		generateJson();
    		// get players held item
        	ItemStack heldItem = event.entityPlayer.inventory.getCurrentItem();
        	//Toggle mode on key press
        	if(event.world.isRemote)
        	{
        		if (event.action == Action.RIGHT_CLICK_AIR && key.config.isPressed())
        		{
        			//Load the json file
//        			load();
        			if(clientSetting != 3)
        				clientSetting++;
        			if(clientSetting >= 3)
        				clientSetting = 0;
        			event.entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("torchieeeeness_key" + clientSetting)));
        			// Save the json file
//        			save();
                    PacketHandler.INSTANCE.sendToServer(new MessageSettings(clientSetting));
        		}
//        	}
    	}

        if(serverSetting != 0 && !(event.world.getTileEntity(event.x, event.y, event.z) instanceof TileEntity))
        {
        	if(serverSetting == 1)
        		placeAnything(event);
        	if(serverSetting == 2)
        		placeOnlyTorchs(event);
        }
    }
 
開發者ID:gigabit101,項目名稱:Torchieeeeness,代碼行數:37,代碼來源:TorchEventHandler.java

示例12: onWrenchBlock

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void onWrenchBlock(PlayerInteractEvent event) {

	if (!event.world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK) {

		EntityPlayer player = event.entityPlayer;
		ItemStack itemInHand = player.getCurrentEquippedItem();

		if (player.isSneaking() && itemInHand != null && itemInHand.getItem() == InitItems.wrench) {
			wrenchBlock(new Location(event.world, event.x, event.y, event.z), player);
		}
	}
}
 
開發者ID:TeamMonumental,項目名稱:FusionWarfare,代碼行數:14,代碼來源:WrenchEvent.java

示例13: placeBlockEvent

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void placeBlockEvent(PlayerInteractEvent event) {
	EntityPlayer p = event.entityPlayer;
    if(event.action == Action.RIGHT_CLICK_BLOCK) {
    	Block clickedBlock = HelperActions.getBlock(event.x, event.y, event.z);
    	if (HelperActions.blockIsOneOf(clickedBlock, HelperActions.unbreakableBlocks) && event.y < p.posY) {
    		List<HelperPos> blockPoss = new ArrayList<HelperPos>();
    		blockPoss.add(new HelperPos(event.x, event.y + 1, event.z));
    		blockPoss.add(new HelperPos(event.x, event.y, event.z + 1));
    		blockPoss.add(new HelperPos(event.x, event.y, event.z - 1));
    		blockPoss.add(new HelperPos(event.x + 1, event.y, event.z));
    		blockPoss.add(new HelperPos(event.x - 1, event.y, event.z));
    		
    		for (HelperPos pos : blockPoss) {
    			String key = pos.x + "," + pos.y + "," + pos.z;
    			if (HelperActions.blockIsOneOf(HelperActions.getBlock(pos), HelperActions.mineableBlocks) && 
    					!MinecraftStateGeneratorHelper.blockNameMap.containsKey(key)) {
    				int blockID = HelperActions.getBlockId(pos.x, pos.y, pos.z);
    				ArrayList<String> blockNames = MinecraftStateGeneratorHelper.invBlockNameMap.get(blockID);
    				if (blockNames != null && blockNames.size() == 1) {
    					MinecraftStateGeneratorHelper.blockNameMap.put(key, blockNames.get(0));
    					MinecraftStateGeneratorHelper.invBlockNameMap.remove(blockID);
    				}
    				else {
						if(blockNames != null) {
							MinecraftStateGeneratorHelper.blockNameMap.put(key, blockNames.get(0));
							blockNames.remove(0);
						}
    				}
    				break;
    			}
    		}
    	}
    }
}
 
開發者ID:h2r,項目名稱:burlapcraft,代碼行數:36,代碼來源:HandlerEvents.java

示例14: blockPlaceEvent

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void blockPlaceEvent(PlayerInteractEvent event) {
	ForgeDirection direction = ForgeDirection.getOrientation(event.face);
	if(!event.world.isRemote && Action.RIGHT_CLICK_BLOCK == event.action && event.entityPlayer != null  && AtmosphereHandler.getOxygenHandler(event.world.provider.dimensionId) != null &&
			!AtmosphereHandler.getOxygenHandler(event.world.provider.dimensionId).getAtmosphereType(event.x + direction.offsetX, event.y + direction.offsetY, event.z + direction.offsetZ).allowsCombustion()) {

		if(event.entityPlayer.getCurrentEquippedItem() != null) {
			if(event.entityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(Blocks.torch) && 
					event.world.getBlock(event.x, event.y, event.z).isSideSolid(event.world, event.x, event.y, event.z, direction)) {
				event.setCanceled(true);
				event.world.setBlock(event.x + direction.offsetX, event.y + direction.offsetY, event.z + direction.offsetZ, AdvancedRocketryBlocks.blockUnlitTorch);
			}
			else if(zmaster587.advancedRocketry.api.Configuration.torchBlocks.contains(Block.getBlockFromItem(event.entityPlayer.getCurrentEquippedItem().getItem())) )
				event.setCanceled(true);
			else if(event.entityPlayer.getCurrentEquippedItem().getItem() == Items.flint_and_steel || event.entityPlayer.getCurrentEquippedItem().getItem() == Items.fire_charge || event.entityPlayer.getCurrentEquippedItem().getItem() == Items.blaze_powder || event.entityPlayer.getCurrentEquippedItem().getItem() == Items.blaze_rod || event.entityPlayer.getCurrentEquippedItem().getItem() == Items.lava_bucket)
				event.setCanceled(true);
		}
	}

	if(!event.world.isRemote && event.entityPlayer != null && event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK && event.entityPlayer.getCurrentEquippedItem() != null && event.entityPlayer.getCurrentEquippedItem().getItem() == Items.bed && event.world.provider instanceof WorldProviderPlanet) {
		AdvancedRocketryItems.itemAstroBed.onItemUse( event.entityPlayer.getCurrentEquippedItem(),  event.entityPlayer,  event.entityPlayer.worldObj, event.x, event.y, event.z, event.face, 0, 0, 0);
		event.setCanceled(true);
	}

	if(!event.world.isRemote && event.entityPlayer != null && event.entityPlayer.getCurrentEquippedItem() != null && event.entityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(AdvancedRocketryBlocks.blockGenericSeat) && event.world.getBlock(event.x, event.y, event.z) == Blocks.tnt) {
		event.entityPlayer.triggerAchievement(ARAchivements.beerOnTheSun);
	}
}
 
開發者ID:zmaster587,項目名稱:AdvancedRocketry,代碼行數:29,代碼來源:PlanetEventHandler.java

示例15: PlayerRightClickEvent

import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; //導入依賴的package包/類
@SubscribeEvent
public void PlayerRightClickEvent(PlayerInteractEvent event)
{
	if(ConfigHandler.allowCropFeature)
	{
		EntityPlayer player = event.entityPlayer;
		World world = event.world;
		Block crop = world.getBlock(event.x, event.y, event.z);
		int cropMeta = world.getBlockMetadata(event.x, event.y, event.z);
		int dropRate = event.world.rand.nextInt(3) + 1;
		ItemStack drops = new ItemStack(crop.getItemDropped(cropMeta, event.world.rand, Short.MAX_VALUE), dropRate);
		
		
		if(player.getCurrentEquippedItem() == null && event.action == Action.RIGHT_CLICK_BLOCK && crop != null)
		{	
			if(crop instanceof BlockCrops && cropMeta >= 7)
			{
				event.entityPlayer.swingItem();
				if(!world.isRemote)
				{
					EntityItem droppedItem = new EntityItem(world, event.x, event.y, event.z, drops);
					world.setBlockMetadataWithNotify(event.x, event.y, event.z, 0, 3);
					world.spawnEntityInWorld(droppedItem);
				}
			}
		}
	}
}
 
開發者ID:oitsjustjose,項目名稱:GlassWorks,代碼行數:29,代碼來源:CropEvent.java


注:本文中的net.minecraftforge.event.entity.player.PlayerInteractEvent.Action類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。