4,789 Commits over 1,371 Days - 0.15cph!
Initiailize target local with Transform.Zero. SceneUtility.GetPrefabScene never actually saves the cached scene to the var. ( Fixes Facepunch/sbox-issues#5511 )
Independently Interpolated Transform Parts + Other Fixes (#1577)
Call transformchanged in clearinterp
More cleanup, fix offset, make FixedUpdateInterpolation bool internal for now until decide how we wanna expose
Make LerpTo expected behavior - same as Vector3.LerpTo, Rotation.Lerp etc
Everything in this branch - cleanup
GameTransform.FixedUpdateInterpolation (bool) (def: true)
Restore old Rigidbody code, remove RigidbodyInterpolation enum etc. Remove warnings that CharacterController needs to be used in Update (not now)
Expand and expose SystemInfo
* add cpu and ram info to Hardware, expose to api
* Rename Hardware -> SystemInfo, add ProcessorCount
Wrapped method resume will get async keyword when wrapped method has it
Fix tests
Silently term any new children created from children's OnDestroy when clearing scene. Fixes Facepunch/sbox-issues#4855
Rigidbody interpolation mode (def: Interpolate)
Silently term any new children created from children's OnDestroy when clearing scene. Fixes Facepunch/sbox-issues#4855
Wrapped method resume will get async keyword when wrapped method has it
Expand and expose SystemInfo
* add cpu and ram info to Hardware, expose to api
* Rename Hardware -> SystemInfo, add ProcessorCount
Merge branch 'master' into networked-model-physics
Initial experiment with networked Model Physics
Test branch for only interpolating transforms set in Fixed Update for Rigidbody, with backwards compatibility for Character Controller - but output warning when using CharacterController.Move within a Fixed Update context that it should be called within OnUpdate instead. This is all separate to networked transform interpolation which remains untouched.
Test branch for only interpolating transforms set in Fixed Update for Rigidbody, with backwards compatibility for Character Controller - but output warning when using CharacterController.Move within a Fixed Update context that it should be called within OnUpdate instead. This is all separate to networked transform interpolation which remains untouched.
Respawn players in lobby state too
Use display name from connection
Player dont collide with player (move helper will still collide)
Add time since last connect to prevent join spam for lobby
Set launch mode to normal
Remove this log, add resources
Add post processing effects
Better ragdoll + remove disease when time is up
Implement Drop Random Bomb and Teleport disease effects
Add break method but I think model needs updating break pieces
Fixed a bunch of collision issues - pickups destroy when exploded
Winner display fixes. Lobby state = paused
Add custom Move Controller as need to override some Character Controller behavior
Add references in prefab instead of finding them in OnAwake. Add passable ignore layer tag for Move Controller
Re-implement pause system for states
Added initial Disease support with sprite. Added initial Pickup system with sprites. Better bomb collision logic(?)
Use ITriggerListener (duh) can now pickup pickups
Fix lives showing for empty player slots
Need to make all Bombable objects Networked Objects
New project structure
Move most synchronized variables to HostSync - add wrapper for HoldingBomb
Only the host can call Respawn
Show respawn effect at the correct position when respawning
Start adding Bomb placement logic with networking
Update some obsoletes
Better collision logic for Player vs Bomb (I think )
Add SolidBlock component. Update all border blocks to have solid tag. Add ParticleSimulator
Make sure player stays on ground (until find a better way to do conditional collision with bomb per player)
IResettable -> IRestartable. Implement OnRestart for Bombs. Bombs can hit players
Add player death logic. Start trying to implement death ragdolls
Fixes to restore some old and intended behavior, additional documentation
This shiz is confusing - try this
When copying and pasting GameObjects in the editor - use the world transform instead of the local transform ( Fixes Facepunch/sbox-issues#4514 )
Shapshot -> Snapshot in loading screen ( Fixes Facepunch/sbox-issues#5439 ) 😂
Some clearer documentation
Interpolation v2 (#1516)
* Test
* Clean up - use TransformInterpolate class
* Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
* Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
* Fix to allow interp property to be set by GameObjectHeader
* Serialize the interpolation bool with GameObject
* Combination of fixed update interpolator and networked interpolation buffer. Working nicely
* Some cleanup
* Some extra docs + let's call it Query to match the other class
* Use Time.Now
* Restore backward compat LerpTo
* Cull after, ensure move direct to last tx if query out of time but entries remaining
* Fix formatting
* Tiny tidyup
* Add InterpolationSystem (GameObjectSystem) - update GameTransform to Add/Remove GameObjects from this system as appropriate
* Actually enable it
* Add new Interpolation stage - the updates need to happen at the right point. Clear interpolation if interpolation isn't enabled and we receive a transform update
RPC Filter (#1549)
* Update documentation
* Add recipient filter struct, type, and Rpc.FilterOnly and Rpc.AllExcept methods
* Update documentation
* Change filtertype options
* Move to Connection.Filter. Can pass optional filter to Broadcast. Use this for Rpcs with current filter.
* More docs
* Same logic for static Rpcs
* Add single Connection overloads
* this can be made private
* Fix ambigious docs
* Inverse logic (doh!)
* Use hasvalue etc
* Some fixes
* Remove duplicate docs
* Better docs
* RPC in log for consistency
* Add overloads for filtering RPC recipients based on a predicate
* FilterOnly -> FilterInclude. AllExcept -> FilterExclude. Only one RPC filter can be active at any time
* Add Rpc.Resume. This handles disabling and restoring filter if the Rpc.Caller is us before and after resuming. Use this everywhere.
* Restore the old filter here even if e.Resume() throws
* Early out / cut nesting
* Tidy up
Restore the old filter here even if e.Resume() throws
Add Rpc.Resume. This handles disabling and restoring filter if the Rpc.Caller is us before and after resuming. Use this everywhere.
FilterOnly -> FilterInclude. AllExcept -> FilterExclude. Only one RPC filter can be active at any time
Add new Interpolation stage - the updates need to happen at the right point. Clear interpolation if interpolation isn't enabled and we receive a transform update