Compare commits
5 Commits
c9ef93e758
...
64626b15c8
Author | SHA1 | Date |
---|---|---|
PilzAdam | 64626b15c8 | |
PilzAdam | 7c7d3e2292 | |
Zeg9 | 7c071a45f5 | |
PilzAdam | 913540214c | |
PilzAdam | 60b15341fa |
21
init.lua
21
init.lua
|
@ -78,7 +78,7 @@ minetest.register_entity(":__builtin:item", {
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
local time = minetest.setting_get("remove_items")
|
local time = tonumber(minetest.setting_get("remove_items"))
|
||||||
if not time then
|
if not time then
|
||||||
time = 300
|
time = 300
|
||||||
end
|
end
|
||||||
|
@ -126,14 +126,15 @@ minetest.register_entity(":__builtin:item", {
|
||||||
|
|
||||||
local vec = get_flowing_dir(self)
|
local vec = get_flowing_dir(self)
|
||||||
if vec then
|
if vec then
|
||||||
|
local v = self.object:getvelocity()
|
||||||
if vec and vec.x-p.x > 0 then
|
if vec and vec.x-p.x > 0 then
|
||||||
self.object:setvelocity({x=0.5,y=0,z=0})
|
self.object:setvelocity({x=0.5,y=v.y,z=0})
|
||||||
elseif vec and vec.x-p.x < 0 then
|
elseif vec and vec.x-p.x < 0 then
|
||||||
self.object:setvelocity({x=-0.5,y=0,z=0})
|
self.object:setvelocity({x=-0.5,y=v.y,z=0})
|
||||||
elseif vec and vec.z-p.z > 0 then
|
elseif vec and vec.z-p.z > 0 then
|
||||||
self.object:setvelocity({x=0,y=0,z=0.5})
|
self.object:setvelocity({x=0,y=v.y,z=0.5})
|
||||||
elseif vec and vec.z-p.z < 0 then
|
elseif vec and vec.z-p.z < 0 then
|
||||||
self.object:setvelocity({x=0,y=0,z=-0.5})
|
self.object:setvelocity({x=0,y=v.y,z=-0.5})
|
||||||
end
|
end
|
||||||
self.object:setacceleration({x=0, y=-10, z=0})
|
self.object:setacceleration({x=0, y=-10, z=0})
|
||||||
self.physical_state = true
|
self.physical_state = true
|
||||||
|
@ -170,8 +171,16 @@ minetest.register_entity(":__builtin:item", {
|
||||||
|
|
||||||
on_punch = function(self, hitter)
|
on_punch = function(self, hitter)
|
||||||
if self.itemstring ~= '' then
|
if self.itemstring ~= '' then
|
||||||
hitter:get_inventory():add_item("main", self.itemstring)
|
local left = hitter:get_inventory():add_item("main", self.itemstring)
|
||||||
|
if not left:is_empty() then
|
||||||
|
self.itemstring = left:to_string()
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if minetest.setting_get("log_mods") then
|
||||||
|
minetest.log("action", "builtin_item loaded")
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue