Commit Graph
87 Commits
Author SHA1 Message Date
TheShuEdandGitHub 7dbb2a2614 Clean up Player manager (#6566)
* file-scoping Player manager

* readonly playerManager

* Update PlayerManager.cs

* revert readonly
2026-06-28 14:31:06 +02:00
83c2a1be11 [Dependency] source generator part 2 (#6550)
* [Dependency] source generator

No more reflection, no more codegen at runtime

Also various changes to Roslyn helpers to make this easier to write.

Requires all types with dependencies to be partial and not have readonly dependency fields. An analyzer enforces this at warning level, the previous injection strategies have remained in the code *for now* as a fallback.

No fallback is available for [field: Dependency] properties, due to a Roslyn bug.

Code Fixes exist. We love Roslyn

* Apply dependencies generator changes to all code

* Release notes

* Preprocessor got hands

* Handle nullable dependencies

These are bad but gotta deal with it.

* Apply suggestions from code review

Co-authored-by: Moony <moony@hellomouse.net>

* Fine, let's not use collection expressions

---------

Co-authored-by: Moony <moony@hellomouse.net>
2026-05-08 12:38:33 +02:00
Pieter-Jan BriersandGitHub dc1464b462 High-bandwidth transfer system (#6373)
* 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
2026-01-19 20:44:44 +01:00
PJB3005 63ef667167 Add [NotContentImplementable] to server interfaces 2025-12-23 18:44:01 +01:00
PJB3005 e8f2972f69 Remove unused IPlayerInput interface 2025-12-23 18:43:52 +01:00
PJB3005 8cbc5d4cd8 Raise PlayerStatusChanged after removing disconnected players
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.
2025-08-05 17:31:29 +02:00
TayrtahnandGitHub 196e59b7e4 Clean up all missing EntitySystem proxy method uses (#6027)
* Clean up all missing EntitySystem proxy method uses

* Restore comment

* Fix bad change that caused closure allocation

* tuple

* Revert "tuple"

This reverts commit 14581a40aa.

* Revert "Fix bad change that caused closure allocation"

This reverts commit 215b2559ed.

* Revert "Restore comment"

This reverts commit 4a47a36557.

* Revert "Clean up all missing EntitySystem proxy method uses"

This reverts commit 3b1fe4ce7f.

* Redo with improved code fixer.
Let's see how it fares this time
2025-06-21 00:05:09 +02:00
Leon FriedrichandGitHub ad929c9955 Fix ICommonSession.Ping (#5453) 2024-09-20 16:43:12 +02:00
Pieter-Jan Briers ceda39813d Fix MsgPlayerList being capped to 255
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.
2024-06-16 21:31:57 +02:00
Leon FriedrichandGitHub 75626a86a3 Add dummy sessions for integration tests (#5202)
* Add dummy sessions

* if FULL_RELEASE
2024-06-05 16:50:06 +10:00
Leon FriedrichandGitHub 58e0b62145 Merge ActorSystem and IPlayerManager (#4530) 2023-11-11 12:50:21 +11:00
Leon FriedrichandGitHub 5a6c4220fc IPlayerManager refactor (#4518) 2023-10-24 20:18:58 +11:00
metalgearslothandGitHub 268eb862ea Refactor UI a bit more to shared (#4343) 2023-09-11 20:21:23 +10:00
metalgearslothandGitHub 3fd731d917 Network entity ids (#4252) 2023-09-11 09:42:55 +10:00
DrSmugleafandGitHub 85d15c21e1 Move IPlayerData interface to shared (#4339) 2023-08-30 21:17:32 -07:00
Leon FriedrichandGitHub ad1b9b1d2b Make ActorSystem.Attach() detach from existing entities. (#4146) 2023-06-19 03:24:17 +10:00
Leon FriedrichandGitHub 2c529510e7 Maybe fix random test failures (#4135) 2023-06-11 05:45:05 +10:00
ce703223b5 Deprecate IPlayerSession methods to attach/detach entities to a player. (#4127)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-06-10 00:06:15 +02:00
Leon FriedrichandGitHub f3364a196c Client-, shared-, and server-side ConfigurationManager (#3477) 2022-12-31 04:04:49 +11:00
MorbandGitHub 5cdae85e9f Call OnConnect method for player session (#3547) 2022-12-02 10:19:02 +11:00
Leon FriedrichandGitHub 7b59fbd3ef Audio and other misc replay related changes (#3471) 2022-11-22 11:49:59 +11:00
1646297039 Remove most static IoCManager. accesses from engine. (#3466)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-11-15 22:00:28 +11:00
Leon FriedrichandGitHub 1587ee3c93 Store username inn player data (#3265) 2022-09-19 17:44:00 -07:00
Pieter-Jan BriersandGitHub e3b26e80bf Sync CurTime base. (#2858) 2022-05-28 13:03:42 +02:00
Pieter-Jan Briers 45d906ba7e Deprecate CreateNetMessage<T>. 2022-04-15 18:47:42 +02:00
metalgearslothandGitHub 1dbbb08250 Reduce server allocs a bunch (#2625) 2022-03-24 23:39:52 +01:00
de4d255841 Analyzer to enforce classes to be either [Virtual], abstract, or sealed. (#2469)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-02-05 19:31:58 +01:00
Vera Aguilera Puerto 374e80aad3 Version 0.8.1
Fixes bug regarding actors and player sessions on RELEASE.
2021-12-09 14:53:05 +01:00
Vera Aguilera Puerto 52b09cef71 Fix build on RELEASE
EXCEPTION TOLERANCEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaAAaAAaaAAaAAaaAaaAAaaAaaAAAAAAaaaaaaaAAAAaaAAAAAaaaAAAAaaaaAAAAAaaaaaAAAAaaaaaaaAAAAAAAaaaaAAAAAaaaaaaaaAAAAAAAAAAAAAaaaaaaAAAAAAAAAAAaaaaaaaaaaAAAAAAAAAAAAAAAAAAAAa
2021-12-08 11:11:13 +01:00
Vera Aguilera Puerto 26dcef4a11 Fix more useless resolves, makes entity system proxy "Deleted" not throw. 2021-12-08 11:10:11 +01:00
Wrexbe 4df03f859b Fix release building 2021-12-07 09:50:07 -08:00
Vera Aguilera Puerto 1d5476e01b More crash fixes 2021-12-06 15:56:14 +01:00
Vera Aguilera Puerto 81672fbe29 Goes in-game now 2021-12-06 15:34:46 +01:00
DrSmugleaf 163deff564 Fix 3000 errors 2021-12-05 18:13:33 +01:00
20kdc b89bf5739c Move porting convenience properties 2021-12-03 21:44:14 +00:00
20kdc e9ec2ee1d3 Susser Todd: Robust.Server, Error Pass 2 2021-12-03 21:33:10 +00:00
20kdc 7b6d9bd719 Susser Todd: Robust.Client/Robust.Server: Error Pass 1 2021-12-03 19:57:19 +00:00
Vera Aguilera Puerto 7a06db60cf Inline UID 2021-12-03 15:53:10 +01:00
Vera Aguilera Puerto bab37587c5 Inline Name 2021-12-03 15:25:51 +01:00
Vera Aguilera Puerto bdb9b9af2b Remove PlayerHelpers static class. 2021-11-21 17:58:54 +01:00
AcruidandGitHub 746ec9eab7 Marked PlayerSession find methods on PlayerManager Obsolete (#2244) 2021-11-21 14:51:17 +01:00
Vera Aguilera PuertoandGitHub 52d669e032 Fixes exceptions on shutdown. (#2219) 2021-11-11 17:39:25 +01:00
Pieter-Jan Briers 17164ead34 Fix release compile. 2021-11-09 15:35:37 +01:00
Vera Aguilera Puerto 31d301b91f ActorSystem and PlayerSession partially use EntityUid
Non-breaking changes
2021-11-09 12:54:18 +01:00
Vera Aguilera Puerto 3935c63a80 EntityManager Initialized set by Initialize() method and not InitializeComponents() 2021-10-05 11:40:19 +02:00
Vera Aguilera Puerto 243f405bab Add Filter for getting players from entities.
- Also adds method to merge two filters.
2021-10-03 11:57:44 +02:00
Vera Aguilera Puerto 72341a25af VV attribute for ViewSubscriptions in PlayerSession. 2021-09-18 11:14:44 +02:00
Vera Aguilera Puerto 8ec75be244 Minor ViewSubscriber cleanup, remove all mentions of PVS eye 2021-07-29 13:29:54 +02:00
Vera Aguilera PuertoandGitHub 48746b7bd3 Adds ViewSubscriberComponent and ViewSubscriberSystem (#1900) 2021-07-29 13:16:25 +02:00
Vera Aguilera PuertoandGitHub bfcad4001b Adds public methods to ActorSystem. (#1824) 2021-06-12 15:50:01 +02:00