Regalis
89941229f8
A reference to the character who triggered a signal is passed to all the recipients of the signal. Allows more accurate server logging: using doors, docking ports or turrets is now properly logged.
2017-04-28 18:10:47 +03:00
Regalis
64c109f13b
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/Characters/AI/EnemyAIController.cs
Subsurface/Source/DebugConsole.cs
Subsurface/Source/Items/Components/Machines/Radar.cs
Subsurface/Source/Items/Item.cs
2017-04-27 21:33:44 +03:00
Regalis
6397bc432e
UI tweaks
2017-04-27 21:08:20 +03:00
Regalis
31f7eca717
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUIButton.cs
Subsurface/Source/GameSession/CrewManager.cs
Subsurface/Source/GameSession/GameSession.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Screens/MainMenuScreen.cs
Subsurface/Source/Screens/ServerListScreen.cs
2017-04-23 21:40:11 +03:00
Regalis
67a3020430
Logging when clients use an item on themselves or hit someone with a melee weapon
2017-04-17 19:52:25 +03:00
Regalis
1bd856b7a5
ItemComponent update events aren't created if the component isn't found in the item's component list (may happen if an event is created when setting a property of a component during initialization)
2017-04-12 23:47:26 +03:00
Regalis
fac31b4892
- Fixed railgun sounds not playing at the clients' end
...
- Server sends updates for batteries when their charge changes (not strictly necessary assuming the rest of the electrical grid stays in sync, but just in case)
- Reactor state is synced with clients if modified through the debug console
- Increased maximum item velocity to 64 units/s, all item are clamped to the max vel
2017-04-10 20:13:33 +03:00
Regalis
3844dd9dac
GUIStyle logic changes: instead of having a predetermined GUIComponentStyle for each type of GUIComponent, any GUIComponent can use any style. The GUIComponent constructors take the name of the style as a parameter, and if no style is specified, the default style for the GUIComponent in question will be used.
2017-04-08 16:46:53 +03:00
Regalis
2a5a2bc6f6
Fixed server not sending a status update for an item if the condition of the item changes directly from 100 to 0
2017-03-27 23:44:09 +03:00
Regalis
1a3c18c727
EntitySpawner sends spawn/removal messages to clients using EntityEvents.
...
EntityEvents and EntitySpawner used to work independently of each other, with separate IDs, and there was no guarantee that spawning and events would happen in the correct order. For example, a client could fail to read events during midround syncing because the entity has been removed, or read an event for an incorrect entity because the entity has been removed and the ID taken by some other entity.
2017-03-27 21:05:32 +03:00
Regalis
d4db37f8dd
CPR syncing + some refactoring
...
Clients send an entityevent to the server when they start/stop doing CPR, and server includes the animation state in messages when character is dragging some other character
2017-03-22 20:05:50 +02:00
Regalis
dcd566f2dc
Clients can't set the condition of an item unless the server says so, fixed low item condition being rounded down to zero when writing into a network msg
2017-03-21 17:31:22 +02:00
Regalis
ec31e86350
Server sets the condition of an item back to 100 when the item is fixed
2017-03-20 21:16:21 +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
ecb7500df9
Converted UInt32 ID's to UInt16
...
TODO: test everything, make sure nothing broke
2017-03-06 16:25:12 -03: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
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
75d047b57e
Item position updates include whether the physics body is sleeping, clients disable sleeping bodies
2017-02-22 21:27:52 +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
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
b8263d6a90
Removing items from their parent inventory in item.Drop
2017-01-31 20:11:19 +02:00
Regalis
4589c2bcfb
Syncing changes to ingame editable item properties (light colors etc)
2017-01-27 18:28:07 +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
b9006983e4
Item condition syncing
2017-01-11 18:01:07 +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
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
fa712e0102
Checking if a client can access an item in the itemcomponent serialization methods
2016-12-09 16:56:17 +02:00
Regalis
bf88e2b8de
ItemComponent HUD isn't drawn for ItemComponents that can't be selected
2016-12-01 16:11:29 +02:00
Regalis
a2442bfcb8
Simple MapEntity visibility culling (structures outside the camera view or items with nothing to render aren't drawn)
...
Could be optimized further, but already gives a pretty nice performance boost
2016-11-30 21:09:11 +02:00
Regalis
0b03b78606
Entities that are behind other entities can be selected using a listbox that appears when hovering the cursor over them, itemcomponent GUIFrames aren't added to GUIUpdateList in sub editor (unless in character mode)
2016-11-29 17:30:13 +02:00
Regalis
adde3461ea
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Properties/AssemblyInfo.cs
Subsurface/Source/Characters/Animation/HumanoidAnimController.cs
Subsurface/Source/Characters/Character.cs
Subsurface/Source/Items/Components/Door.cs
Subsurface/Source/Items/Components/Power/PowerContainer.cs
Subsurface/Source/Items/Components/Signal/Wire.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/ChatMessage.cs
Subsurface/Source/Networking/GameClient.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Networking/GameServerLogin.cs
Subsurface/Source/Networking/GameServerSettings.cs
Subsurface/Source/Networking/NetworkMember.cs
2016-11-24 19:52:40 +02:00
Regalis
b773413b45
Fixed items disappearing from copypasted containers if the items have been removed from the original container, cloning links between entities
2016-11-23 20:34:41 +02:00
Regalis
4ad60e77a9
Item.SetContainedItemPositions recursively sets the positions of the items contained inside the contained items (and so on)
2016-11-22 18:06:52 +02:00
juanjp600
5922fc972d
Merge branch 'master' of https://gitlab.com/poe.regalis/barotrauma
2016-11-15 22:26:46 -03:00
juanjp600
d2c17274fe
GUI elements now respect render order + some minor distance comparison optimization
2016-11-15 22:26:36 -03:00
Regalis
f7a9a77721
Some debug assertions to help figure out the cause for the body.FixtureList==null & GetHullsInRange crash reports
2016-11-15 19:53:25 +02:00
Regalis
3d234aef73
Sending NetEntityEvents from client to server, ItemComponent class doesn't implement the INetSerializable interfaces (only the derived classes do), reactor syncing
2016-11-13 19:34:23 +02:00
Regalis
498c72c64a
Server sends ServerEntityEvents to clients, NetEntityEvents can contain an object array which will be passed to the serializable entity (now only used for ItemComponent indices)
2016-11-13 13:56:48 +02:00
Regalis
c314b37029
Some classes for syncing entity state changes. Similar to the NetworkEvents in the old netcode, but the logic is split into separate classes which prevent the server from reading updates for entities that aren't IClientSerializable.
...
todo: add NetEntityEventManagers to server & client, some logic to prevent sending events that don't need to be sent (e.g. duplicate event state updates)
2016-11-12 20:56:06 +02:00
Regalis
0353732e7e
Fixed highlighting items when highlighting a wire in a connection panel
2016-11-12 18:27:35 +02:00
Regalis
7fa660d38e
Wires can be cloned and moved if both items it's connected to are selected
2016-11-12 15:51:46 +02:00