public void TimePositionsCanBeCompared() { var p1 = new TimePosition(50); var p2 = new TimePosition(50); var p3 = new TimePosition(51); var p4 = new TimePosition(51); var p5 = new TimePosition(49); Assert.True(p1 < p3); Assert.True(p1 <= p3); Assert.True(p1 <= p2); Assert.True(p3 > p2); Assert.True(p3 >= p4); Assert.True(p3 >= p1); Assert.True(p1.CompareTo(p3) < 0); Assert.True(p1.CompareTo(p2) == 0); Assert.True(p1.CompareTo(p5) > 0); Assert.True(TimePosition.StartPosition.CompareTo((TimePosition)null) < 0); Assert.Throws <ArgumentNullException>(() => p1 > (TimePosition)null); Assert.Throws <ArgumentNullException>(() => (TimePosition)null > p1); Assert.Throws <ArgumentNullException>(() => p2 < (TimePosition)null); Assert.Throws <ArgumentNullException>(() => (TimePosition)null < p1); Assert.Throws <ArgumentNullException>(() => p1 >= (TimePosition)null); Assert.Throws <ArgumentNullException>(() => (TimePosition)null >= p1); Assert.Throws <ArgumentNullException>(() => p2 <= (TimePosition)null); Assert.Throws <ArgumentNullException>(() => (TimePosition)null <= p1); }
public void TimePositionsCanMeasureDistanceForward() { var p1 = new TimePosition(50); var p2 = new TimePosition(52); Assert.True(p1.DistanceUntil(p2) == TimeSpan.FromMilliseconds(2)); Assert.True(p2.DistanceUntil(p1) == TimeSpan.Zero); }
public void CanCreateTimePositions() { var p0 = new TimePosition(0); var pMax = new TimePosition(long.MaxValue); Assert.IsType <TimePosition>(p0); Assert.IsType <TimePosition>(pMax); Assert.IsType <TimePosition>(TimePosition.StartPosition); Assert.Equal(p0, TimePosition.StartPosition); Assert.Throws <ArgumentOutOfRangeException>(() => new TimePosition(-1)); }
private void DefaultMemoryConfiguration() { C_TimePositionYear = 1; C_TimePositionMonth = 1; C_TimePositionDay = 1; C_TimePositionHour = 1; C_TimePositionMinute = 1; C_ThoughtTime = new TimePosition(C_TimePositionYear, C_TimePositionMonth, C_TimePositionDay, C_TimePositionHour, C_TimePositionMinute); C_ThoughtType = 1; C_NeedTime = new TimePosition(C_TimePositionYear, C_TimePositionMonth, C_TimePositionDay, C_TimePositionHour, C_TimePositionMinute); C_NeedType = 1; C_MotivationTime = new TimePosition(C_TimePositionYear, C_TimePositionMonth, C_TimePositionDay, C_TimePositionHour, C_TimePositionMinute); C_MotivationType = 1; C_EventTime = new TimePosition(C_TimePositionYear, C_TimePositionMonth, C_TimePositionDay, C_TimePositionHour, C_TimePositionMinute); C_EventType = 1; C_Need = new Need(C_NeedTime, C_NeedType); C_Motivation = new Motivation(C_MotivationTime, C_MotivationType); C_Thought = new Thought(C_ThoughtTime, C_ThoughtType); C_Event = new Event(C_EventTime, C_EventType); C_DayThoughts = new List <Thought>(); C_DayNeeds = new List <Need> (); C_DayMotivation = new List <Motivation> (); C_DayEvent = new List <Event> (); C_WeekThoughts = new List <Thought>(); C_WeekNeeds = new List <Need> (); C_WeekMotivation = new List <Motivation> (); C_WeekEvent = new List <Event> (); C_MonthThoughts = new List <Thought>(); C_MonthNeeds = new List <Need> (); C_MonthMotivation = new List <Motivation> (); C_MonthEvent = new List <Event> (); C_YearThoughts = new List <Thought>(); C_YearNeeds = new List <Need> (); C_YearMotivation = new List <Motivation> (); C_YearEvent = new List <Event> (); C_LifeThoughts = new List <Thought>(); C_LifeNeeds = new List <Need> (); C_LifeMotivation = new List <Motivation> (); C_LifeEvent = new List <Event> (); C_DayThoughts.Add(C_Thought); C_DayMotivation.Add(C_Motivation); C_DayNeeds.Add(C_Need); C_DayEvent.Add(C_Event); }
public void TimePositionsCanAddAndSubtract() { var p1 = new TimePosition(50); var p2 = new TimePosition(52); var twoMs = TimeSpan.FromMilliseconds(2); Assert.True(p1 + twoMs == p2); var subTime = p2 - twoMs; Assert.True(subTime == p1); Assert.Throws <ArgumentNullException>(() => (TimePosition)null + twoMs); Assert.Throws <ArgumentNullException>(() => (TimePosition)null - twoMs); }
public void WaitFor(TimePosition position, ManualResetEventSlim waitEvent) { var waitTime = Now().DistanceUntil(position); if (waitTime == TimeSpan.Zero) { return; } lock (_waiting) { _waiting.Add(waitEvent); } waitEvent.Wait(waitTime); lock (_waiting) { _waiting.Remove(waitEvent); } }
private Vector2 DetermineCurrentPosition() { Vector2 position = this.transform.position; if (this.lastIndex >= this.TimePositions.Count - 1) { this.replayEnded = true; return(position); } var currentAge = Time.timeSinceLevelLoad - this.startTime; // Find the previous and next position based on current time for (var i = lastIndex; i < this.TimePositions.Count; i++) { if (this.TimePositions[i].Seconds < currentAge) { lastIndex = i; continue; } var lastTimePosition = this.TimePositions[lastIndex]; var nextTimePosition = this.TimePositions[i]; if (lastIndex == 0 && i == 0) { lastTimePosition = new TimePosition(this.startTime, this.transform.position); } var currentTicks = currentAge - lastTimePosition.Seconds; var nextTicks = nextTimePosition.Seconds - lastTimePosition.Seconds; var fraction = currentTicks / nextTicks; var xDelta = (nextTimePosition.Position.x - lastTimePosition.Position.x) * fraction; var xPos = lastTimePosition.Position.x + xDelta; var yDelta = (nextTimePosition.Position.y - lastTimePosition.Position.y) * fraction; var yPos = lastTimePosition.Position.y + yDelta; position = new Vector2(xPos, yPos); break; } // Find the percentage between the previous and next position // scale the x and y values between the previous and next position as new position return(position); }
private void AddTimePosition() { var timePosition = new TimePosition(Time.timeSinceLevelLoad - this.startTime, this.transform.position.AsVector2()); var count = this.timePositionList.Count; if (count > 2 && timePosition.Position == this.timePositionList[count - 1].Position && timePosition.Position == this.timePositionList[count - 2].Position) { this.timePositionList.Remove(this.timePositionList[count - 1]); Debug.Log("No movement since last update, removing previous last position."); } this.timePositionList.Add(timePosition); Debug.Log(string.Format("Time position list contains {0} elements", this.timePositionList.Count)); }
private void DefaultSocialConditionConfiguration() { C_RelationshipRage = 0; C_RelationshipLoathing = 0; C_RelationshipGrief = 0; C_RelationshipAmazement = 0; C_RelationshipTerror = 0; C_RelationshipAdmiration = 0; C_RelationshipEcstasy = 0; C_RelationshipVigilance = 0; C_GeneralFeeling = 0; C_RelationshipFeeling = new InterpersonalFeeling(C_RelationshipRage, C_RelationshipLoathing, C_RelationshipGrief, C_RelationshipAmazement, C_RelationshipTerror, C_RelationshipAdmiration, C_RelationshipEcstasy, C_RelationshipVigilance, C_GeneralFeeling); C_TimePositionYear = 1; C_TimePositionMonth = 1; C_TimePositionDay = 1; C_TimePositionHour = 1; C_TimePositionMinute = 1; C_EventTime = new TimePosition(C_TimePositionYear, C_TimePositionMonth, C_TimePositionDay, C_TimePositionHour, C_TimePositionMinute); C_EventType = 1; C_Event = new Event(C_EventTime, C_EventType); C_RelationshipEventList = new List <Event> (); C_RelationshipEventList.Add(C_Event); C_RelationshipMemory = new MemoryWithThem(C_RelationshipEventList); C_RelationshipCharacter = 1; C_RelationshipRelatedType = 1; C_RelationshipPersonal = 1; C_Relationship = new Relationship(C_RelationshipCharacter, C_RelationshipRelatedType, C_RelationshipPersonal, C_RelationshipFeeling, C_RelationshipMemory); C_RelationshipList = new List <Relationship> (); C_RelationshipList.Add(C_Relationship); C_ReputationGroupNumber = 1; C_ReputationGroupRole = 1; C_ReputationGroupVisibility = 1; C_Reputation = new Reputation(C_ReputationGroupNumber, C_ReputationGroupRole, C_ReputationGroupVisibility); C_ReputationList = new List <Reputation> (); C_ReputationList.Add(C_Reputation); }
public void TimePositionsEquateByValue() { var p1 = new TimePosition(50); var p2 = new TimePosition(50); var p3 = new TimePosition(49); Assert.Equal(p1, p2); Assert.Equal(p1, (object)p2); Assert.True(p1 == p2); Assert.True(p1 != p3); Assert.True(p1.Equals(p2)); Assert.True(p2.Equals(p1)); Assert.False(p1.Equals(null)); Assert.False(p1 == (TimePosition)null); Assert.False((TimePosition)null == p1); Assert.True((TimePosition)null == (TimePosition)null); Assert.False(p1 == p3); #pragma warning disable CS1718 // Comparison made to same variable Assert.True(p1 == p1); #pragma warning restore CS1718 // Comparison made to same variable Assert.True(p1.Equals(p1)); Assert.True(p1.GetHashCode() == p2.GetHashCode()); }
/// <inheritdoc/> protected override int CompareTimePosition(TimingPoint other) => TimePosition.CompareTo(other.GetRelativeTimePosition());
/// <summary>Calculates the absolute time position of this relative timing poing based on a previous <seealso cref="TimingPoint"/>.</summary> /// <param name="previous">The previous <seealso cref="TimingPoint"/> based on which to calculate the absolute time position.</param> public void CalculateAbsoluteTimePosition(TimingPoint previous) { // F**k this is so long AbsoluteTimePosition = previous.GetAbsoluteTimePosition() + previous.BPM.GetDurationTimeSpan(TimePosition.DistanceFrom(previous.GetRelativeTimePosition(), previous.TimeSignature), previous.TimeSignature); }
public Need(TimePosition time, int type) { Time = time; Type = type; }
public Event(TimePosition time, int type) { Time = time; Type = type; }
public Thought(TimePosition time, int type) { Time = time; Type = type; }
public Motivation(TimePosition time, int type) { Time = time; Type = type; }