Characters can only have one picking timer active at a time. Closes #179
This commit is contained in:
@@ -372,7 +372,7 @@ namespace Barotrauma
|
|||||||
if (!MathUtils.IsValid(value)) return;
|
if (!MathUtils.IsValid(value)) return;
|
||||||
if (GameMain.Client != null) return;
|
if (GameMain.Client != null) return;
|
||||||
|
|
||||||
float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f);
|
float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f);
|
||||||
if (newBleeding == bleeding) return;
|
if (newBleeding == bleeding) return;
|
||||||
|
|
||||||
bleeding = newBleeding;
|
bleeding = newBleeding;
|
||||||
@@ -465,6 +465,12 @@ namespace Barotrauma
|
|||||||
get { return focusedItem; }
|
get { return focusedItem; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Item PickingItem
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual AIController AIController
|
public virtual AIController AIController
|
||||||
{
|
{
|
||||||
get { return null; }
|
get { return null; }
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
private float pickTimer;
|
private float pickTimer;
|
||||||
|
|
||||||
|
|
||||||
public List<InvSlotType> AllowedSlots
|
public List<InvSlotType> AllowedSlots
|
||||||
{
|
{
|
||||||
get { return allowedSlots; }
|
get { return allowedSlots; }
|
||||||
@@ -55,13 +54,15 @@ namespace Barotrauma.Items.Components
|
|||||||
public override bool Pick(Character picker)
|
public override bool Pick(Character picker)
|
||||||
{
|
{
|
||||||
//return if someone is already trying to pick the item
|
//return if someone is already trying to pick the item
|
||||||
if (pickTimer>0.0f) return false;
|
if (pickTimer > 0.0f) return false;
|
||||||
if (picker == null || picker.Inventory == null) return false;
|
if (picker == null || picker.Inventory == null) return false;
|
||||||
|
|
||||||
if (PickingTime>0.0f)
|
if (PickingTime > 0.0f)
|
||||||
{
|
{
|
||||||
CoroutineManager.StartCoroutine(WaitForPick(picker, PickingTime));
|
if (picker.PickingItem == null)
|
||||||
|
{
|
||||||
|
CoroutineManager.StartCoroutine(WaitForPick(picker, PickingTime));
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -104,6 +105,8 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
private IEnumerable<object> WaitForPick(Character picker, float requiredTime)
|
private IEnumerable<object> WaitForPick(Character picker, float requiredTime)
|
||||||
{
|
{
|
||||||
|
picker.PickingItem = item;
|
||||||
|
|
||||||
var leftHand = picker.AnimController.GetLimb(LimbType.LeftHand);
|
var leftHand = picker.AnimController.GetLimb(LimbType.LeftHand);
|
||||||
var rightHand = picker.AnimController.GetLimb(LimbType.RightHand);
|
var rightHand = picker.AnimController.GetLimb(LimbType.RightHand);
|
||||||
|
|
||||||
@@ -151,6 +154,7 @@ namespace Barotrauma.Items.Components
|
|||||||
private void StopPicking(Character picker)
|
private void StopPicking(Character picker)
|
||||||
{
|
{
|
||||||
picker.AnimController.Anim = AnimController.Animation.None;
|
picker.AnimController.Anim = AnimController.Animation.None;
|
||||||
|
picker.PickingItem = null;
|
||||||
pickTimer = 0.0f;
|
pickTimer = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user