Add fancy inventories
authorBlockMen <nmuelll@web.de>
Mon, 14 Apr 2014 20:09:18 +0000 (22:09 +0200)
committerBlockMen <nmuelll@web.de>
Sat, 5 Jul 2014 13:57:35 +0000 (15:57 +0200)
mods/default/init.lua
mods/default/nodes.lua
mods/default/player.lua
mods/default/textures/gui_formbg.png [new file with mode: 0644]
mods/default/textures/gui_furnace_arrow_bg.png [new file with mode: 0644]
mods/default/textures/gui_furnace_arrow_fg.png [new file with mode: 0644]
mods/default/textures/gui_hb_bg.png [new file with mode: 0644]
mods/default/textures/gui_hotbar.png [new file with mode: 0644]
mods/default/textures/gui_hotbar_selected.png [new file with mode: 0644]

index 968cacd4c0b783cd27723286d1c94a7050feb504..dbddd2001fc505278f9ccb5be6bc575d8834f5ef 100644 (file)
@@ -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")
index e580fbeabf28eea1824dfd850561f21c62579fda..008867d3ad3ade886e93a00a3f1b98d0815d601c 100644 (file)
@@ -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",
index f02e0f466318d156fc4655b5b7dd654272ba00e1..a5a461ecf4fe74b5e3574506f39a4c445313c7f1 100644 (file)
@@ -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 (file)
index 0000000..d70f264
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 (file)
index 0000000..02f63e5
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 (file)
index 0000000..773e4bf
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 (file)
index 0000000..61ea6e0
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 (file)
index 0000000..1a1e313
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 (file)
index 0000000..c07fc38
Binary files /dev/null and b/mods/default/textures/gui_hotbar_selected.png differ