Enum Importation from files is broken
weierstrass1 opened this issue · 1 comments
I tried differents enum files but neither of them worked:
File1, a json:
{
"TileMaskType": "Solid"
}
File2, a json with other format:
{
"TileMaskType": [
"Solid"
]
}
File 3 a txt:
Enum0: T1,T2
Any of this says "Unsupported External Enum", also they have a lot of issues when you try to import, for example some of them do 2 copies of the file, or doesn't return any enum value.
another file that i tried was this didn't work:
{
"TileMaskType": [
"Solid",
"T16x16_XS_Slope_R_1",
"T16x16_XS_Slope_R_2",
"T16x16_XS_Slope_R_3",
"T16x16_XS_Slope_R_4",
"T16x16_XS_Slope_L_1",
"T16x16_XS_Slope_L_2",
"T16x16_XS_Slope_L_3",
"T16x16_XS_Slope_L_4",
"T16x16_XS_Slope_UDR_1",
"T16x16_XS_Slope_UDR_2",
"T16x16_XS_Slope_UDR_3",
"T16x16_XS_Slope_UDR_4",
"T16x16_XS_Slope_UDL_1",
"T16x16_XS_Slope_UDL_2",
"T16x16_XS_Slope_UDL_3",
"T16x16_XS_Slope_UDL_4",
"T16x16_S_Slope_R_1",
"T16x16_S_Slope_R_2",
"T16x16_S_Slope_R_3",
"T16x16_S_Slope_L_1",
"T16x16_S_Slope_L_2",
"T16x16_S_Slope_L_3",
"T16x16_S_Slope_UDR_1",
"T16x16_S_Slope_UDR_2",
"T16x16_S_Slope_UDR_3",
"T16x16_S_Slope_UDL_1",
"T16x16_S_Slope_UDL_2",
"T16x16_S_Slope_UDL_3",
"T16x16_M_Slope_R_1",
"T16x16_M_Slope_R_2",
"T16x16_M_Slope_L_1",
"T16x16_M_Slope_L_2",
"T16x16_M_Slope_UDR_1",
"T16x16_M_Slope_UDR_2",
"T16x16_M_Slope_UDL_1",
"T16x16_M_Slope_UDL_2",
"T16x16_L_Slope_R_1",
"T16x16_L_Slope_L_1",
"T16x16_L_Slope_UDR_1",
"T16x16_L_Slope_UDL_1",
"T16x16_XL_Slope_R_1",
"T16x16_XL_Slope_R_2",
"T16x16_XL_Slope_L_1",
"T16x16_XL_Slope_L_2",
"T16x16_XL_Slope_UDR_1",
"T16x16_XL_Slope_UDR_2",
"T16x16_XL_Slope_UDL_1",
"T16x16_XL_Slope_UDL_2",
"T16x16_XXL_Slope_R_1",
"T16x16_XXL_Slope_R_2",
"T16x16_XXL_Slope_R_3",
"T16x16_XXL_Slope_L_1",
"T16x16_XXL_Slope_L_2",
"T16x16_XXL_Slope_L_3",
"T16x16_XXL_Slope_UDR_1",
"T16x16_XXL_Slope_UDR_2",
"T16x16_XXL_Slope_UDR_3",
"T16x16_XXL_Slope_UDL_1",
"T16x16_XXL_Slope_UDL_2",
"T16x16_XXL_Slope_UDL_3",
"T16x16_XXXL_Slope_R_1",
"T16x16_XXXL_Slope_R_2",
"T16x16_XXXL_Slope_R_3",
"T16x16_XXXL_Slope_R_4",
"T16x16_XXXL_Slope_L_1",
"T16x16_XXXL_Slope_L_2",
"T16x16_XXXL_Slope_L_3",
"T16x16_XXXL_Slope_L_4",
"T16x16_XXXL_Slope_UDR_1",
"T16x16_XXXL_Slope_UDR_2",
"T16x16_XXXL_Slope_UDR_3",
"T16x16_XXXL_Slope_UDR_4",
"T16x16_XXXL_Slope_UDL_1",
"T16x16_XXXL_Slope_UDL_2",
"T16x16_XXXL_Slope_UDL_3",
"T16x16_XXXL_Slope_UDL_4"
]
}
I'm also having issues on v1.5.3 with importing enums. Jotting down some issues I encountered here in case they are helpful for troubleshooting.
Neither JSON nor text are working quite right. In both cases when I import the enum for the first time, I'm unable to see the enum until I close the enums list and reopen it. When I do, the UI says the enum needs to be synced, which results in two enums with the same name (as @weierstrass1 already noted).
When I tried to edit my enum text file then went back to the editor to reload it, the editor crashed with the splash screen saying to file a GitHub issue. In my case the enum text file was
MyEnum: Foo, Bar
MyEnum2: Foo2, Bar2
Here are the details logs copied from the crash screen
Stack:
LDtk version: 1.5.3-64bits
Cannot read properties of undefined (reading 'getValueIndex')
TypeError
TypeError: Cannot read properties of undefined (reading 'getValueIndex')
at importer_enu_TextFileEnum.preserveEnumValuesOrder (file:///C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/js/renderer.js:224177:22)
at importer_enu_TextFileEnum.importToProject (file:///C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/js/renderer.js:224076:10)
at importer_enu_TextFileEnum.load (file:///C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/js/renderer.js:223636:9)
at importer_ExternalEnum.sync (file:///C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/js/renderer.js:223406:6)
at HTMLAnchorElement.<anonymous> (file:///C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/js/renderer.js:304498:28)
at HTMLAnchorElement.dispatch (C:\Users\Tanner\AppData\Local\Programs\ldtk\resources\app.asar\assets\js\jquery.min.js:2:43064)
at v.handle (C:\Users\Tanner\AppData\Local\Programs\ldtk\resources\app.asar\assets\js\jquery.min.js:2:41048)
Processes:
#0 App
|--- #3 page.Editor
|--- #4 misc.FileWatcher
|--- #5 display.WorldRender
|--- #6 display.LevelRender
|--- #7 display.Camera
|--- #8 display.Rulers[--]
|--- #9 tool.SelectionTool[--]
|--- #10 tool.lt.DoNothing[--]
|--- #11 WorldTool
|--- #12 tool.PanView[--]
|--- #13 tool.lt.IntGridTool[--]
|--- #27 ui.modal.panel.EditEnumDefs
|--- #33 ui.Tip
Log:
[BOOT] App started
[BOOT] Version: 1.5.3-64bits (build 473703)
[BOOT] ExePath: C:/Users/Tanner/AppData/Local/Programs/ldtk
[BOOT] Assets: C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets
[BOOT] ExtraFiles: C:/Users/Tanner/AppData/Local/Programs/ldtk/extraFiles
[BOOT] CWD: C:\Users\Tanner\AppData\Local\Programs\ldtk\
[BOOT] Display: 1290x860
[BOOT] Args: soloValues=[], args=[]
[FILE] Loading settings from C:/Users/Tanner/AppData/Roaming/LDtk/settings...
[BOOT] AppZoomFactor: 1
[BOOT] Calling appReady...
[UPDATE] Looking for update
[BOOT] Start args: path=null levelIndex=null
[BOOT] Loading Home...
[GENERAL] Page started: page.Home()
[FILE] Loading page template: home from C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/tpl/pages/home.html
[DEBUG] samplesDir=C:/Users/Tanner/AppData/Local/Programs/ldtk/extraFiles/samples
[GENERAL] Progress created.
[GENERAL] Progress started: : "levels.ldtk: Project...", 5 operation(s)
[LOAD] Loading project levels.ldtk...
[LOAD] Project appBuildId=473703 appJsonVersion=1.5.3 jsonVersion=1.5.3
[LOAD] Loading complete.
[GENERAL] Page started: page.Editor()
[FILE] Loading page template: editor from C:/Users/Tanner/AppData/Local/Programs/ldtk/resources/app.asar/assets/tpl/pages/editor.html
[FILE] Cleared all file watches
[EVENT] LayerInstanceSelected 1
[FILE] Reloading tileset: Placeholder_tiles path=placeholder_tiles.png
[FILE] Loading atlas image: placeholder_tiles.png...
[CACHE] Caching image placeholder_tiles.png...
[CACHE] -> identified as Png
[CACHE] -> base64 1652
[CACHE] -> pixels 64x72
[FILE] -> Loaded 1238 bytes.
[FILE] -> Decoded 64x72 pixels.
[FILE] -> Old size: 64x72 -> 64x72
[WARNING] Tileset Placeholder_tiles remapping (image size changed)...
[FILE] -> Reload result: Ok
[FILE] -> pixelData: Ok
[EVENT] TilesetImageLoaded
[EVENT] ProjectSelected
[WARNING] Full level render requested
[RENDER] Rendering all world...
[RENDER] Rendering world bg...
[RENDER] Rendering world bounds...
[FILE] Watching file: <REDACTED>/placeholder_tiles.png
[RENDER] Rendering world level data.Level#e3add4c0-25d0-11ef-be3a-2bc6b791be28 "Level_0"...