Package forestry.core.gui

Source Code of forestry.core.gui.ContainerSocketed

/*******************************************************************************
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.core.gui;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;

import forestry.core.interfaces.ISocketable;
import forestry.core.network.PacketIds;
import forestry.core.network.PacketPayload;
import forestry.core.network.PacketSocketUpdate;
import forestry.core.network.PacketUpdate;
import forestry.core.proxy.Proxies;
import forestry.core.utils.StackUtils;

public class ContainerSocketed extends ContainerForestry {

  ISocketable tile;

  public ContainerSocketed(IInventory inventory, ISocketable tile) {
    super(inventory);
    this.tile = tile;
  }

  public void handleChipsetClick(int slot, EntityPlayer player, ItemStack itemstack) {
    if (!Proxies.common.isSimulating(player.worldObj)) {
      PacketPayload payload = new PacketPayload(1, 0, 0);
      payload.intPayload[0] = slot;
      Proxies.net.sendToServer(new PacketUpdate(PacketIds.CHIPSET_CLICK, payload));
      player.inventory.setItemStack(null);
      return;
    }

    ItemStack toSocket = itemstack.copy();
    toSocket.stackSize = 1;
    tile.setSocket(slot, toSocket);

    if (Proxies.common.isSimulating(player.worldObj)) {
      ItemStack stack = player.inventory.getItemStack();
      stack.stackSize--;
      if(stack.stackSize <= 0)
        player.inventory.setItemStack(null);
      Proxies.net.inventoryChangeNotify(player);
     
      TileEntity te = (TileEntity) tile;
      Proxies.net.sendToPlayer(new PacketSocketUpdate(PacketIds.SOCKET_UPDATE, te.xCoord, te.yCoord, te.zCoord, tile), player);
    }

  }

  public void handleSolderingIronClick(int slot, EntityPlayer player, ItemStack itemstack) {
    if (!Proxies.common.isSimulating(player.worldObj)) {
      PacketPayload payload = new PacketPayload(1, 0, 0);
      payload.intPayload[0] = slot;
      Proxies.net.sendToServer(new PacketUpdate(PacketIds.SOLDERING_IRON_CLICK, payload));
      return;
    }

    ItemStack socket = tile.getSocket(slot);
    if (socket == null)
      return;

    StackUtils.stowInInventory(socket, player.inventory, true);
    // Not sufficient space in player's inventory. failed to stow.
    if (socket.stackSize > 0)
      return;

    tile.setSocket(slot, null);
    itemstack.damageItem(1, player);
    if (itemstack.stackSize <= 0)
      player.inventory.setItemStack(null);

    TileEntity te = (TileEntity) tile;
    Proxies.net.sendToPlayer(new PacketSocketUpdate(PacketIds.SOCKET_UPDATE, te.xCoord, te.yCoord, te.zCoord, tile), player);

  }

}
TOP

Related Classes of forestry.core.gui.ContainerSocketed

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.