Skip to content

October 25, 2025

Goals

  • Create TaskList.md.
  • Refactor Signal Spawner.

What I Worked On

  • Created Task List.md
  • Removed ComponentLoader out of Unrefactored folder and slapped an XML comment on it
  • Removed ComponentMovementBase and fixed up Kirby references to movement events
  • Changed the names of events so it made more sense
  • Ended up overhauling movement!
    • Fixed bug where you could move two things at a time
    • Fixed bug where you could move non-movable components
    • The movement feels so much nicer now in terms of responsiveness
  • Emitter can now fire, level's can be simulated or stopped.
  • Created a system sequence diagram on the index page of how a level simulation is started and stopped.

Roadblocks / Notes

  • Just going to start off with writing all the function names on paper that relate to signal spawning. Then relate to which components call which, just diagram this on paper for now and then we will figure out how to refactor this slowly.
  • Signal should not be in charge of it's own destruction, unless it goes out of bounds from the renderer.
    • Remove references to grid manager
  • ComponentMovementBase needs to be nuked. For some reason Kirby references it?

Event Debugger Window

  • Did some investigation! We never even needed this instantiating signal spawning list. The code is redundant even from a build 2 years ago lmfao. This is really great
  • Instead of 'Refactor Signal Spawner' let's just work on getting the receiver to a good state, with internal functions and then we can extract out potential code duplication later if we wish

DISCOVERIES!

  • Signal instantiation list was used to ensure all signals are destroyed before actually stopping the level, that's why there is ForceStop and Stop
  • Going to need that runtimeset of signa0ls after all
  • Signal destruction will fire event to stop the level
  • Signal graceful destruction won't
  • IMO signals should only be destroyed when they are received by receiver or when needed.
  • We're going to work on getting receiver and emitter to work without using base functions

LevelToggleRequested event will run this StopLevel or ForceStart whereas signal destruction will call StopLevelIfNoSignals

SHOULD RENAME EVERYTHING TO REQUESTED!

When I come back from lunch I'm going to create the LevelToggleRequested event, create these methods i outlined 2 lines above this text. Create the runtimeset of signals. and work on getting emitter/receiver to work with this new info.

Next Session Goals

  • Need to handle what happens when signal crashes (haven't done that yet)
  • Do the revolver and splitter.