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);
    }
Esempio n. 2
0
 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("");
    }
Esempio n. 5
0
 public void SetCommand(EnqueuedCommand cmd)
 {
     command = cmd;
 }