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

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

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
3行目: 3行目:
  
 
== リソースのマウント ==
 
== リソースのマウント ==
Modのjarファイルやリソースパックに含まれるファイルやフォルダ(以下リソース)を、接続したComputerのファイルシステムにマウントさせる方法について解説します。
+
Modのjarファイル内やリソースパック内にあるファイルやフォルダ(リソース)を、接続したComputerのファイルシステムにマウントさせる周辺機器を追加することができます。
 
 
*IMountインスタンスの取得
 
*IMountインスタンスのマウント
 
*IMountインスタンスのアンマウント
 
  
 +
*リソースのIMountインスタンスの取得
 +
*IMountインスタンスのComputerへのマウント
  
 
=== IMountインスタンスの取得 ===
 
=== IMountインスタンスの取得 ===
リソースのマウントに必要なIMountインスタンスは ComputerCraftAPI.createResourceMount() で取得します。
+
リソースのマウントに必要なIMountのインスタンスはComputerCraftAPI.createResourceMount()で取得します。
 
<source lang = "java">
 
<source lang = "java">
 
// IMount ComputerCraftAPI.createResourceMount( Class modClass, String domain, String subPath )
 
// IMount ComputerCraftAPI.createResourceMount( Class modClass, String domain, String subPath )
17行目: 15行目:
 
"sampleperipheralmod", "lua/rom/apis/sample");
 
"sampleperipheralmod", "lua/rom/apis/sample");
 
</source>
 
</source>
引数でリソースの位置を指定します。実際にマウントできるリソースのパスは以下の両方です。
+
リソースの位置を引数で指定します。実際にマウントできるリソースのパスは以下の両方です。
  
 
*'''modClass'''のjarファイル + "/assets/" + '''domain''' + "/" + '''subPath'''
 
*'''modClass'''のjarファイル + "/assets/" + '''domain''' + "/" + '''subPath'''
 
*ゲームフォルダのresourcepacks内の各リソースパック + "/assets/" + '''domain''' + "/" + '''subPath'''
 
*ゲームフォルダのresourcepacks内の各リソースパック + "/assets/" + '''domain''' + "/" + '''subPath'''
  
戻り値はリソースの取得に成功した場合はIMountインスタンスが、失敗した場合はnullが返ります。
+
戻り値はリソースの取得に成功した場合はIMountのインスタンスが、失敗した場合はnullが返ります。
  
ComputerCraft側の仕様上、createResourceMount()を呼び出すタイミングはMinecraftゲームサーバの起動(FMLServerStartedEvent発生)後となります。サーバが起動していないとき(例えばmodのコアクラスでFMLInitializationEventが発生した時点)に呼び出してもIMountインスタンスは取得できません。
+
ComputerCraft側の仕様上、createResourceMount()を呼び出すタイミングはMinecraftゲームサーバの起動(FMLServerStartedEvent発生)後となります。サーバが起動していないとき(例えばmodのコアクラスでFMLInitializationEventが発生した時点)に呼び出してもIMountのインスタンスは取得できません。
  
取得したIMountインスタンスには、リソース内のファイルリストを取得したり、リソースファイルのInputStreamを取得したりすることのできるメソッドが含まれておりそれを利用することもできます。
+
取得したIMountインスタンスには、指定したリソース内のファイルリストを取得したり、ファイルのInputStreamを取得したりすることのできるメソッドが含まれ、それを利用することもできます。
  
Mod開発環境上のデバッグではjarファイルが生成されないため、jarに同梱するリソースをデバッグする場合には、Mod開発環境上のゲームフォルダ/resourcepacks内に代わりとなるリソースパックを作成してそちらを読み込ませるか、配布用と同じくjarファイルを生成して通常のプレイ環境上でデバッグします。
+
Mod開発環境上でのデバッグではjarファイルは生成されないため、jarに同梱するリソースをデバッグする場合は代わりにリソースパックから読み込ませて行うか、配布用と同じくjarファイルを生成してプレイ環境上で行います。
  
 
=== Computerへマウント ===
 
=== Computerへマウント ===
取得したIMountのインスタンスは IComputerAccess.mount() でComputerへマウントします。
+
取得したIMountのインスタンスはIComputerAccess.mount()でComputerへマウントします。
 
<source lang = "java">
 
<source lang = "java">
 
// String IComputerAccess.mount( String desiredLocation, IMount mount )
 
// String IComputerAccess.mount( String desiredLocation, IMount mount )
38行目: 36行目:
 
desiredLocationにはリソースをマウントするComputerのファイルシステム内のパスを、mountにはComputerCraftAPI.createResourceMount()で取得したリソースのIMountインスタンスを渡します。
 
desiredLocationにはリソースをマウントするComputerのファイルシステム内のパスを、mountにはComputerCraftAPI.createResourceMount()で取得したリソースのIMountインスタンスを渡します。
  
戻り値として、実際にマウントされたComputerファイルシステム内でのパスが返ります。これはリソースをアンマウントする時に必要なので、後ほどアンマウントするつもりなら保存しておきましょう。ひとつの周辺機器には複数のComputerが接続されるため、Map<IComputerAccess, String>などに保存しておくとよいでしょう。マウントに失敗した場合はnullが返ります。
+
戻り値として実際にマウントされたComputerのファイルシステム内のパスが返ります。これはリソースをアンマウントする時に必要なので、後ほどアンマウントするつもりなら保存しておきましょう。ひとつの周辺機器には複数のComputerが接続されるため、Map<IComputerAccess, String>などに保存しておくとよいでしょう。マウントに失敗した場合はnullが返ります。
  
Computerのrom/apisにLuaプログラムファイルをマウントすればAPIを追加することができますが、ON状態のComputerにマウントした場合はos.loadAPI()で登録するかComputerを再起動するまでは反映されません。
+
Computerのrom/apisにLuaプログラムファイルをマウントすればAPIを追加することができますが、起動後のComputerにマウントした場合はos.loadAPI()で登録するかComputerを再起動するまでは反映されません。
  
 
IPeripheral.attach()でmountすれば、接続された全てのComputerへマウントを試みることができます。ただし、desiredLocationに既にファイルやフォルダが存在した場合、マウントには失敗します。
 
IPeripheral.attach()でmountすれば、接続された全てのComputerへマウントを試みることができます。ただし、desiredLocationに既にファイルやフォルダが存在した場合、マウントには失敗します。

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

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

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

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