Commit Graph

990 Commits

Author SHA1 Message Date
Regalis
a1342fdc45 Server-side file transfer UI, server notifies the recipient of a file transfer if the transfer is cancelled, fixed TextGetter not working on wrapped GUITextBlocks 2017-03-10 19:16:17 +02:00
juanjp600
4f589603d1 Further improvements to item position syncing
Still needs some work
2017-03-09 23:49:12 -03:00
juanjp600
c55c1b6d0e Vastly improved item syncing + Crouch syncing
Using SetTransform instead of TargetPosition + a larger margin seems to make the item syncing near-perfect.
2017-03-09 20:18:19 -03:00
Regalis
6a31d56175 Fixed mid-round joining clients automatically getting kicked out because they're missing old events
Now they're kicked out if they're not in sync within 10 seconds of joining, TODO: calculate a reasonable timeout based on the amount of events and/or give the client more time if they keep receiving events
2017-03-09 21:40:58 +02:00
Regalis
c956e7aa7f Fixed one missed UInt32 -> Uint16 conversion in ServerEntityEventManager 2017-03-09 21:35:02 +02:00
Regalis
e406b76cd5 Some more logic to handle missing sub files and active file transfers when starting a round:
- server waits for transfers to finish before starting the round (up to a max 20 seconds, can be skipped by the host)
- clients enable the spectate button when the round starts (in case they fail to start the round due to a missing sub file or an error)
- clients notify the server if a transfer is cancelled

+ FileReceivers can't be instantiated if a server is running
2017-03-09 19:56:27 +02:00
Regalis
ca402396a0 Client-side file transfer UI, FileSender has a limit on how many transfers can be active simultaneously (todo: queue transfers?), some extra debug logging & small fixes 2017-03-08 22:56:11 +02:00
Regalis
64e866d771 Fixed an off-by-two error in entityspawner 2017-03-07 23:02:33 +02:00
Regalis
6bae2cf47b File transfers (somewhat) working. Todo: testing, show active transfers in the UI 2017-03-07 23:01:01 +02:00
Regalis
5450ff498a Progress on file transfers (class for receiving files, FileSender can transfer multiple files to the same recipient simultaneously) 2017-03-07 20:03:40 +02:00
juanjp600
11b7903d4a Fixed some ServerEntityEventManager ID comparisons
I'm probably still missing some comparisons.
2017-03-06 16:31:51 -03:00
juanjp600
29d06bbfc8 Fix build errors 2017-03-06 16:26:52 -03:00
juanjp600
00aa9aecb1 Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode 2017-03-06 16:25:29 -03:00
juanjp600
ecb7500df9 Converted UInt32 ID's to UInt16
TODO: test everything, make sure nothing broke
2017-03-06 16:25:12 -03:00
Regalis
cf859eee7c WIP file transfer logic 2017-03-06 20:31:24 +02:00
juanjp600
7935ecce46 - fixed crash in UpdateVoteStatus
- fixed clients reconnecting automatically after being kicked for desync
2017-03-01 17:04:51 -03:00
juanjp600
983ab9c05b Fixed potential null exception 2017-03-01 16:42:12 -03:00
juanjp600
e681a2d29a Clients that are waiting for very old events are kicked 2017-03-01 16:40:07 -03:00
juanjp600
1b6468e1ec Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode 2017-02-25 12:22:48 -03:00
juanjp600
f3c58a2494 Made item syncing look slightly less erratic on client's side
Still kinda glitchy, we might need a more elaborate approach later
2017-02-25 12:22:38 -03:00
Regalis
a21d8d7a53 Fixed ragdolls accumulating a large movement value while being dragged (line 902), causing them to launch off with a high velocity when they wake up
+ some cleanup
2017-02-25 14:25:21 +02:00
Regalis
3fcaff0288 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
2017-02-22 23:33:14 +02:00
Regalis
5006a9af6c New fonts, loading progress doesn't stay stuck at 70% during SoundPlayer initialization 2017-02-22 23:31:36 +02:00
Regalis
27e74490a0 New wire sprite and switched the body from circle to capsule, tweaked physicsbody position lerping logic (catches up with the server faster) 2017-02-22 22:02:33 +02:00
Regalis
75d047b57e Item position updates include whether the physics body is sleeping, clients disable sleeping bodies 2017-02-22 21:27:52 +02:00
Regalis
d7aba531d7 Server port included in refresh and remove requests to master server, spectators see indicators for both subs during combat missions 2017-02-21 20:57:04 +02:00
Regalis
d50eba55a6 Fixed controller.userPos being recalculated incorrectly when flipping the sub (due to userPos being relative to the center of the item since commit 49d4108e) 2017-02-21 20:24:02 +02:00
juanjp600
c04f78a05c Merge branch 'master' of https://gitlab.com/poe.regalis/barotrauma 2017-02-21 13:58:41 -03:00
juanjp600
6f821874a1 Fixed Scorpion + Fixed chat when controlling monsters + Shameless plug ;) 2017-02-21 13:58:30 -03:00
Regalis
c29be7862b Disabled the splash screen in the Linux version (apparently video playback hasn't been implemented in DesktopGL) 2017-02-20 22:03:58 +02:00
Regalis
0306c03d00 Tutorial fixes: walls and windows outside the command room are fixed during the same frame they break (to prevent anything from flying out from the railgun room), moloch is forced above the player once the railgun is ready fire 2017-02-20 21:33:03 +02:00
Regalis
13a9b7ea88 More accurate velocity in item update messages (+ fixed incorrect message length) 2017-02-20 20:43:14 +02:00
Regalis
502211c6a7 Resetting entity event IDs (lastSentToAll & client-specific IDs) when a round ends 2017-02-20 20:26:12 +02:00
Regalis
04f86865f7 Changed GUIMessageBox.MessageBoxes from a queue to a list to make it easier to remove messageboxes that aren't currently visible, fixed clients creating multiple "permissions changed" messageboxes if there's another messagebox on the screen 2017-02-18 15:58:46 +02:00
Regalis
6c8f5b8999 The server maintains a list of unique EntityEvents created during the round and sends them to clients who join mid-round 2017-02-18 15:09:13 +02:00
Regalis
0e66f2a69c Fixed exceptions in ServerEntityEventManager if there are no clients on the server, clients who are in the lobby can't prevent outdated EntityEvents from being removed 2017-02-18 13:18:48 +02:00
Regalis
68b0f2132a Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Characters/AICharacter.cs
2017-02-17 19:31:25 +02:00
Regalis
a5e56f7d4d Hacky fix for monsters getting lodged inside the sub due to tunneling 2017-02-17 19:28:16 +02:00
Regalis
99cf438ed7 The lowest point of a character collider is calculated from its AABB (works correctly now even if the collider is rotated, allowing prone characters to be dragged through stairs), dragged characters collide with stairs when climbing up, the AI of unconscious or stunned characters isn't updated 2017-02-17 19:27:54 +02:00
juanjp600
c46856167c Stopped server events that hadn't been sent to everyone from being removed 2017-02-16 20:34:29 -03:00
juanjp600
ae67be1775 Removing "sent" duplicates when a new event is added 2017-02-15 13:48:13 -03:00
Regalis
7f7ac76484 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/GUI/GUI.cs
	Subsurface/Source/GUI/LoadingScreen.cs
2017-02-13 22:04:28 +02:00
Regalis
bfc22c7b33 Enabling characters when switching control to them (when switching to a disabled far-away monster for example) 2017-02-13 21:58:27 +02:00
Regalis
1ea3044fd6 Firesource sound fix 2017-02-13 21:12:15 +02:00
Regalis
5871faa2dd Added a few new console commands: disablehud, lockx & locky (disables submarine movement on the respective axis), followsub (toggles whether the camera moves with the subs) 2017-02-13 16:23:28 +02:00
Regalis
52bf73722f ServerEntityEventManager doesn't process received events until the character inputs of the client for the corresponding frame have been processed (fixes character movement lagging behind EntityEvents at the servers side)
+ split character networking logic into a separate file, characters drop items at the position of their collider instead of hands
2017-02-09 23:09:42 +02:00
Regalis
1f16bef01c Interpolating item drawRotation in the "shortest direction" (prevents twitching if the rotation changes e.g. from -0.1f to PI*2), physicsbodies are lerped towards their targetposition at a constant speed 2017-02-09 00:01:01 +02:00
Regalis
4c5da19ab4 Clients predict the state of a door when a signal is received (and revert back to the correct state if no verification is received from the server in 1 sec) 2017-02-08 19:56:42 +02:00
Regalis
304c67f904 EntityEvent type written into item update messages using WriteRangedInteger, item position updates include the velocity of the item 2017-02-07 21:18:22 +02:00
Regalis
e2a872ad90 Fixed ItemContainer not setting the position of a contained item when it's placed in the ItemInventory, minor refactoring 2017-02-07 21:06:42 +02:00