提供: defeatedcrow mod wiki
移動先: 案内検索
(ページの作成:「=無機能なIGNISアイテムを作る= 早速新規Item制作に取りかかります。<br /> この先のやり方は、各Modderによって千差万別だと思い...」)
(相違点なし)

2016年2月20日 (土) 17:21時点における版

無機能なIGNISアイテムを作る

早速新規Item制作に取りかかります。
この先のやり方は、各Modderによって千差万別だと思います。私の場合は、アイテムを作るならまず無機能なアイテムとして作り、レンダー周りを作成していきます。要するに、見た目から作る方向です。
機能を一つずつ追加していった方がデバッグプレイ時に確認しやすいためでもありますし、早い段階で面白おかしい物がゲーム中に出現した方がモチベーションが維持しやすいのでこうしています。自分が作った物をゲーム中で見られるようになるのは、やはり何度やっても面白いものです。

無機能アイテムの追加

アイテムを追加するための最低限のパーツは、

  1. Item.class継承クラス
  2. アイコン画像
  3. langファイル

この3つです。
ただし今回は、アイテムの見た目はTechneで作るモデルを適用するつもりでいますので、アイコンは仮の物を適当にあてがいます。

  • ItemIgnis.class

今回、IGNISはバニラの弓のクラスであるItemBow.classを継承させます。 ItemBow.classのメソッドには依存しない造りにするつもりなので、本来であれば不要なのですが、アイテムに弓用のエンチャントが付けられるかの可否がItemBow.classを継承しているかで判定されているというバニラの処理の都合により、こうしています。

package defeatedcrow.flamethrower.item;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemBow;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class ItemIgnis extends ItemBow {

	public ItemIgnisClone() {
		// スタックサイズ上限。スタック出来ないようにするので1にする。
		this.setMaxStackSize(1);
		// この武器はメタデータ(耐久値)を持たない。
		this.setMaxDamage(0);
		// クラフトでの修理を不可に。
		this.setNoRepair();
	}

	// Icon用テクスチャファイルの指定はここで行う。
	// ItemBowクラスでも、このメソッドでテクスチャパスを指定しているため、
	// オーバーライドして上書きしなければならない。(コンストラクタでのテクスチャパス指定は推奨しない。)
	@Override
	@SideOnly(Side.CLIENT)
	public void registerIcons(IIconRegister par1IconRegister) {
		this.itemIcon = par1IconRegister.registerIcon("dcsflame:flamethrower");
	}
}