usermattcancel

1,708 Commits over 1,219 Days - 0.06cph!

3 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 )
3 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
3 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
3 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.
3 Years Ago
Fix insane memory usage (6.8GB -> 700MB in menu) - thread_local in CNetworkStringTable was creating 20MB of buffers per thread..
3 Years Ago
Hammer: Set entity origin when creating a solid entity in Entity Tool
3 Years Ago
Hammer: Override materials on the preview mesh for Block Tool when creating a solid entity with [Hammer.AutoApplyMaterial]
3 Years Ago
Fix game hang when the SDF shapes cbuffer can't be locked and it's handle invalid, prefer tier0 V_memcpy
3 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
3 Years Ago
Copy & restore clientside Input state during Simulate, should fix double inputs when you press exactly on a server tick
3 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
3 Years Ago
Fix [Hammer.DoorHelper] using the wrong editor helper
3 Years Ago
Compiler reference System.Net.Sockets.dll - not whitelisted, useful for tool addons though
3 Years Ago
3 Years Ago
Fix crash when launching game with no audio devices
3 Years Ago
Read GameClass Helpers from KV3 ( fixes them not being in resourcecompiler and weird shit like lighting breaking because of it )
3 Years Ago
Call managed PostLoadMap just before the Hammer world is loaded, load our remote packages (if any) there
3 Years Ago
Add a couple of links in the Help menu to the wiki and issue tracker
3 Years Ago
Don't presettle prop physics that have Static set ( same behaviour HLX would do with Motion Disabled spawnflag )
3 Years Ago
Make sure base addon is always compiled in tools mode even with no local addons - fixes base entities not showing in Hammer
3 Years Ago
Fix Hammer gradient fog preview, managed gamedata classes are checked for globals now
3 Years Ago
Fix crash when loading a map with entities from a remote package
3 Years Ago
Remove facepunch.dm98.fgd Resolve obsoletes, give each entity a nice [Display] name
3 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
3 Years Ago
BaseTrigger.ActivationTags properly sets it's default value to "player", give base Player a "player" tag.
3 Years Ago
Invalidate Hammer map entities data when a remote package is loaded
3 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.
3 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
3 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
3 Years Ago
Fix error, add [Display] to all ents
3 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
3 Years Ago
Some WIP shit from a while ago on getting editor window up to parity, pushing for @cr4yz
3 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]
3 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
3 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
3 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
3 Years Ago
read/write files properly you twat Set CGameDataClass parent properly when reading from KV3 load our serialized gamedata here in the map compiler too
3 Years Ago
Make map compiler load GameData from temp KV3 written by Hammer, instead of trying to collect and load fgds again, especially since we're not using fgds for managed stuff.
3 Years Ago
Entity tool searchable entities and toggle to display ent_class_names give a shit load of entities nice [Display] names Make paths and path nodes work with new hammer entity shit Entity selector should only show entities
3 Years Ago
Obsolete [Hammer.EntityTool] names & categories should be set with [Display, Category] and descriptions should be /// <summary> ... </summary>. Entity Tool will show these friendly names / icons over class names.
3 Years Ago
Add [Hammer.PhysicsSimulated] this hints to the map compiler that the entity is simulated in game and should pre-settle. Internally replace BasePhysicsSimulated @baseclass check with PhysicsSimulated tag and replaces the hacky solution I had implemented with .fgds previously. Make all these [Hammer.] attributes make helpers, metadata, etc. with dictionaries / lists instead of a stringbuilder to fgd format
3 Years Ago
default_fov not a cheat (lets you have it set on servers) and also saves, games can force a fov still if they care
3 Years Ago
Add MetaData for classes, turn it into native KV3 Add PropertyTypeOverride for MapVariable for some shit we really just can't derive from a C# Type [Hammer.CanBeClientsideOnly] adds its variable
3 Years Ago
Sort out the C++ side of fgdlib so we know wtf is going on, organize our C# interop nicer because of it. * Split fgd file parsing away so we have more ownership of GameData and it's way less confusing. * Classes, variables, globals are named properly e.g pGD -> g_pGameData (it got very confusing when pGD is a parameter name everywhere too) * Document what GameData is & how we use it in s&box. * Sort out code stink, unnecessary long compile times and remove some headers that haven't been used in the past couple of decades. Add "point" and "solid" tags to applicable managed gamedata classes, Hammer likes to use these over the type for some things Don't mix AssemblyLoadContexts, I've one this part all pretty wank need to revisit this bit later. Implement Inputs and Outputs, the parameter types make more sense now and entity parameters should work now too. Remove map entity related stuff we've already ported to our tools from FGDWriter
3 Years Ago
AccessControl check remote packages in Hammer before loading them GameData::AddClass sets the classes parent to itself properly Copy editor helpers and tags to native GameData, add standard base properties "parentname", "local.origin" etc. (is there a reason these aren't just on the Entity class as normal properties?) Implement property type overrides so I don't fuck up backwards compatibility, we can iterate on if these are needed later Adjust Hammer.MetaDataAttribute to accept Lists for metadata & helpers, implement even more Hammer attributes (there are a lot..)
3 Years Ago
Remove [Library] from Game class Don't stomp players default fov setting Precache weapon models with static readonly Model.Load pattern Precache particles to avoid that stutter Sort the scoreboard by kills ( but only sort once when kills are dirty ) Headshot damage multiplier checks for hitbox group instead [Net, Local] player ammo Update fgd Fix grenade entity model Add some classic kill sounds for headshot, double kill, etc.
3 Years Ago
Hotload CachedUpgrader: it's okay if this is already in the replace cache it's gonna be the same instance Update base fgd
3 Years Ago
Load all entities from our local base addon dll Make resource types on properties work properly, Texture Model etc. - handle Tags on map classes and start parsing [Input]
3 Years Ago
Can manually dispatch CI workflow to force a full rebuild for when incremental builds get fucked
3 Years Ago
Delete loads of C++ entities that were removed from fgd ages ago or just legacy as fuck, clean up loads of shit because of it too. Important we do delete these after removing them from fgds because the engine will still create them if a map has specified them previously