提供: Minecraft Modding Wiki
移動先: 案内検索

この記事は"Minecraft Forge及びIndustrialCraft² API"を前提MODとしています。

IElectricItemの利用[編集]

EUを使用するアイテムや電池を作成することができます。 IElectricItemはインターフェースなので、Itemを継承したクラスで実装して使用します。

利用例[編集]

MFEと同じ容量を持ち、エナジークリスタルと性能の同じ電池を作成してみます。

public class ItemPortableMFE extends Item implements IElectricItem {

	public ItemPortableMFE(int id) {
		super(id);
		//ゲージ表示用のため適当
		this.setMaxDamage(1000);

	}

	@Override
	public boolean canProvideEnergy() {
		//trueを返すとマシンや蓄電器にエネルギーを供給できるようになります。
		return true;
	}

	@Override
	public int getChargedItemId() {
		// 充電された状態のItemIDを指定します。
		//充電式電池のような空になるとスタックできるアイテムで使われています。
		//ここでは両方とも同じIDを返します。
		return this.itemID;
	}

	@Override
	public int getEmptyItemId() {
		// 空の状態のItemIDを指定します。
		return this.itemID;
	}

	@Override
	public int getMaxCharge() {
		//充電できる最大EU量を返します。
		//ここではMFEと同じ量にしておきます。
		return 600000;
	}

	@Override
	public int getTier() {
		//アイテムの世代を返します。
		//1にすると充電式電池、2にするとエナジークリスタル、3にするとラポトロンクリスタルと使用可能なマシンが同じになります。
		//ここではエナジークリスタルと同じ世代にしておきます。
		return 2;
	}

	@Override
	public int getTransferLimit() {
		//蓄電器やマシンとのEUのやり取りの速さを指定します。
		//ここではエナジークリスタルと同じ速さにしておきます。
		return 250;
	}

}

ElectricItemの利用[編集]

上記のIElectricItemを実装したアイテムを充電したり放電したりすることができます。


メソッドの一覧[編集]

基本的に全てstaticメソッドなのでそのまま呼び出せます。

メソッド名説明
int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)itemStackのアイテムをamountのEU量だけ充電します。返り値は充電された量です。
tierは充電を実行するマシンのものを渡せばいいです。
ignoreTransferLimitをtrueにするとアイテム側のgetTransferLimit()の結果を無視します。
simulateをtrueにすると実際に充電が実行されずにシミュレーションした結果が返ってきます。
int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)充電と基本的に同じで放電に変わっているだけだから省略します。
canUse(ItemStack itemStack, int amount)itemStackのアイテムからamountの量のEUを使用できるかが返ってきます。
boolean use(ItemStack itemStack, int amount, EntityPlayer player)itemStackのアイテムやplayerの装備しているBatPackのようなアイテムからamountの量のEUを使用します。返り値は成功したかどうかです。
void chargeFromArmor(ItemStack itemStack, EntityPlayer player)itemStackのアイテムにplayerの装備しているBatPackのようなアイテムから充電できるだけ充電します。