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

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
 +
 +
 
このページは投稿・編集の練習用です。<br />
 
このページは投稿・編集の練習用です。<br />
 
自由に変更して頂いて構いませんが、不定期に内容は削除されますのでメモ代わりには使用しないで下さい。<br />
 
自由に変更して頂いて構いませんが、不定期に内容は削除されますのでメモ代わりには使用しないで下さい。<br />
  
 
----
 
----
編集楽しいー
+
{{前提MOD|reqmod="Minecraft ForgeX.X"}}
//
+
 
 +
==流体辞書の利用==
 +
<p>
 +
流体辞書(LiquidDictionary)は異なるmod間での流体共有のための機能である.
 +
流体辞書は4つのクラスLiquidDictionary LiquidStack LiquidContainerRegistryから成り, それぞれ'''辞書''', '''流体データ''', '''容器登録'''を提供する.
 +
なお流体ブロック及びアイテムの具体的なサンプルコードはここでは説明しない.
 +
</p>
 +
 
 +
==基本的な使い方==
 +
*流体辞書への登録
 +
<p>
 +
流体辞書への登録はLiquidDictionaryクラスのgetOrCreateLiquidメソッドを利用する.
 +
</p>
 +
<source lang = "java">
 +
LiquidDictionary.getOrCreateLiquid("流体名",new LiquidStack(流体アイテムorブロック, 1000));
 +
</source>
 +
<p>
 +
 すなわち, 流体辞書は'''文字列'''で共有される. 他のmodの流体への参照がなくとも, 文字列を指定しておけば読み込まれたときに自動で関連付けされる.
 +
</p>
 +
<source lang = "java">
 +
LiquidDictionary.getOrCreateLiquid("流体名",new LiquidStack(流体アイテムorブロック, 1000, メタデータ));
 +
</source>
 +
<p>
 +
 このようにメタデータを利用することで消費IDの抑止にもつながる. 参照の際は文字列だけわかればよいというのも大きなメリットである.
 +
</p>
 +
 
 +
==流体辞書を利用した容器の登録==
 +
<p>
 +
流体辞書を利用した容器を追加する場合, 先述した'''LiquidContainerRegistry'''を利用する.
 +
 
 +
また、一部Modでは容器へ流体を注入する機能をもつものが容器登録を参照してレシピ登録しているものがある。
 +
ThermalExpansionの例では@PostInitで処理されるため、@Init処理までに登録する必要がある。
 +
</p>
 +
<source lang = "java">
 +
LiquidContainerRegistry.registerLiquid(
 +
new LiquidContainerData(
 +
        LiquidDictionary.getLiquid(
 +
"流体名"
 +
, LiquidContainerRegistry.BUCKET_VOLUME ※容量:バケツ1杯=1000)
 +
, new ItemStack(満たされた容器アイテム)
 +
, new ItemStack(空の容器アイテム)));
 +
</source>
 +
<p>
 +
 辞書へ登録された流体のテクスチャ情報は、アイテムやブロックの実装だけでは不十分で、別途辞書への登録データへ
 +
Icon及び、テクスチャパスを登録する必要がある
 +
</p>
 +
 
 +
<source lang = "java">
 +
@PreInit
 +
public void preInit(FMLPreInitializationEvent evt) {
 +
        //TextureHook.Postイベントを登録するひつようがある。
 +
MinecraftForge.EVENT_BUS.register(this);
 +
}
 +
 +
@ForgeSubscribe
 +
@SideOnly(Side.CLIENT)
 +
public void textureHook(TextureStitchEvent.Post event) {
 +
 
 +
String targetTexture =
 +
event.map == Minecraft.getMinecraft().renderEngine.textureMapItems
 +
? "/gui/items.png"
 +
: "/terrain.png";
 +
 
 +
LiquidStack ls = LiquidDictionary.getCanonicalLiquid("流体名");
 +
if(ls != null){
 +
ls.setRenderingIcon(ls.asItemStack().getIconIndex());
 +
ls.setTextureSheet(targetTexture );
 +
}
 +
}
 +
</source>
 +
 
 +
==流体辞書に登録する際のルール==
 +
<p>
 +
現在流体辞書を利用しているのは、液体を扱えるModで、たとえばBulidCraft,FLiquidstry for Minecraft,ThermalExpansion,RailCraft等がある。
 +
命名則はForgeがバニラ流体を水:Water、溶岩:Lavaと登録しているのに倣ってか、そのまの名前で登録されているものが多い。
 +
一部Mod(主にgregTechAddon)では fluid,gas,plasma を流体辞書と同様にprefixとして使用して登録している。
 +
</p>
 +
BuildCraft
 +
*Oil
 +
*Fuel
 +
 
 +
Railcraft
 +
*Creosote Oil
 +
*Steam
 +
 
 +
ThermalExpansion(※先頭が小文字
 +
*redstone
 +
*glowstone
 +
*ender
 +
 
 +
etc..

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)