| 
									
										
										
										
											2020-11-05 12:28:02 +01:00
										 |  |  | import * as fs from "fs"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-21 02:44:35 +01:00
										 |  |  | function genImages(dryrun = false) { | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-03 00:19:42 +01:00
										 |  |  |     let module = "import Img from \"./UI/Base/Img\";\nimport {FixedUiElement} from \"./UI/Base/FixedUiElement\";\n\nexport default class Svg {\n\n\n"; | 
					
						
							| 
									
										
										
										
											2020-11-17 02:22:48 +01:00
										 |  |  |     const allNames: string[] = []; | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     for (const path of dir) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |         if (path.endsWith("license_info.json")) { | 
					
						
							| 
									
										
										
										
											2021-04-10 15:01:28 +02:00
										 |  |  |             continue; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |         if (!path.endsWith(".svg")) { | 
					
						
							|  |  |  |             throw "Non-svg file detected in the svg files: " + path; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-21 02:44:35 +01:00
										 |  |  |         let svg = fs.readFileSync("./assets/svg/" + path, "utf-8") | 
					
						
							| 
									
										
										
										
											2020-11-14 02:54:33 +01:00
										 |  |  |             .replace(/<\?xml.*?>/, "") | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |             .replace(/fill: ?none;/g, "fill: none !important;") // This is such a brittle hack...
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |             .replace(/\n/g, " ") | 
					
						
							|  |  |  |             .replace(/\r/g, "") | 
					
						
							|  |  |  |             .replace(/\\/g, "\\") | 
					
						
							|  |  |  |             .replace(/"/g, "\\\"") | 
					
						
							|  |  |  |         const name = path.substr(0, path.length - 4) | 
					
						
							|  |  |  |             .replace(/[ -]/g, "_"); | 
					
						
							| 
									
										
										
										
											2021-11-21 02:44:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if (dryrun) { | 
					
						
							|  |  |  |             svg = "xxx" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-22 01:08:11 +01:00
										 |  |  |         let rawName = name; | 
					
						
							| 
									
										
										
										
											2022-01-26 21:40:38 +01:00
										 |  |  |         if (dryrun) { | 
					
						
							| 
									
										
										
										
											2021-12-22 01:08:11 +01:00
										 |  |  |             rawName = "add"; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-01-26 21:40:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |         module += `    public static ${name} = "${svg}"\n` | 
					
						
							| 
									
										
										
										
											2021-12-22 01:08:11 +01:00
										 |  |  |         module += `    public static ${name}_img = Img.AsImageElement(Svg.${rawName})\n` | 
					
						
							|  |  |  |         module += `    public static ${name}_svg() { return new Img(Svg.${rawName}, true);}\n` | 
					
						
							|  |  |  |         module += `    public static ${name}_ui() { return new FixedUiElement(Svg.${rawName}_img);}\n\n` | 
					
						
							| 
									
										
										
										
											2021-11-21 02:44:35 +01:00
										 |  |  |         if (!dryrun) { | 
					
						
							|  |  |  |             allNames.push(`"${path}": Svg.${name}`) | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-11-17 02:22:48 +01:00
										 |  |  |     module += `public static All = {${allNames.join(",")}};` | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  |     module += "}\n"; | 
					
						
							|  |  |  |     fs.writeFileSync("Svg.ts", module); | 
					
						
							|  |  |  |     console.log("Done") | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-06 01:58:26 +01:00
										 |  |  | genImages() |