From c74caadc42c7588eb3bfdda24fbf07dc4ee74ec4 Mon Sep 17 00:00:00 2001 From: Regalis11 Date: Sun, 13 Dec 2015 18:02:43 +0200 Subject: [PATCH] Player characters arent AICharacters in multiplayer, lighting optimization --- .vs/Subsurface_Solution/v14/.suo | Bin 726016 -> 727040 bytes Subsurface/Source/Characters/Character.cs | 18 +++++------------- Subsurface/Source/Events/MonsterEvent.cs | 10 +++++----- Subsurface/Source/GameSession/CrewManager.cs | 2 +- Subsurface/Source/Map/Lights/ConvexHull.cs | 12 ++++++++++++ Subsurface/Source/Map/Lights/LightManager.cs | 5 +++-- Subsurface/Source/Map/MapEntity.cs | 12 +++++++----- Subsurface/Source/Networking/GameServer.cs | 4 ++-- Subsurface/Source/Screens/LobbyScreen.cs | 9 +++------ 9 files changed, 38 insertions(+), 34 deletions(-) diff --git a/.vs/Subsurface_Solution/v14/.suo b/.vs/Subsurface_Solution/v14/.suo index bde16e095fefa2c2076bc7ac52b7f90036bcbcbf..7133c7cba51cb55b7dc220870378eaad9a35f425 100644 GIT binary patch delta 13209 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 E52maEng9R* diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 82497a89a..fe249eae7 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -297,19 +297,13 @@ namespace Barotrauma { return Create(file, position, null); } - - public static Character Create(CharacterInfo characterInfo, WayPoint spawnPoint, bool isNetworkPlayer = false) - { - return Create(characterInfo.File, spawnPoint.WorldPosition, characterInfo, isNetworkPlayer); - } - - - public static Character Create(CharacterInfo characterInfo, Vector2 position, bool isNetworkPlayer = false) + + public static Character Create(CharacterInfo characterInfo, Vector2 position, bool isNetworkPlayer = false, bool hasAi=true) { return Create(characterInfo.File, position, characterInfo, isNetworkPlayer); } - public static Character Create(string file, Vector2 position, CharacterInfo characterInfo = null, bool isNetworkPlayer = false) + public static Character Create(string file, Vector2 position, CharacterInfo characterInfo = null, bool isNetworkPlayer = false, bool hasAi=true) { if (file != humanConfigFile) { @@ -321,11 +315,9 @@ namespace Barotrauma } else { - if (isNetworkPlayer) + if (hasAi) { - var netCharacter = new Character(file, position, characterInfo, isNetworkPlayer); - - return netCharacter; + return new Character(file, position, characterInfo, isNetworkPlayer); } else { diff --git a/Subsurface/Source/Events/MonsterEvent.cs b/Subsurface/Source/Events/MonsterEvent.cs index 3fb31e7d0..abd22b1be 100644 --- a/Subsurface/Source/Events/MonsterEvent.cs +++ b/Subsurface/Source/Events/MonsterEvent.cs @@ -36,12 +36,12 @@ namespace Barotrauma for (int i = 0; i < amount; i++) { Vector2 position = (randomWayPoint == null) ? Vector2.Zero : FarseerPhysics.ConvertUnits.ToSimUnits(randomWayPoint.Position); - + //!!!!!!!!!!!!!!!!!! - //if (spawnDeep) - //{ - // position.Y = FarseerPhysics.ConvertUnits.ToSimUnits(Level.Loaded.Position.Y); - //} + if (spawnDeep) + { + position.Y -= 100.0f; + } position.X += Rand.Range(-0.5f, 0.5f); position.Y += Rand.Range(-0.5f, 0.5f); diff --git a/Subsurface/Source/GameSession/CrewManager.cs b/Subsurface/Source/GameSession/CrewManager.cs index 06acb234f..b946c5e1a 100644 --- a/Subsurface/Source/GameSession/CrewManager.cs +++ b/Subsurface/Source/GameSession/CrewManager.cs @@ -213,7 +213,7 @@ namespace Barotrauma //WayPoint randomWayPoint = WayPoint.GetRandom(SpawnType.Human); //Vector2 position = (randomWayPoint == null) ? Vector2.Zero : randomWayPoint.SimPosition; - Character character = Character.Create(characterInfos[i], waypoints[i]); + Character character = Character.Create(characterInfos[i], waypoints[i].WorldPosition); Character.Controlled = character; if (!character.Info.StartItemsGiven) diff --git a/Subsurface/Source/Map/Lights/ConvexHull.cs b/Subsurface/Source/Map/Lights/ConvexHull.cs index 0ccb93247..404b97d99 100644 --- a/Subsurface/Source/Map/Lights/ConvexHull.cs +++ b/Subsurface/Source/Map/Lights/ConvexHull.cs @@ -125,6 +125,18 @@ namespace Barotrauma.Lights vertices = points; } + public bool Intersects(Rectangle rect) + { + Rectangle transformedBounds = boundingBox; + if (parentEntity != null && parentEntity.Submarine != null) + { + transformedBounds.X += (int)parentEntity.Submarine.Position.X; + transformedBounds.Y += (int)parentEntity.Submarine.Position.Y; + } + + return transformedBounds.Intersects(rect); + } + private void CalculateShadowVertices(Vector2 lightSourcePos, bool los = true) { //compute facing of each edge, using N*L diff --git a/Subsurface/Source/Map/Lights/LightManager.cs b/Subsurface/Source/Map/Lights/LightManager.cs index e2234977e..f8e5d554d 100644 --- a/Subsurface/Source/Map/Lights/LightManager.cs +++ b/Subsurface/Source/Map/Lights/LightManager.cs @@ -69,6 +69,7 @@ namespace Barotrauma.Lights foreach (ConvexHull convexHull in ConvexHull.list) { + if (!convexHull.Intersects(camView)) continue; //if (!camView.Intersects(convexHull.BoundingBox)) continue; convexHull.DrawShadows(graphics, cam, pos, shadowTransform); @@ -109,7 +110,7 @@ namespace Barotrauma.Lights foreach (LightSource light in lights) { if (light.hullsInRange.Count == 0 || light.Color.A < 0.01f || light.Range < 1.0f) continue; - //if (!MathUtils.CircleIntersectsRectangle(light.Position, light.Range, viewRect)) continue; + if (!MathUtils.CircleIntersectsRectangle(light.WorldPosition, light.Range, viewRect)) continue; //clear alpha to 1 ClearAlphaToOne(graphics, spriteBatch); @@ -121,7 +122,7 @@ namespace Barotrauma.Lights foreach (ConvexHull ch in light.hullsInRange) { - //if (!MathUtils.CircleIntersectsRectangle(light.Position, light.Range, ch.BoundingBox)) continue; + if (!MathUtils.CircleIntersectsRectangle(light.Position, light.Range, ch.BoundingBox)) continue; //draw shadow ch.DrawShadows(graphics, cam, light, shadowTransform, false); } diff --git a/Subsurface/Source/Map/MapEntity.cs b/Subsurface/Source/Map/MapEntity.cs index 4698ce31a..4f0633b3e 100644 --- a/Subsurface/Source/Map/MapEntity.cs +++ b/Subsurface/Source/Map/MapEntity.cs @@ -507,8 +507,10 @@ namespace Barotrauma } } - foreach (MapEntity e in mapEntityList) + for (int i = 0; i - { - return x.Name.CompareTo(y.Name); - }); + //mapEntityList.Sort((x, y) => + //{ + // return x.Name.CompareTo(y.Name); + //}); } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index ee373c18c..17b01c8fd 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -757,13 +757,13 @@ namespace Barotrauma.Networking for (int i = 0; i < ConnectedClients.Count; i++) { ConnectedClients[i].Character = Character.Create( - ConnectedClients[i].characterInfo, assignedWayPoints[i], true); + ConnectedClients[i].characterInfo, assignedWayPoints[i].WorldPosition, true); ConnectedClients[i].Character.GiveJobItems(assignedWayPoints[i]); } if (characterInfo != null) { - myCharacter = Character.Create(characterInfo, assignedWayPoints[assignedWayPoints.Length - 1]); + myCharacter = Character.Create(characterInfo, assignedWayPoints[assignedWayPoints.Length - 1].WorldPosition); Character.Controlled = myCharacter; myCharacter.GiveJobItems(assignedWayPoints[assignedWayPoints.Length - 1]); diff --git a/Subsurface/Source/Screens/LobbyScreen.cs b/Subsurface/Source/Screens/LobbyScreen.cs index 373f0b185..aed41e4ae 100644 --- a/Subsurface/Source/Screens/LobbyScreen.cs +++ b/Subsurface/Source/Screens/LobbyScreen.cs @@ -1,7 +1,4 @@ -using FarseerPhysics; -using FarseerPhysics.Dynamics; -using FarseerPhysics.Factories; -using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; @@ -362,7 +359,7 @@ namespace Barotrauma UpdateCharacterLists(); } - graphics.Clear(Color.CornflowerBlue); + graphics.Clear(Color.Black); //GameMain.GameScreen.DrawMap(graphics, spriteBatch); @@ -370,7 +367,7 @@ namespace Barotrauma Sprite backGround = GameMain.GameSession.Map.CurrentLocation.Type.Background; spriteBatch.Draw(backGround.Texture, Vector2.Zero, null, Color.White, 0.0f, Vector2.Zero, - Math.Max((float)GameMain.GraphicsWidth / backGround.SourceRect.Width, (float)GameMain.GraphicsHeight / backGround.SourceRect.Width), SpriteEffects.None, 0.0f); + Math.Max((float)GameMain.GraphicsWidth / backGround.SourceRect.Width, (float)GameMain.GraphicsHeight / backGround.SourceRect.Height), SpriteEffects.None, 0.0f); topPanel.Draw(spriteBatch);