API консоли
API консоли
Когда игра запущена, GP-Next предоставляет глобальный объект:
window.gpNextЕго можно вызывать напрямую из консоли разработчика.
Совет
Если вы не уверены, какие команды доступны, начните с:
gpNext.help()Перед использованием
- игра полностью загрузилась
- GP-Next успешно инициализирован
- у вас открыта консоль разработчика
Если вы хотите сначала экспортировать исходные JSON для Features, Props или языков, откройте Исходные данные.
Панель
gpNext.toggle()
Показывает или скрывает панель GP-Next.
Без параметров.
Пример
gpNext.toggle()gpNext.show()
Показывает панель.
gpNext.hide()
Скрывает панель.
gpNext.help()
Выводит справку по командам в консоль.
Патчи и состояние
gpNext.init()
Повторно запускает процесс загрузки патчей.
Возвращаемое значение
Обычно возвращает текущий результат загрузки патчей.
gpNext.reload()
Повторно считывает файлы патчей с диска и применяет их заново.
Это одна из самых часто используемых команд.
Пример
await gpNext.reload()gpNext.status()
Показывает текущее состояние patcher.
Основные поля результата
loaded: список загруженных типовskipped: пропущенные типыerrors: список ошибокpacks: обнаруженные datapack-пакетыdisabledPacks: отключенные datapack-пакетыsingleFile: информация об однофайловых патчахeditsPack: информация о пакете ручных правокeditsCount: количество ручных правокextraLanguages: зарегистрированные дополнительные языкиplantRegistry: отладочная информация динамического реестра растений
Пример
const status = gpNext.status()
console.log(status.packs)
console.log(status.errors)Редактирование данных
gpNext.setObjectsData(type, alias, key, value)
Изменяет одно поле в записи типа Objects.
Параметры
type: имя типа объекта, напримерPlantPropsalias: основной alias целевой записи, напримерpeashooterkey: имя изменяемого поляvalue: новое значение
Пример
gpNext.setObjectsData('PlantProps', 'peashooter', 'SunCost', 50)gpNext.setObjectsData(type, alias, patchObject)
Сливает объект в objdata целевой записи.
Параметры
type: имя типа объектаalias: основной alias целевой записиpatchObject: объект, который нужно влить в запись
Пример
gpNext.setObjectsData('PlantProps', 'peashooter', {
SunCost: 50,
Cooldown: 2
})Примечание
Это изменение во время выполнения. Оно удобно для отладки и быстрой проверки, но не создает за вас полноценный datapack автоматически.
Экспорт и восстановление
gpNext.exportJson(type, useOriginal = false, autoDownload = true)
Экспортирует JSON-тип.
Параметры
type: имя типа, напримерPlantFeaturesuseOriginal:trueэкспортирует исходные данные,false- текущие runtime-данныеautoDownload:trueоткрывает окно сохранения,falseвыводит результат в консоль
Пример
await gpNext.exportJson('PlantProps')
await gpNext.exportJson('PlantProps', true)
await gpNext.exportJson('PlantProps', false, false)gpNext.exportLang(useOriginal = false, autoDownload = true)
Экспортирует текущую языковую таблицу MultiLanguage.lyrics.
Полезные случаи
- проверить, применился ли языковой пакет
- сравнить текущий расширенный результат языков
- экспортировать исходную языковую таблицу для сравнения
Пример
await gpNext.exportLang()
await gpNext.exportLang(true)gpNext.restoreOriginal(type)
Восстанавливает один тип до исходного состояния.
Пример
gpNext.restoreOriginal('PlantFeatures')gpNext.restoreAll()
Восстанавливает все сохраненные типы.
gpNext.listOrigins()
Показывает все типы, для которых сейчас есть исходные копии.
gpNext.hasOrigin(type)
Проверяет, есть ли для типа исходная копия.
Игра
gpNext.setFrameRate(fps)
Устанавливает частоту кадров игры.
Параметры
fps: число, например30или60
Пример
gpNext.setFrameRate(60)gpNext.setGameSpeed(multiplier)
Напрямую изменяет внутренний масштаб времени.
Параметры
multiplier: значение скорости, например1или1.5
Пример
gpNext.setGameSpeed(1)
gpNext.setGameSpeed(1.5)Примечание
Эта команда существует, но использует низкоуровневый путь _timeScale и не так безопасна, как штатные варианты 1x / 1.5x на странице Trainer. В большинстве случаев лучше переключать скорость через интерфейс.
Cheats
gpNext.cheats.setSun(value)
Напрямую устанавливает текущее количество солнца.
Пример
gpNext.cheats.setSun(9999)gpNext.cheats.addSun(value = 1000)
Добавляет солнце.
Пример
gpNext.cheats.addSun()
gpNext.cheats.addSun(500)gpNext.cheats.winLevel()
Мгновенно завершает текущий уровень победой.
Примечание
В некоторых тестовых или sandbox-сценах лучше рассматривать это как временный ярлык, а не как часть стабильного рабочего процесса.
Отладка
gpNext.debug.getPlantRegistry()
Показывает отладочную информацию динамического реестра растений.
Полезно для
- добавления новых растений
- клонирования растений
- поиска проблем с сопоставлением идентичности растений
Пример
const info = gpNext.debug.getPlantRegistry()
console.log(info)Прочее
gpNext.version
Текущая версия GP-Next.
Пример
gpNext.versiongpNext.debug
Это пространство имен для отладки, а не просто булев переключатель.
Сейчас чаще всего используется:
gpNext.debug.getPlantRegistry()Примеры
Перезагрузить патчи и проверить состояние
await gpNext.reload()
console.log(gpNext.status())Быстро проверить значения растения
gpNext.setObjectsData('PlantProps', 'peashooter', {
SunCost: 50,
Cooldown: 2
})Экспортировать текущие данные в консоль
await gpNext.exportJson('PlantProps', false, false)Экспортировать исходную языковую таблицу
await gpNext.exportLang(true)