테스트

aion-server 4.8

Gitteol
최고관리자 · 1 · 💬 0 클론/새로받기
 4.8 61f661d · 1 commits 새로받기(Pull)
game-server/src/com/aionemu/gameserver/model/templates/pet/PetDopingBag.java
package com.aionemu.gameserver.model.templates.pet;

import java.util.Arrays;

/**
 * @author Rolandas
 */
public class PetDopingBag {

	public static final int MAX_ITEMS = 8; // food slot, drink slot and 6 scroll slots
	private int[] itemBag = null;
	private boolean isDirty = false;

	public void setFoodItem(int itemId) {
		setItem(itemId, 0);
	}

	public int getFoodItem() {
		if (itemBag == null || itemBag.length < 1)
			return 0;
		return itemBag[0];
	}

	public void setDrinkItem(int itemId) {
		setItem(itemId, 1);
	}

	public int getDrinkItem() {
		if (itemBag == null || itemBag.length < 2)
			return 0;
		return itemBag[1];
	}

	/**
	 * Adds or removes item to the bag
	 * 
	 * @param itemId
	 *          - item Id, or 0 to remove
	 * @param slot
	 *          - slot number; 0 for food, 1 for drink, the rest are for scrolls
	 */
	public synchronized void setItem(int itemId, int slot) {
		if (slot < 0 || slot >= MAX_ITEMS)
			throw new IllegalArgumentException("Slot index " + slot + " for item " + itemId + " is invalid.");
		if (itemBag == null || slot >= itemBag.length)
			itemBag = itemBag == null ? new int[slot + 1] : Arrays.copyOf(itemBag, slot + 1);
		if (itemBag[slot] != itemId) {
			itemBag[slot] = itemId;
			isDirty = true;
		}
	}

	public int[] getScrollsUsed() {
		if (itemBag == null || itemBag.length < 3)
			return new int[0];
		return Arrays.copyOfRange(itemBag, 2, itemBag.length);
	}

	public int[] getItems() {
		return itemBag == null ? new int[0] : itemBag;
	}

	/**
	 * Currently only scrolls can be relocated
	 */
	public void switchItems(int slot1, int slot2) {
		if (slot1 < 2 || slot2 < 2)
			return;
		int slot1Item = itemBag.length > slot1 ? itemBag[slot1] : 0;
		int slot2Item = itemBag.length > slot2 ? itemBag[slot2] : 0;
		setItem(slot1Item, slot2);
		setItem(slot2Item, slot1);
	}

	/**
	 * @return true if the bag needs saving
	 */
	public boolean isDirty() {
		return isDirty;
	}

}

📎 첨부파일

댓글 작성 권한이 없습니다.
🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 102,949
2 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 63,733
3 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,771
4 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 36,923
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 35,011
6 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 29,470
7 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 29,077
8 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
9 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 26,731
10 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 17,020
알림 0