Saving (wip), statuseffect refactoring, multiple character faces

This commit is contained in:
Regalis
2015-06-12 16:56:51 +03:00
parent 270efd77e0
commit 566d54197a
35 changed files with 640 additions and 268 deletions
+2 -36
View File
@@ -115,47 +115,13 @@ namespace Subsurface.Items.Components
foreach (StatusEffect effect in ri.statusEffects)
{
if (effect.Targets.HasFlag(StatusEffect.Target.This)) effect.Apply(ActionType.OnContaining, deltaTime, item);
if (effect.Targets.HasFlag(StatusEffect.Target.Contained)) effect.Apply(ActionType.OnContaining, deltaTime, contained);
if (effect.Targets.HasFlag(StatusEffect.TargetType.This)) effect.Apply(ActionType.OnContaining, deltaTime, item.SimPosition, item.AllPropertyObjects);
if (effect.Targets.HasFlag(StatusEffect.TargetType.Contained)) effect.Apply(ActionType.OnContaining, deltaTime, item.SimPosition, contained.AllPropertyObjects);
}
contained.ApplyStatusEffects(ActionType.OnContained, deltaTime);
}
//if (hideItems) return;
//Vector2 transformedItemPos;
//Vector2 transformedItemInterval = itemInterval;
////float transformedItemRotation = itemRotation;
//if (item.body==null)
//{
// transformedItemPos = new Vector2(item.Rect.X, item.Rect.Y);
// transformedItemPos = ConvertUnits.ToSimUnits(transformedItemPos) + itemPos;
//}
//else
//{
// Matrix transform = Matrix.CreateRotationZ(item.body.Rotation);
// transformedItemPos = item.body.Position + Vector2.Transform(itemPos, transform);
// transformedItemInterval = Vector2.Transform(transformedItemInterval, transform);
// //transformedItemRotation += item.body.Rotation;
//}
//foreach (Item containedItem in inventory.items)
//{
// if (containedItem == null) continue;
// Vector2 itemDist = (transformedItemPos - containedItem.body.Position);
// Vector2 force = (itemDist - containedItem.body.LinearVelocity * 0.1f) * containedItem.body.Mass * 60.0f;
// containedItem.body.ApplyForce(force);
// containedItem.body.SmoothRotate(itemRotation);
// transformedItemPos += transformedItemInterval;
//}
}
public override void Draw(SpriteBatch spriteBatch)
+5 -4
View File
@@ -233,9 +233,12 @@ namespace Subsurface.Items.Components
public override void Update(float deltaTime, Camera cam)
{
OpenState += deltaTime * ((isOpen) ? 3.0f : -3.0f);
if (!isStuck)
{
OpenState += deltaTime * ((isOpen) ? 3.0f : -3.0f);
LinkedGap.Open = openState;
}
LinkedGap.Open = openState;
item.SendSignal((isOpen) ? "1" : "0", "state_out");
}
@@ -309,8 +312,6 @@ namespace Subsurface.Items.Components
public override void ReceiveSignal(string signal, Connection connection, Item sender)
{
if (isStuck) return;
if (connection.name=="toggle")
{
isOpen = !isOpen;
+7 -1
View File
@@ -291,7 +291,13 @@ namespace Subsurface
return false;
}
public virtual void Remove() { }
public virtual void Remove()
{
if (loopingSound!=null)
{
Sounds.SoundManager.Stop(loopingSoundIndex);
}
}
public bool HasRequiredContainedItems(bool addMessage)
{
+2 -2
View File
@@ -147,8 +147,8 @@ namespace Subsurface.Items.Components
foreach (StatusEffect effect in statusEffects)
{
if (Array.IndexOf(effect.TargetNames, targetItem.Name) == -1) continue;
effect.Apply(ActionType.OnUse, deltaTime, targetItem);
//if (Array.IndexOf(effect.TargetNames, targetItem.Name) == -1) continue;
effect.Apply(ActionType.OnUse, deltaTime, item.SimPosition, targetItem.AllPropertyObjects);
//targetItem.ApplyStatusEffect(effect, ActionType.OnUse, deltaTime);
}
//ApplyStatusEffects(ActionType.OnUse, 1.0f, null, targ);
+6 -14
View File
@@ -115,22 +115,14 @@ namespace Subsurface.Items.Components
Item[] containedItems = item.ContainedItems;
ApplyStatusEffects(ActionType.OnWearing, deltaTime, picker);
for (int i = 0; i < limb.Length; i++)
if (containedItems == null) return;
for (int j = 0; j<containedItems.Length; j++)
{
if (limb[i] == null) continue;
ApplyStatusEffects(ActionType.OnWearing, deltaTime, picker);
if (containedItems == null) continue;
for (int j = 0; j<containedItems.Length; j++)
{
if (containedItems[j] == null) continue;
containedItems[j].ApplyStatusEffects(ActionType.OnWearing, deltaTime, picker);
}
}
if (containedItems[j] == null) continue;
containedItems[j].ApplyStatusEffects(ActionType.OnWearing, deltaTime, picker);
}
}
}