Table of Contents

パークによる拡張

概要

BitsmistJSの核であるUnitユニットはごく単純な機能しか持ちません。各ユニットはパークを適用することで、機能を拡張できます。

例えばサンプルのハローユニットでは、イベントハンドラを設定でセットしましたが、これはEventPerkによって処理がされています。またHTMLファイルのロードと適用は、SkinPerkによって行われます。

パークには次の機能があります

デフォルトでは以下のパークがユニットに適用されています。

パークの適用

パークを適用するには、各ユニットの設定に記述する必要があります。2つの記述方法があります。

"perk"セクションに記述する

Perkapplyオプションに、追加したいパークの名前を指定します。複数のパークを指定することが可能です。

_getSettings()
{
    return {
        "perk": {
            "options": {
                "apply": ["EventPerk"]
            }
        }
    };
}

パーク専用のセクションを記述する

各パークには対応したセクション名があり、設定にそのセクションが存在することで、自動的にパークが適用されます。

例えば、以下の設定には“event”セクションがあるため、EventPerkが自動的に適用されます。

_getSettings()
{
    return {
        "event": {
            "events": {
                "this": {
                    "handlers": {
                        "doSetup": this.onDoSetup
                    }
                },
            }
        }
    };
}

どのセクションにどのパークが紐づいているかは、各パークのリファレンスのタイトルの下にある“セクション名”をご覧ください。

イベント処理

パークによってはユニットにイベントハンドラを登録し、そのハンドラ内で独自の処理を行います。パークが登録するイベントハンドラは優先順位を高めており、ユーザイベントよりも先に発生するように設計されています。

どのイベントでどのような処理をするのかはパークによって異なります。例えばSkinPerkは“beforeTransform”で必要なHTMLファイルをロードし、“doTransform”でそのファイルをユニットに適用します。

以下に、コアライブラリに含まれるパークが、どのイベントで何をするかの一覧を示します。詳細については、各リンク先を参照ください。

イベントパーク説明
doApplySettingsEventPerkイベントハンドラをセットします。
StatuePerk他のユニットを待つためのインベントハンドラをセットします。
UnitPerkコンポーネントを追加します。
beforeTransformSkinPerkHTMLファイルをロードします。
StylePerk共通CSSをロードして適用します。
doTransformSkinPerkHTMLファイルを適用します。
StylePerkユニット専用CSSをロードして適用します。
afterTransformEventPerkイベントハンドラをセットします。

拡張機能

各パークはユニットのプロトタイプや各インスタンスに、アセット・インベントリ・スキル・スペルを追加する機能も持ちます。

以下にコアライブラリのパークが付加する機能の一覧を示します。詳細は各パークの説明をご覧ください。

パークタイプ名称
BasicPerkメソッドcast
use
アセットinventory
perk
skill
spell
インベントリbasic.unitRoot
スキルbasic.locate
basic.locateAll
basic.scan
basic.scanAll
スペルbasic.clear
basic.fetch
basic.fill
basic.refresh
basic.setup
basic.start
basic.stop
basic.transform
EventPerkスキルevent.add
event.init
event.remove
event.reset
event.triggerSync
スペルevent.trigger
Perkスペルperk.attach
perk.attachPerks
SettingPerkアセットsetting
スキルsetting.get
setting.merge
setting.set
スペルsetting.apply
setting.summon
SkinPerkインベントリskin.skins
skin.active
スキルskin.apply
スペルskin.summon
StatusPerkインベントリstatus.status
スキルstatus.change
スペルstatus.wait
StylePerkインベントリstyle.styles
スペルstyle.apply
style.summon
UnitPerkインベントリunit.units
スペルunit.materialize
unit.materializeAll
unit.summon