function metatable_entity:wander(speed, traversable, ignore_obstacles, movement_type, sprite_directory, dialog)
local map = self:get_map()
local hero = map:get_hero()
local sprite
local quick_movement
function self:on_created()
sprite = self:create_sprite(sprite_directory)
self:set_can_traverse("hero", traversable)
self:set_traversable_by("hero", false)
self:set_drawn_in_y_order(true)
quick_movement = sol.movement.create(movement_type)
quick_movement:set_ignore_obstacles(ignore_obstacles)
quick_movement:set_speed(speed)
quick_movement:start(self)
end
function self:on_interaction()
if hero:get_direction() == 0 then
self:set_direction(2)
map:get_game():start_dialog(dialog)
end
if hero:get_direction() == 1 then
self:set_direction(3)
map:get_game():start_dialog(dialog)
end
if hero:get_direction() == 2 then
self:set_direction(0)
map:get_game():start_dialog(dialog)
end
if hero:get_direction() == 3 then
self:set_direction(1)
map:get_game():start_dialog(dialog)
end
end
function self:on_movement_changed()
sprite:set_direction(quick_movement:get_direction4())
end
end
I declared it in a custom entity like this:
entity:wander(80, false, false, "random_path", "citizens/village_woman_6", "welcome_sign")