* Adds a derived class from Nunit's Is test constraint class.
The game camera can now be rotated.
* Added the new `bind` command to the console, used to bind a key to a keybind.
Added two new keybinds for rotating the View camera left and right.
Added more info to the ""Component does not exist for state" exception.
Added Reduced() and FlipPositive() public functions to Angle.
* Fix a copy/paste bug.
* Adds missing code to bind/unbind CameraRotateLeft.
Camera snapping now actually uses the CameraSnapTolerance constant.
* merged in shader automatic reloading, remove internal shader reloading
add support for includes to shader reloading, modified includes reload shaders that depends upon them
* add some fault tolerance to allow playing with the file a bit
* prevent multiple watch attempts
* fix spacing
* revert project change
* add cancellation to Reload with a default of 30s
fix case sensitivity comparison
assume windows & mac are case insensitive
* Work on shadow casting.
* Shadowcasting depth works, code cleanup
* Adds #include support to SWSL parser.
* Move lighting shader to swsl.
Also more shader parser fixes.
* Move PI constant to correct file.
* Got functional FOV, working on wall bleed.
* Hey, it kinda works.
* Occluder component now lives in shared.
* Optimizations.
* Fix light map color format.
I set it to something else while testing perf.
* Front face cull final FOV pass.
* Fix holes in occlusion geometry due to disabled occluders.
* Starting work on better wall handling.
* Some comments.
* Improve font-face-culled FOV pass.
* Improve various light biasing things.
* VSM, smooth shadows.
Also unused VSM blurring because it didn't work but committing it like this will forever keep it in Git somewhere.
* FOV smoothing, looks kinda awful.
* Base wall bleed blur strength on camera size.
* The part where I give up.
* Comments. Many comments.
* Allow eyes to disable FOV.
* Improve OccluderComponent on the client.
* Update for occluder component changes.
* Maybe do this properly...
* bubble implementation
include contained entities
fix line edit crash when clipboard contents are null somehow
use CVar for update bubble range
remove seenMovers that get NaN'd out of MaxUpdateRange - huge reduction in network traffic from bullets
cut default of MaxUpdateRange down to 12.5 for now
maybe handle teleported things
handle removing player state on disconnect
fixed positional audio errors
make UpdateEntityTree also update player's last seen ents
make net.maxupdaterange cvar tunable at runtime w/o impacting performance
back to position nan as means to hide from client
revert work pooling as the wrong player was getting the wrong game state
ffs needed to think less about *if* something is *seen* and more about *when* it must be *unseen*
clean up usings
handle parenting and sequencing issues that arise on the client
gather needed ents to update recursively
applied suggestions from code review
fix missing recursively contained ents
make assumption that client last saw things on first tick instead of tick zero, as zero would be the "from tick" and first would be he "to tick"
add First tick as constant to GameTick due to relevance above
renamed includedEnts to checkedEnts to make usage more clear
added comments
inverted some conditions to flatten parts of the pvs logic
fixed sending states when already seen (lastChange < lastSeen to lastChange <= lastSeen)
fix sending states when no actual changes (other bugs?)
local caching of currentTick, remove priorTick
* make TransformComponent's Parent setter call Dirty() to handle replicating network state if AttachParent isn't invoked
* fixed parent changed by setting Parent on Transform not updating parent's Children collection and other stuff
rotating parent entities now are visible with their orbiting children if one of their children moves into view
* break out duplicated code as GetLastSeen
* remove unused net.parallelstates
introduce net.pvs to configure enabling/disabling PVS
Returns early if the window or framebuffer width or height = 0 to avoid dividing by zero. Checked the vector components individually instead of using `Vector2i.Equals()` because you can end up in a situation where width is non-zero and height is zero if you manually resize the window instead of using the minimize button.
This fixes batching not working for sprite layers. They'd set & reset the active shader constantly which broke batching.
Active shader is now part of batch meta data and broken like other data like textures.
This halves the memory necessary for the lighting framebuffer, so probably helps with bandwidth usage (especially on integrated GPUs) too.
I couldn't notice a decline in visual quality on my (admittedly) bad laptop screen.
* Fold animation delays into a single set for all directions.
* Update systems to use new RSI animations API.
* Fetching layer directions now done in sprite render.
* Allow overriding direction in SpriteView.
* Use GLFW instead of OpenTK windows
* Seems to work pretty well now.
* Fix stackalloc issue on Framework.
* Add GLFW project to sln.
* Fix package downgrade.
* Fix SLN more.
* Please work.
* Fix C# version error.
* Moved IMap from Shared/Interfaces/Map to Shared/Map namespace.
* Extracted Map class out of the MapManager class.
* Removed the Map class and interface.
* Fully removed the Map and IMap class.