* 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>
* 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>
* 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>
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.
This is the correct name for the dynamic library.
We can make this change without breaking old engine versions, as the launcher overrides the import resolver for zstd.
Use StringComparison.OrdinalIgnoreCase instead of ToLower() to avoid culture-sensitive casing issues (e.g., Turkish-i) when detecting YAML null literals.
Similar to the previous changes to player sessions, but now one layer lower.
Fixed ServerSendToAll from the relevant callbacks sending to a disconnected channel.
* feat: added generic method for getting component from ComponentRegistry
* refactor: corrected xml-doc
* refactor: moved emthod to ComponentRegistry
* Fix release notes entry.
Wording + it was in the template.
* Fix doc comments
* Do not use inappropriate fallible cast.
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* feat: new method or aggregating multiple config changed subscriptions into one disposable object or more slim unsubscribing code
* refactor: moved nested private class declaration to bottom of class
* refactor: reusing stateful object in tests is not smart
* fix: invalid code for forming new array during InvokeList.Remove call
* refactor: extracted new sub-multiple builder into configuration manager extensions
* refactor: remove unused code
* refactor: removed UnSubscribeActionsDelegates
* refactor: whitespaces and renaming
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>