28 Commits over 62 Days - 0.02cph!
Add a warning for when ticks miss their deadline and run without budgeting
Fix context menu actions getting duplicated sometimes
Make sure ECS ticks run according to the set tick rate, slowing down the game if required
Make sure StringBuffer grows to at least the required length
Allow StringBuffer to replace with null
StatManipulator pooling fixes
Getting rid of some allocations:
- StatManipulators were never being returned to the pool
- BuildingView always allocating for a closure that isn't used 99% of the time
- Add StringBuffer as an alternative to StringBuilder that doesn't shrink
Cache savegame metadata so it doesn't reload more than it needs to
Never skip active module scoring so units don't randomly switch tasks
Add some checks back that we probably need
Bring some changes over from tick_freq
Fix PooledList race condition and a duplicate key exception when telling a unit to build
Fix sometimes not finding the item to remove in the known entity list
Remove Knowledge.SortEntityData
Tick some more AI modules a bit slower
Tick agent ECS every frame with no budget
Increased tick rate, decreased frequency of some modules
Experiment with ticking AI modules at different rates
Removed a smaller allocation PooledList was doing that isn't relevant anymore
Make PooledList<T> use FP.System's pooling so it wont allocate as much
Make sure FoW map is set when initializing drawer
Moved the campfire light source down a bit so it stays under the spit
Fix some things that blocked loading savegames
Zero allocation fog of war
Specialized fog of war for full circles so it's not as slow
AOT serialization and other changes for IL2CPP