Compare commits
3 Commits
c35e11d4b5
...
a865692a64
Author | SHA1 | Date |
---|---|---|
Pascal Abresch | a865692a64 | |
Pascal Abresch | 4f94a568ec | |
Pascal Abresch | 218e13fd1c |
|
@ -4,6 +4,7 @@ sparktech.getoption = function(nodepos, optionname)
|
||||||
local node = minetest.get_node(nodepos)
|
local node = minetest.get_node(nodepos)
|
||||||
local meta = minetest.get_meta(nodepos)
|
local meta = minetest.get_meta(nodepos)
|
||||||
local optionsdef = minetest.registered_nodes[node.name]._sparkoption
|
local optionsdef = minetest.registered_nodes[node.name]._sparkoption
|
||||||
|
if iodebug and not optionsdef then error("Getoption called on node that shouldn't have options!") end
|
||||||
if iodebug and not optionsdef[optionname] then
|
if iodebug and not optionsdef[optionname] then
|
||||||
error("optioname " ..optionname .. " for " .. node.name .." is not defined!")
|
error("optioname " ..optionname .. " for " .. node.name .." is not defined!")
|
||||||
end
|
end
|
||||||
|
@ -23,5 +24,18 @@ sparktech.setoption = function(nodepos, optionname, optionvalue)
|
||||||
error("optioname " .. optionname .. " for " .. node.name .." is not defined!")
|
error("optioname " .. optionname .. " for " .. node.name .." is not defined!")
|
||||||
end
|
end
|
||||||
meta:set(optionname, minetest:serialize(optionvalue))
|
meta:set(optionname, minetest:serialize(optionvalue))
|
||||||
|
nodeminetest.registered_nodes[node.name]._sparkoptionchanged(nodepos, optionname)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
sparktech.getoutput = function(nodepos, outputname)
|
||||||
|
assert(nodepos, "No position passed to getoutput!")
|
||||||
|
assert(outputname, "No name passed to getoutput!")
|
||||||
|
local sparkfunction = minetest.registered_nodes[minetest.get_node(nodepos).name]._sparkoutput[outputname]
|
||||||
|
return sparkfunction(nodepos)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
sparktech.getoutputtype = function(nodepos, outputname)
|
||||||
|
return minetest.registered_nodes[minetest.get_node(nodepos).name]._sparkoutputtype[outputname]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,8 @@ minetest.register_globalstep(function(dtime)
|
||||||
else
|
else
|
||||||
hudString = hudString .. outputname .. ": " .. output:get_name() .. "[" .. output:get_count() .. "] (item)\n"
|
hudString = hudString .. outputname .. ": " .. output:get_name() .. "[" .. output:get_count() .. "] (item)\n"
|
||||||
end
|
end
|
||||||
|
elseif outputType == "Inventory" then
|
||||||
|
hudString = hudString .. outputname .. ": Inventory (viewing not implemented)"
|
||||||
else
|
else
|
||||||
hudString = hudString .. outputType .. "?\n".. dump2(output)
|
hudString = hudString .. outputType .. "?\n".. dump2(output)
|
||||||
end
|
end
|
||||||
|
|
|
@ -36,6 +36,9 @@ minetest.register_node(NAME .. ":solar", {
|
||||||
return minetest.get_node_light(nodepos)
|
return minetest.get_node_light(nodepos)
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
|
_sparkoutputtype = {
|
||||||
|
lightLevel = type(1)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -397,7 +397,39 @@ minetest.register_node( NAME .. ":quarry", {
|
||||||
|
|
||||||
--on_destruct = function(pos, player) player:get_meta():set_string(NAME .. ":quarry_pos" , "") end,
|
--on_destruct = function(pos, player) player:get_meta():set_string(NAME .. ":quarry_pos" , "") end,
|
||||||
allow_metadata_inventory_put = function(_,_,_, stack) return stack:get_count() end,
|
allow_metadata_inventory_put = function(_,_,_, stack) return stack:get_count() end,
|
||||||
allow_metadata_inventory_take = function(_, _, _, stack) return stack:get_count() end
|
allow_metadata_inventory_take = function(_, _, _, stack) return stack:get_count() end,
|
||||||
|
_sparkoptionchanged = function(pos, name)
|
||||||
|
if name == "enabled" then
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
if sparktech.getoption(pos, name) then
|
||||||
|
timer:start(0.1)
|
||||||
|
else
|
||||||
|
timer:stop()
|
||||||
|
end
|
||||||
|
elseif name == "depth" then
|
||||||
|
if sparktech.getoption(pos, name) > MAX_DEPTH then
|
||||||
|
local meta = minetest.get_meta(nodepos)
|
||||||
|
meta:set_int("depth", MAX_DEPTH)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
_sparkoption = {
|
||||||
|
enabled = true,
|
||||||
|
depth = MAX_DEPTH,
|
||||||
|
},
|
||||||
|
_sparkoutput = {
|
||||||
|
items = function(nodepos)
|
||||||
|
local meta = minetest.get_meta(nodepos)
|
||||||
|
return meta:get_inventory()
|
||||||
|
end,
|
||||||
|
reachedDepth = function(nodepos)
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
},
|
||||||
|
_sparkoutputtype = {
|
||||||
|
items = "Inventory",
|
||||||
|
reachedDepth = type(0)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue