コード例 #1
0
ファイル: DeviceHub.cs プロジェクト: Glaze96/INO
    public void RpcTriggerInteractable(int hackerId, string rawCommand)
    {
        CommandPacket commandPacket;

        Hacker hacker = _playerHub.GetPlayer(hackerId).GetComponent <Hacker>();

        Message callbackMessage;

        if (HackerFunctions.TryCreatePacket(rawCommand, out commandPacket))
        {
            List <Device> devices = FindObjectsOfType <Device>().ToList();

            callbackMessage = new Message(false, new ID(), MessageType.ERROR, "COULD NOT FIND: \"" + commandPacket.InteractableFullId + "\"");

            foreach (Device device in devices)
            {
                if (device.Id.FullId == commandPacket.InteractableFullId)
                {
                    callbackMessage = device.Hack(commandPacket);
                }
            }
        }
        else
        {
            callbackMessage = new Message(false, new ID(), MessageType.ERROR, "UNKNOWN COMMAND");
            Debug.LogWarning("Could not create packet from: " + rawCommand);
        }

        hacker.CallbackMessage(callbackMessage);
    }
コード例 #2
0
ファイル: Hacker.cs プロジェクト: Glaze96/INO
    void OnSubmit(string rawCommand)
    {
        if (rawCommand == "")
        {
            _inputField.ActivateInputField();
            return;
        }

        int caretpos = _inputField.caretPosition;

        AddMessageToLogLine(rawCommand);

        if (HackerFunctions.IsFunction(rawCommand))
        {
            CommandPacket commandPacket;

            if (HackerFunctions.TryCreatePacket(rawCommand, out commandPacket))
            {
                HandleFunction(commandPacket);
            }
            else
            {
                CallbackMessage(new Message(false, new ID(), MessageType.ERROR, "SYNTAX ERROR"));
            }
        }
        else
        {
            CmdInteractWithId(_player.Id.IdNumber, rawCommand);
        }

        _latestCommands.Add(rawCommand);

        _inputField.text = "";

        _inputField.ActivateInputField();
    }