* Shared/Utility: Define new FormattedMessage core types
* Shared/Utility: Move MarkupParser to a new namespace, update to new FormattedText
* Shared/Serialization: Temporary fix for FormattedMessageSerializer
* Scripting/ScriptInstanceShared: Move to new FormattedMessage.Builder
* Shared/Utility: Add a FormattedMessage loader to the .Builder
* Server/Scripting: Port SciptHost to FormattedMessage.Builder
* UserInterface/RichTextEntry: NOP out almost everything
not gonna bother fixing it until more groundwork is laid
* Shared/Utility: Expand Utility.Extensions a bit
strictly for pesonal reasons
* Client/UserInterface: Add the base TextLayout engine
* Client/Graphics: Add a Font Library manager
* Graphics/TextLayout: Finish up implementing the TextLayout engine
* Utility/FormattedMessage: Add yet another hack to keep the serializer in service
* Commands/Debug: Use FormattedMessage.Builder
* Console/Completions: Use FormattedMessage.Builder
* Utility/FormattedMessage: Add `AddMessage` methods
* Console/ScriptConsole: Use FormattedMessage.Builder
* Client/Log: Use FormattedMessage.Builder
* CustomControls/DebugConsole: Use FormattedMessage.Builder
* Controls/OutputPanel: Use FormattedMessage.Builder, NOP `Draw` pending rewrite
* Controls/RichTextLabel: Use FormattedMessage.Builder, NOP `Draw` pending rewrite
* UnitTesting: Update FormattedMessage/Markup Tests
They will NOT pass yet, but I don't care; it compiles.
* Utility/FormattedMessage: Fix some off-by-one Builder bugs
* Utility/FormattedMessage: Continue cleanup, test compliance
* Utility/FormattedMessage: Work around https://github.com/dotnet/roslyn/issues/57870
* Utility/FormattedMessage: Move ISectionable from TextLayout, implement it for FormattedMessage
* UserInterface/TextLayout: Add a `postcreate` function to set up new `TIn`s
Apparently Roslyn isn't big-brained enough to understand that a
closure of type `Func<T>` means that `var n = new(); return n;` requires
`new()` to return a `T`.
Ironically, it's significantly less cbt to add this than to convert
that big tuple in `Layout` in to a class or struct of some sort
(to initialize the `List<>`s).
* UserInterface/TextLayout: Throw if `Meta` isn't recognized
TODO warning go brrr
* Graphics/FontLibrary: Add a `DummyVariant`
* UserInterface/UITheme: Move to FontLibraries
* UserInterface/TextLayout: Move to an un-nested `ImmutableArray`
* UserInterface/RichTextEntry: Go ahead. Draw.
* Markup/Basic: Add extension & helpers for FormattedMessage.Builder
* Markup/Basic: Add `EscapeText` back in
A forgotten casualty of the great Markup separation of 2021
* Graphics/FontLibrary: Clean up bit magic, ensure that at least one font is picked
* Graphics/FontLibrary: Add diagnostics to the "no fonts" exception
* UserInterface/TextLayout: Scrap `Word`, return to `Offset`
* UserInterface/TextLayout: A whole bunch of hard-fought bugfixes
* Utility/FormattedMessage: Add a static, empty FormattedMessage
* Utility/FormattedMessage: Fix. Bugs.
* UserInterface/RichTextEntry: Bug fixin'
* UserInterface: CSS teim
* Markup/Basic: Add an optional "default" style to use
* Utility/FormattedMessage: I'm surprised I only made this mistake once.
* Log/DebugConsoleLogHandler: work around lack of a default style
* Don't generate physics contacts for non-predicted bodies
These are all just handled on the server anyway so it's a significant waste of performance on the client for busy scenes.
* Significantly optimise broadphase updates
Cache all of the broadphase data properly now and also save the cache for physics step to boot.
* Fix cross-map broadphases
* Remove unnecessary clear
* fix
* Fixes
* Numerous ray fixes
* ComponentNames are not sent over the network when components are created.
* Removed ComponentStates array from EntityState, now the state is stored directly inside the CompChange struct.
* Remove the unnecessary NetID property from ComponentState.
* Remove Component.NetworkSynchronizeExistence.
* Change GetNetComponents to return both the component and the component NetId.
* Remove public usages of the Component.NetID property.
* Adds the NetIDAttribute that can be applied to components.
* Removed Component.NetID.
* Revert changes to GetComponentState and how prediction works.
* Adds component netID automatic generation.
* Modifies ClientConsoleHost so that commands can be called before Initialize().
* Completely remove static NetIds.
* Renamed NetIDAttribute to NetworkedComponentAttribute.
* Fixing unit tests.
* Fix light pop-in
Doh
* Uniqueness
* Refactor to be less bad
* Better perf
* Fix perf problems
* Hide debug commands under preprocessor
Can't imagine anyone using this during live-game.
* CVars
* Removed SnapGridOffset, there is only center now.
* SnapGridComponent methods are now static.
* Removed SnapGridComponent.OnPositionChanged.
* Refactored static functions off SnapGridComponent to MapGrid.
Refactored away usages of SnapGridComponent.Position.
* Added Transform.Anchored for checking if an entity is a tile entity.
More refactoring for static MapGrid functions.
* Static snapgrid methods on MapGrid are no longer static.
* Removed IMapGrid.SnapSize, it is now always equal to the IMapGrid.TileSize.
* Add setter to ITransformComponent.Anchored.
Removed direct references to SnapGridComponent from content.
* Grid functions now deal with EntityUids instead of SnapGridComponents.
Began renaming public API functions from SnapGrid to Anchor.
* Add some unit tests.
* SnapGridComponent now anchors itself in startup, instead of Initialize (sending directed events in init is an error).
* Physics worlds
* Paul's a good boy
* Build working
* Ingame and not lagging to hell
* Why didn't you commit ahhhhh
* Hard collisions working
* Solver parity
* Decent broadphase work done
* BroadPhase outline done
* BroadPhase working
* waiting for pvs
* Fix static PVS AABB
* Stop static bodies from awakening
* Optimise a bunch of stuff
* Even more broadphase stuff
* I'm fucking stupid
* Optimise fixture updates
* Collision solver start
* Building
* A is for Argumentative
* Fix contact caching island flags
* Circle shapes actually workeded
* Damping
* DS2 consumables only
* Slightly more stable
* Even slightlier more stablier
* VV your heart out
* Initial joint support
* 90% of joints I just wanted to push as I'd scream if I lost progress
* JOINT PURGATORY
* Joints barely functional lmao
* Okay these joints slightly more functional
* Remove station FrictionJoint
* Also that
* Some Box2D ports
* Cleanup mass
* Edge shape
* Active contacts
* Fix active contacts
* Optimise active contacts even more
* Boxes be stacking
* I would die for smug oh my fucking god
* In which everything is fixed
* Distance joints working LETS GO
* Remove frequency on distancejoint
* Fix some stuff and break joints
* Crashing fixed mehbeh
* ICollideSpecial and more resilience
* auto-clear
* showbb vera
* Slap that TODO in there
* Fix restartround crash
* Random fixes
* Fix fixture networking
* Add intersection method for broadphase
* Fix contacts
* Licenses done
* Optimisations
* Fix wall clips
* Config caching for island
* allocations optimisations
* Optimise casts
* Optimise events queue for physics
* Contact manager optimisations
* Optimise controllers
* Sloth joint or something idk
* Controller graph
* Remove content cvar
* Random cleanup
* Finally remove VirtualController
* Manifold structs again
* Optimise this absolute retardation
* Optimise
* fix license
* Cleanup physics interface
* AHHHHHHHHHHHHH
* Fix collisions again
* snivybus
* Fix potential nasty manifold bug
* Tests go snivy
* Disable prediction for now
* Spans
* Fix ShapeTypes
* fixes
* ch ch changeesss
* Kinematic idea
* Prevent static bodies from waking
* Pass WorldAABB to MoveEvent
* Fix collisions
* manifold structs fucking WOOORRKKKINNGGG
* Better pushing
* Fix merge ickies
* Optimise MoveEvents
* Use event for collisions performance
* Fix content tests
* Do not research tests
* Fix most conflicts
* Paul's trying to kill me
* Maybe collisions work idk
* Make us whole again
* Smug is also trying to kill me
* nani
* shitty collisions
* Settling
* Do not research collisions
* SHIP IT
* Fix joints
* PVS moment
* Fix other assert
* Fix locker collisions
* serializable sleeptime
* Aether2D contacts
* Physics is no longer crashing (and burning)
* Add to the TODO list
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>