Each controllable entity should have an entity component that reports its controlled status to the Revealed Sector every X frames. They should also report when control starts and control ends.
Revealed sector should queue the reports, combine nearby location checks, and compare them against recent ones. If new checks need to be made for reveal, send them to the concealed sector.
It should also mark known concealable entities as controlled by those reports.
Each concealable entity should have an entity component that reports its concealability, based on Working and Controlled.
Maybe the two classes and both be abstract and live together in cubegrid.
Currently revealed entities will need to be marked as near revealed by the reveal reports too.
Each controllable entity should have an entity component that reports its controlled status to the Revealed Sector every X frames. They should also report when control starts and control ends.
Revealed sector should queue the reports, combine nearby location checks, and compare them against recent ones. If new checks need to be made for reveal, send them to the concealed sector. It should also mark known concealable entities as controlled by those reports.
Each concealable entity should have an entity component that reports its concealability, based on Working and Controlled.
Maybe the two classes and both be abstract and live together in cubegrid.
Currently revealed entities will need to be marked as near revealed by the reveal reports too.