@reldens/cms 0.6.0 → 0.8.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.
Files changed (40) hide show
  1. package/admin/reldens-admin-client.css +29 -30
  2. package/admin/templates/dashboard.html +1 -1
  3. package/bin/reldens-cms.js +1 -1
  4. package/install/index.html +23 -9
  5. package/install/success.html +36 -0
  6. package/lib/admin-manager.js +41 -4
  7. package/lib/admin-templates-loader.js +37 -0
  8. package/lib/admin-translations.js +4 -218
  9. package/lib/allowed-extensions.js +11 -0
  10. package/lib/entities-loader.js +2 -6
  11. package/lib/frontend.js +25 -17
  12. package/lib/installer.js +144 -116
  13. package/lib/loaded-entities-processor.js +30 -0
  14. package/lib/manager.js +223 -56
  15. package/lib/mime-types.js +35 -0
  16. package/lib/templates-list.js +0 -9
  17. package/lib/templates-to-path-mapper.js +28 -0
  18. package/migrations/default-homepage.sql +10 -0
  19. package/migrations/install.sql +1 -23
  20. package/migrations/users-authentication.sql +16 -0
  21. package/package.json +2 -2
  22. package/templates/.env.dist +11 -11
  23. package/templates/assets/favicons/android-icon-144x144.png +0 -0
  24. package/templates/assets/favicons/android-icon-192x192.png +0 -0
  25. package/templates/assets/favicons/android-icon-512x512.png +0 -0
  26. package/templates/assets/favicons/apple-touch-icon.png +0 -0
  27. package/templates/assets/favicons/favicon-16x16.png +0 -0
  28. package/templates/assets/favicons/favicon-32x32.png +0 -0
  29. package/templates/assets/favicons/mstile-150x150.png +0 -0
  30. package/templates/assets/favicons/safari-pinned-tab.svg +121 -0
  31. package/templates/assets/web/loading.gif +0 -0
  32. package/templates/assets/web/reldens-your-logo-mage.png +0 -0
  33. package/templates/browserconfig.xml +9 -0
  34. package/templates/favicon.ico +0 -0
  35. package/templates/index.js.dist +2 -2
  36. package/templates/site.webmanifest +27 -0
  37. package/admin/templates/maps-wizard-maps-selection.html +0 -85
  38. package/admin/templates/maps-wizard.html +0 -341
  39. package/admin/templates/objects-import.html +0 -143
  40. package/admin/templates/skills-import.html +0 -201
@@ -0,0 +1,121 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+ <metadata>
8
+ Created by potrace 1.14, written by Peter Selinger 2001-2017
9
+ </metadata>
10
+ <g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
11
+ fill="#000000" stroke="none">
12
+ <path d="M0 3883 l0 -1238 34 61 c49 92 94 149 203 255 121 119 204 185 372
13
+ 294 72 46 181 130 243 186 62 55 205 173 318 262 232 183 317 262 348 328 53
14
+ 111 4 231 -120 295 -90 46 -167 58 -363 58 -197 0 -282 -9 -545 -56 -198 -35
15
+ -232 -33 -285 13 -91 80 -34 207 172 379 181 151 379 270 593 357 l105 42
16
+ -537 1 -538 0 0 -1237z"/>
17
+ <path d="M2208 5100 c141 -51 465 -230 620 -344 85 -63 344 -321 447 -446 122
18
+ -147 247 -318 380 -520 68 -102 136 -197 151 -212 40 -37 83 -53 221 -83 236
19
+ -51 557 -156 713 -233 87 -42 210 -133 264 -193 21 -22 55 -68 77 -101 l39
20
+ -61 0 1106 0 1107 -1482 -1 c-1462 0 -1482 -1 -1430 -19z"/>
21
+ <path d="M1466 5070 c-357 -41 -721 -207 -1034 -470 -64 -54 -173 -180 -155
22
+ -180 4 0 76 13 158 29 292 58 365 66 600 65 195 0 229 -3 299 -22 164 -45 261
23
+ -113 313 -220 39 -80 45 -207 12 -277 -35 -76 -196 -230 -424 -405 -110 -85
24
+ -245 -198 -300 -252 -64 -63 -131 -117 -185 -149 -197 -119 -409 -284 -497
25
+ -387 -221 -261 -230 -536 -24 -742 74 -73 150 -117 261 -151 61 -19 99 -23
26
+ 202 -24 81 0 127 -4 125 -10 -9 -26 -95 -76 -182 -105 -112 -37 -178 -79 -220
27
+ -138 -27 -39 -30 -53 -36 -145 -3 -56 -8 -109 -12 -117 -4 -8 -64 -69 -133
28
+ -134 -69 -65 -150 -149 -180 -186 l-54 -67 0 -492 0 -491 2229 0 2230 0 98 62
29
+ c54 34 136 85 183 114 47 29 151 96 233 149 l147 96 0 50 0 51 -117 -63 c-65
30
+ -34 -250 -138 -412 -231 -162 -92 -298 -168 -302 -168 -4 0 -10 36 -14 81 -4
31
+ 44 -13 103 -20 130 -13 48 -13 49 8 49 19 1 94 27 322 114 54 20 204 96 452
32
+ 227 l83 44 0 108 c0 59 -2 107 -4 107 -2 0 -53 -31 -113 -68 -145 -92 -310
33
+ -182 -442 -242 -162 -73 -144 -74 -237 22 -208 217 -289 440 -301 828 l-6 185
34
+ 162 92 c280 160 523 331 616 435 176 195 265 406 238 564 -30 173 -138 301
35
+ -343 403 -188 95 -540 203 -829 256 -74 14 -135 26 -136 28 -1 1 -23 40 -50
36
+ 87 -70 124 -239 377 -358 536 -252 336 -503 586 -694 689 -32 18 -101 58 -153
37
+ 90 -182 112 -404 198 -590 229 -119 21 -310 28 -414 16z m-87 -435 c293 -51
38
+ 484 -158 526 -293 6 -20 -2 -17 -57 23 -194 144 -417 206 -898 251 -68 6 -72
39
+ 8 -42 16 112 30 311 31 471 3z m511 -677 c-15 -80 -40 -133 -87 -193 -42 -52
40
+ -126 -109 -178 -120 l-30 -7 35 28 c126 103 181 176 233 313 35 95 48 85 27
41
+ -21z m-285 -426 c-113 -110 -134 -122 -227 -138 -46 -8 -96 -19 -113 -24 l-30
42
+ -9 24 17 c35 25 394 221 406 222 5 0 -22 -31 -60 -68z m-80 -169 c-22 -14 -78
43
+ -57 -123 -94 -56 -46 -96 -71 -120 -75 -33 -6 -223 -61 -277 -80 -69 -24 276
44
+ 178 390 228 102 46 104 46 140 47 l30 1 -40 -27z m2033 -515 c-60 -74 -62 -81
45
+ -33 -135 37 -70 32 -114 -26 -250 -33 -78 -33 -39 1 48 37 97 40 155 11 203
46
+ -12 18 -21 42 -21 54 0 20 89 136 98 127 3 -2 -11 -24 -30 -47z m-811 -42 c89
47
+ 0 164 -4 167 -7 16 -16 -98 -250 -183 -374 -34 -50 -64 -106 -67 -125 -6 -34
48
+ -10 -37 -92 -70 -48 -19 -89 -36 -92 -38 -4 -1 -17 17 -30 40 -13 24 -48 66
49
+ -77 95 -40 39 -54 61 -59 91 l-6 39 52 7 c51 7 150 44 150 56 0 3 -27 12 -61
50
+ 19 -43 8 -71 21 -95 44 l-35 32 71 116 72 116 61 -20 c51 -16 92 -20 224 -21z
51
+ m563 -16 c35 -12 36 -14 54 -95 10 -46 15 -92 11 -105 -4 -13 -25 -42 -47 -66
52
+ l-40 -44 26 -10 c21 -8 25 -14 21 -37 -2 -15 -6 -53 -9 -84 -3 -31 -12 -71
53
+ -20 -90 -51 -121 -55 -129 -71 -123 -8 3 -15 12 -15 19 0 7 -13 24 -30 38 -26
54
+ 22 -27 25 -10 30 10 3 28 20 39 38 29 47 27 145 -3 306 -14 71 -28 151 -31
55
+ 180 l-7 52 39 4 c41 4 41 4 93 -13z m-206 -47 c4 -32 18 -121 32 -198 28 -150
56
+ 33 -220 17 -236 -12 -12 -73 0 -73 14 0 5 -12 35 -27 66 -27 54 -28 60 -27
57
+ 222 1 92 5 172 8 178 4 6 20 11 35 11 27 0 29 -3 35 -57z m506 -85 c16 -63 7
58
+ -217 -15 -256 l-14 -27 5 30 c21 125 21 217 -2 294 -5 16 -4 22 3 18 6 -4 17
59
+ -30 23 -59z m-1720 -141 c0 -8 27 -52 59 -98 74 -106 88 -150 72 -222 -15 -69
60
+ -51 -129 -154 -261 -105 -134 -140 -200 -145 -276 -5 -70 8 -113 55 -181 44
61
+ -64 37 -74 -12 -17 -61 71 -70 94 -70 183 0 71 4 88 36 155 20 41 73 125 119
62
+ 185 99 132 140 212 140 275 0 48 -14 79 -71 162 -38 55 -57 108 -39 108 5 0
63
+ 10 -6 10 -13z m-469 -285 c-11 -22 -61 -76 -110 -121 -95 -87 -111 -115 -111
64
+ -189 0 -38 -2 -43 -15 -32 -24 20 -28 72 -10 116 15 38 256 287 263 272 2 -3
65
+ -6 -24 -17 -46z m-270 -109 c-10 -21 -35 -54 -55 -72 l-36 -35 0 26 c0 18 17
66
+ 45 52 83 56 61 72 60 39 -2z m1963 -153 c43 0 168 -36 224 -64 51 -26 88 -57
67
+ 113 -96 l17 -25 7 38 c5 23 3 49 -5 67 -17 41 -11 44 30 12 18 -14 39 -27 46
68
+ -28 29 -4 78 -52 97 -94 12 -27 22 -77 25 -123 l5 -78 22 21 23 21 6 -24 c3
69
+ -14 42 -64 86 -112 101 -111 125 -159 124 -245 -1 -53 -8 -83 -42 -162 -67
70
+ -154 -51 -238 51 -283 l29 -12 -47 -41 c-58 -51 -130 -76 -215 -75 -72 0 -142
71
+ 25 -174 62 -22 24 -12 27 24 6 33 -19 114 -19 129 -1 10 12 7 18 -18 31 -88
72
+ 45 -78 147 29 305 79 117 91 164 58 230 -18 34 -43 58 -108 102 -93 63 -124
73
+ 95 -141 146 -18 54 -61 124 -70 115 -5 -5 -12 -30 -15 -56 -13 -90 65 -201
74
+ 194 -281 66 -40 86 -70 76 -112 -4 -14 -35 -68 -70 -120 -35 -52 -69 -114 -75
75
+ -137 -7 -23 -16 -46 -21 -52 -16 -18 -8 34 23 152 37 143 40 203 10 261 -28
76
+ 56 -82 93 -189 132 -175 63 -187 81 -179 254 l5 119 -41 -63 c-38 -58 -41 -67
77
+ -42 -134 0 -113 47 -179 158 -220 23 -9 69 -25 102 -37 76 -28 120 -71 130
78
+ -126 7 -44 -21 -181 -73 -351 -20 -68 -24 -97 -20 -165 5 -87 18 -123 71 -191
79
+ l31 -39 -39 7 c-154 27 -310 115 -362 203 -22 37 -24 50 -18 95 11 79 24 103
80
+ 24 47 1 -59 51 -160 96 -195 37 -28 90 -40 131 -30 26 7 26 7 -20 36 -90 58
81
+ -102 108 -64 283 43 205 25 286 -84 386 -156 141 -213 220 -226 313 -3 28 -8
82
+ 36 -16 28 -16 -16 -11 -186 7 -245 l16 -50 -25 30 c-13 17 -39 59 -57 95 -29
83
+ 59 -32 73 -32 156 0 103 -8 108 -45 23 -43 -101 -35 -241 19 -348 31 -61 110
84
+ -139 181 -180 36 -20 71 -49 79 -63 14 -24 13 -32 -2 -82 -10 -31 -21 -56 -26
85
+ -56 -4 0 -12 15 -19 34 -20 54 -69 115 -119 146 -26 17 -48 28 -51 26 -2 -3
86
+ 10 -22 27 -43 50 -63 85 -150 89 -225 2 -38 1 -68 -2 -68 -3 0 -20 15 -36 33
87
+ l-29 32 -1 -28 c0 -38 -21 -117 -30 -117 -14 0 -27 25 -40 78 -7 32 -20 58
88
+ -33 67 -21 15 -21 15 9 15 33 0 84 29 52 30 -21 0 -68 21 -68 30 0 4 12 13 28
89
+ 20 l27 13 -30 10 c-42 13 -82 54 -96 94 -7 23 -9 73 -4 152 9 148 -1 190 -61
90
+ 250 -24 24 -44 47 -44 52 0 4 -21 25 -46 47 -55 47 -55 62 3 138 l38 49 6 -42
91
+ c7 -57 15 -62 29 -19 15 47 63 94 203 199 65 49 125 100 134 114 l17 26 39
92
+ -47 c31 -37 45 -46 71 -46z m-2619 12 c87 -25 284 -19 423 15 17 4 22 1 22
93
+ -15 0 -28 -19 -33 -157 -39 -161 -8 -327 19 -368 60 -7 7 -3 7 10 2 11 -4 43
94
+ -14 70 -23z m955 -71 c0 -41 39 -93 93 -121 47 -25 62 -43 51 -62 -4 -5 -13
95
+ -4 -22 5 -10 8 -45 29 -78 46 -73 39 -89 65 -74 122 13 45 30 52 30 10z m-385
96
+ -156 c7 -96 2 -145 -15 -145 -6 0 -10 12 -10 26 0 15 -5 55 -12 89 -9 50 -8
97
+ 70 2 94 7 17 16 31 20 31 5 0 11 -43 15 -95z m946 -210 c53 -55 96 -131 83
98
+ -144 -5 -6 -142 142 -170 183 -26 38 -37 81 -28 109 6 18 10 14 30 -31 13 -30
99
+ 50 -81 85 -117z m-641 70 c0 -8 23 -58 50 -110 28 -52 50 -108 50 -123 l-1
100
+ -27 -16 30 c-8 17 -30 46 -49 65 -18 19 -38 48 -43 63 -14 36 -14 117 -1 117
101
+ 6 0 10 -7 10 -15z m435 -296 c4 -11 38 -52 77 -91 38 -38 67 -72 64 -75 -9 -9
102
+ -114 57 -140 88 -17 20 -26 43 -26 65 0 38 15 46 25 13z m263 -836 c-10 -2
103
+ -26 -2 -35 0 -10 3 -2 5 17 5 19 0 27 -2 18 -5z"/>
104
+ <path d="M5097 2386 c-34 -82 -138 -227 -231 -321 -105 -107 -232 -203 -431
105
+ -326 -284 -177 -281 -174 -279 -319 3 -219 60 -416 166 -576 82 -122 145 -136
106
+ 288 -64 117 59 274 150 403 233 l107 70 0 674 c0 370 -1 673 -2 673 -2 0 -11
107
+ -20 -21 -44z"/>
108
+ <path d="M1 1675 l-1 -490 109 111 c118 119 111 108 154 279 8 33 27 88 41
109
+ 123 36 85 27 113 -58 181 -87 69 -191 182 -220 238 l-25 48 0 -490z"/>
110
+ <path d="M5100 600 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z"/>
111
+ <path d="M5050 580 c-8 -5 -10 -10 -5 -10 6 0 17 5 25 10 8 5 11 10 5 10 -5 0
112
+ -17 -5 -25 -10z"/>
113
+ <path d="M4680 385 c-14 -8 -20 -14 -15 -14 6 0 21 6 35 14 14 8 21 14 15 14
114
+ -5 0 -21 -6 -35 -14z"/>
115
+ <path d="M5043 272 c-39 -26 -105 -67 -145 -91 -40 -24 -118 -74 -172 -110
116
+ l-100 -66 173 -3 174 -2 73 45 74 46 0 115 c0 63 -1 114 -2 114 -2 -1 -35 -22
117
+ -75 -48z"/>
118
+ <path d="M4420 270 c-19 -11 -30 -19 -25 -19 6 0 26 8 45 19 19 11 31 19 25
119
+ 19 -5 0 -26 -8 -45 -19z"/>
120
+ </g>
121
+ </svg>
Binary file
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square150x150logo src="/assets/favicons/mstile-150x150.png"/>
6
+ <TileColor>#000000</TileColor>
7
+ </tile>
8
+ </msapplication>
9
+ </browserconfig>
Binary file
@@ -13,7 +13,7 @@ let projectRoot = args[0] || process.cwd();
13
13
 
14
14
  let manager = new Manager({
15
15
  projectRoot,
16
- entities: rawRegisteredEntities,
16
+ rawRegisteredEntities,
17
17
  entitiesConfig,
18
18
  entitiesTranslations
19
19
  });
@@ -27,6 +27,6 @@ manager.start().then((result) => {
27
27
  Logger.info('Reldens CMS started by command.');
28
28
  return true;
29
29
  }).catch((error) => {
30
- Logger.error('Failed to start CMS: '+error.message);
30
+ Logger.critical('Failed to start CMS: '+error.message);
31
31
  process.exit();
32
32
  });
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "Reldens",
3
+ "short_name": "Reldens",
4
+ "start_url": "/",
5
+ "display": "standalone",
6
+ "theme_color": "#000000",
7
+ "background_color": "#000000",
8
+ "icons": [
9
+ {
10
+ "src": "assets/favicons/android-icon-144x144.png",
11
+ "sizes": "144x144",
12
+ "type": "image/png",
13
+ "purpose": "any"
14
+ },
15
+ {
16
+ "src": "assets/favicons/android-icon-192x192.png",
17
+ "sizes": "192x192",
18
+ "type": "image/png"
19
+ },
20
+ {
21
+ "src": "assets/favicons/android-icon-512x512.png",
22
+ "sizes": "512x512",
23
+ "type": "image/png",
24
+ "purpose": "maskable"
25
+ }
26
+ ]
27
+ }
@@ -1,85 +0,0 @@
1
- <h2>Maps Wizard</h2>
2
- <div class="sub-content maps-wizard">
3
- <div class="sub-content-box">
4
- <form class="sub-content-form maps-wizard-form confirmation-required"
5
- name="maps-wizard-form"
6
- id="maps-wizard-form"
7
- action="{{&actionPath}}"
8
- method="post"
9
- enctype="multipart/form-data">
10
- <input type="hidden" name="mainAction" id="mainAction" value="import"/>
11
- <input type="hidden" name="generatedMapsHandler" id="generatedMapsHandler" value="{{&generatedMapsHandler}}"/>
12
- <input type="hidden" name="importAssociationsForChangePoints" id="importAssociationsForChangePoints" value="{{&importAssociationsForChangePoints}}"/>
13
- <input type="hidden" name="importAssociationsRecursively" id="importAssociationsRecursively" value="{{&importAssociationsRecursively}}"/>
14
- <input type="hidden" name="automaticallyExtrudeMaps" id="automaticallyExtrudeMaps" value="{{&automaticallyExtrudeMaps}}"/>
15
- <input type="hidden" name="verifyTilesetImage" id="verifyTilesetImage" value="{{&verifyTilesetImage}}"/>
16
- <input type="hidden" name="handlerParams" id="handlerParams" value="{{handlerParams}}"/>
17
- <div class="main-action-container maps-selection">
18
- <h3>Select the maps to be imported</h3>
19
- <p>Notes:<p>
20
- <p>
21
- - The Game Server requires a reboot in order to make the maps available on the game.<br/>
22
- - If you refresh the page you will get a new set of random maps generated.<br/>
23
- - Generated sub-maps will be automatically imported, if you don't want to import those you can download all the related maps (the main map and the sub-map) and edit change them to your needs.<br/>
24
- </p>
25
- <ul class="wizard-options-container">
26
- {{#maps}}
27
- <li class="wizard-map-option-container">
28
- <div class="selector-box">
29
- <input class="map-wizard-option" type="checkbox" name="selectedMaps[]" id="maps-wizard-map-option-{{&key}}" value="{{&key}}"/>
30
- <input type="hidden" name="map-title-{{&key}}" id="map-title-{{&key}}" value="{{&key}}"/>
31
- <label class="main-option" for="maps-wizard-map-option-{{&key}}">
32
- {{&key}}
33
- </label>
34
- <p>Downloads:</p>
35
- <p>
36
- - <a href="{{&mapJson}}" target="_blank">{{&mapJson}}</a><br/>
37
- - <a href="{{&mapImage}}" target="_blank">{{&mapImage}}</a>
38
- </p>
39
- </div>
40
- <canvas
41
- class="mapCanvas"
42
- data-toggle="modal"
43
- width="{{&mapWidth}}"
44
- height="{{&mapHeight}}"
45
- data-tile-width="{{&tileWidth}}"
46
- data-tile-height="{{&tileHeight}}"
47
- data-image-key="{{&mapImage}}"
48
- data-map-json="{{&mapJson}}">
49
- </canvas>
50
- {{#hasSubMaps}}
51
- <div class="sub-maps">
52
- <p class="sub-map-option-description clickable" data-expand-collapse=".sub-maps-container-{{&key}}">
53
- <img class="icon-sm" src="/assets/admin/filters.png" alt="Associated maps"/>
54
- <span>Associated maps generated</span>
55
- </p>
56
- <div class="sub-maps-container sub-maps-container-{{&key}} hidden">
57
- {{#subMaps}}
58
- <p>{{&key}}</p>
59
- <p>Downloads:</p>
60
- <p>
61
- - <a href="{{&mapJson}}" target="_blank">{{&mapJson}}</a><br/>
62
- - <a href="{{&mapImage}}" target="_blank">{{&mapImage}}</a>
63
- </p>
64
- <canvas
65
- class="mapCanvas"
66
- data-toggle="modal"
67
- width="{{&mapWidth}}"
68
- height="{{&mapHeight}}"
69
- data-tile-width="{{&tileWidth}}"
70
- data-tile-height="{{&tileHeight}}"
71
- data-image-key="{{&mapImage}}"
72
- data-map-json="{{&mapJson}}">
73
- </canvas>
74
- {{/subMaps}}
75
- </div>
76
- </div>
77
- {{/hasSubMaps}}
78
- </li>
79
- {{/maps}}
80
- </ul>
81
- </div>
82
- <input type="submit" class="button button-primary button-maps-wizard" value="Import Selected Maps"/>
83
- </form>
84
- </div>
85
- </div>
@@ -1,341 +0,0 @@
1
- <h2>Maps Wizard</h2>
2
- <div class="sub-content maps-wizard">
3
- <div class="sub-content-box">
4
- <form class="sub-content-form maps-wizard-form confirmation-required"
5
- name="maps-wizard-form"
6
- id="maps-wizard-form"
7
- action="{{&actionPath}}"
8
- method="post"
9
- enctype="multipart/form-data">
10
- <input type="hidden" name="mainAction" id="mainAction" value="generate"/>
11
- <div class="main-action-container">
12
- <p>What would you like to do?</p>
13
- <ul class="wizard-options-container">
14
- <li class="wizard-option-container active">
15
- <div class="checkbox-container">
16
- <input class="map-wizard-option with-state" type="radio" name="mapsWizardAction" id="mapsWizardAction-1" value="elements-object-loader" checked="checked"/>
17
- <label class="main-option" for="mapsWizardAction-1">
18
- Generate a SINGLE random map with Layer Elements Object Loader (LayerElementsObjectLoader)
19
- </label>
20
- </div>
21
- <div class="maps-wizard-option-content mapsWizardAction-1-data">
22
- <p>
23
- Generator Data example:<br/>
24
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/map-data.json" target="_blank">
25
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/map-data.json
26
- </a>
27
- </p>
28
- <button type="button" class="button button-primary set-sample-data" data-option-value="elements-object-loader">
29
- Set Sample Data in "Generator Data"
30
- </button>
31
- <p>
32
- Expected JSON files examples:<br/>
33
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/house-001.json" target="_blank">
34
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/house-001.json
35
- </a><br/>
36
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/house-002.json" target="_blank">
37
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/house-002.json
38
- </a><br/>
39
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/tree.json" target="_blank">
40
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/tree.json
41
- </a>
42
- </p>
43
- <p>
44
- Expected Images files examples:<br/>
45
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/tilesheet.png" target="_blank">
46
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-object/tilesheet.png
47
- </a>
48
- </p>
49
- <p>
50
- Note:<br/>
51
- In the examples above, all the tileset JSON files use the same tileset image (this is because we used the already optimized version of the tileset).<br/>
52
- Case disclaimer:
53
- In theory, it should also work if each element has its own image, but this still needs to be tested.<br/>
54
- For now, you can use the composite option to use multiple tileset images and those will be merged by the generator which use the Tile Map Optimizer.
55
- </p>
56
- </div>
57
- </li>
58
- <li class="wizard-option-container">
59
- <div class="checkbox-container">
60
- <input class="map-wizard-option with-state" type="radio" name="mapsWizardAction" id="mapsWizardAction-2" value="elements-composite-loader"/>
61
- <label class="main-option" for="mapsWizardAction-2">
62
- Generate a SINGLE random map with Layer Elements Composite Loader (LayerElementsCompositeLoader)
63
- </label>
64
- </div>
65
- <div class="maps-wizard-option-content mapsWizardAction-2-data">
66
- <p>
67
- Generator Data example:<br/>
68
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data.json" target="_blank">
69
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data.json
70
- </a>
71
- </p>
72
- <button type="button" class="button button-primary set-sample-data" data-option-value="elements-composite-loader">
73
- Set Sample Data in "Generator Data"
74
- </button>
75
- <p>
76
- Expected JSON files examples:<br/>
77
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite.json" target="_blank">
78
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite.json
79
- </a>
80
- </p>
81
- <p>
82
- Expected Images files examples:<br/>
83
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png" target="_blank">
84
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png
85
- </a><br/>
86
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png" target="_blank">
87
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png
88
- </a><br/>
89
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png" target="_blank">
90
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png
91
- </a><br/>
92
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png" target="_blank">
93
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png
94
- </a><br/>
95
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png" target="_blank">
96
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png
97
- </a><br/>
98
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png" target="_blank">
99
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png
100
- </a><br/>
101
- </p>
102
- <p>
103
- Note:<br/>
104
- In this case as you can see we have a single tile map JSON file which contains several tilesets with different images.<br/>
105
- All the original contents are 16x16 pixels, so you can see we set "factor: 2" in the sample params to run the optimizer and get 32x32 pixels tiles in the result.
106
- </p>
107
- </div>
108
- </li>
109
- <li class="wizard-option-container">
110
- <div class="checkbox-container">
111
- <input class="map-wizard-option with-state" type="radio" name="mapsWizardAction" id="mapsWizardAction-3" value="multiple-by-loader"/>
112
- <label class="main-option" for="mapsWizardAction-3">
113
- Generate MULTIPLE random maps by Multiple Loader (MultipleByLoaderGenerator)
114
- </label>
115
- </div>
116
- <div class="maps-wizard-option-content mapsWizardAction-3-data">
117
- <p>
118
- Generator Data example:<br/>
119
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data.json" target="_blank">
120
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data-with-names.json
121
- </a>
122
- </p>
123
- <button type="button" class="button button-primary set-sample-data" data-option-value="multiple-by-loader">
124
- Set Sample Data in "Generator Data"
125
- </button>
126
- <p>
127
- Expected JSON files examples:<br/>
128
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite.json" target="_blank">
129
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite.json
130
- </a>
131
- </p>
132
- <p>
133
- Expected Images files examples:<br/>
134
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png" target="_blank">
135
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png
136
- </a><br/>
137
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png" target="_blank">
138
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png
139
- </a><br/>
140
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png" target="_blank">
141
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png
142
- </a><br/>
143
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png" target="_blank">
144
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png
145
- </a><br/>
146
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png" target="_blank">
147
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png
148
- </a><br/>
149
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png" target="_blank">
150
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png
151
- </a><br/>
152
- </p>
153
- <p>
154
- Note:<br/>
155
- In this case we have the same structure as in the SINGLE import, but we include multiple map names in the provided data and use a different loader to create multiple maps at once.
156
- </p>
157
- </div>
158
- </li>
159
- <li class="wizard-option-container">
160
- <div class="checkbox-container">
161
- <input class="map-wizard-option with-state" type="radio" name="mapsWizardAction" id="mapsWizardAction-4" value="multiple-with-association-by-loader"/>
162
- <label class="main-option" for="mapsWizardAction-4">
163
- Generate MULTIPLE random maps with Layer Elements Composite Loader (MultipleWithAssociationsByLoaderGenerator)
164
- </label>
165
- </div>
166
- <div class="maps-wizard-option-content mapsWizardAction-4-data">
167
- <p>
168
- Generator Data example:<br/>
169
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data.json" target="_blank">
170
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/map-composite-data-with-associations.json
171
- </a>
172
- </p>
173
- <button type="button" class="button button-primary set-sample-data" data-option-value="multiple-with-association-by-loader">
174
- Set Sample Data in "Generator Data"
175
- </button>
176
- <p>
177
- Expected JSON files examples:<br/>
178
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite-with-associations.json" target="_blank">
179
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/reldens-town-composite-with-associations.json
180
- </a><br/>
181
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house-composite.json" target="_blank">
182
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house-composite.json
183
- </a>
184
- </p>
185
- <p>
186
- Expected Images files examples:<br/>
187
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png" target="_blank">
188
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/outside.png
189
- </a><br/>
190
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png" target="_blank">
191
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/terrain.png
192
- </a><br/>
193
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png" target="_blank">
194
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/house.png
195
- </a><br/>
196
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png" target="_blank">
197
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/doors.png
198
- </a><br/>
199
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png" target="_blank">
200
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/water.png
201
- </a><br/>
202
- <a href="https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png" target="_blank">
203
- https://github.com/damian-pastorini/tile-map-generator/blob/master/examples/layer-elements-composite/inside.png
204
- </a><br/>
205
- </p>
206
- <p>
207
- Note:<br/>
208
- In this case we have the same structure as in the SINGLE import, but we include multiple maps information and the association options in the provided data, but use a different loader to create multiple associated maps at once.
209
- </p>
210
- </div>
211
- </li>
212
- </ul>
213
- <hr/>
214
- <p>NOTE: if you already uploaded all your files and never manually removed them from the "generate-data" folder, you don't need to upload the same files again.</p>
215
- <div class="input-box">
216
- <label for="generatorImages">Images</label>
217
- <input type="file" name="generatorImages" id="generatorImages" multiple="multiple"/>
218
- </div>
219
- <div class="input-box">
220
- <label for="generatorJsonFiles">JSON Files</label>
221
- <input type="file" name="generatorJsonFiles" id="generatorJsonFiles" multiple="multiple"/>
222
- </div>
223
- <hr/>
224
- <label for="generatorData">Generator data:</label>
225
- <textarea name="generatorData" id="generatorData" class="generatorData" cols="30" rows="10" placeholder="JSON data for map generation process" required="required"></textarea>
226
- </div>
227
- <div class="submit-container">
228
- <input type="submit" class="button button-primary button-maps-wizard" value="Generate"/>
229
- <img class="hidden loading" src="/assets/web/loading.gif"/>
230
- </div>
231
- </form>
232
- </div>
233
- </div>
234
- <script type="text/javascript">
235
- let data = {
236
- 'elements-object-loader': JSON.stringify({
237
- tileSize: 32,
238
- tileSheetPath: 'tilesheet.png',
239
- tileSheetName: 'tilesheet.png',
240
- imageHeight: 578,
241
- imageWidth: 612,
242
- tileCount: 306,
243
- columns: 18,
244
- margin: 1,
245
- spacing: 2,
246
- elementsQuantity: {
247
- house1: 3,
248
- house2: 2,
249
- tree: 6
250
- },
251
- groundTile: 116,
252
- mainPathSize: 3,
253
- blockMapBorder: true,
254
- freeSpaceTilesQuantity: 2,
255
- variableTilesPercentage: 15.0,
256
- pathTile: 121,
257
- collisionLayersForPaths: ['change-points', 'collisions', 'tree-base'],
258
- randomGroundTiles: [26, 27, 28, 29, 30, 36, 37, 38, 39, 50, 51, 52, 53],
259
- surroundingTiles: {
260
- '-1,-1': 127,
261
- '-1,0': 124,
262
- '-1,1': 130,
263
- '0,-1': 126,
264
- '0,1': 129,
265
- '1,-1': 132,
266
- '1,0': 131,
267
- '1,1': 133
268
- },
269
- corners: {
270
- '-1,-1': 285,
271
- '-1,1': 284,
272
- '1,-1': 283,
273
- '1,1': 282
274
- },
275
- layerElementsFiles: {
276
- house1: 'house-001.json',
277
- house2: 'house-002.json',
278
- tree: 'tree.json'
279
- }
280
- }),
281
- 'elements-composite-loader': JSON.stringify({
282
- factor: 2,
283
- mainPathSize: 3,
284
- blockMapBorder: true,
285
- freeSpaceTilesQuantity: 2,
286
- variableTilesPercentage: 15,
287
- collisionLayersForPaths: ['change-points', 'collisions', 'tree-base'],
288
- compositeElementsFile: 'reldens-town-composite.json',
289
- automaticallyExtrudeMaps: '1'
290
- }),
291
- 'multiple-by-loader': JSON.stringify({
292
- factor: 2,
293
- mainPathSize: 3,
294
- blockMapBorder: true,
295
- freeSpaceTilesQuantity: 2,
296
- variableTilesPercentage: 15,
297
- collisionLayersForPaths: ['change-points', 'collisions', 'tree-base'],
298
- mapNames: ['map-001', 'map-002', 'map-003'],
299
- compositeElementsFile: 'reldens-town-composite.json',
300
- automaticallyExtrudeMaps: '1'
301
- }),
302
- 'multiple-with-association-by-loader': JSON.stringify({
303
- factor: 2,
304
- mainPathSize: 3,
305
- blockMapBorder: true,
306
- freeSpaceTilesQuantity: 2,
307
- variableTilesPercentage: 15,
308
- collisionLayersForPaths: ['change-points', 'collisions', 'tree-base'],
309
- mapsInformation: [
310
- {mapName: 'town-001', mapTitle: 'Town 1'},
311
- {mapName: 'town-002', mapTitle: 'Town 2'},
312
- {mapName: 'town-003', mapTitle: 'Town 3'},
313
- {mapName: 'town-004', mapTitle: 'Town 4'}
314
- ],
315
- associationsProperties: {
316
- generateElementsPath: false,
317
- blockMapBorder: true,
318
- freeSpaceTilesQuantity: 0,
319
- variableTilesPercentage: 0,
320
- placeElementsOrder: 'inOrder',
321
- orderElementsBySize: false,
322
- randomizeQuantities: true,
323
- applySurroundingPathTiles: false,
324
- automaticallyExtrudeMaps: true
325
- },
326
- compositeElementsFile: 'reldens-town-composite-with-associations.json',
327
- automaticallyExtrudeMaps: '1'
328
- })
329
- };
330
-
331
- let options = document.querySelectorAll('.set-sample-data');
332
- let generatorDataElement = document.querySelector('.generatorData');
333
- if(generatorDataElement){
334
- for(let option of options){
335
- option.addEventListener('click', () => {
336
- generatorDataElement.value = data[option.dataset.optionValue] || '';
337
- });
338
- }
339
- }
340
-
341
- </script>