* lord save me
* UI/ChatBox: Use the new `defStyle` param for `RenderMarkup`
The previous iteration didn't work because `AddMessage` can't inherit
its color from the PushColor (since we're not doing actual tag stacks
anymore).
* rebase touchup
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
- The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
- This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
- This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
- This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes#4892 and fixes#4857
Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀
* Broadphase refactor (content)
* Shuttle jank
* Fixes
* Testing jank
* Features and things
* Balance stuffsies
* AHHHHHHHHHHHHHHHH
* Mass and stuff working
* Fix drops
* Another balance pass
* Balance AGEN
* Add in stuff for rotating shuttles for debugging
* Nothing to see here
* Testbed stuffsies
* Fix some tests
* Fixen test
* Try fixing map
* Shuttle movement balance pass
* lasaggne
* Basic Helmsman console working
* Slight docking cleanup
* Helmsman requires power
* Basic shuttle test
* Stuff
* Fix computations
* Add shuttle console to saltern
* Rename helmsman to shuttleconsole
* Final stretch
* More tweaks
* Fix piloting prediction for now.
* Content side new physics structure
* BroadPhase outline done
* But we need to fix WorldAABB
* Fix static pvs AABB
* Fix import
* Rando fixes
* B is for balloon
* Change human mob hitbox to circle
* Decent movement
* Start adding friction to player controller
I think it's the best way to go about it to keep other objects somewhat consistent for physics.
* This baby can fit so many physics bugs in it.
* Slight mob mover optimisations.
* Player mover kinda works okay.
* Beginnings of testbed
* More testbed
* Circlestack bed
* Namespaces
* BB fixes
* Pull WorldAABB
* Joint pulling
* Semi-decent movement I guess.
* Pulling better
* Bullet controller + old movement
* im too dumb for this shit
* Use kinematic mob controller again
It's probably for the best TBH
* Stashed shitcode
* Remove SlipController
* In which movement code is entirely refactored
* Singularity fix
* Fix ApplyLinearImpulse
* MoveRelay fix
* Fix door collisions
* Disable subfloor collisions
Saves on broadphase a fair bit
* Re-implement ClimbController
* Zumzum's pressure
* Laggy item throwing
* Minor atmos change
* Some caching
* Optimise controllers
* Optimise CollideWith to hell and back
* Re-do throwing and tile friction
* Landing too
* Optimise controllers
* Move CCVars and other stuff swept is beautiful
* Cleanup a bunch of controllers
* Fix shooting and high pressure movement controller
* Flashing improvements
* Stuff and things
* Combat collisions
* Combat mode collisions
* Pulling distance joint again
* Cleanup physics interfaces
* More like scuffedularity
* Shit's fucked
* Haha tests go green
* Bigmoneycrab
* Fix dupe pulling
* Zumzum's based fix
* Don't run tile friction for non-predicted bodies
* Experimental pulling improvement
* Everything's a poly now
* Optimise AI region debugging a bit
Could still be better but should improve default performance a LOT
* Mover no updater
* Crazy kinematic body idea
* Good collisions
* KinematicController
* Fix aghost
* Throwing refactor
* Pushing cleanup
* Fix throwing and footstep sounds
* Frametime in ICollideBehavior
* Fix stuff
* Actually fix weightlessness
* Optimise collision behaviors a lot
* Make open lockers still collide with walls
* powwweeerrrrr
* Merge master proper
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* Ch ch ch changesss
* SHIP IT
* Fix #if DEBUG
* Fix vaulting and item locker collision
* Fix throwing
* Editing yaml by hand what can go wrong
* on
* Last yaml fixes
* Okay now it's fixed
* Linter
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>