UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

76 lines 4.52 kB
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