提供: Minecraft Modding Wiki
FirstSpring (トーク | 投稿記録) |
FirstSpring (トーク | 投稿記録) 細 (書き漏れの修正) |
||
24行目: | 24行目: | ||
public int getChargedItemId() { | public int getChargedItemId() { | ||
// 充電された状態のItemIDを指定します。 | // 充電された状態のItemIDを指定します。 | ||
− | // | + | //充電式電池のような空になるとスタックできるアイテムで使われています。 |
//ここでは両方とも同じIDを返します。 | //ここでは両方とも同じIDを返します。 | ||
return this.itemID; | return this.itemID; | ||
45行目: | 45行目: | ||
public int getTier() { | public int getTier() { | ||
//アイテムの世代を返します。 | //アイテムの世代を返します。 | ||
− | // | + | //1にすると充電式電池、2にするとエナジークリスタル、3にするとラポトロンクリスタルと使用可能なマシンが同じになります。 |
//ここではエナジークリスタルと同じ世代にしておきます。 | //ここではエナジークリスタルと同じ世代にしておきます。 | ||
return 2; | return 2; |
2013年2月9日 (土) 21:29時点における版
この記事は"Minecraft Forge及びIndustrialCraft² API"を前提MODとしています。 |
IElectricItemの利用
EUを使用するアイテムや電池を作成することができます。 IElectricItemはインターフェースなので、Itemを継承したクラスで実装して使用します。
利用例
MFEと同じ容量を持ち、エナジークリスタルと性能の同じ電池を作成してみます。
public class ItemPortableMFE extends Item implements IElectricItem { public ItemPortableMFE(int id) { super(id); } @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のようなアイテムから充電できるだけ充電します。 |