branchrust_reboot/main/hackweek_iorewritecancel
131 Commits over 92 Days - 0.06cph!
added BatchedEntityFlags packet type
- allows IOCircuitSystem to buffer entity flag changes from IOEntities and send batched packets instead of per-entity packets
- test setup with 2000 lights goes from 26ms to <2ms on the server
Split the circuit dirty flag into two: Dirty and NeedsRebuild
so setting a circuit dirty doesnt trigger a rebuild every time
Added rebuild timings
Moved the tick to every frame
Added timings command to debug circuit perf
▄▇▌▊▇▄▋▊▍█ ▆▌▄▌▅▌ ▅▉▍▌▇▉▋▅▊▍▊▋▊█▄█▋ ▌▍ ▋█▌▍█▄▄▊▌ ▍▊ █▄▌▆█ ▆▅▉▆ ▉▊▊▄ ▇▇▄▍▉█▋▄ ▅ ▌█▇▇▊█ ▋▆▌▌ ▆▍ ▉▉▌▇ ▍▋▆▆ ▊█▄▌▋▉▄▄▅ ▅█▆▊▆▆▇ ▌▅▉ ▊▋▄▊▌
Bug fixes and optims, only snapshots dirty slots
Trace debug commands, logs when something happens on a circuit
Added some mint ddraw and debug commands to help debugging circuits
Fix battery charging issue with closed loop circuits
Fixed batteries not considered as sources when building the evaluation order
More items converted to the new io system
Registered entities aren't allocating a new circuit until wired
Don't tick circuit system while loading a save, so we only rebuild everything once all the io entities and wires are registered
Converting more items to new IO system: entities are PowerConsumer by default so all lights and simple consumer work by default
Button and counter evaluators
Added baked config at register time
Batteries are data based
Root combiner distributes drain evenly on batteries connected to its inputs
Branch and blocker evaluators
Some cleanup and fixes
Batteries tick flow. Charged and depleted on the same tick
Bug fixes and refactoring
Generator, switch and light use the new IO system
Got a simple circuit working
Entity bridge first pass
Added debug commands
Drain calculation pass
New evaluators: battery and and,or,xor logic gates
Eval pass and first evaluators