Skip to content
Maddie edited this page Jan 4, 2024 · 7 revisions

Celeste uses the Monocle Engine 🔗, an open-source game engine developed by Matt Thorson. For information on how the engine works, especially in relation to Celeste, see the Monocle Reference.

This page is intended to be a reference for some of the classes and interfaces that are provided by Celeste, but that are not sufficiently self-explanatory/self-documenting.
These classes are not required to be used in a code mod, but can help a mod to fit the look and feel of the base game. Items on this page are in no particular order, however they are loosely arranged into categories.
Classes that require a more in-depth explanation will be on their own pages, and may not be mentioned here at all. Be sure to check the rest of the wiki for more information.

Reference

Drawing Text

ActiveFont

The ActiveFont class provides convenient access to the currently active PixelFont 🔗.

WaterInteraction

Adding a WaterInteraction component to an entity will cause water to react its movement with sounds and particles. The bounds rectangle is relative to the position of the entity.

StaticMover

Adding a StaticMover component to an entity will allow it to "attatch" itself to nearby platforms, and move with them.

WindMover

Adding a WindMover component to an entity will cause the move delegate to be updated with a Vector2 based on the current direction of the wind.

TalkComponent

The TalkComponent adds an element to the entity, which triggers the onTalk action when interacted with.

Tags

The static Tags class provides a number of BitTag 🔗 constants which are used to determine the how an entity is updated and rendered.
They are also used in some checks such as Entity.CollideCheck.

  • PauseUpdate: The entity will still update if the game is paused.
  • FrozenUpdate: The entity will still update while the game is "frozen", such as when hearts, cassettes, or strawberry seeds are collected.
  • TransitionUpdate: The entity will still update while the current level is transitioning into the next.
  • HUD: This entity will be rendered by the HudRenderer, a HiresRenderer that renders content on top of gameplay.
  • Persistent: The entity will not be removed when transitioning to the next level.
  • Global: The entity will not be removed when transitioning to the next level, or when the level is unloaded.

Important

Only one of PauseUpdate and FrozenUpdate should be applied to an entity at a time.

Tags can be added or removed using Entity.AddTag and Entity.RemoveTag, respectively. To check whether a tag or set of tags has been applied to an entity, use Entity.TagCheck. To check whether only a tag or set of tags has been applied to an entity, use Entity.TagFullCheck.

TagsExt

Contains BitTag 🔗 constants that have been added by Everest.

  • SubHUD: This entity will be rendered by the (Everest added)SubHudRenderer, which renders content on top of gameplay, but below the HudRenderer.
Clone this wiki locally