Skip to content

Release v3#2

Merged
Insality merged 71 commits intomainfrom
develop
Apr 13, 2026
Merged

Release v3#2
Insality merged 71 commits intomainfrom
develop

Conversation

@Insality
Copy link
Copy Markdown
Owner

Refactor, add support for all tiled map types and most of the map features

@Insality Insality self-assigned this Feb 16, 2026
Copilot AI review requested due to automatic review settings February 16, 2026 10:02
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors Detiled for a v4 release by replacing the Decore-centric map loader with a new parser that supports multiple Tiled map orientations and adds example scenes/assets to showcase supported features.

Changes:

  • Replaced Decore entity-pack output with a flat detiled.entity[] + map_params API and added coordinate conversion helpers.
  • Added internal grid modules + a new parser to support orthogonal/isometric/staggered/hexagonal maps and more object features.
  • Added an example app (GUI + collection proxies) with multiple map demos and supporting assets; updated game.project configuration/dependencies.

Reviewed changes

Copilot reviewed 183 out of 366 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
test/test_detiled.lua Updates test to new get_entity_from_map return signature.
test/test.script Disables the Detiled test registration (currently commented out).
resources/tilesets_list.json Removes legacy tileset list resource.
resources/tilesets/shooting_circle.json Removes legacy example tileset JSON.
resources/maps_list.json Removes legacy map list resource.
resources/entities.json Removes legacy Decore entities pack resource.
resources/components.json Removes legacy Decore components schema resource.
input/game.input_binding Adds custom WASD + zoom key triggers (not currently selected in game.project).
game.project Switches bootstrap to example collection; updates deps/resources/input/graphics/native extension settings.
example/example_isogrid_staggered/example_isogrid_staggered.script New staggered isometric example using Detiled entities + coordinate conversion.
example/example_isogrid_staggered/example_isogrid_staggered.collection Collection to run the staggered isometric example.
example/example_isogrid/example_isogrid.script New isometric example using Detiled entities + coordinate conversion.
example/example_isogrid/example_isogrid.collection Collection to run the isometric example.
example/example_hexgrid_pointy/example_hexgrid_pointy.script New pointy-top hex example using Detiled entities + coordinate conversion.
example/example_hexgrid_pointy/example_hexgrid_pointy.collection Collection to run the pointy-top hex example.
example/example_hexgrid/example_hexgrid.script New hex example using Detiled entities + coordinate conversion.
example/example_hexgrid/example_hexgrid.collection Collection to run the hex example (contains a name typo).
example/example_grid_game_objects/example_grid_game_objects.script New grid objects example (includes debug print on spawn).
example/example_grid_game_objects/example_grid_game_objects.collection Collection to run the grid objects example.
example/example_grid/example_grid.script New basic orthogonal grid example using Detiled entities + coordinate conversion.
example/example_grid/example_grid.collection Collection to run the grid example; embeds exported tilemap collection.
example/example.gui_script GUI controller to load/unload example collection proxies via selector widget.
example/example.gui Example GUI (properties panel template + druid layers).
example/example.collection Top-level example collection wiring GUI + collection proxies for each map type.
example/assets/isogrid/isogrid_tiles.atlas Atlas for isometric tile images used by isogrid examples.
example/assets/isogrid/entities/waterW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterCornerSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterCornerNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterCornerNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/waterCornerES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/water.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadNS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHillW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHillS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHillN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHillE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHill2W.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHill2S.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHill2N.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadHill2E.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadEW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/roadES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/road.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverNS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverEW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedNS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedEW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/riverBankedES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/lotE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/hillE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/grassWhole.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/grass.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/exitW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/exitS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/exitN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/exitE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/endW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/endS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/endN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/endE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/dirtDouble.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/dirt.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/crossroadNSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/crossroadNEW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/crossroadNES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/crossroadESW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/crossroad.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/bridgeNS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/bridgeEW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachS.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachN.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachCornerSW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachCornerNW.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachCornerNE.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beachCornerES.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities/beach.go Sprite prototype for isogrid entity factory.
example/assets/isogrid/entities.go Factory hub for isogrid entities.
example/assets/hexgrid_pointy/hexgrid_pointy_tiles.atlas Atlas for pointy-top hex tiles.
example/assets/hexgrid_pointy/entities/tileWater_shadow.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileWater_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileWater.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileStone_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileStone.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileSnow.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileSand_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileSand.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileRock_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileRock.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileMagic_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileMagic.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileLava_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileLava.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileGrass_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileGrass.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileDirt_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileDirt.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileAutumn_full.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities/tileAutumn.go Sprite prototype for pointy-top hex entity factory.
example/assets/hexgrid_pointy/entities.go Factory hub for pointy-top hex entities.
example/assets/hexgrid/hexgrid_tiles.atlas Atlas for hex tiles.
example/assets/hexgrid/hexgrid_resources.atlas Atlas for hex resource sprites.
example/assets/hexgrid/entities/tile_stone_3.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_stone_2.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_stone.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_sand_3.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_sand_2.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_sand.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_grass_3.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_grass_2.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_grass.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_dirt_3.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_dirt_2.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/tile_dirt.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/r_tree_round_2.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities/r_tree_round.go Sprite prototype for hex entity factory.
example/assets/hexgrid/entities.go Factory hub for hex entities.
example/assets/grid/grid_tileset.tilesource Tilesource for grid tileset rendering.
example/assets/grid/grid_items.atlas Atlas for grid item sprites.
example/assets/grid/grid_ignore_export.tilesource Tilesource placeholder for ignored export.
example/assets/grid/entities/tree.go Sprite prototype for grid entity factory.
example/assets/grid/entities/icon_table.go Sprite prototype for grid entity factory.
example/assets/grid/entities/icon_stop.go Sprite prototype for grid entity factory.
example/assets/grid/entities/icon_key.go Sprite prototype for grid entity factory.
example/assets/grid/entities/icon_chest.go Sprite prototype for grid entity factory.
example/assets/grid/entities/icon_barrel.go Sprite prototype for grid entity factory.
example/assets/grid/entities/cactus.go Sprite prototype for grid entity factory.
example/assets/grid/entities.go Factory hub for grid entities.
example/assets/camera_wasd_control.script Adds reusable WASD/zoom camera controller for examples.
example/assets/appmanifest.appmanifest Adds app manifest with platform lib exclusions (3D physics, null rigs, etc).
editor_scripts/set_bootstrap_collection/set_bootstrap_collection.version Adds editor script package version file.
editor_scripts/set_bootstrap_collection/set_bootstrap_collection.editor_script Adds editor action to set bootstrap.main_collection from a selected .collection.
detiled/internal/grid/orthogonal.lua New orthogonal grid conversion utilities.
detiled/internal/grid/isometric_staggered.lua New staggered iso grid conversion utilities.
detiled/internal/grid/isometric.lua New isometric grid conversion utilities (incl. object-position conversion).
detiled/internal/grid/hexagonal_staggered.lua New hexagonal grid conversion utilities dispatching to pointy/flat modules.
detiled/internal/grid/hexagonal_pointytop.lua New pointy-top hex conversion utilities (incl. cube/offset helpers).
detiled/internal/grid/hexagonal_flattop.lua New flat-top hex conversion utilities (incl. cube/offset helpers).
detiled/internal/detiled_parser.lua New main parser producing flat entities + map params across orientations/layer types.
detiled/internal/detiled_logger.lua Switches default logger to pprint for structured output.
detiled/internal/detiled_internal.lua Adds GID flip parsing, tile-layer unpacking, property application helpers.
detiled/internal/detiled_decore.lua Removes legacy Decore-specific exporter implementation.
detiled/internal/detiled_annotations.lua Extends annotations for new map fields, entities, and map params.
detiled/detiled_system.lua Removes legacy Decore system wiring.
detiled/detiled.lua Updates public API to new parser output + coordinate conversions.
api/detiled_api.md Updates API docs for new return values and adds coordinate conversion docs.
README.md Updates usage docs to reflect new entities return shape and conversion helpers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread detiled/detiled.lua Outdated
Comment thread detiled/internal/detiled_internal.lua
Comment thread detiled/internal/detiled_parser.lua
Comment thread example/assets/camera_wasd_control.script
Comment thread test/test.script
Comment thread example/example_hexgrid/example_hexgrid.collection Outdated
Comment thread README.md Outdated
@Insality Insality changed the title Release v4 Release v3 Apr 13, 2026
@Insality Insality merged commit ba44f8f into main Apr 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants