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

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

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
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,
+
name=SamplePeripheralCore.MOD_NAME,
version = SamplePeripheralCore.MOD_VERSION,
+
version=SamplePeripheralCore.MOD_VERSION,
dependencies = SamplePeripheralCore.MOD_DEPENDENCIES,
+
dependencies = SamplePeripheralCore.MOD_DEPENDENCIES)
acceptedMinecraftVersions = SamplePeripheralCore.MOD_ACCEPTED_MC_VERSIONS)
 
 
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 final String MOD_ACCEPTED_MC_VERSIONS = "[1.8,1.8.9]";
 
  
 
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, "sample_peripheral");
+
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 + ":" + "sample_peripheral", "inventory"));
+
new ModelResourceLocation(MOD_ID + ":"
 +
+ "blockSamplePeripheral", "inventory"));
 
}
 
}
 
}
 
}
59行目: 59行目:
 
@EventHandler
 
@EventHandler
 
public void init(FMLInitializationEvent event) {
 
public void init(FMLInitializationEvent event) {
GameRegistry.registerTileEntity(TileSamplePeripheral.class, "tile_sample_peripheral");
+
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("sample_peripheral");
+
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>
  
==== sample_peripheral.json (blockstates) ====
+
==== blocksampleperipheral.json (blockstates) ====
 
assets\sampleperipheralmod\blockstates ディレクトリに設置します。
 
assets\sampleperipheralmod\blockstates ディレクトリに設置します。
 
<source lang = "javascript">
 
<source lang = "javascript">
 
{
 
{
 
"variants": {
 
"variants": {
"normal": { "model": "sampleperipheralmod:sample_peripheral" }
+
"normal": { "model": "sampleperipheralmod:blocksampleperipheral" }
 
}
 
}
 
}
 
}
 
</source>
 
</source>
  
==== sample_peripheral.json (models/block) ====
+
==== blocksampleperipheral.json (models/block) ====
 
assets\sampleperipheralmod\models\block ディレクトリに設置します。
 
assets\sampleperipheralmod\models\block ディレクトリに設置します。
 
<source lang = "javascript">
 
<source lang = "javascript">
201行目: 201行目:
 
</source>
 
</source>
  
==== sample_peripheral.json (models/item) ====
+
==== blocksampleperipheral.json (models/item) ====
 
assets\sampleperipheralmod\models\item ディレクトリに設置します。
 
assets\sampleperipheralmod\models\item ディレクトリに設置します。
 
<source lang = "javascript">
 
<source lang = "javascript">
 
{
 
{
"parent": "sampleperipheralmod:block/sample_peripheral",
+
"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の後に読み込まれるように設定しています。
 
*Modが対応するMinecraftバージョンの指定
 
<source lang = "java">
 
@Mod(
 
acceptedMinecraftVersions = SamplePeripheralCore.MOD_ACCEPTED_MC_VERSIONS)
 
public class SamplePeripheralCore {
 
 
public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.8,1.8.9]";
 
</source>
 
このmodが対応しているMinecraftのバージョンを指定します。これによってmodが指定バージョン以外のMinecraftでロードされることを防ぐことができます。
 
 
今回の例ではMinecraft 1.8~1.8.9でのみ作動するように指定しています。
 
Modが対応するMinecraftのバージョンに合わせて適宜変更してください。
 
  
 
*周辺機器のブロックとTileEntityの登録
 
*周辺機器のブロックとTileEntityの登録
 
<source lang = "java">
 
<source lang = "java">
 
blockSamplePeripheral = new BlockSamplePeripheral();
 
blockSamplePeripheral = new BlockSamplePeripheral();
GameRegistry.registerBlock(blockSamplePeripheral, "sample_peripheral");
+
GameRegistry.registerBlock(blockSamplePeripheral, "blockSamplePeripheral");
</source>
 
<source lang = "java">
 
GameRegistry.registerTileEntity(TileSamplePeripheral.class, "tile_sample_peripheral");
 
 
</source>
 
</source>
 
*モデルとテクスチャを指定しているJSONファイル名の登録
 
 
<source lang = "java">
 
<source lang = "java">
if (event.getSide().isClient()) {
+
GameRegistry.registerTileEntity(TileSamplePeripheral.class, "tileSamplePeripheral");
ModelLoader.setCustomModelResourceLocation(
 
Item.getItemFromBlock(blockSamplePeripheral), 0,
 
new ModelResourceLocation(MOD_ID + ":" + "sample_peripheral", "inventory"));
 
}
 
 
</source>
 
</source>
今回は1ブロックIDに対して1モデルだけなので、ファイル名はブロックの登録名と同じにしています。<br>
 
  
 
*PeripheralProviderの登録
 
*PeripheralProviderの登録
267行目: 243行目:
 
ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider());
 
ComputerCraftAPI.registerPeripheralProvider(new PeripheralProvider());
 
</source>
 
</source>
接続したComputerへ周辺機器のIPeripheral実装クラスを提供するためのIPeripheralProviderの実装クラス(後述)をComputerCraftに登録します。<br>
+
接続したComputerへ周辺機器のIPeripheral実装クラスを提供するためのIPeripheralProviderの実装クラス(後述)をComputerCraftに登録します。
 
これは、自作周辺機器をComputerから使えるようにするために'''必須'''です。
 
これは、自作周辺機器をComputerから使えるようにするために'''必須'''です。
  
297行目: 273行目:
  
 
==== TileSamplePeripheral.java ====
 
==== TileSamplePeripheral.java ====
周辺機器のTileEntity兼IPeripheral実装クラス
+
周辺機器のTileEntity
 
 
大体はMC1.7と同じように実装できます。
 
  
 
*IPeripheralの実装
 
*IPeripheralの実装
316行目: 290行目:
 
}
 
}
 
</source>
 
</source>
周辺機器の種類を表す文字列を返します。<br>
+
周辺機器の種類を表す文字列を返します。ゲーム内のLuaプログラムではこの文字列によって周辺機器を検索したり種類を判別したりします。
ゲーム内のLuaプログラムではこの文字列によって周辺機器を検索したり種類を判別したりします。
 
  
 
*getMethodNames()
 
*getMethodNames()
326行目: 299行目:
 
}
 
}
 
</source>
 
</source>
Computerから呼び出し可能な周辺機器のメソッド名を表す文字列の配列を返します。<br>
+
Computerから呼び出し可能な周辺機器のメソッド名を表す文字列の配列を返します。ゲーム内のLuaプログラムではperipheral.getMethods()の戻り値になります。<
ゲーム内のLuaプログラムではperipheral.getMethods()の戻り値になります。
 
  
 
今回は周辺機器のメソッドを実装しないので空の配列を返しています。
 
今回は周辺機器のメソッドを実装しないので空の配列を返しています。
405行目: 377行目:
 
今回は周辺機器のTileEntityでIPeripheralを実装したため、座標から周辺機器のTileEntityを取得し、IPeripheralのインスタンスとして返しています。
 
今回は周辺機器のTileEntityでIPeripheralを実装したため、座標から周辺機器のTileEntityを取得し、IPeripheralのインスタンスとして返しています。
  
==== sample_peripheral.json (blockstates) ====
+
==== blocksampleperipheral.json (blockstates) ====
 
BlockState別のモデルJSONファイルの指定を行います。<br>
 
BlockState別のモデルJSONファイルの指定を行います。<br>
 
assets\<MOD_ID>\blockstates ディレクトリに配置します。
 
assets\<MOD_ID>\blockstates ディレクトリに配置します。
  
今回の周辺機器ブロックはBlockStateが無いので、"normal"で単一のモデルJSONファイルを指定しています。<br>
+
今回の周辺機器ブロックはBlockStateが無いので、"noemal"で単一のモデルJSONファイルを指定しています。<br>
  
==== sample_peripheral.json (models/block) ====
+
==== blocksampleperipheral.json (models/block) ====
 
ブロックのモデルを指定するJSONファイルです。<br>
 
ブロックのモデルを指定するJSONファイルです。<br>
 
assets\<MOD_ID>\models\block ディレクトリに設置します。
 
assets\<MOD_ID>\models\block ディレクトリに設置します。
418行目: 390行目:
 
また、テクスチャにはバニラの石半ブロックの上面の画像を指定しています。
 
また、テクスチャにはバニラの石半ブロックの上面の画像を指定しています。
  
==== sample_peripheral.json (models/item) ====
+
==== blocksampleperipheral.json (models/item) ====
 
ブロックのアイテムモデルを指定するJSONファイルです。<br>
 
ブロックのアイテムモデルを指定するJSONファイルです。<br>
 
assets\<MOD_ID>\models\item ディレクトリに設置します。
 
assets\<MOD_ID>\models\item ディレクトリに設置します。

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

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

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

このページで使用されているテンプレート: