4 Commits

Author SHA1 Message Date
d51b468428 Simplify inventorycube code (again) 2018-06-23 10:09:02 +02:00
293fd77614 Fix settings bug 2018-06-23 10:02:04 +02:00
3e6a731cab Fix crash on no drops (@HybridDog) 2018-06-23 10:01:40 +02:00
d282d1ab0c Merge pull request #13 from minetest-mods/pickerparticle
Pickup particle feature
2018-06-18 10:31:33 +02:00

View File

@ -1,7 +1,7 @@
local load_time_start = minetest.get_us_time()
pickup_radius = tonumber(minetest.settings:get("item_pickup_radius"))
if minetest.settings:get_bool("item_drop.enable_item_pickup") ~= false or
if minetest.settings:get_bool("item_drop.enable_item_pickup") ~= false and
minetest.settings:get_bool("enable_item_pickup") ~= false then
local pickup_gain = tonumber(
minetest.settings:get("item_drop.pickup_sound_gain")) or
@ -47,7 +47,7 @@ minetest.settings:get_bool("enable_item_pickup") ~= false then
if pickup_particle then
local item = minetest.registered_nodes[ent.itemstring:gsub("(.*)%s.*$","%1")]
local image = ""
if minetest.registered_items[item.name] and minetest.registered_items[item.name].tiles then
if item and minetest.registered_items[item.name] and minetest.registered_items[item.name].tiles then
if minetest.registered_items[item.name].tiles[1] then
local dt = minetest.registered_items[item.name].drawtype
if dt == "normal" or dt == "allfaces" or dt == "allfaces_optional"
@ -64,18 +64,12 @@ minetest.settings:get_bool("enable_item_pickup") ~= false then
if not right then right = left end
if (type(right) == "table") then right = right.item end
image = "[inventorycube{"..top.."{"..left.."{"..right
image = minetest.inventorycube(top, left, right)
else
image = minetest.registered_items[item.name].inventory_image
if not image then image = minetest.registered_items[item.name].tiles[1] end
end
end
end
if item then
local texture = item.tiles[1] or item.inventory_image or ""
if item.drawtype == "normal" then
texture = item.tiles
end
minetest.add_particle({
pos = {x = pos.x, y = pos.y + 1.5, z = pos.z},
velocity = {x = 0, y = 1, z = 0},
@ -251,7 +245,7 @@ minetest.settings:get_bool("enable_item_pickup") ~= false then
minetest.after(3.0, pickup_step)
end
if minetest.settings:get_bool("item_drop.enable_item_drop") ~= false or
if minetest.settings:get_bool("item_drop.enable_item_drop") ~= false and
minetest.settings:get_bool("enable_item_drop") ~= false
and not minetest.settings:get_bool("creative_mode") then
function minetest.handle_node_drops(pos, drops)
@ -266,10 +260,15 @@ and not minetest.settings:get_bool("creative_mode") then
name = item:get_name()
end
if name == "" then
-- Sometimes nothing should be dropped
count = 0
end
for _ = 1,count do
local obj = minetest.add_item(pos, name)
if not obj then
error("Couldn't spawn item")
error("Couldn't spawn item " .. name .. ", drops: " .. dump(drops))
end
local vel = obj:getvelocity()