6,973 Commits over 2,741 Days - 0.11cph!
Make sure the CCTV resyncs its angles on the client to match the server in case they somehow desync
Client predicted pan/tilt for CCTV cameras from computer station
Calculate and use delta time between server ticks for autoturret lerping (because it uses invokes instead of update)
Add RealTimeSinceEx for similar functionality with extended precision
Remove external viewer flag logic from CCTV (unused)
Only allow changing an autoturret's RC identifier if the other settings can be changed too
Clamp aim direction when controlling an autoturret
Add client predicted aiming for RC controlled autoturret
Set up RC logic on autoturret
Make use of IRemoteControllable.Occupied to only allow one player to control drones/autoturrets at a time
Refactor computer station so bookmarks only remember the camera identifiers (no more entity IDs)
Fixes drone bookmarks not working after picking up and redeploying it
IRemoteControllable changes to use playerID instead of BasePlayer instances
Implement CanControl on Drone so only one player can control it at a time
Only allow picking up when not flying
Pick up will save the RC ID in the item, deploy will restore it
Spin the propellers when flying
Cherry pick
76944 - fix drone pitch not changing eye transform on server
Bump to version v0.0.12
Enable strict null checks and fix issues
defineModel can now take the model class as an argument - this is preferred because it will set the context's displayName to align with the model
useModel will now throw an error if there was no provider for the model
watchModel will handle null/undefined values now
Updates for API changes
Switch to error screen if the session closes
Change back to text responses for questions
JuiceboxSession changes:
* Will now automatically reconnect to the websocket
* New IsConnected property exposes the websocket status so it could be shown on the UI
* IsOpen now tracks if the session is open, with a new event to see if the session is closed for any reason
* Probably fix finalizer never running
Model update for customizing submit button text
Allow customizing the submit button's text
Fixes after pain days
Update to use new models
Mostly support drawn responses
Update to new models
Refactoring components
Model schema improvements
Update backend endpoint
Add models for requesting paintings from the web UI
Replace react-canvas-draw with react-sketch-canvas
Implement drawing form control
Switch to yarn
Add juicebox client stuff
Some stuff I forgot to commit
Pass ProjectId when joining session
▍▉▆ ██▇ ▌▉ ▆▆█▅▉▍▅ ▊▇▊▋▄ ▌▇▄▋▍
▍▆▄█▋▋▋▊, ▄▍▌ ▉█▇▊▊█▋▊ ▅▅▍▅▇▍▅ ▆▊█▇▉▉▉
▉█▅▋▄ █▉ ▋█▉ ▍▆▅▍▇▅▇▇▉▇ ▊▋▄▄▊▉▉
█▄▆▊▇ ▇▍▌▌█▍▇ ▆▅▇▊█▆▅▌▆/▍▉▅▍▄▅▍ ▋█ ▅▄▉▍▄▊▆▌▊ ▌▅ ▄▉▊█▍▇▆ ▆▄▊ ▌▉▋ ▇▉█▅▊▇▅▄ ▄█ ▆▌▌▇▄▊█▉▉ ▆▊▆█▌ ▊▄▊ ▍▋▊▌
▇▉▋ ▊▉ ▅▅▅▆▋▅ ▍▄ █▊▅▍▆▉▊▄▆▆▄▄▅ ▊█▊▊▆▆ ▇▊▌▇▅ ▋▉▉▆█ ▇▉▉▆▇█▄▍/▋▋▆▄▋▅▆
▊▉▇▉▊ ▉▉█▌▉█ '▉▇▍▆▋▄▇▉-▌▋▉▋▌▅█▋▍▉'
█▆▉▆▄ ▉▇▄▅▌▋▇ ▌██▄▍▄▋▊▊/▅▌▇▌▇▇█ ▆▍ ▇█▆▍▊▌▋▋▅ ▄▌ ▅▅▉▉▆▊▅ ▆▋▄ ▌▍▆ ▅▇█▆█▊▅▍ ▌▅ ▉▆▄▌▌▉▇▅▍ ▊▋█▍▇ ▋▉▋ ▅▅█▌
▉▉▄ ▌▇ ██▇█▌▍ ▇▄ ▄▇▅▋▇▋█▌▍▆▉▊█ ▅█▍▍▄▋ █▇▍▋▄ ▄▉▅▌▌ █▋▋▅▌▇█▇/▍▌█▍▍▊▆
▍▍▌ ▄▉▊ ▍▉ ▍▉▍▉▅▍▋ █▉█▋▆ ▉▌▊▄▋
▋█▌▍▅▍▅▌, ▍▆▋ ▌▄▍▉▅▍▊█ ▄▇▆▅▅▊▍ ▇▆▄▍▄▆▌
▇▌▅▄▊ ▌▉ ▋▋▅ ▊▍▉██▅▅▊▆▆ ▍▇█▇▊▆▅
Access list changes to allow HttpResponseMessage and HttpContent classes
Add some methods for easily handling JSON requests
Move access checks over
Add optional params for headers and cancelaition tokens
Obsolete Sandbox.Internal.Http
Update WebSocket header handling
Move Http into Sandbox.Game to align with the public WebSocket class
Tests fix
More tests
▅▄▇█▇█ ▍█▇▋▉▊▉▇▅ (▊▋▄▉▄▅ ▋█▋▄▉█ ▉▇ ▆▅▊ ▉▄▄█▆▍▊▆ ▆▆▍▉ ▍▊▋▍▉)
! ▇▌▆▉▅ ▇█▉▉▇▌▄█▄▄ ▉▌▅ ▉▇▋█▌█ ▇▌ ▍▋▌▌▇▌█ ▍▄ █▍ ▅▇▊ ▊▌▊▉▌▅▋
! ▅▍▄▄▉▆ ▊▌▍▄▋▅▇▇▊ ▊▋▍▍ ▉▉▄▉▉▋▌▌▊▌ ▋▆▊▆▄▋▋
Protobuf fix after merge
Codegen and manifest
Disable inheriting network groups on the elevator lift entity
Re-enable underground layers for network groups
▉▊▅▍▆▊▄▌ ▆▊█ █▌▌ ▌▄▅▋▆▄▊▋▆ ▊▆▄▆▅▌▌ ▅▋▌ ▋▍▆▊▉▆▇ ▊▊▍▄▅▉▄▅▋
▌▅▅ ▍▅▉-▌██▊▅▇▌▄█▉ (▊▊ ▄▍▉) █▉█▌ █▄▋▅▉ ▋▍▅▇▍▊▍▌ ▊▆▄ ▋▆▌ ▄▄▋ ▊▉██ ▍▍▆▆█▉▊▄▋█▅▇▍▍▆▆▉ ▄▋▊▌▄▋▌▋▅ ▋█▌▋█ ▆▋▅▌▍▌ ▄▉▄▇
▍▌▄▇▌ ▄▊▇▌ ▉▅▄▋_▆▋▆▌▌▅
▍▆▍▋ ▊ ▍▄▋▆ ▄█▍ ▍▊▋▌ ▅▆▉▋▊▇▌▆ ▋▉ ▌▄▅██▌▋▋▉ ▍▄ ▅█▇▋▇▇ ▇█▉▆ █▄ █▉ ▄▇▅ █▉█▋▍▄ ▄▄▉▋ ▉▉▆▆▄▋▌ ▄▋▅▍▇▍█ ▋▅▆█▍▋▍ █ █▊▆▍█ ▆▅▇▆ ▋▋▉ ▋▌▇▄█▆(▉)
█▍▍▊▉█ ▇▌▉█ ▍▋▋▋▊▇▊▍ ▅▋ ▌▆▅ ▉▊▅▅█▅ ▄▌ ▅▇▊▌ ▄▋█'▆ ▍▄▍▉▇▍▆▄ ▄▆▄█ █▉▍▇▅
▆▍▉▊▊▌▋ ▆▆▌ ▋▅▅▋▅▉▄█▄ ▋▍▌▉▇▇ ▍▊▍█ ▊▅▇▆ ▋ ▊▋▉▇▇ ██▅▊▌▇▆ █▍ ▌▅ ▋▊▄ ▊▆██▅▇▋ ▆▋▋ ▊▊▇▍ █▄▇▍ ▋▅ ▊▆ ▋▆▊ ▍▅█ ▋▄▇▌▉▇▉ █▆▇ █▄▊▅▊
▇▍▆▄▆▄ ▌▉▆▄█ ▇█ ▉▅▋▅▆ ▆█▊█▌▄▍█▍ ▌▍█▋██▊ ▇▆ ▇▌ ▌▇▍▉▄ ▌▄▍▅▍ ▄▉▆ ▌▇▊▍ ▍▅ ▆▄▌▅▄▉▋▆▄▌▌▅▍▇ ▆▇▍▉▅▇▍ ▍▄▆▄▋▇▆▍▅▋▊█▄▅ ▌▄▆▌ ▍▆▉▄ ▄▇▌ ▅▆▍ █▇▅▌▊▅▆ ▄▉▅▆ ▅▉ ▇▌▅▅▊▌▆█
▆▋▊ ▅▄█▍▍▍ ▅▊▅▆█▋▊▋▋▌▍▋█▄▊▋▋▅ ▅▍ ▅▅▆▍▉ ▆▊█ ▊▉▋▇ ▅▉▍▊▄▇▍▅█ ▇▌▍▇▋▋▊ ▄▇▇ ▆▋▍▌▄█ ▆▋ ▆▅▆ ▅▆▅▉ ▊▍▅▄▋
▇▆▄ ▉▋▆▆▊▋ █▍▇▇▆█▊▅▋▍▆▋▊▊▍ ▆▆ ▊▌▋▅▌▉▄▉▍▍▊█▅ ▋▅▉▍▋ ▅▌▌▍ ▊▍█ ▆▅▋▄▋▊▅ ▇█▊█▍ ▊▉█▇ ▋▇▉▄ ▋▊▆▄▆▊▌ ▌▇█▋ ▅▌ ▊▊ ▇▆▉▅▇█▄▊
▅▋▊ ▆▆▊▉▄▉ ▅▌▊▉▍▋▋▄▋▆▍▄▌▇▅▄▍▅▄▅▅▅▉ ▊▄ ▅▇▊█▊▆▋▇ ▅▍▍ ▄▄▇▉ ▋▅▊▆ ▄▉▆ ▇▉ ▆▆▉▉▌ █▄▇▍▉▌▇▅▉▄/▄▆▊▋▇▅▍ ▌▋▉ ▇▄▉▆ ▊█ ▍▍▄▆█▊▆ █▋▍ ▉▄█▉▅
▊▉▉ ▅▌▌ █ ▍▇▆▇▋▄ ▉▇ █▄▇▅ ▌█▄ ▇▊ ▇▍▆▄ █▊▍▇▅ ▇▋▉
█▆▊ █ ▍▄▅▊▅▋ ▋▊ ▍▄▆▍▅ ▅▉▊▇▌ ▌█▋▆▊▊▋▊ ▅▇▇▇▋▇▇ (█▉ ▄▊▆▄█▇▄▅)
▇▄▌▊▅▉█▊▊▇▋ ▉▆▍███ ▊█▄▌▌▆ ▄▇▊▆▅▊█▊▇ ▋▆▇▅▄▋▍ ▋▊▅▋▍ ▆█▋▍
▋█▊▄ ▇▌▋▉█▋ ▊▆▇█▆▅▉▉▋ ▄▇█▌▍▌▍ ▌▄ █▉▄ █▆▉▆▄ ▉▄█▄ (▊▍▌▄▉ ▉▌▉▇▊▊█ ▌▍▌ ▆▉▋▆█▍ ▊▅▍▊ ▅▄▋▅▆ ▊█▄ ▋▇▇▊▋ █▆ ▄▇▊▋▌▊▊▆)
▊▍█▋ ▋▄ ▄▍-▌▌▇ ▇▉▅▇▅▄ ▅▇▅▉█▊▌▆ ▄▇▊ ▄▇▄▍█ ▋▄▆ ▋▌▋▄▋█▉ ▋█▄▊
▊▍▊▉█▄▄▍█ ▌▌▆▅█▅▉▌▆▋▋▊▉, ██▊▄▄ ▌▆▋▅▆▌▋▋▌, ▄▇▍ ▉▊▊▄▋▄▇▄▇
! ▆▄▅ ▉▋▄▆▄ ▉▆▌▇▍▆▊ ▋▊ ▊▇█