5,120 Commits over 1,552 Days - 0.14cph!
Add CanPress to IPressable
vdf FileExclusion is probably case sensitive because why not
Add ISceneEvent<T>.PostToGameObject - to target specific GameObjects with an event
Add IGameObjectNetworkEvents - https://docs.facepunch.com/s/sbox-dev/doc/igameobjectnetworkevents-fj9F6GvG5S
Tweak Rigdbody networking, so that when it works it will work
Fixed shipping source to all the citizen clothes unnecessarily
Tweak build script to make sure everything uses Release mode
Don't use MapStartupScene when loading a Scene Map, we can load it directly
Fix warning breaking build
prop_physics from maps are fully networked
We don't need to load the scene on the joining client
Add Application.ClearGame
Add Application.MapPackage
Refactoring
Refactor
Add SceneNode to more easily check if we're the owner of a GameObject
Add achievement/stats apis for maps
Fix NRE in ToClipboardString
Expose more stats/achievements stuff to ag
Expose GameObject.PlaySound, StopAllSounds to ActionGraph
Add SoundHandle.FollowParent, LocalTransform, ClearParent
Add SoundHandle.SetParent( GameObject )
Add GameObject.PlaySound, GameObject.StopAllSounds
Don't need to run sound Occlusion tests every frame
Add LocalTransform accessors
Switch everything to use LocalTransform, LocalPosition, LocalRotation, LocalScale
UI shaders accept D_NO_ZTEST
Refresh editor handles on hotload
Gizmo.Draw.WorldText obeys IgnoreDepth
[EditorHandle] can be a material icon or emoji https://files.facepunch.com/80a96818-668f-4562-9ef6-3311aaa49ba7.png
Add Tags to DamageInfo
Add Component.IPressable
Add GetComponent , AdComponent etc
Update PackageDto.cs
CreateLobby will refuse to create a lobby if we already have a network system
Add ISceneStartup event (https://docs.facepunch.com/s/sbox-dev/doc/iscenestartup-UaHEQHresW)
When selecting a map auto select the ParentPackage game, if set. Default to Walker if not.
Remove old "launcher", add map select to gamemodal
Make package selector acceptable
Only show collider Trigger actions if enabled
Add ActionsComponent to replace Component.OnComponentUpdate etc
Hide Component Actions in inspector (right click header to get them back), show Actions with other properties
Change most Menus to use ContextMenu so they get deleted when closed, instead of hanging around invisibly forever
Fix Menu.AboutToShow not getting called unless opening as a modal
Tweak node/actiongraph design
Can drag drop cloud prefabs into the scene
Wrap CallbackBatch exceptions so we know where they're being called from
Explicitly load the steamapi64 dll from the bin folder
Fix menu music NRE
Make Web.DownloadFile a bit more resiliant
Fix NRE in Component.Loading
Fix NRE in TrailRenderer
Fix error reporter not reporting some package errors
TextRenderer exposes BlendMode
Fixed ScreenPanel not keeping screen dpi in bind when scaling down
It's fine to call NetworkSpawn multiple times, just ignore it
Wrap GameObjectSystem's init in a Scene.Push
Add JsonObject.GetPropertyValue
Fix errors
Fix exception when creating new scene
MapInstance - load resources from loading instance
MapInstance - allow loading scenes as maps
Publish scenes as maps
When publishing a map, try to set ParentPackage
Add Flag.WithFlag( Flag, bool )
Add GameObjectFlags.EditorOnly
Make map preview less annoying
Add Component.DestroyGameObject()
Revert "Rename Component.Destroy to Component.DestroyComponent (redundant naming but it avoids confusion with GameObject.Destroy)"
This reverts commit 035076021d71fcd5a26354b916815f3da40d22fc.
This should fix errors not having version information
Rename Component.Destroy to Component.DestroyComponent (redundant naming but it avoids confusion with GameObject.Destroy)
Move Hammer stuff to its own project
We don't need <Vulkan> in the editor title anymore
Cleanup
Fix map fog sometimes not scaling by fogcontroller
Fix duplicate not working on NotSaved gameobjects
Don't print the name of every loaded resource
Move a bunch of shit from GameNetworkSystem.* to Networking.*
Revert that experiment, there is no benefit
HashSetEx actually doesn't need to defer adds
Revert "Remove GetAllComponents( Type type )"
This reverts commit 1df4c2e1841f058432fdb446fccd5dcb93e0648f.
Implement GetAllComponents( Type type )
Log files use the process name
Remove GetAllComponents( Type type )
Experiment: Does the boxing to object make any difference here
Update TargetFramework to net9.0
Fix changed MemoryMarshal.Write
HotloadDll checks for net9.0
Replace FormatterServices.GetUninitializedObject with RuntimeHelpers.GetUninitializedObject
Package updates
Use ReadExactly instead of Read
Fix MemoryMarshal.Write usage
Comment out obsolete for now
Disable PatchAMSI
Update compiler embedded refs
Update embedded System.Runtime.Versioning.TargetFramework version
processor ignore net9 folder too
Whitelist System.Runtime.CompilerServices.NullableAttribute
Whitelist NullableContextAttribute
Whitelist RefSafetyRulesAttribute
Revert "Fix rigidbody transform change, check change against target local, not the interpolated transform, remove proxy check"
This reverts commit e08435cdc7b5412e81fa752af22c2eb35b48ce4c.
Revert "Experiment: batch transform change callbacks and run in one place, instead of whenever the transform changes"
This reverts commit 858eebcfd1e95eb0cd13cbf32043d39d8a4622b1.
GameTransform.DisableInterpolation is a static, remove AddToInterpolationSystem + RemoveFromInterpolationSystem
Reduce HashSetEx initial size
Experiment: batch transform change callbacks and run in one place, instead of whenever the transform changes
Test HashSetEx with iteration counter and deferred changes
Fix NRE in UndoGameObject
Lets try this "real" ConcurrentHashSet to see if it matches the performance of the old BufferedHashSet. I have a feeling we're going to be better off special casing the collections for our updates to maximize perf
Since BufferedHashSet is more expensive now, lets try to avoid it where we don't need the concurrency
Don't repeat NetworkSpawn logic, filter down to one function
Network the GameObject enabled status
Add ISceneLoadingEvents - Allows listening to events related to scene loading and creating loading tasks
Add Game.TakeScreenshot
ComponentFlags.NotSaved is ignored when networking
Move ShouldSave logic to SerializeOptions
Adding OnUpdate etc will refresh directory on hotload - avoiding the need to stop and start the game for them to start working
Change BufferedHashSet to use a ConcurrentDictionary under the hood
This hopefully fixes issues occurring when iterating multiple times, inside itself, and Count not changing until iterating. We should rename this to ConcurrentHashSet at some point.
Make objectindex a BufferedHashSet so Scene.GetAll<T> doesn't suffer from modified while iterating
Add GameObjectSystem<T>