Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/_test.sim/simulation/components/test-serialize.js
function TestScript1_values() {} | function TestScript1_values() {} | ||||
TestScript1_values.prototype.Init = function() { | TestScript1_values.prototype.Init = function() { | ||||
this.x = +this.template.x; | this.x = +this.template.x; | ||||
this.str = "this is a string"; | this.str = "this is a string"; | ||||
this.things = { a: 1, b: "2", c: [3, "4", [5, []]] }; | this.things = { "a": 1, "b": "2", "c": [3, "4", [5, []]] }; | ||||
}; | }; | ||||
TestScript1_values.prototype.GetX = function() { | TestScript1_values.prototype.GetX = function() { | ||||
// print(uneval(this)); | // print(uneval(this)); | ||||
return this.x; | return this.x; | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_values", TestScript1_values); | Engine.RegisterComponentType(IID_Test1, "TestScript1_values", TestScript1_values); | ||||
// -------- // | // -------- // | ||||
function TestScript1_entity() {} | function TestScript1_entity() {} | ||||
TestScript1_entity.prototype.GetX = function() { | TestScript1_entity.prototype.GetX = function() { | ||||
// Test that .entity is readonly | // Test that .entity is readonly | ||||
try { | try { | ||||
delete this.entity; | delete this.entity; | ||||
Engine.TS_FAIL("Missed exception"); | Engine.TS_FAIL("Missed exception"); | ||||
} catch (e) { } | } catch (e) { /* OK */ } | ||||
try { | try { | ||||
this.entity = -1; | this.entity = -1; | ||||
Engine.TS_FAIL("Missed exception"); | Engine.TS_FAIL("Missed exception"); | ||||
} catch (e) { } | } catch (e) { /* OK */ } | ||||
// and return the value | // and return the value | ||||
return this.entity; | return this.entity; | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_entity", TestScript1_entity); | Engine.RegisterComponentType(IID_Test1, "TestScript1_entity", TestScript1_entity); | ||||
// -------- // | // -------- // | ||||
function TestScript1_nontree() {} | function TestScript1_nontree() {} | ||||
TestScript1_nontree.prototype.Init = function() { | TestScript1_nontree.prototype.Init = function() { | ||||
var n = [1]; | var n = [1]; | ||||
this.x = [n, n, null, { y: n }]; | this.x = [n, n, null, { "y": n }]; | ||||
this.x[2] = this.x; | this.x[2] = this.x; | ||||
}; | }; | ||||
TestScript1_nontree.prototype.GetX = function() { | TestScript1_nontree.prototype.GetX = function() { | ||||
// print(uneval(this)+"\n"); | // print(uneval(this)+"\n"); | ||||
this.x[0][0] += 1; | this.x[0][0] += 1; | ||||
return this.x[0][0] + this.x[1][0] + this.x[2][0][0] + this.x[3].y[0]; | return this.x[0][0] + this.x[1][0] + this.x[2][0][0] + this.x[3].y[0]; | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_nontree", TestScript1_nontree); | Engine.RegisterComponentType(IID_Test1, "TestScript1_nontree", TestScript1_nontree); | ||||
// -------- // | // -------- // | ||||
function TestScript1_custom() {} | function TestScript1_custom() {} | ||||
TestScript1_custom.prototype.Init = function() { | TestScript1_custom.prototype.Init = function() { | ||||
this.y = 2; | this.y = 2; | ||||
}; | }; | ||||
TestScript1_custom.prototype.Serialize = function() { | TestScript1_custom.prototype.Serialize = function() { | ||||
return {c:1}; | return { "c": 1 }; | ||||
}; | |||||
TestScript1_custom.prototype.Deserialize = function(data) { | |||||
this.c = data.c; | |||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_custom", TestScript1_custom); | Engine.RegisterComponentType(IID_Test1, "TestScript1_custom", TestScript1_custom); | ||||
// -------- // | // -------- // | ||||
function TestScript1_getter() {} | function TestScript1_getter() {} | ||||
TestScript1_getter.prototype.Init = function() { | TestScript1_getter.prototype.Init = function() { | ||||
this.x = 100; | this.x = 100; | ||||
this.__defineGetter__('x', function () { print("FAIL\n"); die(); return 200; }); | this.__defineGetter__('x', function() { print("FAIL\n"); die(); return 200; }); | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_getter", TestScript1_getter); | Engine.RegisterComponentType(IID_Test1, "TestScript1_getter", TestScript1_getter); | ||||
// -------- // | // -------- // | ||||
function TestScript1_consts() {} | function TestScript1_consts() {} | ||||
TestScript1_consts.prototype.Schema = "<ref name='anything'/>"; | TestScript1_consts.prototype.Schema = "<ref name='anything'/>"; | ||||
TestScript1_consts.prototype.GetX = function() { | TestScript1_consts.prototype.GetX = function() { | ||||
return (+this.entity) + (+this.template.x); | return (+this.entity) + (+this.template.x); | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_consts", TestScript1_consts); | Engine.RegisterComponentType(IID_Test1, "TestScript1_consts", TestScript1_consts); |
Wildfire Games · Phabricator