Skip to content

Commit 9c5281e

Browse files
author
Julien Poulton
committed
Merge branch 'feat-viewer-deps' into 'master'
[FEAT][SDK] check for dependencies between viewer modules See merge request codingame/game-engine!313
2 parents 3036f50 + 4a4a7ce commit 9c5281e

File tree

10 files changed

+47
-14
lines changed

10 files changed

+47
-14
lines changed

engine/community-modules/camera/src/main/java/com/codingame/gameengine/module/camera/CameraModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private void sendFrameData() {
7777
data[3] = active;
7878
}
7979
if (!Arrays.equals(data, empty)) {
80-
gameManager.setViewData("c", data);
80+
gameManager.setViewData("camera", data);
8181
}
8282
}
8383

engine/community-modules/camera/src/main/resources/view/camera-module/CameraModule.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ export class CameraModule {
2323

2424
}
2525

26-
static get name() {
27-
return 'c'
26+
static get moduleName() {
27+
return 'camera'
28+
}
29+
30+
static get dependencies () {
31+
return ['entitymodule']
2832
}
2933

3034
static setActive(active) {

engine/community-modules/camera/src/main/resources/view/camera-module/CameraToggleModule.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,15 @@ export class CameraToggleModule {
3838
return option
3939
}
4040

41-
static get name() {
42-
return 'toggles'
41+
static get moduleName () {
42+
return 'camera-toggle'
4343
}
4444

45+
static get dependencies () {
46+
return ['camera']
47+
}
48+
49+
4550
updateScene(previousData, currentData, progress) {
4651
this.currentFrame = currentData
4752
this.currentProgress = progress

engine/core/src/main/resources/view/core/Drawer.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,19 @@ export class Drawer {
9292

9393
instantiateModules () {
9494
this.modules = {}
95+
9596
for (const Module of config.modules) {
9697
try {
97-
this.modules[Module.moduleName || Module.name] = new Module(assets)
98+
const dependencies = Module.dependencies ?? []
99+
for (let dep of dependencies) {
100+
if (this.modules[dep] == null) {
101+
throw new Error(`Required module "${dep}" not yet loaded. Make sure it comes first in your config.js "modules" array`)
102+
}
103+
}
104+
105+
this.modules[Module.moduleName ?? Module.name] = new Module(assets)
98106
} catch (error) {
99-
this.handleModuleError(Module.moduleName || Module.name, error)
107+
this.handleModuleError(Module.moduleName ?? Module.name, error)
100108
}
101109
}
102110
}
@@ -215,7 +223,6 @@ export class Drawer {
215223
scope.logo = logo
216224
} catch (error) {
217225
ErrorLog.push({
218-
cause: error,
219226
message: 'Missing "logo.png" to complete replay.'
220227
})
221228
scope.logo = new PIXI.Container()

engine/modules/endscreen/src/main/resources/view/endscreen-module/EndScreenModule.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class EndScreenModule {
1313
this.atEnd = false
1414
}
1515

16-
static get name () {
16+
static get moduleName () {
1717
return 'endScreen'
1818
}
1919

engine/modules/entities/src/main/resources/view/entity-module/GraphicEntityModule.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class GraphicEntityModule {
2525
api.entities = this.entities
2626
}
2727

28-
static get name () {
28+
static get moduleName () {
2929
return 'entitymodule'
3030
}
3131

engine/modules/toggle/src/main/resources/view/toggle-module/ToggleModule.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,14 @@ export class ToggleModule {
4444
return option
4545
}
4646

47-
static get name () {
47+
static get moduleName () {
4848
return 'toggles'
4949
}
5050

51+
static get dependencies () {
52+
return ['entitymodule']
53+
}
54+
5155
updateScene (previousData, currentData, progress) {
5256
this.currentFrame = currentData
5357
this.currentProgress = progress

engine/modules/tooltip/src/main/resources/view/tooltip-module/TooltipModule.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,13 @@ export class TooltipModule {
115115
this.lastFrame = 0
116116
}
117117

118-
static get name () {
118+
static get moduleName () {
119119
return 'tooltips'
120120
}
121+
static get dependencies () {
122+
return ['entitymodule']
123+
}
124+
121125

122126
updateScene (previousData, currentData, progress) {
123127
this.currentFrame = currentData

engine/modules/viewport/src/main/resources/view/viewport-module/ViewportModule.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ import vp from './lib/viewport.es.js'
55

66
export class ViewportModule {
77

8-
static get name() {
8+
static get moduleName () {
99
return 'viewport'
1010
}
11+
static get dependencies () {
12+
return ['entitymodule']
13+
}
1114

1215
entityIds = []
1316

playground/misc/misc-3-release-notes.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
The CodinGame SDK is regularly updated and improved. This document lets you know what changed in the latest releases.
44

5-
## ## 4.3.1
5+
## Next Release
6+
7+
### 🐞 Bug fix
8+
9+
- Enforce dependencies between certain viewer modules.
10+
11+
## 4.3.1
612

713
### 🐞 Bug fix
814

0 commit comments

Comments
 (0)