Skip to content

Fix Inconsistent Previews Between Gameplay and Design - #306

Open
menvae wants to merge 1 commit into
InventiveRhythm:mainfrom
menvae:design-preview-fix
Open

Fix Inconsistent Previews Between Gameplay and Design#306
menvae wants to merge 1 commit into
InventiveRhythm:mainfrom
menvae:design-preview-fix

Conversation

@menvae

@menvae menvae commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Changes

  • fixed missing easings for DesignShaderHandler
  • fixed loops not in working design
  • fixed shakes not working in design
  • fixed pulse not working properly in design
  • fixed possible zero division in DesignShaderHandler (progress calculation)

Shake wasn't seekable because RemoveCompletedTransforms is true by default for whatever the shake target was. We now use a proxy for the shake that doesn't remove its completed transforms.

Loops weren't working correctly for some events because some events need custom handlers/containers for them and previously we would pass map.MapEvents but now we actually pass the full compiled events generated from loops.

Pulse wasn't really Rebuilt properly because it needed to be reset.

Also Decoupled EditorMap from DesignShaderHandler because honestly that feels more appropriate (also EditorMap not needed as we just pass the shader events directly now).

Added registerListeners helper method just cuz it feels cleaner since we only use one delegate for all changes for a specific type.

We now cache event compilation so you should get compiled events from DesignContainer.getCompiledEvents, Though we invalidate it on every change so it might not look like much but it's a pretty meaningful change cuz from a single change, multiple rebuild methods (shaders, camera, pulse) each used to call DesignContainer.getCompiledEvents independently meaning one event change could trigger 3 or 4 full compiles instead of one. The cache just means all of them now share a single compiled result per change instead of redoing the same work repeatedly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant