fix(char): render characters in native art on Tiles; drop sprite color tinting

The skin/hair/cloth-base/gear palette-ramp recoloring on the top-down Tiles character sprites looked bad, so it's disabled: tintedTileCanvas() now returns null, making every caller (drawCharTileCanvas, charTileTexture, in-game + customizer preview + Pixi) fall through to the native Kenney sprite art.

The customizer's top-down editor drops the Cloth/Skin/Hair and per-gear color rows and keeps only equipment PIECE selection (body/head/shield/weapon). The ASCII '@' color picker is unchanged (shown in the ascii/color branch, driven by colors.base via avatarVisuals.tintColorFor). Iso skin tint and premium generated-skins are untouched. Suite 46/317 green.
This commit is contained in:
jwinterm
2026-07-09 21:47:49 -04:00
parent a9fad69038
commit 71ce16a384
2 changed files with 10 additions and 12 deletions
+4 -12
View File
@@ -720,19 +720,14 @@
return;
}
var bodyItem = draft.equipment && draft.equipment.body;
var headItem = draft.equipment && draft.equipment.head;
sectionTitle('Color', editSection);
if (!bodyItem || bodyItem === 'none') renderColorRow('Cloth', 'base', 'tint', editSection);
renderColorRow('Skin', 'skin', 'skin', editSection);
if (!headItem || headItem === 'none') renderColorRow('Hair', 'hair', 'hair', editSection);
// Sprite tinting (cloth / skin / hair / gear colour) is disabled for the top-down
// Tiles view — characters render in native Kenney art. Only equipment PIECE selection
// remains here; the '@' colour for ASCII mode is still pickable in the ascii/colour
// branch above.
sectionTitle('Equipment', editSection);
(RK.CHAR_EQUIPMENT_SLOTS || []).forEach(function (slot) {
var catalog = RK.CHAR_EQUIPMENT[slot] || {};
var opts = row(slot.charAt(0).toUpperCase() + slot.slice(1), editSection);
var selectedItem = catalog[draft.equipment[slot]];
for (var id in catalog) {
(function (item) {
opts.appendChild(optionButton(item.label, draft.equipment[slot] === item.id, function () {
@@ -742,9 +737,6 @@
}, optionTileCanvas(slot, item, draft, equipRedrawers)));
})(catalog[id]);
}
if (equipmentColorable(selectedItem)) {
renderColorRow(slot.charAt(0).toUpperCase() + slot.slice(1) + ' color', slot, 'tint', editSection);
}
});
}
+6
View File
@@ -226,6 +226,12 @@
}
function tintedTileCanvas(idx, tintId, colors, slot) {
// Sprite recoloring (skin / hair / cloth-base / gear tinting) is intentionally disabled:
// characters and equipment render in their native Kenney art. Returning null makes every
// caller (drawCharTileCanvas, charTileTexture) fall through to the untinted sprite. The
// ASCII '@' colour is unaffected — it uses colors.base via avatarVisuals.tintColorFor,
// a separate path. To restore tinting, delete this early return.
return null;
var a = RK.charAtlas();
tintId = validTint(tintId);
colors = RK.normalizeCharColors(colors, tintId);