4,789 Commits over 1,371 Days - 0.15cph!
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
Need to set viewmodel camera constantly to main camera position to have particles render in the right place?
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.
Add initial View Model support - make MP5 use view model to test. Camera borked
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
Post process, grunt when hurt, health regen - visualize health
Attempt to make sounds better until get some new ones
Deploy starting weapon when respawning. Don't increase ammo count forever each respawn
Added basic lobby menu to create or join servers
Add temporary kill notification in chat until I sort a killfeed
Respawn
Actually show Kills and Deaths
Add scoreboard with kills/deaths, add ragdoll controller and ragdoll on death. add HUD with ammo count. Add rudimentary crosshair with hitmarker anim.
Add nametag. Configure chat. Add PickupSpawner gizmo stuff
Added pickup system - change the way deploying and holstering works
Add SpawnPointStripper component for when you want to remove all spawnpoints that come with a map
Add crouch support but disable for now. Ensure head doesn't clip through stuff when jumping
Lower sprint speed. Use Killhouse as test map.
Less silly API for one shot particle
Don't always play hitmarker
Add smoke puffs when firing. IHealthComponent. Implement health / damage for players. Network damage. Blood effect
Add ClothingContainer.ApplyWithComponent extension.
PlayerDresser uses ApplyWithComponent
Add WeaponComponent.Initialized - set ModelRenderer OnAwake
Add ClothingComponent - update visibility for head clothing depending on if proxy, set to cast shadows only if not
Add Facepunch.Arena.ChangeAttribute
Remove old WasDeployed OnUpdate check - use ChangeCallback
Be able to get object from CodeGen wrapped prop/method
Added AmmoContainer, ammo system and reload
Cheeky business to hide player's head for owner so it will never clip, but still render full shadow with head
Can use GetAttachment and use muzzle for shoot pos now (thanks layla!)
Added SoundSequenceData resource and SoundSequence class. Add reload sound sequences to USP and MP5.
Add FireSound and DeploySound to WeaponComponent
Add Extensions.GetTemplate for PrefabScene
Kind of better handling of switching weapons on network / mp5 test
Basic spread and recoil, auto fire
Fire Rate, Deploy Time, GiveWeapon, SelectNextWeapon, SelectPreviousWeapon