mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Rename some runtimeScene to instanceContainer.
This commit is contained in:
@@ -10,7 +10,7 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* @param runtimeObject The object to render
|
||||
* @param instanceContainer The gdjs.RuntimeScene in which the object is
|
||||
* @param instanceContainer The gdjs.RuntimeInstanceContainer in which the object is
|
||||
*/
|
||||
constructor(
|
||||
runtimeObject: gdjs.BBTextRuntimeObject,
|
||||
@@ -95,7 +95,8 @@ namespace gdjs {
|
||||
}
|
||||
|
||||
updateFontFamily(): void {
|
||||
this._pixiObject.textStyles.default.fontFamily = this._object._runtimeScene
|
||||
this._pixiObject.textStyles.default.fontFamily = this._object
|
||||
.getInstanceContainer()
|
||||
.getGame()
|
||||
.getFontManager()
|
||||
.getFontFamily(this._object._fontFamily);
|
||||
|
@@ -48,7 +48,7 @@ namespace gdjs {
|
||||
hidden: boolean;
|
||||
|
||||
/**
|
||||
* @param instanceContainer The scene the object belongs to.
|
||||
* @param instanceContainer The container the object belongs to.
|
||||
* @param objectData The object data used to initialize the object
|
||||
*/
|
||||
constructor(
|
||||
@@ -128,8 +128,8 @@ namespace gdjs {
|
||||
}
|
||||
}
|
||||
|
||||
onDestroyFromScene(runtimeScene): void {
|
||||
super.onDestroyFromScene(runtimeScene);
|
||||
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
super.onDestroyFromScene(instanceContainer);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -10,7 +10,7 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* @param runtimeObject The object to render
|
||||
* @param instanceContainer The gdjs.RuntimeScene in which the object is
|
||||
* @param instanceContainer The container in which the object is
|
||||
*/
|
||||
constructor(
|
||||
runtimeObject: gdjs.BitmapTextRuntimeObject,
|
||||
@@ -59,7 +59,8 @@ namespace gdjs {
|
||||
|
||||
onDestroy() {
|
||||
// Mark the font from the object as not used anymore.
|
||||
this._object._runtimeScene
|
||||
this._object
|
||||
.getInstanceContainer()
|
||||
.getGame()
|
||||
.getBitmapFontManager()
|
||||
.releaseBitmapFont(this._pixiObject.fontName);
|
||||
@@ -73,7 +74,8 @@ namespace gdjs {
|
||||
|
||||
updateFont(): void {
|
||||
// Get the new bitmap font to use
|
||||
const bitmapFont = this._object._runtimeScene
|
||||
const bitmapFont = this._object
|
||||
.getInstanceContainer()
|
||||
.getGame()
|
||||
.getBitmapFontManager()
|
||||
.obtainBitmapFont(
|
||||
@@ -82,7 +84,8 @@ namespace gdjs {
|
||||
);
|
||||
|
||||
// Mark the old font as not used anymore
|
||||
this._object._runtimeScene
|
||||
this._object
|
||||
.getInstanceContainer()
|
||||
.getGame()
|
||||
.getBitmapFontManager()
|
||||
.releaseBitmapFont(this._pixiObject.fontName);
|
||||
|
@@ -50,7 +50,7 @@ namespace gdjs {
|
||||
_renderer: gdjs.BitmapTextRuntimeObjectPixiRenderer;
|
||||
|
||||
/**
|
||||
* @param instanceContainer The scene the object belongs to.
|
||||
* @param instanceContainer The container the object belongs to.
|
||||
* @param objectData The object data used to initialize the object
|
||||
*/
|
||||
constructor(
|
||||
@@ -137,8 +137,8 @@ namespace gdjs {
|
||||
}
|
||||
}
|
||||
|
||||
onDestroyFromScene(runtimeScene: gdjs.RuntimeScene): void {
|
||||
super.onDestroyFromScene(runtimeScene);
|
||||
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
super.onDestroyFromScene(instanceContainer);
|
||||
this._renderer.onDestroy();
|
||||
}
|
||||
|
||||
|
@@ -30,16 +30,16 @@ namespace gdjs {
|
||||
/**
|
||||
* Load the Dialogue Tree data from a JSON resource.
|
||||
*
|
||||
* @param runtimeScene The scene where the dialogue is running.
|
||||
* @param instanceContainer The scene where the dialogue is running.
|
||||
* @param jsonResourceName The JSON resource where to load the Dialogue Tree data from. The data is a JSON string usually created with [Yarn Dialogue Editor](https://github.com/InfiniteAmmoInc/Yarn).
|
||||
* @param startDialogueNode The Dialogue Branch to start the Dialogue Tree from. If left empty, the data will only be loaded, but can later be initialized via another action
|
||||
*/
|
||||
gdjs.dialogueTree.loadFromJsonFile = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
jsonResourceName: string,
|
||||
startDialogueNode: string
|
||||
) {
|
||||
runtimeScene
|
||||
instanceContainer
|
||||
.getGame()
|
||||
.getJsonManager()
|
||||
.loadJson(jsonResourceName, function (error, content) {
|
||||
|
@@ -27,7 +27,7 @@ namespace gdjs {
|
||||
}
|
||||
|
||||
// You can also create a PIXI sprite or other PIXI object
|
||||
// this._imageManager = runtimeScene.getGame().getImageManager();
|
||||
// this._imageManager = instanceContainer.getGame().getImageManager();
|
||||
// if ( this._sprite === undefined )
|
||||
// this._sprite = new PIXI.Sprite(this._imageManager.getInvalidPIXITexture());
|
||||
this._text.anchor.x = 0.5;
|
||||
|
@@ -48,13 +48,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to 'Desktop' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to the desktop folder
|
||||
*/
|
||||
export const getDesktopPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('desktop') || '';
|
||||
@@ -65,13 +68,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to 'Documents' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to the documents folder
|
||||
*/
|
||||
export const getDocumentsPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('documents') || '';
|
||||
@@ -82,13 +88,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to 'Pictures' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to the pictures folder
|
||||
*/
|
||||
export const getPicturesPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('pictures') || '';
|
||||
@@ -99,13 +108,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to this application 'Executable' file.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to this applications executable file
|
||||
*/
|
||||
export const getExecutablePath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('exe') || '';
|
||||
@@ -116,14 +128,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to this application 'Executable' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to this applications executable folder
|
||||
*/
|
||||
export const getExecutableFolderPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const path = gdjs.fileSystem._getPath();
|
||||
const executablePath = gdjs.fileSystem.getExecutablePath(runtimeScene);
|
||||
const executablePath = gdjs.fileSystem.getExecutablePath(
|
||||
instanceContainer
|
||||
);
|
||||
if (!path) {
|
||||
return '';
|
||||
}
|
||||
@@ -132,13 +146,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to 'UserData' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to userdata folder
|
||||
*/
|
||||
export const getUserdataPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('userData') || '';
|
||||
@@ -152,9 +169,12 @@ namespace gdjs {
|
||||
* @return The path to user's "home" folder
|
||||
*/
|
||||
export const getUserHomePath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('home') || '';
|
||||
@@ -165,13 +185,16 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Get the path to 'Temp' folder.
|
||||
* @param runtimeScene The current scene
|
||||
* @param instanceContainer The current container
|
||||
* @return The path to temp folder
|
||||
*/
|
||||
export const getTempPath = function (
|
||||
runtimeScene: gdjs.RuntimeScene
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): string {
|
||||
const remote = runtimeScene.getGame().getRenderer().getElectronRemote();
|
||||
const remote = instanceContainer
|
||||
.getGame()
|
||||
.getRenderer()
|
||||
.getElectronRemote();
|
||||
const app = remote ? remote.app : null;
|
||||
if (app) {
|
||||
return app.getPath('temp') || '';
|
||||
|
@@ -1,7 +1,13 @@
|
||||
namespace gdjs {
|
||||
export interface RuntimeGame {
|
||||
inventories: { [name: string]: gdjs.Inventory };
|
||||
}
|
||||
export class InventoryManager {
|
||||
static get(runtimeScene, name): gdjs.Inventory {
|
||||
const game = runtimeScene.getGame();
|
||||
static get(
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
name: string
|
||||
): gdjs.Inventory {
|
||||
const game = instanceContainer.getGame();
|
||||
if (!game.inventories) {
|
||||
game.inventories = {};
|
||||
}
|
||||
@@ -15,70 +21,106 @@ namespace gdjs {
|
||||
|
||||
export namespace evtTools {
|
||||
export namespace inventory {
|
||||
export const add = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).add(name);
|
||||
export const add = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).add(name);
|
||||
};
|
||||
|
||||
export const remove = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).remove(name);
|
||||
export const remove = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).remove(
|
||||
name
|
||||
);
|
||||
};
|
||||
|
||||
export const count = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).count(name);
|
||||
export const count = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).count(
|
||||
name
|
||||
);
|
||||
};
|
||||
|
||||
export const has = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).has(name);
|
||||
export const has = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).has(name);
|
||||
};
|
||||
|
||||
export const setMaximum = function (
|
||||
runtimeScene,
|
||||
inventoryName,
|
||||
name,
|
||||
maxCount
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string,
|
||||
maxCount: number
|
||||
) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).setMaximum(
|
||||
name,
|
||||
maxCount
|
||||
);
|
||||
return InventoryManager.get(
|
||||
instanceContainer,
|
||||
inventoryName
|
||||
).setMaximum(name, maxCount);
|
||||
};
|
||||
|
||||
export const setUnlimited = function (
|
||||
runtimeScene,
|
||||
inventoryName,
|
||||
name,
|
||||
enable
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string,
|
||||
enable: boolean
|
||||
) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).setUnlimited(
|
||||
name,
|
||||
enable
|
||||
return InventoryManager.get(
|
||||
instanceContainer,
|
||||
inventoryName
|
||||
).setUnlimited(name, enable);
|
||||
};
|
||||
|
||||
export const isFull = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).isFull(
|
||||
name
|
||||
);
|
||||
};
|
||||
|
||||
export const isFull = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).isFull(name);
|
||||
};
|
||||
|
||||
export const equip = function (runtimeScene, inventoryName, name, equip) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).equip(
|
||||
export const equip = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string,
|
||||
equip: boolean
|
||||
) {
|
||||
return InventoryManager.get(instanceContainer, inventoryName).equip(
|
||||
name,
|
||||
equip
|
||||
);
|
||||
};
|
||||
|
||||
export const isEquipped = function (runtimeScene, inventoryName, name) {
|
||||
return InventoryManager.get(runtimeScene, inventoryName).isEquipped(
|
||||
name
|
||||
);
|
||||
export const isEquipped = function (
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
name: string
|
||||
) {
|
||||
return InventoryManager.get(
|
||||
instanceContainer,
|
||||
inventoryName
|
||||
).isEquipped(name);
|
||||
};
|
||||
|
||||
export const serializeToVariable = function (
|
||||
runtimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
variable: gdjs.Variable
|
||||
) {
|
||||
const allItems = gdjs.InventoryManager.get(
|
||||
runtimeScene,
|
||||
instanceContainer,
|
||||
inventoryName
|
||||
).getAllItems();
|
||||
for (const name in allItems) {
|
||||
@@ -92,12 +134,12 @@ namespace gdjs {
|
||||
};
|
||||
|
||||
export const unserializeFromVariable = function (
|
||||
runtimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
inventoryName: string,
|
||||
variable: gdjs.Variable
|
||||
) {
|
||||
const inventory = gdjs.InventoryManager.get(
|
||||
runtimeScene,
|
||||
instanceContainer,
|
||||
inventoryName
|
||||
);
|
||||
inventory.clear();
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/// <reference path="sha256.d.ts" />
|
||||
|
||||
// TODO EBO Replace runtimeScene to instanceContainer.
|
||||
namespace gdjs {
|
||||
const logger = new gdjs.Logger('Leaderboards');
|
||||
export namespace evtTools {
|
||||
|
@@ -27,7 +27,7 @@ namespace gdjs {
|
||||
_texture: string;
|
||||
_obstaclesManager: gdjs.LightObstaclesManager;
|
||||
_renderer: gdjs.LightRuntimeObjectRenderer;
|
||||
_runtimeScene: gdjs.RuntimeScene;
|
||||
_instanceContainer: gdjs.RuntimeScene;
|
||||
|
||||
constructor(
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
@@ -43,7 +43,7 @@ namespace gdjs {
|
||||
runtimeScene
|
||||
);
|
||||
this._renderer = new gdjs.LightRuntimeObjectRenderer(this, runtimeScene);
|
||||
this._runtimeScene = runtimeScene;
|
||||
this._instanceContainer = runtimeScene;
|
||||
|
||||
// *ALWAYS* call `this.onCreated()` at the very end of your object constructor.
|
||||
this.onCreated();
|
||||
|
@@ -262,7 +262,7 @@ namespace gdjs {
|
||||
oldObjectData.rendererParam2 !== newObjectData.rendererParam2
|
||||
) {
|
||||
// Destroy the renderer, ensure it's removed from the layer.
|
||||
const layer = this._runtimeScene.getLayer(this.layer);
|
||||
const layer = this.getInstanceContainer().getLayer(this.layer);
|
||||
layer
|
||||
.getRenderer()
|
||||
.removeRendererObject(this._renderer.getRendererObject());
|
||||
@@ -737,9 +737,12 @@ namespace gdjs {
|
||||
return this.texture;
|
||||
}
|
||||
|
||||
setTexture(texture: string, runtimeScene: gdjs.RuntimeScene): void {
|
||||
setTexture(
|
||||
texture: string,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer
|
||||
): void {
|
||||
if (this.texture !== texture) {
|
||||
if (this._renderer.isTextureNameValid(texture, runtimeScene)) {
|
||||
if (this._renderer.isTextureNameValid(texture, instanceContainer)) {
|
||||
this.texture = texture;
|
||||
this._textureDirty = true;
|
||||
}
|
||||
|
@@ -4,6 +4,9 @@ Copyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com)
|
||||
*/
|
||||
|
||||
namespace gdjs {
|
||||
export interface RuntimeInstanceContainer {
|
||||
pathfindingObstaclesManager: gdjs.PathfindingObstaclesManager;
|
||||
}
|
||||
declare var rbush: any;
|
||||
|
||||
/**
|
||||
@@ -15,24 +18,21 @@ namespace gdjs {
|
||||
export class PathfindingObstaclesManager {
|
||||
_obstaclesRBush: any;
|
||||
|
||||
/**
|
||||
* @param object The object
|
||||
*/
|
||||
constructor(runtimeScene: gdjs.RuntimeScene) {
|
||||
constructor(instanceContainer: gdjs.RuntimeInstanceContainer) {
|
||||
this._obstaclesRBush = new rbush();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the obstacles manager of a scene.
|
||||
*/
|
||||
static getManager(runtimeScene) {
|
||||
if (!runtimeScene.pathfindingObstaclesManager) {
|
||||
static getManager(instanceContainer: gdjs.RuntimeInstanceContainer) {
|
||||
if (!instanceContainer.pathfindingObstaclesManager) {
|
||||
//Create the shared manager if necessary.
|
||||
runtimeScene.pathfindingObstaclesManager = new gdjs.PathfindingObstaclesManager(
|
||||
runtimeScene
|
||||
instanceContainer.pathfindingObstaclesManager = new gdjs.PathfindingObstaclesManager(
|
||||
instanceContainer
|
||||
);
|
||||
}
|
||||
return runtimeScene.pathfindingObstaclesManager;
|
||||
return instanceContainer.pathfindingObstaclesManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -111,14 +111,14 @@ namespace gdjs {
|
||||
> | null = null;
|
||||
|
||||
constructor(
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
behaviorData,
|
||||
owner: gdjs.RuntimeObject
|
||||
) {
|
||||
super(runtimeScene, behaviorData, owner);
|
||||
super(instanceContainer, behaviorData, owner);
|
||||
this._impassable = behaviorData.impassable;
|
||||
this._cost = behaviorData.cost;
|
||||
this._manager = PathfindingObstaclesManager.getManager(runtimeScene);
|
||||
this._manager = PathfindingObstaclesManager.getManager(instanceContainer);
|
||||
|
||||
//Note that we can't use getX(), getWidth()... of owner here:
|
||||
//The owner is not yet fully constructed.
|
||||
@@ -140,7 +140,7 @@ namespace gdjs {
|
||||
}
|
||||
}
|
||||
|
||||
doStepPreEvents(runtimeScene: gdjs.RuntimeScene) {
|
||||
doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {
|
||||
//Make sure the obstacle is or is not in the obstacles manager.
|
||||
if (!this.activated() && this._registeredInManager) {
|
||||
this._manager.removeObstacle(this);
|
||||
@@ -170,7 +170,7 @@ namespace gdjs {
|
||||
}
|
||||
}
|
||||
|
||||
doStepPostEvents(runtimeScene: gdjs.RuntimeScene) {}
|
||||
doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}
|
||||
|
||||
getAABB() {
|
||||
return this.owner.getAABB();
|
||||
|
@@ -3,6 +3,7 @@ namespace gdjs {
|
||||
|
||||
const logger = new gdjs.Logger('Player Authentication');
|
||||
const authComponents = gdjs.playerAuthenticationComponents;
|
||||
// TODO EBO Replace runtimeScene to instanceContainer.
|
||||
export namespace playerAuthentication {
|
||||
// Authentication information.
|
||||
let _username: string | null = null;
|
||||
|
@@ -679,7 +679,7 @@ namespace gdjs {
|
||||
return this._renderer.getHeight();
|
||||
}
|
||||
|
||||
updatePreRender(runtimeScene: gdjs.RuntimeScene): void {
|
||||
updatePreRender(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
this._renderer.updatePreRender();
|
||||
}
|
||||
|
||||
|
@@ -1,17 +1,24 @@
|
||||
namespace gdjs {
|
||||
export interface RuntimeGame {
|
||||
shopifyClients: { [name: string]: any };
|
||||
}
|
||||
declare var ShopifyBuy: any;
|
||||
|
||||
export class ShopifyClientsManager {
|
||||
static set(runtimeScene, name, shopifyClient) {
|
||||
const game = runtimeScene.getGame();
|
||||
static set(
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
name: string,
|
||||
shopifyClient
|
||||
) {
|
||||
const game = instanceContainer.getGame();
|
||||
if (!game.shopifyClients) {
|
||||
game.shopifyClients = {};
|
||||
}
|
||||
game.shopifyClients[name] = shopifyClient;
|
||||
}
|
||||
|
||||
static get(runtimeScene, name) {
|
||||
const game = runtimeScene.getGame();
|
||||
static get(instanceContainer: gdjs.RuntimeInstanceContainer, name: string) {
|
||||
const game = instanceContainer.getGame();
|
||||
if (!game.shopifyClients) {
|
||||
game.shopifyClients = {};
|
||||
}
|
||||
@@ -22,11 +29,11 @@ namespace gdjs {
|
||||
export namespace evtTools {
|
||||
export namespace shopify {
|
||||
export const buildClient = function (
|
||||
runtimeScene,
|
||||
name,
|
||||
domain,
|
||||
appId,
|
||||
accessToken
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
name: string,
|
||||
domain: string,
|
||||
appId: string,
|
||||
accessToken: string
|
||||
) {
|
||||
if (typeof ShopifyBuy === 'undefined') {
|
||||
return;
|
||||
@@ -37,21 +44,24 @@ namespace gdjs {
|
||||
appId: appId,
|
||||
});
|
||||
const shopifyClient = ShopifyBuy.buildClient(config);
|
||||
ShopifyClientsManager.set(runtimeScene, name, shopifyClient);
|
||||
ShopifyClientsManager.set(instanceContainer, name, shopifyClient);
|
||||
};
|
||||
|
||||
export const getCheckoutUrlForProduct = function (
|
||||
runtimeScene,
|
||||
name,
|
||||
productId,
|
||||
quantity,
|
||||
variantIndex,
|
||||
successVariable,
|
||||
errorVariable
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
name: string,
|
||||
productId: string,
|
||||
quantity: number,
|
||||
variantIndex: number,
|
||||
successVariable: gdjs.Variable,
|
||||
errorVariable: gdjs.Variable
|
||||
) {
|
||||
errorVariable.setString('');
|
||||
successVariable.setString('');
|
||||
const shopifyClient = ShopifyClientsManager.get(runtimeScene, name);
|
||||
const shopifyClient = ShopifyClientsManager.get(
|
||||
instanceContainer,
|
||||
name
|
||||
);
|
||||
shopifyClient.fetchProduct(productId).then(
|
||||
function (product) {
|
||||
if (variantIndex < 0 || variantIndex >= product.variants.length) {
|
||||
|
@@ -199,8 +199,8 @@ namespace gdjs {
|
||||
this._renderer.onSceneResumed();
|
||||
}
|
||||
|
||||
onDestroyFromScene(runtimeScene: gdjs.RuntimeScene): void {
|
||||
super.onDestroyFromScene(runtimeScene);
|
||||
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
super.onDestroyFromScene(instanceContainer);
|
||||
this._renderer.onDestroy();
|
||||
}
|
||||
|
||||
|
@@ -124,7 +124,7 @@ namespace gdjs {
|
||||
}
|
||||
this._tileMapManager.getOrLoadTextureCache(
|
||||
(textureName) =>
|
||||
(this._runtimeScene
|
||||
(this.getInstanceContainer()
|
||||
.getGame()
|
||||
.getImageManager()
|
||||
.getPIXITexture(textureName) as unknown) as PIXI.BaseTexture<
|
||||
|
@@ -69,8 +69,8 @@ namespace gdjs {
|
||||
return this._renderer.getRendererObject();
|
||||
}
|
||||
|
||||
onDestroyFromScene(runtimeScene): void {
|
||||
super.onDestroyFromScene(runtimeScene);
|
||||
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
super.onDestroyFromScene(instanceContainer);
|
||||
if ((this._renderer as any).onDestroy) {
|
||||
(this._renderer as any).onDestroy();
|
||||
}
|
||||
|
@@ -95,8 +95,8 @@ namespace gdjs {
|
||||
}
|
||||
}
|
||||
|
||||
onDestroyFromScene(runtimeScene): void {
|
||||
super.onDestroyFromScene(runtimeScene);
|
||||
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
|
||||
super.onDestroyFromScene(instanceContainer);
|
||||
this._renderer.onDestroy();
|
||||
}
|
||||
|
||||
|
@@ -4,218 +4,221 @@
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
namespace gdjs {
|
||||
// TODO EBO Replace instanceContainer by instanceContainer.
|
||||
export namespace evtTools {
|
||||
export namespace camera {
|
||||
export const setCameraX = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
x: float,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
runtimeScene.getLayer(layer).setCameraX(x, cameraId);
|
||||
instanceContainer.getLayer(layer).setCameraX(x, cameraId);
|
||||
};
|
||||
|
||||
export const setCameraY = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
y: float,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
runtimeScene.getLayer(layer).setCameraY(y, cameraId);
|
||||
instanceContainer.getLayer(layer).setCameraY(y, cameraId);
|
||||
};
|
||||
|
||||
export const getCameraX = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraX();
|
||||
return instanceContainer.getLayer(layer).getCameraX();
|
||||
};
|
||||
|
||||
export const getCameraY = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraY();
|
||||
return instanceContainer.getLayer(layer).getCameraY();
|
||||
};
|
||||
|
||||
export const getCameraWidth = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraWidth();
|
||||
return instanceContainer.getLayer(layer).getCameraWidth();
|
||||
};
|
||||
|
||||
export const getCameraHeight = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraHeight();
|
||||
return instanceContainer.getLayer(layer).getCameraHeight();
|
||||
};
|
||||
|
||||
export const getCameraBorderLeft = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return (
|
||||
getCameraX(runtimeScene, layer, cameraId) -
|
||||
getCameraWidth(runtimeScene, layer, cameraId) / 2
|
||||
getCameraX(instanceContainer, layer, cameraId) -
|
||||
getCameraWidth(instanceContainer, layer, cameraId) / 2
|
||||
);
|
||||
};
|
||||
|
||||
export const getCameraBorderRight = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return (
|
||||
getCameraX(runtimeScene, layer, cameraId) +
|
||||
getCameraWidth(runtimeScene, layer, cameraId) / 2
|
||||
getCameraX(instanceContainer, layer, cameraId) +
|
||||
getCameraWidth(instanceContainer, layer, cameraId) / 2
|
||||
);
|
||||
};
|
||||
|
||||
export const getCameraBorderTop = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return (
|
||||
getCameraY(runtimeScene, layer, cameraId) -
|
||||
getCameraHeight(runtimeScene, layer, cameraId) / 2
|
||||
getCameraY(instanceContainer, layer, cameraId) -
|
||||
getCameraHeight(instanceContainer, layer, cameraId) / 2
|
||||
);
|
||||
};
|
||||
|
||||
export const getCameraBorderBottom = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return (
|
||||
getCameraY(runtimeScene, layer, cameraId) +
|
||||
getCameraHeight(runtimeScene, layer, cameraId) / 2
|
||||
getCameraY(instanceContainer, layer, cameraId) +
|
||||
getCameraHeight(instanceContainer, layer, cameraId) / 2
|
||||
);
|
||||
};
|
||||
|
||||
export const showLayer = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).show(true);
|
||||
return instanceContainer.getLayer(layer).show(true);
|
||||
};
|
||||
|
||||
export const hideLayer = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).show(false);
|
||||
return instanceContainer.getLayer(layer).show(false);
|
||||
};
|
||||
|
||||
export const layerIsVisible = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string
|
||||
): boolean {
|
||||
return (
|
||||
runtimeScene.hasLayer(layer) &&
|
||||
runtimeScene.getLayer(layer).isVisible()
|
||||
instanceContainer.hasLayer(layer) &&
|
||||
instanceContainer.getLayer(layer).isVisible()
|
||||
);
|
||||
};
|
||||
|
||||
export const setCameraRotation = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
rotation: float,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setCameraRotation(rotation, cameraId);
|
||||
};
|
||||
|
||||
export const getCameraRotation = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraRotation(cameraId);
|
||||
return instanceContainer.getLayer(layer).getCameraRotation(cameraId);
|
||||
};
|
||||
|
||||
export const getCameraZoom = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getCameraZoom(cameraId);
|
||||
return instanceContainer.getLayer(layer).getCameraZoom(cameraId);
|
||||
};
|
||||
|
||||
export const setCameraZoom = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
newZoom: float,
|
||||
layer: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).setCameraZoom(newZoom, cameraId);
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setCameraZoom(newZoom, cameraId);
|
||||
};
|
||||
|
||||
export const centerCamera = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
object: gdjs.RuntimeObject | null,
|
||||
anticipateMove: boolean,
|
||||
layerName: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layerName) || object == null) {
|
||||
if (!instanceContainer.hasLayer(layerName) || object == null) {
|
||||
return;
|
||||
}
|
||||
let xOffset = 0;
|
||||
@@ -223,11 +226,11 @@ namespace gdjs {
|
||||
if (anticipateMove && !object.hasNoForces()) {
|
||||
const objectAverageForce = object.getAverageForce();
|
||||
const elapsedTimeInSeconds =
|
||||
object.getElapsedTime(runtimeScene) / 1000;
|
||||
object.getElapsedTime(instanceContainer) / 1000;
|
||||
xOffset = objectAverageForce.getX() * elapsedTimeInSeconds;
|
||||
yOffset = objectAverageForce.getY() * elapsedTimeInSeconds;
|
||||
}
|
||||
const layer = runtimeScene.getLayer(layerName);
|
||||
const layer = instanceContainer.getLayer(layerName);
|
||||
layer.setCameraX(object.getCenterXInScene() + xOffset, cameraId);
|
||||
layer.setCameraY(object.getCenterYInScene() + yOffset, cameraId);
|
||||
};
|
||||
@@ -236,7 +239,7 @@ namespace gdjs {
|
||||
* @deprecated prefer using centerCamera and clampCamera.
|
||||
*/
|
||||
export const centerCameraWithinLimits = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
object: gdjs.RuntimeObject | null,
|
||||
left: number,
|
||||
top: number,
|
||||
@@ -246,9 +249,15 @@ namespace gdjs {
|
||||
layerName: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
centerCamera(runtimeScene, object, anticipateMove, layerName, cameraId);
|
||||
centerCamera(
|
||||
instanceContainer,
|
||||
object,
|
||||
anticipateMove,
|
||||
layerName,
|
||||
cameraId
|
||||
);
|
||||
clampCamera(
|
||||
runtimeScene,
|
||||
instanceContainer,
|
||||
left,
|
||||
top,
|
||||
right,
|
||||
@@ -259,7 +268,7 @@ namespace gdjs {
|
||||
};
|
||||
|
||||
export const clampCamera = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
left: float,
|
||||
top: float,
|
||||
right: float,
|
||||
@@ -267,10 +276,10 @@ namespace gdjs {
|
||||
layerName: string,
|
||||
cameraId: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layerName)) {
|
||||
if (!instanceContainer.hasLayer(layerName)) {
|
||||
return;
|
||||
}
|
||||
const layer = runtimeScene.getLayer(layerName);
|
||||
const layer = instanceContainer.getLayer(layerName);
|
||||
const cameraHalfWidth = layer.getCameraWidth(cameraId) / 2;
|
||||
const cameraHalfHeight = layer.getCameraHeight(cameraId) / 2;
|
||||
|
||||
@@ -304,150 +313,152 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* Update a layer effect parameter (with a number).
|
||||
* @param runtimeScene The scene
|
||||
* @param instanceContainer The scene
|
||||
* @param layer The name of the layer
|
||||
* @param effect The name of the effect
|
||||
* @param parameter The parameter to update
|
||||
* @param value The new value
|
||||
*/
|
||||
export const setLayerEffectDoubleParameter = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
effect: string,
|
||||
parameter: string,
|
||||
value: float
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setEffectDoubleParameter(effect, parameter, value);
|
||||
};
|
||||
|
||||
/**
|
||||
* Update a layer effect parameter (with a string).
|
||||
* @param runtimeScene The scene
|
||||
* @param instanceContainer The scene
|
||||
* @param layer The name of the layer
|
||||
* @param effect The name of the effect
|
||||
* @param parameter The parameter to update
|
||||
* @param value The new value
|
||||
*/
|
||||
export const setLayerEffectStringParameter = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
effect: string,
|
||||
parameter: string,
|
||||
value: string
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setEffectStringParameter(effect, parameter, value);
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable or disable a layer effect parameter (boolean).
|
||||
* @param runtimeScene The scene
|
||||
* @param instanceContainer The scene
|
||||
* @param layer The name of the layer
|
||||
* @param effect The name of the effect
|
||||
* @param parameter The parameter to update
|
||||
* @param value The new value
|
||||
*/
|
||||
export const setLayerEffectBooleanParameter = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
effect: string,
|
||||
parameter: string,
|
||||
value: boolean
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setEffectBooleanParameter(effect, parameter, value);
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable, or disable, an effect of a layer.
|
||||
* @param runtimeScene The scene
|
||||
* @param instanceContainer The scene
|
||||
* @param layer The name of the layer
|
||||
* @param effect The name of the effect
|
||||
* @param enabled true to enable, false to disable.
|
||||
*/
|
||||
export const enableLayerEffect = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
effect: string,
|
||||
enabled: boolean
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
runtimeScene.getLayer(layer).enableEffect(effect, enabled);
|
||||
instanceContainer.getLayer(layer).enableEffect(effect, enabled);
|
||||
};
|
||||
|
||||
/**
|
||||
* Check if an effect is enabled.
|
||||
* @param runtimeScene The scene
|
||||
* @param instanceContainer The scene
|
||||
* @param layer The name of the layer
|
||||
* @param effect The name of the effect
|
||||
* @return true if the effect is enabled, false otherwise.
|
||||
*/
|
||||
export const layerEffectEnabled = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
effect: string
|
||||
): boolean {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return true;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).isEffectEnabled(effect);
|
||||
return instanceContainer.getLayer(layer).isEffectEnabled(effect);
|
||||
};
|
||||
|
||||
export const setLayerTimeScale = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
timeScale: float
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).setTimeScale(timeScale);
|
||||
return instanceContainer.getLayer(layer).setTimeScale(timeScale);
|
||||
};
|
||||
|
||||
export const getLayerTimeScale = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 1;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getTimeScale();
|
||||
return instanceContainer.getLayer(layer).getTimeScale();
|
||||
};
|
||||
|
||||
export const setLayerDefaultZOrder = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string,
|
||||
defaultZOrder: integer
|
||||
) {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).setDefaultZOrder(defaultZOrder);
|
||||
return instanceContainer
|
||||
.getLayer(layer)
|
||||
.setDefaultZOrder(defaultZOrder);
|
||||
};
|
||||
|
||||
export const getLayerDefaultZOrder = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layer: string
|
||||
): number {
|
||||
if (!runtimeScene.hasLayer(layer)) {
|
||||
if (!instanceContainer.hasLayer(layer)) {
|
||||
return 0;
|
||||
}
|
||||
return runtimeScene.getLayer(layer).getDefaultZOrder();
|
||||
return instanceContainer.getLayer(layer).getDefaultZOrder();
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -456,13 +467,13 @@ namespace gdjs {
|
||||
* @param rgbColor The color, in RGB format ("128;200;255").
|
||||
*/
|
||||
export const setLayerAmbientLightColor = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
layerName: string,
|
||||
rgbColor: string
|
||||
) {
|
||||
if (
|
||||
!runtimeScene.hasLayer(layerName) ||
|
||||
!runtimeScene.getLayer(layerName).isLightingLayer()
|
||||
!instanceContainer.hasLayer(layerName) ||
|
||||
!instanceContainer.getLayer(layerName).isLightingLayer()
|
||||
) {
|
||||
return;
|
||||
}
|
||||
@@ -470,7 +481,7 @@ namespace gdjs {
|
||||
if (colors.length < 3) {
|
||||
return;
|
||||
}
|
||||
return runtimeScene
|
||||
return instanceContainer
|
||||
.getLayer(layerName)
|
||||
.setClearColor(
|
||||
parseInt(colors[0], 10),
|
||||
|
@@ -147,10 +147,10 @@ namespace gdjs {
|
||||
};
|
||||
|
||||
export const enableMetrics = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
enable: boolean
|
||||
) {
|
||||
runtimeScene.getGame().enableMetrics(enable);
|
||||
instanceContainer.getGame().enableMetrics(enable);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -224,7 +224,7 @@ namespace gdjs {
|
||||
export const readNumberFromJSONFile = (
|
||||
name: string,
|
||||
elementPath: string,
|
||||
runtimeScene: gdjs.RuntimeScene | null,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer | null,
|
||||
variable: gdjs.Variable
|
||||
) => {
|
||||
return loadObject(name, (jsObject) => {
|
||||
@@ -250,7 +250,7 @@ namespace gdjs {
|
||||
export const readStringFromJSONFile = (
|
||||
name: string,
|
||||
elementPath: string,
|
||||
runtimeScene: gdjs.RuntimeScene | null,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer | null,
|
||||
variable: gdjs.Variable
|
||||
) => {
|
||||
return loadObject(name, (jsObject) => {
|
||||
|
@@ -85,10 +85,10 @@ namespace gdjs {
|
||||
* @private
|
||||
*/
|
||||
export const globalVariableExists = function (
|
||||
runtimeScene: gdjs.RuntimeScene,
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
variableName: string
|
||||
): boolean {
|
||||
return runtimeScene.getGame().getVariables().has(variableName);
|
||||
return instanceContainer.getGame().getVariables().has(variableName);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -329,7 +329,6 @@ namespace gdjs {
|
||||
gdjs.callbacksRuntimeSceneUnloaded.push(callback);
|
||||
};
|
||||
|
||||
// TODO EBO Check that it doesn't break community extensions.
|
||||
/**
|
||||
* Register a function to be called when an object is deleted from a scene.
|
||||
* @param callback The function to be called.
|
||||
|
@@ -27,20 +27,22 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* @param layer The layer
|
||||
* @param runtimeSceneRenderer The scene renderer
|
||||
* @param runtimeInstanceContainerRenderer The scene renderer
|
||||
*/
|
||||
constructor(
|
||||
layer: gdjs.Layer,
|
||||
runtimeSceneRenderer: gdjs.RuntimeInstanceContainerRenderer,
|
||||
runtimeInstanceContainerRenderer: gdjs.RuntimeInstanceContainerRenderer,
|
||||
pixiRenderer: PIXI.Renderer | null
|
||||
) {
|
||||
this._pixiContainer = new PIXI.Container();
|
||||
this._layer = layer;
|
||||
this._runtimeSceneRenderer = runtimeSceneRenderer;
|
||||
this._runtimeSceneRenderer = runtimeInstanceContainerRenderer;
|
||||
this._pixiRenderer = pixiRenderer;
|
||||
this._isLightingLayer = layer.isLightingLayer();
|
||||
this._clearColor = layer.getClearColor();
|
||||
runtimeSceneRenderer.getRendererObject().addChild(this._pixiContainer);
|
||||
runtimeInstanceContainerRenderer
|
||||
.getRendererObject()
|
||||
.addChild(this._pixiContainer);
|
||||
this._pixiContainer.filters = [];
|
||||
if (this._isLightingLayer) {
|
||||
this._replaceContainerWithSprite();
|
||||
|
@@ -288,9 +288,6 @@ namespace gdjs {
|
||||
|
||||
/**
|
||||
* The SpriteRuntimeObject represents an object that can display images.
|
||||
*
|
||||
* @param runtimeScene The scene the object belongs to
|
||||
* @param spriteObjectData The object data used to initialize the object
|
||||
*/
|
||||
export class SpriteRuntimeObject extends gdjs.RuntimeObject {
|
||||
_currentAnimation: number = 0;
|
||||
@@ -321,6 +318,10 @@ namespace gdjs {
|
||||
_renderer: gdjs.SpriteRuntimeObjectRenderer;
|
||||
_animationFrameDirty: any;
|
||||
|
||||
/**
|
||||
* @param instanceContainer The container the object belongs to
|
||||
* @param spriteObjectData The object data used to initialize the object
|
||||
*/
|
||||
constructor(
|
||||
instanceContainer: gdjs.RuntimeInstanceContainer,
|
||||
spriteObjectData: ObjectData & SpriteObjectDataType
|
||||
@@ -347,7 +348,7 @@ namespace gdjs {
|
||||
|
||||
reinitialize(spriteObjectData: SpriteObjectData) {
|
||||
super.reinitialize(spriteObjectData);
|
||||
const runtimeScene = this._runtimeScene;
|
||||
const instanceContainer = this.getInstanceContainer();
|
||||
this._currentAnimation = 0;
|
||||
this._currentDirection = 0;
|
||||
this._currentFrame = 0;
|
||||
@@ -366,13 +367,13 @@ namespace gdjs {
|
||||
const animData = spriteObjectData.animations[i];
|
||||
if (i < this._animations.length) {
|
||||
this._animations[i].reinitialize(
|
||||
runtimeScene.getGame().getImageManager(),
|
||||
instanceContainer.getGame().getImageManager(),
|
||||
animData
|
||||
);
|
||||
} else {
|
||||
this._animations.push(
|
||||
new gdjs.SpriteAnimation(
|
||||
runtimeScene.getGame().getImageManager(),
|
||||
instanceContainer.getGame().getImageManager(),
|
||||
animData
|
||||
)
|
||||
);
|
||||
@@ -382,7 +383,7 @@ namespace gdjs {
|
||||
|
||||
//Make sure to delete already existing animations which are not used anymore.
|
||||
this._animationFrame = null;
|
||||
this._renderer.reinitialize(this, runtimeScene);
|
||||
this._renderer.reinitialize(this, instanceContainer);
|
||||
this._updateAnimationFrame();
|
||||
|
||||
// *ALWAYS* call `this.onCreated()` at the very end of your object reinitialize method.
|
||||
@@ -393,19 +394,19 @@ namespace gdjs {
|
||||
oldObjectData: SpriteObjectData,
|
||||
newObjectData: SpriteObjectData
|
||||
): boolean {
|
||||
const runtimeScene = this._runtimeScene;
|
||||
const instanceContainer = this.getInstanceContainer();
|
||||
let i = 0;
|
||||
for (const len = newObjectData.animations.length; i < len; ++i) {
|
||||
const animData = newObjectData.animations[i];
|
||||
if (i < this._animations.length) {
|
||||
this._animations[i].reinitialize(
|
||||
runtimeScene.getGame().getImageManager(),
|
||||
instanceContainer.getGame().getImageManager(),
|
||||
animData
|
||||
);
|
||||
} else {
|
||||
this._animations.push(
|
||||
new gdjs.SpriteAnimation(
|
||||
runtimeScene.getGame().getImageManager(),
|
||||
instanceContainer.getGame().getImageManager(),
|
||||
animData
|
||||
)
|
||||
);
|
||||
|
Reference in New Issue
Block a user