795 Commits over 1,157 Days - 0.03cph!
Prevent stack overflows in FGDWriter
Don't write read only properties, and don't write properties whose type is same as the parent class type
Vector2 can load from object in a JSON
EditorModelAttribute can do different color tint when the entity is dynamic (for lights)
Added Hammer.CanBeClientsideOnlyAttribute
Added 2 internal Hammer helper attributes
Fix compile warning with SoundEvent asset type
FGDWriter considers writes doubles as floats
Fix up func_shatterglass Hammer properties
Rename first arg of PropertyAttribute's constructors to mention the name is internal
(Also updated the XML comments to reflect this more clearly.
Property attribute uses C# variable name to autogenerate Title, not the internal name
string.ToTitleCase() handles numbers
Update base.fgd
Make SphereAttribute( string ) not ambigious
ResourceTypeAttribute vsnap
Delete breakable_door_model node
Delete Model.GetBreakParicle
write FGD structs for modeldoc only once
FGDWriter can write ModelBreakCommand to modeldoc fgd
Added Library.GetType( string )
Added Model.GetBreakCommands
Breakables class runs BreakCommands, added ModelBreakParticle break command
Cache break command data
Match JSONOptions between Breakables.ApplyBreakCommands and Model.GetData
IBreakCommand => IModelBreakCommand
Update FgdWriter.cs
FGDWriter better handles nullables
DefaultValue generator handles int/float nullables
Merge branch 'master' into modelbreakcommand
ModelDoc does not write GenericGameData fields that are at default value
This is to make nullables in C# modeldoc structs happen
Use nullable ints in ModelBreakParticle command
Update base_modeldata.fgd
Merge pull request #91 from Facepunch/modelbreakcommand
ModelBreakCommand for FGDWriter
Give RangedFloat an implicit float initializer operator
Temporarily fix "Duplicate FGD class" popup/asserts by not writing light entities
Recompile all surface assets
FGDWriter supports System.ComponentModel.DefaultValueAttribute
Restore missing descriptions/defaults for surface and soundevent assets
Make sure floats are quoted in .fgds
Remove base classes from engine.fgd
Give Particles class a description
Update base.fgd/sound.asset
Update base_modeldata.fgd
Use nullable ints in ModelBreakParticle command
ModelDoc does not write GenericGameData fields that are at default value
This is to make nullables in C# modeldoc structs happen
Industrial light - large light for construct warehouse
Merge branch 'master' of sbox
Throw if trying to set RootPanel.Parent
Fix a couple of NREs preventing -dedicated from working
Allow RootPanel.Parent = null though
Shotgun aim workarounds
Initial reimplementation of func_shatterglass https://files.facepunch.com/layla/1b1111b1/sbox_xf1v5teDcI.png
Add entity network ident to list before calling spawn so that setting entity net vars works in spawn
Add glass material property to shatter glass
Add half thickness property to shatter glass, clamp to sane values
Only try to reset glass panel if it's broken
Don';t delete shard if we didn't manage to shatter it
Glass thickness property instead of half thickness
Allow shatter on physics impact although the effect isn't as good as it can be yet
Don't try to shatter if the shatter point is outside of the shard
Only generate shard model on client when there's a valid parent panel with a material set
Filter out all kinds of damage except bullet and physics impact for now
Move car vmdl to rust addon for now so tools stop trying to recompile it
Custom constbuffer support for shaders
Sandbox.ConstantBuffer.Create
ConstantBuffer.Update
Render.Set Constbuffer variant
Compute.WithAttribute Constbuffer variant
Add BBox.FromPositionAndSize
Update to net6
vpc support for vs2022 🙄🔫
vs2022 fixes
New bat files
Make Analyzers and references work with relative paths
Fix surface.asset causing fgd parsing errors
Ready text
Buttons can have subtitles
Hack to make map selection less shit
Error Fixes
Fix missing game lobby settings
Give linebreaks an empty style to prevent shadows etc being rendered
Transform: matrix3d
Transform: matrix
Fix NRE, create lobby if there isn't one when selecting a map
Fix leaderboard showing duplicate entries when rapidly clicked
Don't create lobby, just null check
Better fix for duplicate leaderboard entries
Revert "Give linebreaks an empty style to prevent shadows etc being rendered"
This reverts commit 0a0b8967c63ecd9f8eca49dbdd347fbb02a60b48.
industrial light - fix for #1269
Merge branch 'master' of sbox
Fix Asset property as a List not being an array in fgdwriter
FgdWriter uses DisplayAttribute properties
Write engine defined asset fgd's on startup
FgdWriter - special treatment for Assets, don't treat them like structs
Sound & Surface .asset are now AutoGenerate
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.
Merge branch 'master' into modelbreakcommand
Update FgdWriter.cs
FGDWriter better handles nullables
DefaultValue generator handles int/float nullables
IBreakCommand => IModelBreakCommand
Cache break command data
Match JSONOptions between Breakables.ApplyBreakCommands and Model.GetData
ResourceTypeAttribute vsnap
Delete breakable_door_model node
Delete Model.GetBreakParicle
write FGD structs for modeldoc only once
FGDWriter can write ModelBreakCommand to modeldoc fgd
Added Library.GetType( string )
Added Model.GetBreakCommands
Breakables class runs BreakCommands, added ModelBreakParticle break command
Maintain CRLF line endings in FGDs + remove trailing whitespace
Update base.fgd
Restore surface asset type defaults
ModelDoc.Sphere's origin argument is optional
Give 'explosion_behavior' property descriptions and a radius visualization
Add sandbox and sbox-ai-lab addons to gitignore
Make sure Surface asset type could be autogenerated
(Its not auto generated because its in the wrong assembly)
Clothing/Decal assets no longer use [Property] attributes
Make internal Hammer attribute properties/fields private like they should be
FGDWriter supports C# structs as fgd structs
FGDType and its derivatives support arrays
FGDWriter: Make non [Property] titles generate consistently with [Property] titles
ModelDoc: Switched Mass/Shape info into a tabbed view so its data can actually fit
Removed gizmos that try to change non existent properties of hand_pose_pair gamedata node
Added "description" property to surface asset
Added various ModelDoc markup attributes for ModelDoc GameData nodes
ModelDoc.Axis
ModelDoc.Box
ModelDoc.Sphere
ModelDoc.Capsule
ModelDoc.Cylinder
Update Cylinder helper rendering in ModelDoc
ModelDoc: Hide translation/rotation gizmo from 'box' helper when they aren't functional
Fixed cached attachment transforms not updating for a frame or two around entity creation
Fixes single-fire particles in Entity.ClientSpawn attached to an entity attachment spawning at map origin
Fixed ModelDoc particle previews ignoring Attachment Offset
Fixed a minor issue with ModelDoc GameData previews
CMapListService no longer returns _bakeresourcecache.vpks in the list
Fixes _bakeresourcecache files appearing in ModelDoc's preview map selector, possibly other places too
ModelDoc: Proper previews for compiled GenericGameData nodes
Update base.fgd
Cleanup FGDWriter
Make Hammer.Skip for entities not inherited
GenericGameData fgd autogen
Delete IModelGameData, Add ModelDoc.GenericGameData Attribute
Move door_sounds modelgamedata to c#
Move prop_data to c#
Update models_gamedata.fgd
Move explosion_behavior to c#
More strict usage for AutoGenerate, FGDType and BitFlags attributes
Classes can dictate their own FGD type via FGDTypeAttribute
(So you don't have to put the attribute on every property every time)
Rename ParticleAttachment fields to be consistent
FGDWriter can output classes as "choices" selector in tools
This is a workaround to be able to use strings as data in fgd choices type, which c# enums do not allow.
Move 'particle' (particles_list) modelgamedata to c#
Cleanup
Fix Model.GetData<>() not working with structs
ModelBreakPiece works with Model.GetData<>()
Obsolete Model.GetJson, GetData(str), HasData(str)
Update ModelExtension.cs
FGDWriter can use ComponentModel.DisplayName & JsonPropertyName Attributes
ComponentModel.DisplayName replacing Property.Title
JsonPropertyName replacing Property.Name
If a class as no properties with [Property] attribute, all properties will be exported to .fgd
Delete ParticleAttachmentType
Switch ModelGameData back to JSON for deserialization
Update BasePathNode.cs
Remove no longer needed interop methods
Fix missing 'using' in FGDWriter
Added Model.TryGetData<>
FGDTypeAttribute can now provide choices to fgd properties
Attribute suffix for ModelDoc attributes
Fix recent changes
Make ParticleAttachment public
Hammer.Skip works for enum fields
Engine's string to particleattachment type supports string numbers
Model.GetData<>() supports deserializing to enums
ModelParticle class uses ParticleAttachment enum
Merge ModelDoc.ListAttribute into ModelDoc.GenericGameData, and rename it to ModelDoc.GameData
Demote Model.TryToGetData()'s error to a warning
Update base_modeldata.fgd
Merge pull request #75 from Facepunch/modeldoc-fgdgen
Basic FGD Autogen for ModelDoc
Make ParticleAttachment public
Hammer.Skip works for enum fields
Engine's string to particleattachment type supports string numbers
Model.GetData<>() supports deserializing to enums
ModelParticle class uses ParticleAttachment enum
Merge ModelDoc.ListAttribute into ModelDoc.GenericGameData, and rename it to ModelDoc.GameData
Demote Model.TryToGetData()'s error to a warning
Update base_modeldata.fgd
Attribute suffix for ModelDoc attributes
FGDTypeAttribute can now provide choices to fgd properties
Fix missing 'using' in FGDWriter
Remove no longer needed interop methods
FGDWriter can use ComponentModel.DisplayName & JsonPropertyName Attributes
ComponentModel.DisplayName replacing Property.Title
JsonPropertyName replacing Property.Name
If a class as no properties with [Property] attribute, all properties will be exported to .fgd
Delete ParticleAttachmentType
Switch ModelGameData back to JSON for deserialization
Update BasePathNode.cs
Obsolete Model.GetJson, GetData(str), HasData(str)
Update ModelExtension.cs
Cleanup
Fix Model.GetData<>() not working with structs
ModelBreakPiece works with Model.GetData<>()
FGDWriter can output classes as "choices" selector in tools
This is a workaround to be able to use strings as data in fgd choices type, which c# enums do not allow.
Move 'particle' (particles_list) modelgamedata to c#
More strict usage for AutoGenerate, FGDType and BitFlags attributes
Classes can dictate their own FGD type via FGDTypeAttribute
(So you don't have to put the attribute on every property every time)
Rename ParticleAttachment fields to be consistent
Move door_sounds modelgamedata to c#
Move prop_data to c#
Update models_gamedata.fgd
Move explosion_behavior to c#
Delete IModelGameData, Add ModelDoc.GenericGameData Attribute
GenericGameData fgd autogen
Add info about the pivot tool in Hammer to ent_door's description
Better warning message about duplicate ModelDoc nodes
Initial 'IsAtBottom' state for PreferScrollToBottom panels is true
This makes it so you don't have to manually scroll console to the bottom each game session once there are enough messages to fill the console's height
Scrolling below console message spam now keeps the console scroll pinned to the bottom
Merge branch 'master' of sbox
Hammer: Fixed shift dragging groups not updating new group's name in the outliner
Refine asset browser scroll
Default scroll is now 1 tile high (Used to be 3 tiles), free scroll is now flat 32px instead of flat 10px.
These numbers are 'per scroll wheel move'
Merge branch 'master' of sbox