/* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jserver.gameserver.model.itemcontainer; import java.util.List; import javolution.util.FastList; import com.l2jserver.Config; import com.l2jserver.gameserver.model.L2ItemInstance; import com.l2jserver.gameserver.model.L2ItemInstance.ItemLocation; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.skills.Stats; public class PcFreight extends ItemContainer { private final L2PcInstance _owner; private int _ownerId = 0; public PcFreight(int object_id) { _owner = null; _ownerId = object_id; restore(); } public PcFreight(L2PcInstance owner) { _owner = owner; _ownerId = owner.getObjectId(); } @Override public L2PcInstance getOwner() { return _owner; } @Override public ItemLocation getBaseLocation() { return ItemLocation.FREIGHT; } /** * Returns the quantity of items in the inventory * @return int */ @Override public int getSize() { int size = 0; for (L2ItemInstance item : _items) { if (item.getLocation() == getBaseLocation()) size++; } return size; } /** * Returns the list of items in inventory * @return L2ItemInstance : items in inventory */ @Override public L2ItemInstance[] getItems() { List list = new FastList(); for (L2ItemInstance item : _items) { if (item.isFreightable()) list.add(item); } return list.toArray(new L2ItemInstance[list.size()]); } /** * Returns the item from inventory by using its itemId * @param itemId : int designating the ID of the item * @return L2ItemInstance designating the item or null if not found in inventory */ @Override public L2ItemInstance getItemByItemId(int itemId) { for (L2ItemInstance item : _items) if ((item.getItemId() == itemId) && (item.getLocation() == ItemLocation.INVENTORY)) return item; return null; } @Override public int getOwnerId() { return _ownerId; } @Override public boolean validateCapacity(int slots) { int curSlots = _owner == null ? Config.ALT_FREIGHT_SLOTS : Config.ALT_FREIGHT_SLOTS + (int)_owner.getStat().calcStat(Stats.FREIGHT_LIM, 0, null, null); return (getSize() + slots <= curSlots); } }