1,584 Commits over 1,127 Days - 0.06cph!
OpenVR update 1.10.20 -> 1.16.8, resolve deprecated crap
Add internal managed code bindings for OpenVR interfaces to Sandbox.Engine
VROverlay class in managed with rendering props and render update loop
Basic VROverlay in Sandbox.Menu with a render target texture of the menu UI - probably a shit place for it but can be moved easily.
https://files.facepunch.com/matt/1b1811b1/vrmonitor_A6tO3ufJP9.png
Iterate on VROverlay API, make the coordinate system match engine, poll events and simulate input in the menu.
Fix Event.Hotload not calling on the server, fixes network tables not updating on hotload and probably other shit
Basic VROverlay in Sandbox.Menu with a render target texture of the menu UI - probably a shit place for it but can be moved easily.
https://files.facepunch.com/matt/1b1811b1/vrmonitor_A6tO3ufJP9.png
OpenVR update 1.10.20 -> 1.16.8, resolve deprecated crap
Add internal managed code bindings for OpenVR interfaces to Sandbox.Engine
VROverlay class in managed with rendering props and render update loop
Make sure we update our GameAssembly hash on initial load, fixes all networking errors
Make non public and inherited methods register for events again
fix build log discord post on long message commits
Ensure resident model resources get added to the manifest, fixes error models from missing resources in manifest.
This would specifically happen if a server starts a game / map a second time, the resources would remain resident,
so when a client does their initial join these models are missing from the manifest resulting in an error.
If the client had previously joined on the first time their resources would already be resident and not error.
Simplest way to do it, rather then change (and slow down) how the rest of the resource system works.
If a resource we try to preload returns an error handle, don't keep the handle alive. Map resources specifically will become valid and load automatically after this.
Change WorldInput API to instances to resolve issues and allow simultaneous inputs.
* Replace WorldInput.Update with instanced WorldInput fixing hovering and clicking issues as well as allowing simultaneous inputs.
* Resolved various issues with WorldPanel.RayToLocalPosition not using the right axis, being inverted and not scaling.
* Simulate double click and mousemove events for world inputs.
* Fix right clicks not working on WorldInput.
Fix missing game lobby settings
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Use WeakReferences of WorldInputs to iterate, gives addon state full ownership and lets GC work nicely.
Clear WorldInput reference list on LoopEvent.Init/Shutdown
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
Simulate ondoubleclick & onmousemove events, add WorldInput.Enabled for toggling easily, tidy and refactor UISystem a bit fix potential NREs, small optimizations.
Allow RootPanel.Parent = null though
Throw if trying to set RootPanel.Parent
Fix a couple of NREs preventing -dedicated from working
Expose and doc more on WorldInput public class; UseMouseInput allows nice usage with Input.Cursor rays
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Use WeakReferences of WorldInputs to iterate, gives addon state full ownership and lets GC work nicely.
Clear WorldInput reference list on LoopEvent.Init/Shutdown
SetProperty fallback on [Property] attributes, fixes map entities not working from having their properties not set
Generator error if you try to [Net] a static property
INetworkSerializer.Read: use ref of NetRead
NetWrite.Write don't try to blindly write ref or containing ref types
Fix coding errors, remove obsolete and unused shit
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Iterate on WorldInput, allow multiple simulated inputs at the same time by migrating state to games
Fix inverted x pos and lack of world scale awareness in WorldPanel ray to local code
Add a rotating camera around the hole after you putt
ScoreFeed handle hole in ones correctly
Add transform: scalex, scaley (scale was already supported)
Add scss transform: translate( <length>, <length>? ) ( translateX, translateY were already supported )
Fix world panel input by changing WorldInput.Update to [Event.WorldInput.Build] called from the input system.
WorldPanel.RayToLocalPosition: fix wrong local position being used for inside checks
Simulate right (and middle) mouse button properly in world panel input.
Fix player par being set on the wrong index
Uncomplicate course info bullshit, shouldn't fall over on a full update either now too
Cleanup PowerArrow on Ball destruction
Don't write empty modeldata.fgd
Add [Net] support for generic IDictionary<TKey, TVal>
Add tests for combinations of [Net] IDictionary<TKey, TVal>
Make [Net] work on IList<T>, deprecate List<T> to prevent confusing behaviour
Use VarUnmanagedList on ITypeSymbol.IsUnmanagedType
Cleanup and simplify replicated lists code gen, give better feedback if using List<T>
Add [Net] support for IDictionary<U, object> where U in unmanaged initially
Add support for generic dictionaries where key/val both support unmanaged or class constraints
Cleanup and simplify replicated lists code gen, give better feedback if using List<T>
Remove obsolete crap
Ball traces should collide with PLAYER_CLIP
Special case hole in one text, split all scores onto seperate lines
Stop freecam when in play or cupped, add UI indicator of free cam, experiment with limiting time to challenge users on tricky hole layouts
Add a basic stencil mask to the ball so we can see it behind walls
Remove more obsolete PhysicsBody code
Track ball position before shot and reset to that on out of bounds
Add [Net] support for IDictionary<U, object> where U in unmanaged initially
Use Global.Lobby to wait for all lobby members to load ( start anyway after 60s )
If a client joins late, mark them as a latecomer and give them a shitty score
Don't submit latecomers scores to GameServices
Don't transmit water trigger to clients, fix error models
Add VisGroup.Trigger to all trigger-like map entities
Apply big friction when in water, remove redundant calls to PhysicsBody, add water splash + dev texture auto apply
Fix out of bounds applying to cupped balls
Hook up out of bounds with forgiveness time
Update out of bounds UI to use intro/outro pseudo classes
Show the right par header for each hole in the scoreboard
Color scores on scoreboard below & over par, leave holes not scored on yet as -
AutoApplyMaterial dev textures to hole boundary entities
custom physics
impact effects
Nudge out along the hit normal slightly so we don't have to constantly unfuck ourself, also allows spheres to be used for movement
project velocity onto ground plane to remove gravity when on ground
Apply friction based on ground surface, rotate ball from velocity, trace ignore golf_ball tags, turn off prediction for movement solver, remove obsolete physics code
Use RealTime for power input
Water oob: turn off prediction and run serverside only
Apply friction based on ground surface, rotate ball from velocity, trace ignore golf_ball tags, turn off prediction for movement solver, remove obsolete physics code
Use RealTime for power input
Allow static array initializers
Make water entity solid, play ball splash sound
Play different particle effects on hole in one
Highlight each score on the current hole in scoreboard
Show timers for next hole and return to lobby
Fix opacity on out of bounds alert
Completely overuse text-stroke everywhere until I get sick of it
NetRead.ReadObject: read floats correctly
If text-stroke-color is not set default to color
Add `text-stroke <length> <color>` shorthand
Don't force fov
Add sounds for putting, sinking, impacts as well as some UI sounds, dynamically adjust volume / pitch on them
Use tags system to tag golf balls, trace only ignoring them so we can hit normal entities too
Place name tags on hit normal, lerp rotate them to velocity normal
Make scoreboard actually match # of holes on the map
Use a quadratic gradient to scale shot power, easier to do short accurate shots now
Fix local client's steamid being incorrect serverside in singleplayer games
Clear a panel's input focus when it is deleted
Whitelist
System.Collections.ObjectModel.*
System.MidpointRounding*
System.Runtime.CompilerServices.IsByRefLikeAttribute
System.EventArgs* & System.EventHandler*