248,635 Commits over 3,928 Days - 2.64cph!
Code cleanup, comments
Deleted old prefabs
Ballista reloading client prediction
Fix UI sounds still playing spatially.
Don't early out of model collider when there isn't a bone for part
▉▍▌▉▆▆▉ █▅▋▄▋▄▌ ▆▆ ▄▋ ▋▄ ▋▊▉▇
BallistaGun now inherits from BaseVehicleSeat and is spawned as a seat
Fixes a lot of annoying issues and decouples it even more
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)
When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically
Don't need these Hammer prefab templates anymore
Add "Create Game Object" button to Hammer outliner
HammerMesh component, explicitly set on GameObjects that have a map mesh attached
Fog TAA cherry pick with the new changes we have on fog lightbinner, removes fog clipmaps entirely too
SMG muzzle prefab updates & regression fixes.
Allow physics shape to associate with a bone index so SceneTraceResult.Bone works when hitting physics shape, as the summary suggests https://files.facepunch.com/layla/1b3111b1/sbox-dev_016MWrhQrI.mp4
Remove the need for CGameTrace and delete it, the less trace result structs we have, the better
merge from qol_io_arrows -> main
Add ability for IO arrows to be offset per port
- made water barrel top arrow offset to make it easier to see
merge from flashlightfixes/fulloverhaul
merge from mixingtable_click
Handle entities that have IO implemented as a separate child entity
- calculate the offset between the child & parent
- manually offset IO ports to account for this
- Reduce distance padding
- Fix a bug causing a rope to go to 0,0,0
Cherrypicked siege harness
Update: skeleton of a server profiler
- Most of the native imports in place
- Implemented the general flow of per-frame tracking
In theory should be able to track function entry/exits, but can't test until a decide on an early enough method of initialization.
Tests: none, too early
Increase prominence of wisps
Don't let the user drag AssetPicker tabs about/outside the window (lol)
AssetPicker: Disable type facet dropdown if FilterAssetTypes is specified
AssetPicker: Default to project assets folder when no initial selection is given
Fix CloudBrowser not saving/restoring from cookie
Shift cloud locations around again, this makes more sense I think
AssetPicker: make sure we're raising the tab you'd expect by default
- Towing joints are now saved/loaded
- Towing graphics are loaded properly along with the joints
Added blockout siege harness to testridablehorse
Updated boulders ui pickup sounds
Back to the generic burlap bag as dropped item prefabs for now
Add more optional functions to IPressable, for hovering and update
Slow down default player turn speed
PlayerController camera can be moved left/right
PlayerController has "use"ing built in
Prevent fsm from waiting one frame to change state when a state succeeds or fails
Fixes wolves sometimes pausing for one frame and losing momentum
Added some infinite change protection in the hypothetical case a group of states keep cycling during the same frame
After 3 same-tick changes we postpone the next state change for the next tick
Move Pressing to PlayerController
Boulder and explosive boulders dropped item prefabs and icons
- get sun color from proper components
- sharpen density curve to improve definition
- also sharpen density-coverage falloff curve
- better approximation of inner glow/multiple scattering and ambient scattering
Show catapult ammo model in the basket, based on the item loaded
slow and greedy starting point for marching cubes
- not calculated in correct coordinate space or interactable, but can at least present the correct mesh for a given 3D dataset
Have wolf fsm tick slower when no player is nearby, similar to senses
Switch case node
https://files.facepunch.com/ziks/2024-10-31/sbox-dev_YiyL34b2CY.mp4
Fix serializing empty arrays