usermattcancel
reposboxcancel

1,382 Commits over 1,066 Days - 0.05cph!

2 Years Ago
Fix regression where entities base properties were getting stomped
2 Years Ago
Delete FgdWriter, pretty sure everything is managed gamedata now Fix base addon entities not getting added to Hammer because they don't have a package Load all entities that live in Sandbox.Game into GameData ( Lights )
2 Years Ago
If we can't allocate transform data (because of shitty small cbuffers) stop trying to render instead of just crashing, this should fix Hammer crashing on complex maps temporarily until structured buffers are merged in.
2 Years Ago
AddonConfig.GetPackageType() supports tool, fixes tools showing in local games list
2 Years Ago
2 Years Ago
Cursor gets set properly when you focus back into the game from tools
2 Years Ago
Fix `cursor: none` not working ( last cursor type wasn't getting set and always assumed to be 0 (None) )
2 Years Ago
Bit of error checking in CSteamAudioScene::BakePathData when creating path data to avoid access violation crash and give us the actual error
2 Years Ago
Hammer: Add toggleable fullscreen layout ( Shift + Alt + Z ) https://files.facepunch.com/matt/1b1211b1/sbox_0AAXaFMbCO.png
2 Years Ago
Add description to ModelDoc prop_data "Bake Lighting As Static Prop" so it doesn't seem unimplemented Delete ModelPropData.AllowStatic - did nothing
2 Years Ago
Collapsible game tabs in Hammer entity selector https://files.facepunch.com/matt/1b1111b1/sbox_h9bb4QJuJf.png
2 Years Ago
Replace per tool GameData with a shared one managed by IToolFramework2, move the managed GameData out of Tools.MapEditor and into Tools, same with it's interop. * Decoupled CGameData from CGameConfig (mapdoclib), removed g_pGameData use the IToolFramework2 locator now instead. * Initialize managed GameData from CToolFramework2::Init() before anything could ever need it. * Populate GameData from managed asynchronously, this solves race conditions of loading Hammer too fast, as well as letting you add localaddons mid game. Tool scenes loading maps will now have access to all this managed game data too, solving lighting issues / missing sky boxes in modeldoc / others. This also gives us a very easy route to deprecate fgd files in ModelDoc if desired. Instead of loading GameData from addons on initialize, load it in from assemblies when added to GameAssemblyManager Unfuck the map compilation, gotta use a dirty global for gamedata still in mapdoclib, set it automatically when toolframework2 is avaliable, mapcompiler manages it's own manually though. A couple of dirty hacks to do this, we can undo these if we end up making map compilation not use a seperate process - or there may be some nicer ways to do these globals.
2 Years Ago
Add some additional launch profiles to Sandbox.Engine for VR or going straight into a map, etc. Add VR checks when creating a VROverlay Don't try creating a borderless window in tools mode, fixes keyboard input not working in-game on tools
2 Years Ago
VR: Get auto fidelity levels actually loading from their config, they don't seem to do anything yet though so need to tinker more Fix bizzarre rendering logic preventing VR autofidelity from setting the render targets size
2 Years Ago
Default vr_depth_submit to on VR overlays should set their transform from standing origin, this should be more consistent with everything else in the engine now Added `VrHand.TriggerHapticVibration( float duration, float frequency, float amplitude )` Usage: `Input.VR.LeftHand.TriggerHapticVibration( 0.25f, 100.0f, 1.0f )` This is clientside only for now, we can probably hook it up as an RPC though if it's required. It would've been nice to hook this up as a unified API with controller vibrations, but haptics and rumble are pretty different, enough that emulating it either way ends up being utter wank.
2 Years Ago
VR: Simplify and remove more code that we use OpenVR for or has no purpose for sbox VR: Submit depth texture to the SteamVR compositor, flagged behind `vr_depth_submit 1` - this primarily assists Occulus' time warping / reprojection, but could help other HMDs too
2 Years Ago
Remove CS:GO freeze frames from world renderer ( they didn't work, if you wanted them to work you'd easily make them in C# ) Remove some dead code from world renderer VR ALWAYS uses a compositor, remove a lot of dead code from the renderer Fix VR window display being bizarrely offset or not displaying anything at all depending on VR render resolutions
2 Years Ago
VR: Set the render viewport to the SteamVR recommended render target size and not the window size ( this was making the default resolution 1080p )
2 Years Ago
Hammer: Add tiling support to fast texture tool ( behaves exactly the same as the one in dota tools ) Before: https://files.facepunch.com/matt/1b0211b1/sbox_8X63pqiVql.png After: https://files.facepunch.com/matt/1b0211b1/sbox_ylhMiqliDi.png
2 Years Ago
Improve Hammer workflow for creating game entities https://files.facepunch.com/matt/1b2911b1/sbox_qmlxFg0pft.png Use a factory interface for Hammer tools as natively there's a tool class for each open editor session
2 Years Ago
Hammer: EditorDefaultValue add support for Color, Vector3/2, Angles, Rotation - allows you to specify default values as you would expect instead of as a string in an attribute ```diff - [Internal.DefaultValue( "0 0 0" )] - public Angles MoveDir { get; set; } + public Angles MoveDir { get; set; } = Angles.Zero; ``` Revert "Fixed default value for Entity Color in Hammer" This reverts commit 78256d7b7abf88f067cd05ce857a804cbb5e493c.
2 Years Ago
Fix insane memory usage (6.8GB -> 700MB in menu) - thread_local in CNetworkStringTable was creating 20MB of buffers per thread..
2 Years Ago
Hammer: Set entity origin when creating a solid entity in Entity Tool
2 Years Ago
Hammer: Override materials on the preview mesh for Block Tool when creating a solid entity with [Hammer.AutoApplyMaterial]
2 Years Ago
Fix game hang when the SDF shapes cbuffer can't be locked and it's handle invalid, prefer tier0 V_memcpy
2 Years Ago
Fix Hammer door helpers - merge the duplicate doorhelper and door_helper classes so you don't get fooled into using the wrong one
2 Years Ago
Copy & restore clientside Input state during Simulate, should fix double inputs when you press exactly on a server tick
2 Years Ago
If Input.Down/Pressed/Released are used serverside outside of a simulated context throw a warning that you're using it in the wrong place Fix Input.Down / Input.Pressed being delayed or not working at all when used clientside outside of Simulate
2 Years Ago
Fix [Hammer.DoorHelper] using the wrong editor helper
2 Years Ago
2 Years Ago
Compiler reference System.Net.Sockets.dll - not whitelisted, useful for tool addons though
2 Years Ago
Fix crash when launching game with no audio devices
2 Years Ago
Read GameClass Helpers from KV3 ( fixes them not being in resourcecompiler and weird shit like lighting breaking because of it )
2 Years Ago
Call managed PostLoadMap just before the Hammer world is loaded, load our remote packages (if any) there
2 Years Ago
Add a couple of links in the Help menu to the wiki and issue tracker
2 Years Ago
Don't presettle prop physics that have Static set ( same behaviour HLX would do with Motion Disabled spawnflag )
2 Years Ago
Make sure base addon is always compiled in tools mode even with no local addons - fixes base entities not showing in Hammer
2 Years Ago
Fix Hammer gradient fog preview, managed gamedata classes are checked for globals now
2 Years Ago
Fix crash when loading a map with entities from a remote package
2 Years Ago
Fix help descriptions not showing on entity properties, also give each map class a help context related to their dll Fix base properties (targetname, tags, etc.) not using proper prop type
2 Years Ago
BaseTrigger.ActivationTags properly sets it's default value to "player", give base Player a "player" tag.
2 Years Ago
Invalidate Hammer map entities data when a remote package is loaded
2 Years Ago
GameData (.fgd) is now managed, game entities are now loaded at runtime from their type information instead of from .fgd files. This also runs both ways and let's us access all GameData from C#. * Packages you use in your map get saved ( e.g facepunch.dm98, valve.cstrike ) and fetched on map load * Map compiler doesn't try to load fgds anymore, replace it with a KV3 provided by Hammer -> ResourceCompiler. * Map classes can be loaded directly from a LocalAddon or a RemoteP * Remove .fgds of anything that is a managed entity, also remove legacy syntax so we can remove shit loads of code. * Obsolete [Spawnflags] they're confusing for everyone, use a properly named enum with [Flags] on instead. ( Enums with [Flags] also work now, no more FGDType("bitflags") required. If fgd files fail to load, don't fuck managed game data for it.
2 Years Ago
GameData (.fgd) is now managed, game entities are now loaded at runtime from their type information instead of from .fgd files. This also runs both ways and let's us access all GameData from C#. * Managed classes for GameData, can be loaded directly from LocalAddon or RemotePackage. * Map compiler doesn't load .fgds, make Hammer serialize g_pGameData to KV3 and load it in the map compiler * Clean up native GameData code (fgdlib) making it a shit load less confusing to work with, name globals, classes, vars.. properly, delete legacy code, document stuff etc. * Copy native GameData (loaded from core .fgd) back to C# GameData for usage in tools addon * [Hammer] attributes rewritten to not use StringBuilder, pass dictionary / list references and fill those up, obsolete the old tihngs * Remove FGDWriter for game entities, no longer need to serialize it every game start * Remove .fgds of anything that has a managed type, remove legacy syntax on remaining .fgd files (use KV3 so we can remove a lot of code) Give all entities nice [Display, Category, Icon] attributes Glue Hammer Entity tool UI to C#, can use entities for games straight from here, searchable, show what game it's from etc. needs a bit more work to not look shit though Enum properties create and populate their backing native GDIVItemSet New: Enums marked with [Flags] now get treated as flags properly in Hammer now Restore Hammer.CustomHeaderAttribute but obsolete it so it doesn't break older addons C# GameData.LoadConfig should be synchronous so Hammer blocks until everything is loaded - actual loading from each dll is still done in parallel though Obsolete [Spawnflags] it's confusing for mappers and hacky to implement - you should use a property of an enum with [Flags] on it Removed Spawnflags from BaseTrigger, the only flags that did anything were Clients|Everything - everything should just work with tags instead. FuncPhysbox spawnflags turned into a flags enum property instead (old maps will still work just fine) Get rid of FGDType( "flags" ) usages, we just derive this automatically now from [System.Flags] Sandbox.Tools gets addons compiled from Sandbox.Engine - Hammer uses these instead of recompiling them itself plus they're avaliable for other tools to reflect on too In Tools mode add all LocalAddon games to ServerAddons to compile as game opens save package idents in vmap ( e.g facepunch.dm98, valve.cstrike ) from used map entities, download these pkgs on map load if missing locally bitflags Update game selector dialog to use Package.Query API Delete game entities .fgd so you're not accidentally keeping it around for no reason Fix hotload crashes when Hammer isn't open Fix a couple more crashes with hotloading in tools Iterate map nodes on save properly so it catches entities in subworlds (prefabs, tilesets) Remove Spawnflags shit from FgdWriter Reload .FGD Files -> Reload Game Data (probably not needed since we hotload, delete after we port all native ents) Don't obsolete these, they're used by modeldoc fgd still Entity tool: default to prefer class names for now, probably sex up this tool a fair lot more Hotload game entities in Hammer fuck sake actually load the game variable type from KV3 Implement GDIVItemSet::ReadFromKV3 so the map compiler knows default values Don't block engine bootstrap with compile task
2 Years Ago
In Tools mode add all LocalAddon games to ServerAddons to compile as game opens save package idents in vmap ( e.g facepunch.dm98, valve.cstrike ) from used map entities, download these pkgs on map load if missing locally
2 Years Ago
Sandbox.Tools gets addons compiled from Sandbox.Engine - Hammer uses these instead of recompiling them itself plus they're avaliable for other tools to reflect on too
2 Years Ago
Some WIP shit from a while ago on getting editor window up to parity, pushing for @cr4yz
2 Years Ago
Obsolete [Spawnflags] it's confusing for mappers and hacky to implement - you should use a property of an enum with [Flags] on it Removed Spawnflags from BaseTrigger, the only flags that did anything were Clients|Everything - everything should just work with tags instead. FuncPhysbox spawnflags turned into a flags enum property instead (old maps will still work just fine) Get rid of FGDType( "flags" ) usages, we just derive this automatically now from [System.Flags]
2 Years Ago
C# GameData.LoadConfig should be synchronous so Hammer blocks until everything is loaded - actual loading from each dll is still done in parallel though
2 Years Ago
Enum properties create and populate their backing native GDIVItemSet New: Enums marked with [Flags] now get treated as flags properly in Hammer now Restore Hammer.CustomHeaderAttribute but obsolete it so it doesn't break older addons