Commit Graph

445 Commits

Author SHA1 Message Date
Regalis
2d7d7f3d8d Fixed turret syncing, clients don't get a notification about changed permissions if they're assigned the same permissions they already have 2017-03-13 20:52:31 +02:00
Regalis
0874a0b059 PowerContainer syncing, clients can't launch a turret until the server tells them to 2017-03-11 15:40:18 +02:00
Regalis
5bdb57b98a Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Characters/AICharacter.cs
	Subsurface/Source/Characters/Animation/HumanoidAnimController.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/GameMain.cs
	Subsurface/Source/Items/Components/Signal/Connection.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Networking/GameServerLogin.cs
	Subsurface/Source/Physics/PhysicsBody.cs
2017-03-11 13:24:09 +02:00
Regalis
c851770386 Fixed "trying to read past the buffer size" errors caused by item updates sent by clients, midround syncing timeout period is calculated based on the number of events the client needs to receive 2017-03-11 12:49:08 +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
juanjp600
d6c292a2cc SharpFont + ScalableFont implementation
https://github.com/Robmaister/SharpFont

TODO: replace Code Bold.otf with the full version, fix any bugs, build on Linux, possibly move ToolBox string wrapping and limiting logic to ScalableFont class for better results.
2017-03-07 13:44:42 -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
f04a00f6e1 Merge branch 'lighting-optimization' 2017-03-02 19:39:55 +02:00
Regalis
a5017193bf Items don't attempt to set the positions of contained items with SetTransform if SetTransformIgnoreContacts fails (because the former calls the latter anyway, causing another exception). Still haven't managed to reproduce the exception 2017-03-02 19:38:31 +02:00
juanjp600
f2db3c6b20 Merge remote-tracking branch 'barotrauma/master' into lighting-optimization 2017-03-01 15:02:23 -03:00
juanjp600
3868b70387 Fixed windowed door shadows 2017-03-01 13:41:37 -03:00
Regalis
f8304ceb7e Workaround for exceptions in SetTransformIgnoreContacts
http://undertowgames.com/forum/viewtopic.php?f=21&t=5915#p112558
2017-02-27 20:55:23 +02: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
3fcaff0288 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
2017-02-22 23:33:14 +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
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
Regalis
13a9b7ea88 More accurate velocity in item update messages (+ fixed incorrect message length) 2017-02-20 20:43:14 +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
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
Regalis
b5bac67c4a WIP item position syncing 2017-02-02 20:40:58 +02:00
Regalis
7674647928 Clients don't apply a received inventory state on the inventory until >1 second has passed since they sent their local state (prevents the inventory from briefly reverting to an old state if items are moved around in quick succession) 2017-02-02 18:35:28 +02:00
Regalis
b8263d6a90 Removing items from their parent inventory in item.Drop 2017-01-31 20:11:19 +02:00
Regalis
6bbd11630d Fabricator & deconstructor syncing 2017-01-28 12:40:43 +02:00
Regalis
0570956e24 Wiring syncing 2017-01-27 20:59:41 +02:00
Regalis
4589c2bcfb Syncing changes to ingame editable item properties (light colors etc) 2017-01-27 18:28:07 +02:00
Regalis
626e238994 Merge branch 'master' into new-netcode 2017-01-26 19:57:53 +02:00
Regalis
5afca48a82 Relinking dockingport hulls to gaps after flipping the sub 2017-01-26 19:57:21 +02:00
Regalis
15b3dd31a8 Merge branch 'master' into new-netcode 2017-01-25 20:30:26 +02:00
Regalis
282c2b75d4 Fixed docking ports disconnecting when a submarine is flipped 2017-01-25 20:30:08 +02:00
Regalis
8f50cca026 Syncing StatusEffects applied by meleeweapons or using an item on self 2017-01-15 14:49:15 +02:00
Regalis
f7ac98ab5f Broken items can be repaired, fixed clients never removing firesources (causing the lights to stay after the flames have been extinguished) 2017-01-14 20:30:46 +02:00
Regalis
fdbdf9638f Fixed railgun aiming, fixed EntityEvent not being sent if a character is killed by something else than health dropping to zero 2017-01-14 14:45:19 +02:00
Regalis
81f3d24070 DockingPort syncing 2017-01-12 18:03:52 +02:00
Regalis
8a9b322b78 Clients can create firesources if server tells them to, extinguishing fixes 2017-01-11 18:03:01 +02:00
Regalis
b9006983e4 Item condition syncing 2017-01-11 18:01:07 +02:00
Regalis
3041138f03 Inventory.TryPutItem doesn't put an item in the inventory (or create a NetEntityEvent) if the item is already in it 2017-01-10 20:50:31 +02:00
Regalis
402c745fc3 Reimplemented chat range & radio messages. Each client now has their own chatMsgQueue, so all chat messages don't have to be sent to all clients. 2017-01-07 19:22:48 +02:00
Regalis
1f07b18e5b Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Items/Components/DockingPort.cs
	Subsurface/Source/Items/Components/Signal/Wire.cs
	Subsurface/Source/Items/Item.cs
2016-12-29 22:18:27 +02:00
Regalis
12b7290bad Fixed Ragdoll.HeadInWater not being set to true if the character is inside a water-filled hull but the head is outside the sub, HUDProgressBars aren't created when a non-controlled character repairs something 2016-12-28 20:00:40 +02:00
Regalis
49d4108eeb Fixed character colliders sinking/floating away when using a railgun controller underwater 2016-12-28 19:56:52 +02:00
Regalis
c3d29e41ad Additional null check in Wire Update, stopping paused sounds before deleting them (prevents an OpenAL error when switching to sub editor when the mainmenu drone sound is playing) 2016-12-21 20:35:38 +02:00
Regalis
40c28a11de Docked subs are forced to correct positions during loading and the docking is "locked" (subs won't get stuck inside each other even if the linked sub is placed incorrectly in the editor) 2016-12-13 23:12:56 +02:00
Regalis
5241546069 Fixed error message spam if a docking port is linked to another port in the same sub 2016-12-12 13:31:26 +02:00
Regalis
9819c52ced Fixed null exception if switching to wiring mode while some item is selected 2016-12-12 13:28:44 +02:00
Regalis
2871830670 Fixed wire connections & nodes resetting when copypasting them 2016-12-11 22:33:15 +02:00
Regalis
1f454d593e Inventory syncing, objHeader is passed to the ClientRead/ServerRead methods so they can determine how to read the msg (is it an inventory update, position, input, etc) 2016-12-10 16:39:58 +02:00
Regalis
108dddf082 Wall damage syncing, inventory serialization methods 2016-12-10 13:06:17 +02:00