UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

97 lines 2.68 kB
import { Sprite as ThreeSprite, SpriteMaterial } from "three"; import { spriteDefaults, spriteSchema } from "../interface/ISprite"; import PhysicsObjectManager from "./core/PhysicsObjectManager"; import { Point } from "@lincode/math"; import { castBackBlending, castBlending } from "./utils/castBlending"; import { ssrExcludeSet } from "../collections/ssrExcludeSet"; import { configSpriteSystem } from "../systems/configSystems/configSpriteSystem"; class Sprite extends PhysicsObjectManager { static componentName = "sprite"; static defaults = spriteDefaults; static schema = spriteSchema; $material; constructor() { const material = new SpriteMaterial({ transparent: true }); super(new ThreeSprite(material)); this.$material = material; ssrExcludeSet.add(this.outerObject3d); } disposeNode() { super.disposeNode(); ssrExcludeSet.delete(this.outerObject3d); } get depth() { return 0; } set depth(_) { } get scaleZ() { return 0; } set scaleZ(_) { } _texture; get texture() { return this._texture; } set texture(val) { this._texture = val; configSpriteSystem.add(this); } _alphaMap; get alphaMap() { return this._alphaMap; } set alphaMap(val) { this._alphaMap = val; configSpriteSystem.add(this); } get color() { return ("#" + this.$material.color.getHexString()); } set color(val) { this.$material.color.set(val); } get opacity() { return this.$material.opacity; } set opacity(val) { this.$material.opacity = val; } _textureRepeat = new Point(1, 1); get textureRepeat() { return this._textureRepeat; } set textureRepeat(val) { this._textureRepeat = val; configSpriteSystem.add(this); } _textureFlipY = false; get textureFlipY() { return this._textureFlipY; } set textureFlipY(val) { this._textureFlipY = val; configSpriteSystem.add(this); } _textureRotation = 0; get textureRotation() { return this._textureRotation; } set textureRotation(val) { this._textureRotation = val; configSpriteSystem.add(this); } get depthTest() { return this.$material.depthTest; } set depthTest(val) { this.$material.depthTest = val; } get blending() { return castBackBlending(this.$material.blending); } set blending(val) { this.$material.blending = castBlending(val); } } export default Sprite; //# sourceMappingURL=Sprite.js.map