243,025 Commits over 3,898 Days - 2.60cph!
Don't need these Hammer prefab templates anymore
Add "Create Game Object" button to Hammer outliner
Don't try add menu project if we're headless
Merge from ai_wolf_iteration
Make wolves reposition between attacks to vary the angles, instead of spamming frontal attacks
merge from AnimalRagdollUpdate
Fire fire blocking the wolves unreachable behaviour from triggering
Update decals_subrect.txt
New version from HL2, adds 2 new decals from Portal 1
Update serverevents.res
`player_say` includes `teamonly` field.
Use full paths for engine asset locations
TTT: check data_static for rearm scripts for use in workshop addons
Reduces wolf odds of trying to resist fire
▍▊█▄█ ▍▊▉▌▆ █▉▄█▇ + ▉▊▉▊▅▇ ▆▌▋█ ▍▆▄▆▆▄█▇ █▄ ▆▆▄▅▇▌ ▍▋▋▋▋▅▌
▋█▍▇█://▄▌▋.▋▊▉▉▊.▉▆▊/▅/▍▅▉▇▄▆▉▇▆▇▇█▅▍▊▋/▇▇▋▆▋▄▆▉▇█▉▉▊▊▇▋/▅
Fix wolves counting themselves as an ally when deciding if it's worth fleeing to call reinforcements and come back
Add 'copy absolute path' option
Find root paths automatically instead of just using current project
Show base, citizen, and core
Better sidebar separation
Hide cloud browser when not requested
Limit file count for now, need pagination
Docs
Apply it to some other volumes too
If we're headless, we should shut down SteamGameServer when disconnecting from network system
Pass actual version into SteamGameServer init for version. Test server list cmd
DistanceAttenuation bool is now used again
Rename `Attenuation` to `Falloff` with better Curve initializing
SoundComponent gizmos no longer rotate with the GameObject
Change default Distance value to something closer to the previous default
Updated default curve to feel more like the previous range calculation. Added some more curves to CurvePresets
Created JsonUpgrader for SoundEvent which tries to maintain previous range settings while resetting Volume to 1. Doesn't perform changes to 2D sounds or sounds without DistanceAttenuation
Moved SoundEvent into Sound folder
PreviewSound dragging is more intuitive. Removed logs
SoundEvent Upgrader fixes/adjustments
some tighter rock placement at missile silo, grass splat tweaks, rebaked hm
cleared tunnel obstruction in military_tunnel
When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically
Add jsoncpp so we can read/write json properly without fucking around with kv3
Add CMapGameObject map node with managed counter part that wraps a GameObject
* Hammer world's Scene uses HammerSceneEditorSession
* Add HammerManagedInspector that can take over if it likes the MapNode. We only like MapGameObject for now
* Run Scene.EditorDraw() on MapView for gizmos, remove old Entity.DrawGizmos
* More explicit HammerEvents. Managed map node callback interface, a little convoluted because of mapdoclib <-> hammer <-> managed. But this is easier to do callbacks and can return values
* MapGameObjects can be tied to MapMesh and generate model geometry
Add MapSourceLocation for editing action graphs in .vmap files
* Open source map when inspecting graph from .vmap
* Parent action graph editor to hammer window if editing map graph
Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene
Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority), clean up MapView loop
Managed can set DragData of map nodes in Hammer outliner, MapGameObject sets its GameObject
DragData uses QObject.FindOrCreate so it persists when going native -> managed -> native for DragData.Object to work correctly
QOutliner: Remove hidden entity list
QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away
[~] ModelRenderer don't default to box if Model is null
InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject )
Hammer Scene is serialized entirely in MapWorld & written into VPK as world.scene_c
MapInstance: Load from SceneFile from inside the VPK (A little more logic because we don't normally read managed from VPKs)
Added all temperature tea recipes (base ones are placeholder ingredients)
Added recipes to mxing table recipe list.
various fixes for cave_large_hard, cave_large_medium, cave_medium_medium, cave_medium_easy
Only try to filter by asset type if we have any filters on, fixes excluding most files from search
Cache arrows item definitions so that they can be used for comparisons in code, instead of relying on comparing hardcoded names
Show full file path in window status bar on hover again, resolves Facepunch/sbox-issues#6709
Update Dedicated Server bootstrap logs
Remove baked cubemaps code from Hammer
Fix Hammer default layout. Also add Cloud Browser by default
Fixes Facepunch/sbox-issues#6708
Steam Items table
Steam items section
Dedicated Server (#1679)
* Initial branch commit for dedi server message routing
* Try to synchronize Connection State through ConnectionInfo where possible
* Use Connection.All for filtered broadcasts so that will use ConnectionInfo if exists
* TargetedMessage support for byte[] array for already packed messages, and pass in NetTransmission flags for routing as well
* For now, one idea is to override SendRawMessage on MockConnection - for these type of Connection we can route through the host
* Store Connection internal state if ConnectionInfo doesn't exist then we can just use that
* Better synchronization of Connection State - now working as it was before, but should also synchronize other clients properly when on a dedicated server
* For filtered connection list / broadcast - if we're the host then use the connections we have, otherwise we should use Connection.All
* Include Connection with available connections when broadcasting - as Dedicated Server won't be included in Connection.All (maybe it should, or maybe people should just use Connection.Host)
* Serialize TargetMessage flags as byte
* system must be set to SendMessage to a Connection. Fix an issue with SenderId when receiving a TargetedMessage - this can't be local, so try to find the connection but if we can't find it just use the source.
* Test logs
* Some cleanup - fix issue where system isn't initialized so can't serialize. Could be wrong here, but only one system can be active so just use that.
* Remove this log
* Remove unusued code
* Add NetTransmission flag support when using SendMessage via Steam Sockets
* Don't forget to add arg to header
* Clearer docs here, only log warning if networking debug is enabled here
* Some tidy up here
* Reset local connection state to Unconnected when closing network system - some debug log for other machine
* Close these connections
* Remove this log
* Add Dedicated Server page to Project Config with its own option for a Startup Scene. When loading a game, if we're headless, use that if its set instead of the usual one.
* Don't call INetworkListener.OnActive for dedicated server, similarly don't call OnDisconnected. OnConnected will never get called anyway because it doesn't go through the handshake.
* This bit isn't needed actually
* Test boot back to main menu
* Properly get when disconnected
* Use CollectionExtensions properly
* Fix test, re-add system member
* Fix this state
---------
Co-authored-by: Garry Newman <garrynewman@users.noreply.github.com>
Remove siege weapon towing from cars
Fixed Facepunch/sbox-issues#6696
Rough ballista, catapult and battering ram crafting cost balacing
Always update the path widget even if it's not a real location
Fix asset browser not saving to cookies, bring back history cookie logic
(this is all in the project cookie now too)
Tweak timers and distances
Can't push siege weapons when standing on it
Re-appear delay, convars.
Add jsoncpp so we can read/write json properly without fucking around with kv3
Add CMapGameObject map node with managed counter part that wraps a GameObject
Hammer world's Scene uses HammerSceneEditorSession
Add HammerManagedInspector that can take over if it likes the MapNode. We only like MapGameObject for now
Run Scene.EditorDraw() on MapView for gizmos, remove old Entity.DrawGizmos
More explicit HammerEvents
Managed map node callback interface, a little convoluted because of mapdoclib <-> hammer <-> managed. But this is easier to do callbacks and can return values
And the managed side
Serialize/deserialize CMapGameObject
CMapGameObject::GeneratesEntityModelGeometry()
Expose CMapGameObject JSON to MapBuilder via IHammerMapLoader
Collect CMapGameObjects, compile them into scene.json inside the vpk and let MapInstance load them (Very hacky code needs cleaning up)
Tie Meshes to GameObject button
Implement CMapGameObject::Copy
CMapGameObject overrides child selection
Sync native transforms to managed
Can tie map meshes to GameObjects, these get built into models and any components on the GameObject with a Model property get populated by it
CMapGameObject's that generate model geometry are ignored by physicsbuilder
TieToGameObject takes TieToEntity keybind (Ctrl+T), remove button for entity as there's no entities to tie them to anymore, if you really need it the command is still accessible through F1
Replace manual scene serialization with jsoncpp, can map guids to map meshes better and it's cleaner
Add MapSourceLocation, fix editing action graphs in .vmap files
Check for MapSourceLocation in ActionGraphView
Open source map when inspecting graph from .vmap
Parent action graph editor to hammer window if editing map graph
Fix action graphs from maps not caching correctly
Only OpenContainingResource if not already open
Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene
Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority), clean up MapView loop
Managed can set DragData of map nodes in Hammer outliner, MapGameObject sets its GameObject
DragData uses QObject.FindOrCreate so it persists when going native -> managed -> native for DragData.Object to work correctly
QOutliner: Remove hidden entity list
QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away
[~] ModelRenderer don't default to box if Model is null
InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject )
Hammer Scene is serialized entirely in MapWorld & written into VPK as world.scene_c
MapInstance: Load from SceneFile from inside the VPK (A little more logic because we don't normally read managed from VPKs)
Initial branch commit for dedi server message routing
* Try to synchronize Connection State through ConnectionInfo where possible
* Use Connection.All for filtered broadcasts so that will use ConnectionInfo if exists
* TargetedMessage support for byte[] array for already packed messages, and pass in NetTransmission flags for routing as well
* For now, one idea is to override SendRawMessage on MockConnection - for these type of Connection we can route through the host
Store Connection internal state if ConnectionInfo doesn't exist then we can just use that
Better synchronization of Connection State - now working as it was before, but should also synchronize other clients properly when on a dedicated server
For filtered connection list / broadcast - if we're the host then use the connections we have, otherwise we should use Connection.All
Include Connection with available connections when broadcasting - as Dedicated Server won't be included in Connection.All (maybe it should, or maybe people should just use Connection.Host)
Serialize TargetMessage flags as byte
system must be set to SendMessage to a Connection. Fix an issue with SenderId when receiving a TargetedMessage - this can't be local, so try to find the connection but if we can't find it just use the source.
Test logs
Some cleanup - fix issue where system isn't initialized so can't serialize. Could be wrong here, but only one system can be active so just use that.
Remove this log
Remove unusued code
Add NetTransmission flag support when using SendMessage via Steam Sockets
Don't forget to add arg to header
Clearer docs here, only log warning if networking debug is enabled here
Some tidy up here
Reset local connection state to Unconnected when closing network system - some debug log for other machine
Close these connections
Remove this log
Add Dedicated Server page to Project Config with its own option for a Startup Scene. When loading a game, if we're headless, use that if its set instead of the usual one.
Don't call INetworkListener.OnActive for dedicated server, similarly don't call OnDisconnected. OnConnected will never get called anyway because it doesn't go through the handshake.
This bit isn't needed actually
Test boot back to main menu
Properly get when disconnected
Use CollectionExtensions properly
Fix test, re-add system member
Fix test, re-add system member
Remove mock GameObject/Prefab code from managed MapEntity
Clean up Entity tool as you can no longer add/target games this way
# Conflicts:
# game/editor/Hammer/Code/Tools/EntityTool.cs
# game/editor/Hammer/Code/Tools/EntityTool/EntitySelector.cs
Remove Hammer EntityIO UI
Remove unused complicated stuff from worldbuilder: point templates, some hardcoded ents, dioramas, ...
remove nav markup volumes from fgd
ActionGraph source location refactor
Consolidate options in one place
Add "Toggle Volume Visibility" Menu option in the editor