Новая игра, сохранение и загрузка

Когда начинается новая игра, все игровые объекты создаются в функции DataManager.createGameObjects, поэтому стоит переопределять ее, чтобы создавать собственные объекты.

Сохраняются данные в функции DataManager.makeSaveContents

Важное замечание: нельзя сохранять объекты, которые имеют графическую составляющую (окна, спрайты, битмапы). Но вы можете сохранять переменные этих объектов и после загрузки снова присваивать их.

Загружаются данные в функции DataManager.extractSaveContents

Важное замечание: если вы написали плагин, который сохраняет/загружает свои данные, и у вас есть старые сохранения, то они могут не работать, потому что в них нет этих новых данных. Вы можете добавить условие проверки существуют ли данные в сохранении

Пример на основе плагина Время (Game_Time):
Спойлер Скриншот:


В функции DataManager.createGameObjects создаются несколько объектов, при этом не нарушается создание игровых объектов (функции дополнена).

В функции DataManager.makeSaveContents мы записали в переменную contents игровые данные, которые были сохранены до нашей функции, затем сохраняются объекты плагина. Объект $Game_Time_Tint – спрайт. Мы не можем его сохранить, но мы можем сохранить его переменные, которые нужны для правильной работы при загрузке игры.

В функции DataManager.extractSaveContents мы сначала проверяем загрузили игровые данные, затем начали загружать свои данные. Условия нужны для совместимости плагина со старыми сохранениями, но в таком случае для этих объектов будут применены значения по умолчанию, которые определены в классах объектов.