* Create TurfSystem equivalent for and obsolete TurfHelpers.GetTileRef
* Fix EntitySystem uses of TurfHelpers.GetTileRef
* Fix EntitySystem uses of TurfHelpers.TryGetTileRef
* Fix construction condition uses of TurfHelpers.GetTileRef
* Fix last use of TurfHelpers.IsBlockedTurf
* Create TurfSystem equivalent to and obsolete TurfHelpers.GetContentTileDefinition
* Fix uses of TurfHelpers.GetContentTileDefinition(TileRef)
* Fix uses of TurfHelpers.GetContentTileDefinition(Tile)
* Create TurfSystem equivalent to and obsolete TurfHelpers.IsSpace
* Fix EntitySystem uses of TurfHelpers.IsSpace(Tile)
* Fix EntitySystem uses of TurfHelpers.IsSpace(TileRef)
* Fix remaining uses of TurfHelpers.IsSpace
* Fix uses of TurfHelpers.GetEntitiesInTile
* Delete TurfHelpers.cs
* Add GetEntitiesInTile lookup methods
* Convert some GetEntitiesInTile methods to LookupSystem extension methods
* Use new GetEntitiesInTile methods
* Recycle spiderweb hashset
* Recycle floor tile hashset
* grass touch protocol - Rebases to latest master to fix conflicts
* aight local tests are passing lets see if our golf works
* It is 5 am and our ass COMPLETELY overcomplicated this lmaooo
* Addresses feedback - Clarifies comments, swaps internal var names for grasstouchless and selfdestructive, makes the third tier a little less demanding, and fixes 1 hours
* Addresses review - conflict fix
* This too
* Axes playtime exclusion for ghosts
* Use switch expression
code style nit
* Refactor/cleanup
Use IGameTiming.RealTime to track time instead of DateTime. Use nullable instead of magic values.
Expose the current day value through a property that is always up to date, instead of making the API to read the CVar that updates at inconsistent times. This also makes it trivial to debug with VV.
Other minor cleanup like using string interp, code style fixes, comments, etc.
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* Thieves can innately pickpocket (#107)
Pickpocketing a skyrim guard's armor off
(cherry picked from commit 21b9f1ddb251ea3c7c6803e78871abefcaecbfb4)
* this isnt moff
* Make predicted, cleanup
* !skating-basketball
* orks are NOT the best trollface
* Implement much more sensible component replication prevention
---------
Co-authored-by: DuckManZach <144298822+duckmanzach@users.noreply.github.com>
* Initial commit
* Also avoid the friction change doesn't make turned-off conveyor belts continue going
* Ensurecomp on conveyor starting
* i give up
* Minor brackets edit
* Documentation
* fix: only show pipe layer popups to the user changing them
* fix: don't show pipe layer subfloor popup when not using a screwdriver
* fix: properly pass down user and used for serverside pipe layer changes
Technically this doesn't matter as the Shared codepath for this method
doesn't actually use these on the server: only the user is used for a
clientside popup. Still, will be good to have these for future changes
that might need them.
* Add the instrument to the MIDI channel selector
* Reviews
Adds support for chained masters
Makes the channel UI update on its own when the midi changes (Works with bands too!)
* add to admin logs and limit track count
* Limit track names by length too
* remove left over comment
* Requested changes
* Reviews
* Use a struct to hold the items for `Directions` in `SunShadowComponent`, fix serialization.
* actually make them datafields...
* Add NetSerializable to datadef
* this is why we can't have nice things