Free Obstacle Placement#43
Merged
officialMECH merged 6 commits intostaging/maintenancefrom Mar 14, 2026
Merged
Conversation
Merged
officialMECH
added a commit
that referenced
this pull request
Mar 26, 2026
* supply fallback for unsupported color schemes * fix initial state resolution for undoable reducers * improve faulty logic for clipboard reducer * better handling for custom color schemes * data integrity fixes for file service * fix sync issues for audio service * ensure url is source of truth for route context * UI Maintenance (#41) * extrapolate color palette types from styled system * make list collection compositions more flexible * break up common atomic ui patterns into hooks * clean up configs for styled system * move data attributes to aria labels * add new patterns for styled wrapper components * move recipes to styled system preset * add escape hatch for polymorphic components * improve atomic components for new rendering patterns * new prompt api for better portability * refactor mdx components * fix render logic for polymorphic components * upgrade compositions for atomic ui components * better apis for local file compositions * relocate shortcut components to more intuitive scopes * make app layout exports more consistent * simplify composition for editor action panel * compose new layouts for editor ui templates * small fixes for atomic ui components * refactors for shared component hooks * organize event grid template into composable layout * organize app forms and fix related components * fix bindings for field components * small fixes for icon components * organize (and fix) docs components * clean up atomic scene components * move logic for track mover to dedicated hook * break off light spring into a standalone hook * new composable layout for beat markers * new composable layout for beatmap visualization * improve prop forwarding for note components * refactor compositions for environment templates * more clean up for app/scene components * update context and meta tags for nested routes * various fixes for style consistency * update ui dependencies * add tanstack devtools suite * fixes for regressions with deps updates * refactor setup references to lazy singletons * expose setup accessors to components via context * move rest of basic event logic to template * move backup worker to services (since it's not really a worker) * fold sfx service into audio service * fix visibility flow for action panel * refactor event grid logic to state machine * rework logic/state for placement grid * vendor new serialization factory api * improve types and helpers for grid object visualization * decouple track resolution logic for basic events * share logic across beatmap entity slices * align packaging helpers with serialization factory * fix visualization behavior for light effects * improve support for basic transition events * fix closures for event selection box controls * unify references for basic event entity adapter * fix theme resolution for docs site * fix direction resolver logic for placement grid * move song accessors back into entity adapter * clean up logic for beatmap filestore updates * various fixes for audio middleware and related actions * decouple map conversion logic from filestore * add standalone map converter * more bugfixes for ui regressions * add support for inline note rotations in preview * many improvements to color representation logic * ensure correct ids for composed data fields * new layout for details page * add support for modifying vanilla color scheme overrides * allow hex color entry for color picker * improve laser rotation algorithm * various fixes for navigation logic * small improvements for app forms and dialogs * fix regression for jump preview calculation * add support for track visibility filters * Color Boost Events (#42) * add basic support for boost events * apply color boost to light state resolution * integrate color boost in event preview * integrate gradients for event color toggle groups * add docs + changeset * make timeline more deterministic for background boxes * last minute bugfixes for critical oversights + test cases * Free Obstacle Placement (#43) * split object placement modes by entity type * support for modern obstacle placement controls * add new fields for custom grid offsets * support for visual obstacle placement controls * add docs + changeset * add visual demo of free obstacle placement for user manual * improve closures for beatmap select groups * drop alpha support for hex color conversions * limit create map form to required fields * add audio preview component * improvements to song action forms * ensure prompts disable background interactions * migrate to upstream bsmap changes * integrate new track definition logic and references * improve formatting for note jump stats * don't defer visualizer updates to prevent desync * prefill combobox when custom values are used * prevent flex shrink for file upload image previews * prefill base environment for v4 map imports * better closures and fallbacks for song creation flows * last batch of refinements for app forms * apply changesets for upcoming release * update docs for latest changeset * prevent numeric fields from invalidating decimals * more file upload improvements for song workflows * add manual override for duplicate song resolution * clean up type definitions and fix stale references * fix raycast target regressions for placement grid * expand test suite for various helper functions * more fixes from integration tests & clean up * more improvements for vanilla color schemes * pre-release clean up * upgrade dependencies and workflows to latest targets * break off audio/playback logic into dedicated middleware * integrate basic support for vanilla bpm changes * apply proper timescale for bookmarks * normalize timescale for jump measurements in preview view * final batch of updates before release * last minute bugfixes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements new placement controls for obstacles to better support the "free" obstacle type. Three separate placement modes are available based on implementations in other editors, and other logic around placement modes and grid calculation was refactored to better accomodate this feature.
Warning
While serialization is not quite working as intended as of when this PR was filed, many fixes have already landed upstream within the
bsmapengine to address backwards compatibility, and those fixes will be rolled into the targeted staging branch before we cut the next release.Notable Changes
IGriddata model has been updated to support horizontal/vertical offsets.