Skip to content

Some fixes for Static Mover Decals#1055

Open
SilverDorian46 wants to merge 9 commits into
EverestAPI:devfrom
SilverDorian46:static-mover-decal-patch
Open

Some fixes for Static Mover Decals#1055
SilverDorian46 wants to merge 9 commits into
EverestAPI:devfrom
SilverDorian46:static-mover-decal-patch

Conversation

@SilverDorian46

@SilverDorian46 SilverDorian46 commented Jan 1, 2026

Copy link
Copy Markdown
Contributor
  • the Static Mover Decal Registry Handler now properly accepts the jumpThrus attribute.
  • the Static Mover's OnShake callback now calls OnShake of each of the Decal's solids, if it has any. this ensures that entities attached to those solids have the same visual shake as well.
  • the Static Mover's JumpThruChecker has a typo fixed: (int) X + y -> (int) Y + y
  • a new event EntityList.PostAwake has been implemented. this is called at the end of EntityList.UpdateLists(), at which point it is exchanged for null. any additions to PostAwake during its invocation will be called the next time UpdateLists() is called.
  • the Decal's Static Mover check on Awake has been delegated to the PostAwake event.
  • there is now a public getter for Decal.solids.
  • calls to Destroy-, Disable-, and EnableStaticMovers are included where appropriate.

@maddie480-bot maddie480-bot added the 1: review needed This PR needs 2 approvals to be merged (bot-managed) label Jan 1, 2026
Comment thread Celeste.Mod.mm/Patches/Monocle/EntityList.cs Outdated

@microlith57 microlith57 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still looks good!

@Wartori54 Wartori54 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of the PR looks good, just two nitpicks I'd like to argue about.

/// </summary>
public List<Entity> ToAdd => toAdd;

public event Action OnEndOfAwake;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are doing "post-awake" events, imo we should also do "pre-awake" events while we are at it.

Comment on lines +318 to +323

((patch_EntityList) (object) scene.Entities).OnEndOfAwake += () => {
if (staticMover?.Platform == null && CoreModule.Session.AttachedDecals.Contains(string.Format("{0}||{1}||{2}", Name, Position.X, Position.Y))) {
RemoveSelf();
}
};

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the use case that makes this valuable or required?

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

Labels

1: review needed This PR needs 2 approvals to be merged (bot-managed)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants