private string ReadConsoleCommand(string input, out bool success) { success = false; string[] cells = input.Split(' '); double d_input; if (!AlphaNumeral.StringToDbl(cells[1], out d_input)) { return("'" + cells[1] + "' invalid number format"); } // Find player PlayerScript player = GameManager.FindPlayerAtNode(d_input, instruction.GetNode()); if (player == null) { return("Console '" + cells[1] + "' not found"); } player.timeLastRead = Time.time; // Move command into queue if (player.commandQueue.Count > 0) { EnqueuedCommand command = player.commandQueue.Dequeue(); command.sourceInstruction = instruction.GetSource(); instruction.GetNode().commandQueue.Enqueue(command); } // XXX: Unsure if 'readconsole' should be enqueued as a command itself first instruction.EnqueueNextInstruction(); success = true; return(null); }
public override void CodeUpdate() { if (commandQueue.Count > 0) { EnqueuedCommand command = commandQueue.Dequeue(); connectedNode.commandQueue.Enqueue(command); } }
protected override string DivCommand(string input, out bool success) { string content = ""; EnqueuedCommand command = new EnqueuedCommand(DivAction, content, instruction.GetSource(), instruction.EnqueueNextInstruction); instruction.GetNode().commandQueue.Enqueue(command); success = true; return(""); }
protected override string LogCommand(string input, out bool success) { success = false; string[] cells = input.Split(' '); int index; int subIndex; string error = instruction.GetNode().ParseMemoryIndex(cells[1], out index, out subIndex); if (error != null) { return(error); } MemoryBlock memory = instruction.GetNode().GetMemory(index); string content = memory.ToString(); EnqueuedCommand command = new EnqueuedCommand(LogAction, content, instruction.GetSource(), instruction.EnqueueNextInstruction); instruction.GetNode().commandQueue.Enqueue(command); success = true; return(""); }
public void SetCommand(EnqueuedCommand cmd) { command = cmd; }