提供: Minecraft Modding Wiki
移動先: 案内検索
(ITurtleAccess.updateUpgradeNBTDataの説明を少し修正)
(「UpgradeNBTDataの取得」の一部を「UpgradeNBTDataの利用」の項に分離)
7行目: 7行目:
 
*UpgradeNBTDataの取得
 
*UpgradeNBTDataの取得
 
*UpgradeNBTDataの同期
 
*UpgradeNBTDataの同期
 +
  
 
=== UpgradeNBTDataの取得 ===
 
=== UpgradeNBTDataの取得 ===
14行目: 15行目:
 
NBTTagCompound nbt = turtle.getUpgradeNBTData(side);
 
NBTTagCompound nbt = turtle.getUpgradeNBTData(side);
 
</source>
 
</source>
引数でUpgradeNBTDataを取得したいTurtle Upgradeの装着方向を指定します。
+
引数でUpgradeNBTDataを取得したいTurtle Upgradeの装着方向を指定します。<br>
 
+
各Turtleは左のTurtle Upgrade用のUpgradeNBTDataと右のTurtle Upgrade用のUpgradeNBTDataを持っていて、それぞれのUpgradeNBTDataは独立しています。
各Turtleは左のTurtle Upgrade用のUpgradeNBTDataと右のTurtle Upgrade用のUpgradeNBTDataを持っていて、それぞれのUpgradeNBTDataは独立しています。<br>
 
このメソッドで取得したNBTTagCompoundは(TileEntityやItemStackのNBTTagCompoundと同じように)データの保存や取得が可能です。詳しくはForgeチュートリアルのNBTに関するページを参照してください。
 
 
 
Minecraftの構造上、(シングル・マルチを問わず)NBTTagCompoundにも「サーバ側」と「クライアント側」が存在します。<br>
 
基本的にはサーバ側のNBTTagCompoundを利用することになりますが、NBTTagCompoundのデータを元にTurtle Upgradeの外観を変えたりなどする場合はクライアント側のNBTTagCompoundを利用する必要があります。<br>
 
サーバ側のNBTTagCompoundの状態をクライアント側のNBTTagCompoundへ反映させる(同期する)には後述するITurtleAccess.updateUpgradeNBTData()を利用します。
 
 
 
サーバ側のUpgradeNBTDataに保存したデータはゲームを終了しても消去されず、ゲームを再開したときに再び取得することができます。<br>
 
ただし、以下の場合は保存したデータが消去されます。
 
*Turtle Upgradeを取り外す(取り外されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
 
*別のTurtle Upgradeと交換する(交換されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
 
*Turtleを破壊する(両方のUpgradeNBTDataが消去されます。ラベルを付けたTurtleでも消去されます)
 
  
 
周辺機器タイプのTurtleで周辺機器実装クラスでもUpgradeNBTDataを利用したい場合は、以下のように周辺機器側でITurtleAccessとTurtleSideのインスタンスを保存しておきます。
 
周辺機器タイプのTurtleで周辺機器実装クラスでもUpgradeNBTDataを利用したい場合は、以下のように周辺機器側でITurtleAccessとTurtleSideのインスタンスを保存しておきます。
51行目: 40行目:
 
}
 
}
 
</source>
 
</source>
 +
 +
 +
=== UpgradeNBTDataの利用 ===
 +
ITurtleAccess.getUpgradeNBTData()で取得したNBTTagCompoundは(TileEntityやItemStackのNBTTagCompoundと同じように)データの保存や取得が可能です。<br>
 +
詳しくはForgeチュートリアルのNBTに関するページを参照してください。
 +
 +
Minecraftの構造上、(シングル・マルチを問わず)NBTTagCompoundにも「サーバ側」と「クライアント側」が存在します。<br>
 +
基本的にはサーバ側のNBTTagCompoundを利用することになりますが、NBTTagCompoundのデータを元にTurtle Upgradeの外観を変えたりなどする場合はクライアント側のNBTTagCompoundを利用する必要があります。<br>
 +
サーバ側のNBTTagCompoundの状態をクライアント側のNBTTagCompoundへ反映させる(同期させる)には後述するITurtleAccess.updateUpgradeNBTData()を呼び出します。
 +
 +
サーバ側のUpgradeNBTDataに保存したデータはゲームを終了しても消去されず、ゲーム再開後に再び取得することができます。<br>
 +
ただし、以下の場合は保存したデータが消去されます。
 +
*Turtle Upgradeを取り外す(取り外されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
 +
*別のTurtle Upgradeと交換する(交換されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
 +
*Turtleを破壊する(両方のUpgradeNBTDataが消去されます。ラベルを付けたTurtleでも消去されます)
 +
  
 
=== UpgradeNBTDataの同期 ===
 
=== UpgradeNBTDataの同期 ===

2016年1月15日 (金) 19:34時点における版

ComputerCraft API >

この記事は"Minecraft Forge Universal 10.13.x.x~"及び"ComputerCraft 1.65~"を前提MODとしています。

UpgradeNBTDataの利用

Turtleより提供されるTurtle Upgrade用のNBTTagCompound(UpgradeNBTData)の利用方法について解説します。

  • UpgradeNBTDataの取得
  • UpgradeNBTDataの同期


UpgradeNBTDataの取得

UpgradeNBTDataは ITurtleAccess.getUpgradeNBTData() で取得します。

// NBTTagCompound ITurtleAccess.getUpgradeNBTData( TurtleSide side );
NBTTagCompound nbt = turtle.getUpgradeNBTData(side);

引数でUpgradeNBTDataを取得したいTurtle Upgradeの装着方向を指定します。
各Turtleは左のTurtle Upgrade用のUpgradeNBTDataと右のTurtle Upgrade用のUpgradeNBTDataを持っていて、それぞれのUpgradeNBTDataは独立しています。

周辺機器タイプのTurtleで周辺機器実装クラスでもUpgradeNBTDataを利用したい場合は、以下のように周辺機器側でITurtleAccessとTurtleSideのインスタンスを保存しておきます。

public class TurtleSample implements ITurtleUpgrade {

	@Override
	public IPeripheral createPeripheral(ITurtleAccess turtle, TurtleSide side) {
		return new SamplePeripheral(turtle, side);	// 周辺機器側にITurtleAccessとTurtleSideのインスタンスを渡す
	}
public class SamplePeripheral implements IPeripheral {

	private final ITurtleAccess turtleAccess;
	private final TurtleSide turtleSide;
 
	public SamplePeripheral(ITurtleAccess turtle, TurtleSide side) {
		// コンストラクタで渡されたITurtleAccessとTurtleSideのインスタンスを保存
		// turtleAccess.getUpgradeNBTData(turtleSide) のようにしてUpgradeNBTDataを取得
		turtleAccess = turtle;
		turtleSide = side;
	}


UpgradeNBTDataの利用

ITurtleAccess.getUpgradeNBTData()で取得したNBTTagCompoundは(TileEntityやItemStackのNBTTagCompoundと同じように)データの保存や取得が可能です。
詳しくはForgeチュートリアルのNBTに関するページを参照してください。

Minecraftの構造上、(シングル・マルチを問わず)NBTTagCompoundにも「サーバ側」と「クライアント側」が存在します。
基本的にはサーバ側のNBTTagCompoundを利用することになりますが、NBTTagCompoundのデータを元にTurtle Upgradeの外観を変えたりなどする場合はクライアント側のNBTTagCompoundを利用する必要があります。
サーバ側のNBTTagCompoundの状態をクライアント側のNBTTagCompoundへ反映させる(同期させる)には後述するITurtleAccess.updateUpgradeNBTData()を呼び出します。

サーバ側のUpgradeNBTDataに保存したデータはゲームを終了しても消去されず、ゲーム再開後に再び取得することができます。
ただし、以下の場合は保存したデータが消去されます。

  • Turtle Upgradeを取り外す(取り外されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
  • 別のTurtle Upgradeと交換する(交換されたTurtle Upgradeの方のUpgradeNBTDataのみ消去されます)
  • Turtleを破壊する(両方のUpgradeNBTDataが消去されます。ラベルを付けたTurtleでも消去されます)


UpgradeNBTDataの同期

サーバ側で変更したUpgradeNBTDataをクライアント側へ反映させるには ITurtleAccess.updateUpgradeNBTData() を呼び出します。

// void ITurtleAccess.updateUpgradeNBTData( TurtleSide side )
turtle.updateUpgradeNBTData(side);

引数でUpgradeNBTDataを同期したいTurtle Upgradeの装着方向を指定します。
サーバ側からの呼び出しのみ有効で、クライアント側で呼び出してもクライアント側のUpgradeNBTDataがサーバ側に反映されるということはありません。

UpgradeNBTDataはTurtleがワールドへロードされた時などにも同期されますが、このメソッドを呼び出すと即座に同期されます。