Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
Insality committed Oct 24, 2024
1 parent bae3081 commit 6f6f1ee
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
2 changes: 1 addition & 1 deletion detiled/detiled.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local detiled_decore = require("detiled.detiled_decore")
local M = {}


---@param logger_instance detiled.logger|nil
---@param logger_instance detiled.logger|table|nil
function M.set_logger(logger_instance)
detiled_internal.logger = logger_instance or detiled_internal.empty_logger
end
Expand Down
19 changes: 10 additions & 9 deletions detiled/detiled_decore.lua
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,26 @@ local function get_entities_from_object_layer(layer, map)
local entities = {}

local map_height = map.height * map.tileheight
local position_z = detiled_internal.get_property_value(layer.properties, "position_z") or 1
local position_z = detiled_internal.get_property_value(layer.properties, "position_z") or 0

for object_index = 1, #layer.objects do
local object = layer.objects[object_index]
local rotation = -object.rotation

local object_gid = object.gid
if object_gid then
-- If object has a tileset
if object_gid then -- If object has a tileset, spawn from tileset
local tile, tileset = detiled_internal.get_tile_by_gid(map, object_gid)
if tile and tileset then
local entity = {}
local position_x, position_y, scale_x, scale_y = M.get_defold_position_from_tiled_object(object, tile, map_height)
position_x = position_x + (layer.offsetx or 0)
position_y = position_y - (layer.offsety or 0)

local components = {
name = object.name ~= "" and object.name or nil,
prefab_id = tile.class,
pack_id = tileset.class,
tiled_id = object.id,
tiled_id = tostring(object.id),
layer_id = layer.name,

transform = {
Expand Down Expand Up @@ -108,7 +109,7 @@ local function get_entities_from_object_layer(layer, map)

table.insert(entities, entity)
end
elseif (object.class and object.class ~= "") or (object.properties) then
elseif (object.class and object.class ~= "") or (object.properties) then -- If object not from tileset and has a prefab to spawn
local entity = {}
local position_x, position_y, scale_x, scale_y = M.get_defold_position_from_tiled_object(object, nil, map_height)
--position_y = map_height - position_y
Expand All @@ -119,7 +120,7 @@ local function get_entities_from_object_layer(layer, map)
local components = {
name = object.name ~= "" and object.name or nil,
prefab_id = object.class ~= "" and object.class or nil,
tiled_id = object.id,
tiled_id = tostring(object.id),
layer_id = layer.name,

transform = {
Expand All @@ -145,7 +146,7 @@ local function get_entities_from_object_layer(layer, map)
entity.components = components

table.insert(entities, entity)
else
else -- Empty object from tiled
local position_x, position_y, scale_x, scale_y = M.get_defold_position_from_tiled_object(object, nil, map_height)
position_x = position_x + (layer.offsetx or 0)
position_y = position_y - (layer.offsety or 0)
Expand All @@ -154,7 +155,7 @@ local function get_entities_from_object_layer(layer, map)
local entity = {
components = {
name = object.name ~= "" and object.name or nil,
tiled_id = object.id,
tiled_id = tostring(object.id),
layer_id = layer.name,

transform = {
Expand Down Expand Up @@ -372,7 +373,7 @@ end
function M.get_decore_entities(tiled_tileset)
---@type decore.entities_pack_data
local entities = {
pack_id = tiled_tileset.class,
pack_id = tiled_tileset.class or "tiled",
entities = {}
}

Expand Down
3 changes: 2 additions & 1 deletion detiled/detiled_internal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@ end
---@param tile_global_id number
---@return detiled.tileset.tile|nil, detiled.tileset|nil
function M.get_tile_by_gid(map, tile_global_id)
for tileset_index = 1, #map.tilesets do
-- TODO: is always tilesest goes in sorted order?
for tileset_index = #map.tilesets, 1, -1 do
local tileset = map.tilesets[tileset_index]
local first_gid = tileset.firstgid
if tile_global_id >= first_gid then
Expand Down

0 comments on commit 6f6f1ee

Please sign in to comment.