From 104018d711ff0a581344299d78aaa6c0bd42a023 Mon Sep 17 00:00:00 2001 From: BlockMen Date: Mon, 14 Apr 2014 22:09:18 +0200 Subject: [PATCH] Add fancy inventories --- mods/default/init.lua | 24 ++++++ mods/default/nodes.lua | 79 +++++++++++++----- mods/default/player.lua | 11 +++ mods/default/textures/gui_formbg.png | Bin 0 -> 3699 bytes .../default/textures/gui_furnace_arrow_bg.png | Bin 0 -> 515 bytes .../default/textures/gui_furnace_arrow_fg.png | Bin 0 -> 301 bytes mods/default/textures/gui_hb_bg.png | Bin 0 -> 169 bytes mods/default/textures/gui_hotbar.png | Bin 0 -> 1143 bytes mods/default/textures/gui_hotbar_selected.png | Bin 0 -> 5036 bytes 9 files changed, 94 insertions(+), 20 deletions(-) create mode 100644 mods/default/textures/gui_formbg.png create mode 100644 mods/default/textures/gui_furnace_arrow_bg.png create mode 100644 mods/default/textures/gui_furnace_arrow_fg.png create mode 100644 mods/default/textures/gui_hb_bg.png create mode 100644 mods/default/textures/gui_hotbar.png create mode 100644 mods/default/textures/gui_hotbar_selected.png 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 0000000000000000000000000000000000000000..d70f264d5cffb53c797f1409f996bdf2d71015c1 GIT binary patch literal 3699 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..773e4bf3f6586b5c107f5ec565a8c77470025e7b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^h9Jzr1|*B;ILZJi&H|6fVg?3oArNM~bhqvgQ1HH| zi(^Q|oVVB3<}on}9QpWv@j?SpQ&R~S)@5vs2SXCH3`}JM0~-%27?^Un@V2q9m@EF! zVC|j)%XiF^1Rs}8{@Zz0&o!{%{ma@0Kf(RY!D|)tC*FVcjlEEp=_m8gzw(WH9O`%% zX|sG1|CBDtRM}_4y-1hklT>A>Xrqm59p@rVmQP}p!QzcJj&*#C^q4B!|J)T}s_e1h zTBODFlfCl37}HPApN1WmoPKuHyx?m5(_q8%=u%R+Mcwz`3~Yif0*)+Lh%YTWo_?`& c5U96gUc_MYmNhQn5zwm)p00i_>zopr0QKBxKL7v# literal 0 HcmV?d00001 diff --git a/mods/default/textures/gui_hb_bg.png b/mods/default/textures/gui_hb_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..61ea6e0d694e478879bfeabac018c75aff3d7499 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^h9Jzr1|*B;ILZJi&H|6fVg?3oArNM~bhqvgP%zrl z#WAE}&fD{bf(IM~j%;}R`Oi<*V^v04ccRP7-?N`(S5QbIkMOExJ~}x%Giyl%&>99$ LS3j3^P62#txdTXBNbluyCmmB0 z=2$#^3|0wJCek4cRJN+{mZjwio*v=lHDHxzLCTmw4hc5(vsP!H+F1B#N=S~K>w(!(( zuu70JO#!e|A8#oh_0(ugJqn>?^4nJ&Fn3-3r86&&0h1&sz1#cEk$YwGT`r{l!QA_M z{`b9JKhgI0-1B{qZ1U(!!ScwOg_Be~FU__6%Lt^`-@7cY;5q5btG{dyf_A!e`7D?O QEJ+wVUHx3vIVCg!0G1p5fdBvi literal 0 HcmV?d00001 diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..c07fc38d95ed87f1754fbc35abcc003e4e169f36 GIT binary patch literal 5036 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