perf[storage]: perfect gdscript generate option

This commit is contained in:
godotg committed 2022-10-28 12:17:10 +08:00
1 parent 1976be79a4
commit 370c090d23
7 files changed
+41 -23

No files matched your search

@@ -68,10 +68,7 @@ public abstract class ExportUtils {
}
public static void csv2json(String inputDir, String outputDir) throws IOException {
var csvFiles = FileUtils.getAllReadableFiles(new File(inputDir))
.stream()
.filter(it -> ResourceEnum.getResourceEnumByType(FileUtils.fileExtName(it.getName())) == ResourceEnum.CSV)
.collect(Collectors.toList());
var csvFiles = scanCsvFiles(inputDir);
for (var csv : csvFiles) {
var excelSimpleName = FileUtils.fileSimpleName(csv.getName());
var resourceData = CsvReader.readResourceDataFromCSV(FileUtils.openInputStream(csv), csv.getName());
@@ -82,13 +79,20 @@ public abstract class ExportUtils {
}
}
private static List<File> scanExcelFiles(String inputDir) {
public static List<File> scanExcelFiles(String inputDir) {
return FileUtils.getAllReadableFiles(new File(inputDir))
.stream()
.filter(it -> ResourceEnum.isExcel(FileUtils.fileExtName(it.getName())))
.collect(Collectors.toList());
}
public static List<File> scanCsvFiles(String inputDir) {
return FileUtils.getAllReadableFiles(new File(inputDir))
.stream()
.filter(it -> ResourceEnum.getResourceEnumByType(FileUtils.fileExtName(it.getName())) == ResourceEnum.CSV)
.collect(Collectors.toList());
}
// 将class里的map自动赋值storage
public static <T> T autoWrapData(Class<T> clazz, Map<Class<?>, Storage<?, ?>> storageMap) {
var instance = ReflectionUtils.newInstance(clazz);
@@ -92,6 +92,7 @@ public class ExportBinaryTest {
protocols.add(ResourceData.class);
protocols.addAll(storageManager.storageMap().keySet());
var operation = new GenerateOperation();
operation.setProtocolPath("D:\\github\\godot-bird\\test\\storage\\protocol");
operation.getGenerateLanguages().add(CodeLanguage.GdScript);
ProtocolManager.initProtocolAuto(protocols, operation);
@@ -13,6 +13,7 @@
package com.zfoo.storage.export;
import com.zfoo.protocol.util.FileUtils;
import com.zfoo.protocol.util.StringUtils;
import com.zfoo.storage.interpreter.CsvReader;
import com.zfoo.storage.util.ExportUtils;
import org.junit.Ignore;
@@ -34,6 +35,10 @@ public class ExportCsvTest {
var outputDir = "E:\\workspace\\zfoo\\storage\\src\\test\\resources\\excel";
ExportUtils.excel2csv(inputDir, outputDir);
// godot4.x导入csv,莫名奇妙生成了一些translation文件,批量修改一下文件的名称
var csvFiles = ExportUtils.scanCsvFiles(outputDir);
csvFiles.stream().forEach(it -> it.renameTo(new File(StringUtils.format("{}.txt", it.getAbsolutePath()))));
csvFiles.stream().forEach(it -> FileUtils.deleteFile(it));
}
@Test