UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    インターフェイス CardDragHandlers

    interface CardDragHandlers {
        acceptingCards: (
            from: CardLane,
            fromIndex: number,
            lanes: readonly CardLane[],
        ) => ReadonlySet<Card>;
        describeDrop: (drop: CardDrop) => CardDropInfo | undefined;
        grab: (card: Card, home: () => Rect) => CarriedCard;
        onDrop: (drop: CardDrop, releasedRect: Rect) => void;
    }
    インデックス
    acceptingCards: (
        from: CardLane,
        fromIndex: number,
        lanes: readonly CardLane[],
    ) => ReadonlySet<Card>

    掴んだ札を重ねれば何かが起きる札(ふちを光らせる相手。理由を言うためだけの落とし先は 入らない)。

    1枚ずつ問わずにまとめて訊く。 落とし先を1つ問うたびに、答える側はその場所に並ぶ札を丸ごと 作り直すので、並んでいる枚数の2乗で伸びる(ShownCards.acceptingCells)。

    describeDrop: (drop: CardDrop) => CardDropInfo | undefined

    そのドロップに言うことがあるか(何も無ければundefined)。今の落とし先を示す枠も説明の 吹き出しも、この答えだけを見て決める(受け入れ側のふちの光だけは、掴んだ時点でまとめて訊く acceptingCardsが決める)。

    答えが返ることは「離せば何かが起きる」を意味しない。 理由を言うためだけの落とし先も返る (enabledがfalse、CardInteraction.md 2.1節)ので、実際に起こす側はenabledで絞る。

    grab: (card: Card, home: () => Rect) => CarriedCard

    掴んだ札を指の運ぶ実体の札にする(CardTable.grab)。

    onDrop: (drop: CardDrop, releasedRect: Rect) => void

    releasedRectは手を離した時点で札が居た矩形。落とした後の動きの出発点になる(CardTable参照)。