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.

49 lines
2.7 KiB
JavaScript

// Decoseasons; behavior script entry point.
// This file only wires the modules together; all logic lives under core/ and features/.
// core/ shared foundation, imported by everything, no back-dependencies
// mc.js @minecraft/server reexports + isCreative/getDir/safeGetBlock
// grid.js the ONE rotation convention (RIGHT/FWD), facing tables, water/ground probes
// fx.js undoPlace, break particles, summonDisplay, brush feedback, debounce
// variants.js the color-brush variant registry
// events.js central place/break dispatch (one subscription each, fanned out)
// multiblock.js defineGridMultiblock(); the shared validate/place/break machinery
//
// features/ one concern each; import from core/ and (one-directionally) each other
// mb_grid grid & canopy multiblocks as data (fc, ic, at, tent, lg, um, bu, bt)
// mb_trees colour state trees (ct, lt)
// mb_pairs partner / vertical / 2x2 multiblocks (fairy, swing, rope, tw, lc, br, bo, snowman, ornament, tables, balloon)
// display place a block -> spawn an entity display pieces (koinobori, pinwheels, mason jars)
// containers presents: place -> spawn a container entity, break -> drop its contents
// decor standalone brush recolorable decoration blocks
// seating sit configuration
// rideables block <-> rideable-entity vehicles (tube, lounger, bike, surfboard, basket bike)
// toggles block <-> animated-entity toggles (buoy, sprinkler, spinner birds)
// interact right click lids/toggles + the interact fall through dispatcher
// brush the Color Brush recolour
// maintenance pick block anchor redirect + firepit embers
// bounce springy blocks that launch a player who lands on them
// decostation decobench + decomposer economy backend (scoreboards, scriptevent router, block/deco to materials)
// stations place the decobench/decomposer station entities from a placer item (UI/panel = coworker's to build)
// break_particle custom block break particle
//
// To add a prop: plain recolorable block -> one line in decor.js; rotating/canopy multiblock -> one defineGridMultiblock() in mb_grid.js; anything bespoke -> its own features/ module.
import "./features/mb_grid.js";
import "./features/mb_trees.js";
import "./features/mb_pairs.js";
import "./features/display.js";
import "./features/containers.js";
import "./features/decor.js";
import "./features/seating.js";
import "./features/rideables.js";
import "./features/toggles.js";
import "./features/interact.js";
import "./features/brush.js";
import "./features/maintenance.js";
import "./features/bounce.js";
import "./features/decostation.js";
import "./features/stations.js";
import "./features/break_particle.js";