@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
76 lines • 4.52 kB
JavaScript
import { TgdPainterSprites } from "./sprites.js";
import { tgdCodeFunction_shiftHue } from "./../../code/index.js";
import { TgdPainterSpritesAbstract } from "./sprites-abstract.js";
export class TgdPainterSpritesHue extends TgdPainterSpritesAbstract {
constructor(context, options) {
super();
this.parent = new TgdPainterSprites(context, {
...options,
attributes: {
attHue: "float",
},
attributesSetter(attributes, key, value, offset) {
if (key !== "hue" || typeof value !== "number")
return;
attributes.attHue.set(value, offset);
},
varyings: {
varHue: "float",
},
vert: {
code: ["varHue = attHue;"],
},
frag: {
functions: tgdCodeFunction_shiftHue(),
code: ["color.rgb = shiftHue(color.rgb, varHue);"],
},
});
}
get count() {
return this.parent.count;
}
get capacity() {
return this.parent.capacity;
}
list() {
return this.parent.list();
}
forEach(callback) {
this.parent.forEach(callback);
}
filter(test) {
return this.parent.filter(test);
}
/**
* Delete all sprites.
*/
clear() {
this.parent.clear();
}
add(data) {
const info = {
hue: 0,
...data,
};
const sprite = this.parent.add(info);
sprite.hue = info.hue;
return sprite;
}
remove(sprite) {
this.parent.remove(sprite);
}
// protected updateAccessors() {
// super.updateAccessors()
// this.attributes.attHue.dataset = this.datasetInstances
// }
delete() {
this.parent.delete();
}
paint() {
this.parent.paint();
}
debug(caption) {
this.parent.debug(caption);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlcy1odWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zcHJpdGVzL3Nwcml0ZXMtaHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxXQUFXLENBQUE7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBSTlELE1BQU0sT0FBTyxvQkFBNEQsU0FBUSx5QkFHaEY7SUFHRyxZQUFZLE9BQW1CLEVBQUUsT0FBaUM7UUFDOUQsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUksT0FBTyxFQUFFO1lBQzVDLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsT0FBTzthQUNsQjtZQUNELGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU07Z0JBQzNDLElBQUksR0FBRyxLQUFLLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO29CQUFFLE9BQU07Z0JBRXRELFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN4QyxDQUFDO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxPQUFPO2FBQ2xCO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzdCO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLFNBQVMsRUFBRSx3QkFBd0IsRUFBRTtnQkFDckMsSUFBSSxFQUFFLENBQUMsMENBQTBDLENBQUM7YUFDckQ7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUM1QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtJQUMvQixDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQTZCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBNEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQTBEO1FBQzFELE1BQU0sSUFBSSxHQUFHO1lBQ1QsR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLElBQUk7U0FDMkMsQ0FBQTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDckIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFzQjtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtJQUM5Qiw2REFBNkQ7SUFDN0QsSUFBSTtJQUVKLE1BQU07UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWdCO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlCLENBQUM7Q0FDSiJ9