v1.4.4.1 (Blood in the Water Update)
This commit is contained in:
@@ -32,11 +32,6 @@ namespace Barotrauma.Items.Components
|
||||
private LocalizedString prevMsg;
|
||||
private Dictionary<RelatedItem.RelationType, List<RelatedItem>> prevRequiredItems;
|
||||
|
||||
//the distance from the holding characters elbow to center of the physics body of the item
|
||||
protected Vector2 holdPos;
|
||||
|
||||
protected Vector2 aimPos;
|
||||
|
||||
private float swingState;
|
||||
|
||||
private Character prevEquipper;
|
||||
@@ -131,6 +126,9 @@ namespace Barotrauma.Items.Components
|
||||
get { return ConvertUnits.ToDisplayUnits(holdPos); }
|
||||
set { holdPos = ConvertUnits.ToSimUnits(value); }
|
||||
}
|
||||
//the distance from the holding characters elbow to center of the physics body of the item
|
||||
protected Vector2 holdPos;
|
||||
|
||||
|
||||
[Serialize("0.0,0.0", IsPropertySaveable.No, description: "The position the character holds the item at when aiming (in pixels, as an offset from the character's shoulder)."+
|
||||
" Works similarly as HoldPos, except that the position is rotated according to the direction the player is aiming at. For example, a value of 10,-100 would make the character hold the item 100 pixels below the shoulder and 10 pixels forwards when aiming directly to the right.")]
|
||||
@@ -139,6 +137,7 @@ namespace Barotrauma.Items.Components
|
||||
get { return ConvertUnits.ToDisplayUnits(aimPos); }
|
||||
set { aimPos = ConvertUnits.ToSimUnits(value); }
|
||||
}
|
||||
protected Vector2 aimPos;
|
||||
|
||||
protected float holdAngle;
|
||||
#if DEBUG
|
||||
@@ -258,12 +257,12 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
|
||||
canBePicked = true;
|
||||
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(RequiredItems);
|
||||
|
||||
if (attachable)
|
||||
{
|
||||
prevMsg = DisplayMsg;
|
||||
prevPickKey = PickKey;
|
||||
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);
|
||||
|
||||
if (item.Submarine != null)
|
||||
{
|
||||
@@ -320,7 +319,7 @@ namespace Barotrauma.Items.Components
|
||||
if (attachable)
|
||||
{
|
||||
prevMsg = DisplayMsg;
|
||||
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);
|
||||
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(RequiredItems);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -649,7 +648,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
DisplayMsg = prevMsg;
|
||||
PickKey = prevPickKey;
|
||||
requiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(prevRequiredItems);
|
||||
RequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(prevRequiredItems);
|
||||
|
||||
Attached = true;
|
||||
#if CLIENT
|
||||
@@ -667,7 +666,7 @@ namespace Barotrauma.Items.Components
|
||||
item.DrawDepthOffset = 0.0f;
|
||||
#endif
|
||||
//make the item pickable with the default pick key and with no specific tools/items when it's deattached
|
||||
requiredItems.Clear();
|
||||
RequiredItems.Clear();
|
||||
DisplayMsg = "";
|
||||
PickKey = InputType.Select;
|
||||
#if CLIENT
|
||||
@@ -916,15 +915,25 @@ namespace Barotrauma.Items.Components
|
||||
bool aim = picker.IsKeyDown(InputType.Aim) && aimPos != Vector2.Zero && picker.CanAim && !UsageDisabledByRangedWeapon(picker);
|
||||
if (aim)
|
||||
{
|
||||
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, holdPos + swingPos, aimPos + swingPos, aim, holdAngle, aimAngle);
|
||||
if (picker.AnimController.IsHoldingToRope && GetRope() is { Snapped: false } rope)
|
||||
{
|
||||
Vector2 targetPos = Submarine.GetRelativeSimPosition(picker, rope.Item);
|
||||
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: aimPos, aim: true, holdAngle, aimAngle, targetPos: targetPos);
|
||||
}
|
||||
else
|
||||
{
|
||||
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: aimPos + swingPos, aim: true, holdAngle, aimAngle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, holdPos + swingPos, aimPos + swingPos, aim, holdAngle);
|
||||
var rope = GetRope();
|
||||
if (rope != null && rope.SnapWhenNotAimed && rope.Item.ParentInventory == null)
|
||||
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: holdPos + swingPos, aim: false, holdAngle);
|
||||
if (GetRope() is { SnapWhenNotAimed: true } rope)
|
||||
{
|
||||
rope.Snap();
|
||||
if (rope.Item.ParentInventory == null)
|
||||
{
|
||||
rope.Snap();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1054,15 +1063,15 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
|
||||
var tempMsg = DisplayMsg;
|
||||
var tempRequiredItems = requiredItems;
|
||||
var tempRequiredItems = RequiredItems;
|
||||
|
||||
DisplayMsg = prevMsg;
|
||||
requiredItems = prevRequiredItems;
|
||||
RequiredItems = prevRequiredItems;
|
||||
|
||||
XElement saveElement = base.Save(parentElement);
|
||||
|
||||
DisplayMsg = tempMsg;
|
||||
requiredItems = tempRequiredItems;
|
||||
RequiredItems = tempRequiredItems;
|
||||
|
||||
return saveElement;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user