Commit Graph

737 Commits

Author SHA1 Message Date
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
17a7cb70ed Resetting character position to the server pos if the difference between the positions is large enough 2016-11-09 19:58:05 +02:00
Regalis
e1c2cd4d53 Networked characters can climb ladders without joining the Europan Space Program 2016-11-09 18:17:04 +02:00
Regalis
ac65a431a8 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Items/Components/Signal/Wire.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Items/ItemInventory.cs
	Subsurface/Source/Networking/GameServer.cs
2016-11-09 17:58:56 +02:00
Regalis
9eaca68cea Clients move their saved local positions if they don't match the servers position (instead of immediately snapping to the latest server position)
TODO: prevent ladders from sending the character flying, some safeguards in case positions are way off
2016-11-09 17:43:23 +02:00
Regalis
d017817878 Updating wire sections if the wires are moved during loading 2016-11-09 16:23:48 +02:00
Regalis
e3cd19b781 Wire rendering optimization (angles & distances between nodes are only calculated when adding/removing nodes) 2016-11-08 22:22:49 +02:00
Regalis
adf19869c2 - ItemContainers whose bodies are disabled don't set the positions of the contained items each frame (only once when the item is placed in the container)
- ItemContainers maintain a list of statuseffects that need to be applied on the contained items instead of constantly rechecking each item
- deactivating ItemContainers if they have no body and there are no statuseffects to apply
2016-11-08 21:22:09 +02:00
Regalis
1617cd8f7a Item/statuseffect optimization:
- PowerTransfer components cache power connections instead of rechecking them every frame
- items store connections in a dictionary with the name of the connection as a key (-> finding the correct connection when sending a signal is more efficient)
- storing item tags & StatusEffect targetNames in HashSets
2016-11-08 21:14:29 +02:00
Regalis
1dc08b3019 Added collider to humanhusk.xml, disabled the "zoom effect" when under pressure as a huskified human 2016-11-08 20:15:59 +02:00
Regalis
cd5c72eff2 Number of children in the debugconsole listbox limited to 200 (prevents framerate drop if adding tons of messages) 2016-11-07 20:45:23 +02:00
Regalis
f259f3fba4 Limiting character movement when collider isn't upright (can't run at full speed if lodged in some tight space), hack-ish way of moving the collider of a character that's being dragged 2016-11-07 18:52:36 +02:00
juanjp600
cd8c927800 Sync InputType.Select 2016-11-06 18:15:13 -03:00
Regalis
f4a942414d More efficient culling, workaround for null exception in CombatMission.GetTeamName 2016-11-06 19:41:32 +02:00
Regalis
bddc673fed Mapentity visibility culling based on their parent sub (-> subs outside the camera view aren't rendered) 2016-11-06 18:59:05 +02:00
Regalis
de3966ae95 - character colliders stay enabled when the character is unconscious/stunned (prevents getting stuck inside walls when the collider is re-enabled)
- can't climb over obstacles if the contact point is above the center of the character collider
- higher "obstacle climbing velocity"
- limiting collider velocity when dragging another character
2016-11-06 18:56:03 +02:00
juanjp600
160eff85d0 Input fast-forward/catchup when standing still for 15 frames
Also made position correction work based on linear velocity so running doesn't make you twitch nearly as much.
2016-11-06 13:43:53 -03:00
Regalis
92985f3ed9 Position updates not sent for subs docked to the second main sub 2016-11-06 16:56:05 +02:00
Regalis
e15f5f5040 Moving a wire outside the sub doesn't reset connections or nodes in the editor 2016-11-06 15:58:34 +02:00
Regalis
fa6bf60032 Combat missions don't reset the "allow respawn" setting 2016-11-06 15:57:28 +02:00
juanjp600
fae2dc2536 Can compile again
Let's hope it's not too broken.
2016-11-05 18:55:11 -03:00
juanjp600
f0acf69065 Merge remote-tracking branch 'barotrauma/master' into new-netcode
# Conflicts:
#	Subsurface/Properties/AssemblyInfo.cs
#	Subsurface/Source/Characters/AI/EnemyAIController.cs
#	Subsurface/Source/Characters/AICharacter.cs
#	Subsurface/Source/Characters/Character.cs
#	Subsurface/Source/Items/Components/Signal/Connection.cs
#	Subsurface/Source/Items/Item.cs
#	Subsurface/Source/Map/Structure.cs
#	Subsurface/Source/Networking/GameClient.cs
#	Subsurface/Source/Networking/GameServer.cs
#	Subsurface/Source/Screens/NetLobbyScreen.cs
2016-11-05 18:18:20 -03:00
juanjp600
35dafc4792 Merge remote-tracking branch 'barotrauma/master' into new-netcode
# Conflicts:
#	Subsurface/Source/Characters/Character.cs
#	Subsurface/Source/Items/Components/Machines/Steering.cs
#	Subsurface/Source/Map/Structure.cs
#	Subsurface/Source/Networking/GameClient.cs
#	Subsurface/Source/Networking/GameServer.cs
2016-11-05 18:09:44 -03:00
Regalis
a32198ff80 v0.5.3.1 2016-11-04 16:27:53 +02:00
Regalis
1e61e815b8 Changes for linux version 2016-11-03 20:11:56 +02:00
Regalis
c3b3d57b57 Fixed brainfart, asserting that structure and wallsection rects have non-negative dimensions 2016-11-03 19:09:14 +02:00
Regalis
505b4f5f1a The sprites of structures with no body are flipped correctly 2016-11-03 18:24:03 +02:00
Regalis
8f646a2723 - fixed dummy location generation crashing the tutorial
- gameserver handles exceptions thrown when instantiating a new gamesession
- fixed screwdrivers (and other items that can be held in either hand) going into both hand slots when equipping by double clicking
2016-11-03 18:22:45 +02:00
Regalis
799efd8474 - attempt to fix "DXGI_ERROR_NOT_CURRENTLY_AVAILABLE" exceptions (the game tries forcing focus to the window and running GameMain again, and if that doesn't help, disables hardware mode switching)
- messages can be added to debugconsole before it's initialized
2016-11-02 20:38:55 +02:00
Regalis
8011aecb31 Autorestart countdown is reset and the start button re-enabled if an exception is thrown when starting a new round, "restarting in X seconds" clamped over 0, added resolution & window mode to crash reports 2016-11-02 18:00:37 +02:00
Regalis
95937694f4 Colliders can "climb" over small obstacles 2016-11-02 17:14:57 +02:00
Regalis
3cc807605e Wires can be dragged from a connection panel to the inventory without dropping them, wire connections & nodes are cleared when taking the wire outside 2016-11-02 14:40:05 +02:00
Regalis
19683e749d Waypoint generation fix (submarine collider is ignored when doing visibility checks), regenerated waypoints in vanilla subs 2016-11-01 19:06:33 +02:00
Regalis
1b818b6422 Fixed timestep logic is disabled during loading (less choppy loading screens & no pause at the start of the game), damageable structures visible in LOS again, footstep sound tweaking 2016-11-01 19:05:09 +02:00
Regalis
9b29c52a1b Removed redundant data from AICharacter update messages, fixed startlocation name being shown for endlocation on nav terminals 2016-10-31 21:01:01 +02:00
Regalis
eb2c51c2f1 Cleanup with resharper (mostly removing redundancies & using collection.Length/Count properties instead of the Count method) 2016-10-31 20:50:20 +02:00
Regalis
5cc605bc01 Dust particles are drawn in the same batch as the background sprites (-> far-away particles are rendered behind the sprites), limiting character name length in the crew info menu, the "submarine not found in your folder" -tooltip is updated after downloading a sub file 2016-10-29 15:38:40 +03:00
Regalis
72178d4b1f Fabricator UI shows item descriptions and items that can't be fabricated are grayed out, added a couple of new fabricable items 2016-10-28 19:47:45 +03:00
Regalis
48c07cfce5 - doors aren't ignored when checking visibility during waypoint generation or when finding a starting node for a path
- AICharacter will mark their path unreachable if their path is blocked by a door they cant open (may happen if someone closes the door after calculating the path)
- fixed exception when creating a Steering component when there's no active GameSession (i.e. in the editor)
2016-10-27 21:18:45 +03:00
Regalis
0422beebde Small optimization: structures that haven't taken damage aren't rendered using the damage shader 2016-10-27 19:39:07 +03:00
Regalis
2f3d3ba9ea LOS color is based on ambient light, added a parallax effect to background particles 2016-10-27 19:25:15 +03:00
Regalis
29ad3d2555 Removed limb impact tolerances from creature configs & added ragdoll-specific impact tolerance 2016-10-26 20:20:42 +03:00
Regalis
282611d0cc Limiting too long location names in navigation terminals & end shift button 2016-10-26 19:48:39 +03:00
Regalis
980f8e0d33 - option to select which location autopilot navigates towards
- generating "dummy locations" for the MP gamesessions (visible in sonar and mission descriptions)
- EndGame network message tells the clients if the mission was successful (because the message may arrive before the sub has reached the exit or before some character has died at the client's end)
2016-10-26 19:22:40 +03:00
Regalis
6f9160e4a7 Removing & spawning entities in the same order as the server, EntitySpawner does both removing and spawning 2016-10-26 16:44:59 +03:00
Regalis
df9f89e383 Submarine position syncing 2016-10-25 20:50:47 +03:00
Regalis
182cfb3451 Removed unnecessary memLocalPos stuff 2016-10-25 20:20:23 +03:00
Regalis
62dd055e8d Merge branch 'master' into animcontroller-overhaul
Conflicts:
	Subsurface/Content/Characters/Crawler/crawler.xml
	Subsurface/Source/Characters/AICharacter.cs
	Subsurface/Source/Characters/Animation/FishAnimController.cs
	Subsurface/Source/Characters/Animation/Ragdoll.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/Map/Submarine.cs
	Subsurface/Source/Map/SubmarineBody.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Physics/PhysicsBody.cs
2016-10-25 20:09:25 +03:00
Regalis
07f8c966ab Submarine position is synced using the same logic as the characters, AICharacter position syncing 2016-10-25 19:01:19 +03:00
Regalis
ac8edb5b2a Fixed monster/artifact events being out of sync between the server and the clients 2016-10-25 18:58:56 +03:00