1
Fork 0
mirror of https://github.com/thegeneralist01/Scene-Manager-DevRepo synced 2026-01-11 23:50:29 +01:00

Refactored Dismiss function to use local functions for each type of dismissal

This commit is contained in:
Rich Dunne 2020-10-07 05:01:00 -06:00
parent f0a5fb6d80
commit 159f7d28a3

View file

@ -38,6 +38,29 @@ namespace SceneManager
}
if (dismissOption == DismissOption.FromWorld)
{
DismissFromWorld();
return;
}
Driver.Tasks.Clear();
if(StoppedAtWaypoint)
{
Logger.Log($"Unstucking {Vehicle.Model.Name}");
StoppedAtWaypoint = false;
}
if(dismissOption == DismissOption.FromWaypoint)
{
DismissFromWaypoint();
}
if(dismissOption == DismissOption.FromPath)
{
DismissFromPath();
}
void DismissFromWorld()
{
Game.LogTrivial($"Dismissed {Vehicle.Model.Name} from the world");
while (Vehicle.HasOccupants)
@ -50,23 +73,26 @@ namespace SceneManager
GameFiber.Yield();
}
Vehicle.Delete();
return;
}
Driver.Tasks.Clear();
if(StoppedAtWaypoint)
void DismissFromWaypoint()
{
Logger.Log($"Unstucking {Vehicle.Model.Name}");
StoppedAtWaypoint = false;
if (CurrentWaypoint == null || Path == null)
{
Logger.Log($"CurrentWaypoint or Path are null");
}
if(dismissOption == DismissOption.FromWaypoint && CurrentWaypoint.Number != Path.Waypoints.Count)
else if (CurrentWaypoint?.Number != Path?.Waypoints.Count)
{
Logger.Log($"Dismissed from waypoint.");
SkipWaypoint = true;
}
else if (CurrentWaypoint?.Number == Path?.Waypoints.Count)
{
DismissFromPath();
}
}
if(dismissOption == DismissOption.FromWaypoint && CurrentWaypoint.Number == Path.Waypoints.Count || dismissOption == DismissOption.FromPath)
void DismissFromPath()
{
Logger.Log($"Dismissing from path");
Dismissed = true;