diff options
Diffstat (limited to 'src/entity.c')
| -rw-r--r-- | src/entity.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/entity.c b/src/entity.c index f6d51bf..fa3a414 100644 --- a/src/entity.c +++ b/src/entity.c @@ -228,10 +228,23 @@ void setEntityPosition(Entity* entity, Vector3 position) void placeEntityOnGround(Entity* entity, const World* world) { Vector3 position = entity->position; + + if (entity->id == ENTITY_NONE) + { + return; + } position.y = getWorldHeightAtLocation( world, entity->position.x, entity->position.z); - position.y += (entity->box.max.y - entity->box.min.y) / 2.0; + + if (entityIsBuilding(entity->id)) + { + position.y += ENTITY_BUILDING_GROUND_OFFSET; + } + else + { + position.y += (entity->box.max.y - entity->box.min.y) / 2.0; + } setEntityPosition(entity, position); } |
