public virtual void Init(double in_id)
    {
        id = in_id;

        connectedNode = NodeManager.CreateNode();
        int idx = UnityEngine.Random.Range(0, GameManager.gameOptions.nodeMemoryLength);

        MemoryBlock memory = connectedNode.GetMemory(idx);

        memory.SetContent(0, "READCON");
        memory.SetContent(1, id);

        memory = connectedNode.GetMemory(idx + 1);
        memory.SetContent(0, "JMP");
        memory.SetContent(1, idx);

        connectedNode.instructionQueue.Enqueue(new EnqueuedInstruction(connectedNode, idx));
        connectedNode.AddLabel(idx, "READC");

        NodeGraphicScript graphic = NodeGraphicManager.DisplayNode(Vector3.zero, connectedNode);

        cameraFocus.MoveTo(graphic);

        SetStaticValues();

        // XXX: Temporary code for local admin + non-admin
        GameManager.playerConsole = id;
        GameManager.activeConsole = id;
    }
Beispiel #2
0
 public static void HideAll()
 {
     foreach (double id in nodes.Keys)
     {
         NodeGraphicScript node = nodes[id];
         nodes.Remove(id);
         GameObject.Destroy(node.gameObject);
     }
 }
Beispiel #3
0
    public static void HideNode(double id)
    {
        if (!nodes.ContainsKey(id))
        {
            return;
        }

        NodeGraphicScript node = nodes[id];

        nodes.Remove(id);
        GameObject.Destroy(node.gameObject);
    }
    protected string ResetCommand(string input, out bool success)
    {
        success = true;

        NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);

        graphic.HideDisplay();
        graphic.ShowMemory(false);
        player.cameraFocus.Offset(Vector3.zero);
        player.cameraFocus.SetDistance(4);

        return("Resetting view...");
    }
Beispiel #5
0
    public static NodeGraphicScript CreateGraphic(NodeScript node, Vector3 position, float radius)
    {
        // XXX: Collision checking for finding position
        Vector3 pos = position + UnityEngine.Random.onUnitSphere * radius;

        // XXX: Spawn far away (in param) and MoveTo position
        GameObject newNode;

        newNode = GameObject.Instantiate(nodePrefab, pos, Quaternion.identity, gameObject.transform) as GameObject;
        newNode.SetActive(true);
        NodeGraphicScript script = newNode.GetComponent <NodeGraphicScript>();

        script.Init(node);
        nodes.Add(node.GetAddress(), script);

        return(script);
    }
    protected string ReadLogCommand(string input, out bool success)
    {
        success = false;

        /* XXX: Left for later use for log filtering
         * Regex pattern = new Regex(@"");
         * Match match = pattern.Match(input);
         * if( !match.Success ) {
         *      return "ReadLog invalid format";
         * }*/

        LogDetails detail;

        switch (input)
        {
        case "all":
            detail = LogDetails.ALL;
            break;

        case "command":
            detail = LogDetails.COMMAND;
            break;

        case "":
        case "response":
            detail = LogDetails.RESPONSE;
            break;

        default:
            return("ReadLog invalid format");
        }

        NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);

        graphic.DisplayLog(detail);

        player.cameraFocus.Offset(new Vector3(-0.5f, 0, 2.5f));

        graphic.ShowMemory(false);
        success = true;
        return("Opening log...");
    }
Beispiel #7
0
    public static NodeGraphicScript DisplayNode(Vector3 position, double id)
    {
        if (nodes.ContainsKey(id))
        {
            NodeGraphicScript node = nodes[id];
            node.MoveTo(position);
            return(node);
        }

        NodeScript script = NodeManager.GetNode(id);

        if (script == null)
        {
            return(null);
        }

        NodeGraphicScript graphic = CreateGraphic(script, position, defaultSpacingRadius);

        return(graphic);
    }
    protected string ReadMemoryCommand(string input, out bool success)
    {
        success = false;

        if (input.Length != 0)
        {
            if (input.ToLower() == "static")
            {
                return("Static not implemented...");

                /*for( int i = GameManager.gameOptions.nodeMemoryLength; i < player.connectedNode.GetMemoryLength(); i++ ) {
                 *      Memory memory = player.connectedNode.GetMemory(i);
                 *      output += FormatMemory(i, memory, false);
                 * }*/
            }
            else
            {
                int    index;
                int    subIndex;
                string error = localNode.ParseMemoryIndex(input, out index, out subIndex);
                if (error != null)
                {
                    return(error);
                }
                NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);
                graphic.RotateMemory(index);
            }
        }
        else
        {
            NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);
            graphic.SetRotationSpeed(graphic.memoryRotationSpeed);
        }
        NodeGraphicManager.GetGraphic(localNode).ShowMemory(true);
        player.cameraFocus.Offset(new Vector3(1.5f, 0, 0));

        success = true;
        return("Opening Memory...");
    }
Beispiel #9
0
    public static void DisplayPacket(NodeScript source, NodeScript target)
    {
        // Determine if sourceNode needs graphic
        if (!NodeGraphicManager.NodeIsVisible(source) &&
            target != null &&
            NodeGraphicManager.NodeIsVisible(target))
        {
            foreach (PlayerScript console in GameManager.GetConsoles().Values)
            {
                if (target == console.connectedNode)
                {
                    NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(target);
                    NodeGraphicManager.DisplayNode(graphic.transform.position, source);
                    break;
                }
            }
        }

        // Show packet graphics
        if (NodeGraphicManager.NodeIsVisible(source))
        {
            PacketGraphicManager.CreatePacketGraphic(source, target);
        }
    }
 public void JumpTo(NodeGraphicScript graphic)
 {
     transform.position = graphic.transform.position;
 }
 public void MoveTo(NodeGraphicScript graphic)
 {
     MoveTo(graphic.transform.position, defaultMoveDuration);
 }
 public void MoveTo(NodeGraphicScript graphic, float duration)
 {
     MoveTo(graphic.transform.position, duration);
 }