pixospritz-core 0.10.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +36 -286
  2. package/dist/bundle.js +13 -3
  3. package/dist/bundle.js.map +1 -1
  4. package/dist/style.css +1 -0
  5. package/package.json +43 -44
  6. package/src/components/WebGLView.jsx +318 -0
  7. package/src/css/pixos.css +372 -0
  8. package/src/engine/actions/animate.js +41 -0
  9. package/src/engine/actions/changezone.js +135 -0
  10. package/src/engine/actions/chat.js +109 -0
  11. package/src/engine/actions/dialogue.js +90 -0
  12. package/src/engine/actions/face.js +22 -0
  13. package/src/engine/actions/greeting.js +28 -0
  14. package/src/engine/actions/interact.js +86 -0
  15. package/src/engine/actions/move.js +67 -0
  16. package/src/engine/actions/patrol.js +109 -0
  17. package/src/engine/actions/prompt.js +185 -0
  18. package/src/engine/actions/script.js +42 -0
  19. package/src/engine/core/audio/AudioSystem.js +543 -0
  20. package/src/engine/core/cutscene/PxcPlayer.js +956 -0
  21. package/src/engine/core/cutscene/manager.js +243 -0
  22. package/src/engine/core/database/index.js +75 -0
  23. package/src/engine/core/debug/index.js +371 -0
  24. package/src/engine/core/hud/index.js +765 -0
  25. package/src/engine/core/index.js +540 -0
  26. package/src/engine/core/input/gamepad/Controller.js +71 -0
  27. package/src/engine/core/input/gamepad/ControllerButtons.js +231 -0
  28. package/src/engine/core/input/gamepad/ControllerStick.js +173 -0
  29. package/src/engine/core/input/gamepad/index.js +592 -0
  30. package/src/engine/core/input/keyboard.js +196 -0
  31. package/src/engine/core/input/manager.js +485 -0
  32. package/src/engine/core/input/mouse.js +203 -0
  33. package/src/engine/core/input/touch.js +175 -0
  34. package/src/engine/core/mode/manager.js +199 -0
  35. package/src/engine/core/net/manager.js +535 -0
  36. package/src/engine/core/queue/action.js +83 -0
  37. package/src/engine/core/queue/event.js +82 -0
  38. package/src/engine/core/queue/index.js +44 -0
  39. package/src/engine/core/queue/loadable.js +33 -0
  40. package/src/engine/core/render/CameraEffects.js +494 -0
  41. package/src/engine/core/render/FrustumCuller.js +417 -0
  42. package/src/engine/core/render/LODManager.js +285 -0
  43. package/src/engine/core/render/ParticleManager.js +529 -0
  44. package/src/engine/core/render/TextureAtlas.js +465 -0
  45. package/src/engine/core/render/camera.js +338 -0
  46. package/src/engine/core/render/light.js +197 -0
  47. package/src/engine/core/render/manager.js +1079 -0
  48. package/src/engine/core/render/shaders.js +110 -0
  49. package/src/engine/core/render/skybox.js +342 -0
  50. package/src/engine/core/resource/manager.js +133 -0
  51. package/src/engine/core/resource/object.js +611 -0
  52. package/src/engine/core/resource/texture.js +103 -0
  53. package/src/engine/core/resource/tileset.js +177 -0
  54. package/src/engine/core/scene/avatar.js +215 -0
  55. package/src/engine/core/scene/speech.js +138 -0
  56. package/src/engine/core/scene/sprite.js +702 -0
  57. package/src/engine/core/scene/spritz.js +189 -0
  58. package/src/engine/core/scene/world.js +681 -0
  59. package/src/engine/core/scene/zone.js +1167 -0
  60. package/src/engine/core/store/index.js +110 -0
  61. package/src/engine/dynamic/animatedSprite.js +64 -0
  62. package/src/engine/dynamic/animatedTile.js +98 -0
  63. package/src/engine/dynamic/avatar.js +110 -0
  64. package/src/engine/dynamic/map.js +174 -0
  65. package/src/engine/dynamic/sprite.js +255 -0
  66. package/src/engine/dynamic/spritz.js +119 -0
  67. package/src/engine/events/EventSystem.js +609 -0
  68. package/src/engine/events/camera.js +142 -0
  69. package/src/engine/events/chat.js +75 -0
  70. package/src/engine/events/menu.js +186 -0
  71. package/src/engine/scripting/CallbackManager.js +514 -0
  72. package/src/engine/scripting/PixoScriptInterpreter.js +81 -0
  73. package/src/engine/scripting/PixoScriptLibrary.js +704 -0
  74. package/src/engine/shaders/effects/index.js +450 -0
  75. package/src/engine/shaders/fs.js +222 -0
  76. package/src/engine/shaders/particles/fs.js +41 -0
  77. package/src/engine/shaders/particles/vs.js +61 -0
  78. package/src/engine/shaders/picker/fs.js +34 -0
  79. package/src/engine/shaders/picker/init.js +62 -0
  80. package/src/engine/shaders/picker/vs.js +42 -0
  81. package/src/engine/shaders/pxsl/README.md +250 -0
  82. package/src/engine/shaders/pxsl/index.js +25 -0
  83. package/src/engine/shaders/pxsl/library.js +608 -0
  84. package/src/engine/shaders/pxsl/manager.js +338 -0
  85. package/src/engine/shaders/pxsl/specification.js +363 -0
  86. package/src/engine/shaders/pxsl/transpiler.js +753 -0
  87. package/src/engine/shaders/skybox/cosmic/fs.js +147 -0
  88. package/src/engine/shaders/skybox/cosmic/vs.js +23 -0
  89. package/src/engine/shaders/skybox/matrix/fs.js +127 -0
  90. package/src/engine/shaders/skybox/matrix/vs.js +23 -0
  91. package/src/engine/shaders/skybox/morning/fs.js +109 -0
  92. package/src/engine/shaders/skybox/morning/vs.js +23 -0
  93. package/src/engine/shaders/skybox/neon/fs.js +119 -0
  94. package/src/engine/shaders/skybox/neon/vs.js +23 -0
  95. package/src/engine/shaders/skybox/sky/fs.js +114 -0
  96. package/src/engine/shaders/skybox/sky/vs.js +23 -0
  97. package/src/engine/shaders/skybox/sunset/fs.js +101 -0
  98. package/src/engine/shaders/skybox/sunset/vs.js +23 -0
  99. package/src/engine/shaders/transition/blur/fs.js +42 -0
  100. package/src/engine/shaders/transition/blur/vs.js +26 -0
  101. package/src/engine/shaders/transition/cross/fs.js +36 -0
  102. package/src/engine/shaders/transition/cross/vs.js +26 -0
  103. package/src/engine/shaders/transition/crossBlur/fs.js +41 -0
  104. package/src/engine/shaders/transition/crossBlur/vs.js +25 -0
  105. package/src/engine/shaders/transition/dissolve/fs.js +78 -0
  106. package/src/engine/shaders/transition/dissolve/vs.js +24 -0
  107. package/src/engine/shaders/transition/fade/fs.js +31 -0
  108. package/src/engine/shaders/transition/fade/vs.js +27 -0
  109. package/src/engine/shaders/transition/iris/fs.js +52 -0
  110. package/src/engine/shaders/transition/iris/vs.js +24 -0
  111. package/src/engine/shaders/transition/pixelate/fs.js +44 -0
  112. package/src/engine/shaders/transition/pixelate/vs.js +24 -0
  113. package/src/engine/shaders/transition/slide/fs.js +53 -0
  114. package/src/engine/shaders/transition/slide/vs.js +24 -0
  115. package/src/engine/shaders/transition/swirl/fs.js +39 -0
  116. package/src/engine/shaders/transition/swirl/vs.js +26 -0
  117. package/src/engine/shaders/transition/wipe/fs.js +50 -0
  118. package/src/engine/shaders/transition/wipe/vs.js +24 -0
  119. package/src/engine/shaders/vs.js +60 -0
  120. package/src/engine/utils/CameraController.js +506 -0
  121. package/src/engine/utils/ObjHelper.js +551 -0
  122. package/src/engine/utils/debug-logger.js +110 -0
  123. package/src/engine/utils/enums.js +305 -0
  124. package/src/engine/utils/generator.js +156 -0
  125. package/src/engine/utils/index.js +21 -0
  126. package/src/engine/utils/loaders/ActionLoader.js +77 -0
  127. package/src/engine/utils/loaders/AudioLoader.js +157 -0
  128. package/src/engine/utils/loaders/EventLoader.js +66 -0
  129. package/src/engine/utils/loaders/ObjectLoader.js +67 -0
  130. package/src/engine/utils/loaders/SpriteLoader.js +77 -0
  131. package/src/engine/utils/loaders/TilesetLoader.js +103 -0
  132. package/src/engine/utils/loaders/index.js +21 -0
  133. package/src/engine/utils/math/matrix4.js +367 -0
  134. package/src/engine/utils/math/vector.js +458 -0
  135. package/src/engine/utils/obj/_old_js/index.js +46 -0
  136. package/src/engine/utils/obj/_old_js/layout.js +308 -0
  137. package/src/engine/utils/obj/_old_js/material.js +711 -0
  138. package/src/engine/utils/obj/_old_js/mesh.js +761 -0
  139. package/src/engine/utils/obj/_old_js/utils.js +647 -0
  140. package/src/engine/utils/obj/index.js +24 -0
  141. package/src/engine/utils/obj/js/index.js +277 -0
  142. package/src/engine/utils/obj/js/loader.js +232 -0
  143. package/src/engine/utils/obj/layout.js +246 -0
  144. package/src/engine/utils/obj/material.js +665 -0
  145. package/src/engine/utils/obj/mesh.js +657 -0
  146. package/src/engine/utils/obj/ts/index.ts +72 -0
  147. package/src/engine/utils/obj/ts/layout.ts +265 -0
  148. package/src/engine/utils/obj/ts/material.ts +760 -0
  149. package/src/engine/utils/obj/ts/mesh.ts +785 -0
  150. package/src/engine/utils/obj/ts/utils.ts +501 -0
  151. package/src/engine/utils/obj/utils.js +428 -0
  152. package/src/engine/utils/resources.js +18 -0
  153. package/src/index.jsx +55 -0
  154. package/src/spritz/player.js +18 -0
  155. package/src/spritz/readme.md +18 -0
  156. package/LICENSE +0 -437
  157. package/dist/bundle.js.LICENSE.txt +0 -31
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __values = (this && this.__values) || function(o) {
18
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
19
+ if (m) return m.call(o);
20
+ if (o && typeof o.length === "number") return {
21
+ next: function () {
22
+ if (o && i >= o.length) o = void 0;
23
+ return { value: o && o[i++], done: !o };
24
+ }
25
+ };
26
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
+ };
28
+ exports.__esModule = true;
29
+ exports.Layout = exports.Attribute = exports.DuplicateAttributeException = exports.TYPES = void 0;
30
+ var TYPES;
31
+ (function (TYPES) {
32
+ TYPES["BYTE"] = "BYTE";
33
+ TYPES["UNSIGNED_BYTE"] = "UNSIGNED_BYTE";
34
+ TYPES["SHORT"] = "SHORT";
35
+ TYPES["UNSIGNED_SHORT"] = "UNSIGNED_SHORT";
36
+ TYPES["FLOAT"] = "FLOAT";
37
+ })(TYPES = exports.TYPES || (exports.TYPES = {}));
38
+ /**
39
+ * An exception for when two or more of the same attributes are found in the
40
+ * same layout.
41
+ * @private
42
+ */
43
+ var DuplicateAttributeException = /** @class */ (function (_super) {
44
+ __extends(DuplicateAttributeException, _super);
45
+ /**
46
+ * Create a DuplicateAttributeException
47
+ * @param {Attribute} attribute - The attribute that was found more than
48
+ * once in the {@link Layout}
49
+ */
50
+ function DuplicateAttributeException(attribute) {
51
+ return _super.call(this, "found duplicate attribute: ".concat(attribute.key)) || this;
52
+ }
53
+ return DuplicateAttributeException;
54
+ }(Error));
55
+ exports.DuplicateAttributeException = DuplicateAttributeException;
56
+ /**
57
+ * Represents how a vertex attribute should be packed into an buffer.
58
+ * @private
59
+ */
60
+ var Attribute = /** @class */ (function () {
61
+ /**
62
+ * Create an attribute. Do not call this directly, use the predefined
63
+ * constants.
64
+ * @param {string} key - The name of this attribute as if it were a key in
65
+ * an Object. Use the camel case version of the upper snake case
66
+ * const name.
67
+ * @param {number} size - The number of components per vertex attribute.
68
+ * Must be 1, 2, 3, or 4.
69
+ * @param {string} type - The data type of each component for this
70
+ * attribute. Possible values:<br/>
71
+ * "BYTE": signed 8-bit integer, with values in [-128, 127]<br/>
72
+ * "SHORT": signed 16-bit integer, with values in
73
+ * [-32768, 32767]<br/>
74
+ * "UNSIGNED_BYTE": unsigned 8-bit integer, with values in
75
+ * [0, 255]<br/>
76
+ * "UNSIGNED_SHORT": unsigned 16-bit integer, with values in
77
+ * [0, 65535]<br/>
78
+ * "FLOAT": 32-bit floating point number
79
+ * @param {boolean} normalized - Whether integer data values should be
80
+ * normalized when being casted to a float.<br/>
81
+ * If true, signed integers are normalized to [-1, 1].<br/>
82
+ * If true, unsigned integers are normalized to [0, 1].<br/>
83
+ * For type "FLOAT", this parameter has no effect.
84
+ */
85
+ function Attribute(key, size, type, normalized) {
86
+ if (normalized === void 0) { normalized = false; }
87
+ this.key = key;
88
+ this.size = size;
89
+ this.type = type;
90
+ this.normalized = normalized;
91
+ switch (type) {
92
+ case "BYTE":
93
+ case "UNSIGNED_BYTE":
94
+ this.sizeOfType = 1;
95
+ break;
96
+ case "SHORT":
97
+ case "UNSIGNED_SHORT":
98
+ this.sizeOfType = 2;
99
+ break;
100
+ case "FLOAT":
101
+ this.sizeOfType = 4;
102
+ break;
103
+ default:
104
+ throw new Error("Unknown gl type: ".concat(type));
105
+ }
106
+ this.sizeInBytes = this.sizeOfType * size;
107
+ }
108
+ return Attribute;
109
+ }());
110
+ exports.Attribute = Attribute;
111
+ /**
112
+ * A class to represent the memory layout for a vertex attribute array. Used by
113
+ * {@link Mesh}'s TBD(...) method to generate a packed array from mesh data.
114
+ * <p>
115
+ * Layout can sort of be thought of as a C-style struct declaration.
116
+ * {@link Mesh}'s TBD(...) method will use the {@link Layout} instance to
117
+ * pack an array in the given attribute order.
118
+ * <p>
119
+ * Layout also is very helpful when calling a WebGL context's
120
+ * <code>vertexAttribPointer</code> method. If you've created a buffer using
121
+ * a Layout instance, then the same Layout instance can be used to determine
122
+ * the size, type, normalized, stride, and offset parameters for
123
+ * <code>vertexAttribPointer</code>.
124
+ * <p>
125
+ * For example:
126
+ * <pre><code>
127
+ *
128
+ * const index = glctx.getAttribLocation(shaderProgram, "pos");
129
+ * glctx.vertexAttribPointer(
130
+ * layout.position.size,
131
+ * glctx[layout.position.type],
132
+ * layout.position.normalized,
133
+ * layout.position.stride,
134
+ * layout.position.offset);
135
+ * </code></pre>
136
+ * @see {@link Mesh}
137
+ */
138
+ var Layout = /** @class */ (function () {
139
+ /**
140
+ * Create a Layout object. This constructor will throw if any duplicate
141
+ * attributes are given.
142
+ * @param {Array} ...attributes - An ordered list of attributes that
143
+ * describe the desired memory layout for each vertex attribute.
144
+ * <p>
145
+ *
146
+ * @see {@link Mesh}
147
+ */
148
+ function Layout() {
149
+ var e_1, _a, e_2, _b;
150
+ var attributes = [];
151
+ for (var _i = 0; _i < arguments.length; _i++) {
152
+ attributes[_i] = arguments[_i];
153
+ }
154
+ this.attributes = attributes;
155
+ this.attributeMap = {};
156
+ var offset = 0;
157
+ var maxStrideMultiple = 0;
158
+ try {
159
+ for (var attributes_1 = __values(attributes), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) {
160
+ var attribute = attributes_1_1.value;
161
+ if (this.attributeMap[attribute.key]) {
162
+ throw new DuplicateAttributeException(attribute);
163
+ }
164
+ // Add padding to satisfy WebGL's requirement that all
165
+ // vertexAttribPointer calls have an offset that is a multiple of
166
+ // the type size.
167
+ if (offset % attribute.sizeOfType !== 0) {
168
+ offset += attribute.sizeOfType - (offset % attribute.sizeOfType);
169
+ console.warn("Layout requires padding before " + attribute.key + " attribute");
170
+ }
171
+ this.attributeMap[attribute.key] = {
172
+ attribute: attribute,
173
+ size: attribute.size,
174
+ type: attribute.type,
175
+ normalized: attribute.normalized,
176
+ offset: offset
177
+ };
178
+ offset += attribute.sizeInBytes;
179
+ maxStrideMultiple = Math.max(maxStrideMultiple, attribute.sizeOfType);
180
+ }
181
+ }
182
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
183
+ finally {
184
+ try {
185
+ if (attributes_1_1 && !attributes_1_1.done && (_a = attributes_1["return"])) _a.call(attributes_1);
186
+ }
187
+ finally { if (e_1) throw e_1.error; }
188
+ }
189
+ // Add padding to the end to satisfy WebGL's requirement that all
190
+ // vertexAttribPointer calls have a stride that is a multiple of the
191
+ // type size. Because we're putting differently sized attributes into
192
+ // the same buffer, it must be padded to a multiple of the largest
193
+ // type size.
194
+ if (offset % maxStrideMultiple !== 0) {
195
+ offset += maxStrideMultiple - (offset % maxStrideMultiple);
196
+ console.warn("Layout requires padding at the back");
197
+ }
198
+ this.stride = offset;
199
+ try {
200
+ for (var attributes_2 = __values(attributes), attributes_2_1 = attributes_2.next(); !attributes_2_1.done; attributes_2_1 = attributes_2.next()) {
201
+ var attribute = attributes_2_1.value;
202
+ this.attributeMap[attribute.key].stride = this.stride;
203
+ }
204
+ }
205
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
206
+ finally {
207
+ try {
208
+ if (attributes_2_1 && !attributes_2_1.done && (_b = attributes_2["return"])) _b.call(attributes_2);
209
+ }
210
+ finally { if (e_2) throw e_2.error; }
211
+ }
212
+ }
213
+ // Geometry attributes
214
+ /**
215
+ * Attribute layout to pack a vertex's x, y, & z as floats
216
+ *
217
+ * @see {@link Layout}
218
+ */
219
+ Layout.POSITION = new Attribute("position", 3, TYPES.FLOAT);
220
+ /**
221
+ * Attribute layout to pack a vertex's normal's x, y, & z as floats
222
+ *
223
+ * @see {@link Layout}
224
+ */
225
+ Layout.NORMAL = new Attribute("normal", 3, TYPES.FLOAT);
226
+ /**
227
+ * Attribute layout to pack a vertex's normal's x, y, & z as floats.
228
+ * <p>
229
+ * This value will be computed on-the-fly based on the texture coordinates.
230
+ * If no texture coordinates are available, the generated value will default to
231
+ * 0, 0, 0.
232
+ *
233
+ * @see {@link Layout}
234
+ */
235
+ Layout.TANGENT = new Attribute("tangent", 3, TYPES.FLOAT);
236
+ /**
237
+ * Attribute layout to pack a vertex's normal's bitangent x, y, & z as floats.
238
+ * <p>
239
+ * This value will be computed on-the-fly based on the texture coordinates.
240
+ * If no texture coordinates are available, the generated value will default to
241
+ * 0, 0, 0.
242
+ * @see {@link Layout}
243
+ */
244
+ Layout.BITANGENT = new Attribute("bitangent", 3, TYPES.FLOAT);
245
+ /**
246
+ * Attribute layout to pack a vertex's texture coordinates' u & v as floats
247
+ *
248
+ * @see {@link Layout}
249
+ */
250
+ Layout.UV = new Attribute("uv", 2, TYPES.FLOAT);
251
+ // Material attributes
252
+ /**
253
+ * Attribute layout to pack an unsigned short to be interpreted as a the index
254
+ * into a {@link Mesh}'s materials list.
255
+ * <p>
256
+ * The intention of this value is to send all of the {@link Mesh}'s materials
257
+ * into multiple shader uniforms and then reference the current one by this
258
+ * vertex attribute.
259
+ * <p>
260
+ * example glsl code:
261
+ *
262
+ * <pre><code>
263
+ * // this is bound using MATERIAL_INDEX
264
+ * attribute int materialIndex;
265
+ *
266
+ * struct Material {
267
+ * vec3 diffuse;
268
+ * vec3 specular;
269
+ * vec3 specularExponent;
270
+ * };
271
+ *
272
+ * uniform Material materials[MAX_MATERIALS];
273
+ *
274
+ * // ...
275
+ *
276
+ * vec3 diffuse = materials[materialIndex];
277
+ *
278
+ * </code></pre>
279
+ * TODO: More description & test to make sure subscripting by attributes even
280
+ * works for webgl
281
+ *
282
+ * @see {@link Layout}
283
+ */
284
+ Layout.MATERIAL_INDEX = new Attribute("materialIndex", 1, TYPES.SHORT);
285
+ Layout.MATERIAL_ENABLED = new Attribute("materialEnabled", 1, TYPES.UNSIGNED_SHORT);
286
+ Layout.AMBIENT = new Attribute("ambient", 3, TYPES.FLOAT);
287
+ Layout.DIFFUSE = new Attribute("diffuse", 3, TYPES.FLOAT);
288
+ Layout.SPECULAR = new Attribute("specular", 3, TYPES.FLOAT);
289
+ Layout.SPECULAR_EXPONENT = new Attribute("specularExponent", 3, TYPES.FLOAT);
290
+ Layout.EMISSIVE = new Attribute("emissive", 3, TYPES.FLOAT);
291
+ Layout.TRANSMISSION_FILTER = new Attribute("transmissionFilter", 3, TYPES.FLOAT);
292
+ Layout.DISSOLVE = new Attribute("dissolve", 1, TYPES.FLOAT);
293
+ Layout.ILLUMINATION = new Attribute("illumination", 1, TYPES.UNSIGNED_SHORT);
294
+ Layout.REFRACTION_INDEX = new Attribute("refractionIndex", 1, TYPES.FLOAT);
295
+ Layout.SHARPNESS = new Attribute("sharpness", 1, TYPES.FLOAT);
296
+ Layout.MAP_DIFFUSE = new Attribute("mapDiffuse", 1, TYPES.SHORT);
297
+ Layout.MAP_AMBIENT = new Attribute("mapAmbient", 1, TYPES.SHORT);
298
+ Layout.MAP_SPECULAR = new Attribute("mapSpecular", 1, TYPES.SHORT);
299
+ Layout.MAP_SPECULAR_EXPONENT = new Attribute("mapSpecularExponent", 1, TYPES.SHORT);
300
+ Layout.MAP_DISSOLVE = new Attribute("mapDissolve", 1, TYPES.SHORT);
301
+ Layout.ANTI_ALIASING = new Attribute("antiAliasing", 1, TYPES.UNSIGNED_SHORT);
302
+ Layout.MAP_BUMP = new Attribute("mapBump", 1, TYPES.SHORT);
303
+ Layout.MAP_DISPLACEMENT = new Attribute("mapDisplacement", 1, TYPES.SHORT);
304
+ Layout.MAP_DECAL = new Attribute("mapDecal", 1, TYPES.SHORT);
305
+ Layout.MAP_EMISSIVE = new Attribute("mapEmissive", 1, TYPES.SHORT);
306
+ return Layout;
307
+ }());
308
+ exports.Layout = Layout;