
2016/03/28

;***********************************************************************************
;■HUD設定ファイル hud/***.txt
;***********************************************************************************

; ★ 重要 ★
; HUDはマインクラフトを起動したままでも再読み込みできる。
; [ 機体に乗る → Rキーで補給画面 → MOD Option → Development → Reload All HUD ]
; テクスチャの再読み込みはヘリMODからではなくマインクラフトのデフォルトの機能を利用する。
; [ Escキーでゲームメニュー → 設定 → リソースパック → 完了 ]


;************************************************************************************************************
; HUDの設定ファイルのみ順番が影響する。
; 設定ファイルに記載した順番に処理が実行され、それが描画順になる。

;************************************************************************************************************
; 計算式について
; ■DrawString, DrawCenteredString のデータ部以外の数値には計算式を設定できる。
;   例：Color = 123 + 456
; ■式には16進数を設定することができる。数値の前に # または 0x を付ける。
;   例：Color = #123 + 0x456 + 789
; ■式には「変数」を設定することができる。
;   例：Color = hp_rto * 100
;       hp_rto は機体の耐久値が 0.0～1.0 で入る。そのため * 100 で 0.0～100.0になる。
; ■式には条件を設定することができる。
;   書式： 条件 ? 条件が成立した時の値 : 条件が成立しなかった場合の値
;   例：Color = hp_rto>0.2? 0xFFFFFFFF: 0x00000000
;       hp_rtoが 0.2 を超えているときは 0xFFFFFFFFが、0.2以下の場合は 0x00000000 がColorに設定される
;
; 「変数一覧」
; center_x    : 画面中央の座標X
; center_y    : 画面中央の座標Y
; width       : 画面の幅
; height      : 画面の高さ
; yaw         : 機体のヨー[横方向の回転](-180.0～180.0)
; pitch       : 機体のピッチ[縦方向の回転](-90.0～90.0)
; roll        : 機体のロール(-180.0～180.0)
; plyr_yaw    : プレイヤーのヨー[横方向の回転](-180.0～180.0)
; plyr_pitch  : プレイヤーのピッチ[縦方向の回転](-90.0～90.0)
; altitude    : 機体の高度(0～) 機体から下方向のブロックまでの距離(マイナスにはならない)
; sea_alt     : 機体の高度(0～) 海抜。基準となる海の高さからの距離(マイナスにはならない)
; hp          : 機体の残り耐久値(0～)
; max_hp      : 機体の最大耐久値(0～)
; hp_rto      : 機体の残りHPの割合(0.0～1.0)
; throttle    : 機体の現在のスロットル(0.0～1.0)
; pos_x       : 機体の座標X
; pos_y       : 機体の座標Y
; pos_z       : 機体の座標Z
; motion_x    : 機体の加速度X
; motion_y    : 機体の加速度Y
; motion_z    : 機体の加速度Z
; fuel        : 機体の残り燃料の割合(0.0～1.0)
; low_fuel    : 燃料低下の警告表示。点滅させるため低下時は0と1を繰り返す( 0=燃料あり、1=燃料低下 )
; stick_x     : 操縦桿のX方向の量(-1.0～1.0)
; stick_y     : 操縦桿のY方向の量(-1.0～1.0)
; reloading   : 武器のリロード状態(0=リロード中でない。1=リロード中)
; reload_time : 武器のリロード残り時間割合(0.0～1.0) 0.0はリロード完了
; wpn_heat    : 武器の熱量(0.0～1.0)
; is_heat_wpn : 熱量式の武器かどうか(0=熱量式ででない。1=熱量式)
; dsp_mt_dist : 着弾距離を表示するか(0=表示しない。1=表示する)
; mt_dist     : 着弾距離(0.0未満の場合は計算不可の場合)
; have_radar  : レーダーを装備しているかどうか(0=レーダーなし。1=レーダーあり)
; radar_rot   : レーダーの回転角度。1周するとエンティティの位置が更新される
; vtol_stat   : 固定翼機のみ。0=通常、1=VTOL切替中、2=VTOL中
; free_look   : 0=通常、1=FREE LOOK中
; cam_mode    : 0=通常、1=NIGHT VISION中、2=THERMAL VISION
; cam_zoom    : カメラの倍率。1.0 ~ 10.0
; auto_pilot  : 0=通常、1=Auto pilot中
; have_flare  : フレア射出装置を装備しているかどうか(0=なし。1=あり)
; can_flare   : フレアを使用可能かどうか(0=使用可能。1=準備中で使用不可)
; sight_type  : 照準の種別( 0=無し、1=MoveSight、2=MissileSight )
; lock        : ミサイルのロックオン状態(0.0～1.0)
; color       : 現在の色設定 (0x00000000~0xFFFFFFFF)
; inventory   : インベントリのスロット数(0～54)
; hovering    : ホバリング状態( 0=ホバリング中でない、1=ホバリング中 )
; is_uav      : UAVかどうか( 0=UAVでない、1=UAV )
; uav_fs      : UAVの電波の強さ。大きいほどUAVステーションに近い( 0.0 ~ 1.0 )
; gunner_mode : ガンナーモードかどうか( 0=通常モード、1=ガンナーモード )
; time        : マイクラ内時間 1日が24000カウント(0～24000)、0=午前6時、6000=正午
; test_mode   : テストモードかどうか( 0=通常モード、1=テストモード )


;************************************************************************************************************
; 他のHUD描画ファイル呼び出し
; HUDのテキストファイル名を指定すると、その設定ファイルの描画処理を実行できる。
;
; Call = common_pilot の場合、common_pilot.txt が実行される
; 呼び出した設定ファイル内で更に別のファイルを読み出すこともできるが、2重に同じファイル読みだすことはできない。
; 例えば、heli.txt 内で Call = heli とした場合、heli.txtは既に実行中であるため処理されず、無視される。
; また、heli.txt 内で Call = plane と記載し、plane.txt 内で Call = heli と記載した場合、
; heli.txt は実行中であるため、この場合も実行されない。
Call = common_pilot


;************************************************************************************************************
; 現在のHUDファイルの描画を終了する
;
; Call で呼び出されている場合は、呼び出し元に戻る
; heli.txt から uav_fs.txt を呼び出し、uav_fs.txt でExitを使用すると、uav_fs の描画は終了し、
; heli.txt で uav_fs.txt を呼び出した次の行から処理が継続する。
;
Exit


;************************************************************************************************************
; 条件分岐
; 指定した条件を満たす場合のみ処理を実行する
;
; 条件が 0 以外の場合は 処理1 処理2 処理3 は実行される
; 条件が 0 の場合は 処理1 処理2 処理3 は実行されない
; If = 条件
; 	処理1
; 	処理2
; 	処理3
; EndIf
; ※入れ子は非対応 (If～EndIf の間に更にIfを入れることはできない)
;
; 以下の例では is_heat_wpn が1であれば、Color と DrawRect が実行される。
If = is_heat_wpn==1
	Color = 0xFF28d448
	DrawRect = -145, 57, 43, 10
EndIf


;************************************************************************************************************
; 色設定
; 色設定を行うと、以降の文字色や線の色がこの設定の色で描画される
;
; 2パターンの設定方法がある。
; パラメータ1つで指定する方法と、パラメータ4つを指定する方法。
; 1つで設定する場合:上位から 不透明度、赤、緑、青
;                  :例) 0xAABBCCDD の場合、不透明度=AA、赤=BB、緑=CC、青=DD
; 4つで設定する場合:前から順に 不透明度、赤、緑、青
;                  :例) 12, 34, 56, 78  の場合、不透明度=12、赤=34、緑=56、青=78
; 16進数で指定するか、10進数で4つ指定のどちらか
; 例 : 以下はどれも有効な設定
Color = 0xFFFFFFFF
Color = #FFFFFFFF
Color = 0xFF,  40, 212,  72


;************************************************************************************************************
; 文字列を描画する
;  DrawString         : 指定座標から右に向かって描画
;  DrawCenteredString : 指定座標が中央になるよう描画
;
; パラメータ1 = 画面中央からのX座標
; パラメータ2 = 画面中央からのY座標
; パラメータ3 = 表示フォーマット(printf or String.formatの形式。 , は使用不可)
;               %の数と、パラメータ4以降のデータ数は一致していなければならない
; パラメータ4以降 = ★データ(省略可能。上限なし)
;
; 例(高度)：DrawString = -20,  20, "Hello"
;           Hello という文字列を画面に表示する
;
; 例(高度)：DrawString =  0,  40, "[ %3d ]", ALTITUDE
;           ALTITUDE(高度) を 3桁の整数で表示する → [ 123 ]
;
; 例(日付)：DrawString =  0, -30, "%tY/%tm/%td", DATE, DATE, DATE
;           DATE(日付) を / で区切って表示する → 2014/10/11
;
; ★データ(大文字小文字は区別しない)
; データに計算式は使えない
;
; 下記に示す通り %s や %d、%f はデータごとに決まっている。ただし、%と英字の間に桁数を表す数値を入れることが可能。
; 例えば %f は小数点以下を指定しないため何桁表示されるか分からない。 → 123.45678 など
; %.2fとすると小数点以下は必ず 1桁になる。 %.0f → 123    %.1f → 123.4    %.2f → 123.45
; これは %d でも可能。詳細は printf で検索するとよい。
;
;  NAME        : %s : 機体名(アイテム名と同じ表示になる)
;  ALTITUDE    : %d : 高度を整数で示す。
;  DATE        : %tY %tm %td %td %tH %tM %tS ...
;              : 現在の日時を表す。%tY=年、%tm=月、%td=日、%tH=時、%tM=分、%tS=秒
;  MC_THOR     : %d : Minecraft内の時間の時を表す。0～23。Minecraft内の時間は現実の72倍であることに注意
;  MC_TMIN     : %d : Minecraft内の時間の分を表す。0～59。Minecraft内の時間は現実の72倍であることに注意
;  MC_TSEC     : %d : Minecraft内の時間の秒を表す。0～59。Minecraft内の時間は現実の72倍であることに注意
;  MAX_HP      : %d : 最大耐久値を整数で示す。
;  HP          : %d : 残りの耐久値を整数で示す。
;  HP_PER      : %f : 残りの割合を小数(100.0～0.0)で示す。%.1f は小数点以下1桁表示するという意味。
;  THROTTLE    : %f : スロットルを小数(100.0～0.0)で示す。%.1f は小数点以下1桁表示するという意味。
;  POS_X       : %f : 機体のX座標を小数で表示する。
;  POS_Y       : %f : 機体のY座標を小数で表示する。
;  POS_Z       : %f : 機体のZ座標を小数で表示する。
;  MOTION_X    : %f : 機体のX方向の加速度を小数で表示する。
;  MOTION_Y    : %f : 機体のY方向の加速度を小数で表示する。
;  MOTION_Z    : %f : 機体のZ方向の加速度を小数で表示する。
;  YAW         : %f : 機体の横方向の角度を小数で表示する。
;  PITCH       : %f : 機体の縦方向の角度を小数で表示する。★実際のピッチ角と正負が逆なので注意。(上が正の値、下が負の値)
;  ROLL        : %f : 機体のロール角度を小数で表示する。
;  PLYR_YAW    : %f : プレイヤーの横方向の角度を小数で表示する。
;  PLYR_PITCH  : %f : プレイヤーの縦方向の角度を小数で表示する。★実際のピッチ角と正負が逆なので注意。(上が正の値、下が負の値)
;  INVENTORY   : %d : 機体のインベントリ数を表示する。
;  WPN_NAME    : %s : 現在選択している武器名を表示する。
;  WPN_AMMO    : %s : 現在選択している武器の弾数を表示する。
;  WPN_RM_AMMO : %s : 現在選択している武器の残弾を表示する。
;  RELOAD_PER  : %f : リロード状況を小数(100.0～0.0)で示す。100.0でリロード完了。%.1f は小数点以下1桁表示するという意味。
;  RELOAD_SEC  : %f : 残りリロード秒数を小数(0.0～)で示す。0.0でリロード完了。%.1f は小数点以下1桁表示するという意味。
;  MORTAR_DIST : %f : 着弾距離(0.0未満の場合は計算不可の場合)
;  MC_VER      : %s : Minecraftのバージョン。
;  MOD_VER     : %s : MODのバージョン。
;  MOD_NAME    : %s : MODの名称。常に「MC Helicopter MOD」になる。
;  TVM_POS_X   : %f : TVミサイルのX座標
;  TVM_POS_Y   : %f : TVミサイルのY座標
;  TVM_POS_Z   : %f : TVミサイルのZ座標
;  TVM_DIFF    : %f : TVミサイルと機体の距離
;  CAM_ZOOM    : %f : カメラの倍率
;  UAV_DIST    : %f : UAVステーションとの距離 (0.0～)
;  KEY_GUI     : %s : GUI キーの名称 (デフォルトのキー設定なら R)
;
DrawCenteredString = 0,  40, "[ %3d ]", ALTITUDE
→ ALTITUDEが12の場合、画面には [  12 ] と表示される。3桁を指定しているが、12は2桁なので、100の位はスペースになる。
DrawString         = 0,  30, "%tY %tm %td  [ %02d:%02d:%02d ]", DATE, DATE, DATE, MC_THOR, MC_TMIN, MC_TSEC
→ 2014/10/24のマイクラ内時刻が 12時34分56秒であれば、画面には 2014 10 24  [ 12:34:56 ] と表示される。
DrawString         = 0,  20, "%3d/%3d  = %.1f%%", HP, MAX_HP, HP_PER
→ 現在HP=50で、最大HP=100の場合、画面には  50/100  = 50% と表示される。%% は%の文字を表す。
DrawString         = 0,  10, "[ %s ]", name
→ 機体が AH-64の場合、画面には AH-64D Apache Longbow と表示される。
DrawCenteredString = 0, -10, "HUD Test"
→ データ部なしなので、画面には常に HUD Test と表示される。


;************************************************************************************************************
; テクスチャを描画する
; テクスチャは 256x256 を推奨。パラメータ2以降は全て整数または小数を指定可能
; パラメータ1  :テクスチャファイル名 (拡張子無し。assets\mcheli\textures\gui 内のファイル)
; パラメータ2  : 画面の中央からのX座標
; パラメータ3  : 画面の中央からのY座標
; パラメータ4  : 画面上の幅
; パラメータ5  : 画面上の高さ
; パラメータ6  : 読み出すテクスチャのX座標
; パラメータ7  : 読み出すテクスチャのY座標
; パラメータ8  : 読み出すテクスチャの幅
; パラメータ9  : 読み出すテクスチャの高さ
; パラメータ10 : 画面上での回転角度(省略可)
DrawTexture = heli_hud, -100.0, 20,  50,20,  0,0, 64,64,  90.0


;************************************************************************************************************
; 四角形を描画する
; パラメータ1  : 画面の中央からのX座標
; パラメータ2  : 画面の中央からのY座標
; パラメータ3  : 画面上の幅
; パラメータ4  : 画面上の高さ
DrawRect = -20, -30, 40*throttle, -20


;************************************************************************************************************
; 線を描画する
; パラメータ5以降を指定すると、連続で線を引くことができる。
; 1,2 → 3,4 → 5,6 → 7,8 ... 
; パラメータ4までは必須で、5以降は必要であれば使用する
;
; パラメータ1  : 画面の中央からのX座標
; パラメータ2  : 画面の中央からのY座標
; パラメータ3  : 画面の中央からのX座標
; パラメータ4  : 画面の中央からのY座標
; パラメータ5  : パラメータ5以降は、X座標、Y座標、X座標、Y座標...
DrawLine = -40,  30,   40, 30
DrawLine = -20, -30,  -20+40*throttle, -30,  -20+40*throttle, -20,  -20, -20,  -20, -30


;************************************************************************************************************
; 破線を描画する
; パラメータ7以降を指定すると、連続で線を引くことができる。
; 3,4 → 5,6 → 7,8 ... 
; パラメータ6までは必須で、7以降は必要であれば使用する
; なお パラメータ1 は glLineStipple の factor、パラメータ2 は glLineStipple の pattern である。
;
; パラメータ1  : 破線パターンを16進数の 0 or 1 で表す ( よく分からなければ 0xCCCC や 0xAAAA を設定しておけばよい )
; パラメータ2  : 破線の倍率 (整数)
; パラメータ3  : 画面の中央からのX座標
; パラメータ4  : 画面の中央からのY座標
; パラメータ5  : 画面の中央からのX座標
; パラメータ6  : 画面の中央からのY座標
; パラメータ7  : パラメータ7以降は、X座標、Y座標、X座標、Y座標...
DrawLineStipple = 0xF0F0, 1,   -40,  30,   40, 30
DrawLineStipple = 0xFF00, 1,   -20, -30,  -20+40*throttle, -30,  -20


;************************************************************************************************************
; エンティティの位置を描画する(レーダー)
; DrawEntityRadar はモンスター以外のモブ、DrawEnemyRadar はモンスター を描画する
;
; パラメータ1  : 回転角度
; パラメータ2  : 画面の中央からのX座標
; パラメータ3  : 画面の中央からのY座標
; パラメータ4  : 幅
; パラメータ5  : 高さ
DrawEntityRadar = plyr_yaw, 40,  30,   32, 32
DrawEnemyRadar  = plyr_yaw, 40,  30,   32, 32


;************************************************************************************************************
; 角度を表す目盛を描画する
; 
; DrawGraduationYaw    横方向の回転角度を目盛で表示。例の設定では画面上部に表示される
; DrawGraduationPitch1 縦方向の回転角度を目盛で表示。例の設定では画面左右に表示される
; DrawGraduationPitch2 縦方向とロール角度を表示。例の設定では画面中央に表示される
; パラメータ1  : 回転角度
; パラメータ2  : ロール回転角度
; パラメータ3  : 画面の中央からのX座標
; パラメータ4  : 画面の中央からのY座標
; DrawGraduationYaw のパラメータ3 以外は以下の値にすることを推奨する。
DrawGraduationYaw    = plyr_yaw,    0,     0, -100
DrawGraduationPitch1 = plyr_pitch,  0,     0, 0
DrawGraduationPitch2 = plyr_pitch, -roll,  0, 0


;************************************************************************************************************
; プレイヤーと機体との角度の差を描画する
; 
; 機体に対してプレイヤーがどこを向いているか、小さい四角で表示する。
; パラメータ1  : 画面の中央からのX座標
; パラメータ2  : 画面の中央からのY座標
DrawCameraRot = 0, 60
