Lua API reorganization: interface module
This commit is contained in:
parent
88550b8592
commit
e3e80b4a99
3 changed files with 53 additions and 24 deletions
|
@ -438,6 +438,54 @@ if wesnoth.kernel_type() == "Game Lua Kernel" then
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return data_to_save
|
return data_to_save
|
||||||
|
|
||||||
|
--[========[Game Interface Control]========]
|
||||||
|
|
||||||
|
wesnoth.interface = {
|
||||||
|
delay = wesnoth.delay,
|
||||||
|
float_label = wesnoth.float_label,
|
||||||
|
select_unit = wesnoth.select_unit,
|
||||||
|
highlight_hex = wesnoth.highlight_hex,
|
||||||
|
deselect_hex = wesnoth.deselect_hex,
|
||||||
|
get_selected_hex = wesnoth.get_selected_tile,
|
||||||
|
scroll_to_hex = wesnoth.scroll_to_tile,
|
||||||
|
lock = wesnoth.lock_view,
|
||||||
|
is_locked = wesnoth.view_locked,
|
||||||
|
is_skipping_messages = wesnoth.is_skipping_messages,
|
||||||
|
skip_messages = wesnoth.skip_messages,
|
||||||
|
add_hex_overlay = wesnoth.add_tile_overlay,
|
||||||
|
remove_hex_overlay = wesnoth.remove_tile_overlay,
|
||||||
|
game_display = wesnoth.theme_items,
|
||||||
|
get_displayed_unit = wesnoth.get_displayed_unit,
|
||||||
|
}
|
||||||
|
|
||||||
|
--! Fakes the move of a unit satisfying the given @a filter to position @a x, @a y.
|
||||||
|
--! @note Usable only during WML actions.
|
||||||
|
function wesnoth.interface.move_unit_fake(filter, to_x, to_y)
|
||||||
|
local moving_unit = wesnoth.get_units(filter)[1]
|
||||||
|
local from_x, from_y = moving_unit.x, moving_unit.y
|
||||||
|
|
||||||
|
wesnoth.interface.scroll_to_hex(from_x, from_y)
|
||||||
|
to_x, to_y = wesnoth.find_vacant_tile(x, y, moving_unit)
|
||||||
|
|
||||||
|
if to_x < from_x then
|
||||||
|
moving_unit.facing = "sw"
|
||||||
|
elseif to_x > from_x then
|
||||||
|
moving_unit.facing = "se"
|
||||||
|
end
|
||||||
|
moving_unit:extract()
|
||||||
|
|
||||||
|
wml_actions.move_unit_fake{
|
||||||
|
type = moving_unit.type,
|
||||||
|
gender = moving_unit.gender,
|
||||||
|
variation = moving.variation,
|
||||||
|
side = moving_unit.side,
|
||||||
|
x = from_x .. ',' .. to_x,
|
||||||
|
y = from_y .. ',' .. to_y
|
||||||
|
}
|
||||||
|
|
||||||
|
moving_unit:to_map(to_x, to_y)
|
||||||
|
wml_actions.redraw{}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -53,30 +53,7 @@ end
|
||||||
--! Fakes the move of a unit satisfying the given @a filter to position @a x, @a y.
|
--! Fakes the move of a unit satisfying the given @a filter to position @a x, @a y.
|
||||||
--! @note Usable only during WML actions.
|
--! @note Usable only during WML actions.
|
||||||
function helper.move_unit_fake(filter, to_x, to_y)
|
function helper.move_unit_fake(filter, to_x, to_y)
|
||||||
local moving_unit = wesnoth.get_units(filter)[1]
|
wesnoth.interface.move_unit_fake(filter, to_x, to_y)
|
||||||
local from_x, from_y = moving_unit.x, moving_unit.y
|
|
||||||
|
|
||||||
wesnoth.intf.scroll_to_hex(from_x, from_y)
|
|
||||||
to_x, to_y = wesnoth.find_vacant_tile(x, y, moving_unit)
|
|
||||||
|
|
||||||
if to_x < from_x then
|
|
||||||
moving_unit.facing = "sw"
|
|
||||||
elseif to_x > from_x then
|
|
||||||
moving_unit.facing = "se"
|
|
||||||
end
|
|
||||||
moving_unit:extract()
|
|
||||||
|
|
||||||
wml_actions.move_unit_fake{
|
|
||||||
type = moving_unit.type,
|
|
||||||
gender = moving_unit.gender,
|
|
||||||
variation = moving.variation,
|
|
||||||
side = moving_unit.side,
|
|
||||||
x = from_x .. ',' .. to_x,
|
|
||||||
y = from_y .. ',' .. to_y
|
|
||||||
}
|
|
||||||
|
|
||||||
moving_unit:to_map(to_x, to_y)
|
|
||||||
wml_actions.redraw{}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Metatable that redirects access to wml.variables_proxy
|
-- Metatable that redirects access to wml.variables_proxy
|
||||||
|
|
|
@ -113,4 +113,8 @@ function methods.place_halo(x, y, name)
|
||||||
add_overlay(x, y, { x = x, y = y, halo = name })
|
add_overlay(x, y, { x = x, y = y, halo = name })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
wesnoth.intf.remove_item = methods.remove
|
||||||
|
wesnoth.intf.add_item_image = methods.place_image
|
||||||
|
wesnoth.intf.add_item_halo = methods.place_halo
|
||||||
|
|
||||||
return methods
|
return methods
|
||||||
|
|
Loading…
Add table
Reference in a new issue