1,239 Commits over 1,341 Days - 0.04cph!
Remove this for now, sus is later
When OwnerTransfer is Request, make actual requests to the host for Drop/Assign/Take ownership and if host approves, then host will send the messages to everyone to take that action. Each message will then validate if was received from host
Default CanSpawnObjects to true for now
Make sure CanSpawnObjects is synchronized to clients when set from host via ConnectionInfo
Some renaming. Set OwnerTransfer direct on GameObject instead of method on NetworkAccessor
Can a connection create objects?
Send network destroy even if DestroyImmediate is called
Ownership authority flags
Let GameObject have [Sync] too (test)
Reorder enum, add [Expose]
Change up logic for can create objects - only check if we have a source
Default CanCreateObjects to true for now (this is current behavior)
Initial implementatior for ownership authority
Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
Initial implementation of Rpc authority
Remove a test log
CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
Make it CanSpawnObjects
CanSpawnObjects settable only by the host
Can a connection create objects?
Send network destroy even if DestroyImmediate is called
Ownership authority flags
Let GameObject have [Sync] too (test)
Reorder enum, add [Expose]
Change up logic for can create objects - only check if we have a source
Default CanCreateObjects to true for now (this is current behavior)
Initial implementatior for ownership authority
Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
Initial implementation of Rpc authority
Remove a test log
CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
Make it CanSpawnObjects
CanSpawnObjects settable only by the host
Copy tags from GameObject for Legacy Particle System -> SceneObject
In ParticleSpriteRenderer make sure we copy over tags from the GameObject to the SceneObject
Internal ReadOnlyTagSet
Parse kv tags into ObjectEntry.Tags and use them in SceneMapLoader to set any created sceneobject tags
Copy tags from SceneObjects to MapObjectComponent GameObject
Add some default tag from Hammer, light, text, particles
Fix NRE
Set some default tags for Particle and Light and Skybox components
Better light tags
CanSpawnObjects settable only by the host
Remove a test log
CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
Can a connection create objects?
Send network destroy even if DestroyImmediate is called
Ownership authority flags
Let GameObject have [Sync] too (test)
Reorder enum, add [Expose]
Change up logic for can create objects - only check if we have a source
Default CanCreateObjects to true for now (this is current behavior)
Initial implementatior for ownership authority
Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
Initial implementation of Rpc authority
Clear watcher var after dispose
Fixes Facepunch/sbox-issues#4725 - Fixes a bunch of issues with SCSS hotloading. Style sheets weren't actually being removed when deleted or changed. Clear previously loaded style sheets properly on hotload. Properly update when stylesheet is added after it had tried to be loaded before.
Change mount logic in OnPostCompileFinished, call SceneMap.OnMapUpdated regardless. Make async and add short delays
Fixed FileSystem.NormalizeFilename changing \ to // in paths instead of to /. This fixes hotloading of .scss files in regular razor Panel (PanelComponent was fine)
NetList, NetDictionary (#1447)
* Initial commit
* Make NetworkTableContainer into an internal interface INetworkTableContainer. Use explicit interface implemention to keep members from being exposed to public API.
* Add some exception handling
* Let the INetworkTableContainer handle writing/reading whether it's only changes or a full update
* Backwards compatibility for IList and IDictionary but it isn't ideal so throw a warning to use NetList and NetDictionary
* Fix some documentation. Add ExchangeNetList test. When new instance of NetDictionary or NetList is created, add Reset change immediately. We want clients to know it's completely changed.
* Add appropriate unit tests
* Fix for hashcode
* INetworkCustom. Add tests for NetList, NetDictionary.
* Add example usage
* Better formatting
Initial commit
Make NetworkTableContainer into an internal interface INetworkTableContainer. Use explicit interface implemention to keep members from being exposed to public API.
Add some exception handling
Let the INetworkTableContainer handle writing/reading whether it's only changes or a full update
Backwards compatibility for IList and IDictionary but it isn't ideal so throw a warning to use NetList and NetDictionary
Fix some documentation. Add ExchangeNetList test. When new instance of NetDictionary or NetList is created, add Reset change immediately. We want clients to know it's completely changed.
Add appropriate unit tests
Fix for hashcode
INetworkCustom. Add tests for NetList, NetDictionary.
Add example usage
Better formatting
Use EverythingInSelfAndDescendants when finding INetworkSpawn components
INetworkCustom. Add tests for NetList, NetDictionary.
Add [ImageAssetPath]
fix SerializedCollection NRE
Fix MemberDescription.HasAttribute not finding base attributes
Convert TextureEditor to use Sequences
SequenceControlWidget has popup instead of doing it all horribly inline
Fix SerializedObject changes not propagating upwards
ResourceStringControlWidget cleanup
Use new Sequences json for amalgamated texture
Expose some sheet access on texture
Simplify amalgamatedtexture packing, less likely to infinite loop, loads from json
Add TextureFile sequence `IsLooping `
Can use particle SequenceTime easier
Remove parse_mks.cpp
Delete mks importers (everything should use our way now)
Use gizmos for physics debug draw lines for when I need it
Comment out early out in capsule vs hull deep penetration until I get the proper fix
Implement joint breaking, break callbacks called on post step, breaking a joint disables the component
Support joint breaking on prismatic, revolute, rigid, spherical
Add EditorUtility.OpenPropertySheet
https://files.facepunch.com/garry/c9f2b5cb-f6bb-4895-a401-346d1dbf939c.png
Set qt darkmode=2 so windows will follow system theme (I think)
Add ControlObjectWidget
Add [KeyProperty]
Add KeyProperty to TextureSequence.Source
ControlWidget will create an editor for unknown types (this will likely need locking down)
Assume test mode will want rendersystemempty
Right now our tests machine doesn't have a GPU attached, for d3d11 it's fine since this runs over D3D11 Warp renderer, but not on Vulkan.
Change this if we ever do graphics tests on CI.
Running locally our tests pass fine without it
Fix QPainter was null when calling setPen errors
CompileProgress tests (doesn't work)
Fix asset browser file type size
Fix NRE in GenericControlWidget
Add BaseLayout.AddLayout<T>
Add ControlSheet.AddProperty
SerializedCollection elements return attributes of parent
SoundFileCollection doesn't use PropertySheet
VR: Fix vulkan submit, submit depth texture to compositor
VR: Update overlays from the render thread, because SetOverlayTexture might touch vulkan queue
Forward InputData and VROverlay through to Sandbox.Game to preserve compatibility
VR: Minor VROverlay cleanup
VR: Fix VROverlay xml comment
Citizen/animgraph: change the swimming 2D Blendspace from Z/X to Y/X, it was an interesting idea that unfortunately didn't pan out
Re-compile ui backdrop filter shader w/ SPIR-V block
VR: fix LOD rendering, remove bVr from CFrustum::ComputeScreenSize
Citizen/animgraph: made vertical swimming work, it's janky as hell, but at least it's reflected visually; becoming increasingly clear that this state will need custom code on the controller side
https://files.facepunch.com/maxlebled/1b2411b1/2024-01-24%2018-50-19.mp4
Fix izQueryFaceDirections using the max instead of the min distance for face separation
Fix HitPosition for Trace.Sphere https://files.facepunch.com/layla/1b2511b1/sbox-dev_CvSjg1QMpX.mp4
This should probably just be the radius of the input shape, not both
Add Skybox support to Render Tags - good for View Model Camera where we don't wanna render the skybox, or usually anything but things with a viewmodel tag
Do the same for 2D skybox
Merge branch 'master' into nt-container
Do the same for 2D skybox
Add Skybox support to Render Tags - good for View Model Camera where we don't wanna render the skybox, or usually anything but things with a viewmodel tag
Add appropriate unit tests
Backwards compatibility for IList and IDictionary but it isn't ideal so throw a warning to use NetList and NetDictionary
Fix some documentation. Add ExchangeNetList test. When new instance of NetDictionary or NetList is created, add Reset change immediately. We want clients to know it's completely changed.
Let the INetworkTableContainer handle writing/reading whether it's only changes or a full update
Add some exception handling
Make NetworkTableContainer into an internal interface INetworkTableContainer. Use explicit interface implemention to keep members from being exposed to public API.
In ByteStream.Read/WriteValueArray, use Enum.GetUnderlyingType when using Marshal.SizeOf if the type is an Enum type. This is because Marshal.SizeOf will error when used with Enum types directly. Fixes Facepunch/sbox-issues#4579
Be able to get object from CodeGen wrapped prop/method
Add GameObject.NetworkSpawn, obsolete Network.Spawn (redirect)
Fix issues with loading compiled resource json in editor space
Load/reload prefabs with SmallNetworkFiles. Read compiled json with c# fs instead of using native (#1440)
Load/reload prefabs with SmallNetworkFiles. Read compiled json with c# fs instead of using native
Add IsValidType and use that for now instead of IsValueType on the property. Support using `string` for Sync
StyleSheet String Table (#1437)
* Initial commit
* Make it better
* Clear entries in StringTable.Reset
* Remove unused method
* Remove unused using statement
* .scss and .prefab both valid small network files
* Send .prefab_c instead of .prefab
Send .prefab_c instead of .prefab
ActionGraph: Fixed nodes calling methods returning Task<T>
Enable laughter detection on lipsync, add laughter score property
Add Material.RepresentativeTexture, some tools want to know the main color texture of a material
Get rid of this, I hate it actually, should have a better way
Codegen Engine assemblies (#1438)
Remove unused codegen units
Update CodeGen.Targets
Don't report shutdown exceptions (proper)
New native sentry dsn so we don't get entity branch errors
Fix CodeGen attributes missing in CodeGen
Updated DecalRenderer to use MakeDirty
Fix decals being recreated every frame, scale properly with transform, light origin is projection point
Use MakeDirty in a bunch of places, now we can
Remove CreateWrappedMethod bs. Have VoiceComponent use [Broadcast] now. Remove manual RPC stuff from GameObject.Network.
Set map physics shapes collider to map collider component so they get collision events
Fix collider overriding shape surface with default surface when model has already set it
PhysicsShape.SurfaceMaterial updates the cached surface so it doesn't get into a situation where native and managed surface is out of sync
Play impact sound from the impact surface, not the shape surface (they can be different on meshes!)
Initialize native physics shape material to default so there's always a valid surface
Initialize material.. but properly this time
Fix BoxCollider not positioning properly
Fix BoxCollider not positioning correctly
Fix Sphere Collider fuck up
Fix GameObject.Clone not setting parent
Merge branch 'master' into stylesheet-stringtable
.scss and .prefab both valid small network files