提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
8行目: | 8行目: | ||
*IPeripheralProviderの実装 | *IPeripheralProviderの実装 | ||
*PeripheralProviderの登録 | *PeripheralProviderの登録 | ||
− | |||
このサンプルでは周辺機器ブロックのレシピを登録していないので、適当なレシピを追加するか、クリエイティブ・インベントリから取り出してください。 | このサンプルでは周辺機器ブロックのレシピを登録していないので、適当なレシピを追加するか、クリエイティブ・インベントリから取り出してください。 | ||
=== ソースコード === | === ソースコード === | ||
+ | Packageは適宜設定してください。 | ||
+ | |||
==== SamplePeripheralCore.java ==== | ==== SamplePeripheralCore.java ==== | ||
<source lang = "java"> | <source lang = "java"> | ||
− | package mods.sample.peripheral; | + | // package mods.sample.peripheral; |
import net.minecraft.block.Block; | import net.minecraft.block.Block; | ||
30行目: | 31行目: | ||
− | @Mod( modid = SamplePeripheralCore.MOD_ID, | + | @Mod(modid=SamplePeripheralCore.MOD_ID, |
− | + | name=SamplePeripheralCore.MOD_NAME, | |
− | + | version=SamplePeripheralCore.MOD_VERSION, | |
− | + | dependencies = SamplePeripheralCore.MOD_DEPENDENCIES) | |
− | |||
public class SamplePeripheralCore { | public class SamplePeripheralCore { | ||
41行目: | 41行目: | ||
public static final String MOD_VERSION = "1.0"; | public static final String MOD_VERSION = "1.0"; | ||
public static final String MOD_DEPENDENCIES = "after:ComputerCraft"; | public static final String MOD_DEPENDENCIES = "after:ComputerCraft"; | ||
− | |||
public static Block blockSamplePeripheral; | public static Block blockSamplePeripheral; | ||
48行目: | 47行目: | ||
public void preInit(FMLPreInitializationEvent event) { | public void preInit(FMLPreInitializationEvent event) { | ||
blockSamplePeripheral = new BlockSamplePeripheral(); | blockSamplePeripheral = new BlockSamplePeripheral(); | ||
− | GameRegistry.registerBlock(blockSamplePeripheral, " | + | GameRegistry.registerBlock(blockSamplePeripheral, "blockSamplePeripheral"); |
if (event.getSide().isClient()) { | if (event.getSide().isClient()) { | ||
ModelLoader.setCustomModelResourceLocation( | ModelLoader.setCustomModelResourceLocation( | ||
Item.getItemFromBlock(blockSamplePeripheral), 0, | Item.getItemFromBlock(blockSamplePeripheral), 0, | ||
− | new ModelResourceLocation(MOD_ID + ":" + " | + | new ModelResourceLocation(MOD_ID + ":" |
+ | + "blockSamplePeripheral", "inventory")); | ||
} | } | ||
} | } | ||
59行目: | 59行目: | ||
@EventHandler | @EventHandler | ||
public void init(FMLInitializationEvent event) { | public void init(FMLInitializationEvent event) { | ||
− | GameRegistry.registerTileEntity(TileSamplePeripheral.class, " | + | GameRegistry.registerTileEntity(TileSamplePeripheral.class, "tileSamplePeripheral"); |
ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider()); | ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider()); | ||
} | } | ||
68行目: | 68行目: | ||
==== BlockSamplePeripheral.java ==== | ==== BlockSamplePeripheral.java ==== | ||
<source lang = "java"> | <source lang = "java"> | ||
− | package mods.sample.peripheral; | + | // package mods.sample.peripheral; |
import net.minecraft.block.BlockContainer; | import net.minecraft.block.BlockContainer; | ||
81行目: | 81行目: | ||
super(Material.ground); | super(Material.ground); | ||
− | setUnlocalizedName(" | + | setUnlocalizedName("blockSamplePeripheral"); |
setCreativeTab(CreativeTabs.tabBlock); | setCreativeTab(CreativeTabs.tabBlock); | ||
} | } | ||
100行目: | 100行目: | ||
==== TileSamplePeripheral.java ==== | ==== TileSamplePeripheral.java ==== | ||
<source lang = "java"> | <source lang = "java"> | ||
− | package mods.sample.peripheral; | + | // package mods.sample.peripheral; |
import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||
155行目: | 155行目: | ||
==== PeripheralProvider.java ==== | ==== PeripheralProvider.java ==== | ||
<source lang = "java"> | <source lang = "java"> | ||
− | package mods.sample.peripheral; | + | // package mods.sample.peripheral; |
import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||
180行目: | 180行目: | ||
</source> | </source> | ||
− | ==== | + | ==== blocksampleperipheral.json (blockstates) ==== |
assets\sampleperipheralmod\blockstates ディレクトリに設置します。 | assets\sampleperipheralmod\blockstates ディレクトリに設置します。 | ||
<source lang = "javascript"> | <source lang = "javascript"> | ||
{ | { | ||
"variants": { | "variants": { | ||
− | "normal": { "model": "sampleperipheralmod: | + | "normal": { "model": "sampleperipheralmod:blocksampleperipheral" } |
} | } | ||
} | } | ||
</source> | </source> | ||
− | ==== | + | ==== blocksampleperipheral.json (models/block) ==== |
assets\sampleperipheralmod\models\block ディレクトリに設置します。 | assets\sampleperipheralmod\models\block ディレクトリに設置します。 | ||
<source lang = "javascript"> | <source lang = "javascript"> | ||
201行目: | 201行目: | ||
</source> | </source> | ||
− | ==== | + | ==== blocksampleperipheral.json (models/item) ==== |
assets\sampleperipheralmod\models\item ディレクトリに設置します。 | assets\sampleperipheralmod\models\item ディレクトリに設置します。 | ||
<source lang = "javascript"> | <source lang = "javascript"> | ||
{ | { | ||
− | "parent": "sampleperipheralmod:block/ | + | "parent": "sampleperipheralmod:block/blocksampleperipheral", |
"display": { | "display": { | ||
"thirdperson": { | "thirdperson": { | ||
223行目: | 223行目: | ||
<source lang = "java"> | <source lang = "java"> | ||
@Mod( | @Mod( | ||
− | dependencies = SamplePeripheralCore.MOD_DEPENDENCIES | + | dependencies = SamplePeripheralCore.MOD_DEPENDENCIES) |
− | |||
public class SamplePeripheralCore { | public class SamplePeripheralCore { | ||
230行目: | 229行目: | ||
</source> | </source> | ||
このmodがComputerCraftの後に読み込まれるように設定しています。 | このmodがComputerCraftの後に読み込まれるように設定しています。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*周辺機器のブロックとTileEntityの登録 | *周辺機器のブロックとTileEntityの登録 | ||
<source lang = "java"> | <source lang = "java"> | ||
blockSamplePeripheral = new BlockSamplePeripheral(); | blockSamplePeripheral = new BlockSamplePeripheral(); | ||
− | GameRegistry.registerBlock(blockSamplePeripheral, " | + | GameRegistry.registerBlock(blockSamplePeripheral, "blockSamplePeripheral"); |
− | |||
− | |||
− | |||
</source> | </source> | ||
− | |||
− | |||
<source lang = "java"> | <source lang = "java"> | ||
− | + | GameRegistry.registerTileEntity(TileSamplePeripheral.class, "tileSamplePeripheral"); | |
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
− | |||
*PeripheralProviderの登録 | *PeripheralProviderの登録 | ||
267行目: | 243行目: | ||
ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider()); | ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider()); | ||
</source> | </source> | ||
− | 接続したComputerへ周辺機器のIPeripheral実装クラスを提供するためのIPeripheralProviderの実装クラス(後述)をComputerCraftに登録します。 | + | 接続したComputerへ周辺機器のIPeripheral実装クラスを提供するためのIPeripheralProviderの実装クラス(後述)をComputerCraftに登録します。 |
これは、自作周辺機器をComputerから使えるようにするために'''必須'''です。 | これは、自作周辺機器をComputerから使えるようにするために'''必須'''です。 | ||
297行目: | 273行目: | ||
==== TileSamplePeripheral.java ==== | ==== TileSamplePeripheral.java ==== | ||
− | + | 周辺機器のTileEntity | |
− | |||
− | |||
*IPeripheralの実装 | *IPeripheralの実装 | ||
316行目: | 290行目: | ||
} | } | ||
</source> | </source> | ||
− | + | 周辺機器の種類を表す文字列を返します。ゲーム内のLuaプログラムではこの文字列によって周辺機器を検索したり種類を判別したりします。 | |
− | |||
*getMethodNames() | *getMethodNames() | ||
326行目: | 299行目: | ||
} | } | ||
</source> | </source> | ||
− | + | Computerから呼び出し可能な周辺機器のメソッド名を表す文字列の配列を返します。ゲーム内のLuaプログラムではperipheral.getMethods()の戻り値になります。< | |
− | |||
今回は周辺機器のメソッドを実装しないので空の配列を返しています。 | 今回は周辺機器のメソッドを実装しないので空の配列を返しています。 | ||
405行目: | 377行目: | ||
今回は周辺機器のTileEntityでIPeripheralを実装したため、座標から周辺機器のTileEntityを取得し、IPeripheralのインスタンスとして返しています。 | 今回は周辺機器のTileEntityでIPeripheralを実装したため、座標から周辺機器のTileEntityを取得し、IPeripheralのインスタンスとして返しています。 | ||
− | ==== | + | ==== blocksampleperipheral.json (blockstates) ==== |
BlockState別のモデルJSONファイルの指定を行います。<br> | BlockState別のモデルJSONファイルの指定を行います。<br> | ||
assets\<MOD_ID>\blockstates ディレクトリに配置します。 | assets\<MOD_ID>\blockstates ディレクトリに配置します。 | ||
− | 今回の周辺機器ブロックはBlockStateが無いので、" | + | 今回の周辺機器ブロックはBlockStateが無いので、"noemal"で単一のモデルJSONファイルを指定しています。<br> |
− | ==== | + | ==== blocksampleperipheral.json (models/block) ==== |
ブロックのモデルを指定するJSONファイルです。<br> | ブロックのモデルを指定するJSONファイルです。<br> | ||
assets\<MOD_ID>\models\block ディレクトリに設置します。 | assets\<MOD_ID>\models\block ディレクトリに設置します。 | ||
418行目: | 390行目: | ||
また、テクスチャにはバニラの石半ブロックの上面の画像を指定しています。 | また、テクスチャにはバニラの石半ブロックの上面の画像を指定しています。 | ||
− | ==== | + | ==== blocksampleperipheral.json (models/item) ==== |
ブロックのアイテムモデルを指定するJSONファイルです。<br> | ブロックのアイテムモデルを指定するJSONファイルです。<br> | ||
assets\<MOD_ID>\models\item ディレクトリに設置します。 | assets\<MOD_ID>\models\item ディレクトリに設置します。 |