@esotericsoftware/spine-core 4.0.7 → 4.0.11
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.
- package/dist/Animation.js +577 -710
- package/dist/AnimationState.js +239 -259
- package/dist/AnimationStateData.js +15 -17
- package/dist/AssetManagerBase.d.ts +3 -0
- package/dist/AssetManagerBase.js +168 -147
- package/dist/AtlasAttachmentLoader.js +20 -22
- package/dist/Bone.js +89 -91
- package/dist/BoneData.js +4 -6
- package/dist/ConstraintData.js +4 -6
- package/dist/Event.js +4 -6
- package/dist/EventData.js +4 -6
- package/dist/IkConstraint.js +48 -50
- package/dist/IkConstraintData.js +12 -31
- package/dist/PathConstraint.js +116 -118
- package/dist/PathConstraintData.js +9 -28
- package/dist/Skeleton.d.ts +0 -4
- package/dist/Skeleton.js +190 -213
- package/dist/SkeletonBinary.js +352 -363
- package/dist/SkeletonBounds.js +79 -81
- package/dist/SkeletonClipping.js +86 -88
- package/dist/SkeletonData.d.ts +0 -2
- package/dist/SkeletonData.js +46 -66
- package/dist/SkeletonJson.js +307 -307
- package/dist/Skin.js +65 -69
- package/dist/Slot.js +16 -18
- package/dist/SlotData.js +4 -6
- package/dist/Texture.js +14 -39
- package/dist/TextureAtlas.js +56 -85
- package/dist/TransformConstraint.js +77 -79
- package/dist/TransformConstraintData.js +20 -39
- package/dist/Triangulator.js +71 -73
- package/dist/Updatable.js +1 -1
- package/dist/Utils.js +183 -245
- package/dist/VertexEffect.js +1 -1
- package/dist/attachments/Attachment.js +41 -62
- package/dist/attachments/AttachmentLoader.js +1 -1
- package/dist/attachments/BoundingBoxAttachment.js +9 -28
- package/dist/attachments/ClippingAttachment.js +9 -28
- package/dist/attachments/MeshAttachment.js +29 -48
- package/dist/attachments/PathAttachment.js +11 -30
- package/dist/attachments/PointAttachment.js +16 -35
- package/dist/attachments/RegionAttachment.js +82 -101
- package/dist/attachments/index.js +1 -1
- package/dist/iife/spine-core.js +89 -85
- package/dist/iife/spine-core.js.map +2 -2
- package/dist/iife/spine-core.min.js +2 -2
- package/dist/index.js +1 -1
- package/dist/polyfills.js +2 -2
- package/dist/vertexeffects/JitterEffect.js +10 -12
- package/dist/vertexeffects/SwirlEffect.js +18 -20
- package/package.json +1 -1
- package/dist/Animation.js.map +0 -1
- package/dist/AnimationState.js.map +0 -1
- package/dist/AnimationStateData.js.map +0 -1
- package/dist/AssetManagerBase.js.map +0 -1
- package/dist/AtlasAttachmentLoader.js.map +0 -1
- package/dist/Bone.js.map +0 -1
- package/dist/BoneData.js.map +0 -1
- package/dist/ConstraintData.js.map +0 -1
- package/dist/Event.js.map +0 -1
- package/dist/EventData.js.map +0 -1
- package/dist/IkConstraint.js.map +0 -1
- package/dist/IkConstraintData.js.map +0 -1
- package/dist/PathConstraint.js.map +0 -1
- package/dist/PathConstraintData.js.map +0 -1
- package/dist/Skeleton.js.map +0 -1
- package/dist/SkeletonBinary.js.map +0 -1
- package/dist/SkeletonBounds.js.map +0 -1
- package/dist/SkeletonClipping.js.map +0 -1
- package/dist/SkeletonData.js.map +0 -1
- package/dist/SkeletonJson.js.map +0 -1
- package/dist/Skin.js.map +0 -1
- package/dist/Slot.js.map +0 -1
- package/dist/SlotData.js.map +0 -1
- package/dist/Texture.js.map +0 -1
- package/dist/TextureAtlas.js.map +0 -1
- package/dist/TransformConstraint.js.map +0 -1
- package/dist/TransformConstraintData.js.map +0 -1
- package/dist/Triangulator.js.map +0 -1
- package/dist/Updatable.js.map +0 -1
- package/dist/Utils.js.map +0 -1
- package/dist/VertexEffect.js.map +0 -1
- package/dist/attachments/Attachment.js.map +0 -1
- package/dist/attachments/AttachmentLoader.js.map +0 -1
- package/dist/attachments/BoundingBoxAttachment.js.map +0 -1
- package/dist/attachments/ClippingAttachment.js.map +0 -1
- package/dist/attachments/MeshAttachment.js.map +0 -1
- package/dist/attachments/PathAttachment.js.map +0 -1
- package/dist/attachments/PointAttachment.js.map +0 -1
- package/dist/attachments/RegionAttachment.js.map +0 -1
- package/dist/attachments/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/polyfills.js.map +0 -1
- package/dist/vertexeffects/JitterEffect.js.map +0 -1
- package/dist/vertexeffects/SwirlEffect.js.map +0 -1
package/dist/Skin.js
CHANGED
|
@@ -28,21 +28,19 @@
|
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { MeshAttachment } from "./attachments/MeshAttachment";
|
|
30
30
|
/** Stores an entry in the skin consisting of the slot index, name, and attachment **/
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
export class SkinEntry {
|
|
32
|
+
constructor(slotIndex, name, attachment) {
|
|
33
33
|
this.slotIndex = slotIndex;
|
|
34
34
|
this.name = name;
|
|
35
35
|
this.attachment = attachment;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
}());
|
|
39
|
-
export { SkinEntry };
|
|
37
|
+
}
|
|
40
38
|
/** Stores attachments by slot index and attachment name.
|
|
41
39
|
*
|
|
42
40
|
* See SkeletonData {@link SkeletonData#defaultSkin}, Skeleton {@link Skeleton#skin}, and
|
|
43
41
|
* [Runtime skins](http://esotericsoftware.com/spine-runtime-skins) in the Spine Runtimes Guide. */
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
export class Skin {
|
|
43
|
+
constructor(name) {
|
|
46
44
|
this.attachments = new Array();
|
|
47
45
|
this.bones = Array();
|
|
48
46
|
this.constraints = new Array();
|
|
@@ -51,22 +49,22 @@ var Skin = /** @class */ (function () {
|
|
|
51
49
|
this.name = name;
|
|
52
50
|
}
|
|
53
51
|
/** Adds an attachment to the skin for the specified slot index and name. */
|
|
54
|
-
|
|
52
|
+
setAttachment(slotIndex, name, attachment) {
|
|
55
53
|
if (!attachment)
|
|
56
54
|
throw new Error("attachment cannot be null.");
|
|
57
|
-
|
|
55
|
+
let attachments = this.attachments;
|
|
58
56
|
if (slotIndex >= attachments.length)
|
|
59
57
|
attachments.length = slotIndex + 1;
|
|
60
58
|
if (!attachments[slotIndex])
|
|
61
59
|
attachments[slotIndex] = {};
|
|
62
60
|
attachments[slotIndex][name] = attachment;
|
|
63
|
-
}
|
|
61
|
+
}
|
|
64
62
|
/** Adds all attachments, bones, and constraints from the specified skin to this skin. */
|
|
65
|
-
|
|
66
|
-
for (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
for (
|
|
63
|
+
addSkin(skin) {
|
|
64
|
+
for (let i = 0; i < skin.bones.length; i++) {
|
|
65
|
+
let bone = skin.bones[i];
|
|
66
|
+
let contained = false;
|
|
67
|
+
for (let ii = 0; ii < this.bones.length; ii++) {
|
|
70
68
|
if (this.bones[ii] == bone) {
|
|
71
69
|
contained = true;
|
|
72
70
|
break;
|
|
@@ -75,10 +73,10 @@ var Skin = /** @class */ (function () {
|
|
|
75
73
|
if (!contained)
|
|
76
74
|
this.bones.push(bone);
|
|
77
75
|
}
|
|
78
|
-
for (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
for (
|
|
76
|
+
for (let i = 0; i < skin.constraints.length; i++) {
|
|
77
|
+
let constraint = skin.constraints[i];
|
|
78
|
+
let contained = false;
|
|
79
|
+
for (let ii = 0; ii < this.constraints.length; ii++) {
|
|
82
80
|
if (this.constraints[ii] == constraint) {
|
|
83
81
|
contained = true;
|
|
84
82
|
break;
|
|
@@ -87,19 +85,19 @@ var Skin = /** @class */ (function () {
|
|
|
87
85
|
if (!contained)
|
|
88
86
|
this.constraints.push(constraint);
|
|
89
87
|
}
|
|
90
|
-
|
|
91
|
-
for (
|
|
88
|
+
let attachments = skin.getAttachments();
|
|
89
|
+
for (let i = 0; i < attachments.length; i++) {
|
|
92
90
|
var attachment = attachments[i];
|
|
93
91
|
this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment);
|
|
94
92
|
}
|
|
95
|
-
}
|
|
93
|
+
}
|
|
96
94
|
/** Adds all bones and constraints and copies of all attachments from the specified skin to this skin. Mesh attachments are not
|
|
97
95
|
* copied, instead a new linked mesh is created. The attachment copies can be modified without affecting the originals. */
|
|
98
|
-
|
|
99
|
-
for (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
for (
|
|
96
|
+
copySkin(skin) {
|
|
97
|
+
for (let i = 0; i < skin.bones.length; i++) {
|
|
98
|
+
let bone = skin.bones[i];
|
|
99
|
+
let contained = false;
|
|
100
|
+
for (let ii = 0; ii < this.bones.length; ii++) {
|
|
103
101
|
if (this.bones[ii] == bone) {
|
|
104
102
|
contained = true;
|
|
105
103
|
break;
|
|
@@ -108,10 +106,10 @@ var Skin = /** @class */ (function () {
|
|
|
108
106
|
if (!contained)
|
|
109
107
|
this.bones.push(bone);
|
|
110
108
|
}
|
|
111
|
-
for (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
for (
|
|
109
|
+
for (let i = 0; i < skin.constraints.length; i++) {
|
|
110
|
+
let constraint = skin.constraints[i];
|
|
111
|
+
let contained = false;
|
|
112
|
+
for (let ii = 0; ii < this.constraints.length; ii++) {
|
|
115
113
|
if (this.constraints[ii] == constraint) {
|
|
116
114
|
contained = true;
|
|
117
115
|
break;
|
|
@@ -120,8 +118,8 @@ var Skin = /** @class */ (function () {
|
|
|
120
118
|
if (!contained)
|
|
121
119
|
this.constraints.push(constraint);
|
|
122
120
|
}
|
|
123
|
-
|
|
124
|
-
for (
|
|
121
|
+
let attachments = skin.getAttachments();
|
|
122
|
+
for (let i = 0; i < attachments.length; i++) {
|
|
125
123
|
var attachment = attachments[i];
|
|
126
124
|
if (!attachment.attachment)
|
|
127
125
|
continue;
|
|
@@ -134,62 +132,62 @@ var Skin = /** @class */ (function () {
|
|
|
134
132
|
this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment);
|
|
135
133
|
}
|
|
136
134
|
}
|
|
137
|
-
}
|
|
135
|
+
}
|
|
138
136
|
/** Returns the attachment for the specified slot index and name, or null. */
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
getAttachment(slotIndex, name) {
|
|
138
|
+
let dictionary = this.attachments[slotIndex];
|
|
141
139
|
return dictionary ? dictionary[name] : null;
|
|
142
|
-
}
|
|
140
|
+
}
|
|
143
141
|
/** Removes the attachment in the skin for the specified slot index and name, if any. */
|
|
144
|
-
|
|
145
|
-
|
|
142
|
+
removeAttachment(slotIndex, name) {
|
|
143
|
+
let dictionary = this.attachments[slotIndex];
|
|
146
144
|
if (dictionary)
|
|
147
145
|
dictionary[name] = null;
|
|
148
|
-
}
|
|
146
|
+
}
|
|
149
147
|
/** Returns all attachments in this skin. */
|
|
150
|
-
|
|
151
|
-
|
|
148
|
+
getAttachments() {
|
|
149
|
+
let entries = new Array();
|
|
152
150
|
for (var i = 0; i < this.attachments.length; i++) {
|
|
153
|
-
|
|
151
|
+
let slotAttachments = this.attachments[i];
|
|
154
152
|
if (slotAttachments) {
|
|
155
|
-
for (
|
|
156
|
-
|
|
153
|
+
for (let name in slotAttachments) {
|
|
154
|
+
let attachment = slotAttachments[name];
|
|
157
155
|
if (attachment)
|
|
158
|
-
entries.push(new SkinEntry(i,
|
|
156
|
+
entries.push(new SkinEntry(i, name, attachment));
|
|
159
157
|
}
|
|
160
158
|
}
|
|
161
159
|
}
|
|
162
160
|
return entries;
|
|
163
|
-
}
|
|
161
|
+
}
|
|
164
162
|
/** Returns all attachments in this skin for the specified slot index. */
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
getAttachmentsForSlot(slotIndex, attachments) {
|
|
164
|
+
let slotAttachments = this.attachments[slotIndex];
|
|
167
165
|
if (slotAttachments) {
|
|
168
|
-
for (
|
|
169
|
-
|
|
166
|
+
for (let name in slotAttachments) {
|
|
167
|
+
let attachment = slotAttachments[name];
|
|
170
168
|
if (attachment)
|
|
171
|
-
attachments.push(new SkinEntry(slotIndex,
|
|
169
|
+
attachments.push(new SkinEntry(slotIndex, name, attachment));
|
|
172
170
|
}
|
|
173
171
|
}
|
|
174
|
-
}
|
|
172
|
+
}
|
|
175
173
|
/** Clears all attachments, bones, and constraints. */
|
|
176
|
-
|
|
174
|
+
clear() {
|
|
177
175
|
this.attachments.length = 0;
|
|
178
176
|
this.bones.length = 0;
|
|
179
177
|
this.constraints.length = 0;
|
|
180
|
-
}
|
|
178
|
+
}
|
|
181
179
|
/** Attach each attachment in this skin if the corresponding attachment in the old skin is currently attached. */
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
for (
|
|
185
|
-
|
|
186
|
-
|
|
180
|
+
attachAll(skeleton, oldSkin) {
|
|
181
|
+
let slotIndex = 0;
|
|
182
|
+
for (let i = 0; i < skeleton.slots.length; i++) {
|
|
183
|
+
let slot = skeleton.slots[i];
|
|
184
|
+
let slotAttachment = slot.getAttachment();
|
|
187
185
|
if (slotAttachment && slotIndex < oldSkin.attachments.length) {
|
|
188
|
-
|
|
189
|
-
for (
|
|
190
|
-
|
|
186
|
+
let dictionary = oldSkin.attachments[slotIndex];
|
|
187
|
+
for (let key in dictionary) {
|
|
188
|
+
let skinAttachment = dictionary[key];
|
|
191
189
|
if (slotAttachment == skinAttachment) {
|
|
192
|
-
|
|
190
|
+
let attachment = this.getAttachment(slotIndex, key);
|
|
193
191
|
if (attachment)
|
|
194
192
|
slot.setAttachment(attachment);
|
|
195
193
|
break;
|
|
@@ -198,8 +196,6 @@ var Skin = /** @class */ (function () {
|
|
|
198
196
|
}
|
|
199
197
|
slotIndex++;
|
|
200
198
|
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
export { Skin };
|
|
205
|
-
//# sourceMappingURL=Skin.js.map
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUcvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFNOUQsc0ZBQXNGO0FBQ3RGLE1BQU0sT0FBTyxTQUFTO0lBQ3JCLFlBQW9CLFNBQWlCLEVBQVMsSUFBWSxFQUFTLFVBQXNCO1FBQXJFLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFJLENBQUM7Q0FDOUY7QUFFRDs7O21HQUdtRztBQUNuRyxNQUFNLE9BQU8sSUFBSTtJQVFoQixZQUFhLElBQVk7UUFKekIsZ0JBQVcsR0FBRyxJQUFJLEtBQUssRUFBeUIsQ0FBQztRQUNqRCxVQUFLLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDMUIsZ0JBQVcsR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUd6QyxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLGFBQWEsQ0FBRSxTQUFpQixFQUFFLElBQVksRUFBRSxVQUFzQjtRQUNyRSxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMvRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ25DLElBQUksU0FBUyxJQUFJLFdBQVcsQ0FBQyxNQUFNO1lBQUUsV0FBVyxDQUFDLE1BQU0sR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQUUsV0FBVyxD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
|
package/dist/Slot.js
CHANGED
|
@@ -31,8 +31,8 @@ import { Color } from "./Utils";
|
|
|
31
31
|
/** Stores a slot's current pose. Slots organize attachments for {@link Skeleton#drawOrder} purposes and provide a place to store
|
|
32
32
|
* state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared
|
|
33
33
|
* across multiple skeletons. */
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
export class Slot {
|
|
35
|
+
constructor(data, bone) {
|
|
36
36
|
/** Values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a
|
|
37
37
|
* weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions.
|
|
38
38
|
*
|
|
@@ -49,18 +49,18 @@ var Slot = /** @class */ (function () {
|
|
|
49
49
|
this.setToSetupPose();
|
|
50
50
|
}
|
|
51
51
|
/** The skeleton this slot belongs to. */
|
|
52
|
-
|
|
52
|
+
getSkeleton() {
|
|
53
53
|
return this.bone.skeleton;
|
|
54
|
-
}
|
|
54
|
+
}
|
|
55
55
|
/** The current attachment for the slot, or null if the slot has no attachment. */
|
|
56
|
-
|
|
56
|
+
getAttachment() {
|
|
57
57
|
return this.attachment;
|
|
58
|
-
}
|
|
58
|
+
}
|
|
59
59
|
/** Sets the slot's attachment and, if the attachment changed, resets {@link #attachmentTime} and clears the {@link #deform}.
|
|
60
60
|
* The deform is not cleared if the old attachment has the same {@link VertexAttachment#getDeformAttachment()} as the specified
|
|
61
61
|
* attachment.
|
|
62
62
|
* @param attachment May be null. */
|
|
63
|
-
|
|
63
|
+
setAttachment(attachment) {
|
|
64
64
|
if (this.attachment == attachment)
|
|
65
65
|
return;
|
|
66
66
|
if (!(attachment instanceof VertexAttachment) || !(this.attachment instanceof VertexAttachment)
|
|
@@ -69,17 +69,17 @@ var Slot = /** @class */ (function () {
|
|
|
69
69
|
}
|
|
70
70
|
this.attachment = attachment;
|
|
71
71
|
this.attachmentTime = this.bone.skeleton.time;
|
|
72
|
-
}
|
|
73
|
-
|
|
72
|
+
}
|
|
73
|
+
setAttachmentTime(time) {
|
|
74
74
|
this.attachmentTime = this.bone.skeleton.time - time;
|
|
75
|
-
}
|
|
75
|
+
}
|
|
76
76
|
/** The time that has elapsed since the last time the attachment was set or cleared. Relies on Skeleton
|
|
77
77
|
* {@link Skeleton#time}. */
|
|
78
|
-
|
|
78
|
+
getAttachmentTime() {
|
|
79
79
|
return this.bone.skeleton.time - this.attachmentTime;
|
|
80
|
-
}
|
|
80
|
+
}
|
|
81
81
|
/** Sets this slot to the setup pose. */
|
|
82
|
-
|
|
82
|
+
setToSetupPose() {
|
|
83
83
|
this.color.setFromColor(this.data.color);
|
|
84
84
|
if (this.darkColor)
|
|
85
85
|
this.darkColor.setFromColor(this.data.darkColor);
|
|
@@ -89,8 +89,6 @@ var Slot = /** @class */ (function () {
|
|
|
89
89
|
this.attachment = null;
|
|
90
90
|
this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName));
|
|
91
91
|
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
export { Slot };
|
|
96
|
-
//# sourceMappingURL=Slot.js.map
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TbG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDOztnQ0FFZ0M7QUFDaEMsTUFBTSxPQUFPLElBQUk7SUEyQmhCLFlBQWEsSUFBYyxFQUFFLElBQVU7UUFOdkM7Ozs2RkFHcUY7UUFDckYsV0FBTSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsV0FBVztRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGtGQUFrRjtJQUNsRixhQUFhO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O3dDQUdvQztJQUNwQyxhQUFhLENBQUUsVUFBc0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVU7WUFBRSxPQUFPO1FBQzFDLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxZQUFZLGdCQUFnQixDQUFDO2VBQ3hFLFVBQVcsQ0FBQyxnQkFBZ0IsSUFBdUIsSUFBSSxDQUFDLFVBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtZQUM1RyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsaUJBQWlCLENBQUUsSUFBWTtRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEO2dDQUM0QjtJQUM1QixpQkFBaUI7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGNBQWM7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbkI7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7U0FDaEc7SUFDRixDQUFDO0NBQ0QifQ==
|
package/dist/SlotData.js
CHANGED
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Color } from "./Utils";
|
|
30
30
|
/** Stores the setup pose for a {@link Slot}. */
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
export class SlotData {
|
|
32
|
+
constructor(index, name, boneData) {
|
|
33
33
|
/** The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two
|
|
34
34
|
* color tinting. */
|
|
35
35
|
this.color = new Color(1, 1, 1, 1);
|
|
@@ -43,9 +43,7 @@ var SlotData = /** @class */ (function () {
|
|
|
43
43
|
this.name = name;
|
|
44
44
|
this.boneData = boneData;
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
}());
|
|
48
|
-
export { SlotData };
|
|
46
|
+
}
|
|
49
47
|
/** Determines how images are blended with existing pixels when drawn. */
|
|
50
48
|
export var BlendMode;
|
|
51
49
|
(function (BlendMode) {
|
|
@@ -54,4 +52,4 @@ export var BlendMode;
|
|
|
54
52
|
BlendMode[BlendMode["Multiply"] = 2] = "Multiply";
|
|
55
53
|
BlendMode[BlendMode["Screen"] = 3] = "Screen";
|
|
56
54
|
})(BlendMode || (BlendMode = {}));
|
|
57
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xvdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2xvdERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsZ0RBQWdEO0FBQ2hELE1BQU0sT0FBTyxRQUFRO0lBd0JwQixZQUFhLEtBQWEsRUFBRSxJQUFZLEVBQUUsUUFBa0I7UUFkNUQ7NEJBQ29CO1FBQ3BCLFVBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQWE3QixJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzFCLENBQUM7Q0FDRDtBQUVELHlFQUF5RTtBQUN6RSxNQUFNLENBQU4sSUFBWSxTQUFnRDtBQUE1RCxXQUFZLFNBQVM7SUFBRyw2Q0FBTSxDQUFBO0lBQUUsaURBQVEsQ0FBQTtJQUFFLGlEQUFRLENBQUE7SUFBRSw2Q0FBTSxDQUFBO0FBQUMsQ0FBQyxFQUFoRCxTQUFTLEtBQVQsU0FBUyxRQUF1QyJ9
|
package/dist/Texture.js
CHANGED
|
@@ -26,31 +26,14 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
extendStatics = Object.setPrototypeOf ||
|
|
32
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
33
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
34
|
-
return extendStatics(d, b);
|
|
35
|
-
};
|
|
36
|
-
return function (d, b) {
|
|
37
|
-
if (typeof b !== "function" && b !== null)
|
|
38
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
39
|
-
extendStatics(d, b);
|
|
40
|
-
function __() { this.constructor = d; }
|
|
41
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
42
|
-
};
|
|
43
|
-
})();
|
|
44
|
-
var Texture = /** @class */ (function () {
|
|
45
|
-
function Texture(image) {
|
|
29
|
+
export class Texture {
|
|
30
|
+
constructor(image) {
|
|
46
31
|
this._image = image;
|
|
47
32
|
}
|
|
48
|
-
|
|
33
|
+
getImage() {
|
|
49
34
|
return this._image;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
}());
|
|
53
|
-
export { Texture };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
54
37
|
export var TextureFilter;
|
|
55
38
|
(function (TextureFilter) {
|
|
56
39
|
TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest";
|
|
@@ -67,8 +50,8 @@ export var TextureWrap;
|
|
|
67
50
|
TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge";
|
|
68
51
|
TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; // WebGLRenderingContext.REPEAT
|
|
69
52
|
})(TextureWrap || (TextureWrap = {}));
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
export class TextureRegion {
|
|
54
|
+
constructor() {
|
|
72
55
|
this.u = 0;
|
|
73
56
|
this.v = 0;
|
|
74
57
|
this.u2 = 0;
|
|
@@ -81,18 +64,10 @@ var TextureRegion = /** @class */ (function () {
|
|
|
81
64
|
this.originalWidth = 0;
|
|
82
65
|
this.originalHeight = 0;
|
|
83
66
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
FakeTexture.prototype.setFilters = function (minFilter, magFilter) { };
|
|
93
|
-
FakeTexture.prototype.setWraps = function (uWrap, vWrap) { };
|
|
94
|
-
FakeTexture.prototype.dispose = function () { };
|
|
95
|
-
return FakeTexture;
|
|
96
|
-
}(Texture));
|
|
97
|
-
export { FakeTexture };
|
|
98
|
-
//# sourceMappingURL=Texture.js.map
|
|
67
|
+
}
|
|
68
|
+
export class FakeTexture extends Texture {
|
|
69
|
+
setFilters(minFilter, magFilter) { }
|
|
70
|
+
setWraps(uWrap, vWrap) { }
|
|
71
|
+
dispose() { }
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9UZXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxNQUFNLE9BQWdCLE9BQU87SUFHNUIsWUFBYSxLQUFxQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0NBS0Q7QUFFRCxNQUFNLENBQU4sSUFBWSxhQVFYO0FBUkQsV0FBWSxhQUFhO0lBQ3hCLDBEQUFjLENBQUE7SUFDZCx3REFBYSxDQUFBO0lBQ2Isd0RBQWEsQ0FBQTtJQUNiLG9GQUEyQixDQUFBO0lBQzNCLGtGQUEwQixDQUFBO0lBQzFCLGtGQUEwQixDQUFBO0lBQzFCLGdGQUF5QixDQUFBLENBQUMsNkNBQTZDO0FBQ3hFLENBQUMsRUFSVyxhQUFhLEtBQWIsYUFBYSxRQVF4QjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDdEIscUVBQXNCLENBQUE7SUFDdEIsK0RBQW1CLENBQUE7SUFDbkIscURBQWMsQ0FBQSxDQUFDLCtCQUErQjtBQUMvQyxDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVDLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFBQyxNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUFDLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDZixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQUMsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUN0QixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLENBQUMsQ0FBQztRQUFDLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFBQyxtQkFBYyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sV0FBWSxTQUFRLE9BQU87SUFDdkMsVUFBVSxDQUFFLFNBQXdCLEVBQUUsU0FBd0IsSUFBSSxDQUFDO0lBQ25FLFFBQVEsQ0FBRSxLQUFrQixFQUFFLEtBQWtCLElBQUksQ0FBQztJQUNyRCxPQUFPLEtBQU0sQ0FBQztDQUNkIn0=
|
package/dist/TextureAtlas.js
CHANGED
|
@@ -26,92 +26,77 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
var __extends = (this && this.__extends) || (function () {
|
|
30
|
-
var extendStatics = function (d, b) {
|
|
31
|
-
extendStatics = Object.setPrototypeOf ||
|
|
32
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
33
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
34
|
-
return extendStatics(d, b);
|
|
35
|
-
};
|
|
36
|
-
return function (d, b) {
|
|
37
|
-
if (typeof b !== "function" && b !== null)
|
|
38
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
39
|
-
extendStatics(d, b);
|
|
40
|
-
function __() { this.constructor = d; }
|
|
41
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
42
|
-
};
|
|
43
|
-
})();
|
|
44
29
|
import { TextureFilter, TextureWrap, TextureRegion } from "./Texture";
|
|
45
30
|
import { Utils } from "./Utils";
|
|
46
|
-
|
|
47
|
-
|
|
31
|
+
export class TextureAtlas {
|
|
32
|
+
constructor(atlasText) {
|
|
48
33
|
this.pages = new Array();
|
|
49
34
|
this.regions = new Array();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
pageFields["size"] =
|
|
35
|
+
let reader = new TextureAtlasReader(atlasText);
|
|
36
|
+
let entry = new Array(4);
|
|
37
|
+
let page = null;
|
|
38
|
+
let region = null;
|
|
39
|
+
let pageFields = {};
|
|
40
|
+
pageFields["size"] = () => {
|
|
56
41
|
page.width = parseInt(entry[1]);
|
|
57
42
|
page.height = parseInt(entry[2]);
|
|
58
43
|
};
|
|
59
|
-
pageFields["format"] =
|
|
44
|
+
pageFields["format"] = () => {
|
|
60
45
|
// page.format = Format[tuple[0]]; we don't need format in WebGL
|
|
61
46
|
};
|
|
62
|
-
pageFields["filter"] =
|
|
47
|
+
pageFields["filter"] = () => {
|
|
63
48
|
page.minFilter = Utils.enumValue(TextureFilter, entry[1]);
|
|
64
49
|
page.magFilter = Utils.enumValue(TextureFilter, entry[2]);
|
|
65
50
|
};
|
|
66
|
-
pageFields["repeat"] =
|
|
51
|
+
pageFields["repeat"] = () => {
|
|
67
52
|
if (entry[1].indexOf('x') != -1)
|
|
68
53
|
page.uWrap = TextureWrap.Repeat;
|
|
69
54
|
if (entry[1].indexOf('y') != -1)
|
|
70
55
|
page.vWrap = TextureWrap.Repeat;
|
|
71
56
|
};
|
|
72
|
-
pageFields["pma"] =
|
|
57
|
+
pageFields["pma"] = () => {
|
|
73
58
|
page.pma = entry[1] == "true";
|
|
74
59
|
};
|
|
75
60
|
var regionFields = {};
|
|
76
|
-
regionFields["xy"] =
|
|
61
|
+
regionFields["xy"] = () => {
|
|
77
62
|
region.x = parseInt(entry[1]);
|
|
78
63
|
region.y = parseInt(entry[2]);
|
|
79
64
|
};
|
|
80
|
-
regionFields["size"] =
|
|
65
|
+
regionFields["size"] = () => {
|
|
81
66
|
region.width = parseInt(entry[1]);
|
|
82
67
|
region.height = parseInt(entry[2]);
|
|
83
68
|
};
|
|
84
|
-
regionFields["bounds"] =
|
|
69
|
+
regionFields["bounds"] = () => {
|
|
85
70
|
region.x = parseInt(entry[1]);
|
|
86
71
|
region.y = parseInt(entry[2]);
|
|
87
72
|
region.width = parseInt(entry[3]);
|
|
88
73
|
region.height = parseInt(entry[4]);
|
|
89
74
|
};
|
|
90
|
-
regionFields["offset"] =
|
|
75
|
+
regionFields["offset"] = () => {
|
|
91
76
|
region.offsetX = parseInt(entry[1]);
|
|
92
77
|
region.offsetY = parseInt(entry[2]);
|
|
93
78
|
};
|
|
94
|
-
regionFields["orig"] =
|
|
79
|
+
regionFields["orig"] = () => {
|
|
95
80
|
region.originalWidth = parseInt(entry[1]);
|
|
96
81
|
region.originalHeight = parseInt(entry[2]);
|
|
97
82
|
};
|
|
98
|
-
regionFields["offsets"] =
|
|
83
|
+
regionFields["offsets"] = () => {
|
|
99
84
|
region.offsetX = parseInt(entry[1]);
|
|
100
85
|
region.offsetY = parseInt(entry[2]);
|
|
101
86
|
region.originalWidth = parseInt(entry[3]);
|
|
102
87
|
region.originalHeight = parseInt(entry[4]);
|
|
103
88
|
};
|
|
104
|
-
regionFields["rotate"] =
|
|
105
|
-
|
|
89
|
+
regionFields["rotate"] = () => {
|
|
90
|
+
let value = entry[1];
|
|
106
91
|
if (value == "true")
|
|
107
92
|
region.degrees = 90;
|
|
108
93
|
else if (value != "false")
|
|
109
94
|
region.degrees = parseInt(value);
|
|
110
95
|
};
|
|
111
|
-
regionFields["index"] =
|
|
96
|
+
regionFields["index"] = () => {
|
|
112
97
|
region.index = parseInt(entry[1]);
|
|
113
98
|
};
|
|
114
|
-
|
|
99
|
+
let line = reader.readLine();
|
|
115
100
|
// Ignore empty lines before first entry.
|
|
116
101
|
while (line && line.trim().length == 0)
|
|
117
102
|
line = reader.readLine();
|
|
@@ -124,8 +109,8 @@ var TextureAtlas = /** @class */ (function () {
|
|
|
124
109
|
line = reader.readLine();
|
|
125
110
|
}
|
|
126
111
|
// Page and region entries.
|
|
127
|
-
|
|
128
|
-
|
|
112
|
+
let names = null;
|
|
113
|
+
let values = null;
|
|
129
114
|
while (true) {
|
|
130
115
|
if (line === null)
|
|
131
116
|
break;
|
|
@@ -139,7 +124,7 @@ var TextureAtlas = /** @class */ (function () {
|
|
|
139
124
|
while (true) {
|
|
140
125
|
if (reader.readEntry(entry, line = reader.readLine()) == 0)
|
|
141
126
|
break;
|
|
142
|
-
|
|
127
|
+
let field = pageFields[entry[0]];
|
|
143
128
|
if (field)
|
|
144
129
|
field();
|
|
145
130
|
}
|
|
@@ -150,10 +135,10 @@ var TextureAtlas = /** @class */ (function () {
|
|
|
150
135
|
region.page = page;
|
|
151
136
|
region.name = line;
|
|
152
137
|
while (true) {
|
|
153
|
-
|
|
138
|
+
let count = reader.readEntry(entry, line = reader.readLine());
|
|
154
139
|
if (count == 0)
|
|
155
140
|
break;
|
|
156
|
-
|
|
141
|
+
let field = regionFields[entry[0]];
|
|
157
142
|
if (field)
|
|
158
143
|
field();
|
|
159
144
|
else {
|
|
@@ -162,8 +147,8 @@ var TextureAtlas = /** @class */ (function () {
|
|
|
162
147
|
values = [];
|
|
163
148
|
}
|
|
164
149
|
names.push(entry[0]);
|
|
165
|
-
|
|
166
|
-
for (
|
|
150
|
+
let entryValues = [];
|
|
151
|
+
for (let i = 0; i < count; i++)
|
|
167
152
|
entryValues.push(parseInt(entry[i + 1]));
|
|
168
153
|
values.push(entryValues);
|
|
169
154
|
}
|
|
@@ -192,51 +177,46 @@ var TextureAtlas = /** @class */ (function () {
|
|
|
192
177
|
}
|
|
193
178
|
}
|
|
194
179
|
}
|
|
195
|
-
|
|
196
|
-
for (
|
|
180
|
+
findRegion(name) {
|
|
181
|
+
for (let i = 0; i < this.regions.length; i++) {
|
|
197
182
|
if (this.regions[i].name == name) {
|
|
198
183
|
return this.regions[i];
|
|
199
184
|
}
|
|
200
185
|
}
|
|
201
186
|
return null;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
for (var _i = 0, _a = this.pages; _i < _a.length; _i++) {
|
|
206
|
-
var page = _a[_i];
|
|
187
|
+
}
|
|
188
|
+
setTextures(assetManager, pathPrefix = "") {
|
|
189
|
+
for (let page of this.pages)
|
|
207
190
|
page.setTexture(assetManager.get(pathPrefix + page.name));
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
for (var i = 0; i < this.pages.length; i++) {
|
|
191
|
+
}
|
|
192
|
+
dispose() {
|
|
193
|
+
for (let i = 0; i < this.pages.length; i++) {
|
|
212
194
|
this.pages[i].texture.dispose();
|
|
213
195
|
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
var TextureAtlasReader = /** @class */ (function () {
|
|
219
|
-
function TextureAtlasReader(text) {
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
class TextureAtlasReader {
|
|
199
|
+
constructor(text) {
|
|
220
200
|
this.index = 0;
|
|
221
201
|
this.lines = text.split(/\r\n|\r|\n/);
|
|
222
202
|
}
|
|
223
|
-
|
|
203
|
+
readLine() {
|
|
224
204
|
if (this.index >= this.lines.length)
|
|
225
205
|
return null;
|
|
226
206
|
return this.lines[this.index++];
|
|
227
|
-
}
|
|
228
|
-
|
|
207
|
+
}
|
|
208
|
+
readEntry(entry, line) {
|
|
229
209
|
if (!line)
|
|
230
210
|
return 0;
|
|
231
211
|
line = line.trim();
|
|
232
212
|
if (line.length == 0)
|
|
233
213
|
return 0;
|
|
234
|
-
|
|
214
|
+
let colon = line.indexOf(':');
|
|
235
215
|
if (colon == -1)
|
|
236
216
|
return 0;
|
|
237
217
|
entry[0] = line.substr(0, colon).trim();
|
|
238
|
-
for (
|
|
239
|
-
|
|
218
|
+
for (let i = 1, lastMatch = colon + 1;; i++) {
|
|
219
|
+
let comma = line.indexOf(',', lastMatch);
|
|
240
220
|
if (comma == -1) {
|
|
241
221
|
entry[i] = line.substr(lastMatch).trim();
|
|
242
222
|
return i;
|
|
@@ -246,30 +226,21 @@ var TextureAtlasReader = /** @class */ (function () {
|
|
|
246
226
|
if (i == 4)
|
|
247
227
|
return 4;
|
|
248
228
|
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
function TextureAtlasPage() {
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
export class TextureAtlasPage {
|
|
232
|
+
constructor() {
|
|
254
233
|
this.minFilter = TextureFilter.Nearest;
|
|
255
234
|
this.magFilter = TextureFilter.Nearest;
|
|
256
235
|
this.uWrap = TextureWrap.ClampToEdge;
|
|
257
236
|
this.vWrap = TextureWrap.ClampToEdge;
|
|
258
237
|
}
|
|
259
|
-
|
|
238
|
+
setTexture(texture) {
|
|
260
239
|
this.texture = texture;
|
|
261
240
|
texture.setFilters(this.minFilter, this.magFilter);
|
|
262
241
|
texture.setWraps(this.uWrap, this.vWrap);
|
|
263
|
-
};
|
|
264
|
-
return TextureAtlasPage;
|
|
265
|
-
}());
|
|
266
|
-
export { TextureAtlasPage };
|
|
267
|
-
var TextureAtlasRegion = /** @class */ (function (_super) {
|
|
268
|
-
__extends(TextureAtlasRegion, _super);
|
|
269
|
-
function TextureAtlasRegion() {
|
|
270
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
271
242
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
//# sourceMappingURL=TextureAtlas.js.map
|
|
243
|
+
}
|
|
244
|
+
export class TextureAtlasRegion extends TextureRegion {
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHVyZUF0bGFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RleHR1cmVBdGxhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFHL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQVcsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxLQUFLLEVBQWEsTUFBTSxTQUFTLENBQUM7QUFFdkQsTUFBTSxPQUFPLFlBQVk7SUFJeEIsWUFBYSxTQUFpQjtRQUg5QixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7UUFDdEMsWUFBTyxHQUFHLElBQUksS0FBSyxFQUFzQixDQUFDO1FBR3pDLElBQUksTUFBTSxHQUFHLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLEdBQXFCLElBQUksQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBdUIsSUFBSSxDQUFDO1FBRXRDLElBQUksVUFBVSxHQUF3QixFQUFFLENBQUM7UUFDekMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFDRixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFO1lBQzNCLGdFQUFnRTtRQUNqRSxDQUFDLENBQUM7UUFDRixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFD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
|