Use console.

This commit is contained in:
Anna Rose 2025-02-08 21:06:30 -05:00
parent 9dcf923a49
commit dcc6a17c2c

View File

@ -7,6 +7,7 @@ namespace IngameScript
public partial class Program : MyGridProgram public partial class Program : MyGridProgram
{ {
private MyCommandLine _cli; private MyCommandLine _cli;
private Console _console;
private List<IEnumerator<bool>> _jobs; private List<IEnumerator<bool>> _jobs;
private Dictionary<string, Door> _doors; private Dictionary<string, Door> _doors;
private int _tickCount; private int _tickCount;
@ -15,6 +16,7 @@ namespace IngameScript
{ {
_tickCount = 0; _tickCount = 0;
_cli = new MyCommandLine(); _cli = new MyCommandLine();
_console = new Console(this);
_jobs = new List<IEnumerator<bool>>(); _jobs = new List<IEnumerator<bool>>();
_doors = new Dictionary<string, Door>(); _doors = new Dictionary<string, Door>();
@ -34,12 +36,12 @@ namespace IngameScript
} }
} }
Echo($"Found {_doors.Keys.Count} doors."); _console.Print($"Found {_doors.Keys.Count} doors.");
} }
public void Main(string argument, UpdateType updateSource) public void Main(string argument, UpdateType updateSource)
{ {
Echo($"index: {_tickCount++}"); _console.PrintLower($"Total Ticks: {_tickCount++}");
if (updateSource == UpdateType.Trigger || updateSource == UpdateType.Terminal) if (updateSource == UpdateType.Trigger || updateSource == UpdateType.Terminal)
{ {
@ -49,7 +51,7 @@ namespace IngameScript
if (_cli.ArgumentCount == 0) if (_cli.ArgumentCount == 0)
{ {
Echo("No arguments passed. Controlling all doors."); _console.Print("No arguments passed. Controlling all doors.");
foreach (Door door in _doors.Values) foreach (Door door in _doors.Values)
{ {
if (!door.Locked) if (!door.Locked)
@ -65,12 +67,12 @@ namespace IngameScript
string key = "Door" + _cli.Argument(i); string key = "Door" + _cli.Argument(i);
if (!_doors.ContainsKey(key)) if (!_doors.ContainsKey(key))
{ {
Echo($"Door with identifier {key} not found. Skipping."); _console.Print($"Door with identifier {key} not found. Skipping.");
continue; continue;
} }
if (!_doors[key].Locked) if (!_doors[key].Locked)
{ {
Echo($"Door {key} already moving. Skipping."); _console.Print($"Door {key} already moving. Skipping.");
continue; continue;
} }
doorsToControl.Add(_doors[key]); doorsToControl.Add(_doors[key]);
@ -78,11 +80,11 @@ namespace IngameScript
if (doorsToControl.Count == 0) if (doorsToControl.Count == 0)
{ {
Echo("No doors found. Not creating new job."); _console.Print("No doors found. Not creating new job.");
} }
else else
{ {
Echo("Creating new job."); _console.Print("Creating new job.");
if (_cli.Switch("close")) _jobs.Add(closeDoors(doorsToControl)); if (_cli.Switch("close")) _jobs.Add(closeDoors(doorsToControl));
else _jobs.Add(openDoors(doorsToControl)); else _jobs.Add(openDoors(doorsToControl));
Runtime.UpdateFrequency = UpdateFrequency.Update1; Runtime.UpdateFrequency = UpdateFrequency.Update1;
@ -97,7 +99,7 @@ namespace IngameScript
_jobs[i].Dispose(); _jobs[i].Dispose();
_jobs.Remove(_jobs[i]); _jobs.Remove(_jobs[i]);
i--; i--;
Echo("Operation Complete."); _console.Print("Operation Complete.");
} }
} }
@ -109,7 +111,7 @@ namespace IngameScript
private IEnumerator<bool> openDoors(List<Door> doorsToControl) private IEnumerator<bool> openDoors(List<Door> doorsToControl)
{ {
Echo("Opening doors."); _console.Print("Opening doors.");
foreach (Door door in doorsToControl) foreach (Door door in doorsToControl)
{ {
door.OpenDoor(); door.OpenDoor();
@ -119,7 +121,7 @@ namespace IngameScript
private IEnumerator<bool> closeDoors(List<Door> doorsToControl) private IEnumerator<bool> closeDoors(List<Door> doorsToControl)
{ {
Echo("Closing doors."); _console.Print("Closing doors.");
foreach (Door door in doorsToControl) foreach (Door door in doorsToControl)
{ {
door.CloseDoor(); door.CloseDoor();
@ -131,7 +133,7 @@ namespace IngameScript
{ {
while (true) while (true)
{ {
Echo("Actuating doors."); _console.Print("Actuating doors.");
bool done = true; // assume we've finished, then falsify it below bool done = true; // assume we've finished, then falsify it below
foreach (Door door in doorsToControl) foreach (Door door in doorsToControl)
{ {