Refate Datapack Style Guide (Beta)

この記事は作成段階であり、今後大幅に変更される可能性があります。

更新日:

RDSGとは

マインクラフトデータパックには他のプログラミング言語と比較して、不足している機能が多く、大規模プロジェクトにおいて可読性や保守性を高く保つためにはユーザー自身が決まりを作ってコーディングする必要があります。

Refate Datapack Style Guideでは実際にRefateのプロジェクトで使用するルールをまとめており、ほかのデータパックプロジェクトにおいても参照していただけます。

SC-Score

データパック内で使用するscoreboardについて以下のように指定する

また、スコアホルダー名はRDSG内で変数または定数と呼称する

SC-1

  • グローバル変数・グローバル定数はすべて#から始める(ただし#_では始めない)
  • ローカル変数・ローカル定数はすべて#_から始める

SC-2

  • スコアホルダー名の先頭には、その変数を使う処理がわかる接頭部を付ける
  • 接頭部は . で区切り、任意の数だけ続けることができる
  • 接頭部の中は snake_case を使用する
  • 最後の . より後ろを変数名とする
  • ライブラリとして配布するデータパックでは、接頭部の先頭にライブラリ名を含める

SC-3

  • 変数名はすべてlowerCamelCase(NC-1)を使用する
  • 定数名はすべてUPPER_SNAKE_CASE(NC-2)を使用する
  • 数値の定数は値そのものを名前にしてよい

SC-4

  • ローカル変数、ローカル定数は必要無くなり次第resetを行う
  • 関数の途中でreturn等で処理を中断する場合wrapper関数で囲みresetを行う。
  • それらができない場合関数の冒頭でresetまたは初期値の代入を行う。

SC-5

  • 小数を扱う変数・定数は、倍率を 10 の累乗で表し、変数名の直前の接頭部に e<指数> として付ける (例:#math.e3.PI = 3142)
  • e<指数> は倍率を示すために予約し、ほかの目的の接頭部には使わない
#global.difficulty
#math.1
#math.e3.PI
#_calc_avg.total
#_calc_avg.INDEX_COUNT
#_re_util.lib.inventory_sort.playerSlotNumber

NC-Naming Case

変数などの命名規則について

NC-1 lowerCamelCase

  • lowerCamelCaseに含まれる数字は直前の単語に含め、次の単語は大文字から始める
  • 数字から始まる名前は付けない
  • 略語も1つの単語として扱う(例:playerHp、uuidLow)

NC-2 UPPER_SNAKE_CASE

  • すべて大文字で書き、単語は _ で区切る
  • 数字から始まる名前は付けない(数値の定数を除く、SC-3)
  • 数字は直前の単語に含める(例:VEC3_SCALE)

NC-3 snake_case

  • すべて小文字で書き、単語は _ で区切る
  • 数字から始まる名前は付けない
  • 数字は直前の単語に含める(例:vec3_util)
  • - と . は使用しない