You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
3.3 KiB
JavaScript

//=============================================================================
// Salted Fish Plugins - Managers
// SF_Managers.js
//=============================================================================
"use strict";
var Imported = Imported || {};
Imported.SF_Managers = true;
var SF_Plugins = SF_Plugins || {};
//=============================================================================
/*:
* @plugindesc Managers lib for salted fish plugins
* @author Salted Fish
*/
//=============================================================================
(function () {
var SF_Managers = {};
SF_Plugins.Managers = SF_Managers;
SF_Managers.version = 1.0;
//=============================================================================
// ImageManager
//=============================================================================
ImageManager.loadSceneActor = function (filename) {
return this.loadBitmap('img/scene_ui/scene_actor/', filename, 0, true);
};
ImageManager.loadSceneActorSelect = function (filename) {
return this.loadBitmap('img/scene_ui/scene_actor_select/', filename, 0, true);
}
ImageManager.loadSceneTitle = function (filename) {
return this.loadBitmap("img/scene_ui/scene_title/", filename, 0, true);
}
ImageManager.loadSceneMenu = function (filename) {
return this.loadBitmap('img/scene_ui/scene_menu/', filename, 0, true);
};
ImageManager.loadSceneSplash = function (filename) {
return this.loadBitmap('img/scene_ui/scene_splash/', filename, 0, true);
}
//=============================================================================
// SceneManager
//=============================================================================
SceneManager._sceneBeforeClasses = {};
SF_Managers.SceneManager_initialize = SceneManager.initialize;
SceneManager.initialize = function () {
SF_Managers.SceneManager_initialize.call(this);
this._sceneBeforeClasses = {};
this.initCallBack();
};
SF_Managers.SceneManager_goto = SceneManager.goto;
SceneManager.goto = function (sceneClass) {
if (this._sceneBeforeClasses[sceneClass]) {
var beforeSceneList = this._sceneBeforeClasses[sceneClass];
var index = beforeSceneList.indexOf(this._scene.constructor);
if (index == -1) { // if the scene is not in the array
this._stack.push(sceneClass);
SF_Managers.SceneManager_goto.call(this, beforeSceneList[0]);
} else if (index === beforeSceneList.length - 1) {
SF_Managers.SceneManager_goto.call(this, sceneClass);
} else {
this._stack.push(sceneClass);
SF_Managers.SceneManager_goto.call(this, beforeSceneList[index + 1]);
}
} else {
SF_Managers.SceneManager_goto.call(this, sceneClass);
}
}
SceneManager.addSceneBefore = function (beforeSceneClass, sceneClass) {
if (this._sceneBeforeClasses[sceneClass]) {
this._sceneBeforeClasses[sceneClass].push(beforeSceneClass);
} else {
this._sceneBeforeClasses[sceneClass] = [beforeSceneClass];
}
}
SceneManager.initCallBack = function () {
CallBack.initialize();
}
})();