arx-convert 11.0.0 → 11.1.0

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.
@@ -74,8 +74,10 @@ export type ArxKeyFrame = {
74
74
  /**
75
75
  * always set to -1 or 9 in tea files, so Arx Libertatis in debug mode expects only those 2 values
76
76
  * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/Animation.cpp#L304
77
+ *
78
+ * if ommitted the default value is -1
77
79
  */
78
- flags: ArxAnimationPlayingFlags;
80
+ flags?: ArxAnimationPlayingFlags;
79
81
  /**
80
82
  * not used by Arx
81
83
  */
@@ -86,7 +88,13 @@ export type ArxKeyFrame = {
86
88
  isKeyFrame: boolean;
87
89
  time_frame: number;
88
90
  groups: ArxTheoAnimationGroup[];
91
+ /**
92
+ * if value is missing than it means it's a vector with 0/0/0 values
93
+ */
89
94
  translate?: ArxVector3;
95
+ /**
96
+ * if value is missing than it means it's a quaternion with 0/0/0/1 values
97
+ */
90
98
  quaternion?: ArxQuaternion;
91
99
  sample?: ArxTheaSample;
92
100
  };
@@ -62,15 +62,18 @@ export class KeyFrame {
62
62
  time_frame: binary.readInt32(),
63
63
  groups: [],
64
64
  };
65
- if (keyframe.time_frame !== 0) {
66
- console.log(keyframe.time_frame);
67
- }
68
65
  if (hasTranslateData) {
69
- keyframe.translate = binary.readVector3();
66
+ const translate = binary.readVector3();
67
+ if (translate.x !== 0 || translate.y !== 0 || translate.z !== 0) {
68
+ keyframe.translate = translate;
69
+ }
70
70
  }
71
71
  if (hasQuaternionData) {
72
72
  binary.skipBytes(8); // theo angle - no info on the structure - not used by Arx
73
- keyframe.quaternion = binary.readQuat();
73
+ const quaternion = binary.readQuat();
74
+ if (quaternion.x !== 0 || quaternion.y !== 0 || quaternion.z !== 0 || quaternion.w !== 1) {
75
+ keyframe.quaternion = quaternion;
76
+ }
74
77
  }
75
78
  if (hasMorphData) {
76
79
  binary.skipBytes(16); // thea morph - no info on the structure - not used by Arx
@@ -121,7 +124,7 @@ export class KeyFrame {
121
124
  const buffer = new ArrayBuffer(KeyFrame.sizeOf(TEA_VERSION_OLD, hasTranslateData, hasQuaternionData, false, keyframe.groups.length, hasSample, 0));
122
125
  const binary = new BinaryIO(buffer);
123
126
  binary.writeInt32(keyframe.frame);
124
- binary.writeInt32(keyframe.flags);
127
+ binary.writeInt32(keyframe.flags ?? -1);
125
128
  if (keyframe.isMasterKeyFrame) {
126
129
  binary.writeInt32(1);
127
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KeyFrame.js","sourceRoot":"","sources":["../../src/tea/KeyFrame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyFrame.js","sourceRoot":"","sources":["../../src/tea/KeyFrame.ts"],"names":[],"mappings":"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"}
package/dist/tea/TEA.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type ArxKeyFrame } from './KeyFrame.js';
2
2
  import { type ArxTeaHeader } from './TeaHeader.js';
3
3
  export type ArxTEA = {
4
+ $schema?: string;
4
5
  header: Omit<ArxTeaHeader, 'numberOfKeyFrames' | 'numberOfGroups' | 'version'>;
5
6
  keyframes: ArxKeyFrame[];
6
7
  };
package/dist/tea/TEA.js CHANGED
@@ -11,6 +11,7 @@ export class TEA {
11
11
  throw new Error(`Invalid TEA version ${version}`);
12
12
  }
13
13
  const data = {
14
+ $schema: 'https://arx-tools.github.io/schemas/tea.schema.json',
14
15
  header,
15
16
  keyframes: times(() => {
16
17
  return KeyFrame.readFrom(file, version, numberOfGroups);
@@ -1 +1 @@
1
- {"version":3,"file":"TEA.js","sourceRoot":"","sources":["../../src/tea/TEA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAoB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAqB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAOhD,MAAM,OAAO,GAAG;IACd,MAAM,CAAC,IAAI,CAAC,gBAAiC;QAC3C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAE3C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1F,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,GAAW;YACnB,MAAM;YACN,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE;gBACpB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;YACzD,CAAC,EAAE,iBAAiB,CAAC;SACtB,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;QAEjF,OAAO,kBAAkB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"TEA.js","sourceRoot":"","sources":["../../src/tea/TEA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAoB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAqB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQhD,MAAM,OAAO,GAAG;IACd,MAAM,CAAC,IAAI,CAAC,gBAAiC;QAC3C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAE3C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1F,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,GAAW;YACnB,OAAO,EAAE,qDAAqD;YAC9D,MAAM;YACN,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE;gBACpB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;YACzD,CAAC,EAAE,iBAAiB,CAAC;SACtB,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;QAEjF,OAAO,kBAAkB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAChD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arx-convert",
3
- "version": "11.0.0",
3
+ "version": "11.1.0",
4
4
  "description": "Converts various Arx Fatalis formats to JSON or YAML and back",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,151 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://arx-tools.github.io/schemas/tea.schema.json",
4
+ "title": "TEA",
5
+ "description": "Theo animation format of Arx Fatalis interpreted as JSON by arx-convert",
6
+ "$defs": {
7
+ "vector3": {
8
+ "type": "object",
9
+ "properties": {
10
+ "x": {
11
+ "type": "number"
12
+ },
13
+ "y": {
14
+ "type": "number"
15
+ },
16
+ "z": {
17
+ "type": "number"
18
+ }
19
+ },
20
+ "required": [
21
+ "x",
22
+ "y",
23
+ "z"
24
+ ]
25
+ },
26
+ "quaternion": {
27
+ "type": "object",
28
+ "properties": {
29
+ "x": {
30
+ "type": "number"
31
+ },
32
+ "y": {
33
+ "type": "number"
34
+ },
35
+ "z": {
36
+ "type": "number"
37
+ },
38
+ "w": {
39
+ "type": "number"
40
+ }
41
+ },
42
+ "required": [
43
+ "x",
44
+ "y",
45
+ "z",
46
+ "w"
47
+ ]
48
+ },
49
+ "32bitPositiveInteger": {
50
+ "type": "integer",
51
+ "minimum": 0,
52
+ "maximum": 2147483647
53
+ }
54
+ },
55
+ "type": "object",
56
+ "properties": {
57
+ "header": {
58
+ "type": "object",
59
+ "properties": {
60
+ "name": {
61
+ "description": "Name of the animation. It's good idea to make this the same as the filename (without the extension).",
62
+ "type": "string"
63
+ },
64
+ "totalNumberOfFrames": {
65
+ "$ref": "#/$defs/32bitPositiveInteger"
66
+ }
67
+ },
68
+ "required": [
69
+ "name",
70
+ "totalNumberOfFrames"
71
+ ]
72
+ },
73
+ "keyframes": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "object",
77
+ "description": "A single keyframe",
78
+ "properties": {
79
+ "frame": {
80
+ "description": "Should be between 0 (inclusive) and header.totalNumberOfFrames (exclusive)",
81
+ "$ref": "#/$defs/32bitPositiveInteger"
82
+ },
83
+ "flags": {
84
+ "anyOf": [
85
+ {
86
+ "const": -1
87
+ },
88
+ {
89
+ "const": 9
90
+ }
91
+ ]
92
+ },
93
+ "isMasterKeyFrame": {
94
+ "type": "boolean"
95
+ },
96
+ "isKeyFrame": {
97
+ "type": "boolean"
98
+ },
99
+ "time_frame": {
100
+ "$ref": "#/$defs/32bitPositiveInteger"
101
+ },
102
+ "groups": {
103
+ "type": "array",
104
+ "items": {
105
+ "type": "object",
106
+ "properties": {
107
+ "isKey": {
108
+ "type": "boolean"
109
+ },
110
+ "translate": {
111
+ "description": "Optional field, ommitting this field is the same as setting 0/0/0",
112
+ "$ref": "#/$defs/vector3"
113
+ },
114
+ "quaternion": {
115
+ "description": "Optional field, ommitting this field is the same as setting 0/0/0/1",
116
+ "$ref": "#/$defs/quaternion"
117
+ },
118
+ "zoom": {
119
+ "description": "Optional field, ommitting this field is the same as setting 0/0/0",
120
+ "$ref": "#/$defs/vector3"
121
+ }
122
+ },
123
+ "required": [
124
+ "isKey"
125
+ ]
126
+ }
127
+ },
128
+ "translate": {
129
+ "description": "Optional field, ommitting this field is the same as setting 0/0/0",
130
+ "$ref": "#/$defs/vector3"
131
+ },
132
+ "quaternion": {
133
+ "description": "Optional field, ommitting this field is the same as setting 0/0/0/1",
134
+ "$ref": "#/$defs/quaternion"
135
+ }
136
+ },
137
+ "required": [
138
+ "frame",
139
+ "isMasterKeyFrame",
140
+ "isKeyFrame",
141
+ "time_frame",
142
+ "groups"
143
+ ]
144
+ }
145
+ }
146
+ },
147
+ "required": [
148
+ "header",
149
+ "keyframes"
150
+ ]
151
+ }