提供: Minecraft Modding Wiki
(大体Fixしました。) |
|||
2行目: | 2行目: | ||
・ModLoader<br/> | ・ModLoader<br/> | ||
・MinecraftForge<br/> | ・MinecraftForge<br/> | ||
− | を使っていることを前提に書かれています。<br/> | + | を使っていることを前提に書かれています。<br/> |
− | |||
MLPropを使う場合は、ModLoaderAPIに記載してありますのでそちらを確認ください。 | MLPropを使う場合は、ModLoaderAPIに記載してありますのでそちらを確認ください。 | ||
− | |||
作成するクラス<br/> | 作成するクラス<br/> | ||
17行目: | 15行目: | ||
package net.minecraft.src; | package net.minecraft.src; | ||
+ | import java.io.File; | ||
import java.util.*; | import java.util.*; | ||
import net.minecraft.client.Minecraft; | import net.minecraft.client.Minecraft; | ||
import net.minecraft.src.forge.*; | import net.minecraft.src.forge.*; | ||
− | public class | + | public class mod_hoge extends BaseMod |
{ | { | ||
− | static Configuration configuration | + | static Configuration configuration; |
static Block hogeBlock; | static Block hogeBlock; | ||
static int hogeBlockID; | static int hogeBlockID; | ||
+ | static Item hogeItem; | ||
+ | static int itemHogeShiftedIndex; | ||
− | public | + | public mod_hoge() |
{ | { | ||
} | } | ||
33行目: | 34行目: | ||
public void load() | public void load() | ||
{ | { | ||
− | + | /* | |
− | hogeBlockID = | + | * configurationファイルを設定します。 |
+ | * FileメソッドでMinecraftのconfig/hoge/cfgファイルを参照することを定義しています。 | ||
+ | */ | ||
+ | configuration = new Configuration(new File(Minecraft.getMinecraftDir(), "config/hoge.cfg")); | ||
+ | /* | ||
+ | * BlockIDはconfigurationProperties();でコンフィグファイルから取って来いという宣言です。 | ||
+ | */ | ||
+ | hogeBlockID = configurationProperties(); | ||
+ | hogeBlock = new Block(hogeBlockID, ModLoader.addOverride("/terrain.png", "/block/hogeBlock.png")); | ||
+ | /* | ||
+ | * ItemIDはBlockIDのMAX値256から減算した値がItemIDになるので-256をしています。 | ||
+ | */ | ||
+ | hogeItem = new Item(itemHogeShiftedIndex - 256, "/gui/items.png", "/item/hogeItem.png").setItemName("hogeItem"); | ||
ModLoader.RegisterBlock(hogeBlock); | ModLoader.RegisterBlock(hogeBlock); | ||
ModLoader.AddName(hogeBlock, "Hoge Block"); | ModLoader.AddName(hogeBlock, "Hoge Block"); | ||
+ | ModLoader.AddName(hogeItem, "Hoge Item"); | ||
} | } | ||
42行目: | 56行目: | ||
{ | { | ||
return "1.0.0"; | return "1.0.0"; | ||
+ | } | ||
+ | |||
+ | private int configurationProperties() | ||
+ | { | ||
+ | /* | ||
+ | * configuration.load()でコンフィグファイルをロードします。 | ||
+ | * 2行目でコンフィグファイルで定義されているBlockIDを設定します。 | ||
+ | * getOrCreateBlockIdPropertyで対象ブロックに設定するものを定義します。 | ||
+ | * 数字123は初期定義値です。 | ||
+ | * 3行目のgetOrCreateIntPropertyでは、前の行のgetOrCreateBlockIdPropertyの項目を使用しています。 | ||
+ | * 数字の5000はhogeItemの初期ItemID(実際のデータは+256)です。 | ||
+ | * configuration.save();でコンフィングファイルをセーブします。(よく忘れます。必ずセーブしましょう) | ||
+ | * 最後に最初のBlockIDを返す必要があります。 | ||
+ | */ | ||
+ | configuration.load(); | ||
+ | hogeBlockID = Integer.parseInt(configuration.getOrCreateBlockIdProperty("Hoge Block", 123).value); | ||
+ | itemHogeShiftedIndex = Integer.parseInt(configuration.getOrCreateIntProperty("Hoge Item", Configuration.ITEM_PROPERTY, 5000).value); | ||
+ | configuration.save(); | ||
+ | return hogeBlockID; | ||
} | } | ||
} | } | ||
</source> | </source> | ||
− | + | ||
+ | ざっとソースに説明文を書きましたが、MLPropかForgeでのConfigファイル生成かは<br/> | ||
+ | タイプが分かれると思います。<br/> | ||
+ | 今回はBlockID、ItemIDを設定させていますが、<br/> | ||
+ | EntityIDや対象Blockの生成有無の判定にも使えますので、好きな方をお使いください。 | ||
+ | |||
+ | <comments /> |
2012年3月20日 (火) 21:46時点における版
このページは
・ModLoader
・MinecraftForge
を使っていることを前提に書かれています。
MLPropを使う場合は、ModLoaderAPIに記載してありますのでそちらを確認ください。
作成するクラス
mod_hoge
ソース解説
mod_hogeクラス作成
package net.minecraft.src; import java.io.File; import java.util.*; import net.minecraft.client.Minecraft; import net.minecraft.src.forge.*; public class mod_hoge extends BaseMod { static Configuration configuration; static Block hogeBlock; static int hogeBlockID; static Item hogeItem; static int itemHogeShiftedIndex; public mod_hoge() { } public void load() { /* * configurationファイルを設定します。 * FileメソッドでMinecraftのconfig/hoge/cfgファイルを参照することを定義しています。 */ configuration = new Configuration(new File(Minecraft.getMinecraftDir(), "config/hoge.cfg")); /* * BlockIDはconfigurationProperties();でコンフィグファイルから取って来いという宣言です。 */ hogeBlockID = configurationProperties(); hogeBlock = new Block(hogeBlockID, ModLoader.addOverride("/terrain.png", "/block/hogeBlock.png")); /* * ItemIDはBlockIDのMAX値256から減算した値がItemIDになるので-256をしています。 */ hogeItem = new Item(itemHogeShiftedIndex - 256, "/gui/items.png", "/item/hogeItem.png").setItemName("hogeItem"); ModLoader.RegisterBlock(hogeBlock); ModLoader.AddName(hogeBlock, "Hoge Block"); ModLoader.AddName(hogeItem, "Hoge Item"); } public String getVersion() { return "1.0.0"; } private int configurationProperties() { /* * configuration.load()でコンフィグファイルをロードします。 * 2行目でコンフィグファイルで定義されているBlockIDを設定します。 * getOrCreateBlockIdPropertyで対象ブロックに設定するものを定義します。 * 数字123は初期定義値です。 * 3行目のgetOrCreateIntPropertyでは、前の行のgetOrCreateBlockIdPropertyの項目を使用しています。 * 数字の5000はhogeItemの初期ItemID(実際のデータは+256)です。 * configuration.save();でコンフィングファイルをセーブします。(よく忘れます。必ずセーブしましょう) * 最後に最初のBlockIDを返す必要があります。 */ configuration.load(); hogeBlockID = Integer.parseInt(configuration.getOrCreateBlockIdProperty("Hoge Block", 123).value); itemHogeShiftedIndex = Integer.parseInt(configuration.getOrCreateIntProperty("Hoge Item", Configuration.ITEM_PROPERTY, 5000).value); configuration.save(); return hogeBlockID; } }
ざっとソースに説明文を書きましたが、MLPropかForgeでのConfigファイル生成かは
タイプが分かれると思います。
今回はBlockID、ItemIDを設定させていますが、
EntityIDや対象Blockの生成有無の判定にも使えますので、好きな方をお使いください。
コメントの自動更新を有効化