You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
10 KiB
JavaScript
80 lines
10 KiB
JavaScript
|
|
// features/decor.js standalone brush recolorable decoration blocks.
|
|
|
|
import { registerVariants } from "../core/variants.js";
|
|
|
|
registerVariants(["rzb_dcs:sp22_white", "rzb_dcs:sp22_yellow", "rzb_dcs:sp22_pink", "rzb_dcs:sp22_purple", "rzb_dcs:sp22_red", "rzb_dcs:sp22_salmon"]); // rose vase
|
|
registerVariants(["rzb_dcs:sp25_pink", "rzb_dcs:sp25_red"]); // valentine card
|
|
registerVariants(["rzb_dcs:sp21_white", "rzb_dcs:sp21_yellow", "rzb_dcs:sp21_pink", "rzb_dcs:sp21_red"]); // potted cherry branch
|
|
registerVariants(["rzb_dcs:sp12_silver", "rzb_dcs:sp12_gold", "rzb_dcs:sp12_rosegold"]); // engagement ring (metals natural order)
|
|
registerVariants(["rzb_dcs:sp11_yellow", "rzb_dcs:sp11_pink", "rzb_dcs:sp11_white"]); // easter basket
|
|
registerVariants(["rzb_dcs:sp26_tulips", "rzb_dcs:sp26_flowers1", "rzb_dcs:sp26_flowers2"]); // watering can (flower types natural order)
|
|
registerVariants(["rzb_dcs:sp27_plain", "rzb_dcs:sp27_spring"]); // welcome mat (styles natural order)
|
|
registerVariants(["rzb_dcs:sp37_white", "rzb_dcs:sp37_red"]); // spider lily bouquet
|
|
registerVariants(["rzb_dcs:sp39_yellow", "rzb_dcs:sp39_pink", "rzb_dcs:sp39_purple", "rzb_dcs:sp39_blue", "rzb_dcs:sp39_green"]); // spring armchair (canonical cycle order)
|
|
registerVariants(["rzb_dcs:sp40_yellow", "rzb_dcs:sp40_pink", "rzb_dcs:sp40_purple", "rzb_dcs:sp40_blue", "rzb_dcs:sp40_green"]); // spring couch left
|
|
registerVariants(["rzb_dcs:sp41_yellow", "rzb_dcs:sp41_pink", "rzb_dcs:sp41_purple", "rzb_dcs:sp41_blue", "rzb_dcs:sp41_green"]); // spring couch middle
|
|
registerVariants(["rzb_dcs:sp42_yellow", "rzb_dcs:sp42_pink", "rzb_dcs:sp42_purple", "rzb_dcs:sp42_blue", "rzb_dcs:sp42_green"]); // spring couch right
|
|
registerVariants(["rzb_dcs:su08_yellow", "rzb_dcs:su08_green"]); // bamboo armchair
|
|
registerVariants(["rzb_dcs:su09_yellow", "rzb_dcs:su09_green"]); // bamboo couch left
|
|
registerVariants(["rzb_dcs:su10_yellow", "rzb_dcs:su10_green"]); // bamboo couch middle
|
|
registerVariants(["rzb_dcs:su11_yellow", "rzb_dcs:su11_green"]); // bamboo couch right
|
|
registerVariants(["rzb_dcs:su12_yellow", "rzb_dcs:su12_green"]); // bamboo side table
|
|
registerVariants(["rzb_dcs:su13_yellow", "rzb_dcs:su13_green"]); // bamboo torch
|
|
registerVariants(["rzb_dcs:su15_yellow", "rzb_dcs:su15_green"]); // bamboo coffee table round
|
|
registerVariants(["rzb_dcs:su16_yellow", "rzb_dcs:su16_green"]); // bamboo coffee table square
|
|
registerVariants(["rzb_dcs:su17_yellow", "rzb_dcs:su17_green"]); // bamboo chair
|
|
registerVariants(["rzb_dcs:su37_yellow", "rzb_dcs:su37_green"]); // potted bamboo
|
|
registerVariants(["rzb_dcs:sp44_blue_and_purple", "rzb_dcs:sp44_pink_and_green"]); // candle lanterns (spring, 3-frame flipbook)
|
|
registerVariants(["rzb_dcs:wi49_blue", "rzb_dcs:wi49_green", "rzb_dcs:wi49_red", "rzb_dcs:wi49_white"]); // candle holder / advent candlestick (winter, 3-frame flipbook)
|
|
registerVariants(["rzb_dcs:sp45", "rzb_dcs:sp45_rainbow"]); // wind chime 2 (spring) OFF-block form; brushing the animated entity recolours via toggles.js
|
|
// rose vine wall (spring) 3 shape pieces for building vine chains, each brush-cyclable through its 11 colours
|
|
registerVariants(["rzb_dcs:sp47_red", "rzb_dcs:sp47_pink", "rzb_dcs:sp47_pink_alt", "rzb_dcs:sp47_orange", "rzb_dcs:sp47_yellow", "rzb_dcs:sp47_yellow_alt", "rzb_dcs:sp47_green", "rzb_dcs:sp47_blue", "rzb_dcs:sp47_purple", "rzb_dcs:sp47_white", "rzb_dcs:sp47_black"]); // middle
|
|
registerVariants(["rzb_dcs:sp48_red", "rzb_dcs:sp48_pink", "rzb_dcs:sp48_pink_alt", "rzb_dcs:sp48_orange", "rzb_dcs:sp48_yellow", "rzb_dcs:sp48_yellow_alt", "rzb_dcs:sp48_green", "rzb_dcs:sp48_blue", "rzb_dcs:sp48_purple", "rzb_dcs:sp48_white", "rzb_dcs:sp48_black"]); // diagonal left
|
|
registerVariants(["rzb_dcs:sp49_red", "rzb_dcs:sp49_pink", "rzb_dcs:sp49_pink_alt", "rzb_dcs:sp49_orange", "rzb_dcs:sp49_yellow", "rzb_dcs:sp49_yellow_alt", "rzb_dcs:sp49_green", "rzb_dcs:sp49_blue", "rzb_dcs:sp49_purple", "rzb_dcs:sp49_white", "rzb_dcs:sp49_black"]); // diagonal right
|
|
registerVariants(["rzb_dcs:su22_black", "rzb_dcs:su22_white", "rzb_dcs:su22_orange", "rzb_dcs:su22_magenta", "rzb_dcs:su22_light_blue", "rzb_dcs:su22_yellow", "rzb_dcs:su22_lime", "rzb_dcs:su22_pink", "rzb_dcs:su22_gray", "rzb_dcs:su22_light_gray", "rzb_dcs:su22_cyan", "rzb_dcs:su22_purple", "rzb_dcs:su22_blue", "rzb_dcs:su22_green", "rzb_dcs:su22_red"]); // beach stool
|
|
registerVariants(["rzb_dcs:su23_orange", "rzb_dcs:su23_magenta", "rzb_dcs:su23_blue", "rzb_dcs:su23_green", "rzb_dcs:su23_red"]); // camping chair
|
|
registerVariants(["rzb_dcs:su35_black", "rzb_dcs:su35_white", "rzb_dcs:su35_orange", "rzb_dcs:su35_magenta", "rzb_dcs:su35_light_blue", "rzb_dcs:su35_yellow", "rzb_dcs:su35_lime", "rzb_dcs:su35_pink", "rzb_dcs:su35_gray", "rzb_dcs:su35_light_gray", "rzb_dcs:su35_cyan", "rzb_dcs:su35_purple", "rzb_dcs:su35_blue", "rzb_dcs:su35_green", "rzb_dcs:su35_red"]); // beach chair
|
|
|
|
// --- Winter presents (wi30-33) + poinsettia (wi29) + present trios (wi34/35): gift boxes; brush cycles the colour ---
|
|
const PRESENT_12 = ["white", "orange", "magenta", "light_blue", "yellow", "lime", "pink", "cyan", "purple", "blue", "green", "red"]; // DecoCraft canonical order
|
|
registerVariants(["rzb_dcs:wi29_white", "rzb_dcs:wi29_pink", "rzb_dcs:wi29_red"]); // poinsettia
|
|
registerVariants(PRESENT_12.map((c) => "rzb_dcs:wi30_" + c)); // present
|
|
registerVariants(PRESENT_12.map((c) => "rzb_dcs:wi31_" + c)); // present long
|
|
registerVariants(PRESENT_12.map((c) => "rzb_dcs:wi32_" + c)); // present round
|
|
registerVariants(PRESENT_12.map((c) => "rzb_dcs:wi33_" + c)); // present small
|
|
registerVariants([1, 2, 3, 4, 5].map((n) => "rzb_dcs:wi34_" + n)); // present trio 1 (numbered arrangements)
|
|
registerVariants([6, 7, 8, 9, 10, 11].map((n) => "rzb_dcs:wi35_" + n)); // present trio 2
|
|
registerVariants(["rzb_dcs:wi38_rainbow", "rzb_dcs:wi38_white", "rzb_dcs:wi38_color"]); // string light stars
|
|
registerVariants(["rzb_dcs:wi24", "rzb_dcs:wi25"]); // wreath 2 <-> wreath 3
|
|
registerVariants(["rzb_dcs:wi26", "rzb_dcs:wi27"]); // wreath 4 <-> wreath 5
|
|
registerVariants(["rzb_dcs:wi39_blue", "rzb_dcs:wi39_green", "rzb_dcs:wi39_red"]); // stocking 1
|
|
registerVariants(["rzb_dcs:wi40_blue", "rzb_dcs:wi40_green", "rzb_dcs:wi40_red"]); // stocking 2
|
|
registerVariants(["rzb_dcs:wi45_blue", "rzb_dcs:wi45_green", "rzb_dcs:wi45_red"]); // winter armchair
|
|
registerVariants(["rzb_dcs:wi46_blue", "rzb_dcs:wi46_green", "rzb_dcs:wi46_red"]); // winter couch left
|
|
registerVariants(["rzb_dcs:wi47_blue", "rzb_dcs:wi47_green", "rzb_dcs:wi47_red"]); // winter couch middle
|
|
registerVariants(["rzb_dcs:wi48_blue", "rzb_dcs:wi48_green", "rzb_dcs:wi48_red"]); // winter couch right
|
|
// --- Fall (fa) ---
|
|
registerVariants(["rzb_dcs:fa03_ghost", "rzb_dcs:fa03_pumpkin", "rzb_dcs:fa03_purple", "rzb_dcs:fa03_spider", "rzb_dcs:fa03_witch"]); // candy bag (5 designs)
|
|
registerVariants(["rzb_dcs:fa07", "rzb_dcs:fa07_nuts", "rzb_dcs:fa07_sludge", "rzb_dcs:fa07_sprinkles"]); // caramel apples
|
|
registerVariants(["rzb_dcs:fa09_bone", "rzb_dcs:fa09_candy_corn", "rzb_dcs:fa09_eye", "rzb_dcs:fa09_gravestone", "rzb_dcs:fa09_witch"]); // halloween cupcakes
|
|
registerVariants(["rzb_dcs:fa23", "rzb_dcs:fa23_b"]); // web 2 (a/b)
|
|
registerVariants(["rzb_dcs:fa30_black", "rzb_dcs:fa30_white", "rzb_dcs:fa30_orange", "rzb_dcs:fa30_magenta", "rzb_dcs:fa30_light_blue", "rzb_dcs:fa30_yellow", "rzb_dcs:fa30_lime", "rzb_dcs:fa30_pink", "rzb_dcs:fa30_gray", "rzb_dcs:fa30_light_gray", "rzb_dcs:fa30_cyan", "rzb_dcs:fa30_purple", "rzb_dcs:fa30_blue", "rzb_dcs:fa30_brown", "rzb_dcs:fa30_green", "rzb_dcs:fa30_red"]); // papel picado (16 colors)
|
|
registerVariants(["rzb_dcs:fa41_brown", "rzb_dcs:fa41_orange", "rzb_dcs:fa41_green", "rzb_dcs:fa41_white"]); // fall armchair
|
|
registerVariants(["rzb_dcs:fa42_brown", "rzb_dcs:fa42_orange", "rzb_dcs:fa42_green", "rzb_dcs:fa42_white"]); // fall couch left
|
|
registerVariants(["rzb_dcs:fa43_brown", "rzb_dcs:fa43_orange", "rzb_dcs:fa43_green", "rzb_dcs:fa43_white"]); // fall couch middle
|
|
registerVariants(["rzb_dcs:fa44_brown", "rzb_dcs:fa44_orange", "rzb_dcs:fa44_green", "rzb_dcs:fa44_white"]); // fall couch right
|
|
// Paper lanterns (pl_*): 3 brush cycles matching the season split (solids share the plain geo; themed share the tassel geo).
|
|
registerVariants(["rzb_dcs:pl_black", "rzb_dcs:pl_white", "rzb_dcs:pl_orange", "rzb_dcs:pl_magenta", "rzb_dcs:pl_light_blue", "rzb_dcs:pl_yellow", "rzb_dcs:pl_lime", "rzb_dcs:pl_pink", "rzb_dcs:pl_gray", "rzb_dcs:pl_cyan", "rzb_dcs:pl_purple", "rzb_dcs:pl_blue", "rzb_dcs:pl_green", "rzb_dcs:pl_red", "rzb_dcs:pl_cream", "rzb_dcs:pl_lavender", "rzb_dcs:pl_light_yellow", "rzb_dcs:pl_mint"]); // 18 solid colors (Summer)
|
|
registerVariants(["rzb_dcs:pl_bats", "rzb_dcs:pl_ghost", "rzb_dcs:pl_pumpkin", "rzb_dcs:pl_skeleton"]); // themed (Fall)
|
|
registerVariants(["rzb_dcs:pl_cherry_blossom", "rzb_dcs:pl_chinese_new_year"]); // themed (Spring)
|
|
// --- Balloons (bl): separate regular/pastel cycles per type (single balloons -> Summer, hearts -> Spring). ---
|
|
registerVariants(["rzb_dcs:bl_white", "rzb_dcs:bl_orange", "rzb_dcs:bl_yellow", "rzb_dcs:bl_pink", "rzb_dcs:bl_cyan", "rzb_dcs:bl_purple", "rzb_dcs:bl_blue", "rzb_dcs:bl_green", "rzb_dcs:bl_red", "rzb_dcs:bl_rainbow"]); // balloons (regular)
|
|
registerVariants(["rzb_dcs:bl_p_orange", "rzb_dcs:bl_p_yellow", "rzb_dcs:bl_p_lime", "rzb_dcs:bl_p_pink", "rzb_dcs:bl_p_cyan", "rzb_dcs:bl_p_purple", "rzb_dcs:bl_p_blue", "rzb_dcs:bl_p_green", "rzb_dcs:bl_p_red"]); // balloons (pastel)
|
|
registerVariants(["rzb_dcs:bl_heart_white", "rzb_dcs:bl_heart_orange", "rzb_dcs:bl_heart_yellow", "rzb_dcs:bl_heart_pink", "rzb_dcs:bl_heart_cyan", "rzb_dcs:bl_heart_purple", "rzb_dcs:bl_heart_blue", "rzb_dcs:bl_heart_green", "rzb_dcs:bl_heart_red", "rzb_dcs:bl_heart_berry", "rzb_dcs:bl_heart_rainbow"]); // heart balloons (regular)
|
|
registerVariants(["rzb_dcs:bl_heart_p_orange", "rzb_dcs:bl_heart_p_yellow", "rzb_dcs:bl_heart_p_lime", "rzb_dcs:bl_heart_p_pink", "rzb_dcs:bl_heart_p_cyan", "rzb_dcs:bl_heart_p_purple", "rzb_dcs:bl_heart_p_blue", "rzb_dcs:bl_heart_p_green", "rzb_dcs:bl_heart_p_red"]); // heart balloons (pastel)
|
|
// (balloons_small is a 2-cell multiblock -> brush-cycled via a both-cells branch in brush.js, NOT registerVariants.)
|
|
// jack 'o lantern carvings two groups so brushing keeps the on/off state (off cycles off, lit cycles lit); facing preserved
|
|
registerVariants(["rzb_dcs:fa33_1", "rzb_dcs:fa33_2", "rzb_dcs:fa33_3", "rzb_dcs:fa33_4"]); // carvings (off)
|
|
registerVariants(["rzb_dcs:fa33_1_on", "rzb_dcs:fa33_2_on", "rzb_dcs:fa33_3_on", "rzb_dcs:fa33_4_on"]); // carvings (lit)
|