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