From: BlockMen Date: Mon, 14 Apr 2014 20:09:18 +0000 (+0200) Subject: Add fancy inventories X-Git-Tag: 0.4.10~30 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=104018d711ff0a581344299d78aaa6c0bd42a023;p=oweals%2Fminetest_game.git Add fancy inventories --- diff --git a/mods/default/init.lua b/mods/default/init.lua index 968cacd4..dbddd200 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -11,6 +11,30 @@ LIGHT_MAX = 14 -- Definitions made by this mod that other mods can use too default = {} +-- GUI related stuff +gui_bg = "bgcolor[#0009;true]" +gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" +gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + +function default.get_hotbar_bg(x,y) + local out = "" + for i=0,7,1 do + out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]" + end + return out +end + +gui_suvival_form = "size[8,8.5]".. + gui_bg.. + gui_bg_img.. + gui_slots.. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "list[current_player;craft;1.75,0.5;3,3;]".. + "list[current_player;craftpreview;5.75,1.5;1,1;]".. + "image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + default.get_hotbar_bg(0,4.25) + -- Load files dofile(minetest.get_modpath("default").."/functions.lua") dofile(minetest.get_modpath("default").."/nodes.lua") diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index e580fbea..008867d3 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -672,16 +672,26 @@ minetest.register_node("default:sign_wall", { default.chest_formspec = "size[8,9]".. - "list[current_name;main;0,0;8,4;]".. - "list[current_player;main;0,5;8,4;]" + gui_bg.. + gui_bg_img.. + gui_slots.. + "list[current_name;main;0,0.3;8,4;]".. + "list[current_player;main;0,4.85;8,1;]".. + "list[current_player;main;0,6.08;8,3;8]".. + default.get_hotbar_bg(0,4.85) function default.get_locked_chest_formspec(pos) local spos = pos.x .. "," .. pos.y .. "," ..pos.z local formspec = "size[8,9]".. - "list[nodemeta:".. spos .. ";main;0,0;8,4;]".. - "list[current_player;main;0,5;8,4;]" - return formspec + gui_bg.. + gui_bg_img.. + gui_slots.. + "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]".. + "list[current_player;main;0,4.85;8,1;]".. + "list[current_player;main;0,6.08;8,3;8]".. + default.get_hotbar_bg(0,4.85) + return formspec end @@ -811,25 +821,54 @@ minetest.register_node("default:chest_locked", { end, }) +function default.furnace_active(pos, percent, item_percent) + local formspec = + "size[8,8.5]".. + gui_bg.. + gui_bg_img.. + gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent*100)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + default.get_hotbar_bg(0,4.25) + return formspec + end + function default.get_furnace_active_formspec(pos, percent) - local formspec = - "size[8,9]".. - "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-percent)..":default_furnace_fire_fg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]" - return formspec + local meta = minetest.get_meta(pos)local inv = meta:get_inventory() + local srclist = inv:get_list("src") + local cooked = nil + local aftercooked = nil + if srclist then + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + local item_percent = 0 + if cooked then + item_percent = meta:get_float("src_time")/cooked.time + end + + return default.furnace_active(pos, percent, item_percent) end default.furnace_inactive_formspec = - "size[8,9]".. - "image[2,2;1,1;default_furnace_fire_bg.png]".. - "list[current_name;fuel;2,3;1,1;]".. - "list[current_name;src;2,1;1,1;]".. - "list[current_name;dst;5,1;2,2;]".. - "list[current_player;main;0,5;8,4;]" + "size[8,8.5]".. + gui_bg.. + gui_bg_img.. + gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + default.get_hotbar_bg(0,4.25) minetest.register_node("default:furnace", { description = "Furnace", diff --git a/mods/default/player.lua b/mods/default/player.lua index f02e0f46..a5a461ec 100644 --- a/mods/default/player.lua +++ b/mods/default/player.lua @@ -142,6 +142,17 @@ end minetest.register_on_joinplayer(function(player) default.player_set_model(player, "character.x") player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) + + -- set GUI + if minetest.setting_getbool("creative_mode") then + -- creative.set_creative_formspec(player, 0, 1) + else + player:set_inventory_formspec(gui_suvival_form) + end + minetest.after(0.5,function() + player:hud_set_hotbar_image("gui_hotbar.png") + player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") + end) end) minetest.register_on_leaveplayer(function(player) diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png new file mode 100644 index 00000000..d70f264d Binary files /dev/null and b/mods/default/textures/gui_formbg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_bg.png b/mods/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 00000000..02f63e55 Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_fg.png b/mods/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 00000000..773e4bf3 Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/mods/default/textures/gui_hb_bg.png b/mods/default/textures/gui_hb_bg.png new file mode 100644 index 00000000..61ea6e0d Binary files /dev/null and b/mods/default/textures/gui_hb_bg.png differ diff --git a/mods/default/textures/gui_hotbar.png b/mods/default/textures/gui_hotbar.png new file mode 100644 index 00000000..1a1e3130 Binary files /dev/null and b/mods/default/textures/gui_hotbar.png differ diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 00000000..c07fc38d Binary files /dev/null and b/mods/default/textures/gui_hotbar_selected.png differ