* WebSocket-based data transfer system
* Move resource downloads/uploads to the new transfer system
Should drastically increase the permitted practical size
* Transfer impl for Lidgren
* Async impl for receive stream
* Use unbounded channel for Lidgren
* Add metrics
* More comments
* Add serverside stream limit to avoid being a DoS vector
* Fix tests
* Oops forgot to actually implement sequence channels in NetMessage
* Doc comment for NetMessage.SequenceChannel
* Release notes
This makes it so players aren't in the Sessions list anymore when their status is Disconnected.
Fixes SS14's lobby code sending lobby status updates to the just-disconnected player, which logs an error with the recent net message changes.
WHY WAS THIS A BYTE.
This prevented having more than 255 people on a server, beyond that the game might get stuck as people's player states wouldn't necessarily get sent.
* Removed IBaseSession, pushed all members down to ICommonSession.
* Pulled all members of client IPlayerSession into ICommonSession.
Marked client IPlayerSession as obsolete, use the base ICommonSession.
* Restricted setter access for properties in ICommonSession, only engine should be setting them.
* Fixed ping implementation on server.
* Moved AttachedEntityUid to ICommonSession.
* Added a shared IPlayerManager and pulled some common properties down to it.
* Added a shared player Filter class that holds a set of recipients in a networked call. Very useful for selecting recipients in a shared context.
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
* Some stuff for auth
* Holy crap auth works
* Enable encryption even if no auth token is provided.
It's still possible that the public key was retrieved over HTTPS via the status API, in which case it will be secure.
* Fix integration test compile.
* Secure CVar API.
* Literally rewrite the auth protocol to be minecraft's.
* Better exception tolerance in server handshake.
* Auth works from launcher.
* Fix some usages of UserID instead of UserName
* Fix auth.server CVar
* Kick existing connection if same account connects twice.
* Username assignment, guest session distinguishing.
* Necessary work to make bans work.
* Expose LoginType to OnConnecting.
* Fixing tests and warnings.
* Added struct skeleton for EntityCoordinates.
* Polish EntityCoordinates, add tests, add EntityCoordinates to Transforms
* Doc cleanup
* Remove useless code
* Return offset 0 when you don't have a parent
* Test for making sure EntityCoordinates for entities without parents have offset 0
* Use parent transform's GridId for GetGridId.
* Adds various methods, checks and tests
* Replace GridCoordinates with EntityCoordinates
* EyeManager.WorldToScreen fix
* Address reviews
* Fix za buildo
* Fix one transform test
* Fix the remaining tests
* Remove duplicate
* Remove another merge duplicate
* Fix property
* Rename most usages of GridCoordinates to EntityCoordinates.
* Add WithEntityId method to EntityCoordinates.
* Fix EntityCoordinates usage in GetEntitiesInRange
* Remove cursed IMapGrid method, change naming.
* Makes GridTileLookupSystem use EntityCoordinates
Co-authored-by: Acruid <shatter66@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
* implements shared string dictionary and handshake from net-code-2
* fix unit test
switch to szr sawmill
* try to silence some warnings around ZipEntry
* rebase and use system zip instead of icsharplib
fix rebase artifacts
* Update Robust.Shared/Interfaces/GameObjects/IComponentFactory.cs
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
* Apply suggestions from code review
* Apply suggestions from code review
* Update Robust.Shared/Serialization/RobustSerializer.cs
* since no longer gathering from paths, make string splitting more robust
* make string gathering ignore strings under 4 chars long
make string gathering yet more robust
* add limit to size of mapped strings
* add more string data to feed into shared string dictionary from YAML files
add JSON importer but don't parse RSI metadata yet
fix typo that breaks nulls in MappedStringSerializer
minor refactoring
make string splitting more robust
add WriteUnsignedInt / ReadUnsignedInt for validating WriteCompressedUnsignedInt / ReadCompressedUnsignedInt aren't bogus
* comment out some log statements
* minor refactor, reorder logging
add null check due to smart typing NRT checks
* Add doc comments, readability improvements to MappedStringSerializer
The protocol, handshake, and internal logic are now more documented.
The main area that could still be improved is the documentation of how
the cache system works, but the code is readable enough for now that it
isn't immediately necessary.
* add documentation, organization
* update some more doc comments
* add flows to doc comment for NetworkInitialize
* more documentation and organization
* more docs
* instead of retrieving INetManager by IoC, assign when NetworkInitialize is invoked
* "document" the regex
* Update Robust.Shared/Network/NetManager.cs
* add missing check for LockMappedStrings
* Update Robust.Shared/Serialization/RobustSerializer.MappedStringSerializer.cs
Co-authored-by: ComicIronic <comicironic@gmail.com>
* change to warning instead of throw for unlocked string mapping
Co-authored-by: ComicIronic <comicironic@gmail.com>
* Project file refactor
Move all the .csproj files to the new .NET Core style.
This doesn't make any difference for compiling for Framework,
but it does reduce a ton of useless boilerplate.
As an extension of this, killed a bunch of uncompiled & unmaintained .cs files.
Compiling for release (to profile) works now.
Removed AnyCPU targets from the solution file.
* Fix compiler warnings.
* Removed unused method TileRef.GetStep().
Removed unused property TileRef.TileSize.
Removed unused property TileRef.Tile, made the field public with the same name.
Made the TileRef struct readonly.
Removed property TileRef.TileDef.
Removed property TileRef.LocalPos.
Renamed GridTile to GridIndices.
Implemented IEquatable on TileRef.
Implemented Equality operators on TileRef.
Added PublicAPI attribute to TileRef.
Added doc comments to TileRef.
* Modified Tile:
Added the PublicApi annotation.
Made struct readonly.
Filled out doc comments.
Changed auto properties to readonly fields.
Renamed TileId to TypeId.
Added a static Empty tile to the struct.
Implemented IEquatable.
* Modified MapCoordinates:
Added PublicApi attribute.
Implemented IEquatable.
Filled out doc comments.
Removed Map property.
* Modified ScreenCoordinates:
Filled out doc comments.
Added the PublicApi attribute.
Implemented IEquatable.
* Modified GridCoordinates:
Removed method IsValidLocation.
* Removed property GridCoordinates.Grid.
* Removed GridCoordinates.Map.
* Removed GridCoordinates.MapId.
* Removed property GridCoordinates.IsWorld.
Removed constructors taking a MapId.
* Removed static IoCManager calls from GridCoordinates.
* Modified GridCoordinates:
Added attribute PublicApi.
Filled out doc comments.
* Filled out doc comments for MapGrid.
Filled out doc comments for MapIndices.
Misc refactors for both.
* added command to teleport grids.
* Added method Box2.Intersect.
Added method Box2.Union.
Placement manager now spawns new grids to place tiles not connected to an existing grid.
RobustToolbox projects should be named Robust.*
This PR changes the RobustToolbox projects from SS14.* to Robust.*
Updates SS14.* prefixes/namespaces to Robust.*
Updates SpaceStation14.sln to RobustToolbox.sln
Updates MSBUILD/SS14.* to MSBUILD/Robust.*
Updates CSProject and MSBuild references for the above
Updates git_helper.py
Removes Runserver and Runclient as they are unusable