# Input

Класс для работы с пользовательским вводом.

# GetWorldCursorPos

Возвращает Vector нахождения курсора в игровом мире.

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    let worldPosition = Input.GetWorldCursorPos();

    if(worldPosition.Distance(new Vector(0, 0, 0)) < 100) {
        console.log('Курсор находится рядом с T1 Dire на миду');
    } else if(worldPosition.Distance(EntitySystem.GetLocalHero().GetAbsOrigin()) < 250) {
        console.log('Курсор находится рядом с вашим героем');
    }
};

RegisterScript(exampleScript);

# GetNearestUnitToCursor

Возвращает ближайшего NPC к курсору (в том числе крипов).

Аргументы:

Возвращаемые значения:

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    let nearestNPC = Input.GetNearestUnitToCursor(Enum.TeamType.TEAM_BOTH);
    
    if(nearestNPC) {
        console.log(nearestNPC.GetUnitName());
    }
};

RegisterScript(exampleScript);

# GetNearestHeroToCursor

Возвращает ближайшего Hero к курсору (в том числе иллюзии и клоны).

Аргументы:

Возвращаемые значения:

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    let nearestHeroToCursor = Input.GetNearestHeroToCursor(Enum.TeamType.TEAM_BOTH);
    
    if(nearestHeroToCursor) {
        console.log(nearestHeroToCursor.GetUnitName());
    }
};

RegisterScript(exampleScript);

# IsKeyDown

Проверяет нажата ли кнопка

Аргументы:

Возвращаемые значения:

  • true | false

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    if(Input.IsKeyDown(Enum.ButtonCode.KEY_F)) {
        console.log('Press F to pay respect!');
    }

    if(Input.IsKeyDown(Enum.ButtonCode.KEY_F, Enum.ButtonCode.KEY_LCONTROL)) {
        console.log('You paying respect with double power!');
    }
};

RegisterScript(exampleScript);

# IsKeyDownOnce

Проверяет нажата ли кнопка единожды.

ВНИМАНИЕ

// TODO: дописать здесь задержку

Аргументы:

Возвращаемые значения:

  • true | false

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    if(Input.IsKeyDown(Enum.ButtonCode.KEY_F)) {
        console.log('Press F to pay respect!');
    }

    if(Input.IsKeyDown(Enum.ButtonCode.KEY_F, Enum.ButtonCode.KEY_LCONTROL)) {
        console.log('You paying respect with double power!');
    }
};

RegisterScript(exampleScript);

# IsInputCaptured

Проверяет открыт ли чат/поиск вещей в лавке.

Возвращаемые значения:

  • true | false

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    if(Input.IsInputCaptured()) {
        console.log('Открыт чат или поиск в лавке!');
    }
};

RegisterScript(exampleScript);

# GetCursorPos

Получает позицию курсора на экране по x, y координатам

Возвращаемые значения:

  • [number, number]

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    let [x, y] = Input.GetCursorPos();
    
    console.log(x, y);
};

RegisterScript(exampleScript);

# IsCursorInRect

Проверяет находится ли курсор в прямоугольнике на экране

Аргументы:

  • x1 - number
  • y1 - number
  • width - number
  • height - number

Возвращаемые значения:

  • true | false

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    if(Input.IsCursorInRect(0, 0, 100, 100)) {
        console.log('Курсор находится в левом верхнем углу экрана!');
    }
};

RegisterScript(exampleScript);

# IsCursorInBounds

Проверяет находится ли курсор на границах прямоугольника

Аргументы:

  • x1 - number
  • y1 - number
  • x2 - number
  • y2 - number

Возвращаемые значения:

  • true | false

Пример использования:

let exampleScript = {};

exampleScript.OnUpdate = () => {
    if(!GameRules.IsActiveGame()) {
        return;
    }
    
    if(Input.IsCursorInBounds(0, 0, 100, 100)) {
        console.log('Курсор находится на границах прямоугольника 0, 0, 100, 100');
    }
};

RegisterScript(exampleScript);

# SetCursorPos

// TODO: описать метод