Package appeng.hooks

Source Code of appeng.hooks.DispenserMatterCannon

package appeng.hooks;

import net.minecraft.block.BlockDispenser;
import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
import net.minecraft.dispenser.IBlockSource;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.items.tools.powered.ToolMassCannon;
import appeng.util.Platform;

final public class DispenserMatterCannon extends BehaviorDefaultDispenseItem
{

  @Override
  protected ItemStack dispenseStack(IBlockSource dispenser, ItemStack dispensedItem)
  {
    Item i = dispensedItem.getItem();
    if ( i instanceof ToolMassCannon )
    {
      EnumFacing enumfacing = BlockDispenser.func_149937_b( dispenser.getBlockMetadata() );
      ForgeDirection dir = ForgeDirection.UNKNOWN;
      for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS)
      {
        if ( enumfacing.getFrontOffsetX() == d.offsetX && enumfacing.getFrontOffsetY() == d.offsetY && enumfacing.getFrontOffsetZ() == d.offsetZ )
          dir = d;
      }

      ToolMassCannon tm = (ToolMassCannon) i;

      World w = dispenser.getWorld();
      if ( w instanceof WorldServer )
      {
        EntityPlayer p = Platform.getPlayer( (WorldServer) w );
        Platform.configurePlayer( p, dir, dispenser.getBlockTileEntity() );

        p.posX += dir.offsetX;
        p.posY += dir.offsetY;
        p.posZ += dir.offsetZ;

        dispensedItem = tm.onItemRightClick( dispensedItem, w, p );
      }
    }
    return dispensedItem;
  }
}
TOP

Related Classes of appeng.hooks.DispenserMatterCannon

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.