Update sfinv and creative mods

master
Wuzzy 2021-07-08 02:08:10 +02:00
parent b7b3e6aa42
commit 6e1f138bca
48 changed files with 440 additions and 118 deletions

View File

@ -18,11 +18,7 @@ local bags_page = {}
local get_formspec = function(player, page)
if page=="bags" then
local name = player:get_player_name()
return "size[10,7.5]"
..hades_gui.gui_inventory_bg_img
.."list[current_player;main;0,4.7;10,1;]"
.."list[current_player;main;0,5.85;10,3;10]"
.."button[1,2.2;2,0.5;bag1;"..F(S("Bag 1")).."]"
return "button[1,2.2;2,0.5;bag1;"..F(S("Bag 1")).."]"
.."button[3,2.2;2,0.5;bag2;"..F(S("Bag 2")).."]"
.."button[5,2.2;2,0.5;bag3;"..F(S("Bag 3")).."]"
.."button[7,2.2;2,0.5;bag4;"..F(S("Bag 4")).."]"
@ -36,11 +32,7 @@ local get_formspec = function(player, page)
for b=1,4 do
if page=="bag"..b then
local image = player:get_inventory():get_stack("bags", b):get_definition().inventory_image
return "size[10,8.5]"
..hades_gui.gui_inventory_bg_img
.."list[current_player;main;0,4.7;10,1;]"
.."list[current_player;main;0,5.85;10,3;10]"
.."button[0,0;2,0.5;main;"..F(S("Main")).."]"
return "button[0,0;2,0.5;main;"..F(S("Main")).."]"
.."label[3,0;"..F(S("Bag @1", b)).."]"
.."image[7,0;1,1;"..image.."]"
.."list[current_player;bag"..b.."contents;0,1;10,3;]"
@ -63,7 +55,7 @@ sfinv.register_page("bags:bags", {
else
page = bags_page[player_name]
end
return sfinv.make_formspec(player, context, get_formspec(player, page))
return sfinv.make_formspec(player, context, get_formspec(player, page), true)
end,
on_player_receive_fields = function(self, player, context, fields)
local player_name = player:get_player_name()

View File

@ -9,4 +9,9 @@ Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> (MIT)
Author of media (textures)
--------------------------
Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com> (CC BY-SA 3.0)
paramat (CC BY-SA 3.0):
* creative_prev_icon.png
* creative_next_icon.png
* creative_search_icon.png
* creative_clear_icon.png
* creative_trash_icon.png derived from a texture by kilbith (CC BY-SA 3.0)

View File

@ -1,41 +1,51 @@
-- creative/init.lua
-- Load support for MT game translation.
local S = minetest.get_translator("creative")
creative = {}
creative.get_translator = S
local function update_sfinv(name)
minetest.after(0, function()
local player = minetest.get_player_by_name(name)
if player then
if sfinv.get_page(player):sub(1, 9) == "creative:" then
sfinv.set_page(player, sfinv.get_homepage_name(player))
else
sfinv.set_player_inventory_formspec(player)
end
end
end)
end
minetest.register_privilege("creative", {
description = S("Allow player to use creative inventory"),
give_to_singleplayer = false,
give_to_admin = false,
on_grant = function(name)
minetest.after(0, function(name)
local player = minetest.get_player_by_name(name)
if player then
sfinv.set_player_inventory_formspec(player)
end
end, name)
end,
on_revoke = function(name)
minetest.after(0, function(name)
local player = minetest.get_player_by_name(name)
if not player then
return
end
sfinv.set_player_inventory_formspec(player)
sfinv.set_page(player, sfinv.get_homepage_name(player))
end, name)
end,
on_grant = update_sfinv,
on_revoke = update_sfinv,
})
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
-- Override the engine's creative mode function
local old_is_creative_enabled = minetest.is_creative_enabled
function minetest.is_creative_enabled(name)
return creative_mode_cache or
minetest.check_player_privs(name, {creative = true})
if name == "" then
return old_is_creative_enabled(name)
end
return minetest.check_player_privs(name, {creative = true}) or
old_is_creative_enabled(name)
end
-- For backwards compatibility:
function creative.is_enabled_for(name)
return minetest.is_creative_enabled(name)
end
dofile(minetest.get_modpath("creative") .. "/inventory.lua")
if creative_mode_cache then
if minetest.is_creative_enabled("") then
-- Dig time is modified according to difference (leveldiff) between tool
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
-- leveldiff and 1.
@ -45,10 +55,8 @@ if creative_mode_cache then
local digtime = 42
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
minetest.register_item(":", {
type = "none",
wield_image = "wieldhand.png",
wield_scale = {x = 1, y = 1, z = 2.5},
-- Override the hand tool
minetest.override_item("", {
range = 10,
tool_capabilities = {
full_punch_interval = 0.5,
@ -59,6 +67,9 @@ if creative_mode_cache then
snappy = caps,
choppy = caps,
oddly_breakable_by_hand = caps,
-- dig_immediate group doesn't use value 1. Value 3 is instant dig
dig_immediate =
{times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256},
},
damage_groups = {fleshy = 10},
}

View File

@ -1,7 +1,7 @@
local S = minetest.get_translator("creative")
local F = minetest.formspec_escape
-- creative/inventory.lua
local INVSIZE = 3*10
-- support for MT game translation.
local S = creative.get_translator
local player_inventory = {}
local inventory_cache = {}
@ -25,7 +25,9 @@ function creative.init_creative_inventory(player)
player_inventory[player_name] = {
size = 0,
filter = "",
start_i = 0
start_i = 0,
old_filter = nil, -- use only for caching in update_creative_inventory
old_content = nil
}
minetest.create_detached_inventory("creative_" .. player_name, {
@ -59,22 +61,64 @@ function creative.init_creative_inventory(player)
return player_inventory[player_name]
end
local NO_MATCH = 999
local function match(s, filter)
if filter == "" then
return 0
end
if s:lower():find(filter, 1, true) then
return #s - #filter
end
return NO_MATCH
end
local function description(def, lang_code)
local s = def.description
if lang_code then
s = minetest.get_translated_string(lang_code, s)
end
return s:gsub("\n.*", "") -- First line only
end
function creative.update_creative_inventory(player_name, tab_content)
local creative_list = {}
local inv = player_inventory[player_name] or
creative.init_creative_inventory(minetest.get_player_by_name(player_name))
local player_inv = minetest.get_inventory({type = "detached", name = "creative_" .. player_name})
if inv.filter == inv.old_filter and tab_content == inv.old_content then
return
end
inv.old_filter = inv.filter
inv.old_content = tab_content
local items = inventory_cache[tab_content] or init_creative_cache(tab_content)
local lang
local player_info = minetest.get_player_information(player_name)
if player_info and player_info.lang_code ~= "" then
lang = player_info.lang_code
end
local creative_list = {}
local order = {}
for name, def in pairs(items) do
if def.name:find(inv.filter, 1, true) or
(type(def.description) == "string" and def.description:lower():find(inv.filter, 1, true)) then
local m = match(description(def), inv.filter)
if m > 0 then
m = math.min(m, match(description(def, lang), inv.filter))
end
if m > 0 then
m = math.min(m, match(name, inv.filter))
end
if m < NO_MATCH then
creative_list[#creative_list+1] = name
-- Sort by match value first so closer matches appear earlier
order[name] = string.format("%02d", m) .. name
end
end
table.sort(creative_list)
table.sort(creative_list, function(a, b) return order[a] < order[b] end)
player_inv:set_size("main", #creative_list)
player_inv:set_list("main", creative_list)
inv.size = #creative_list
@ -105,31 +149,30 @@ function creative.register_tab(name, title, items)
local player_name = player:get_player_name()
creative.update_creative_inventory(player_name, items)
local inv = player_inventory[player_name]
local start_i = inv.start_i or 0
local pagenum = math.floor(start_i / (INVSIZE) + 1)
local pagemax = math.ceil(inv.size / (INVSIZE))
local pagenum = math.floor(inv.start_i / (4*8) + 1)
local pagemax = math.ceil(inv.size / (4*8))
local esc = minetest.formspec_escape
return sfinv.make_formspec(player, context,
"label[8.2,3.35;"..S("@1 / @2", minetest.colorize("#FFFF00", tostring(pagenum)), tostring(pagemax) .. "]") ..
"label[7.8,4.15;" .. S("@1 / @2", minetest.colorize("#FFFF00", tostring(pagenum)), tostring(pagemax) .. "]") ..
[[
image[6.06,3.4;0.8,0.8;creative_trash_icon.png]
list[current_player;main;0,4.7;10,1;]
list[current_player;main;0,5.85;10,3;10]
list[detached:creative!trash;main;6,3.3;1,1;]
image[6.08,4.2;0.8,0.8;creative_trash_icon.png]
list[detached:creative!trash;main;6.02,4.1;1,1;]
listring[]
button[7.4,3.2;0.8,0.9;creative_prev;<]
button[9.25,3.2;0.8,0.9;creative_next;>]
button[4.1,3.4;0.8,0.5;creative_search;?]
button[4.75,3.4;0.8,0.5;creative_clear;X]
tooltip[creative_search;]]..F(S("Search"))..[[]
tooltip[creative_clear;]]..F(S("Reset"))..[[]
listring[current_player;main]
field_close_on_enter[creative_filter;false]
image_button[7,4.05;0.8,0.8;creative_prev_icon.png;creative_prev;]
image_button[9.2,4.05;0.8,0.8;creative_next_icon.png;creative_next;]
image_button[4.63,4.05;0.8,0.8;creative_search_icon.png;creative_search;]
image_button[5.25,4.05;0.8,0.8;creative_clear_icon.png;creative_clear;]
]] ..
"field[0.3,3.5;4.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" ..
"tooltip[creative_search;" .. esc(S("Search")) .. "]" ..
"tooltip[creative_clear;" .. esc(S("Reset")) .. "]" ..
"tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" ..
"tooltip[creative_next;" .. esc(S("Next page")) .. "]" ..
"listring[current_player;main]" ..
"field_close_on_enter[creative_filter;false]" ..
"field[0.3,4.2;4.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" ..
"listring[detached:creative_" .. player_name .. ";main]" ..
"list[detached:creative_" .. player_name .. ";main;0,0;10,3;" .. tostring(start_i) .. "]" ..
hades_gui.gui_inventory_bg_img
.. creative.formspec_add, false, "size[10,8.6]")
"list[detached:creative_" .. player_name .. ";main;0,0;10,4;" .. tostring(inv.start_i) .. "]" ..
creative.formspec_add, true)
end,
on_enter = function(self, player, context)
local player_name = player:get_player_name()
@ -146,27 +189,25 @@ function creative.register_tab(name, title, items)
if fields.creative_clear then
inv.start_i = 0
inv.filter = ""
creative.update_creative_inventory(player_name, items)
sfinv.set_player_inventory_formspec(player, context)
elseif fields.creative_search or
fields.key_enter_field == "creative_filter" then
inv.start_i = 0
inv.filter = fields.creative_filter:lower()
creative.update_creative_inventory(player_name, items)
sfinv.set_player_inventory_formspec(player, context)
elseif not fields.quit then
local start_i = inv.start_i or 0
if fields.creative_prev then
start_i = start_i - INVSIZE
start_i = start_i - 4*8
if start_i < 0 then
start_i = inv.size - (inv.size % (INVSIZE))
start_i = inv.size - (inv.size % (4*8))
if inv.size == start_i then
start_i = math.max(0, inv.size - (INVSIZE))
start_i = math.max(0, inv.size - (4*8))
end
end
elseif fields.creative_next then
start_i = start_i + INVSIZE
start_i = start_i + 4*8
if start_i >= inv.size then
start_i = 0
end
@ -179,10 +220,30 @@ function creative.register_tab(name, title, items)
})
end
-- Sort registered items
local registered_nodes = {}
local registered_tools = {}
local registered_craftitems = {}
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_items) do
local group = def.groups or {}
local nogroup = not (group.node or group.tool or group.craftitem)
if group.node or (nogroup and minetest.registered_nodes[name]) then
registered_nodes[name] = def
elseif group.tool or (nogroup and minetest.registered_tools[name]) then
registered_tools[name] = def
elseif group.craftitem or (nogroup and minetest.registered_craftitems[name]) then
registered_craftitems[name] = def
end
end
end)
creative.register_tab("all", S("All"), minetest.registered_items)
creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes)
creative.register_tab("tools", S("Tools"), minetest.registered_tools)
creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems)
creative.register_tab("nodes", S("Nodes"), registered_nodes)
creative.register_tab("tools", S("Tools"), registered_tools)
creative.register_tab("craftitems", S("Items"), registered_craftitems)
local old_homepage_name = sfinv.get_homepage_name
function sfinv.get_homepage_name(player)

View File

@ -30,6 +30,7 @@ Licenses of media (textures)
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Copyright (C) 2016 Jean-Patrick G. (kilbith) <jeanpatrick.guerrero@gmail.com>
Copyright (C) 2018 paramat
You are free to:
Share — copy and redistribute the material in any medium or format.

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen
Search=Suchen
Reset=Zurücksetzen
Previous page=Vorherige Seite
Next page=Nächste Seite
All=Alles
Nodes=Blöcke
Tools=Werkzeuge
Items=Gegenstände

View File

@ -0,0 +1,10 @@
# textdomain: creative
Search=Serĉu
Reset=Rekomencigu
Previous page=Pasinta paĝo
Next page=Sekvinta paĝo
All=Ĉio
Nodes=Nodoj
Tools=Iloj
Items=Objektoj
Allow player to use creative inventory=Permesu la ludanto uzi la krea stoko

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Permitir al jugador usar el inventario creativo
Search=Buscar
Reset=Resetear
Previous page=Pág. siguiente
Next page=Pág. anterior
All=Todos
Nodes=Nodos
Tools=Herramientas
Items=Objetos

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif
Search=Rechercher
Reset=Réinitialiser
Previous page=Page précédente
Next page=Page suivante
All=Tout
Nodes=Nœuds
Tools=Outils
Items=Article

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Bolehkan pemain memakai inventaris kreatif
Search=Cari
Reset=Atur ulang
Previous page=Halaman sebelumnya
Next page=Halaman selanjutnya
All=Semua
Nodes=Nodus
Tools=Perkakas
Items=Barang

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo
Search=Cerca
Reset=Azzera
Previous page=Pagina precedente
Next page=Pagina successiva
All=Tutto
Nodes=Nodi
Tools=Strumenti
Items=Oggetti

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=zifre le ka pilno le finti ke dacti liste
Search=sisku
Reset=kraga'igau
Previous page=lidne
Next page=selyli'e
All=ro dacti
Nodes=bliku
Tools=tutci
Items=dacti

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Benarkan pemain menggunakan inventori kreatif
Search=Cari
Reset=Set semula
Previous page=Halaman sebelumnya
Next page=Halaman seterusnya
All=Semua
Nodes=Nod
Tools=Alatan
Items=Item

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Permitir o jogador usar o inventário criativo
Search=Pesquisar
Reset=Redefinir
Previous page=Página anterior
Next page=Próxima página
All=Todos
Nodes=Blocos
Tools=Ferramentas
Items=Itens

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь
Search=Поиск
Reset=Сброс
Previous page=Предыдущая страница
Next page=Следующая страница
All=Всё
Nodes=Ноды
Tools=Инструменты
Items=Предметы

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Tilllåt spelare att används kreativa saker
Search=Sök
Reset=Återställ
Previous page=Förra sidan
Next page=Nästa sidan
All=Alla
Nodes=Noder
Tools=Verktyg
Items=Saker

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Povolí hráčovi použivať kreatívny inventár
Search=Hľadaj
Reset=Vrátiť späť
Previous page=Predchádzajúca stránka
Next page=Nasledujúca stránka
All=Všetko
Nodes=Kocky
Tools=Nástroje
Items=Veci

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=允许玩家使用创造模式物品栏
Search=搜索
Reset=重置
Previous page=上一页
Next page=下一页
All=所有
Nodes=节点
Tools=工具
Items=物品

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=允許玩家使用創造模式物品欄
Search=搜索
Reset=重置
Previous page=上一頁
Next page=下一頁
All=所有
Nodes=節點
Tools=工具
Items=物品

View File

@ -0,0 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=
Search=
Reset=
Previous page=
Next page=
All=
Nodes=
Tools=
Items=

View File

@ -1,2 +1,3 @@
name = creative
depends = hades_gui, sfinv
description = Creative inventory
depends = sfinv

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 642 B

View File

@ -1,21 +0,0 @@
Simple Fast Inventory
====================
![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png)
A cleaner, simpler, solution to having an advanced inventory in Minetest.
Written by rubenwardy.
License: MIT
See game_api.txt for this mod's API
License of source code and media files:
---------------------------------------
Copyright (C) 2016 rubenwardy <rubenwardy@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

18
mods/sfinv/README.txt Normal file
View File

@ -0,0 +1,18 @@
sfinv
========================
See license.txt for license information.
Simple Fast Inventory.
A cleaner, simpler, solution to having an advanced inventory in Minetest.
See game_api.txt for this mod's API.
Available for use outside of MTG here:
https://forum.minetest.net/viewtopic.php?t=19765
Authors of source code
----------------------
rubenwardy (MIT)
Authors of media
----------------
paramat (CC BY-SA 3.0):
sfinv_crafting_arrow.png - derived from a texture by BlockMen (CC BY-SA 3.0)

View File

@ -29,30 +29,25 @@ end
function sfinv.get_nav_fs(player, context, nav, current_idx)
-- Only show tabs if there is more than one page
if #nav > 1 then
return "tabheader[0,0;tabs;" .. table.concat(nav, ",") .. ";" .. current_idx .. ";true;false]"
return "tabheader[0,0;sfinv_nav_tabs;" .. table.concat(nav, ",") ..
";" .. current_idx .. ";true;false]"
else
return ""
end
end
local theme_main = "bgcolor[#080808BB;true]" ..
hades_gui.gui_inventory_bg_img
local theme_inv = [[
list[current_player;main;0,4.7;10,1;]
list[current_player;main;0,5.85;10,3;10]
]]
local theme_inv =
hades_gui.gui_inventory_bg_img ..
"list[current_player;main;0,5.2;10,1;]" ..
"list[current_player;main;0,6.35;10,3;10]"
function sfinv.make_formspec(player, context, content, show_inv, size)
local tmp = {
size or "size[10,8.6]",
theme_main,
size or "size[10,9.1]",
sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx),
show_inv and theme_inv or "",
content
}
if show_inv then
tmp[#tmp + 1] = theme_inv
end
return table.concat(tmp, "")
end
@ -84,9 +79,20 @@ function sfinv.get_formspec(player, context)
return page:get(player, context)
else
local old_page = context.page
context.page = sfinv.get_homepage_name(player)
local home_page = sfinv.get_homepage_name(player)
if old_page == home_page then
minetest.log("error", "[sfinv] Couldn't find " .. dump(old_page) ..
", which is also the old page")
return ""
end
context.page = home_page
assert(sfinv.pages[context.page], "[sfinv] Invalid homepage")
minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) .. " so using switching to homepage")
minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) ..
" so switching to homepage")
return sfinv.get_formspec(player, context)
end
end
@ -127,6 +133,11 @@ function sfinv.set_page(player, pagename)
sfinv.set_player_inventory_formspec(player, context)
end
function sfinv.get_page(player)
local context = sfinv.contexts[player:get_player_name()]
return context and context.page or sfinv.get_homepage_name(player)
end
minetest.register_on_joinplayer(function(player)
if sfinv.enabled then
sfinv.set_player_inventory_formspec(player)
@ -151,8 +162,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
-- Was a tab selected?
if fields.tabs and context.nav then
local tid = tonumber(fields.tabs)
if fields.sfinv_nav_tabs and context.nav then
local tid = tonumber(fields.sfinv_nav_tabs)
if tid and tid > 0 then
local id = context.nav[tid]
local page = sfinv.pages[id]

View File

@ -1,8 +1,11 @@
local S = minetest.get_translator("sfinv")
local F = minetest.formspec_escape
-- sfinv/init.lua
dofile(minetest.get_modpath("sfinv") .. "/api.lua")
local S = minetest.get_translator("sfinv")
local F = minetest.formspec_escape
sfinv.register_page("sfinv:crafting", {
title = S("Crafting"),
get = function(self, player, context)
@ -15,5 +18,5 @@ sfinv.register_page("sfinv:crafting", {
image_button[6.75,1.5;1,1;craftguide_book.png;__craftguide;]
tooltip[__craftguide;]]..F(S("Crafting guide"))..[[]
]], true)
end,
end
})

59
mods/sfinv/license.txt Normal file
View File

@ -0,0 +1,59 @@
License of source code
----------------------
The MIT License (MIT)
Copyright (C) 2016-2018 rubenwardy <rubenwardy@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
For more details:
https://opensource.org/licenses/MIT
License of media
----------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Copyright (C) 2019 paramat
You are free to:
Share — copy and redistribute the material in any medium or format.
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:
Attribution — You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner, but not in any way
that suggests the licensor endorses you or your use.
ShareAlike — If you remix, transform, or build upon the material, you must distribute
your contributions under the same license as the original.
No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
Notices:
You do not have to comply with the license for elements of the material in the public
domain or where your use is permitted by an applicable exception or limitation.
No warranties are given. The license may not give you all of the permissions necessary
for your intended use. For example, other rights such as publicity, privacy, or moral
rights may limit how you use the material.
For more details:
http://creativecommons.org/licenses/by-sa/3.0/

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Fertigung

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Konstruado

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Creación

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Artisanat

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Kerajinan

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Assemblaggio

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=nu zbasu

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Pertukangan

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Construir

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Крафтинг

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Tillverkning

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=Vytváranie

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=合成

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=合成

View File

@ -0,0 +1,2 @@
# textdomain: sfinv
Crafting=

View File

@ -1,2 +1,3 @@
name = sfinv
depends = hades_player, hades_gui
description = Inventory screen with tabs
depends = hades_gui

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B