提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
2行目: | 2行目: | ||
{{チュートリアル難易度|difficulty=0|clear=none}} | {{チュートリアル難易度|difficulty=0|clear=none}} | ||
{{チュートリアルカテゴリー |type=Block| difficulty=0}} | {{チュートリアルカテゴリー |type=Block| difficulty=0}} | ||
− | <p> | + | <p>ワールド上に設置できる簡単なブロックの追加方法</p> |
==ブロックの追加== | ==ブロックの追加== | ||
注意:一度入れたMODを外すと、再び入れてもテクスチャが反映されなくなります。デバッグ時にご注意を。 | 注意:一度入れたMODを外すと、再び入れてもテクスチャが反映されなくなります。デバッグ時にご注意を。 | ||
11行目: | 11行目: | ||
import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||
+ | import net.minecraft.client.Minecraft; | ||
import net.minecraft.client.resources.model.ModelBakery; | import net.minecraft.client.resources.model.ModelBakery; | ||
import net.minecraft.client.resources.model.ModelResourceLocation; | import net.minecraft.client.resources.model.ModelResourceLocation; | ||
import net.minecraft.creativetab.CreativeTabs; | import net.minecraft.creativetab.CreativeTabs; | ||
import net.minecraft.item.Item; | import net.minecraft.item.Item; | ||
− | |||
import net.minecraftforge.fml.common.Mod; | import net.minecraftforge.fml.common.Mod; | ||
import net.minecraftforge.fml.common.Mod.EventHandler; | import net.minecraftforge.fml.common.Mod.EventHandler; | ||
22行目: | 22行目: | ||
import net.minecraftforge.fml.common.registry.GameRegistry; | import net.minecraftforge.fml.common.registry.GameRegistry; | ||
− | @Mod(modid = SampleMod | + | @Mod(modid = "SampleMod", name = "SampleMod", version = "1.0", dependencies = "required-after:Forge@[1.8-11.14.0.1239,)", useMetadata = true) |
− | |||
− | |||
− | |||
− | |||
− | |||
public class SampleMod { | public class SampleMod { | ||
− | + | public static final String MOD_ID = "SampleMod"; | |
− | public static final String MOD_ID | + | |
− | + | @Mod.Instance("SampleMod") | |
− | + | public static SampleMod INSTANCE; | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | public static | ||
− | |||
public static Block sampleBlock; | public static Block sampleBlock; | ||
48行目: | 37行目: | ||
GameRegistry.registerBlock(sampleBlock, SampleItemBlock.class, "sampleblock"); | GameRegistry.registerBlock(sampleBlock, SampleItemBlock.class, "sampleblock"); | ||
+ | |||
+ | } | ||
+ | |||
+ | @EventHandler | ||
+ | public void init(FMLInitializationEvent event) { | ||
//テクスチャ・モデル指定JSONファイル名の登録。 | //テクスチャ・モデル指定JSONファイル名の登録。 | ||
55行目: | 49行目: | ||
ModelBakery.addVariantName(Item.getItemFromBlock(sampleBlock), MOD_ID + ":" + "sampleblock0", MOD_ID + ":" + "sampleblock1"); | ModelBakery.addVariantName(Item.getItemFromBlock(sampleBlock), MOD_ID + ":" + "sampleblock0", MOD_ID + ":" + "sampleblock1"); | ||
//1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。 | //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。 | ||
− | + | Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleblock0", "inventory")); | |
− | + | Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleblock1", "inventory")); | |
− | + | ||
− | |||
− | |||
} | } | ||
} | } | ||
128行目: | 120行目: | ||
} | } | ||
</source> | </source> | ||
− | * | + | *SmpleItemBlock.java |
<source lang = "java"> | <source lang = "java"> | ||
package com.example.examplemod; | package com.example.examplemod; | ||
184行目: | 176行目: | ||
"parent": "block/cube", | "parent": "block/cube", | ||
"textures": { | "textures": { | ||
− | "particle": "blocks/ | + | "particle": "blocks/wool_coroed_orange", |
"down": "blocks/wool_colored_black", | "down": "blocks/wool_colored_black", | ||
"up": "blocks/wool_colored_white", | "up": "blocks/wool_colored_white", | ||
217行目: | 209行目: | ||
//モデルJSONファイルのファイル名を登録。1IDで1つだけなら、登録名はGameRegistryでの登録名と同じものにする。 | //モデルJSONファイルのファイル名を登録。1IDで1つだけなら、登録名はGameRegistryでの登録名と同じものにする。 | ||
//1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。 | //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。 | ||
− | + | Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 0, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock0", "inventory")); | |
− | + | Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(sampleBlock), 1, new ModelResourceLocation(MOD_ID + ":" + "sampleBlock1", "inventory")); | |
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
227行目: | 216行目: | ||
ModelBakery#addVariantNameメソッドは、羊毛ブロックのような、1IDで複数種類のブロックのモデルを登録する際の登録名を予め指定しておくメソッドである。 | ModelBakery#addVariantNameメソッドは、羊毛ブロックのような、1IDで複数種類のブロックのモデルを登録する際の登録名を予め指定しておくメソッドである。 | ||
BlockStateのPropertyを持たないブロックを追加する場合は必要ない。 | BlockStateのPropertyを持たないブロックを追加する場合は必要ない。 | ||
− | + | ItemModelMesher#registerメソッドでテクスチャ・モデルのJSONファイルを登録している。 | |
ここで登録されるのは手持ちやドロップアイテム時の描画についてであり、設置時のモデルに関して登録は不要である。 | ここで登録されるのは手持ちやドロップアイテム時の描画についてであり、設置時のモデルに関して登録は不要である。 | ||
1.7と同様の処理については[[1.7のブロック追加]]を参照のこと。 | 1.7と同様の処理については[[1.7のブロック追加]]を参照のこと。 | ||
275行目: | 264行目: | ||
このファイルは、<br /> | このファイルは、<br /> | ||
assets\<modid>\blockstates<br /> | assets\<modid>\blockstates<br /> | ||
− | + | ディレクトリに配置する。 | |
meta=0:BlockStateの状態指定。"meta=0,bool=false"のように書く。BlockStatesが無い場合は、"normal"とする。 | meta=0:BlockStateの状態指定。"meta=0,bool=false"のように書く。BlockStatesが無い場合は、"normal"とする。 | ||
284行目: | 273行目: | ||
このファイルは、<br /> | このファイルは、<br /> | ||
assets\<modid>\models\block<br /> | assets\<modid>\models\block<br /> | ||
− | + | ディレクトリに配置する。 | |
parent:親のモデルJSONファイルを指定。"block/cube_all"で全面同一テクスチャの立方体モデルを指定。 | parent:親のモデルJSONファイルを指定。"block/cube_all"で全面同一テクスチャの立方体モデルを指定。 | ||
293行目: | 282行目: | ||
このファイルは、<br /> | このファイルは、<br /> | ||
assets\<modid>\models\item<br /> | assets\<modid>\models\item<br /> | ||
− | + | ディレクトリに配置する。 | |
parent:親のモデルJSONファイルを指定。ブロックの場合は、ブロックモデルのJSONファイルを指定。 | parent:親のモデルJSONファイルを指定。ブロックの場合は、ブロックモデルのJSONファイルを指定。 |