forked from VoxeLibre/VoxeLibre
Merge pull request 'Fixing multiple crashes on the German server.' (#3587) from crashes_on_german_server into master
Reviewed-on: MineClone2/MineClone2#3587
This commit is contained in:
commit
46eb4d11dc
|
@ -300,6 +300,10 @@ end
|
||||||
-- loading order.
|
-- loading order.
|
||||||
function mcl_autogroup.get_wear(toolname, diggroup)
|
function mcl_autogroup.get_wear(toolname, diggroup)
|
||||||
local tdef = minetest.registered_tools[toolname]
|
local tdef = minetest.registered_tools[toolname]
|
||||||
|
if not tdef then
|
||||||
|
minetest.log("warning", "Adding wear for tool: " .. tostring(toolname) .. " failed with diggroup: " .. tostring(diggroup))
|
||||||
|
return nil
|
||||||
|
end
|
||||||
local uses = tdef._mcl_diggroups[diggroup].uses
|
local uses = tdef._mcl_diggroups[diggroup].uses
|
||||||
return math.ceil(65535 / uses)
|
return math.ceil(65535 / uses)
|
||||||
end
|
end
|
||||||
|
|
|
@ -62,8 +62,11 @@ function mob_class:update_tag() --update nametag and/or the debug box
|
||||||
end
|
end
|
||||||
|
|
||||||
function mob_class:jock_to(mob, reletive_pos, rot)
|
function mob_class:jock_to(mob, reletive_pos, rot)
|
||||||
|
local pos = self.object:get_pos()
|
||||||
|
if not pos then return end
|
||||||
|
|
||||||
self.jockey = mob
|
self.jockey = mob
|
||||||
local jock = minetest.add_entity(self.object:get_pos(), mob)
|
local jock = minetest.add_entity(pos, mob)
|
||||||
if not jock then return end
|
if not jock then return end
|
||||||
jock:get_luaentity().docile_by_day = false
|
jock:get_luaentity().docile_by_day = false
|
||||||
jock:get_luaentity().riden_by_jock = true
|
jock:get_luaentity().riden_by_jock = true
|
||||||
|
|
|
@ -91,7 +91,7 @@ local skeleton = {
|
||||||
},
|
},
|
||||||
on_spawn = function(self)
|
on_spawn = function(self)
|
||||||
if math.random(100) == 1 then
|
if math.random(100) == 1 then
|
||||||
self:jock_to("mobs_mc:spider", vector.new(0,0,0), vector.new(0,0,0))
|
self:jock_to("mobs_mc:spider", vector.zero(), vector.zero())
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
|
|
|
@ -99,6 +99,7 @@ local dropperdef = {
|
||||||
mesecons = {effector = {
|
mesecons = {effector = {
|
||||||
-- Drop random item when triggered
|
-- Drop random item when triggered
|
||||||
action_on = function(pos, node)
|
action_on = function(pos, node)
|
||||||
|
if not pos then return end
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local droppos
|
local droppos
|
||||||
|
|
|
@ -278,6 +278,10 @@ end
|
||||||
|
|
||||||
local old_add_item = minetest.add_item
|
local old_add_item = minetest.add_item
|
||||||
function minetest.add_item(pos, stack)
|
function minetest.add_item(pos, stack)
|
||||||
|
if not pos then
|
||||||
|
minetest.log("warning", "Trying to add item with missing pos: " .. tostring(stack))
|
||||||
|
return
|
||||||
|
end
|
||||||
stack = ItemStack(stack)
|
stack = ItemStack(stack)
|
||||||
if get_item_group(stack:get_name(), "filled_map") > 0 then
|
if get_item_group(stack:get_name(), "filled_map") > 0 then
|
||||||
stack:set_name("mcl_maps:filled_map")
|
stack:set_name("mcl_maps:filled_map")
|
||||||
|
|
|
@ -183,8 +183,10 @@ local make_grass_path = function(itemstack, placer, pointed_thing)
|
||||||
-- Add wear (as if digging a shovely node)
|
-- Add wear (as if digging a shovely node)
|
||||||
local toolname = itemstack:get_name()
|
local toolname = itemstack:get_name()
|
||||||
local wear = mcl_autogroup.get_wear(toolname, "shovely")
|
local wear = mcl_autogroup.get_wear(toolname, "shovely")
|
||||||
|
if wear then
|
||||||
itemstack:add_wear(wear)
|
itemstack:add_wear(wear)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true)
|
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true)
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"})
|
minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"})
|
||||||
end
|
end
|
||||||
|
@ -212,8 +214,11 @@ if minetest.get_modpath("mcl_farming") then
|
||||||
-- Add wear (as if digging a shearsy node)
|
-- Add wear (as if digging a shearsy node)
|
||||||
local toolname = itemstack:get_name()
|
local toolname = itemstack:get_name()
|
||||||
local wear = mcl_autogroup.get_wear(toolname, "shearsy")
|
local wear = mcl_autogroup.get_wear(toolname, "shearsy")
|
||||||
|
if wear then
|
||||||
itemstack:add_wear(wear)
|
itemstack:add_wear(wear)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
end
|
||||||
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true)
|
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true)
|
||||||
local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
|
local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
|
||||||
local param2 = minetest.dir_to_facedir(dir)
|
local param2 = minetest.dir_to_facedir(dir)
|
||||||
|
@ -379,9 +384,11 @@ local function make_stripped_trunk(itemstack, placer, pointed_thing)
|
||||||
-- Add wear (as if digging a axey node)
|
-- Add wear (as if digging a axey node)
|
||||||
local toolname = itemstack:get_name()
|
local toolname = itemstack:get_name()
|
||||||
local wear = mcl_autogroup.get_wear(toolname, "axey")
|
local wear = mcl_autogroup.get_wear(toolname, "axey")
|
||||||
|
if wear then
|
||||||
itemstack:add_wear(wear)
|
itemstack:add_wear(wear)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue