diff --git a/Subsurface/Source/Events/Missions/CargoMission.cs b/Subsurface/Source/Events/Missions/CargoMission.cs index a0b8a5629..b52797ad2 100644 --- a/Subsurface/Source/Events/Missions/CargoMission.cs +++ b/Subsurface/Source/Events/Missions/CargoMission.cs @@ -70,7 +70,7 @@ namespace Barotrauma Vector2 position = new Vector2( cargoSpawnPos.Position.X + Rand.Range(-20.0f, 20.0f, false), - cargoRoom.Rect.Y - cargoRoom.Rect.Height); + cargoRoom.Rect.Y - cargoRoom.Rect.Height + itemPrefab.Size.Y / 2); var item = new Item(itemPrefab, position, cargoRoom.Submarine); item.FindHull(); diff --git a/Subsurface/Source/GameSession/CargoManager.cs b/Subsurface/Source/GameSession/CargoManager.cs index ec66319d1..c6292c27a 100644 --- a/Subsurface/Source/GameSession/CargoManager.cs +++ b/Subsurface/Source/GameSession/CargoManager.cs @@ -5,14 +5,14 @@ namespace Barotrauma { class CargoManager { - private List purchasedItems; + private List purchasedItems; public CargoManager() { - purchasedItems = new List(); + purchasedItems = new List(); } - public void AddItem(MapEntityPrefab item) + public void AddItem(ItemPrefab item) { purchasedItems.Add(item); } @@ -35,11 +35,11 @@ namespace Barotrauma return; } - foreach (MapEntityPrefab prefab in purchasedItems) + foreach (ItemPrefab prefab in purchasedItems) { Vector2 position = new Vector2( Rand.Range(cargoRoom.Rect.X + 20, cargoRoom.Rect.Right - 20), - Rand.Range(cargoRoom.Rect.Y - cargoRoom.Rect.Height, cargoRoom.Rect.Y)); + cargoRoom.Rect.Y - cargoRoom.Rect.Height + prefab.Size.Y/2); new Item(prefab as ItemPrefab, position, wp.Submarine); } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index 86109cbb3..4c31efeb0 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -987,7 +987,7 @@ namespace Barotrauma.Networking for (int i = 0; i < extraCargo[s]; i++) { - Item.Spawner.QueueItem(itemPrefab, position, sub, false); + Item.Spawner.QueueItem(itemPrefab, position + (Vector2.UnitX * itemPrefab.Size.Y/2), sub, false); } } } diff --git a/Subsurface/Source/Screens/LobbyScreen.cs b/Subsurface/Source/Screens/LobbyScreen.cs index 96336860a..6052ae1d8 100644 --- a/Subsurface/Source/Screens/LobbyScreen.cs +++ b/Subsurface/Source/Screens/LobbyScreen.cs @@ -330,10 +330,10 @@ namespace Barotrauma { GUIComponent child = selectedItemList.children[i]; - MapEntityPrefab ep = child.UserData as MapEntityPrefab; - if (ep == null) continue; + ItemPrefab ip = child.UserData as ItemPrefab; + if (ip == null) continue; - gameMode.CargoManager.AddItem(ep); + gameMode.CargoManager.AddItem(ip); selectedItemList.RemoveChild(child); }