概要
ソースコード
//package・import省略
@Mod(modid = "aluminiummod", version = "1.0", name = "AluminiumMod")
public class AluminiumMod {
public static final Item ALUMINIUM = new ItemAluminium();
public static final Block ALUMINIUM_BLOCK = new BlockAluminium();
public static final Item COLOR_ALUMINIUM = new ItemColorAluminium();
public static final Block COLOR_ALUMINIUM_BLOCK = new BlockColorAluminium();
public static final AluminiumRecipeHolder HOLDER = new AluminiumRecipeHolder();
@Mod.Instance("aluminiummod")
public static AluminiumMod aluminiumInstance;
@Mod.EventHandler
public void construct(FMLConstructionEvent event) {
MinecraftForge.EVENT_BUS.register(this);
}
@SubscribeEvent
public void registerItems(RegistryEvent.Register<Item> event) {
event.getRegistry().register(ALUMINIUM);
event.getRegistry().register(COLOR_ALUMINIUM);
event.getRegistry().register(new ItemBlock(ALUMINIUM_BLOCK).setRegistryName("aluminiummod", "aluminium_block"));
//ItemClothを使って染料の色で16色に定義されているブロックのアイテムを登録する。
event.getRegistry().register(new ItemCloth(COLOR_ALUMINIUM_BLOCK).setRegistryName("aluminiummod", "color_aluminium_block"));
}
@SubscribeEvent
public void registerBlocks(RegistryEvent.Register<Block> event) {
event.getRegistry().register(ALUMINIUM_BLOCK);
//ブロックは普通に。
event.getRegistry().register(COLOR_ALUMINIUM_BLOCK);
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void registerModels(ModelRegistryEvent event) {
ModelLoader.setCustomModelResourceLocation(ALUMINIUM, 0, new ModelResourceLocation(new ResourceLocation("aluminiummod", "aluminium"), "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ALUMINIUM_BLOCK), 0, new ModelResourceLocation(new ResourceLocation("aluminiummod", "aluminium_block"), "inventory"));
//メタデータの分だけモデルを登録する。
for (int i = 0; i < 16; i++) {
ModelLoader.setCustomModelResourceLocation(COLOR_ALUMINIUM, i, new ModelResourceLocation(new ResourceLocation("aluminiummod", "color_aluminium_" + i), "inventory"));
//アイテムのモデルはメタデータを持つアイテムと同様に。
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(COLOR_ALUMINIUM_BLOCK), i, new ModelResourceLocation(new ResourceLocation("aluminiummod", "color_aluminium_block_" + i), "inventory"));
}
}
/** 以下省略。 */
package com.tntmodders.tutorial;
import net.minecraft.block.BlockColored;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
public class BlockColorAluminium extends BlockColored {
public BlockColorAluminium() {
super(Material.IRON);
this.setRegistryName("aluminiummod", "color_aluminium_block");
this.setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
this.setUnlocalizedName("color_aluminium_block");
}
}
- color_aluminium_block.json
src/main/resources/assets/aluminiummod/blockstates/に配置する
{
"variants": {
"color=white": {
"model": "aluminiummod:color_aluminium_block_0"
},
"color=orange": {
"model": "aluminiummod:color_aluminium_block_1"
},
"color=magenta": {
"model": "aluminiummod:color_aluminium_block_2"
},
"color=light_blue": {
"model": "aluminiummod:color_aluminium_block_3"
},
"color=yellow": {
"model": "aluminiummod:color_aluminium_block_4"
},
"color=lime": {
"model": "aluminiummod:color_aluminium_block_5"
},
"color=pink": {
"model": "aluminiummod:color_aluminium_block_6"
},
"color=gray": {
"model": "aluminiummod:color_aluminium_block_7"
},
"color=silver": {
"model": "aluminiummod:color_aluminium_block_8"
},
"color=cyan": {
"model": "aluminiummod:color_aluminium_block_9"
},
"color=purple": {
"model": "aluminiummod:color_aluminium_block_10"
},
"color=blue": {
"model": "aluminiummod:color_aluminium_block_11"
},
"color=brown": {
"model": "aluminiummod:color_aluminium_block_12"
},
"color=green": {
"model": "aluminiummod:color_aluminium_block_13"
},
"color=red": {
"model": "aluminiummod:color_aluminium_block_14"
},
"color=black": {
"model": "aluminiummod:color_aluminium_block_15"
}
}
}
src/main/resources/assets/aluminiummod/lang/に配置する
#AluminiumMod English Language File
tile.color_aluminium_block.0.name=white colored aluminium block
tile.color_aluminium_block.1.name=orange colored aluminium block
tile.color_aluminium_block.2.name=magenta colored aluminium block
tile.color_aluminium_block.3.name=light blue colored aluminium block
tile.color_aluminium_block.4.name=yellow colored aluminium block
tile.color_aluminium_block.5.name=lime colored aluminium block
tile.color_aluminium_block.6.name=pink colored aluminium block
tile.color_aluminium_block.7.name=gray colored aluminium block
tile.color_aluminium_block.8.name=sliver colored aluminium block
tile.color_aluminium_block.9.name=cyan colored aluminium block
tile.color_aluminium_block.10.name=purple colored aluminium block
tile.color_aluminium_block.11.name=blue colored aluminium block
tile.color_aluminium_block.12.name=brown colored aluminium block
tile.color_aluminium_block.13.name=green colored aluminium block
tile.color_aluminium_block.14.name=red colored aluminium block
tile.color_aluminium_block.15.name=black colored aluminium block
src/main/resources/assets/aluminiummod/lang/に配置する
#アルミニウムMOD 日本語言語ファイル
tile.color_aluminium.block.0.name=白色アルミニウムブロック
tile.color_aluminium.block.1.name=橙色アルミニウムブロック
tile.color_aluminium.block.2.name=紅紫色アルミニウムブロック
tile.color_aluminium.block.3.name=空色アルミニウムブロック
tile.color_aluminium.block.4.name=黃色アルミニウムブロック
tile.color_aluminium.block.5.name=黄緑色アルミニウムブロック
tile.color_aluminium.block.6.name=桃色アルミニウムブロック
tile.color_aluminium.block.7.name=灰色アルミニウムブロック
tile.color_aluminium.block.8.name=銀色アルミニウムブロック
tile.color_aluminium.block.9.name=青緑色アルミニウムブロック
tile.color_aluminium.block.10.name=紫色アルミニウムブロック
tile.color_aluminium.block.11.name=青色アルミニウムブロック
tile.color_aluminium.block.12.name=茶色アルミニウムブロック
tile.color_aluminium.block.13.name=緑色アルミニウムブロック
tile.color_aluminium.block.14.name=赤色アルミニウムブロック
tile.color_aluminium.block.15.name=黒色アルミニウムブロック
解説
AluminiumMod.java
ここはだいたいブロック追加と一緒。モデルの登録だけメタデータ分やろう。
ItemCloth.class
色付き羊毛等を登録する際のItemBlock継承アイテム。これを使うことでメタデータを持つブロックを楽に追加できる。
color_aluminium_block_<メタデータ>.json
各メタデータごとにテクスチャを指定するモデルを作る。ブロックの追加参照。
-color_aluminium_block.json[blockstate]
BlockStateごとにモデルを割り当てる。
今回は登録しているBlockStateがColorという名称で、その要素の名称ごとに割り振れる。
コメント
この項目に関する質問などをどうぞ。
最終更新:2017年10月09日 20:02