diff --git a/Assets/Cryville/Crtr/Event/ContainerHandler.cs b/Assets/Cryville/Crtr/Event/ContainerHandler.cs index e745506..893ab8e 100644 --- a/Assets/Cryville/Crtr/Event/ContainerHandler.cs +++ b/Assets/Cryville/Crtr/Event/ContainerHandler.cs @@ -231,7 +231,7 @@ namespace Cryville.Crtr.Event { tev.Time = time; tev.Container = Container; tev.Target = anchor; - tev.CanDiscard = !forced; + tev.Forced = forced; tev.SetPriority(priority); ts.Bus.PushTempEvent(tev); } diff --git a/Assets/Cryville/Crtr/Event/ContainerState.cs b/Assets/Cryville/Crtr/Event/ContainerState.cs index d5dabdb..6e38ae5 100644 --- a/Assets/Cryville/Crtr/Event/ContainerState.cs +++ b/Assets/Cryville/Crtr/Event/ContainerState.cs @@ -395,7 +395,7 @@ namespace Cryville.Crtr.Event { value.SetRelativeNode(tev.Node); } else { - value.AbsoluteValue.ReplaceFrom(tev.Node.Value); + tev.Node.Value.CopyTo(value.AbsoluteValue); } } else { diff --git a/Assets/Cryville/Crtr/Motion.cs b/Assets/Cryville/Crtr/Motion.cs index 35062dc..01882bd 100644 --- a/Assets/Cryville/Crtr/Motion.cs +++ b/Assets/Cryville/Crtr/Motion.cs @@ -4,7 +4,6 @@ using Cryville.Common.Pdt; using System; using System.Collections.Generic; using System.Globalization; -using System.Text.RegularExpressions; using UnityEngine; namespace Cryville.Crtr { @@ -185,7 +184,6 @@ namespace Cryville.Crtr { public abstract byte Dimension { get; } public abstract void ApplyFrom(Vector parent); - public abstract void ReplaceFrom(Vector parent); public abstract void LerpWith(Vector start, float lerpedTime, ref Vector result); public abstract override string ToString(); public abstract unsafe void ToArray(float* arr); @@ -220,11 +218,6 @@ namespace Cryville.Crtr { Value += p.Value; } - public override void ReplaceFrom(Vector parent) { - var p = (Vec1)parent; - Value = p.Value; - } - public override void LerpWith(Vector start, float lerpedTime, ref Vector result) { var r = (Vec1)result; if (start == null) { @@ -267,11 +260,6 @@ namespace Cryville.Crtr { Value += p.Value; } - public override void ReplaceFrom(Vector parent) { - var p = (VecI1)parent; - Value = p.Value; - } - public override void LerpWith(Vector start, float lerpedTime, ref Vector result) { var r = (VecI1)result; if (start == null) { @@ -314,11 +302,6 @@ namespace Cryville.Crtr { Value *= p.Value; } - public override void ReplaceFrom(Vector parent) { - var p = (Vec1m)parent; - Value = p.Value; - } - public override void LerpWith(Vector start, float lerpedTime, ref Vector result) { var r = (Vec1m)result; if (start == null) { @@ -344,7 +327,7 @@ namespace Cryville.Crtr { } public class Vec2 : Vector { - float? x, y; + float x, y; public Vec2() { x = y = 0; } public Vec2(float[] v) { @@ -358,13 +341,7 @@ namespace Cryville.Crtr { public override void ApplyFrom(Vector parent) { var p = (Vec2)parent; - x += p.x.GetValueOrDefault(); y += p.y.GetValueOrDefault(); - } - - public override void ReplaceFrom(Vector parent) { - var p = (Vec2)parent; - if (p.x.HasValue) x = p.x; - if (p.y.HasValue) y = p.y; + x += p.x; y += p.y; } public override void LerpWith(Vector start, float lerpedTime, ref Vector result) { @@ -375,12 +352,12 @@ namespace Cryville.Crtr { return; } var s = (Vec2)start; - r.x = x.HasValue ? (s.x.Value * (1 - lerpedTime) + x.Value * lerpedTime) : s.x.Value; - r.y = y.HasValue ? (s.y.Value * (1 - lerpedTime) + y.Value * lerpedTime) : s.y.Value; + r.x = s.x * (1 - lerpedTime) + x * lerpedTime; + r.y = s.y * (1 - lerpedTime) + y * lerpedTime; } public Vector3 ToVector2() { - return new Vector3(x.Value, y.Value); + return new Vector3(x, y); } public override void CopyTo(Vector dest) { @@ -389,20 +366,17 @@ namespace Cryville.Crtr { } public override string ToString() { - return string.Format("{0},{1}", - x != null ? x.Value.ToString(CultureInfo.InvariantCulture) : "", - y != null ? y.Value.ToString(CultureInfo.InvariantCulture) : "" - ); + return string.Format(CultureInfo.InvariantCulture, "{0},{1}", x, y); } public override unsafe void ToArray(float* arr) { - arr[0] = x.Value; - arr[1] = y.Value; + arr[0] = x; + arr[1] = y; } } public class Vec3 : Vector { - float? x, y, z; + float x, y, z; public Vec3() { x = y = z = 0; } public Vec3(float[] v) { @@ -416,14 +390,7 @@ namespace Cryville.Crtr { public override void ApplyFrom(Vector parent) { var p = (Vec3)parent; - x += p.x.GetValueOrDefault(); y += p.y.GetValueOrDefault(); z += p.z.GetValueOrDefault(); - } - - public override void ReplaceFrom(Vector parent) { - var p = (Vec3)parent; - if (p.x.HasValue) x = p.x; - if (p.y.HasValue) y = p.y; - if (p.z.HasValue) z = p.z; + x += p.x; y += p.y; z += p.z; } public override void LerpWith(Vector start, float lerpedTime, ref Vector result) { @@ -435,13 +402,13 @@ namespace Cryville.Crtr { return; } var s = (Vec3)start; - r.x = x.HasValue ? (s.x.Value * (1 - lerpedTime) + x.Value * lerpedTime) : s.x.Value; - r.y = y.HasValue ? (s.y.Value * (1 - lerpedTime) + y.Value * lerpedTime) : s.y.Value; - r.z = z.HasValue ? (s.z.Value * (1 - lerpedTime) + z.Value * lerpedTime) : s.z.Value; + r.x = s.x * (1 - lerpedTime) + x * lerpedTime; + r.y = s.y * (1 - lerpedTime) + y * lerpedTime; + r.z = s.z * (1 - lerpedTime) + z * lerpedTime; } public Vector3 ToVector3() { - return new Vector3(x.Value, y.Value, z.Value); + return new Vector3(x, y, z); } public override void CopyTo(Vector dest) { @@ -450,17 +417,13 @@ namespace Cryville.Crtr { } public override string ToString() { - return string.Format("{0},{1},{2}", - x != null ? x.Value.ToString(CultureInfo.InvariantCulture) : "", - y != null ? y.Value.ToString(CultureInfo.InvariantCulture) : "", - z != null ? z.Value.ToString(CultureInfo.InvariantCulture) : "" - ); + return string.Format(CultureInfo.InvariantCulture, "{0},{1},{2}", x, y, z); } public override unsafe void ToArray(float* arr) { - arr[0] = x.Value; - arr[1] = y.Value; - arr[2] = z.Value; + arr[0] = x; + arr[1] = y; + arr[2] = z; } } diff --git a/Assets/Cryville/Crtr/StampedEvent.cs b/Assets/Cryville/Crtr/StampedEvent.cs index f970a1f..15ec1bb 100644 --- a/Assets/Cryville/Crtr/StampedEvent.cs +++ b/Assets/Cryville/Crtr/StampedEvent.cs @@ -21,12 +21,13 @@ namespace Cryville.Crtr { public virtual int Priority { get { if (Unstamped != null) return Unstamped.Priority; + if (Origin != null) return Origin.Priority + 1; throw new NotImplementedException(); } } public class Temporary : StampedEvent, IComparable { - public bool CanDiscard; + public virtual bool CanDiscard { get; set; } public int CompareTo(Temporary other) { return base.CompareTo(other); } @@ -35,6 +36,8 @@ namespace Cryville.Crtr { public class Anchor : Temporary { public CAnchor Target; int m_priority; + public bool Forced { get; set; } + public override bool CanDiscard { get { return !Forced; } } public override int Priority { get { return m_priority; } } public void SetPriority(int value) { m_priority = value; } } @@ -51,14 +54,7 @@ namespace Cryville.Crtr { } } - StampedEvent relev = null; - public StampedEvent ReleaseEvent { - get { return relev; } - set { - if (relev != null) throw new InvalidOperationException("Release event already set"); - relev = value; - } - } + public StampedEvent ReleaseEvent { get; set; } public override string ToString() { if (Unstamped == null)