* modify light attenuation function
* support for changing attenuation curve type + lots of docs
* this is what i defaulted to typing in a prototype, so i guess it should just be this instead
* Allow a continuous range of values between inverse and inversequadratic rather than two set curves
* calc is slang for calculator
* fix
* oops committed it at 1 while testing i think, values are balanced for 0
* Autocomplete more map commands
Also added some extra helper features.
* Finish
* Fix bug, avoid IocResolves
* grid is grid
* file filename clash
* turn hint into option
* a
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* Created Debug Version Panel and Version Info Printer similar to DebugSystemPanel
* dependency injection
* remove VersionInformationPrinter
* Fix sorting
* Multiple CEF instances on a single machine
* remove unused
* meh implementation
* cefextension
* me when partials, race conditions and extractiion of methods exists
* Change remote debugging handling
It now defaults to 9222 again. This doesn't seem to cause any issues when launching 3 clients. The debug port can be reconfigured via CVar if desired.
Also disabled debugging by default outside dev builds.
* Lower MaxAttempts to 15
100 was way too much and gave me anxiety idk.
* Fix non-TOOLS default of remote debug port
* Rewrite locking implementation.
It is much smaller, less complicated and probably more robust too. Should be fully atomic (the previous one wasn't).
* Undo unnecessary style changes
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* jouneys-end
* test
* more tests
* test overkill
* i'm tired
* rip it out
* Keep method but mark it as obsolete
* Release notes
* grammar
---------
Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Copy TableContainer from content into engine. It's internal though.
Add various stuff to Clyde to allow the UI to access it. Includes a new IClydeInternal.RenderNow() which seems to not completely explode in my face.
* Rename TryGetMapOrGridCoordinates to make it clearer it gets grid first
* Add terminating or deleted checks to TryGetGridOrMapCoordinates
* Add comment to check if TerminatingOrDeleted check is necessary
* Reorganize AttachToGridOrMap to match TryGetGridOrMapCoordinates
* Move validation to method
* Replace internals with TryGetGridOrMapCoordinates
* Explicitly set coordinates type
* Format
* Change name back for now
* Don't duplicate `TerminatingOrDeleted()` check
* Don't call `GetInvWorldMatrix` for the map
* Don't check `TerminatingOrDeleted(uid)` in `TryGetMapOrGridCoordinates()`
* Fix parenting to terminating grid
* Fix matrix error
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
Content nowadays has a bunch of Overlays that all cache IRenderTextures for various funny operations. These are all broken in the face of multiple viewports, as they need to be cached *per viewport*.
This commit adds an ID field & an event to allow content to properly handle these resources.
Also adds some debug commands
I'm worried about the IDE performance overhead of the 20k lines of LibraryImport it generates into Robust.Client.
Also, this allows me to trim the binding, which saves a tiny amount of space from publishes. Always nice to have.
Applies when vsync is not enabled.
Had to shuffle stuff around to GameController since it involves the game loop.
The implementation isn't great and undershoots the target FPS value (because the OS overshoots the desired sleep value). I tried using SDL_DelayPrecise too but this causes significantly increased CPU usage probably because it spinwaits and all that nonsense, so I decided against it.
I don't know why I bothered to do this. I just got the idea in my head. Kinda feels like a waste of time, but there's no point not committing it at this point.
A lot of areas use TimeSpan.MaxValue but when saved and read the current time is added which results in an overflow.
A check is now performed to prevent this.
We were relying on a global PopupRoot & ModalRoot, which only existed in the main window. This means things like OptionButton would pop out on the *main* window when put on secondary windows.
These two roots are now on the UIRoot instead. WindowRoot needs to have a function called to create these if you're using it manually, OSWindow supports it automatically.