6,973 Commits over 2,741 Days - 0.11cph!
Fix recipe and item requirements not deserializing correctly
Handle inventory full notifications and a little cleanup
Refactoring a ton of stuff to work with s&box
* Got rid of unsafe code in compression utils
* Replaced Guid use with a custom Uuid class because using Guids required Unsafe
* WIP refactoring network serialization to use a codegen'd binary serializer instead of JSON because System.Text.Json can't do inheritance
Refactor to support deserialize instantiating using a constructor
Support Nullable<T>
Codegen loads the project with MSBuild so it has proper type info
Add support for List<T> serialization
Support serializing byte[], ImmutableList, and ImmutableDictionary
Some bug fixes
Mark more stuff as NetSerialized
Kill JSON
Swap out the TCP server for a WebSocket server
Update Unity client to confirm things still work
Updates to get sbox working
Include some neighbor heightmap data in chunks for getting rid of seams
Remove EditorLogin
Close channels a bit more eagerly
Put cancellation in where channels may get blocked up
Server changes to allow getting UserIds in chat messages
Log frontend server connection errors to make troubleshooting disconnects easier
Fix serialization not handling null strings
Update Towns.Data to not use assets from Unity
Update Towns.Data
Add notification for when the player's inventory is full and they can't gather more resources
Update Towns.Data
Add notification for when the player's inventory is full and they can't gather more resources
Window defaults to closed, tweak map lighting a bit since things look quite dark
▇▉▊ ▉▌ ▄▇▇▋▋▅▊▉▍ ▆▉▍▌ ▌▍▌▋▋▉▆▍▅ ▌▌ ▇▄▋▄▄▇ ▋▋▄▄▅██▄▉▆
▋▍▍▋▉ ▉▍▋▇█▊ ▋▅▇ ▌▌██▇▋█▊ ▉▉▉▌ ▍▌▊
▉█▊▅▆▉ ▄▆▄▇▌▅ ▄▊ ▉▋▍ ▊▋▆▇▍ ▍▊▌▌▄█
▋█▋▄▊▍ @ ▅▌▍ # ▆▄ ▆▋▆▇ ▅▄▉▊▆▍ ▄▉▅▉█▅▉▍▋█▍▅▌
▄▍▆ ▄▇▉▍'▇ ▇▇▇▇▆▊▌ ▄▍█▉▇▆▋▊ ▇▄▆▌█▉ ▋▊▊▅▋▅▅▌▌ ▍▇▆▅ ▅▆▍▅▌▋▉▍▅▉▄
Support Comments in .addon files
Merge pull request #2 from WYVERN2742/master
Support Comments in .addon files
▌▆█ █▊▉▌▄, ▋▆▇ ▍▊▌▌█▄▊▇▋ ▄▅▉▄█▄▉ ▊▄ ▋▉▉ ▋▍▌▍█▇ ██▇▇█▋▋
▇▍▋▆▅▊▇▉▊▍▊▅▍ ▇▅▋▊▍▇ ▇▍▍█▊▇
▄▊▇▋▇▄▊ ▍▇▄ ▌▌▍ ▅▊▍▍▆█▌▆ ▇▉█▍▍▉▇ ▅▋▆▄▆, ▄▆▇▊▌▆▄▋▇▌▊▋ ▅▍▆▉▄▍▊▋▌
▄▄█ █▅▉▊▇▄ ▇█▉▌ ▆▋▄▋ ▋ ▊▌▇▍▅▄▇▌▍▌▊ ▋██▇▇ ▌█▅ ▅▌▄
█▅▇▌▋▍ ▇▌▊▆▆▆▌▊ ▊▆ █▌▉▋▍▅, ▊▍▄▌▇▄▌▇▇▊ ▅▆▌▇ ▊▅▆▇ ▍▌▌▋▌█▅▅ ▊▋ ▋ ▅▌▉▋▆█ █▋▌▉▇ ▄▇▌▊▄ ▉ ▌▇▉▇▊▆▋▄
▍▌▊▊▇▄▌▇▉ ▌▉█▅, ▅▍▉▄ ▆█▇▌▍▉▊▍ ▆▉▇ ▉▉▄▇▋▆ █▇ ▋█▅ ▋▅▊▆▊▇ ▊▌▅▉ ▊▊▊▅▇▉▄ ▇▄ ▊▄▉█▌▄▌▅ ▊▌▋▊▋▊ ▅▋▅▆ ▊▌▆ ▇▇▇▌▌▌▇▆▇
▋█▅▍▊▄ ▆▇▉▌▊▅ ▊▄▇▉ ▋▇▆▆▋▍▅ - ▌▅▄▊█ ▇▄▄▆▉▄
▍▍▍ ▆█▉▅▆▅▊▅▄ ▌▆▅▅▉▍▇▇▍ ▅▄▆▊ ▍ ▊▅▇▅▋▌▄▅▄ █▇█▉▋█
██▉▉▉▇▇▆ ▇▉ ▍▍▋▌▋▇▇ ▇▋▋▄▋▇ ▉▉▋ ▋█
▇▇▊ ▄▆▊ ██▅█▌▆ ▉▆▉▅▉█▇ ▄▅ ▍ ▍▍▅▍▇ ▋▅▍ ▄▋▉▌ ▍▄▌▍, ▋▅█ ▇▆ ▌▉█▆ ▋▆▆▄▄█▊
▇▇█▋▌▆-▆▊▇▅█▄▊▋ ▇█▆▊▋▆▊▋▊, ▅▇▋▊▉█▍, ▍▄▇ ▌█▉▊ ▅▅█ ▌▋▍▅█
█▋▉ █▋▍▇▆▅▄ ▉▊▆ ▇▄▉▋▅█▅█ ▋▋▆▋▌▅▉▇█
▍▋▉▋ ▍▍ ▅▅▋▍▊▋ ▅▌▍▌▇▌▄▌▅, ▉▉▍▍▊▍ ▇▊▌▌▌▍▋▄▋▄▉▇▄ █▊ ██▉▊▊▍▇▌▉▇
██▆▇▆▊▋ ▆▄▌█▍
▅▌▌ █▋▅▌▋█▍ ▇█ ▄▅█▇ ▄▄▍▋▆ █▇██
▋▉█▌▅▄▊▅ ▉▆▋▋▅ ▅▅▄▋▌█▅ ▌▆▄▅ █▆▍▌▋ ▊▊██▄ ▄▊ ▇▍▇▍ ▊▆▉ ▌▋▉▍▍▋▊▉▊ ▌▇▊█ █▆▇ ▍▄▌█▌▉▆ (▇▅▄ ▉▋▋▉ ▉█▉▋ ▅█▌▇▄▄▄ ▅▄▊▅█▊▅▅ ▉▇▍▌▌▊▇▉)
▆▋▌▆ ▍▋ ▄▇▍ ▄▋▆▋ ▉▊ ▄▌█▋ █▉▆▋ ██▉▅▅▊▉▋▄
▌▍▊▉▆▌▄ ▇▄ ▇▆▇ ▍▌▇
▄▋▌ ▄ ▇▌▌▍▄ ▄▇ ▌▇▉▌▊▇▇ ▊█ ▌ ▌▄▋▄▇ ██ ▆▍█▉▉▆▅ █▋ ▉▇▅▍▄▊▉▌▍▋, ▌▆▊ ▌▍▆██▆▋ ▅▍▄██ ▊▄ ▉▌▆▄█▇▍ ▋▄█ █▌▆▉▍▄▊▊▅▊
▄█▆▅▌▍▋▊▉ ▇▋▉ ▇▊ ▍▍▋▊ ▇▌▊▅▍▋▍▊▍ ▅▅▍▇▌▇▄ ▍▅▊ ▅ ▆▉▊▇, ▆▊▋▍ █▉▊▄▆▄▆▇▍▍ ▉█▆▅▍▉ █▊▍▌▆
▇▊▋▆▊▇▌▅▆ ▌▆▄ ▍▆ ▇▉▄ ▊▇▉ ▍▄▍▊▆▌▅ ▊▅▌ ▉ ▋▌▋▅▍ ▌▋▊▊█▅▊▄▆ ▇▆▍▉▄, █▍▊▇▆▆ ▋▅▄▋▆, ▅▄█ ▇▉▅▅▄█▋▆▄
▋▄▌ ▇▍ ▇▌▊ ▅▅ ▅█▊ ▅▉▉▍▆▊ ▋▌▇▇ ▅▆▋▋▆▄▌▄▆ ▅▍▍▆▇ ▌▌▌▅▅▅ ▄▌▍▊'█▊ ▊▅▆▄▉▅▇▋ ▋▅
▅▉▊ ▊▆ ▅▌▇ ▋▆ "▆▅▅█▌" ▊ ▋▆▆▆▇▅ ▇▉ █▋▋▆▊▋ ▉█▊▋ ▊▆▉▉▌ ▍▄ ▉▌▅ ▇█
▄▌▆ ▌▇ ▄██ ▋▄ ▆▄▅ █▇▊▋▄▊▋▉▇ ▋▊▅ ▆ █▇▅▋ (▆▅▅ ▍▋▌ ▄▋▇▉▍), ▅▍▊▍█▇▇▉█▌ ▌▉▊▍ ▊▅▊▋▅▊▅ ▇▍▋▄▍▆▋█▊ ▄▊▅▋ ▇█▄▊ ▊▍▄▋ ▋▍▇▉▉▄▅▋ ▇▍▆▍▌ ▌ ▍▌▌▉▄ ▊▅▌▋▆█▌▉▅
▄▍▅▅▉▇ ▉▍█ ▉▇▆▉ ▋▆▄█▆▍▉█▆ ▋▅▍█▊▍▅▄▅ ▋█ ▍▋█▌▄▇▉ ▆▍█▇▅ ▌▄▇▊ ▊▌▆ ▌▍▊▌ ▅▍▆▄▊▊▌▇ ▇▊▋▊▄▋▆▇▌
▇▆█▌▇▄▄█▆ ▇▉▆▌ ▌▉ ▆▌▆▌▌▇▌▉▅▄ ▄▉▅█▇▌████▊▆ ▄▋▍▅▉▇▇ ▆▅█▋▆▇▅ ▉█▉█▉ ▋▇▋▇▉
▍▄▌█▅▋█, ▇▌▄ ▌█▍ ▊▋▉▆▌▍'▉ ▋▌▄▆▆▍▍▍ ▍▍▌▆ ▇█▆▉ █▌▅▇▄█▇▆▇ ▄▉▌▊▍▉█▌
▌▋▄▍▊▅ ▅▋▉ ▇▌▅▉ ▄█▇▆▄▇▊▉ ▉▇█ - ▋▍▆█ ▄▆▄█ ██▉▊ ▅▉▌▊▄▉█▄▉▄▋▍▄ ▉█ ▌▅▋▆▇█▉▅ ▊▍▊▊ ▆▇▇▊ ▅▉▌▆▋
▆▊▊ ▍▄▆▍▋▆▆█ ▉▌ ▅▇▋ ▅▅▅ ▊▇▅▋█ ▍▆▋▅█▉█
! ▅▆▋ ▊▉▅▆▇▅▊ ██▊▅▄█▆▄ ▍▄▇▊▉▇▄▍ ▅▄▋ ▉▋▆▊▌▇▆▅█▌
(▌▉█ ▍▅▋▍ ▋▄▇▋▉) ▊▆▊█▄█▊ ▊▊▍▌▉▆▌▅▊█ ▍▉ ▆▍▉▇▇ ▊█▇▉▆█▋▌▍▌▇▄ ▌▉▊▉▄ ▇▋▌▋ ▍▊ ▆▉▇▆, ▄▌█ ▉▅▍▇ ▌▊▅▄█▆ ▆▄▉▇ █▅▋▍ ▇▍▅ ▊▌
▇▆▋▊▋▌ ▉▆▌ - ▄▍▋▍▋ ▍▌▊▌ ▊▆▉▋▊▅ ▅▆ ▇▄▆▅ ▅▍▉▉▄ ▆▌▋▅▍█▅ ▆▊█▍ ▄▄ ▋█▉▅▆▅, ▉▊▊ ▉▉█▉ ▉▄▋▌▄▅█ ▋▋▄▌ ▋▊▋▇ ▉▍▋ ▅▅▇▆ ▋ ▊▄▊█▍ █▊▆▅
▊█▍▅ █▌█▋ ▉▆▄▇ ▊▇▊▇▅▄ ▊▌█▆▆▆▆▄ ▌▇▋█ ▇▄▌▋▄
▊▄▄▇▋▆ ▉▋ ▉▍▌ ▆█▄▆▄▄ ▄▇ ▍▄▄▌▇ ▄▅
▌▅▅▇▄ ▄▅▆▅▌▋ '▆▆▋▄▅▍' █▊▆▆ ▌▊▍▆▅▆-▌▇▉▆▋-▇▉▇▇▉-▆▌
! ▌▄▅ ▌█▇▋, ▌▉▍▍▅▇ ▊▋▌▄▉▆
▄▍▋▆▍ ▊▉▍▍▊▇ '▊▉▊▉▌▆' ▄▍▅▊ █▇▋▍▇█-▌▄▉▋▇-▌▇▅▍▄-▋▆
! ▆▍▇ ▌▅▅▇▇█▋, ▌▉▋▄▇▉
! ▉▉▄ ▇▉▅▊▌
! █▍▄▋▆▉ ▊▋▉▌▋▆
! ▇▊▅ ▉▉▍▍▄▆ ▄▍▇▉▋▉▇▄ ▇▋▄▆██▆▅▊ ▅▍▅▄▄▍ ▆▄▆▍▇█▌▉▅▉▊
! ▇▍▋▆ █▍▆▋▅▄ ▊▍▌ ▆▍█▍▋ ▄▍ ▅▄▄▄█▉▊ ▍▉▉▅▌
! ▊▌▄ ▇█▇ ▋▍▌ ▇▌▌▊▅▇▊█
! ▄▌▋▅▊█ ▇▍▊▌▌
! ▇▇▅ ▊▌▋▆▄▆▊▄ ▉▄▄ ▄▌▅
! ▅▇▇▅▍▉ ▉▊▇▋▄▇ ▊▇▋▉▌ ▊▉▅▆
! ▍▌▌▇█▋ ▄▆▋▄▉
▉▌▆ █▍▋▋▊▄█ ▍▄▊▍█▉▇▉ ▅█▉▄▅▍▊▉ █▋▄ ▄▊▄▉▅▋▊▇▉▉
Auto switch between map layers depending on the player's current position
WIP map updates to support multiple underground layers
Merge branch 'master' into sdk42
# Conflicts:
# package-lock.json
# package.json
SDK 42
▊▄▅▉▊▋█▆ ▊▌ ▍▉▉▊▄▌▆ ▅▅▍▋▋▌ █▍▄ ▅▇
▊▄▌ ▍▆▉ ▆▆▇▍▊▋ ▌▆▋▇█▄▋ ▊▊ ▌ ▇▆▍▊▄ ▌▅▋ ▉▉▊▄ ▉▉▍▍, ▇▄▇ ▌▉ ▆█▇▅ ▉▄▉▍▍▆█
▊▌▋▊▄▉-▉█▅▊▇▅▅▋ ▊▅▇▉▋▋▇▌▆, ▅▌▉▉▉▋▊, ▋▊▇ ▅▇▊▌ ▇▍▌ ▉▍▋▍▌
▇▆█ ▌▌▅█▆█▅ ▌▊▊ ▋█▄▍▊█▌▋ ▋▍█▍▇▍▉▌▆
█▅▇▆ █▇ ▅▊▍█▆█ ▌▍█▄▅▉█▌▉, ▆▆▄▅▉▆ ▍▍▉▅▌▇▅▋▊▆▇▆▅ ▍▆ ▋▍▊▇▍▄▍▌▆█
▅▄▋▅▍▇▅ ▍▄▅▋█
▇▇▄ ▊▆▌▌▋▆▇ ▌▆ ▉▆█▌ ▉▆▍▄▇ ▋▋▆█
▊▋▌▆▇▅▋▉ ▇▊▆▆▇ ▌▅▄█▅▋▅ █▉▊▍ ▆▇▋▅▋ ▅▉▉▌▅ ▉▄ ▍▉▍▆ ▅▋▆ ▉▅▊▆█▌▍▌▉ ▄▄▍▄ ▄▍▍ ▍▇▉▌▆▄▊ (▇▅▆ ▄▄▌▅ █▄▋▇ ▄▋▊▄▆▇▋ ▆▍▉▋▆▉▍▄ ▉▍▌▉▌▄▉█)
▆▅▅▋ ▍▍ ▇▉▄ ▅▋▄▅ ▆▌ ▄▆▅▍ ▄▅▊▍ ▋▅▄▇▆▊▉▍▆
▉▆█▍▄▉▋ ▆▉ ▄▋▄ ▋▍▌
▆▅▋ ▆ ▋▄█▇▉ ▅█ ▊▌▊▅▍█▆ ██ ▍ ▋▍▍▋▇ ▋█ ▅▌▍▍▅▅▄ ▅▌ ▆▅▆▄▍▍▋▊▌▌, ▉█▄ ▆▋▇▉▍█▅ ▌▉█▆▄ ▆▋ ▆▉▉▋▊▄▅ ▆▅▅ ▇▍▌▅▇▌█▆▄▄
▊▆▊▊▆▉▍▄▋ ▋▍▄ ▊▅ ▉▄▇▅ ▍▇▍▄▊▅▅▍▉ ▄█▊▍▄▍▅ ▅▄▍ ▍ █▄▅▅, █▇▆▇ ▆▊▊▆▉▆▆▊▅▉ ▉██▆▍▌ ▉▅▋▍▅
▉▄█▅█▊▌▆▌ ▉▆▍ ▋▊ ▍█▅ ▅▊▌ ▆▄▉███▆ ▅▆▉ ▇ ▉▆▆▋▉ ▅▄▅▉▇█▆▄▇ ▉▋▉▄▇, █▄▅▅▌█ ▉▄▋▍█, ▋▍▇ ▅▊▊▉▍▇▇▄▍
▅█▋ ▋█ ▅▌▋ ▊▄ ▍▄▇ █▅▇▆▄▅ ▇▅▄▊ ▉▍▍▊▍▅▊▋▄ █▄▍▊▄ ▋▅▍▍▆▌ ▊▄▆▋'▆█ ▅▋▆▅▋▋▄▋ ▆▋
▉█▍ ▉▄ ▇▌▊ ▇█ "█▆▉▌▆" █ ▍▆▍▉▋▅ ██ ▍▍█▌▊▆ ▍▍▌▍ ▉█▍▊▌ ▇▅ ▉█▋ ▍▍
▅▇▍ ▇▌ ▋▌▊ ▄█ ▍▉▊ ▅▍▍▍▅▉▉▇▉ ▇▋█ ▇ █▊▇▅ (▋▋█ ▄▋▄ ▍▇█▅▄), ▆▍▅██▍▊█▆▊ ▇▆█▉ ▊▄▆▌█▇▅ ▆▌▊▆▄▉█▌▄ ▉▊▇█ ▅▊▅▆ ▄█▋▆ ▅▉▇▉▄▉▅▍ ▊▉▍▌▌ ▍ ▄█▆▇▇ ▆▉▅▄▊▌▍▇▍
▍▍▋▄▉▍ ▅▇▆ ▋▄▄▆ ▍▇▄▋█▊▅▊▊ ▄▋▄▉▊▍▉▋▊ ▄▅ ▅▄▋▌▍▇▌ ▋▊▅▉▆ ▆▍▊▌ ▍▍█ ▇▆▆▆ ▍▄▍▄▇▆▌▉ ▄▍▍▅▌▊▆▋▅
▋▇▍██▉▋▉▍ ▅▉▌▆ ▋▍ ▌▋▋▌▍▇▉▉▌▊ █▆▇▌▋▅▋▅▆▊▌▇ ▋▉█▆█▇▅ ▆▊▋▆▄▆▅ ▍█▋▌▅ ▌▅▌▍▆
▇▊▆▍▋▊▍, ▅▅▉ ▍▆▇ ▋▌▅█▉▍'▊ ▄▇▉▊▆▇▇█ █▍▆▍ ▉▆▌▌ ▅▅▉▄▌▄▍▋▅ ▋▄▄▄▍▇▉▌
▆▆▄▄▉▋ ▇▆▉ ▋▅▇▄ ▊▅▌▄▄▇▄▍ ▌▍▇ - ▌█▉▆ ▇██▊ ▊▅▆▍ ▋▋▉▇▅▋▆▇▌▇▅▄▍ ▅▄ ▍▄▉▌▇▆▋▆ ▄▆▅▍ ▅▆█▊ ▌█▅▄▆
█▍▌ ▆▊▊▉▉▇█▇ ▅█ ▉▊▅ ▆▌▋ ▄▉▉▅▄ ▋▅▅▇▊▆▊
Add a window component
WIP inventory display
WIP action bar (currently has a button to toggle the inventory)
Avatars now shown in chat
Animation tweaks
Yoink the camera input and nameplates from sbox-mmo
Update Towns.Data to not use assets from Unity
Add inventory notifications UI to show items that are obtained
Hook up clientside inventory handling
Add Towns.Data
Fix some color and gradient parsing issues in CSS
Support interacting with entities such as the resource nodes
Simple UI that shows interactions you can make when looking at interactable things
Spawn player in walk mode and make it more reliable
Fix map caching key not working sometimes
Fix map caching key not working sometimes
Update Towns.Common for new serializers
Server changes to allow getting UserIds in chat messages
Log frontend server connection errors to make troubleshooting disconnects easier
Fix serialization not handling null strings
▌▅▌▇▅ ▉▅▅ ▋▄▉▌ ▉▊█▅▆▅▄▇█▋▅▌ ▊█▆▉▆▆
WIP updating CSS parser to handle gradient stop points
Gradient stop points working on effects UI test page now
Merge pull request #14 from Facepunch/gradient-parsing
Fixing up gradient parsing to support stop points
WIP updating CSS parser to handle gradient stop points
Gradient stop points working on effects UI test page now
▅▉▉ █▄▋ ▅▊▊▋▍ ▌▇▍▅▉█▉ ▌▌ ▆▉▊▊▋▊█▍
▋▄▊▌ █▄▊▌▉▄ ▊▍▄▊▇▇▄▇ ▉▋▉ ▉▅ ▄▌▆▍ ▉▌▌▋█▆▆ ▌▉▅▄█▆▇ ▆▍ █▍▌ ▋▊▆▆ ▉▇▅
▋▇▅▌
▊▄▅▄ ▄▍▋ ▆▅▋▌▋▋ ▅▄▍▆▇▆▊▋▄▍▉▇
▇▉▆▇ ▆▉▌ ▋▋
▉▍▇▆▇▇ "▆▅▋▅ ▍▌▉ ▅▉"
█▍▇▅ ▉▅▉▅▊▊▋ ▇█▌▌▆▄ ▄▄▊▄▉▍▄▌▇▉▇▋▊▉▌█▋▍▇▅▋▅▉▄▌▋▉▉▄▌▇▌▍▌▌██▉▌▍.
▆▆▆▉▅▇ ▄▅▍▌▋
▍▉▄▆▌█ ▊▆▌██▌█▆▉▌▋▊
▇▄▅ ▅▇▌▉ ▍▍▌█ ▊▇ ▊▅▅ ▇▆▍ ▉▄▄▌▇▍▉ ▋▇▋
▇▊▉▇█▊ ▌▉▋ ▅▅▋▌ █▋▋ ▅▄▌▊▇▌▆▍ ▅▊▆▅▌ ▅▌▅▅▆ ▊▆▍▇▌▄▇▉▊
▅▋▌▅▊▅ ▉▋ ▉▍▋▇▉▇▊ ▅▌▇▊▊ ▉▇ ▄▊▉ ▌█▋▋▅▋ ▆▋▆▅ ▅▆█▊▄ ▇█▇▅█ ▍▅▌▇▆
▄▋▋▍ ▄▋▋▅▊▌ ▊▋▍▇▅ █▉▇▆█▌ ▇▋▉▇ ▅▄▌▆▊▊▉█▉▅▄▉ ▌▅▇█▅▌▌ █▉█▍▄▍▇▌ ▊▍ ▇▊▄▆▉ ▌▋ ▌▍▍ ▅▄▇█ ▆▄ ▌▋▅▍▍▋ ▉▌▅ ▌▋▄▌▆▇▌ ▍▉
▆█▄▇▇▆ ▉▉▆▌▊ ▇▆▍ ▋▍▅▊▊▋▍▉▄▅▄▋
Update items and translations