From 47e42801d291249d1d0da28904695c9411650d6d Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sun, 1 Jan 2017 17:12:32 -0700 Subject: Adding fuel usage Adding fuel usage for digging and building. Fuel storage hopper module added to hold fuel. --- node_misc.lua | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 5 deletions(-) (limited to 'node_misc.lua') diff --git a/node_misc.lua b/node_misc.lua index c26d6a2..262ef6e 100644 --- a/node_misc.lua +++ b/node_misc.lua @@ -58,21 +58,74 @@ minetest.register_node("digtron:inventory", on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("formspec", - "size[8,9]" .. + "size[8,9.3]" .. default.gui_bg .. default.gui_bg_img .. default.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]" .. + "label[0,0;Inventory items]" .. + "list[current_name;main;0,0.6;8,4;]" .. + "list[current_player;main;0,5.15;8,1;]" .. + "list[current_player;main;0,6.38;8,3;8]" .. "listring[current_name;main]" .. "listring[current_player;main]" .. - default.get_hotbar_bg(0,4.85) + default.get_hotbar_bg(0,5.15) ) local inv = meta:get_inventory() inv:set_size("main", 8*4) end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty("main") + end, +}) + +-- Fuel storage. Controller node draws fuel from here. +-- Note that fuel stores are digtron group 5. +minetest.register_node("digtron:fuelstore", +{ + description = "Digtron Fuel Hopper", + groups = {cracky = 3, stone = 1, digtron = 5}, + drop = 'digtron:fuelstore', + paramtype2= 'facedir', + tiles = {"digtron_fuelstore.png"}, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,9.3]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "label[0,0;Fuel items]" .. + "list[current_name;main;0,0.6;8,4;]" .. + "list[current_player;main;0,5.15;8,1;]" .. + "list[current_player;main;0,6.38;8,3;8]" .. + "listring[current_name;main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,5.15) + ) + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end, + + -- Only allow fuel items to be placed in here + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "main" then + if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then + return stack:get_count() + else + return 0 + end + end + end, + can_dig = function(pos,player) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() -- cgit v1.2.3