branchrust_reboot/main/hackweek_iorewritecancel

61 Commits over 31 Days - 0.08cph!

20 Days Ago
Converted ceiling light, smart switch, fuse
20 Days Ago
Cleanup, remove legacy IO code of already converted entities
20 Days Ago
Converted NeonSign to the new IO system
21 Days Ago
Removed the legacy electricity IO queue
21 Days Ago
merge from main
23 Days Ago
Lazy create the IOCircuitSystem when registering the first io entity Converted computer station, digital clock and command block
23 Days Ago
merge from main
30 Days Ago
PressButton merge, compile fix
30 Days Ago
merge from main
35 Days Ago
Blocker evaluator micro optims
35 Days Ago
IOCircuitSystem indentation fix
35 Days Ago
Allow root combiners to be connected to non root entities. Renamed it to 'combiner' Prevent feedback loops by discarding power from back edge wires
35 Days Ago
Some fixes, refactoring and new evaluators. Cache consumption amount at register time so we don't rely on entities anymore Fixed signs registering themselves in circuits Started removing old IO code to IO entities code
36 Days Ago
Reduced the amount of flags OR AND and XOR switches are setting
36 Days Ago
Reduced the amount of TryGetComponentRecord calls
36 Days Ago
Circuit merge do not set the whole circuit as dirty + eval pass micro optims
37 Days Ago
No allocations when running the flood fill when rebuilding circuits
37 Days Ago
Updated all SimpleLight prefabs to use the HasPower flag instead of On
37 Days Ago
Simple light don't switch the ON flag anymore, we can just use HasPower and save a setflag when turning a light on/off (they're batched but that saves some overhead)
37 Days Ago
Added a max flag flip per tick per circuit budget too (too many flag changes can stall the client)
37 Days Ago
Circuit budgeting: all circuits share a 0.25ms budget per frame to evaluate. When the budget is depleted mid circuit, we save where we stopped and continue later. The starting circuit is never the same so a single circuit can't eat the whole budget and clog everything Also moved the drain pass to the 1hz battery tick, it doesnt have to run on every tick
37 Days Ago
Optimised the evaluation pass. we now starts from the dirty components specifically instead of evaluating the entire circuit from start to finish When evaluating, if a component output didnt change, we stop there
37 Days Ago
switch out batched packet send storage for HashSet to avoid multiple sends from an entity within a circuit tick
39 Days Ago
Cleanup
39 Days Ago
Ceiling lights just use the HasPower flag instead of On
39 Days Ago
fixed wrong conditional
39 Days Ago
moved SendBufferedFlagChanges outside of circuit loop
39 Days Ago
More io entities using the new flag update Auto turret is not sending full network update when turned on or off
39 Days Ago
using HasSubscribers method instead of manual check
39 Days Ago
skip sending batched packets to groups with no subscribers
39 Days Ago
SimpleLight sends on/off flags through batched system
39 Days Ago
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
39 Days Ago
Forgot Circuit.cs
39 Days Ago
Split the circuit dirty flag into two: Dirty and NeedsRebuild so setting a circuit dirty doesnt trigger a rebuild every time Added rebuild timings
39 Days Ago
Moved the tick to every frame Added timings command to debug circuit perf
39 Days Ago
Codegen
39 Days Ago
Compile fixes
39 Days Ago
Bug fixes and optims, only snapshots dirty slots
39 Days Ago
Trace debug commands, logs when something happens on a circuit
40 Days Ago
Power flow debug viz
40 Days Ago
Added some mint ddraw and debug commands to help debugging circuits
40 Days Ago
merge from main
40 Days Ago
Fix battery charging issue with closed loop circuits Fixed batteries not considered as sources when building the evaluation order
40 Days Ago
merge from main
40 Days Ago
More items converted to the new io system
41 Days Ago
AND OR XOR flags fixes
41 Days Ago
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
41 Days Ago
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
41 Days Ago
Added baked config at register time Batteries are data based
41 Days Ago
Splitter evaluator