lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
248 lines • 8.22 kB
JavaScript
import { texturedStandardDefaults, texturedStandardSchema } from "../../../interface/ITexturedStandard";
import getDefaultValue from "../../../interface/utils/getDefaultValue";
import { color } from "../../utils/reusables";
import MeshAppendable from "../MeshAppendable";
import { toFixedPoint, toNullableFixed } from "../../../api/serializer/toFixed";
import { isPoint } from "../../../utils/isPoint";
import { refreshTexturedStandardSystem } from "../../../systems/configSystems/refreshTexturedStandardSystem";
import { configCastShadowSystem } from "../../../systems/configLoadedSystems/configCastShadowSystem";
const standardDefaults = Object.fromEntries(Object.entries(texturedStandardSchema).map(([key]) => [
key,
structuredClone(getDefaultValue(texturedStandardDefaults, key, true))
]));
export default class TexturedStandardMixin extends MeshAppendable {
get $material() {
return this.object3d.material;
}
set $material(val) {
this.object3d.material = val;
}
_defaults;
get $defaults() {
return (this._defaults ??= standardDefaults);
}
_materialParams;
get $materialParams() {
return (this._materialParams ??= Object.values(this.$defaults));
}
get color() {
return this.$materialParams[0];
}
set color(val) {
this.$materialParams[0] = val
? "#" + color.set(val).getHexString()
: this.$defaults.color;
refreshTexturedStandardSystem.add(this);
}
get opacity() {
return this.$materialParams[1];
}
set opacity(val) {
this.$materialParams[1] = toNullableFixed(val) ?? this.$defaults.opacity;
refreshTexturedStandardSystem.add(this);
configCastShadowSystem.add(this);
}
get texture() {
return this.$materialParams[2];
}
set texture(val) {
this.$materialParams[2] = val ?? this.$defaults.texture;
refreshTexturedStandardSystem.add(this);
}
get alphaMap() {
return this.$materialParams[3];
}
set alphaMap(val) {
this.$materialParams[3] = val ?? this.$defaults.alphaMap;
refreshTexturedStandardSystem.add(this);
}
get textureRepeat() {
return this.$materialParams[4];
}
set textureRepeat(val) {
this.$materialParams[4] =
(isPoint(val) ? toFixedPoint(val) : toNullableFixed(val)) ??
this.$defaults.textureRepeat;
refreshTexturedStandardSystem.add(this);
}
get textureFlipY() {
return this.$materialParams[5];
}
set textureFlipY(val) {
this.$materialParams[5] = val ?? this.$defaults.textureFlipY;
refreshTexturedStandardSystem.add(this);
}
get textureRotation() {
return this.$materialParams[6];
}
set textureRotation(val) {
this.$materialParams[6] =
toNullableFixed(val) ?? this.$defaults.textureRotation;
refreshTexturedStandardSystem.add(this);
}
get wireframe() {
return this.$materialParams[7];
}
set wireframe(val) {
this.$materialParams[7] = val ?? this.$defaults.wireframe;
refreshTexturedStandardSystem.add(this);
}
get envMap() {
return this.$materialParams[8];
}
set envMap(val) {
this.$materialParams[8] = val ?? this.$defaults.envMap;
refreshTexturedStandardSystem.add(this);
}
get envMapIntensity() {
return this.$materialParams[9];
}
set envMapIntensity(val) {
this.$materialParams[9] =
toNullableFixed(val) ?? this.$defaults.envMapIntensity;
refreshTexturedStandardSystem.add(this);
}
get aoMap() {
return this.$materialParams[10];
}
set aoMap(val) {
this.$materialParams[10] = val ?? this.$defaults.aoMap;
refreshTexturedStandardSystem.add(this);
}
get aoMapIntensity() {
return this.$materialParams[11];
}
set aoMapIntensity(val) {
this.$materialParams[11] =
toNullableFixed(val) ?? this.$defaults.aoMapIntensity;
refreshTexturedStandardSystem.add(this);
}
get bumpMap() {
return this.$materialParams[12];
}
set bumpMap(val) {
this.$materialParams[12] = val ?? this.$defaults.bumpMap;
refreshTexturedStandardSystem.add(this);
}
get bumpScale() {
return this.$materialParams[13];
}
set bumpScale(val) {
this.$materialParams[13] =
toNullableFixed(val) ?? this.$defaults.bumpScale;
refreshTexturedStandardSystem.add(this);
}
get displacementMap() {
return this.$materialParams[14];
}
set displacementMap(val) {
this.$materialParams[14] = val ?? this.$defaults.displacementMap;
refreshTexturedStandardSystem.add(this);
}
get displacementScale() {
return this.$materialParams[15];
}
set displacementScale(val) {
this.$materialParams[15] =
toNullableFixed(val) ?? this.$defaults.displacementScale;
refreshTexturedStandardSystem.add(this);
}
get displacementBias() {
return this.$materialParams[16];
}
set displacementBias(val) {
this.$materialParams[16] =
toNullableFixed(val) ?? this.$defaults.displacementBias;
refreshTexturedStandardSystem.add(this);
}
get emissive() {
return this.$materialParams[17];
}
set emissive(val) {
this.$materialParams[17] = val ?? this.$defaults.emissive;
refreshTexturedStandardSystem.add(this);
}
get emissiveIntensity() {
return this.$materialParams[18];
}
set emissiveIntensity(val) {
this.$materialParams[18] =
toNullableFixed(val) ?? this.$defaults.emissiveIntensity;
refreshTexturedStandardSystem.add(this);
}
get lightMap() {
return this.$materialParams[19];
}
set lightMap(val) {
this.$materialParams[19] = val ?? this.$defaults.lightMap;
refreshTexturedStandardSystem.add(this);
}
get lightMapIntensity() {
return this.$materialParams[20];
}
set lightMapIntensity(val) {
this.$materialParams[20] =
toNullableFixed(val) ?? this.$defaults.lightMapIntensity;
refreshTexturedStandardSystem.add(this);
}
get metalnessMap() {
return this.$materialParams[21];
}
set metalnessMap(val) {
this.$materialParams[21] = val ?? this.$defaults.metalnessMap;
refreshTexturedStandardSystem.add(this);
}
get metalness() {
return this.$materialParams[22];
}
set metalness(val) {
this.$materialParams[22] =
toNullableFixed(val) ?? this.$defaults.metalness;
refreshTexturedStandardSystem.add(this);
}
get roughnessMap() {
return this.$materialParams[23];
}
set roughnessMap(val) {
this.$materialParams[23] = val ?? this.$defaults.roughnessMap;
refreshTexturedStandardSystem.add(this);
}
get roughness() {
return this.$materialParams[24];
}
set roughness(val) {
this.$materialParams[24] =
toNullableFixed(val) ?? this.$defaults.roughness;
refreshTexturedStandardSystem.add(this);
}
get normalMap() {
return this.$materialParams[25];
}
set normalMap(val) {
this.$materialParams[25] = val ?? this.$defaults.normalMap;
refreshTexturedStandardSystem.add(this);
}
get normalScale() {
return this.$materialParams[26];
}
set normalScale(val) {
this.$materialParams[26] =
toNullableFixed(val) ?? this.$defaults.normalScale;
refreshTexturedStandardSystem.add(this);
}
get depthTest() {
return this.$materialParams[27];
}
set depthTest(val) {
this.$materialParams[27] = val ?? this.$defaults.depthTest;
refreshTexturedStandardSystem.add(this);
}
get blending() {
return this.$materialParams[28];
}
set blending(val) {
this.$materialParams[28] = val ?? this.$defaults.blending;
refreshTexturedStandardSystem.add(this);
}
}
//# sourceMappingURL=TexturedStandardMixin.js.map