Commit Graph

288 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
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
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
e15f5f5040 Moving a wire outside the sub doesn't reset connections or nodes in the editor 2016-11-06 15:58:34 +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
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
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
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
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
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
641e579e92 Backported animcontroller-overhaul 2016-10-22 15:18:16 +03:00
Regalis
de203cc424 - a WIP attempt to correct the position of the controlled character based on updates from the server
- fixed server not being able to move character controllers
- renamed IsNetworkPlayer -> IsRemotePlayer
2016-10-19 00:15:29 +03:00
Regalis
9fed308705 InGame update messages include a timestamp which is passed to the ClientRead methods
Now only used in character position syncing, but some other entities may also have an use for it (e.g. discarding outdated data)
2016-10-18 19:04:32 +03:00
Regalis
0cafc674dd - projectiles don't stick to colliders
- fixed impacts weaker than the damage threshold giving characters health
- possible to slide down ladders
- improved IndoorsSteeringManager ladder climbing logic
2016-10-17 17:41:41 +03:00
Regalis
f3e74a6a41 Collider-controlled swimming, fixes 2016-10-16 20:07:34 +03:00
Regalis
db8c2b9f8e Changed colliders from limbs to normal physics bodies, removed RefLimb 2016-10-15 20:08:51 +03:00
Regalis
e12fe29f80 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Items/CharacterInventory.cs
	Subsurface/Source/Items/Inventory.cs
	Subsurface/Source/Items/Item.cs
2016-10-12 21:12:21 +03:00
Regalis
1cdb218fe0 Items are removed from their parent inventory and their bodies are removed when Item.Remove is called 2016-10-12 21:07:19 +03:00
juanjp600
f5268c7c6c Fixes
It compiles now, but it's probably really broken.
2016-10-11 21:37:23 -03:00
juanjp600
72033a581e Merge remote-tracking branch 'refs/remotes/barotrauma/master'
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/GUI/GUI.cs
	Subsurface/Source/GameMain.cs
	Subsurface/Source/GameSettings.cs
	Subsurface/Source/Items/CharacterInventory.cs
	Subsurface/Source/Items/Components/ItemComponent.cs
	Subsurface/Source/Items/Components/Machines/Pump.cs
	Subsurface/Source/Items/Components/Machines/Radar.cs
	Subsurface/Source/Items/Components/Machines/Steering.cs
	Subsurface/Source/Items/Components/Power/PowerContainer.cs
	Subsurface/Source/Items/Inventory.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Items/ItemSpawner.cs
	Subsurface/Source/Map/Levels/WaterRenderer.cs
	Subsurface/Source/Map/LinkedSubmarine.cs
	Subsurface/Source/Map/Map/Map.cs
	Subsurface/Source/Map/Structure.cs
	Subsurface/Source/Map/Submarine.cs
	Subsurface/Source/Map/WayPoint.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Physics/PhysicsBody.cs
	Subsurface/Source/Screens/GameScreen.cs
2016-10-11 20:19:25 -03:00
Regalis
d8476d9371 Hull-specific ambient lighting: light sources increase the amount of ambient light in rooms and the light can spread to adjacent rooms through gaps. Allows making the default ambient light much darker without making shadows look too dark in fully lit subs. 2016-10-10 21:13:22 +03:00
Regalis
f4c5c5e542 Added a particle trail to railgun shells 2016-10-09 15:13:41 +03:00
juanjp600
91539c5b84 Host can spawn in team 2 + relay component state syncing 2016-10-05 22:03:06 -03:00
Regalis
54f3d09af4 Update/rendering logic separation (cherrypicked from commits 9ca3b24, bddcc36 & 9511bae) 2016-10-05 20:35:18 +03:00
Regalis
9154be4792 Flipping turrets & controllers, moved radar UI update to UpdateHUD 2016-10-05 16:54:05 +03:00
Regalis
bddcc36673 Separated inventory update & rendering logic 2016-10-04 23:52:32 +03:00
Regalis
ffc6782025 Removed fixed timestep logic from GameScreen (redundant now because the logic is handled in GameMain) 2016-10-04 19:54:17 +03:00
Regalis
050f7ffc83 Removed fixed timestep logic from GameScreen (redundant now because the logic is handled in GameMain) 2016-10-04 19:21:05 +03:00
juanjp600
e1296e4a8e Backported vsync changes from new-netcode, WIP hull visibility culling
The hull culling functions are there, they just aren't being used right now because there are some annoying bugs.
2016-10-02 22:24:31 -03:00
Regalis
8e8a0e57f0 Cleaned up the flipping logic a bit, overridable MapEntity.FlipX method 2016-09-30 19:48:56 +03:00
juanjp600
f6b82eb095 Some progress on flipping subs
Press crouch to flip every sub in the map, texture alignment breaks and physics items vanish, but other than that it's working.
2016-09-29 22:20:15 -03:00
juanjp600
e318034a1a Remove submarines markers from radar in combat missions
This should make the mission type a lot more fun.
2016-09-27 19:42:15 -03:00
juanjp600
344947c3c4 Search and destroy mission
Featuring ugly code
2016-09-26 22:09:06 -03:00
juanjp600
0ef813f189 Merge remote-tracking branch 'refs/remotes/barotrauma/master'
Conflicts:
	Subsurface/Barotrauma.csproj
	Subsurface/Source/Screens/GameScreen.cs
2016-09-26 17:03:14 -03:00
Regalis
790212a20b Merge branch 'walldamage' 2016-09-26 16:28:52 +03:00
juanjp600
02d98f5d29 Merge remote-tracking branch 'refs/remotes/barotrauma/master'
Conflicts:
	Subsurface/Source/Networking/FileStreamReceiver.cs
	Subsurface/Source/Networking/FileStreamSender.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Networking/GameServerLogin.cs
	Subsurface/Source/Networking/NetworkEvent.cs
	Subsurface/Source/Screens/NetLobbyScreen.cs
2016-09-24 21:28:37 -03:00
juanjp600
d537e8795a Replace '' (two single quotes) with \" (double quote)
We must correct post-traumatic Blitz disorder
2016-09-24 21:26:08 -03:00
Regalis
b01b52172a Topwindow sprite fix, fixed null reference exception when welding/cutting walls that aren't part of a sub 2016-09-21 19:39:00 +03:00
Regalis
96a61ab2ea HUDProgressBars are drawn over the LOS effect, progressbar not displayed when attempting to weld/cut platforms 2016-09-20 19:36:58 +03:00
Regalis
5918e845ac Progress bars that show the health of wall sections when welding/cutting 2016-09-20 18:40:30 +03:00