add LdtkFieldInstance and LdtkEntityMap classes; update LdtkSceneBuilder to support entity mapping

This commit is contained in:
2025-09-23 02:21:18 +02:00
parent 22271e741d
commit 43e5bfcdce
11 changed files with 278 additions and 10 deletions

View File

@@ -44,9 +44,11 @@ public partial class LdtkResourceImporter : EditorImportPlugin
GD.PushError("Parsed LDTK data is null.");
return Error.Failed;
}
var entityMap = options.TryGetValue("entity_map", out var map) ? map.As<LdtkEntityMap>() : null;
// 3. Use the Scene Builder to generate the Godot scene
var builder = new LdtkSceneBuilder(ldtkData, sourceFile);
var builder = new LdtkSceneBuilder(ldtkData, sourceFile, entityMap);
var rootNode = builder.BuildLdtkProjectRoot();
var scene = new PackedScene();
@@ -78,6 +80,13 @@ public partial class LdtkResourceImporter : EditorImportPlugin
{ "name", "import_tilemaps" },
{ "default_value", true },
{ "usage", (int)(PropertyUsageFlags.Default | PropertyUsageFlags.UpdateAllIfModified) }
},
new()
{
{ "name", "entity_map" },
{ "default_value", new LdtkEntityMap() },
{ "property_hint", (int)PropertyHint.ResourceType },
{ "hint_string", "LdtkEntityMap" },
}
};