diff --git a/AirMonitor/AirZone.cs b/AirMonitor/AirZone.cs index 82435c5..8251ccc 100644 --- a/AirMonitor/AirZone.cs +++ b/AirMonitor/AirZone.cs @@ -28,7 +28,7 @@ namespace IngameScript Name = zoneName; _program = program; _console = new PrefixedConsole(program.Console, zoneName); - _sequencer = new Sequencer(zoneName, _console); + _sequencer = new Sequencer(program, zoneName); } public void AddBlock(IMyTerminalBlock block) diff --git a/MechanicalDoor/Program.cs b/MechanicalDoor/Program.cs index ccbfeb4..97e3660 100644 --- a/MechanicalDoor/Program.cs +++ b/MechanicalDoor/Program.cs @@ -27,7 +27,7 @@ namespace IngameScript // Create the door if this is a new id if (!_doors.ContainsKey(doorName)) { - _doors[doorName] = new Sequencer(doorName, new PrefixedConsole(Console, doorName)); + _doors[doorName] = new Sequencer(this, doorName); } // Add the part; the Door object handles typing and sequencing. diff --git a/Mixins/Console/Console.cs b/Mixins/Console/Console.cs index 38e4f60..4cf1c39 100644 --- a/Mixins/Console/Console.cs +++ b/Mixins/Console/Console.cs @@ -33,12 +33,12 @@ namespace IngameScript // Either use a reference to that instance directly where needed or use it to create PrefixedConsoles. public class MainConsole : IConsole { - private Program _program; - private int _maxLines; - private List _buffer; - private StringBuilder _builder; - private string _programName; + private List _buffer = new List(); + private StringBuilder _builder = new StringBuilder(); private int _tickCount = 0; + private Program _program; + private string _programName; + private int _maxLines; private const int DefaultMaxLines = 10; @@ -46,8 +46,6 @@ namespace IngameScript { _program = program; _programName = programName; - _buffer = new List(); - _builder = new StringBuilder(); // Check the PB's custom data for a maxlines directive. _program.Ini.TryParse(program.Me.CustomData); diff --git a/Mixins/Sequencer/SequenceableDoor.cs b/Mixins/Sequencer/SequenceableDoor.cs index 28fa0e6..67f5e56 100644 --- a/Mixins/Sequencer/SequenceableDoor.cs +++ b/Mixins/Sequencer/SequenceableDoor.cs @@ -11,11 +11,12 @@ namespace IngameScript public bool Running { get; } public int Step { get; set; } - private IMyDoor _door; public bool DeployOpen { get; set; } public bool LockOpen { get; set; } public bool LockClosed { get; set; } + private IMyDoor _door; + public SequenceableDoor( IMyDoor door, MyIni ini, diff --git a/Mixins/Sequencer/Sequencer.cs b/Mixins/Sequencer/Sequencer.cs index 19d0e1b..6d1627f 100644 --- a/Mixins/Sequencer/Sequencer.cs +++ b/Mixins/Sequencer/Sequencer.cs @@ -16,13 +16,12 @@ namespace IngameScript private IConsole _console; private string _name; - private SortedDictionary> _sequence; + private SortedDictionary> _sequence = new SortedDictionary>(); - public Sequencer(string name, IConsole console) + public Sequencer(IConsoleProgram program, string name) { _name = name; - _console = console; - _sequence = new SortedDictionary>(); + _console = new PrefixedConsole(program.Console, _name); } public void AddBlock(ISequenceable block)