mirror of
https://github.com/minetest-mods/item_drop.git
synced 2025-06-29 13:20:44 +02:00
Compare commits
4 Commits
pickerpart
...
dev
Author | SHA1 | Date | |
---|---|---|---|
d51b468428 | |||
293fd77614 | |||
3e6a731cab | |||
d282d1ab0c |
21
init.lua
21
init.lua
@ -1,7 +1,7 @@
|
|||||||
local load_time_start = minetest.get_us_time()
|
local load_time_start = minetest.get_us_time()
|
||||||
pickup_radius = tonumber(minetest.settings:get("item_pickup_radius"))
|
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
|
minetest.settings:get_bool("enable_item_pickup") ~= false then
|
||||||
local pickup_gain = tonumber(
|
local pickup_gain = tonumber(
|
||||||
minetest.settings:get("item_drop.pickup_sound_gain")) or
|
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
|
if pickup_particle then
|
||||||
local item = minetest.registered_nodes[ent.itemstring:gsub("(.*)%s.*$","%1")]
|
local item = minetest.registered_nodes[ent.itemstring:gsub("(.*)%s.*$","%1")]
|
||||||
local image = ""
|
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
|
if minetest.registered_items[item.name].tiles[1] then
|
||||||
local dt = minetest.registered_items[item.name].drawtype
|
local dt = minetest.registered_items[item.name].drawtype
|
||||||
if dt == "normal" or dt == "allfaces" or dt == "allfaces_optional"
|
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 not right then right = left end
|
||||||
if (type(right) == "table") then right = right.item end
|
if (type(right) == "table") then right = right.item end
|
||||||
|
|
||||||
image = "[inventorycube{"..top.."{"..left.."{"..right
|
image = minetest.inventorycube(top, left, right)
|
||||||
else
|
else
|
||||||
image = minetest.registered_items[item.name].inventory_image
|
image = minetest.registered_items[item.name].inventory_image
|
||||||
if not image then image = minetest.registered_items[item.name].tiles[1] end
|
if not image then image = minetest.registered_items[item.name].tiles[1] end
|
||||||
end
|
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({
|
minetest.add_particle({
|
||||||
pos = {x = pos.x, y = pos.y + 1.5, z = pos.z},
|
pos = {x = pos.x, y = pos.y + 1.5, z = pos.z},
|
||||||
velocity = {x = 0, y = 1, z = 0},
|
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)
|
minetest.after(3.0, pickup_step)
|
||||||
end
|
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
|
minetest.settings:get_bool("enable_item_drop") ~= false
|
||||||
and not minetest.settings:get_bool("creative_mode") then
|
and not minetest.settings:get_bool("creative_mode") then
|
||||||
function minetest.handle_node_drops(pos, drops)
|
function minetest.handle_node_drops(pos, drops)
|
||||||
@ -266,10 +260,15 @@ and not minetest.settings:get_bool("creative_mode") then
|
|||||||
name = item:get_name()
|
name = item:get_name()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if name == "" then
|
||||||
|
-- Sometimes nothing should be dropped
|
||||||
|
count = 0
|
||||||
|
end
|
||||||
|
|
||||||
for _ = 1,count do
|
for _ = 1,count do
|
||||||
local obj = minetest.add_item(pos, name)
|
local obj = minetest.add_item(pos, name)
|
||||||
if not obj then
|
if not obj then
|
||||||
error("Couldn't spawn item")
|
error("Couldn't spawn item " .. name .. ", drops: " .. dump(drops))
|
||||||
end
|
end
|
||||||
|
|
||||||
local vel = obj:getvelocity()
|
local vel = obj:getvelocity()
|
||||||
|
Reference in New Issue
Block a user