blob: 55e0aa2f2e9f7ca3e64fb15338714da1ed35d442 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#!/usr/bin/env node
require("colors");
require("serpentity");
/////////////////
// Load the stuff
/////////////////
console.log("\n## Loading".bold.black)
console.log("Serpentity: " + (typeof Serpentity !== "undefined" ? "LOAD OK".green : "FAIL".red));
console.log("Serpentity.Entity: " + (typeof Serpentity !== "undefined" && Serpentity.Entity ? "LOAD OK".green : "FAIL".red));
console.log("Serpentity.Component: " + (typeof Serpentity !== "undefined" && Serpentity.Component ? "LOAD OK".green : "FAIL".red));
console.log("Serpentity.System: " + (typeof Serpentity !== "undefined" && Serpentity.System ? "LOAD OK".green : "FAIL".red));
console.log("Serpentity.Node: " + (typeof Serpentity !== "undefined" && Serpentity.Node ? "LOAD OK".green : "FAIL".red));
console.log("Serpentity.NodeCollection: " + (typeof Serpentity !== "undefined" && Serpentity.NodeCollection ? "LOAD OK".green : "FAIL".red));
//////////////////////
// Create test classes
//////////////////////
console.log("\n## Creating Test Classes".bold.black);
Class("TestSystem").inherits(Serpentity.System)({
prototype : {
added : function added(engine) {
this.testNodes = engine.getNodes(TestNode);
console.log("System added callback: " + "EXEC OK".green);
},
removed : function removed(engine) {
this.testNodes = null;
console.log("System removed callback: " + "EXEC OK".green);
},
update : function update(dt) {
this.testNodes.forEach(function (node) {
console.log("Running Node: " + (node.test.testMessage === "test" ? "SYSTEM OK".green : "FAIL".RED));
});
console.log("System update callback: " + "EXEC OK".green);
}
}
});
var testSystem = new TestSystem();
console.log("TestSystem: " + "CREATE OK".green)
Class("TestComponent").inherits(Serpentity.Component)({
prototype : {
testMessage : "test"
}
});
console.log("TestComponent: " + "CREATE OK".green)
Class("TestNode").inherits(Serpentity.Node)({
types : {
test : TestComponent
}
});
console.log("TestNode: " + "CREATE OK".green)
console.log("\n## Adding system to the engine".bold.black)
var engine = new Serpentity();
console.log("engine: " + "CREATE OK".green)
engine.addSystem(testSystem);
console.log("\n## Running update without any entities".bold.black)
engine.update(10);
console.log("\n## Adding system to the engine and updating".bold.black)
var entity = new Serpentity.Entity();
entity.add(new TestComponent());
engine.addEntity(entity);
engine.update(10);
console.log("\n## Removing the system and readding".bold.black)
engine.removeSystem(testSystem);
engine.update(10);
engine.addSystem(testSystem);
engine.update(10);
console.log("\n## Adding a second entity".bold.black)
var entity = new Serpentity.Entity();
entity.add(new TestComponent());
engine.addEntity(entity);
engine.update(10);
console.log("\n## Removing entity".bold.black)
engine.removeEntity(entity)
engine.update(10);
console.log("\n## Removing system".bold.black)
engine.removeSystem(testSystem)
engine.update(10);
|