PageSourceSearch

https://sw-content.co.uk/events-tools/runtimescenetools.js

js sw-content.co.uk collected 2026-10-08 07:31:34 UTC 5,477 bytes, 163 lines download raw bytes

1/*
2 * GDevelop JS Platform
3 * Copyright 2013-2016 Florian Rival ([email protected]). All rights reserved.
4 * This project is released under the MIT License.
5 */
6
7/**
8 * Tools related to runtime scene, for events generated code.
9 * @memberof gdjs.evtTools
10 * @class runtimeScene
11 * @static
12 * @private
13 */
14gdjs.evtTools.runtimeScene = gdjs.evtTools.runtimeScene || {};
15
16gdjs.evtTools.runtimeScene.sceneJustBegins = function(runtimeScene) {
17    return runtimeScene.getTimeManager().isFirstFrame();
18};
19
20gdjs.evtTools.runtimeScene.sceneJustResumed = function(runtimeScene) {
21    return runtimeScene.sceneJustResumed();
22};
23
24gdjs.evtTools.runtimeScene.getSceneName = function(runtimeScene) {
25    return runtimeScene.getName();
26};
27
28gdjs.evtTools.runtimeScene.setBackgroundColor = function(runtimeScene, rgbColor) {
29
30    var colors = rgbColor.split(";");
31    if ( colors.length < 3 ) return;
32
33    runtimeScene.setBackgroundColor(parseInt(colors[0]),
34                                    parseInt(colors[1]),
35                                    parseInt(colors[2]));
36};
37
38gdjs.evtTools.runtimeScene.getElapsedTimeInSeconds = function(runtimeScene) {
39    return runtimeScene.getTimeManager().getElapsedTime() / 1000;
40};
41
42gdjs.evtTools.runtimeScene.setTimeScale = function(runtimeScene, timeScale) {
43    return runtimeScene.getTimeManager().setTimeScale(timeScale);
44};
45
46gdjs.evtTools.runtimeScene.getTimeScale = function(runtimeScene) {
47    return runtimeScene.getTimeManager().getTimeScale();
48};
49
50gdjs.evtTools.runtimeScene.timerElapsedTime = function(runtimeScene, timeInSeconds, timerName) {
51    var timeManager = runtimeScene.getTimeManager();
52    if ( !timeManager.hasTimer(timerName) ) {
53        timeManager.addTimer(timerName);
54        return false;
55    }
56
57    return timeManager.getTimer(timerName).getTime() / 1000 >= timeInSeconds;
58};
59
60gdjs.evtTools.runtimeScene.timerPaused = function(runtimeScene, timerName) {
61    var timeManager = runtimeScene.getTimeManager();
62    if ( !timeManager.hasTimer(timerName) ) return false;
63
64    return timeManager.getTimer(timerName).isPaused();
65};
66
67gdjs.evtTools.runtimeScene.resetTimer = function(runtimeScene, timerName) {
68    var timeManager = runtimeScene.getTimeManager();
69    if ( !timeManager.hasTimer(timerName) )
70        timeManager.addTimer(timerName);
71    else
72        timeManager.getTimer(timerName).reset();
73};
74
75gdjs.evtTools.runtimeScene.pauseTimer = function(runtimeScene, timerName) {
76    var timeManager = runtimeScene.getTimeManager();
77    if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName);
78
79    timeManager.getTimer(timerName).setPaused(true);
80};
81
82gdjs.evtTools.runtimeScene.unpauseTimer = function(runtimeScene, timerName) {
83    var timeManager = runtimeScene.getTimeManager();
84    if ( !timeManager.hasTimer(timerName) ) timeManager.addTimer(timerName);
85
86    return timeManager.getTimer(timerName).setPaused(false);
87};
88
89gdjs.evtTools.runtimeScene.removeTimer = function(runtimeScene, timerName) {
90    var timeManager = runtimeScene.getTimeManager();
91    timeManager.removeTimer(timerName);
92};
93
94gdjs.evtTools.runtimeScene.getTimerElapsedTimeInSeconds = function(runtimeScene, timerName) {
95    var timeManager = runtimeScene.getTimeManager();
96    if (!timeManager.hasTimer(timerName)) return 0;
97
98    return timeManager.getTimer(timerName).getTime() / 1000;
99};
100
101gdjs.evtTools.runtimeScene.getTimeFromStartInSeconds = function(runtimeScene) {
102    return runtimeScene.getTimeManager().getTimeFromStart() / 1000;
103};
104
105gdjs.evtTools.runtimeScene.getTime = function(runtimeScene, what) {
106    if ( what === "timestamp" ) {
107        return Date.now();
108    }
109
110    var now = new Date();
111
112    if ( what === "hour" )
113        return now.getHours();
114    else if ( what === "min" )
115        return now.getMinutes();
116    else if ( what === "sec" )
117        return now.getSeconds();
118    else if ( what === "mday" )
119        return now.getDate();
120    else if ( what === "mon" )
121        return now.getMonth();
122    else if ( what === "year" )
123        return now.getFullYear() - 1900; //Conform to the C way of returning years.
124    else if ( what === "wday" )
125        return now.getDay();
126    else if ( what === "yday" ) {
127        var start = new Date(now.getFullYear(), 0, 0);
128        var diff = now - start;
129        var oneDay = 1000 * 60 * 60 * 24;
130        return Math.floor(diff / oneDay);
131    }
132
133    return 0;
134};
135
136gdjs.evtTools.runtimeScene.replaceScene = function(runtimeScene, newSceneName, clearOthers) {
137    if (!runtimeScene.getGame().getSceneData(newSceneName)) return;
138
139    runtimeScene.requestChange(clearOthers ?
140        gdjs.RuntimeScene.CLEAR_SCENES :
141        gdjs.RuntimeScene.REPLACE_SCENE, newSceneName);
142};
143
144gdjs.evtTools.runtimeScene.pushScene = function(runtimeScene, newSceneName) {
145    if (!runtimeScene.getGame().getSceneData(newSceneName)) return;
146
147    runtimeScene.requestChange(gdjs.RuntimeScene.PUSH_SCENE, newSceneName);
148};
149
150gdjs.evtTools.runtimeScene.popScene = function(runtimeScene) {
151    runtimeScene.requestChange(gdjs.RuntimeScene.POP_SCENE);
152};
153
154gdjs.evtTools.runtimeScene.stopGame = function(runtimeScene) {
155    runtimeScene.requestChange(gdjs.RuntimeScene.STOP_GAME);
156};
157
158gdjs.evtTools.runtimeScene.createObjectsFromExternalLayout = function(scene, externalLayout, xPos, yPos) {
159    var externalLayoutData = scene.getGame().getExternalLayoutData(externalLayout);
160    if ( externalLayoutData === null ) return;
161
162    scene.createObjectsFrom(externalLayoutData.instances, xPos, yPos);
163};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.