| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | import * as fs from "fs"; | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  | import {Utils} from "./Utils"; | 
					
						
							| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  | function genImages() { | 
					
						
							| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     console.log("Generating images") | 
					
						
							|  |  |  |     const dir = fs.readdirSync("./assets/svg") | 
					
						
							| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     let module = "import {Img} from \"./UI/Img\";\nimport {FixedUiElement} from \"./UI/Base/FixedUiElement\";\n\nexport default class Svg {\n\n\n"; | 
					
						
							|  |  |  |     for (const path of dir) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (!path.endsWith(".svg")) { | 
					
						
							|  |  |  |             throw "Non-svg file detected in the svg files: " + path; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         const svg = fs.readFileSync("./assets/svg/" + path, "utf-8") | 
					
						
							|  |  |  |             .replace(/\n/g, " ") | 
					
						
							|  |  |  |             .replace(/\r/g, "") | 
					
						
							|  |  |  |             .replace(/\\/g, "\\") | 
					
						
							|  |  |  |             .replace(/"/g, "\\\"") | 
					
						
							|  |  |  |         const name = path.substr(0, path.length - 4) | 
					
						
							|  |  |  |             .replace(/[ -]/g, "_"); | 
					
						
							|  |  |  |         module += `    public static ${name} = "${svg}"\n` | 
					
						
							|  |  |  |         module += `    public static ${name}_img = Img.AsImageElement(Svg.${name})\n` | 
					
						
							|  |  |  |         module += `    public static ${name}_ui() { return new FixedUiElement(Svg.${name}_img);}\n\n` | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     module += "}\n"; | 
					
						
							|  |  |  |     fs.writeFileSync("Svg.ts", module); | 
					
						
							|  |  |  |     console.log("Done") | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function isTranslation(tr: any): boolean { | 
					
						
							|  |  |  |     for (const key in tr) { | 
					
						
							|  |  |  |         if (typeof tr[key] !== "string") { | 
					
						
							|  |  |  |             return false; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | function transformTranslation(obj: any, depth = 1) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (isTranslation(obj)) { | 
					
						
							|  |  |  |         return `new Translation( ${JSON.stringify(obj)} )` | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let values = "" | 
					
						
							|  |  |  |     for (const key in obj) { | 
					
						
							|  |  |  |         values += (Utils.Times((_) => "  ", depth)) + key + ": " + transformTranslation(obj[key], depth + 1) + ",\n" | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return `{${values}}`; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function genTranslations() { | 
					
						
							|  |  |  |     const translations = JSON.parse(fs.readFileSync("./assets/translations.json", "utf-8")) | 
					
						
							|  |  |  |     const transformed = transformTranslation(translations); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let module = `import {Translation} from "./UI/i18n/Translation"\n\nexport default class AllTranslationAssets {\n\n`; | 
					
						
							|  |  |  |     module += " public static t = " + transformed; | 
					
						
							|  |  |  |     module += "}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     fs.writeFileSync("AllTranslationAssets.ts", module); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | genTranslations() | 
					
						
							|  |  |  | genImages() |