Removed queue

This commit is contained in:
2025-12-26 16:23:17 +01:00
parent 8dec85e9f2
commit 16b0a348e4
3 changed files with 960 additions and 1037 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -13,31 +13,21 @@ namespace Marro.PacManUdon
// I'm not redoing this unless I get instantiatable classes before I wrap up this project. // I'm not redoing this unless I get instantiatable classes before I wrap up this project.
bool currentlyInTimeSequence; bool currentlyInTimeSequence;
bool waitingForTimeSequenceFinish; bool waitingForTimeSequenceFinish;
bool jumpingToTimeSequence;
PacManTimeSequence currentTimeSequence; PacManTimeSequence currentTimeSequence;
bool hasTimeSequenceQueued;
private DataList timeSequenceQueue;
[UdonSynced] float timeSequenceSecondsPassed; [UdonSynced] float timeSequenceSecondsPassed;
int timeSequenceProgress; int timeSequenceProgress;
float[] timeSequenceKeyframeTimes; float[] timeSequenceKeyframeTimes;
private void StartTimeSequence(PacManTimeSequence timeSequence) private void StartTimeSequence(PacManTimeSequence timeSequence)
{ {
if (timeSequenceQueue == null)
{
timeSequenceQueue = new DataList();
}
if (currentlyInTimeSequence == true)
{
int timeSequenceInt = (int)timeSequence; // Doing the conversion in the line below crashes the script. I love working in Udon
timeSequenceQueue.Add(timeSequenceInt);
hasTimeSequenceQueued = true;
return;
}
Debug.Log($"StartTimeSequence: {timeSequence}"); Debug.Log($"StartTimeSequence: {timeSequence}");
if (currentlyInTimeSequence)
{
PrepareToStartTimeSequence(timeSequence);
}
currentlyInTimeSequence = true; currentlyInTimeSequence = true;
currentTimeSequence = timeSequence; currentTimeSequence = timeSequence;
timeSequenceProgress = 0; timeSequenceProgress = 0;
@@ -45,32 +35,22 @@ namespace Marro.PacManUdon
timeSequenceKeyframeTimes = GetTimeSequenceKeyframeTimes(timeSequence); timeSequenceKeyframeTimes = GetTimeSequenceKeyframeTimes(timeSequence);
TimeSequenceProgressToTime(timeSequenceSecondsPassed); TimeSequenceProgressToTime(timeSequenceSecondsPassed);
} }
private void PrepareToStartTimeSequence(PacManTimeSequence timeSequence)
{
jumpingToTimeSequence = true;
TimeSequenceProgressToTime(100000f);
jumpingToTimeSequence = false;
}
private void TimeSequenceUpdate(float deltaSeconds) private void TimeSequenceUpdate(float deltaSeconds)
{ {
if (!currentlyInTimeSequence && hasTimeSequenceQueued) if (!currentlyInTimeSequence)
{ {
timeSequenceQueue.TryGetValue(0, out DataToken nextTimeSequence);
StartTimeSequence((PacManTimeSequence)nextTimeSequence.Int);
timeSequenceQueue.RemoveAt(0);
hasTimeSequenceQueued = timeSequenceQueue.Count > 0 ? true : false;
return; return;
} }
if (currentlyInTimeSequence) TimeSequenceProgressToTime(timeSequenceSecondsPassed + deltaSeconds);
{
if (hasTimeSequenceQueued)
{
while (currentlyInTimeSequence)
{
TimeSequenceSkipToNextStep();
}
}
else
{
TimeSequenceProgressToTime(timeSequenceSecondsPassed + deltaSeconds);
}
}
} }
private void TimeSequenceSkipToNextStep() private void TimeSequenceSkipToNextStep()
@@ -109,7 +89,7 @@ namespace Marro.PacManUdon
if (Networking.IsOwner(gameObject)) if (Networking.IsOwner(gameObject))
{ {
TimeSequenceExecuteFinalize(); TimeSequenceExecuteFinalize();
if (!hasTimeSequenceQueued) if (!jumpingToTimeSequence)
{ {
TimeSequenceExecuteFinished(); TimeSequenceExecuteFinished();
} }

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: a11df70b39ac2924c825f9951b58dafd guid: 506fd020620e6d24787a909c153b2da5
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2