Skip to content

October 26, 2025

Goals

  • Get the emitter and revolver to work

What I Worked On

  • Revolver works again
  • Splitter works again
  • All the code related to Signal Destruction is now in Signal.cs
  • All the trigger events are now in respective base classes instead of PuzzleComponent.cs

Roadblocks / Notes

  • Still need to get receiver to work and level winning
  • Today I will just get the emitter/revolver to work so i can remove signal spawning from the PuzzleComponent.cs
  • Still need to refactor the powered component setup and figure out how that works. Maybe will look at it later today just on paper.

OnSignalReceive is actually a good implementation.

  • Not every component receives a signal!
  • Not every component is powered!
  • Not every component has button events!

So why should all the code be shared between these components???

So the plan should be to move all the trigger code to it's own component

protected virtual void OnTriggerEnter(Collider collision)  
{  
    signalCollider = collision;  
    if (collision.gameObject.CompareTag("Signal")) OnSignalReceive(collision.gameObject);  
}  

protected virtual void OnTriggerExit(Collider other)  
{  
    if (other.CompareTag("Signal"))  
        ignoringSignal = false;  
}
These trigger functions only apply to Portal, Receiver, Revolver, Splitter

Problem is some components may want to override this behaviour?

Composition is complicated for this because each component may want to modify how the trigger events are processed (obviously )

Level 5,1 is good for testing splitter

When I come back from lunch Extract out these InstantiateSignalFromCollider methods Explore these 'ignoring' things Moving signal should be inside of signal class?

Options 1. Disable collisions


Next Session Goals

  • Fix all the errors (woopsies!)
  • Overhaul the powering system
  • Overhaul the button systems
    • Sleep on this!?
  • Move level index easily