提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
{{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | {{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | ||
− | + | ||
− | |||
==概要== | ==概要== | ||
<p>流体追加のチュートリアルです。<br /> | <p>流体追加のチュートリアルです。<br /> | ||
1.6.x用Forgeから、アイテム・ブロックなどの実体を持たない流体情報のみを追加することができるようになりました。<br /> | 1.6.x用Forgeから、アイテム・ブロックなどの実体を持たない流体情報のみを追加することができるようになりました。<br /> | ||
− | + | 合わせて容器入り流体の簡易チュートリアルも併記しています。<br /> | |
− | |||
− | |||
このチュートリアルで追加した流体は流体APIをサポートする他のMODで扱うことが出来る可能性があります。</p> | このチュートリアルで追加した流体は流体APIをサポートする他のMODで扱うことが出来る可能性があります。</p> | ||
13行目: | 10行目: | ||
*SampleFluid.java | *SampleFluid.java | ||
<source lang = "java"> | <source lang = "java"> | ||
− | package samplefluid; | + | package mods.samplefluid; |
− | |||
− | |||
− | |||
import net.minecraft.item.Item; | import net.minecraft.item.Item; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
import net.minecraftforge.fluids.Fluid; | import net.minecraftforge.fluids.Fluid; | ||
− | |||
import net.minecraftforge.fluids.FluidRegistry; | import net.minecraftforge.fluids.FluidRegistry; | ||
import cpw.mods.fml.common.Mod; | import cpw.mods.fml.common.Mod; | ||
− | |||
import cpw.mods.fml.common.Mod.Instance; | import cpw.mods.fml.common.Mod.Instance; | ||
import cpw.mods.fml.common.event.FMLInitializationEvent; | import cpw.mods.fml.common.event.FMLInitializationEvent; | ||
− | |||
import cpw.mods.fml.common.registry.GameRegistry; | import cpw.mods.fml.common.registry.GameRegistry; | ||
import cpw.mods.fml.common.registry.LanguageRegistry; | import cpw.mods.fml.common.registry.LanguageRegistry; | ||
40行目: | 23行目: | ||
@Mod(modid="samplefluid.SampleFluid", name="SampleFluid", version="1.0") | @Mod(modid="samplefluid.SampleFluid", name="SampleFluid", version="1.0") | ||
public class SampleFluid { | public class SampleFluid { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
//容器入り流体のアイテムID | //容器入り流体のアイテムID | ||
57行目: | 35行目: | ||
//他mod等との競合を避けるための識別用の名前です。 ※英数字小文字 及び "." 等が使えます。大文字や"/"は使えません。 | //他mod等との競合を避けるための識別用の名前です。 ※英数字小文字 及び "." 等が使えます。大文字や"/"は使えません。 | ||
public static final String DOMAIN_NAME = "samplefluid"; | public static final String DOMAIN_NAME = "samplefluid"; | ||
− | + | ||
@EventHandler | @EventHandler | ||
public void preInit(FMLPreInitializationEvent evt) { | public void preInit(FMLPreInitializationEvent evt) { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
//TextureStitchEvent.Preイベントのためにイベントバスに登録します。 | //TextureStitchEvent.Preイベントのためにイベントバスに登録します。 | ||
MinecraftForge.EVENT_BUS.register(this); | MinecraftForge.EVENT_BUS.register(this); | ||
} | } | ||
− | + | ||
@EventHandler | @EventHandler | ||
public void load(FMLInitializationEvent event) { | public void load(FMLInitializationEvent event) { | ||
+ | //Fluidクラスのインスタンスを生成 | ||
+ | sampleFluid = new Fluid("LiquidSample"); | ||
+ | FluidRegistry.registerFluid(sampleFluid); | ||
+ | |||
//容器入り流体の登録です。 | //容器入り流体の登録です。 | ||
//通常のアイテム作成と同様なので省略します。 | //通常のアイテム作成と同様なので省略します。 | ||
//バケツのような動作には別途実装が必要です。 | //バケツのような動作には別途実装が必要です。 | ||
itemSampleFluid = new Item(sampleFluidID) | itemSampleFluid = new Item(sampleFluidID) | ||
− | .setUnlocalizedName(DOMAIN_NAME + ". | + | .setUnlocalizedName(DOMAIN_NAME + ".liquidSample") //内部アイテム名の登録 |
//テクスチャ名の登録 func_111206_dはForgeバージョンによって名称が変わることがあります。 | //テクスチャ名の登録 func_111206_dはForgeバージョンによって名称が変わることがあります。 | ||
//assets/samplefluid/textures/item/bottoledLiquidSample.png が必要です。 | //assets/samplefluid/textures/item/bottoledLiquidSample.png が必要です。 | ||
.func_111206_d(DOMAIN_NAME + ":bottled" + sampleFluid.getName()); | .func_111206_d(DOMAIN_NAME + ":bottled" + sampleFluid.getName()); | ||
− | + | ||
ItemStack filledContainer = new ItemStack(itemSampleFluid); | ItemStack filledContainer = new ItemStack(itemSampleFluid); | ||
FluidContainerRegistry.registerFluidContainer(sampleFluid, filledContainer); | FluidContainerRegistry.registerFluidContainer(sampleFluid, filledContainer); | ||
− | // | + | //ローカライズ表示名の登録 |
− | LanguageRegistry.addName(itemSampleFluid, " | + | LanguageRegistry.addName(itemSampleFluid, "bottledSampleLiquid"); |
− | LanguageRegistry. | + | LanguageRegistry.addName(itemSampleFluid, "ja-JP", "ボトル要りサンプル流体"); |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | ||
− | + | ||
/** | /** | ||
* IconはResourceパックを変更する際、新しいインスタンスが生成されるため | * IconはResourceパックを変更する際、新しいインスタンスが生成されるため | ||
194行目: | 77行目: | ||
//必ず 0:"/terain.png"(※ブロックと共有) のTextureMapに画像を登録する必要があります。 | //必ず 0:"/terain.png"(※ブロックと共有) のTextureMapに画像を登録する必要があります。 | ||
if(event.map.textureType == 0){ | if(event.map.textureType == 0){ | ||
− | + | ||
//初期化時に保存しておいた流体クラスを利用する | //初期化時に保存しておいた流体クラスを利用する | ||
//または流体名を指定してFluidRegistoryからFluidインスタンスを取得します。 | //または流体名を指定してFluidRegistoryからFluidインスタンスを取得します。 | ||
200行目: | 83行目: | ||
Fluid f = sampleFluid; | Fluid f = sampleFluid; | ||
//Fluid f = FluidRegistry.getFluid("LiquidSample"); | //Fluid f = FluidRegistry.getFluid("LiquidSample"); | ||
− | + | ||
if(f != null){ | if(f != null){ | ||
if(f.getBlockID() != -1){ | if(f.getBlockID() != -1){ | ||
//流体ブロックを実装している場合は、ブロックからの流用が可能です。 | //流体ブロックを実装している場合は、ブロックからの流用が可能です。 | ||
+ | //尚本チュートリアルは流体のみ(ついでに容器)の登録なため使用されません。例として参照ください。 | ||
//getIcon(int side,int meta) getBlockTextureFromSide(int side)等。 | //getIcon(int side,int meta) getBlockTextureFromSide(int side)等。 | ||