Signs and Markers
看板とマーカー
Overviewrは看板やマーカー、ポイント(原文points of interest:以下POI)をマップに表示できます。
普通の設定とはちょっと違うので、注意して見てみましょう。
設定ファイル
フィルタ関数
フィルタ関数とはpythonの関数で、POIがどのmarkerSetに属するかを決め、どのように表示するかを設定します。
引数は一つ(辞書:連想配列のようなもの)で、返り値は表示するために用意された文字列です。
例
def signFilter(poi):
if poi['id'] == 'Sign':
return "\n".join([poi['Text1'], poi['Text2'], poi['Text3'], poi['Text4']])
もしPOIが合わなければ、何も返しません。
(Pythonの関数の仕様で、'return'無しに関数が終わった時にこうなります。)
引数はチャンクファイルから直接取得したTileEntityやEntityです。
プレイヤーの場所やスポーンのような特殊なEntitiyであることもあるでしょう。
ちょっと違う例
def chestFilter(poi):
if poi['id'] == "Chest":
return "Chest with %d items" % len(poi['Items'])
idがChest(チェスト)なら、チェスト内のアイテム数を取得していますね。
特殊なPOI
2種類の特殊なPOIがあり、それぞれ特殊なIDをもっています。
- PlayerSpawn
- スポーン位置を示しています。
- プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。
- Player
- プレイヤーの最後の位置を示しています。
- プレイヤー名はEntityIdキーに、場所はx,y,zキーに格納されています。
注
プレイヤーの位置は、シングルであればlevel.datマルチであればplayer.datファイルから取得されます。
位置情報はワールドをセーブした時のみ書き込まれますので、リアルタイムの情報というわけではありません。
player関係の例
def playerIcons(poi):
if poi['id'] == 'Player':
poi['icon'] = "http://overviewer.org/avatar/%s" % poi['EntityId']
return "Last known location for %s" % poi['EntityId']
idがPlayerならiconに使用しているスキンの画像を取得して(上のURLの%sに自分がminecraftで使っているIDを入れてみるとわかります)
誰々の最後の位置はここだというメッセージを返してますね。
レンダー辞書キー
それぞれのレンダーでフィルターを使わなくても、複数使っても良いです。
設定したフィルタ関数は、レンダリングしたマップの'Signs'ドロップダウンメニューから選ぶことができるようになります。
例
renders['myrender'] = {
'world': 'myworld',
'title': "Example",
'markers': [dict(name="All signs", filterFunction=signFilter),
dict(name="Chests", filterFunction=chestFilter, icon="chest.png", createInfoWindow=False)]
}
以下マーカー辞書で使えるキーの解説
- name
- 'Signs'ドロップダウンメニューで表示される名前。
- filterFunction
- 使用するフィルター関数。最低1つは引数が必要で、その返り値は文字列か何も無し。
- ;icon|任意で追加。POIを表示するためのアイコンを指定。省略すると看板アイコン。
- POIごとに違うアイコンを設定することの可能(上のPlayerの例を参照)。
- createInfoWindow
- 任意で追加。アイコンをクリックして情報ウィンドウを開くか否か。デフォルトはTrue。
- checked
- 任意で追加。マップを開いた時にこのマーカーグループが見えるかどうか。デフォルトはFalse。
POIマーカーを生成
注
通常のoverviwer.pyでのマップレンダーではマーカーが更新&追加されません!
以下のオプションのどれかを使って、マップを生成しましょう
--genpoi オプション
overviewer.pyを実行するときに--genpoiオプションを付けるとPOIマーカーを生成できます。
例
/path/to/overviewer.py --config /path/to/your/config/file.conf --genpoi
注:--genpoiオプションを付けるとマップは生成されません。マーカーのみの生成になります。
genPOI.py
genPOI.pyというスクリプトもあり、直接使う事ができます。
例
/path/to/overviewer/genpoi.py --config=/path/to/your/config.file
アウトプットディレクトリに必要なJavaScriptファイルも生成してくれます。
最終更新:2012年11月11日 22:17