243,037 Commits over 3,898 Days - 2.60cph!
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
Save launcher cookies to it's own file
Make sure launcher doesn't save editor cookies, they would stomped on close
Restore fix for dragging in installed cloud assets, resolves Facepunch/sbox-issues#6703
Add WithExtension(this string path, string ext)
Refactor rename flyout in asset browser, add error flyout
Fixed Facepunch/sbox-issues#6695
https://files.facepunch.com/ziks/2024-10-28/sbox-dev_do9WlbwLbF.mp4
S2P military tunnels, powerplant, trainyard, water treatment plant
Merge: from main
Tests: none
Merge from world_update_2
Setting twist bone setting for player avatar to 0.5 to fix twist bones
adjusted improvised shield handle size to make it smaller
io arrow + temp input/output materials
Fix wolves switching target even though the current is was closer, just because they couldn't see it briefly
Fix wolves sometimes getting stuck eating dropped meat when another wolves eats the meat first
Fix wolves running in circles sometimes as they overshoot their destination, when the player is unreachable
Use a different syntax for HFSM declaration which results in a more compact and readable tree
Leaderboard backup, run #
14981
multiselect person panel
select all hotkey
camera look at target pos
camera look at target gameobject
control group hotkeys
Added avatar mask support to pose copy/paste
Renamed SksViewmodel class to MagazineStateViewmodel now that it is being used for multiple weapons
Removed the useEmptyAmmoState field on BaseProjectile and exposed it as an option on the MagazineStateViewmodel component (see SetHasAmmoParam)
Updated affected weapon viewmodels: t1 smg, sks, semi auto pistol, m92, prototype 17
Added Distance and Attenuation overrides to SoundComponents
Draw range gizmos on SoundComponents when selected, respecting
Merge from mission_accept_nre
Fixed a case where a player would receive client NRE's if they were talking to an NPC and another player accepted a mission while the original player had the conversation open
Added `Range` float and `Falloff` Curve to SoundEvent. Allows you to directly specify how many units away a sound can be heard and where along that range the sound begins to falloff.
Rename Range and Falloff to Distance and Attenuation
Added Sound Distance ControlWidget. Includes quick access to some preset common distances
https://files.facepunch.com/CarsonKompon/2024/October/27_19-32-DopeyAmericancrocodile.mp4
Moved all distance-related variables into a Distance Attentuation ToggleGroup (similar to occlusion)
Add attribute for audio distance float
Slider fixes
Re-implemented PreviewSound
https://files.facepunch.com/CarsonKompon/2024/October/27_20-48-SteepBighorn.mp4
Fix SoundHandle.ListenLocal not working as intended
FloatSlider on AudioDistanceFloatProperty is now exponential, so lower ranges can be fine-tuned with more granularity
Merge from binocular_uiscale_fix
Merge from prefab_replacer_improvements
Delete prefab replacer in the Window menu, should be fully superseded by my new implementation
▄▅▇ ▉▄▌ █▍▄▄▄ ▇▋▊ ▆▅▅█▌ ▌▍▋▆▋▇▇▄ ▄▌ █▌▌▄▌▄ ▉▄ ▅█▉▉█ ▋▊▉ ▇▋▌▉▅▊ ▍▊▆▆▆▍▊▆▊/▋▇▄▉▅▅▇▌/▊▋▅ ▄▄▇▆ █▄▊▅
Added a UI indicator when the player selects a RPS option
Improved lighting on deployed C4
Phase 1 mergable (Grenades & placed explosives)
Fixed player spine look not working after ending a gesture