public void serverGetPlayerInput(String inputData) { if (GetTree().IsNetworkServer()) { // Decode the input data GameStates.PlayerInput playerInput = new GameStates.PlayerInput(); int parseIndex = 0; playerInput.Right = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.Left = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.Up = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.Down = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.RightWeaponAction = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.LeftWeaponAction = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.MousePosition.x = float.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.MousePosition.y = float.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.RightWeaponIndex = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.LeftWeaponIndex = Int32.Parse(inputData.Split(";")[parseIndex]); parseIndex++; // Then cache the decoded data gameStates.cacheInput(GetTree().GetRpcSenderId(), playerInput); } }
public void serverGetPlayerInput(String inputData) { if (GetTree().IsNetworkServer()) { // Decode the input data GameStates.PlayerInput playerInput = new GameStates.PlayerInput(); int parseIndex = 0; playerInput.right = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.left = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.up = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.down = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.primaryWepaon = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.secondaryWepaon = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.mousePosition.x = float.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.mousePosition.y = float.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.changePrimaryWeapon = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; playerInput.changeSecondaryWeapon = bool.Parse(inputData.Split(";")[parseIndex]); parseIndex++; // Then cache the decoded data gameStates.cacheInput(GetTree().GetRpcSenderId(), playerInput); } }
public void gatherInput(float delta) { GameStates.PlayerInput playerInput = new GameStates.PlayerInput(); playerInput.right = Input.IsActionPressed("turn_right"); playerInput.left = Input.IsActionPressed("turn_left"); playerInput.up = Input.IsActionPressed("forward"); playerInput.down = Input.IsActionPressed("backward"); playerInput.primaryWepaon = Input.IsActionPressed("left_click"); playerInput.secondaryWepaon = Input.IsActionPressed("right_click"); playerInput.mousePosition = GetGlobalMousePosition(); playerInput.changePrimaryWeapon = Input.IsActionJustPressed("change_primary_weapon"); playerInput.changeSecondaryWeapon = Input.IsActionJustPressed("change_secondary_weapon"); if (GetTree().IsNetworkServer()) { gameStates.cacheInput(1, playerInput); } else { String inputData = ""; inputData = inputData + playerInput.right + ";"; inputData = inputData + playerInput.left + ";"; inputData = inputData + playerInput.up + ";"; inputData = inputData + playerInput.down + ";"; inputData = inputData + playerInput.primaryWepaon + ";"; inputData = inputData + playerInput.secondaryWepaon + ";"; inputData = inputData + playerInput.mousePosition.x + ";"; inputData = inputData + playerInput.mousePosition.y + ";"; inputData = inputData + playerInput.changePrimaryWeapon + ";"; inputData = inputData + playerInput.changeSecondaryWeapon + ";"; RpcUnreliableId(1, nameof(serverGetPlayerInput), inputData); } }
public void gatherInput(float delta) { if (Input.IsActionJustReleased("inventory")) { if (!_inventoryUI.Visible) { _inventoryUI.PopupCentered(); } else { _inventoryUI.Hide(); } } // Only read input is inventory is not open if (_inventoryUI == null || !_inventoryUI.Visible) { GameStates.PlayerInput playerInput = new GameStates.PlayerInput(); if (Input.IsActionPressed("turn_right")) { playerInput.Right = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.Right = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } if (Input.IsActionPressed("turn_left")) { playerInput.Left = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.Left = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } if (Input.IsActionPressed("forward")) { playerInput.Up = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.Up = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } if (Input.IsActionPressed("backward")) { playerInput.Down = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.Down = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } if (Input.IsActionPressed("reload")) { playerInput.RightWeaponAction = (int)(GameStates.PlayerInput.InputAction.RELOAD); playerInput.LeftWeaponAction = (int)(GameStates.PlayerInput.InputAction.RELOAD); } else { if (Input.IsActionPressed("left_click")) { playerInput.LeftWeaponAction = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.LeftWeaponAction = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } if (Input.IsActionPressed("right_click")) { playerInput.RightWeaponAction = (int)(GameStates.PlayerInput.InputAction.TRIGGER); } else { playerInput.RightWeaponAction = (int)(GameStates.PlayerInput.InputAction.NOT_TRIGGER); } } playerInput.MousePosition = GetGlobalMousePosition(); if (Input.IsKeyPressed((int)KeyList.Key4)) { playerInput.RightWeaponIndex = 0; } else if (Input.IsKeyPressed((int)KeyList.Key5)) { playerInput.RightWeaponIndex = 1; } else if (Input.IsKeyPressed((int)KeyList.Key6)) { playerInput.RightWeaponIndex = 2; } else { playerInput.RightWeaponIndex = CurrentWeaponIndex[Weapon.WeaponOrder.Right]; } if (Input.IsKeyPressed((int)KeyList.Key1)) { playerInput.LeftWeaponIndex = 0; } else if (Input.IsKeyPressed((int)KeyList.Key2)) { playerInput.LeftWeaponIndex = 1; } else if (Input.IsKeyPressed((int)KeyList.Key3)) { playerInput.LeftWeaponIndex = 2; } else { playerInput.LeftWeaponIndex = CurrentWeaponIndex[Weapon.WeaponOrder.Left]; } if (GetTree().IsNetworkServer()) { gameStates.cacheInput(1, playerInput); } else { String inputData = ""; inputData = inputData + playerInput.Right + ";"; inputData = inputData + playerInput.Left + ";"; inputData = inputData + playerInput.Up + ";"; inputData = inputData + playerInput.Down + ";"; inputData = inputData + playerInput.RightWeaponAction + ";"; inputData = inputData + playerInput.LeftWeaponAction + ";"; inputData = inputData + playerInput.MousePosition.x + ";"; inputData = inputData + playerInput.MousePosition.y + ";"; inputData = inputData + playerInput.RightWeaponIndex + ";"; inputData = inputData + playerInput.LeftWeaponIndex + ";"; RpcUnreliableId(1, nameof(serverGetPlayerInput), inputData); } } }