Skip to content

Commit 6b83e76

Browse files
Fix object placement to use the object's dimensions
1 parent f263ff7 commit 6b83e76

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/Resource/TilemapResource.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,9 @@ void LoadObjectGroup(tmx::Map& map, tmx::ObjectGroup& layer, MapSegmentDto* mapS
426426

427427
newEntityInstanceDto.properties.emplace("rotation", std::to_string(object.getRotation()));
428428

429+
auto dimensions = std::to_string(object.getAABB().width) + " " + std::to_string(object.getAABB().height);
430+
newEntityInstanceDto.properties.emplace("dimensions", dimensions);
431+
429432
for (const auto& prop : object.getProperties())
430433
{
431434
newEntityInstanceDto.properties.emplace(prop.getName(),GetTmxPropertyValue(prop));

src/Scene/Scene.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,14 @@ TEntity* Scene::CreateEntity(EntitySerializer& serializer, Args&& ... constructo
292292

293293
Vector2 position;
294294
float rotation;
295+
Vector2 dimensions;
295296

296297
serializer
297298
.Add("position", position)
298-
.Add("rotation", rotation);
299+
.Add("rotation", rotation)
300+
.Add("dimensions", dimensions);
299301

300-
entity->_position = position;
302+
entity->_position = position + (dimensions / 2);
301303
entity->_rotation = rotation;
302304
entity->type = TEntity::Type;
303305
entity->scene = this;

0 commit comments

Comments
 (0)