usermattcancel

1,585 Commits over 1,127 Days - 0.06cph!

2 Years Ago
Strip a tiny bit of shit Only hide non floating dock widgets in Hammer when toggling fullscreen layout ( resolves Facepunch/sbox-issues#2301 )
2 Years Ago
Disable spinning the UI on demand recompiles for now because it's causing re-entrant calls to ForceSynchronizationAndBlockUntilManifestLoaded() Fix a resourcesystem error by avoiding an unnecessary resource fetch in LightDescFromEntity within CLightHelper::Render, CLightHelper manages its own lightcookie handles
2 Years Ago
Hammer: Fix Qt already has layout console spew with CQStylizedGroupBoxControllable Hammer: Make sure the toolbar extensions have a background color so they're usable
2 Years Ago
Proper fallback handling for no audio devices, fixes game startup crash w/o audio device, but also removal and new audio devices mid game - Resolves #378
2 Years Ago
Rebuild all content
2 Years Ago
Use latest version of bc7e.ispc with determinism fixes and improvements to solid color block encoding (richgel999/bc7enc_rdo)
2 Years Ago
Hammer: Fix Qt already has layout console spew with CQStylizedGroupBoxControllable Fix null ref on new maps
2 Years Ago
Get the debug download text working again, use static dirtying this time so its safer / easier
2 Years Ago
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }` Move ManifestMount to Sandbox.Engine Static ToolRender class uses the current CToolRenderContext context Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously Create a remote asset manifest within a map doc, save/load remote assets used within the map Simplify mapdoc remote asset manifest, no need for all these C++ bindings ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies` ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest Fuck around a bit with mounting transient assets before collecting assets for publishing, doesn't work properly unless the assets are registered with the asset system and that doesn't like symlinks.. yet Small cleanup in compilemap, it's okay not to have a .meta file, remove some debug logs
2 Years Ago
Mount transient assets in resourcecompiler even earlier with a vmap.meta file, any later and the references get fucked up Clean up all this dmx crap and use Asset.MetaData on the vmap for our transient asset manifest Fuck around a bit with mounting transient assets before collecting assets for publishing, doesn't work properly unless the assets are registered with the asset system and that doesn't like symlinks.. yet
2 Years Ago
Simplify mapdoc remote asset manifest, no need for all these C++ bindings ResourceCompilerMap: parse the remote asset manifest and symlink mount any transient assets just before `CResourceCompilerMap::CollectMapDependencies` ResourceCompilerMap: Put the transient asset manifest in the .vpk - this will serve two purposes: publishing should mount before collecitng dependencies of the map, when loading the map locally we need to fetch/mount these transient assets
2 Years Ago
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }` Move ManifestMount to Sandbox.Engine Static ToolRender class uses the current CToolRenderContext context Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously Create a remote asset manifest within a map doc, save/load remote assets used within the map
2 Years Ago
Fix usercmd delta compression for controller analogs where it would never send zero - fixes Facepunch/sbox-issues#2279
2 Years Ago
More resilient gpu driver version fetching, find a matching adapter description from EnumDisplayDevices that matches the DirectX adapter description
2 Years Ago
[ClientRpc] codegen supports reserved keyword names w/ @ prefix - fixes Facepunch/sbox-issues#2227 Collect & replicate usings for codegen so we can keep stuff like initializer syntax simple whilst making it work as you would expect with namespaces - fixes Facepunch/sbox-issues#2018 Remove ErrorList singleton - not needed and some shit code was stomping it and making nothing work Add all local addons to the error list combobox (move those with errors to the top), makes it easier to filter for just the addon you give a shit about - resolves Facepunch/sbox-issues#2188 Only show errors from active addons, update combo / list on localaddons.changed - resolves Facepunch/sbox-issues#2146 Codegen add distinct namespaces only, stop some warnings
2 Years Ago
Add controller look yaw/pitch speed settings, this is deg/s ( fixes Facepunch/sbox-issues#1496 ) Multiply InputBuilder.AnalogLook by Time.Delta so it's not framerate dependent ( fixes Facepunch/sbox-issues#2045 ) Make convars work on non-public props
2 Years Ago
Use InputButton.Chat for chatbox, enter defaults to +iv_chat, obsolete Sandbox.Hooks.Chat.OnOpenChat
2 Years Ago
Reset analog inputs to default when UsingController is 0 in the usercmd - fixes Facepunch/sbox-issues#2238
2 Years Ago
AddonCreator: normalize paths, don't allow creation in a folder full of other folders either you're very likely fucking up then
2 Years Ago
Open in code editor button for tools addons - resolves Facepunch/sbox-issues#2226
2 Years Ago
Make the "from asset.party" addon downloader auto-select the path a bit better - fixes Facepunch/sbox-issues#2233
2 Years Ago
Add a basic asset.party location to the asset browser, remote assets have the drag data of `https://asset.party/{ Org }/{ Ident }` Move ManifestMount to Sandbox.Engine Static ToolRender class uses the current CToolRenderContext context Dropping an asset.party asset on a map view creates an empty prop_static that downloads and sets its model asynchronously Create a remote asset manifest within a map doc, save/load remote assets used within the map
2 Years Ago
Delete dota healthbar SFM code that plagued the IToolService and ISource2Engine Dock Error List in default layout
2 Years Ago
Only enable vr_depth_submit on Oculus as their positional timewarp is the only thing that makes use of it. WMR OpenVR driver would instantly crash on depth submits, so this resolves that too.
2 Years Ago
Get free dragging working from C# using the native stuff for it that does loads of shit. Tidy up lots of redundant parameters since we pass the CMapView now Make static ToolRender class that uses the current CToolRenderContext - only called from Hammer MapView atm Hook up some quick and dirty progress indicators for cloud models in hammer. Fair bit of shit code, but I want to get the flow good first https://files.facepunch.com/matt/1b1711b1/sbox_baEO6vIdim.mp4
2 Years Ago
Update README and LICENSE - anyone can learn / take code for their own s&box games
2 Years Ago
Process queue for SyncContext.MainThread in ManagedTools.RunFrame() - the frame is ran manually when QtDrag blocks, so lets make sure we can still do async tasks on the main thread Now we can load cloud models whilst we're dragging them around
2 Years Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4 Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then Delete dota healthbar SFM code that plagued the IToolService and ISource2Engine
2 Years Ago
Update paddle hit physics, calculate bounce with relative ball velocity to the paddle, dont add multiplied paddle velocity to ball on bounce normal, simply transfer the velocity 1:1 Fix up debug mode so the game throws endless balls at you to return
2 Years Ago
Calculate drag properly, remember that we use kg/in³ and in/s² - fuck knows how what I was doing before worked in the slightest, this feels much better Bounce a bit higher Only use this paddle sound, it's cooler
2 Years Ago
Keep cleaning / refactoring, keep game logic seperated from everything else, isolate RPCs for future lag comp
2 Years Ago
Tidy up, remove any concept of serverside balls, isolate all physics logic to its own class
2 Years Ago
More sync fixes, got a better idea though Adjust networking even more, this is very playable now, but I think I can still do better Don't bounce on carpet, scale bounce sound w/ velocity
2 Years Ago
Client decides when it wants to take control, various other desync fixes Haptic feedback when hitting ball
2 Years Ago
Make the ball completely clientside with a backing server entity for sync, make all of serving clientside too
2 Years Ago
Revert "Make Entity.IsAuthority a virtual property" This reverts commit 1533014f19347562cbac07a148ee3926da2f64ad.
2 Years Ago
Quick hack to update client values to server values when authority changes to you
2 Years Ago
Pack our ball velocity into the usercmd as well so the server/other client can take it over
2 Years Ago
Alternating client authoritative networking * Implement an alternating client authoritative model - whichever clients side of the table the ball is on gets complete authority over the ball position and velocity. * Physics are simulated entirely on the current authoritative client now. Pack the ball position into the UserCmd and the server sets the ball entity's position so the other client can see it and takeover when authority switches. * Substep the physics at fixed(ish) 0.005ms steps within FrameSimulate's delta time, each step moves the ball and checks against the paddle sweep. This may be unconventional but it gives us a perfect result and never misses. * Fix paddle collision sometimes sending the ball backwards because of a negative velocity length, added an abs.
2 Years Ago
implement simple debug slowmo to make sure the angular hits are correct Implement alternating client authoritative - whoevers side of the table the ball is on gets complete control of the ball
2 Years Ago
Make Entity.IsAuthority a virtual property
2 Years Ago
Neater way of giving client authority over the ball Implement physics substeps on a fixed-ish time step within FrameSimulate, move the ball and try to collide with the paddle each step - this is probably quite unconventional but it gives us the perfect result and never misses
2 Years Ago
Use abs on our paddle return velocity length before multiplying by the sweep normal, stops the ball flying behind the paddle Simulate physics entirely clientside each frame, make the client authoritative packing the ball position into the usercmd. The game should decide which client is authoritative based on which side of the table the ball is on.
2 Years Ago
Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then
2 Years Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4
2 Years Ago
BaseItemWidget: Ctrl clicking selected items removes them from the selection
2 Years Ago
Fix AssetBrowser not loading saved settings correctly - Fixes Facepunch/sbox-issues#2063
2 Years Ago
Fix Hammer texture replace window's asset picker shrinking and becoming unusable Asset Browser: can make new folder from AssetList
2 Years Ago
Enable MultiSelect on AssetList Don't try to open a context menu if we have no options, otherwise Qt will moan Implement shift click multiselect in BaseItemWidget https://files.facepunch.com/matt/1b0211b1/sbox_2u4H5Gcpcl.mp4
2 Years Ago
Entity.networkTags should use StringComparer.OrdinalIgnoreCase when updated from network