Skip to content

Instantly share code, notes, and snippets.

@fernandojsg
Created July 31, 2019 15:29
Show Gist options
  • Save fernandojsg/51217cd35363280c05684145e73f401b to your computer and use it in GitHub Desktop.
Save fernandojsg/51217cd35363280c05684145e73f401b to your computer and use it in GitHub Desktop.
datatypes example
class Vector3 {
constructor(x, y, z) {
this.set(x,y,z);
}
copy(src) {
this.x = src.x;
this.y = src.y;
this.z = src.z;
}
set(x,y,z) {
this.x = x;
this.y = y;
this.z = z;
}
}
registerType(Vector3, {
create: () => {return new Vector3(); },
reset: (src, key, defaultValue) => {
if (typeof defaultValue !== "undefined") {
src[key].copy(defaultValue);
} else {
src[key].set(0, 0, 0);
}
},
clear: (src, key) => {
src[key].set(0, 0, 0);
}
});
registerType(Number, {
create: () => { return 0; },
reset: (src, key, defaultValue) => {
if (typeof defaultValue !== "undefined") {
src[key] = defaultValue;
} else {
src[key] = 0;
}
},
clear: (src, key) => {
src[key] = 0;
}
});
var schema = {
float: {default: 0, type: Number },
float2: {default: 0 },
vector3: { default: new Vector3(1,2,3), type: Vector3 }
};
var ComponentA = createComponent(schema, "ComponentA");
var ca = new ComponentA();
var cb = new ComponentA();
ca.vector3.set(1,2,3);
ca.float = 0.5;
cb.vector3.set(4,5,6);
cb.float = 1.5;
console.log('ca', ca.vector3, ca.float);
console.log('cb', cb.vector3, cb.float);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment