update hud.open(...)
This commit is contained in:
parent
bf9f6bbe79
commit
3f9701915c
@ -8,8 +8,17 @@ hud.open_inventory()
|
|||||||
hud.close_inventory()
|
hud.close_inventory()
|
||||||
|
|
||||||
-- Open UI and inventory.
|
-- Open UI and inventory.
|
||||||
-- Throws an exception if has no UI layout.
|
-- Throws an exception if has UI layout does not exists.
|
||||||
hud.open(invid: int, layoutid: str)
|
-- If invid is not specified, a virtual (temporary) inventory is created.
|
||||||
|
-- Returns the invid or id of the virtual inventory.
|
||||||
|
hud.open(
|
||||||
|
-- UI layout name
|
||||||
|
layoutid: str,
|
||||||
|
-- Don't open player inventory
|
||||||
|
[optional] disablePlayerInventory: bool,
|
||||||
|
-- Inventory that UI layout will be bound to
|
||||||
|
[optional] invid: int
|
||||||
|
) -> int
|
||||||
|
|
||||||
-- Open block UI and inventory.
|
-- Open block UI and inventory.
|
||||||
-- Throws an exception if block has no UI layout.
|
-- Throws an exception if block has no UI layout.
|
||||||
|
|||||||
@ -8,8 +8,18 @@ hud.open_inventory()
|
|||||||
hud.close_inventory()
|
hud.close_inventory()
|
||||||
|
|
||||||
-- Открывает инвентарь и UI.
|
-- Открывает инвентарь и UI.
|
||||||
-- Если не имеет макета UI - бросается исключение.
|
-- Если макет UI не существует - бросается исключение.
|
||||||
hud.open(invid: int, layoutid: str)
|
-- Если invid не указан, создаётся виртуальный (временный) инвентарь.
|
||||||
|
-- Возвращает invid или id виртуального инвентаря.
|
||||||
|
hud.open(
|
||||||
|
-- Макет UI
|
||||||
|
layoutid: str,
|
||||||
|
-- Не открывать инвентарь игрока
|
||||||
|
[опционально] disablePlayerInventory: bool,
|
||||||
|
-- Инвентарь, к которому будет привязан UI макет
|
||||||
|
[опционально] invid: int
|
||||||
|
) -> int
|
||||||
|
|
||||||
|
|
||||||
-- Открывает инвентарь и UI блока.
|
-- Открывает инвентарь и UI блока.
|
||||||
-- Если блок не имеет макета UI - бросается исключение.
|
-- Если блок не имеет макета UI - бросается исключение.
|
||||||
|
|||||||
@ -382,16 +382,11 @@ void Hud::openInventory() {
|
|||||||
add(HudElement(hud_element_mode::inventory_bound, nullptr, exchangeSlot, false));
|
add(HudElement(hud_element_mode::inventory_bound, nullptr, exchangeSlot, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hud::openInventory(
|
std::shared_ptr<Inventory> Hud::openInventory(
|
||||||
UiDocument* doc,
|
UiDocument* doc,
|
||||||
std::shared_ptr<Inventory> inv,
|
std::shared_ptr<Inventory> inv,
|
||||||
bool playerInventory
|
bool playerInventory
|
||||||
) {
|
) {
|
||||||
if (inv == nullptr) {
|
|
||||||
// why try to open nox-existent inventory??
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isInventoryOpen()) {
|
if (isInventoryOpen()) {
|
||||||
closeInventory();
|
closeInventory();
|
||||||
}
|
}
|
||||||
@ -413,6 +408,7 @@ void Hud::openInventory(
|
|||||||
}
|
}
|
||||||
secondInvView->bind(inv, content);
|
secondInvView->bind(inv, content);
|
||||||
add(HudElement(hud_element_mode::inventory_bound, doc, secondUI, false));
|
add(HudElement(hud_element_mode::inventory_bound, doc, secondUI, false));
|
||||||
|
return inv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hud::openInventory(
|
void Hud::openInventory(
|
||||||
|
|||||||
@ -153,7 +153,7 @@ public:
|
|||||||
/// @param doc ui layout
|
/// @param doc ui layout
|
||||||
/// @param inv inventory
|
/// @param inv inventory
|
||||||
/// @param playerInventory show player inventory too
|
/// @param playerInventory show player inventory too
|
||||||
void openInventory(
|
std::shared_ptr<Inventory> openInventory(
|
||||||
UiDocument* doc,
|
UiDocument* doc,
|
||||||
std::shared_ptr<Inventory> inv,
|
std::shared_ptr<Inventory> inv,
|
||||||
bool playerInventory
|
bool playerInventory
|
||||||
|
|||||||
@ -37,23 +37,20 @@ static int l_close_inventory(lua::State*) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int l_open(lua::State* L) {
|
static int l_open(lua::State* L) {
|
||||||
auto invid = lua::tointeger(L, 1);
|
auto layoutid = lua::require_string(L, 1);
|
||||||
auto layoutid = lua::require_string(L, 2);
|
bool playerInventory = !lua::toboolean(L, 2);
|
||||||
bool playerInventory = !lua::toboolean(L, 3);
|
auto invid = lua::tointeger(L, 3);
|
||||||
|
|
||||||
auto assets = engine->getAssets();
|
auto assets = engine->getAssets();
|
||||||
auto layout = assets->get<UiDocument>(layoutid);
|
auto layout = assets->get<UiDocument>(layoutid);
|
||||||
if (layout == nullptr) {
|
if (layout == nullptr) {
|
||||||
throw std::runtime_error("there is no ui layout " + util::quote(layoutid));
|
throw std::runtime_error("there is no ui layout " + util::quote(layoutid));
|
||||||
}
|
}
|
||||||
|
return lua::pushinteger(L, hud->openInventory(
|
||||||
hud->openInventory(
|
|
||||||
layout,
|
layout,
|
||||||
level->inventories->get(invid),
|
level->inventories->get(invid),
|
||||||
playerInventory
|
playerInventory
|
||||||
);
|
)->getId());
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int l_open_block(lua::State* L) {
|
static int l_open_block(lua::State* L) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user