Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 22x 22x 22x 167x 7x 6x 6x 1x 1x 1x 1x 1x 1x 1x 168x 116x 168x 116x 168x 168x 117x 117x | import { FieldConfigure, FieldConfigureImpl } from './fieldConfigure'
import { FieldConfigSupplier } from '../value/fieldConfig'
/**
* マップ ({@link Field}) を簡便に作るためのクラス.
*
* Field は本クラスを用いて作成してください.
*/
export class FieldBuilder extends FieldConfigureImpl {
private static lastUsedScene?: g.Scene
private static defaultConfig?: FieldConfigSupplier
private static defaultConfigure?: FieldConfigure
constructor (scene: g.Scene) {
super(false, new FieldConfigSupplier(FieldBuilder.getDefaultConfig(scene).get()))
}
/**
* 作成する Field のライブラリ利用者が自由に使えるフィールドを取得します.
*/
override vars (): unknown
/**
* 作成する Field のライブラリ利用者が自由に使えるフィールドを設定します.
*
* @param vars ライブラリ利用者が自由に使えるフィールド
*/
override vars (vars: unknown): FieldBuilder
override vars (args?: unknown): unknown | FieldBuilder {
if (arguments.length > 0) {
super.vars(args)
return this
}
return super.vars()
}
/**
* 各属性値に値を設定しなかった際に使用されるデフォルト値を設定します.
*
* @param scene 現在の scene を指定してください.
*/
static getDefault (scene: g.Scene): FieldConfigure {
if (FieldBuilder.lastUsedScene !== scene) {
FieldBuilder.resetDefault()
}
if (!FieldBuilder.defaultConfigure) {
FieldBuilder.defaultConfigure = new FieldConfigureImpl(true, FieldBuilder.getDefaultConfig(scene))
}
FieldBuilder.lastUsedScene = scene
return FieldBuilder.defaultConfigure
}
private static getDefaultConfig (scene: g.Scene): FieldConfigSupplier {
if (FieldBuilder.lastUsedScene !== scene) {
FieldBuilder.resetDefault()
}
if (!FieldBuilder.defaultConfig) {
FieldBuilder.defaultConfig = new FieldConfigSupplier({ vars: undefined })
}
FieldBuilder.lastUsedScene = scene
return FieldBuilder.defaultConfig
}
/**
* {@link getDefault} で設定した変更を消去します.
* @internal
*/
private static resetDefault () {
delete FieldBuilder.defaultConfig
delete FieldBuilder.defaultConfigure
}
}
|