(7840e7e91) Fixed characters selecting entities when dragging and dropping items into them when the Select input is bind to Mouse1.

This commit is contained in:
Joonas Rikkonen
2019-04-05 16:13:27 +03:00
parent 57e5a969ba
commit 29e979d60a
4 changed files with 14 additions and 11 deletions

View File

@@ -68,7 +68,8 @@ namespace Barotrauma
states = newInput,
intAim = intAngle
};
if (focusedItem != null && (!newMem.states.HasFlag(InputNetFlags.Grab) && !newMem.states.HasFlag(InputNetFlags.Health)))
if (focusedItem != null && !CharacterInventory.DraggingItemToWorld &&
(!newMem.states.HasFlag(InputNetFlags.Grab) && !newMem.states.HasFlag(InputNetFlags.Health)))
{
newMem.interact = focusedItem.ID;
}

View File

@@ -60,12 +60,19 @@ namespace Barotrauma
public CrewManager(XElement element, bool isSinglePlayer)
: this(isSinglePlayer)
{
return characterListBox.Rect;
}
partial void InitProjectSpecific()
{
guiFrame = new GUIFrame(new RectTransform(Vector2.One, GUICanvas.Instance), null, Color.Transparent)
{
CanBeFocused = false
};
Point scrollButtonSize = new Point((int)(200 * GUI.Scale), (int)(30 * GUI.Scale));
var characterInfo = new CharacterInfo(subElement);
characterInfos.Add(characterInfo);
foreach (XElement invElement in subElement.Elements())
@@ -125,16 +132,6 @@ namespace Barotrauma
prevUIScale = GUI.Scale;
}
#endregion
#region Character list management
public Rectangle GetCharacterListArea()
{
return characterListBox.Rect;
}
partial void InitProjectSpecific()
{
guiFrame = new GUIFrame(new RectTransform(Vector2.One, GUICanvas.Instance), null, Color.Transparent)

View File

@@ -600,6 +600,8 @@ namespace Barotrauma
{
if (draggingItem != null && PlayerInput.LeftButtonReleased())
{
Character.Controlled.ClearInputs();
if (CharacterHealth.OpenHealthWindow != null &&
CharacterHealth.OpenHealthWindow.OnItemDropped(draggingItem, false))
{

View File

@@ -1782,6 +1782,9 @@ namespace Barotrauma
}
else if (focusedItem != null)
{
#if CLIENT
if (CharacterInventory.DraggingItemToWorld) { return; }
#endif
bool canInteract = focusedItem.TryInteract(this);
#if CLIENT
if (Controlled == this)