covid19-demo/games.gdevelop-app.com/vincenzo/game-adbfc30b-3d8b-43b1-87a.../events-tools/runtimescenetools.js

164 lines
5.3 KiB
JavaScript

/*
* GDevelop JS Platform
* Copyright 2013-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the MIT License.
*/
/**
* Tools related to runtime scene, for events generated code.
* @memberof gdjs.evtTools
* @class runtimeScene
* @static
* @private
*/
gdjs.evtTools.runtimeScene = gdjs.evtTools.runtimeScene || {};
gdjs.evtTools.runtimeScene.sceneJustBegins = function(runtimeScene) {
return runtimeScene.getTimeManager().isFirstFrame();
};
gdjs.evtTools.runtimeScene.sceneJustResumed = function(runtimeScene) {
return runtimeScene.sceneJustResumed();
};
gdjs.evtTools.runtimeScene.getSceneName = function(runtimeScene) {
return runtimeScene.getName();
};
gdjs.evtTools.runtimeScene.setBackgroundColor = function(runtimeScene, rgbColor) {
var colors = rgbColor.split(";");
if ( colors.length < 3 ) return;
runtimeScene.setBackgroundColor(parseInt(colors[0]),
parseInt(colors[1]),
parseInt(colors[2]));
};
gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds = function(runtimeScene) {
return runtimeScene.getTimeManager().getElapsedTime() / 1000;
};
gdjs.evtTools.runtimeScene.setTimeScale = function(runtimeScene, timeScale) {
return runtimeScene.getTimeManager().setTimeScale(timeScale);
};
gdjs.evtTools.runtimeScene.getTimeScale = function(runtimeScene) {
return runtimeScene.getTimeManager().getTimeScale();
};
gdjs.evtTools.runtimeScene.timerElapsedTime = function(runtimeScene, timeInSeconds, timerName) {
var timeManager = runtimeScene.getTimeManager();
if ( !timeManager.hasTimer(timerName) ) {
timeManager.addTimer(timerName);
return false;
}
return timeManager.getTimer(timerName).getTime() / 1000 >= timeInSeconds;
};
gdjs.evtTools.runtimeScene.timerPaused = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
if ( !timeManager.hasTimer(timerName) ) return false;
return timeManager.getTimer(timerName).isPaused();
};
gdjs.evtTools.runtimeScene.resetTimer = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
if ( !timeManager.hasTimer(timerName) )
timeManager.addTimer(timerName);
else
timeManager.getTimer(timerName).reset();
};
gdjs.evtTools.runtimeScene.pauseTimer = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName);
timeManager.getTimer(timerName).setPaused(true);
};
gdjs.evtTools.runtimeScene.unpauseTimer = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName);
return timeManager.getTimer(timerName).setPaused(false);
};
gdjs.evtTools.runtimeScene.removeTimer = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
timeManager.removeTimer(timerName);
};
gdjs.evtTools.runtimeScene.getTimerElapsedTimeInSeconds = function(runtimeScene, timerName) {
var timeManager = runtimeScene.getTimeManager();
if (!timeManager.hasTimer(timerName)) return 0;
return timeManager.getTimer(timerName).getTime() / 1000;
};
gdjs.evtTools.runtimeScene.getTimeFromStartInSeconds = function(runtimeScene) {
return runtimeScene.getTimeManager().getTimeFromStart() / 1000;
};
gdjs.evtTools.runtimeScene.getTime = function(runtimeScene, what) {
if ( what === "timestamp" ) {
return Date.now();
}
var now = new Date();
if ( what === "hour" )
return now.getHours();
else if ( what === "min" )
return now.getMinutes();
else if ( what === "sec" )
return now.getSeconds();
else if ( what === "mday" )
return now.getDate();
else if ( what === "mon" )
return now.getMonth();
else if ( what === "year" )
return now.getFullYear() - 1900; //Conform to the C way of returning years.
else if ( what === "wday" )
return now.getDay();
else if ( what === "yday" ) {
var start = new Date(now.getFullYear(), 0, 0);
var diff = now - start;
var oneDay = 1000 * 60 * 60 * 24;
return Math.floor(diff / oneDay);
}
return 0;
};
gdjs.evtTools.runtimeScene.replaceScene = function(runtimeScene, newSceneName, clearOthers) {
if (!runtimeScene.getGame().getSceneData(newSceneName)) return;
runtimeScene.requestChange(clearOthers ?
gdjs.RuntimeScene.CLEAR_SCENES :
gdjs.RuntimeScene.REPLACE_SCENE, newSceneName);
};
gdjs.evtTools.runtimeScene.pushScene = function(runtimeScene, newSceneName) {
if (!runtimeScene.getGame().getSceneData(newSceneName)) return;
runtimeScene.requestChange(gdjs.RuntimeScene.PUSH_SCENE, newSceneName);
};
gdjs.evtTools.runtimeScene.popScene = function(runtimeScene) {
runtimeScene.requestChange(gdjs.RuntimeScene.POP_SCENE);
};
gdjs.evtTools.runtimeScene.stopGame = function(runtimeScene) {
runtimeScene.requestChange(gdjs.RuntimeScene.STOP_GAME);
};
gdjs.evtTools.runtimeScene.createObjectsFromExternalLayout = function(scene, externalLayout, xPos, yPos) {
var externalLayoutData = scene.getGame().getExternalLayoutData(externalLayout);
if ( externalLayoutData === null ) return;
scene.createObjectsFrom(externalLayoutData.instances, xPos, yPos);
};