open-tibia-tools 0.2.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 (61) hide show
  1. package/README.md +29 -0
  2. package/effectFramesGenerator.html +42 -0
  3. package/effectFramesGenerator.ts +95 -0
  4. package/itemImageFramesGenerator.html +45 -0
  5. package/itemImageFramesGenerator.ts +140 -0
  6. package/itemImageGenerator.html +40 -0
  7. package/itemImageGenerator.ts +161 -0
  8. package/missileFramesGenerator.html +42 -0
  9. package/missileFramesGenerator.ts +95 -0
  10. package/otbEditor.html +21 -0
  11. package/otbEditor.ts +106 -0
  12. package/outfitImageGenerator.html +38 -0
  13. package/outfitImageGenerator.ts +109 -0
  14. package/outfitImagePhpGeneratorCode.ts +19 -0
  15. package/package.json +28 -0
  16. package/tests.html +29 -0
  17. package/tests.ts +218 -0
  18. package/tools/colored-outfit-images-generator/README.md +7 -0
  19. package/tools/colored-outfit-images-generator/abuse_warning.png +0 -0
  20. package/tools/colored-outfit-images-generator/animoutfit.php +103 -0
  21. package/tools/colored-outfit-images-generator/cacheGenerator.php +40 -0
  22. package/tools/colored-outfit-images-generator/config.php +25 -0
  23. package/tools/colored-outfit-images-generator/filesAsJson.php +22 -0
  24. package/tools/colored-outfit-images-generator/index.php +21 -0
  25. package/tools/colored-outfit-images-generator/libs/gifCreator.php +343 -0
  26. package/tools/colored-outfit-images-generator/libs/outfitter.php +312 -0
  27. package/tools/colored-outfit-images-generator/outfit.php +77 -0
  28. package/tools/colored-outfit-images-generator/release.php +40 -0
  29. package/tools/item-image-frames-to-animated-gif-converter/1-10/1.gif +0 -0
  30. package/tools/item-image-frames-to-animated-gif-converter/1-10/1.png +0 -0
  31. package/tools/item-image-frames-to-animated-gif-converter/1-10/10.gif +0 -0
  32. package/tools/item-image-frames-to-animated-gif-converter/1-10/10.png +0 -0
  33. package/tools/item-image-frames-to-animated-gif-converter/1-10/2.gif +0 -0
  34. package/tools/item-image-frames-to-animated-gif-converter/1-10/2.png +0 -0
  35. package/tools/item-image-frames-to-animated-gif-converter/1-10/3.gif +0 -0
  36. package/tools/item-image-frames-to-animated-gif-converter/1-10/3.png +0 -0
  37. package/tools/item-image-frames-to-animated-gif-converter/1-10/4.gif +0 -0
  38. package/tools/item-image-frames-to-animated-gif-converter/1-10/4.png +0 -0
  39. package/tools/item-image-frames-to-animated-gif-converter/1-10/5.gif +0 -0
  40. package/tools/item-image-frames-to-animated-gif-converter/1-10/5.png +0 -0
  41. package/tools/item-image-frames-to-animated-gif-converter/1-10/6.gif +0 -0
  42. package/tools/item-image-frames-to-animated-gif-converter/1-10/6.png +0 -0
  43. package/tools/item-image-frames-to-animated-gif-converter/1-10/7.gif +0 -0
  44. package/tools/item-image-frames-to-animated-gif-converter/1-10/7.png +0 -0
  45. package/tools/item-image-frames-to-animated-gif-converter/1-10/8.gif +0 -0
  46. package/tools/item-image-frames-to-animated-gif-converter/1-10/8.png +0 -0
  47. package/tools/item-image-frames-to-animated-gif-converter/1-10/9.gif +0 -0
  48. package/tools/item-image-frames-to-animated-gif-converter/1-10/9.png +0 -0
  49. package/tools/item-image-frames-to-animated-gif-converter/README.md +20 -0
  50. package/tools/item-image-frames-to-animated-gif-converter/cli_convert.php +42 -0
  51. package/tools/item-image-frames-to-animated-gif-converter/generated-zip-archives/.gitignore +3 -0
  52. package/tools/item-image-frames-to-animated-gif-converter/generated-zip-archives/index.html +1 -0
  53. package/tools/item-image-frames-to-animated-gif-converter/index.php +97 -0
  54. package/tools/item-image-frames-to-animated-gif-converter/lib/abstractPngConverterAnimation.php +87 -0
  55. package/tools/item-image-frames-to-animated-gif-converter/lib/apngCreator.php +247 -0
  56. package/tools/item-image-frames-to-animated-gif-converter/lib/converterPngToApngAnimation.php +93 -0
  57. package/tools/item-image-frames-to-animated-gif-converter/lib/converterPngToGifAnimation.php +90 -0
  58. package/tools/item-image-frames-to-animated-gif-converter/lib/gifCreator.php +339 -0
  59. package/tsconfig.json +12 -0
  60. package/webpack.config.js +53 -0
  61. package/websiteImageGeneratorBase.ts +156 -0
@@ -0,0 +1,156 @@
1
+ import {Client, DatManager, ImageGenerator, InputFile, OtbManager, SpriteManager} from "@gesior/open-tibia-library";
2
+
3
+ let JSZip = require('jszip');
4
+
5
+ export class WebsiteImageGeneratorBase {
6
+ protected clientVersionInput: HTMLInputElement;
7
+ protected sprPicker: HTMLInputElement;
8
+ protected datPicker: HTMLInputElement;
9
+ protected otbPicker: HTMLInputElement;
10
+ protected loadFilesButton: HTMLButtonElement;
11
+ protected generateImagesButton: HTMLButtonElement;
12
+
13
+ protected otbRequired = true;
14
+ protected imageFormat = 'png';
15
+
16
+ protected client: Client;
17
+ protected spriteManager: SpriteManager;
18
+ protected datManager: DatManager;
19
+ protected otbManager: OtbManager;
20
+
21
+ init() {
22
+ this.clientVersionInput = <HTMLInputElement>document.getElementById('clientversion');
23
+ this.sprPicker = <HTMLInputElement>document.getElementById('spr');
24
+ this.datPicker = <HTMLInputElement>document.getElementById('dat');
25
+ this.otbPicker = <HTMLInputElement>document.getElementById('otb');
26
+ this.loadFilesButton = <HTMLButtonElement>document.getElementById('loadFiles');
27
+ this.generateImagesButton = <HTMLButtonElement>document.getElementById('generateImages');
28
+
29
+ const self = this;
30
+ this.loadFilesButton.onclick = function () {
31
+ self.loadFiles();
32
+ };
33
+ this.generateImagesButton.onclick = function () {
34
+ if (!self.spriteManager || !self.datManager || !self.otbManager) {
35
+ self.progressText('Cannot generate images. First .spr, .dat and .otb files must be loaded.');
36
+ return;
37
+ }
38
+ const imageGenerator = new ImageGenerator(self.datManager, self.spriteManager, self.otbManager);
39
+ const zip = new JSZip();
40
+ self.startImageGenerator(imageGenerator, self.otbManager, self.datManager, self.spriteManager, zip);
41
+ };
42
+ }
43
+
44
+ afterSetClientVersion() {
45
+ }
46
+
47
+ startImageGenerator(imageGenerator: ImageGenerator, otbManager: OtbManager, datManager: DatManager, spriteManager: SpriteManager, zip) {
48
+ throw new Error("Method not implemented.");
49
+ }
50
+
51
+ loadFiles() {
52
+ let clientVersion = parseInt(this.clientVersionInput.value);
53
+ this.progressText('Loading client version ' + clientVersion);
54
+ this.client = new Client();
55
+ this.client.setClientVersion(clientVersion);
56
+ this.afterSetClientVersion();
57
+ this.progressText('Loading SPR file');
58
+ const self = this;
59
+ setTimeout(function () {
60
+ self.loadSpr()
61
+ }, 10);
62
+ }
63
+
64
+ loadSpr() {
65
+ if (this.sprPicker.files.length > 0) {
66
+ this.spriteManager = new SpriteManager(this.client);
67
+ const file = this.sprPicker.files[0];
68
+ var reader = new FileReader();
69
+ reader.readAsArrayBuffer(file);
70
+ const self = this;
71
+ reader.onload = function (event: any) {
72
+ const sprLoaded = self.spriteManager.loadSpr(InputFile.fromUint8Array(new Uint8Array(event.target.result)));
73
+ if (sprLoaded) {
74
+ self.progressText('Loading DAT file');
75
+ setTimeout(function () {
76
+ self.loadDat()
77
+ }, 10);
78
+ } else {
79
+ self.spriteManager = null;
80
+ self.progressText('ERROR: Failed to load SPR file');
81
+ }
82
+ }
83
+ } else {
84
+ this.progressText('ERROR: Please select SPR file');
85
+ }
86
+ }
87
+
88
+ loadDat() {
89
+ if (this.datPicker.files.length > 0) {
90
+ this.datManager = new DatManager(this.client);
91
+ const file = this.datPicker.files[0];
92
+ var reader = new FileReader();
93
+ reader.readAsArrayBuffer(file);
94
+ const self = this;
95
+ reader.onload = function (event: any) {
96
+ const datLoaded = self.datManager.loadDat(InputFile.fromUint8Array(new Uint8Array(event.target.result)));
97
+ if (datLoaded) {
98
+ self.progressText('Loading OTB file');
99
+ setTimeout(function () {
100
+ self.loadOtb()
101
+ }, 10);
102
+ } else {
103
+ self.datManager = null;
104
+ self.progressText('ERROR: Failed to load DAT file');
105
+ }
106
+ }
107
+ } else {
108
+ this.progressText('ERROR: Please select DAT file');
109
+ }
110
+ }
111
+
112
+ loadOtb() {
113
+ if (this.otbRequired) {
114
+ if (this.otbPicker.files.length > 0) {
115
+ this.otbManager = new OtbManager(this.client);
116
+ const file = this.otbPicker.files[0];
117
+ var reader = new FileReader();
118
+ reader.readAsArrayBuffer(file);
119
+ const self = this;
120
+ reader.onload = function (event: any) {
121
+ const otbLoaded = self.otbManager.loadOtb(InputFile.fromUint8Array(new Uint8Array(event.target.result)));
122
+ if (otbLoaded) {
123
+ self.progressText('Data loaded. You can click "Generate images" now.');
124
+ } else {
125
+ self.otbManager = null;
126
+ self.progressText('ERROR: Failed to load OTB file');
127
+ }
128
+ }
129
+ } else {
130
+ this.progressText('ERROR: Please select OTB file');
131
+ }
132
+ } else {
133
+ this.otbManager = new OtbManager(this.client);
134
+ this.progressText('Data loaded. You can click "Generate images" now.');
135
+ }
136
+ }
137
+
138
+ downloadBlob(filename: string, blob: Blob) {
139
+ const a = document.createElement('a');
140
+ const url = window.URL.createObjectURL(blob);
141
+ a.href = url;
142
+ a.download = filename;
143
+ a.click();
144
+ window.URL.revokeObjectURL(url);
145
+ a.remove();
146
+ }
147
+
148
+ progressValue(done: number, todo: number) {
149
+ let text = done + '/' + todo;
150
+ this.progressText(text);
151
+ }
152
+
153
+ progressText(text: string) {
154
+ document.getElementById('progressBar').innerText = text;
155
+ }
156
+ }