One rule for a piece's direction variant: remove pieceV (t81)

This commit is contained in:
2026-10-29 21:53:56 -04:00
parent daeb3b2238
commit 78eeb86171
4 changed files with 49 additions and 4 deletions
+4 -4
View File
@@ -82,16 +82,16 @@ function setBrush(d) {
}
// The block variant a piece is placed with: wall material, or direction (a filter's
// materials and mode travel separately, as GAME.filterCfg)
function pieceV(P) {
function pieceV(P, dir = GAME.pieceDir[P.id] || 0, code = pieceCode(P)) {
if (isWall(P.code)) return GAME.wallMat;
if (P.filter) return filterVariant(pieceCode(P), (GAME.pieceDir[P.id] || 0) << 7);
return GAME.pieceDir[P.id] || 0;
if (P.filter) return filterVariant(code, dir << 7);
return dir;
}
// One drag for the build tool and its preview: code, direction, variant, blocks, and the planned
// blocks the join rule sees. A line that joins one block up or down snaps there (joinSnap).
function dragPlan(P, a, b, shift) {
const code = pieceCode(P, b), dd = a ? dragDirFor(P, a, b) : -1, dir = dd >= 0 ? dd : (GAME.pieceDir[P.id] || 0);
const v = isWall(P.code) ? GAME.wallMat : P.filter ? filterVariant(code, dir << 7) : dir;
const v = pieceV(P, dir, code);
let cells = !a ? [[b.bx, b.by]] : shift && !lineOnly(code) ? blockRect(a.bx, a.by, b.bx, b.by)
: blockLine(a.bx, a.by, b.bx, b.by, isWall(code) || isSlopeBelt(code) || code === BP_SCREW);
const snap = lineOnly(code) ? joinSnap(code, v, cells) : 0;