Releases: heygleeson/godot-ldtk-importer
Version 2.0.1
πβ¨Pretty Printing! β¨π
New pretty messages!
This new logging system helps provide more clarity over the import process and makes tracking down issues easier.
Version 2.0.1 delivers some exciting new features (like this!), paired with a generous serving of some breaking changes.
β‘οΈUpdating
- TileSet resources have a new filename signature
tileset_{grid_size}px.res
to help preserve your existing TileSets. - Import Flags have been changed which can potentially invalidate pre-existing import settings.
- Please make backups of your project before updating.
πWhat's New
-
TileSets have been rewritten to offer more functionality, with many bugs fixed
- Overlapping tiles and mismatched tile/grid sizes are now supported. (#12, #20, #21)
- Flipped tiles no longer generate alternative tiles (now using the new method in Godot 4.3) (#14)
- TileSets are created for each unique grid size, creating duplicate TileSetAtlasSources only if the same tileset is used for different grid sizes
- Many bugs fixed related to Tile Custom Data and Tile Custom Enums (Thanks to @KarryCharon)
-
LDTKLevels can be packed and saved as Scenes (better now)
-
Import Flags have been tweaked
Separate_World_Layers
has been renamed toGroup_World_Layers
- Added
Layers_Always_Visible
flag. Default: OFF. - Added
Integer_Grid_Tilesets
flag. Default: OFF. - Added
Resolve_EntityRefs
flag. Default: OFF (this feature is now considered experimental) Pack_Levels
is now ON by defaultForce_Tileset_Reimport
has been moved under theDebug
category
-
Post-Import hooks have been reworked, and are now performed in a more logical step of the import process
-
'Point' Fields are parsed as
Vector2i
instead ofVector2
-
Changes to Components
- LDTKWorld nodes now track when LDTKLevel children have been added.
- LDTKLevel
position
has been moved to a new export variableworld_position
. Individual Level Scenes are now always positioned at (0,0) rather than their world position previously - LDTKEntityPlaceHolders now support displaying Tiles (as Sprite2Ds) - matching their look in the LDTK Editor
-
Set
verbose_output
to ON for a more in-depth summary -
Performance is measured and displayed in milliseconds, giving a breakdown by category where the importer spends the most time doing work (spoiler: it's mostly saving out resources)
-
New error/warning messages have been added when issues are detected within the LDTK file (null tilesets, unreachable file paths, etc.)
β οΈ Issues
Resolve_EntityRefs
still has inconsistent behaviour- If
Pack_Levels
is ON, then 'internal' EntityRefs can resolve. However, Godot displays an annoying error messageParameter "common_parent" is null
when it cannot resolve (e.g. when pointing to an entity outside the level) - If
Pack_Levels
is OFF, then all EntityRefs can be resolved. - For those relying on EntityRefs in a bigger project, it's currently recommended to set
Resolve_EntityRefs
to OFF and write your own system for handling references. For example, creating an Autoload script that stores Dictionaries of EntityIids and EntityRefs.
- If
- Still investigating an issue where TileSets and Scenes sometimes do not force-update properly after reimporting (Reload Project is required)
Version 1.3.1
@KarryCharon has pushed some good changes in #24 to make the importer more robust. So good that they deserve their own release!
Amazing, thank you @KarryCharon!
What's Changed
- Plugin no longer fails when generating tilesets for the first time
- Plugin no longer runs threaded (this would often lock Godot when importing files)
Version 1.3
What's Changed
- Updated to LDTK 1.5.3
- Updated to Godot 4.3
- As of Godot 4.3,
TileMaps
have been converted toTileMapLayers
- Levels can now be saved as separate scenes! Select "Pack Levels" in import settings. (#15)
- Background Images now respect anchor & position (#23)
Fixes
- Fixed tile atlas padding/spacing bug by @mattias800 in #17
- Fixed off-by-1 error calculating tileset cell sizes (#4, #6)
Issues
- Due to
TileMapLayers
only allowing a single layer, overlapping tiles have been deprecated. - When using the "Pack Levels" import setting, "out-bound" EntityRefs no longer work.
New Contributors
- @mattias800 made their first contribution in #17
Full Changelog: 1.2.1...1.3
Version 1.2.1
(Found issues with this build - do not download)
What's Changed
- Removed unnecessary setting of TileMap
cell_quadrant_size
(this will be renamed in Godot 4.2, and was being used incorrectly!) - Post-Import Entities: Fixed bug when setting owner of scene instance children to top-level node (this duplicated child nodes, causing problems).
Version 1.2 Alpha
What's Changed
- @TheNeikos draws first blood with the first PR (#1) with improvements to tile data for flipped tiles. Occluders, Collisions and Navigation data are correctly copied over, as well as bitwise optimisations for flipping tiles. Thank you! β¨
- Basic Multi-Worlds support! This version packs all worlds into the same scene, as this preserves the ability to resolve references. I plan to do a future rewrite that would allow saving levels and worlds as individual scenes.
Version 1.2
What's Changed
- Basic Multi-Worlds support! This version packs all worlds into the same scene, as this preserves the ability to resolve references.
- Layers now use individual TileMaps. They are no longer combined based on gridSize and should be easier to work with.
- New
Import Options: Allow Overlapping Tiles
. Defaults totrue
. - Alpha Tiles (set using AutoRules) are recognised and handled correctly.
- FIX: WorldLayers are now sorted in the SceneTree based on their depth.
- FIX: Tiles with individual offsets correctly snap to the nearest cell (Note: individual tile offsets are unsupported)
- FIX: @TheNeikos added an optimisation to handling alternative tile polygons. (#2) Thank you! β¨
The source code now includes the offical LDtk sample projects for you to see how they are implemented in Godot.
More examples showing how to write/use post-import scripts will be added in the future.
How to Install
- Download the ZIP
- Extract to the
/addons/
folder in your project - Enable this plugin in
Project > Project Settings > Plugins
.ldtk
files should now be visible!
Version 1.1
- External Levels are now supported
- Added WorldDepth layers import option
Import Options: Separate World Layers
- Now checks for LDTK version. Rejects ldtk files < v1.0 (please update)
Version 1.0 alpha 1
Thanks for testing out LDTK Importer for Godot 4.
How to Install
- Download the ZIP
- Extract to the
/addons/
folder - Enable this plugin in
Project > Project Settings > Plugins