From 2dd0a60bc4cf21eacfaacbfbd49fef17bb08fd50 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sun, 19 Jul 2015 17:34:48 +0300 Subject: [PATCH] Fixed wire drop/connect bugs, fixed powertransfer signal StackOverflowException, inventory icons --- Subsurface/Content/UI/inventoryIcons.png | Bin 0 -> 12809 bytes Subsurface/Items/CharacterInventory.cs | 95 ++++++++++++------ .../Items/Components/Power/PowerTransfer.cs | 4 +- .../Items/Components/Signal/Connection.cs | 1 + Subsurface/Items/Components/Signal/Wire.cs | 20 +++- Subsurface/Items/Item.cs | 2 +- Subsurface/Subsurface.csproj | 3 + Subsurface_Solution.v12.suo | Bin 452096 -> 479744 bytes 8 files changed, 88 insertions(+), 37 deletions(-) create mode 100644 Subsurface/Content/UI/inventoryIcons.png diff --git a/Subsurface/Content/UI/inventoryIcons.png b/Subsurface/Content/UI/inventoryIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c5339c483012f85e4c433fe76553d018a22bdd GIT binary patch literal 12809 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 KB2^_}67oL-jV+G= literal 0 HcmV?d00001 diff --git a/Subsurface/Items/CharacterInventory.cs b/Subsurface/Items/CharacterInventory.cs index e924accb7..966ec7802 100644 --- a/Subsurface/Items/CharacterInventory.cs +++ b/Subsurface/Items/CharacterInventory.cs @@ -13,16 +13,54 @@ namespace Subsurface class CharacterInventory : Inventory { + private static Texture2D icons; + private Character character; private static LimbSlot[] limbSlots = new LimbSlot[] { - LimbSlot.Head, LimbSlot.Torso, LimbSlot.LeftHand, LimbSlot.RightHand, LimbSlot.Legs, + LimbSlot.Head, LimbSlot.Torso, LimbSlot.Legs, LimbSlot.LeftHand, LimbSlot.RightHand, LimbSlot.Any, LimbSlot.Any, LimbSlot.Any, LimbSlot.Any, LimbSlot.Any }; + private Vector2[] slotPositions; + public CharacterInventory(int capacity, Character character) : base(capacity) { this.character = character; + + if (icons == null) icons = Game1.textureLoader.FromFile("Content/UI/inventoryIcons.png"); + + slotPositions = new Vector2[limbSlots.Length]; + + + int rectWidth = 40, rectHeight = 40; + int spacing = 10; + for (int i = 0; i < slotPositions.Length; i++) + { + switch (i) + { + //head, torso, legs + case 0: + case 1: + case 2: + slotPositions[i] = new Vector2( + spacing, + Game1.GraphicsHeight - (spacing + rectHeight) * (3 - i)); + break; + //lefthand, righthand + case 3: + case 4: + slotPositions[i] = new Vector2( + spacing * 2 + rectWidth + (spacing + rectWidth) * (i - 3), + Game1.GraphicsHeight - (spacing + rectHeight)); + break; + default: + slotPositions[i] = new Vector2( + spacing * (4 + (i - 5)) + rectWidth * (3 + (i - 5)), + Game1.GraphicsHeight - (spacing + rectHeight)); + break; + } + } } protected override void DropItem(Item item) @@ -181,47 +219,38 @@ namespace Subsurface doubleClickedItem = null; int rectWidth = 40, rectHeight = 40; - - int spacing = 10; - Rectangle slotRect = new Rectangle(0, 0, rectWidth, rectHeight); Rectangle draggingItemSlot = slotRect; for (int i = 0; i < capacity; i++) { - int x, y; - switch (i) - { - //head - case 0: - //legs - case 4: - x = spacing * 2 + rectWidth; - y = Game1.GraphicsHeight - (spacing + rectHeight) * ((i == 0) ? 3 : 1); - break; - //lefthand - case 2: - //torso - case 1: - //righthand - case 3: - x = spacing; - if (i == 1) x += (spacing + rectWidth); - if (i == 3) x += (spacing + rectWidth) * 2; - y = Game1.GraphicsHeight - (spacing + rectHeight) * 2; - break; - default: - x = spacing * (4 + (i - 5)) + rectWidth * (3 + (i - 5)); - y = Game1.GraphicsHeight - (spacing + rectHeight); - break; - } + slotRect.X = (int)slotPositions[i].X; + slotRect.Y = (int)slotPositions[i].Y; + + if (i==1) //head + { + spriteBatch.Draw(icons, new Vector2(slotRect.Center.X, slotRect.Center.Y), + new Rectangle(0,0,56,128), Color.White*0.7f, 0.0f, + new Vector2(28.0f, 64.0f), Vector2.One, + SpriteEffects.None, 0.1f); + } + else if (i==3 || i==4) + { + spriteBatch.Draw(icons, new Vector2(slotRect.Center.X, slotRect.Center.Y), + new Rectangle(92, 41*(4-i), 36, 40), Color.White * 0.7f, 0.0f, + new Vector2(18.0f, 20.0f), Vector2.One, + SpriteEffects.None, 0.1f); + } + } + + for (int i = 0; i < capacity; i++) + { + slotRect.X = (int)slotPositions[i].X; + slotRect.Y = (int)slotPositions[i].Y; - slotRect.X = x; - slotRect.Y = y; UpdateSlot(spriteBatch, slotRect, i, items[i], false); if (draggingItem!=null && draggingItem == items[i]) draggingItemSlot = slotRect; - } if (draggingItem != null && !draggingItemSlot.Contains(PlayerInput.MousePosition)) diff --git a/Subsurface/Items/Components/Power/PowerTransfer.cs b/Subsurface/Items/Components/Power/PowerTransfer.cs index 238780802..961ef0a0a 100644 --- a/Subsurface/Items/Components/Power/PowerTransfer.cs +++ b/Subsurface/Items/Components/Power/PowerTransfer.cs @@ -141,9 +141,9 @@ namespace Subsurface.Items.Components { base.ReceiveSignal(signal, connection, sender, power); - if (connection.Name=="signal") + if (connection.Name == "signal") { - connection.SendSignal(signal, item, 0.0f); + connection.SendSignal(signal, sender, 0.0f); } } diff --git a/Subsurface/Items/Components/Signal/Connection.cs b/Subsurface/Items/Components/Signal/Connection.cs index 695da00ed..efd2536a4 100644 --- a/Subsurface/Items/Components/Signal/Connection.cs +++ b/Subsurface/Items/Components/Signal/Connection.cs @@ -143,6 +143,7 @@ namespace Subsurface.Items.Components Connection recipient = Wires[i].OtherConnection(this); if (recipient == null) continue; + if (recipient.item == this.item || recipient.item == sender) continue; foreach (ItemComponent ic in recipient.item.components) { diff --git a/Subsurface/Items/Components/Signal/Wire.cs b/Subsurface/Items/Components/Signal/Wire.cs index c50649956..5cb2bb011 100644 --- a/Subsurface/Items/Components/Signal/Wire.cs +++ b/Subsurface/Items/Components/Signal/Wire.cs @@ -89,11 +89,22 @@ namespace Subsurface.Items.Components if (connections[0] != null && connections[1] != null) { - item.Drop(null, false); + //List prevNodes = new List(Nodes); + + + foreach (ItemComponent ic in item.components) + { + if (ic == this) continue; + ic.Drop(null); + } + if (item.container != null) item.container.RemoveContained(this.item); + + item.body.Enabled = false; isActive = false; + //Nodes = prevNodes; CleanNodes(); } @@ -114,6 +125,13 @@ namespace Subsurface.Items.Components isActive = false; } + public override void Drop(Character dropper) + { + ClearConnections(); + + isActive = false; + } + public override void Update(float deltaTime, Camera cam) { if (Nodes.Count == 0) return; diff --git a/Subsurface/Items/Item.cs b/Subsurface/Items/Item.cs index 23c0b003c..6c7c91fff 100644 --- a/Subsurface/Items/Item.cs +++ b/Subsurface/Items/Item.cs @@ -714,7 +714,7 @@ namespace Subsurface if (Vector2.Distance(position, item.SimPosition) > item.prefab.PickDistance) continue; dist = Vector2.Distance(pickPosition, item.SimPosition); - if ((closest == null || dist < closestDist) && Submarine.CheckVisibility(position, item.SimPosition)==null) + if ((closest == null || dist < closestDist)) { closest = item; closestDist = dist; diff --git a/Subsurface/Subsurface.csproj b/Subsurface/Subsurface.csproj index d51d48407..a45191f9c 100644 --- a/Subsurface/Subsurface.csproj +++ b/Subsurface/Subsurface.csproj @@ -404,6 +404,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest Designer diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index a4567604de09240b2960260609434c05b826df3c..92cc730011c0800906512aef3decc0c503ef911a 100644 GIT binary patch delta 7519 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 delta 9097 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 rCdaGHi{8j(;b!mc;@EvuGeXy!`hHjIlK#gx8(W