From d403b38440a74b028ae8b8a7e574fcc1cfd2b5ee Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 12 Nov 2016 15:44:02 +0200 Subject: [PATCH] Hull, Gap & WayPoint cloning, equipped items are removed when switching from character mode to wiring or mode or vice versa --- Subsurface/Source/Map/Gap.cs | 7 ++++++- Subsurface/Source/Map/Hull.cs | 5 +++++ Subsurface/Source/Map/MapEntity.cs | 2 +- Subsurface/Source/Map/WayPoint.cs | 10 ++++++++++ Subsurface/Source/Screens/EditMapScreen.cs | 4 ++-- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Subsurface/Source/Map/Gap.cs b/Subsurface/Source/Map/Gap.cs index 5790aec50..3d346aaa6 100644 --- a/Subsurface/Source/Map/Gap.cs +++ b/Subsurface/Source/Map/Gap.cs @@ -114,6 +114,11 @@ namespace Barotrauma InsertToList(); } + public override MapEntity Clone() + { + return new Gap(rect, isHorizontal, Submarine); + } + public override void Move(Vector2 amount) { base.Move(amount); @@ -210,7 +215,7 @@ namespace Barotrauma isHorizontal ? new Vector2(rect.Height / 16.0f, 1.0f) : new Vector2(rect.Width / 16.0f, 1.0f)); } - if (isSelected) + if (IsSelected) { GUI.DrawRectangle(sb, new Vector2(WorldRect.X - 5, -WorldRect.Y - 5), diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index bd63390df..784c8359d 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -260,6 +260,11 @@ namespace Barotrauma return rect; } + + public override MapEntity Clone() + { + return new Hull(MapEntityPrefab.list.Find(m => m.Name == "Hull"), rect, Submarine); + } public static EntityGrid GenerateEntityGrid(Submarine submarine) { diff --git a/Subsurface/Source/Map/MapEntity.cs b/Subsurface/Source/Map/MapEntity.cs index 3f64cedad..5cc7560ae 100644 --- a/Subsurface/Source/Map/MapEntity.cs +++ b/Subsurface/Source/Map/MapEntity.cs @@ -211,7 +211,7 @@ namespace Barotrauma public virtual MapEntity Clone() { - return null; + throw new NotImplementedException(); } public static List Clone(List entitiesToClone) diff --git a/Subsurface/Source/Map/WayPoint.cs b/Subsurface/Source/Map/WayPoint.cs index dba83d407..665ecf948 100644 --- a/Subsurface/Source/Map/WayPoint.cs +++ b/Subsurface/Source/Map/WayPoint.cs @@ -113,6 +113,16 @@ namespace Barotrauma currentHull = Hull.FindHull(WorldPosition); } + public override MapEntity Clone() + { + var clone = new WayPoint(rect, Submarine); + clone.idCardTags = idCardTags; + clone.spawnType = spawnType; + clone.assignedJob = assignedJob; + + return clone; + } + public override bool IsMouseOn(Vector2 position) { if (IsHidden()) return false; diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index f8e2e9e8a..45e6f5229 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -298,7 +298,7 @@ namespace Barotrauma private void CreateDummyCharacter() { - if (dummyCharacter != null) dummyCharacter.Remove(); + if (dummyCharacter != null) RemoveDummyCharacter(); dummyCharacter = Character.Create(Character.HumanConfigFile, Vector2.Zero); @@ -588,7 +588,7 @@ namespace Barotrauma characterMode = !characterMode; //button.Color = (characterMode) ? Color.Gold : Color.White; - wiringMode = false; + wiringMode = false; if (characterMode) {