Update torch, and minor fixes, mobs cleanup

This commit is contained in:
MoNTE48 2019-07-05 20:15:18 +02:00
parent b68b7e36cf
commit e88a1e7ac4
28 changed files with 391 additions and 318 deletions

View File

@ -83,11 +83,7 @@ local filters = {
return found_in_list(name, {"^boats:", "^carts:"}) or groups.rail return found_in_list(name, {"^boats:", "^carts:"}) or groups.rail
end, end,
["food"] = function(name, def, groups) ["food"] = function(name, def, groups)
return def.on_use return def.groups.food
--[[return found_in_list(name, {
"fish", "apple", "bread", "chicken_", "meat", "sugar",
"mushroom", "pork", "rabbit", "cheese", "milk",
})]]
end, end,
["tools"] = function(name) ["tools"] = function(name)
return minetest.registered_tools[name] or return minetest.registered_tools[name] or

View File

@ -92,21 +92,10 @@ minetest.register_alias("default:papyrus", "default:sugarcane")
-- Fences -- Fences
minetest.register_alias("fences:fence_wood", "default:fence_wood") minetest.register_alias("fences:fence_wood", "default:fence_wood")
minetest.register_alias("fences:fence_wood_1", "default:fence_wood") for _, n in pairs({"1", "2", "3", "11", "12", "13", "14",
minetest.register_alias("fences:fence_wood_2", "default:fence_wood") "21", "22", "23", "24", "32", "33", "34", "35"}) do
minetest.register_alias("fences:fence_wood_3", "default:fence_wood") minetest.register_alias("fences:fence_wood_" .. n, "default:fence_wood")
minetest.register_alias("fences:fence_wood_11", "default:fence_wood") end
minetest.register_alias("fences:fence_wood_12", "default:fence_wood")
minetest.register_alias("fences:fence_wood_13", "default:fence_wood")
minetest.register_alias("fences:fence_wood_14", "default:fence_wood")
minetest.register_alias("fences:fence_wood_21", "default:fence_wood")
minetest.register_alias("fences:fence_wood_22", "default:fence_wood")
minetest.register_alias("fences:fence_wood_23", "default:fence_wood")
minetest.register_alias("fences:fence_wood_24", "default:fence_wood")
minetest.register_alias("fences:fence_wood_32", "default:fence_wood")
minetest.register_alias("fences:fence_wood_33", "default:fence_wood")
minetest.register_alias("fences:fence_wood_34", "default:fence_wood")
minetest.register_alias("fences:fence_wood_35", "default:fence_wood")
-- Hardened Clay -- Hardened Clay
minetest.register_alias("hardened_clay:hardened_clay", "default:hardened_clay") minetest.register_alias("hardened_clay:hardened_clay", "default:hardened_clay")

View File

@ -3,13 +3,13 @@
minetest.register_craftitem("default:stick", { minetest.register_craftitem("default:stick", {
description = "Stick", description = "Stick",
inventory_image = "default_stick.png", inventory_image = "default_stick.png",
groups = {stick = 1, flammable = 2}, groups = {stick = 1, flammable = 2}
}) })
minetest.register_craftitem("default:paper", { minetest.register_craftitem("default:paper", {
description = "Paper", description = "Paper",
inventory_image = "default_paper.png", inventory_image = "default_paper.png",
groups = {flammable = 3}, groups = {flammable = 3}
}) })
@ -158,7 +158,7 @@ minetest.register_craftitem("default:book", {
description = "Book", description = "Book",
inventory_image = "default_book.png", inventory_image = "default_book.png",
groups = {book = 1, flammable = 3}, groups = {book = 1, flammable = 3},
on_use = book_on_use, on_use = book_on_use
}) })
minetest.register_craftitem("default:book_written", { minetest.register_craftitem("default:book_written", {
@ -166,7 +166,7 @@ minetest.register_craftitem("default:book_written", {
inventory_image = "default_book_written.png", inventory_image = "default_book_written.png",
groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, groups = {book = 1, not_in_creative_inventory = 1, flammable = 3},
stack_max = 1, stack_max = 1,
on_use = book_on_use, on_use = book_on_use
}) })
minetest.register_craftitem("default:coal_lump", { minetest.register_craftitem("default:coal_lump", {
@ -183,69 +183,71 @@ minetest.register_craftitem("default:charcoal_lump", {
minetest.register_craftitem("default:diamond", { minetest.register_craftitem("default:diamond", {
description = "Diamond", description = "Diamond",
inventory_image = "default_diamond.png", inventory_image = "default_diamond.png"
}) })
minetest.register_craftitem("default:clay_lump", { minetest.register_craftitem("default:clay_lump", {
description = "Clay Lump", description = "Clay Lump",
inventory_image = "default_clay_lump.png", inventory_image = "default_clay_lump.png"
}) })
minetest.register_craftitem("default:steel_ingot", { minetest.register_craftitem("default:steel_ingot", {
description = "Steel Ingot", description = "Steel Ingot",
inventory_image = "default_steel_ingot.png", inventory_image = "default_steel_ingot.png"
}) })
minetest.register_craftitem("default:gold_ingot", { minetest.register_craftitem("default:gold_ingot", {
description = "Gold Ingot", description = "Gold Ingot",
inventory_image = "default_gold_ingot.png", inventory_image = "default_gold_ingot.png"
}) })
minetest.register_craftitem("default:emerald", { minetest.register_craftitem("default:emerald", {
description = "Emerald", description = "Emerald",
inventory_image = "default_emerald.png", inventory_image = "default_emerald.png"
}) })
minetest.register_craftitem("default:clay_brick", { minetest.register_craftitem("default:clay_brick", {
description = "Clay Brick", description = "Clay Brick",
inventory_image = "default_clay_brick.png", inventory_image = "default_clay_brick.png"
}) })
minetest.register_craftitem("default:gunpowder", { minetest.register_craftitem("default:gunpowder", {
description = "Gunpowder", description = "Gunpowder",
inventory_image = "default_gunpowder.png", inventory_image = "default_gunpowder.png"
}) })
minetest.register_craftitem("default:bone", { minetest.register_craftitem("default:bone", {
description = "Bone", description = "Bone",
inventory_image = "default_bone.png", inventory_image = "default_bone.png"
}) })
minetest.register_craftitem("default:glowstone_dust", { minetest.register_craftitem("default:glowstone_dust", {
description = "Glowstone Dust", description = "Glowstone Dust",
inventory_image = "default_glowstone_dust.png", inventory_image = "default_glowstone_dust.png"
}) })
minetest.register_craftitem("default:fish_raw", { minetest.register_craftitem("default:fish_raw", {
description = "Raw Fish", description = "Raw Fish",
inventory_image = "default_fish.png", inventory_image = "default_fish.png",
on_use = minetest.item_eat(2), groups = {food = 1},
on_use = minetest.item_eat(2)
}) })
minetest.register_craftitem("default:fish", { minetest.register_craftitem("default:fish", {
description = "Cooked Fish", description = "Cooked Fish",
inventory_image = "default_fish_cooked.png", inventory_image = "default_fish_cooked.png",
on_use = minetest.item_eat(4), groups = {food = 1},
on_use = minetest.item_eat(4)
}) })
minetest.register_craftitem("default:sugar", { minetest.register_craftitem("default:sugar", {
description = "Sugar", description = "Sugar",
inventory_image = "default_sugar.png", inventory_image = "default_sugar.png"
}) })
minetest.register_craftitem("default:quartz_crystal", { minetest.register_craftitem("default:quartz_crystal", {
description = "Quartz Crystal", description = "Quartz Crystal",
inventory_image = "default_quartz_crystal.png", inventory_image = "default_quartz_crystal.png"
}) })
minetest.register_craftitem("default:flint", { minetest.register_craftitem("default:flint", {

View File

@ -0,0 +1,58 @@
# Blender v2.77 (sub 0) OBJ File: 'torch_ceiling.blend'
# www.blender.org
mtllib torch_ceiling.mtl
o Cube_Cube.001
v -0.062469 -0.047331 0.068152
v -0.062469 -0.559515 -0.164388
v -0.062469 0.004344 -0.045667
v -0.062469 -0.507839 -0.278206
v 0.062531 -0.047331 0.068152
v 0.062531 -0.559515 -0.164388
v 0.062531 0.004344 -0.045667
v 0.062531 -0.507839 -0.278206
v 0.353584 0.040000 0.363553
v 0.353584 -0.397500 0.363553
v -0.353522 0.040000 -0.343553
v -0.353522 -0.397500 -0.343553
v 0.353584 0.040000 -0.343553
v -0.353522 0.040000 0.363553
v 0.353584 -0.397500 -0.343553
v -0.353522 -0.397500 0.363553
vt 0.5625 0.5000
vt 0.5625 0.6250
vt 0.4375 0.6250
vt 0.4375 0.5000
vt 0.4375 0.0000
vt 0.5625 0.0000
vt 0.5625 0.1250
vt 0.4375 0.1250
vt 0.5625 0.6250
vt 0.4375 0.6250
vt 0.4375 0.6250
vt 0.4375 0.0000
vt 0.5625 0.6250
vt 0.5625 0.0000
vt 1.0000 0.5625
vt 1.0000 1.0000
vt 0.0000 1.0000
vt 0.0000 0.5625
vt 0.0000 0.5625
vt 1.0000 0.5625
vt 1.0000 1.0000
vt 0.0000 1.0000
vn 0.0000 0.9105 0.4134
vn -0.0000 -0.4134 0.9105
vn -1.0000 0.0000 0.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
usemtl Material.001
s off
f 3/1/1 1/2/1 5/3/1 7/4/1
f 8/5/1 4/6/1 2/7/1 6/8/1
f 3/9/2 4/6/2 8/5/2 7/10/2
f 1/11/3 3/9/3 4/6/3 2/12/3
f 5/13/2 1/11/2 2/12/2 6/14/2
f 7/10/3 8/5/3 6/14/3 5/13/3
usemtl Material.002
f 9/15/4 10/16/4 12/17/4 11/18/4
f 13/19/5 14/20/5 16/21/5 15/22/5

View File

@ -0,0 +1,50 @@
# Blender v2.76 (sub 11) OBJ File: 'torch_floor.blend'
# www.blender.org
mtllib torch_floor.mtl
o Cube_Cube.001
v 0.062500 0.062500 -0.062500
v 0.062500 -0.500000 -0.062500
v 0.062500 0.062500 0.062500
v 0.062500 -0.500000 0.062500
v -0.062500 0.062500 -0.062500
v -0.062500 -0.500000 -0.062500
v -0.062500 0.062500 0.062500
v -0.062500 -0.500000 0.062500
v -0.353553 -0.500000 0.353553
v -0.353553 0.500000 0.353553
v 0.353553 -0.500000 -0.353553
v 0.353553 0.500000 -0.353553
v -0.353553 -0.500000 -0.353553
v 0.353553 -0.500000 0.353553
v -0.353553 0.500000 -0.353553
v 0.353553 0.500000 0.353553
vt 0.562500 0.500000
vt 0.562500 0.625000
vt 0.437500 0.625000
vt 0.437500 0.500000
vt 0.437500 0.000000
vt 0.562500 0.000000
vt 0.562500 0.125000
vt 0.437500 0.125000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn -0.707100 0.000000 -0.707100
vn -0.707100 -0.000000 0.707100
g Cube_Cube.001_Cube_Cube.001_Material.001
usemtl Material.001
s off
f 3/1/1 1/2/1 5/3/1 7/4/1
f 8/5/1 4/6/1 2/7/1 6/8/1
f 3/2/2 4/6/2 8/5/2 7/3/2
f 1/3/3 3/2/3 4/6/3 2/5/3
f 5/2/2 1/3/2 2/5/2 6/6/2
f 7/3/3 8/5/3 6/6/3 5/2/3
g Cube_Cube.001_Cube_Cube.001_Material.002
usemtl Material.002
f 9/9/4 10/10/4 12/11/4 11/12/4
f 13/12/5 14/9/5 16/10/5 15/11/5

View File

@ -0,0 +1,64 @@
# Blender v2.76 (sub 11) OBJ File: 'torch_wall.blend'
# www.blender.org
mtllib torch_wall.mtl
o Cube_Cube.001
v 0.062469 -0.195248 0.023570
v 0.062469 -0.476498 -0.463570
v 0.062469 -0.303502 0.086070
v 0.062469 -0.584752 -0.401070
v -0.062531 -0.195248 0.023570
v -0.062531 -0.476498 -0.463570
v -0.062531 -0.303502 0.086070
v -0.062531 -0.584752 -0.401070
v -0.353584 -0.613553 0.022500
v -0.353584 -0.613553 0.460000
v 0.353522 0.093553 0.022500
v 0.353522 0.093553 0.460000
v -0.353584 0.093553 0.022500
v 0.353522 -0.613553 0.022500
v -0.353584 0.093553 0.460000
v 0.353522 -0.613553 0.460000
v 0.353553 0.056811 -0.121957
v 0.353553 -0.224439 -0.609096
v -0.353553 -0.555561 0.231596
v -0.353553 -0.836811 -0.255543
v -0.353553 0.056811 -0.121957
v -0.353553 -0.224439 -0.609096
v 0.353553 -0.555561 0.231596
v 0.353553 -0.836811 -0.255543
vt 0.562500 0.500000
vt 0.562500 0.625000
vt 0.437500 0.625000
vt 0.437500 0.500000
vt 0.437500 0.000000
vt 0.562500 0.000000
vt 0.562500 0.125000
vt 0.437500 0.125000
vt 0.000000 0.562500
vt 0.000000 -0.000000
vt 1.000000 0.000000
vt 1.000000 0.562500
vt 1.000000 1.000000
vt 0.000000 1.000000
vn -0.000000 0.500000 0.866000
vn -0.000000 0.866000 -0.500000
vn 1.000000 0.000000 0.000000
vn -0.707100 0.612400 -0.353600
vn -0.707100 -0.612400 0.353600
vn -0.707100 0.707100 -0.000000
vn -0.707100 -0.707100 -0.000000
g Cube_Cube.001_Cube_Cube.001_Material.001
usemtl Material.001
s off
f 3/1/1 1/2/1 5/3/1 7/4/1
f 8/5/1 4/6/1 2/7/1 6/8/1
f 3/2/2 4/6/2 8/5/2 7/3/2
f 1/3/3 3/2/3 4/6/3 2/5/3
f 5/2/2 1/3/2 2/5/2 6/6/2
f 7/3/3 8/5/3 6/6/3 5/2/3
f 17/9/4 18/10/4 20/11/4 19/12/4
f 21/9/5 22/10/5 24/11/5 23/12/5
g Cube_Cube.001_Cube_Cube.001_Material.002
usemtl Material.002
f 9/12/6 10/13/6 12/14/6 11/9/6
f 13/9/7 14/12/7 16/13/7 15/14/7

View File

@ -338,7 +338,7 @@ minetest.register_node("default:leaves", {
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
is_ground_content = false, is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20},
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {
@ -374,7 +374,7 @@ minetest.register_node("default:apple", {
fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16}
}, },
groups = {fleshy = 3, dig_immediate = 3, flammable = 2, groups = {fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1, food_apple = 1}, leafdecay = 3, leafdecay_drop = 1, food_apple = 1, food = 1},
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
@ -396,7 +396,7 @@ minetest.register_node("default:apple_gold", {
type = "fixed", type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
}, },
groups = {fleshy = 3, dig_immediate = 3, flammable = 2, foodstuffs = 1}, groups = {fleshy = 3, dig_immediate = 3, flammable = 2, foodstuffs = 1, food = 1},
on_use = minetest.item_eat(8), on_use = minetest.item_eat(8),
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
@ -432,7 +432,7 @@ minetest.register_node("default:jungleleaves", {
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
is_ground_content = false, is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20},
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {
@ -591,7 +591,7 @@ minetest.register_node("default:acacia_leaves", {
paramtype = "light", paramtype = "light",
walkable = false, walkable = false,
is_ground_content = false, is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20},
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

View File

@ -1,37 +1,119 @@
local function on_flood(pos, oldnode, newnode)
minetest.add_item(pos, ItemStack("default:torch 1"))
-- Play flame-extinguish sound if liquid is not an 'igniter'
local nodedef = minetest.registered_items[newnode.name]
if not (nodedef and nodedef.groups and
nodedef.groups.igniter and nodedef.groups.igniter > 0) then
minetest.sound_play(
"default_cool_lava",
{pos = pos, max_hear_distance = 16, gain = 0.1}
)
end
-- Remove the torch node
return false
end
minetest.register_node("default:torch", { minetest.register_node("default:torch", {
description = "Torch", description = "Torch",
drawtype = "mesh",
mesh = "torch_floor.obj",
inventory_image = "default_torch_on_floor.png", inventory_image = "default_torch_on_floor.png",
wield_image = "default_torch_on_floor.png", wield_image = "default_torch_on_floor.png",
tiles = { tiles = {{
"default_torch_on_floor_top.png", name = "default_torch_on_floor.png",
"default_torch_on_floor_bottom.png", -- name = "default_torch_on_floor_animated.png",
"default_torch_on_floor.png", -- animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
"default_torch_on_floor.png", }},
"default_torch_on_floor.png",
"default_torch_on_floor.png"
},
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = false,
walkable = false, walkable = false,
light_source = minetest.LIGHT_MAX - 1,
groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),
liquids_pointable = false, liquids_pointable = false,
drawtype = "nodebox", light_source = 12,
paramtype = "light", groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1, torch = 1},
node_box = { drop = "default:torch",
type = "fixed",
fixed = {
{-0.0625, -0.5, -0.0625, 0.0625, 0.125, 0.0625}, -- NodeBox1
}
},
selection_box = { selection_box = {
type = "wallmounted", type = "wallmounted",
wall_top = {-0.1, 0.5 - 0.6, -0.1, 0.1, 0.5, 0.1}, wall_bottom = {-1/8, -1/2, -1/8, 1/8, 2/16, 1/8},
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5 + 0.6, 0.1},
wall_side = {-0.5, -0.3, -0.1, -0.5 + 0.3, 0.3, 0.1},
}, },
sounds = default.node_sound_wood_defaults(),
on_place = function(itemstack, placer, pointed_thing)
local under = pointed_thing.under
local node = minetest.get_node(under)
local def = minetest.registered_nodes[node.name]
if def and def.on_rightclick and
not (placer and placer:is_player() and
placer:get_player_control().sneak) then
return def.on_rightclick(under, node, placer, itemstack,
pointed_thing) or itemstack
end
local above = pointed_thing.above
local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above))
local fakestack = itemstack
if wdir == 0 then
fakestack:set_name("default:torch_ceiling")
elseif wdir == 1 then
fakestack:set_name("default:torch")
else
fakestack:set_name("default:torch_wall")
end
itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir)
itemstack:set_name("default:torch")
return itemstack
end,
floodable = true,
on_flood = on_flood,
})
local groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1, torch = 1, not_in_creative_inventory = 1}
minetest.register_node("default:torch_wall", {
drawtype = "mesh",
mesh = "torch_wall.obj",
tiles = {{
name = "default_torch_on_floor.png",
-- name = "default_torch_on_floor_animated.png",
-- animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
}},
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
light_source = 12,
groups = groups,
drop = "default:torch",
selection_box = {
type = "wallmounted",
wall_side = {-1/2, -1/2, -1/8, -1/8, 1/8, 1/8},
},
sounds = default.node_sound_wood_defaults(),
floodable = true,
on_flood = on_flood,
})
minetest.register_node("default:torch_ceiling", {
drawtype = "mesh",
mesh = "torch_ceiling.obj",
tiles = {{
name = "default_torch_on_floor.png",
-- name = "default_torch_on_floor_animated.png",
-- animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
}},
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
light_source = 12,
groups = groups,
drop = "default:torch",
selection_box = {
type = "wallmounted",
wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8},
},
sounds = default.node_sound_wood_defaults(),
floodable = true,
on_flood = on_flood,
}) })

View File

@ -21,21 +21,21 @@ farming.register_plant("farming:wheat", {
minlight = 13, minlight = 13,
maxlight = minetest.LIGHT_MAX, maxlight = minetest.LIGHT_MAX,
fertility = {"grassland"}, fertility = {"grassland"},
groups = {food_wheat = 1, flammable = 4},
place_param2 = 3, place_param2 = 3,
groups = {food_wheat = 1, flammable = 4}
}) })
minetest.register_craftitem("farming:flour", { minetest.register_craftitem("farming:flour", {
description = "Flour", description = "Flour",
inventory_image = "farming_flour.png", inventory_image = "farming_flour.png",
groups = {food_flour = 1, flammable = 1}, groups = {food_flour = 1, flammable = 1}
}) })
minetest.register_craftitem("farming:bread", { minetest.register_craftitem("farming:bread", {
description = "Bread", description = "Bread",
inventory_image = "farming_bread.png", inventory_image = "farming_bread.png",
on_use = minetest.item_eat(5), on_use = minetest.item_eat(5),
groups = {food_bread = 1, flammable = 2}, groups = {food_bread = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
@ -56,7 +56,7 @@ minetest.register_craft({
minetest.register_craftitem("farming:string",{ minetest.register_craftitem("farming:string",{
description = "String", description = "String",
inventory_image = "farming_string.png", inventory_image = "farming_string.png",
groups = {materials = 1}, groups = {materials = 1}
}) })
-- Cotton -- Cotton
@ -95,14 +95,14 @@ minetest.register_craft({
recipe = { recipe = {
{"farming:wheat", "farming:wheat", "farming:wheat"}, {"farming:wheat", "farming:wheat", "farming:wheat"},
{"farming:wheat", "farming:wheat", "farming:wheat"}, {"farming:wheat", "farming:wheat", "farming:wheat"},
{"farming:wheat", "farming:wheat", "farming:wheat"}, {"farming:wheat", "farming:wheat", "farming:wheat"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "farming:wheat 3", output = "farming:wheat 3",
recipe = { recipe = {
{"farming:straw"}, {"farming:straw"}
} }
}) })
@ -112,29 +112,29 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "farming:straw", recipe = "farming:straw",
burntime = 3, burntime = 3
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "farming:wheat", recipe = "farming:wheat",
burntime = 1, burntime = 1
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "farming:cotton", recipe = "farming:cotton",
burntime = 1, burntime = 1
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "farming:string", recipe = "farming:string",
burntime = 1, burntime = 1
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "farming:hoe_wood", recipe = "farming:hoe_wood",
burntime = 5, burntime = 5
}) })

View File

@ -42,7 +42,7 @@ minetest.register_node("farming:soil", {
description = "Soil", description = "Soil",
tiles = {"farming_soil.png", "default_dirt.png"}, tiles = {"farming_soil.png", "default_dirt.png"},
drop = "default:dirt", drop = "default:dirt",
groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
soil = { soil = {
base = "default:dirt", base = "default:dirt",
@ -55,7 +55,7 @@ minetest.register_node("farming:soil_wet", {
description = "Wet Soil", description = "Wet Soil",
tiles = {"farming_soil_wet.png", "default_dirt.png"}, tiles = {"farming_soil_wet.png", "default_dirt.png"},
drop = "default:dirt", drop = "default:dirt",
groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
soil = { soil = {
base = "default:dirt", base = "default:dirt",
@ -100,9 +100,9 @@ minetest.register_node("farming:desert_sand_soil_wet", {
minetest.register_node("farming:straw", { minetest.register_node("farming:straw", {
description = "Straw", description = "Straw",
tiles = {"farming_straw_side.png", "farming_straw_top.png"}, tiles = {"farming_straw_top.png", "farming_straw_top.png", "farming_straw_side.png"},
is_ground_content = false, is_ground_content = false,
groups = {snappy=3, flammable=4, fall_damage_add_percent=-30}, groups = {snappy = 3, flammable = 4, fall_damage_add_percent = -30},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })

View File

@ -174,7 +174,7 @@ minetest.register_node("flowers:mushroom_red", {
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1}, groups = {snappy = 3, attached_node = 1, flammable = 1, food = 1},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
on_use = minetest.item_eat(-5), on_use = minetest.item_eat(-5),
selection_box = { selection_box = {
@ -193,7 +193,7 @@ minetest.register_node("flowers:mushroom_brown", {
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1, food = 1},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
on_use = minetest.item_eat(1), on_use = minetest.item_eat(1),
selection_box = { selection_box = {

View File

@ -17,8 +17,6 @@ mobs:register_mob("mobs_animal:bear", {
}, },
runaway = false, runaway = false,
jump = false, jump = false,
jump_height = 4,
fly = false,
walk_chance = 75, walk_chance = 75,
walk_velocity = 3, walk_velocity = 3,
run_velocity = 3, run_velocity = 3,
@ -26,19 +24,12 @@ mobs:register_mob("mobs_animal:bear", {
follow = { follow = {
"farming:blueberries", "farming:raspberries" "farming:blueberries", "farming:raspberries"
}, },
passive = false,
attack_type = "dogfight",
damage = 4, damage = 4,
reach = 3,
attacks_monsters = true, attacks_monsters = true,
pathfinding = true, pathfinding = true,
group_attack = true, group_attack = true,
hp_min = 10, hp_min = 10,
hp_max = 15, hp_max = 15,
armor = 100,
knock_back = 2,
water_damage = 0,
lava_damage = 5,
fall_damage = 3, fall_damage = 3,
fear_height = 4, fear_height = 4,
drops = { drops = {

View File

@ -5,7 +5,6 @@ mobs:register_mob("mobs_animal:bunny", {
reach = 1, reach = 1,
hp_min = 1, hp_min = 1,
hp_max = 4, hp_max = 4,
armor = 100,
collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268}, collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268},
visual = "mesh", visual = "mesh",
mesh = "mobs_bunny.b3d", mesh = "mobs_bunny.b3d",
@ -15,21 +14,14 @@ mobs:register_mob("mobs_animal:bunny", {
{"mobs_bunny_brown.png"}, {"mobs_bunny_brown.png"},
{"mobs_bunny_white.png"}, {"mobs_bunny_white.png"},
}, },
sounds = {},
makes_footstep_sound = false,
walk_velocity = 1,
run_velocity = 2,
runaway = true, runaway = true,
runaway_from = {"mobs_animal:pumba", "player"}, runaway_from = {"mobs_animal:pumba", "player"},
jump = true,
jump_height = 5, jump_height = 5,
drops = { drops = {
{name = "mobs:rabbit_raw"}, {name = "mobs:rabbit_raw"},
{name = "mobs:rabbit_hide", min = 0, max = 1}, {name = "mobs:rabbit_hide", min = 0, max = 1},
}, },
water_damage = 1, water_damage = 1,
lava_damage = 4,
light_damage = 0,
fear_height = 2, fear_height = 2,
animation = { animation = {
speed_normal = 15, speed_normal = 15,
@ -41,7 +33,6 @@ mobs:register_mob("mobs_animal:bunny", {
punch_end = 24, punch_end = 24,
}, },
follow = {"farming:carrot", "farming_plus:carrot_item", "default:grass"}, follow = {"farming:carrot", "farming_plus:carrot_item", "default:grass"},
view_range = 8,
replace_rate = 10, replace_rate = 10,
replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"}, replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"},
replace_with = "air", replace_with = "air",
@ -96,7 +87,6 @@ mobs:register_mob("mobs_animal:bunny", {
return true -- run only once, false/nil runs every activation return true -- run only once, false/nil runs every activation
end, end,
attack_type = "dogfight",
damage = 5, damage = 5,
}) })

View File

@ -3,7 +3,6 @@ mobs:register_mob("mobs_animal:chicken", {
passive = true, passive = true,
hp_min = 3, hp_min = 3,
hp_max = 6, hp_max = 6,
armor = 100,
collisionbox = {-0.35, -0.01, -0.35, 0.35, 0.75, 0.35}, collisionbox = {-0.35, -0.01, -0.35, 0.35, 0.75, 0.35},
visual = "mesh", visual = "mesh",
mesh = "mobs_chicken.b3d", mesh = "mobs_chicken.b3d",
@ -12,15 +11,11 @@ mobs:register_mob("mobs_animal:chicken", {
sounds = { sounds = {
random = "mobs_chicken", random = "mobs_chicken",
}, },
walk_velocity = 1,
run_velocity = 3, run_velocity = 3,
runaway = true, runaway = true,
drops = { drops = {
{name = "mobs:chicken_raw"} {name = "mobs:chicken_raw"}
}, },
water_damage = 0,
lava_damage = 5,
light_damage = 0,
fall_damage = 0, fall_damage = 0,
fall_speed = -8, fall_speed = -8,
fear_height = 5, fear_height = 5,
@ -33,7 +28,6 @@ mobs:register_mob("mobs_animal:chicken", {
run_end = 80, run_end = 80,
}, },
follow = {"farming:seed_wheat"}, follow = {"farming:seed_wheat"},
view_range = 5,
on_rightclick = function(self, clicker) on_rightclick = function(self, clicker)
if mobs:feed_tame(self, clicker, 8, true, true) then return end if mobs:feed_tame(self, clicker, 8, true, true) then return end

View File

@ -1,12 +1,8 @@
mobs:register_mob("mobs_animal:cow", { mobs:register_mob("mobs_animal:cow", {
type = "animal", type = "animal",
passive = false,
attack_type = "dogfight",
reach = 2,
damage = 2, damage = 2,
hp_min = 8, hp_min = 8,
hp_max = 12, hp_max = 12,
armor = 100,
collisionbox = {-0.9, -0.01, -0.9, 0.9, 1.65, 0.9}, collisionbox = {-0.9, -0.01, -0.9, 0.9, 1.65, 0.9},
visual = "mesh", visual = "mesh",
mesh = "mobs_cow.b3d", mesh = "mobs_cow.b3d",
@ -19,10 +15,7 @@ mobs:register_mob("mobs_animal:cow", {
sounds = { sounds = {
random = "mobs_cow", random = "mobs_cow",
}, },
walk_velocity = 1,
run_velocity = 3, run_velocity = 3,
jump = true,
jump_height = 4,
drops = { drops = {
{name = "mobs:meat_raw"}, {name = "mobs:meat_raw"},
{name = "mobs:meat_raw", chance = 2}, {name = "mobs:meat_raw", chance = 2},
@ -30,9 +23,6 @@ mobs:register_mob("mobs_animal:cow", {
{name = "mobs:leather", chance = 2}, {name = "mobs:leather", chance = 2},
{name = "mobs:leather", chance = 2} {name = "mobs:leather", chance = 2}
}, },
water_damage = 0,
lava_damage = 5,
light_damage = 0,
animation = { animation = {
speed_normal = 15, speed_normal = 15,
speed_run = 15, speed_run = 15,
@ -46,7 +36,7 @@ mobs:register_mob("mobs_animal:cow", {
punch_end = 100, punch_end = 100,
}, },
follow = {"farming:wheat", "default:grass"}, follow = {"farming:wheat", "default:grass"},
view_range = 8, view_range = 10,
replace_rate = 10, replace_rate = 10,
replace_what = { replace_what = {
{"group:grass", "air", 0}, {"group:grass", "air", 0},

View File

@ -13,28 +13,17 @@ mobs:register_mob("mobs_animal:wolf", {
textures = { textures = {
{"mobs_wolf.png"}, {"mobs_wolf.png"},
}, },
runaway = false,
jump = false, jump = false,
jump_height = 4,
fly = false,
walk_chance = 75, walk_chance = 75,
walk_velocity = 2, walk_velocity = 2,
run_velocity = 3, run_velocity = 3,
view_range = 7, view_range = 7,
follow = "mobs:meat_raw", follow = "mobs:meat_raw",
passive = false,
attack_type = "dogfight",
damage = 2, damage = 2,
reach = 2,
attacks_monsters = false,
pathfinding = true, pathfinding = true,
group_attack = true, group_attack = true,
hp_min = 8, hp_min = 8,
hp_max = 10, hp_max = 10,
armor = 100,
knock_back = 2,
water_damage = 0,
lava_damage = 5,
fall_damage = 3, fall_damage = 3,
fear_height = 4, fear_height = 4,
makes_footstep_sound = true, makes_footstep_sound = true,
@ -86,28 +75,18 @@ mobs:register_mob("mobs_animal:dog", {
{"mobs_dog.png"} {"mobs_dog.png"}
}, },
fear_height = 4, fear_height = 4,
runaway = false,
jump = false, jump = false,
jump_height = 4,
fly = false,
walk_chance = 75, walk_chance = 75,
walk_velocity = 2, walk_velocity = 2,
run_velocity = 4, run_velocity = 4,
view_range = 15, view_range = 15,
follow = "mobs:meat_raw", follow = "mobs:meat_raw",
passive = false,
attack_type = "dogfight",
damage = 4, damage = 4,
reach = 2,
attacks_monsters = true, attacks_monsters = true,
pathfinding = true, pathfinding = true,
group_attack = true, group_attack = true,
hp_min = 15, hp_min = 15,
hp_max = 25, hp_max = 25,
armor = 100,
knock_back = 2,
water_damage = 0,
lava_damage = 5,
fall_damage = 5, fall_damage = 5,
makes_footstep_sound = true, makes_footstep_sound = true,
sounds = { sounds = {

View File

@ -4,7 +4,6 @@ mobs:register_mob("mobs_animal:kitten", {
passive = true, passive = true,
hp_min = 8, hp_min = 8,
hp_max = 10, hp_max = 10,
armor = 100,
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.1, 0.3}, collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.1, 0.3},
visual = "mesh", visual = "mesh",
visual_size = {x = 0.5, y = 0.5}, visual_size = {x = 0.5, y = 0.5},
@ -15,7 +14,6 @@ mobs:register_mob("mobs_animal:kitten", {
{"mobs_kitten_ginger.png"}, {"mobs_kitten_ginger.png"},
{"mobs_kitten_sandy.png"}, {"mobs_kitten_sandy.png"},
}, },
makes_footstep_sound = false,
sounds = { sounds = {
random = "mobs_kitten", random = "mobs_kitten",
}, },
@ -23,13 +21,11 @@ mobs:register_mob("mobs_animal:kitten", {
walk_chance = 15, walk_chance = 15,
run_velocity = 2, run_velocity = 2,
runaway = true, runaway = true,
jump = true,
jump_height = 5, jump_height = 5,
drops = { drops = {
{name = "farming:string"} {name = "farming:string"}
}, },
water_damage = 1, water_damage = 1,
lava_damage = 5,
fall_damage = 2, fall_damage = 2,
fear_height = 3, fear_height = 3,
animation = { animation = {

View File

@ -1,13 +1,9 @@
mobs:register_mob("mobs_animal:pig", { mobs:register_mob("mobs_animal:pig", {
type = "animal", type = "animal",
passive = false,
attack_type = "dogfight",
group_attack = true, group_attack = true,
reach = 2,
damage = 2, damage = 2,
hp_min = 5, hp_min = 5,
hp_max = 15, hp_max = 15,
armor = 100,
collisionbox = {-0.4, -1, -0.4, 0.4, 0.1, 0.4}, collisionbox = {-0.4, -1, -0.4, 0.4, 0.1, 0.4},
visual = "mesh", visual = "mesh",
mesh = "mobs_pig.x", mesh = "mobs_pig.x",
@ -21,9 +17,7 @@ mobs:register_mob("mobs_animal:pig", {
}, },
walk_velocity = 2, walk_velocity = 2,
run_velocity = 3, run_velocity = 3,
jump = true,
follow = {"default:apple", "farming:potato"}, follow = {"default:apple", "farming:potato"},
view_range = 5,
drops = function(pos) drops = function(pos)
if rawget(_G, "experience") then if rawget(_G, "experience") then
--experience.add_orb(math.random(1,3), pos) -- random amount between 1 and 3 --experience.add_orb(math.random(1,3), pos) -- random amount between 1 and 3
@ -36,9 +30,6 @@ mobs:register_mob("mobs_animal:pig", {
{name = "mobs:pork_raw", chance = 2} {name = "mobs:pork_raw", chance = 2}
} }
end, end,
water_damage = 0,
lava_damage = 5,
light_damage = 0,
fear_height = 2, fear_height = 2,
animation = { animation = {
speed_normal = 20, speed_normal = 20,

View File

@ -5,12 +5,10 @@ for i = 1, #dyes do
mobs:register_mob("mobs_animal:sheep_" .. name, { mobs:register_mob("mobs_animal:sheep_" .. name, {
stay_near = {"farming:straw", 10}, stay_near = {"farming:straw", 10},
stepheight = 1.1,
type = "animal", type = "animal",
passive = true, passive = true,
hp_min = 6, hp_min = 6,
hp_max = 10, hp_max = 10,
armor = 100,
collisionbox = {-0.4, -1, -0.4, 0.4, 0.3, 0.4}, collisionbox = {-0.4, -1, -0.4, 0.4, 0.3, 0.4},
visual = "mesh", visual = "mesh",
mesh = "mobs_sheep.b3d", mesh = "mobs_sheep.b3d",
@ -22,19 +20,13 @@ for i = 1, #dyes do
random = "mobs_sheep", random = "mobs_sheep",
damage = "mobs_sheep_angry", damage = "mobs_sheep_angry",
}, },
walk_velocity = 1,
run_velocity = 2,
runaway = true, runaway = true,
jump = true,
jump_height = 3, jump_height = 3,
drops = { drops = {
{name = "mobs:meat_raw"}, {name = "mobs:meat_raw"},
{name = "mobs:meat_raw", chance = 2}, {name = "mobs:meat_raw", chance = 2},
{name = "wool:" .. name} {name = "wool:" .. name}
}, },
water_damage = 0,
lava_damage = 5,
light_damage = 0,
animation = { animation = {
speed_normal = 15, speed_normal = 15,
speed_run = 15, speed_run = 15,
@ -44,7 +36,6 @@ for i = 1, #dyes do
walk_end = 100, walk_end = 100,
}, },
follow = {"farming:wheat", "default:grass"}, follow = {"farming:wheat", "default:grass"},
view_range = 8,
replace_rate = 10, replace_rate = 10,
replace_what = { replace_what = {
{"group:grass", "air", -1}, {"group:grass", "air", -1},

View File

@ -20,13 +20,9 @@ mobs:register_mob("mobs_monster:skeleton", {
}, },
hp_min = 10, hp_min = 10,
hp_max = 15, hp_max = 15,
armor = 100,
knock_back = 1,
light_damage = 1, light_damage = 1,
lava_damage = 5, lava_damage = 5,
damage = 1, damage = 1,
reach = 2,
attack_type = "dogfight",
group_attack = true, group_attack = true,
view_range = 15, view_range = 15,
walk_chance = 75, walk_chance = 75,

View File

@ -4,12 +4,9 @@ mobs:register_mob("mobs_monster:spider", {
group_attack = true, group_attack = true,
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight",
reach = 2,
damage = 2, damage = 2,
hp_min = 15, hp_min = 15,
hp_max = 20, hp_max = 20,
armor = 100,
collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8}, collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8},
visual = "mesh", visual = "mesh",
mesh = "mobs_spider.b3d", mesh = "mobs_spider.b3d",
@ -18,14 +15,11 @@ mobs:register_mob("mobs_monster:spider", {
{"mobs_spider_grey.png"}, {"mobs_spider_grey.png"},
{"mobs_spider_orange.png"}, {"mobs_spider_orange.png"},
}, },
makes_footstep_sound = false,
sounds = { sounds = {
random = "mobs_spider", random = "mobs_spider",
attack = "mobs_spider", attack = "mobs_spider",
}, },
walk_velocity = 1,
run_velocity = 3, run_velocity = 3,
jump = true,
view_range = 15, view_range = 15,
floats = 0, floats = 0,
drops = { drops = {
@ -33,8 +27,6 @@ mobs:register_mob("mobs_monster:spider", {
{name = "farming:string", chance = 2} {name = "farming:string", chance = 2}
}, },
water_damage = 5, water_damage = 5,
lava_damage = 5,
light_damage = 0,
animation = { animation = {
speed_normal = 15, speed_normal = 15,
speed_run = 20, speed_run = 20,
@ -77,12 +69,9 @@ mobs:register_mob("mobs_monster:small_spider", {
group_attack = true, group_attack = true,
type = "animal", type = "animal",
passive = false, passive = false,
attack_type = "dogfight",
reach = 2,
damage = 1, damage = 1,
hp_min = 5, hp_min = 5,
hp_max = 10, hp_max = 10,
armor = 100,
collisionbox = {-0.3, -0.15, -0.3, 0.3, 0.05, 0.3}, collisionbox = {-0.3, -0.15, -0.3, 0.3, 0.05, 0.3},
visual = "mesh", visual = "mesh",
mesh = "mobs_spider.b3d", mesh = "mobs_spider.b3d",
@ -92,22 +81,17 @@ mobs:register_mob("mobs_monster:small_spider", {
{"mobs_spider_orange.png"}, {"mobs_spider_orange.png"},
}, },
visual_size = {x = 0.3, y = 0.3}, visual_size = {x = 0.3, y = 0.3},
makes_footstep_sound = false,
sounds = { sounds = {
random = "mobs_spider", random = "mobs_spider",
attack = "mobs_spider", attack = "mobs_spider",
}, },
walk_velocity = 1,
run_velocity = 3, run_velocity = 3,
jump = true,
view_range = 10, view_range = 10,
floats = 0, floats = 0,
drops = { drops = {
{name = "farming:string"} {name = "farming:string"}
}, },
water_damage = 5, water_damage = 5,
lava_damage = 5,
light_damage = 0,
animation = { animation = {
speed_normal = 15, speed_normal = 15,
speed_run = 20, speed_run = 20,

View File

@ -20,13 +20,8 @@ mobs:register_mob("mobs_monster:zombie", {
}, },
hp_min = 15, hp_min = 15,
hp_max = 25, hp_max = 25,
armor = 100,
knock_back = 1,
light_damage = 1, light_damage = 1,
lava_damage = 10,
damage = 2, damage = 2,
reach = 2,
attack_type = "dogfight",
group_attack = true, group_attack = true,
view_range = 15, view_range = 15,
walk_chance = 75, walk_chance = 75,

View File

@ -4,7 +4,7 @@ local use_cmi = minetest.global_exists("cmi")
mobs = { mobs = {
mod = "redo", mod = "redo",
version = "20190520", version = "20190630",
invis = minetest.global_exists("invisibility") and invisibility or {}, invis = minetest.global_exists("invisibility") and invisibility or {},
} }
@ -80,7 +80,8 @@ local node_snow = "default:snow"
mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt"
local mob_class = { local mob_class = {
stepheight = 1.1, -- was 0.6 attack_type = "dogfight",
stepheight = 1.1,
fly_in = "air", fly_in = "air",
owner = "", owner = "",
order = "", order = "",
@ -97,12 +98,13 @@ local mob_class = {
light_damage_min = 12, light_damage_min = 12,
light_damage_max = 15, light_damage_max = 15,
water_damage = 0, water_damage = 0,
lava_damage = 0, lava_damage = 5,
suffocation = 2, suffocation = 2,
fall_damage = 1, fall_damage = 1,
fall_speed = -10, -- must be lower than -2 (default: -10) fall_speed = -10, -- must be lower than -2 (default: -10)
drops = {}, drops = {},
armor = 100, armor = 100,
runaway = false,
sounds = {}, sounds = {},
jump = true, jump = true,
knock_back = true, knock_back = true,
@ -124,7 +126,7 @@ local mob_class = {
child = false, child = false,
gotten = false, gotten = false,
health = 0, health = 0,
reach = 3, reach = 2,
htimer = 0, htimer = 0,
docile_by_day = false, docile_by_day = false,
time_of_day = 0.5, time_of_day = 0.5,
@ -461,7 +463,6 @@ local ray_line_of_sight = function(self, pos1, pos2)
and not thing.ref:is_player() then return false end and not thing.ref:is_player() then return false end
if thing.type == "node" then if thing.type == "node" then
local name = minetest.get_node(thing.under).name local name = minetest.get_node(thing.under).name
if minetest.registered_items[name] if minetest.registered_items[name]
@ -474,16 +475,9 @@ local ray_line_of_sight = function(self, pos1, pos2)
return true return true
end end
-- detect if using minetest 5.0 by searching for permafrost node
local is_50 = minetest.registered_nodes["default:permafrost"]
function mob_class:line_of_sight(pos1, pos2, stepsize) function mob_class:line_of_sight(pos1, pos2, stepsize)
if is_50 then -- only use if minetest 5.0 is detected
return ray_line_of_sight(self, pos1, pos2)
end
return line_of_sight(self, pos1, pos2, stepsize) return line_of_sight(self, pos1, pos2, stepsize)
-- return ray_line_of_sight(self, pos1, pos2) -- MT 5.0
end end
-- global function -- global function
@ -593,7 +587,7 @@ function mob_class:do_stay_near()
z = target.z - pos.z z = target.z - pos.z
} }
local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate
if target.x > pos.x then if target.x > pos.x then
yaw = yaw + pi yaw = yaw + pi
@ -665,7 +659,7 @@ end
-- drop items -- drop items
function mob_class:item_drop() function mob_class:item_drop()
local pos = self.object:get_pos() local pos = self.object:get_pos()
self.drops = type(self.drops) == "function" and self.drops(pos) or self.drops self.drops = type(self.drops) == "function" and self.drops(pos) or self.drops -- XP
-- check for nil or no drops -- check for nil or no drops
if not self.drops or #self.drops == 0 then if not self.drops or #self.drops == 0 then
@ -3362,11 +3356,13 @@ end -- END mobs:register_mob function
-- count how many mobs of one type are inside an area -- count how many mobs of one type are inside an area
-- will also return true for second value if player is inside area
local count_mobs = function(pos, type) local count_mobs = function(pos, type)
local total = 0 local total = 0
local objs = minetest.get_objects_inside_radius(pos, aoc_range * 2) local objs = minetest.get_objects_inside_radius(pos, aoc_range * 2)
local ent local ent
local players
for n = 1, #objs do for n = 1, #objs do
@ -3378,10 +3374,12 @@ local count_mobs = function(pos, type)
if ent and ent.name and ent.name == type then if ent and ent.name and ent.name == type then
total = total + 1 total = total + 1
end end
else
players = true
end end
end end
return total return total, players
end end
@ -3450,7 +3448,12 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
end end
-- get total number of this mob in area -- get total number of this mob in area
local num_mob = count_mobs(pos, name) local num_mob, is_pla = count_mobs(pos, name)
if not is_pla then
--print ("--- no players within active area, will not spawn " .. name)
return
end
if num_mob >= aoc then if num_mob >= aoc then
--print ("--- too many " .. name .. " in area", num_mob .. "/" .. aoc) --print ("--- too many " .. name .. " in area", num_mob .. "/" .. aoc)
@ -3497,7 +3500,7 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
end end
-- only spawn away from player -- only spawn away from player
local objs = minetest.get_objects_inside_radius(pos, 10) local objs = minetest.get_objects_inside_radius(pos, 8)
for n = 1, #objs do for n = 1, #objs do
@ -3550,18 +3553,8 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
end end
-- compatibility with older mob registration
function mobs:register_spawn(name, nodes, max_light, min_light, chance,
active_object_count, max_height, day_toggle)
mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30,
chance, active_object_count, -31000, max_height, day_toggle)
end
-- MarkBu's spawn function -- MarkBu's spawn function
function mobs:spawn(def) function mobs:spawn(def)
mobs:spawn_specific( mobs:spawn_specific(
def.name, def.name,
def.nodes or {"group:soil", "group:stone"}, def.nodes or {"group:soil", "group:stone"},
@ -3579,13 +3572,13 @@ function mobs:spawn(def)
end end
--[[
-- register arrow for shoot attack -- register arrow for shoot attack
function mobs:register_arrow(name, def) function mobs:register_arrow(name, def)
if not name or not def then return end -- errorcheck if not name or not def then return end -- errorcheck
minetest.register_entity(name, { minetest.register_entity(name, {
physical = false, physical = false,
visual = def.visual, visual = def.visual,
visual_size = def.visual_size, visual_size = def.visual_size,
@ -3602,23 +3595,16 @@ function mobs:register_arrow(name, def)
rotate = def.rotate, rotate = def.rotate,
automatic_face_movement_dir = def.rotate automatic_face_movement_dir = def.rotate
and (def.rotate - (pi / 180)) or false, and (def.rotate - (pi / 180)) or false,
on_activate = def.on_activate, on_activate = def.on_activate,
on_punch = def.on_punch or function(self, hitter, tflp, tool_capabilities, dir) on_punch = def.on_punch or function(self, hitter, tflp, tool_capabilities, dir)
end, end,
on_step = def.on_step or function(self, dtime) on_step = def.on_step or function(self, dtime)
self.timer = self.timer + 1 self.timer = self.timer + 1
local pos = self.object:get_pos() local pos = self.object:get_pos()
if self.switch == 0 if self.switch == 0
or self.timer > 150 then or self.timer > 150 then
self.object:remove()
self.object:remove() ; -- print ("removed arrow")
return return
end end
@ -3644,20 +3630,13 @@ function mobs:register_arrow(name, def)
local node = node_ok(pos).name local node = node_ok(pos).name
if minetest.registered_nodes[node].walkable then if minetest.registered_nodes[node].walkable then
self:hit_node(pos, node) self:hit_node(pos, node)
if self.drop == true then if self.drop == true then
pos.y = pos.y + 1 pos.y = pos.y + 1
self.lastpos = (self.lastpos or pos) self.lastpos = (self.lastpos or pos)
minetest.add_item(self.lastpos, self.object:get_luaentity().name) minetest.add_item(self.lastpos, self.object:get_luaentity().name)
end end
self.object:remove()
self.object:remove() ; -- print ("hit node")
return return
end end
end end
@ -3665,12 +3644,10 @@ function mobs:register_arrow(name, def)
if self.hit_player or self.hit_mob then if self.hit_player or self.hit_mob then
for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do
if self.hit_player if self.hit_player
and player:is_player() then and player:is_player() then
self:hit_player(player) self:hit_player(player)
self.object:remove() ; -- print ("hit player") self.object:remove()
return return
end end
@ -3681,16 +3658,12 @@ function mobs:register_arrow(name, def)
and entity._cmi_is_mob == true and entity._cmi_is_mob == true
and tostring(player) ~= self.owner_id and tostring(player) ~= self.owner_id
and entity.name ~= self.object:get_luaentity().name then and entity.name ~= self.object:get_luaentity().name then
self:hit_mob(player) self:hit_mob(player)
self.object:remove()
self.object:remove() ; --print ("hit mob")
return return
end end
end end
end end
self.lastpos = pos self.lastpos = pos
end end
}) })
@ -3699,24 +3672,19 @@ end
-- compatibility function -- compatibility function
function mobs:explosion(pos, radius) function mobs:explosion(pos, radius)
local self = {sounds = {explode = "tnt_explode"}} local self = {sounds = {explode = "tnt_explode"}}
mobs:boom(self, pos, radius) mobs:boom(self, pos, radius)
end end]]
-- no damage to nodes explosion -- no damage to nodes explosion
function mobs:safe_boom(self, pos, radius) function mobs:safe_boom(self, pos, radius)
minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", {
pos = pos, pos = pos,
gain = 1.0, gain = 1.0,
max_hear_distance = self.sounds and self.sounds.distance or 32 max_hear_distance = self.sounds and self.sounds.distance or 32
}) })
entity_physics(pos, radius) entity_physics(pos, radius)
-- effect(pos, 32, "item_smoke.png", radius * 3, radius * 5, radius, 1, 0) -- effect(pos, 32, "item_smoke.png", radius * 3, radius * 5, radius, 1, 0)
end end
@ -3727,7 +3695,6 @@ function mobs:boom(self, pos, radius)
if mobs_griefing if mobs_griefing
and minetest.get_modpath("tnt") and tnt and tnt.boom and minetest.get_modpath("tnt") and tnt and tnt.boom
and not minetest.is_protected(pos, "") then and not minetest.is_protected(pos, "") then
tnt.boom(pos, { tnt.boom(pos, {
radius = radius, radius = radius,
damage_radius = radius, damage_radius = radius,
@ -3854,16 +3821,13 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
-- register old stackable mob egg -- register old stackable mob egg
minetest.register_craftitem(mob, { minetest.register_craftitem(mob, {
description = desc, description = desc,
inventory_image = invimg, inventory_image = invimg,
groups = grp, groups = grp,
stack_max = 1, stack_max = 1,
on_use = throw_spawn_egg, on_use = throw_spawn_egg,
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above local pos = pointed_thing.above
-- am I clicking on something with existing on_rightclick function? -- am I clicking on something with existing on_rightclick function?
local under = minetest.get_node(pointed_thing.under) local under = minetest.get_node(pointed_thing.under)
local def = minetest.registered_nodes[under.name] local def = minetest.registered_nodes[under.name]
@ -3916,7 +3880,6 @@ function mobs:force_capture(self, clicker)
end end
self.object:remove() self.object:remove()
self:mob_sound("default_place_node_hard") self:mob_sound("default_place_node_hard")
end end
@ -3952,18 +3915,14 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
-- is mob tamed? -- is mob tamed?
if self.tamed == false if self.tamed == false
and force_take == false then and force_take == false then
minetest.chat_send_player(name, "Not tamed!") minetest.chat_send_player(name, "Not tamed!")
return false return false
end end
-- cannot pick up if not owner -- cannot pick up if not owner
if self.owner ~= name if self.owner ~= name
and force_take == false then and force_take == false then
minetest.chat_send_player(name, self.owner.." is owner!") minetest.chat_send_player(name, self.owner.." is owner!")
return false return false
end end
@ -4077,17 +4036,15 @@ function mobs:protect(self, clicker)
clicker:set_wielded_item(tool) clicker:set_wielded_item(tool)
end end
self.protected = true self.protected = true
local pos = self.object:get_pos() local pos = self.object:get_pos()
pos.y = pos.y + self.collisionbox[2] + 0.5 pos.y = pos.y + self.collisionbox[2] + 0.5
effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15)
self:mob_sound("mobs_spell") self:mob_sound("mobs_spell")
return true return true
end end
local mob_obj = {} local mob_obj = {}
@ -4104,9 +4061,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
if not mobs.is_creative(clicker:get_player_name()) then if not mobs.is_creative(clicker:get_player_name()) then
local item = clicker:get_wielded_item() local item = clicker:get_wielded_item()
item:take_item() item:take_item()
clicker:set_wielded_item(item) clicker:set_wielded_item(item)
end end
@ -4240,26 +4195,3 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
mob_sta[name] = nil mob_sta[name] = nil
end end
end) end)
-- compatibility function for old entities to new modpack entities
function mobs:alias_mob(old_name, new_name)
-- spawn egg
minetest.register_alias(old_name, new_name)
-- entity
minetest.register_entity(":" .. old_name, {
physical = false,
on_activate = function(self)
if minetest.registered_entities[new_name] then
minetest.add_entity(self.object:get_pos(), new_name)
end
self.object:remove()
end
})
end

View File

@ -3,20 +3,20 @@
minetest.register_craftitem("mobs:nametag", { minetest.register_craftitem("mobs:nametag", {
description = "Name Tag", description = "Name Tag",
inventory_image = "mobs_nametag.png", inventory_image = "mobs_nametag.png",
groups = {flammable = 2}, groups = {flammable = 2}
}) })
core.register_craft({ core.register_craft({
type = "shapeless", type = "shapeless",
output = "mobs:nametag", output = "mobs:nametag",
recipe = {"default:paper", "dye:black", "farming:string"}, recipe = {"default:paper", "dye:black", "farming:string"}
}) })
-- leather -- leather
minetest.register_craftitem("mobs:leather", { minetest.register_craftitem("mobs:leather", {
description = "Leather", description = "Leather",
inventory_image = "mobs_leather.png", inventory_image = "mobs_leather.png",
groups = {flammable = 2}, groups = {flammable = 2}
}) })
-- raw meat -- raw meat
@ -24,7 +24,7 @@ minetest.register_craftitem("mobs:meat_raw", {
description = "Raw Meat", description = "Raw Meat",
inventory_image = "mobs_meat_raw.png", inventory_image = "mobs_meat_raw.png",
on_use = minetest.item_eat(3), on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, flammable = 2}, groups = {food_meat_raw = 1, flammable = 2, food = 1}
}) })
-- cooked meat -- cooked meat
@ -32,14 +32,14 @@ minetest.register_craftitem("mobs:meat", {
description = "Cooked Meat", description = "Cooked Meat",
inventory_image = "mobs_meat.png", inventory_image = "mobs_meat.png",
on_use = minetest.item_eat(8), on_use = minetest.item_eat(8),
groups = {food_meat = 1, flammable = 2}, groups = {food_meat = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "mobs:meat", output = "mobs:meat",
recipe = "mobs:meat_raw", recipe = "mobs:meat_raw",
cooktime = 5, cooktime = 5
}) })
-- raw pork -- raw pork
@ -47,7 +47,7 @@ minetest.register_craftitem("mobs:pork_raw", {
description = "Raw Pork", description = "Raw Pork",
inventory_image = "mobs_pork_raw.png", inventory_image = "mobs_pork_raw.png",
on_use = minetest.item_eat(3), on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, flammable = 2}, groups = {food_meat_raw = 1, flammable = 2, food = 1}
}) })
-- cooked pork -- cooked pork
@ -55,14 +55,14 @@ minetest.register_craftitem("mobs:pork", {
description = "Cooked Pork", description = "Cooked Pork",
inventory_image = "mobs_pork_cooked.png", inventory_image = "mobs_pork_cooked.png",
on_use = minetest.item_eat(8), on_use = minetest.item_eat(8),
groups = {food_meat = 1, flammable = 2}, groups = {food_meat = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "mobs:pork", output = "mobs:pork",
recipe = "mobs:pork_raw", recipe = "mobs:pork_raw",
cooktime = 5, cooktime = 5
}) })
-- raw rabbit -- raw rabbit
@ -70,7 +70,7 @@ minetest.register_craftitem("mobs:rabbit_raw", {
description = "Raw Rabbit", description = "Raw Rabbit",
inventory_image = "mobs_rabbit_raw.png", inventory_image = "mobs_rabbit_raw.png",
on_use = minetest.item_eat(3), on_use = minetest.item_eat(3),
groups = {food_meat_raw = 1, food_rabbit_raw = 1, flammable = 2}, groups = {food_meat_raw = 1, food_rabbit_raw = 1, flammable = 2, food = 1}
}) })
-- cooked rabbit -- cooked rabbit
@ -78,21 +78,21 @@ minetest.register_craftitem("mobs:rabbit_cooked", {
description = "Cooked Rabbit", description = "Cooked Rabbit",
inventory_image = "mobs_rabbit_cooked.png", inventory_image = "mobs_rabbit_cooked.png",
on_use = minetest.item_eat(5), on_use = minetest.item_eat(5),
groups = {food_meat = 1, food_rabbit = 1, flammable = 2}, groups = {food_meat = 1, food_rabbit = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "mobs:rabbit_cooked", output = "mobs:rabbit_cooked",
recipe = "mobs:rabbit_raw", recipe = "mobs:rabbit_raw",
cooktime = 5, cooktime = 5
}) })
-- rabbit hide -- rabbit hide
minetest.register_craftitem("mobs:rabbit_hide", { minetest.register_craftitem("mobs:rabbit_hide", {
description = "Rabbit Hide", description = "Rabbit Hide",
inventory_image = "mobs_rabbit_hide.png", inventory_image = "mobs_rabbit_hide.png",
groups = {flammable = 2}, groups = {flammable = 2}
}) })
minetest.register_craft({ minetest.register_craft({
@ -145,13 +145,13 @@ minetest.register_craftitem("mobs:chicken_egg_fried", {
description = "Fried Egg", description = "Fried Egg",
inventory_image = "mobs_chicken_egg_fried.png", inventory_image = "mobs_chicken_egg_fried.png",
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
groups = {flammable = 2}, groups = {flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
recipe = "mobs:chicken_egg", recipe = "mobs:chicken_egg",
output = "mobs:chicken_egg_fried", output = "mobs:chicken_egg_fried"
}) })
-- raw chicken -- raw chicken
@ -159,7 +159,7 @@ minetest.register_craftitem("mobs:chicken_raw", {
description = "Raw Chicken", description = "Raw Chicken",
inventory_image = "mobs_chicken_raw.png", inventory_image = "mobs_chicken_raw.png",
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
groups = {food_meat_raw = 1, food_chicken_raw = 1, flammable = 2}, groups = {food_meat_raw = 1, food_chicken_raw = 1, flammable = 2, food = 1}
}) })
-- cooked chicken -- cooked chicken
@ -167,13 +167,13 @@ minetest.register_craftitem("mobs:chicken_cooked", {
description = "Cooked Chicken", description = "Cooked Chicken",
inventory_image = "mobs_chicken_cooked.png", inventory_image = "mobs_chicken_cooked.png",
on_use = minetest.item_eat(6), on_use = minetest.item_eat(6),
groups = {food_meat = 1, food_chicken = 1, flammable = 2}, groups = {food_meat = 1, food_chicken = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
recipe = "mobs:chicken_raw", recipe = "mobs:chicken_raw",
output = "mobs:chicken_cooked", output = "mobs:chicken_cooked"
}) })
-- bucket of milk -- bucket of milk
@ -182,7 +182,7 @@ minetest.register_craftitem("mobs:bucket_milk", {
inventory_image = "mobs_bucket_milk.png", inventory_image = "mobs_bucket_milk.png",
stack_max = 1, stack_max = 1,
on_use = minetest.item_eat(8, "bucket:bucket_empty"), on_use = minetest.item_eat(8, "bucket:bucket_empty"),
groups = {food_milk = 1, flammable = 3}, groups = {food_milk = 1, flammable = 3, food = 1}
}) })
-- cheese wedge -- cheese wedge
@ -190,7 +190,7 @@ minetest.register_craftitem("mobs:cheese", {
description = "Cheese", description = "Cheese",
inventory_image = "mobs_cheese.png", inventory_image = "mobs_cheese.png",
on_use = minetest.item_eat(4), on_use = minetest.item_eat(4),
groups = {food_cheese = 1, flammable = 2}, groups = {food_cheese = 1, flammable = 2, food = 1}
}) })
minetest.register_craft({ minetest.register_craft({
@ -215,14 +215,14 @@ minetest.register_craft({
recipe = { recipe = {
{"mobs:cheese", "mobs:cheese", "mobs:cheese"}, {"mobs:cheese", "mobs:cheese", "mobs:cheese"},
{"mobs:cheese", "mobs:cheese", "mobs:cheese"}, {"mobs:cheese", "mobs:cheese", "mobs:cheese"},
{"mobs:cheese", "mobs:cheese", "mobs:cheese"}, {"mobs:cheese", "mobs:cheese", "mobs:cheese"}
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = "mobs:cheese 9", output = "mobs:cheese 9",
recipe = { recipe = {
{"mobs:cheeseblock"}, {"mobs:cheeseblock"}
} }
}) })
@ -231,6 +231,7 @@ minetest.register_craftitem("mobs:rotten_flesh", {
description = "Rotten Flesh", description = "Rotten Flesh",
inventory_image = "mobs_rotten_flesh.png", inventory_image = "mobs_rotten_flesh.png",
on_use = minetest.item_eat(1), on_use = minetest.item_eat(1),
groups = {flammable = 2, food = 1}
}) })
minetest.register_alias("mobs_monster:rotten_flesh", "mobs:rotten_flesh") minetest.register_alias("mobs_monster:rotten_flesh", "mobs:rotten_flesh")
@ -241,14 +242,14 @@ minetest.register_alias("mobs:lasso", "farming:string")
minetest.register_tool("mobs:shears", { minetest.register_tool("mobs:shears", {
description = "Steel Shears (right-click to shear)", description = "Steel Shears (right-click to shear)",
inventory_image = "mobs_shears.png", inventory_image = "mobs_shears.png",
groups = {flammable = 2}, groups = {flammable = 2}
}) })
minetest.register_craft({ minetest.register_craft({
output = "mobs:shears", output = "mobs:shears",
recipe = { recipe = {
{"", "default:steel_ingot", ""}, {"", "default:steel_ingot", ""},
{"", "group:stick", "default:steel_ingot"}, {"", "group:stick", "default:steel_ingot"}
} }
}) })
@ -258,11 +259,12 @@ minetest.register_node("mobs:cobweb", {
drawtype = "plantlike", drawtype = "plantlike",
visual_scale = 1.2, visual_scale = 1.2,
tiles = {"mobs_cobweb.png"}, tiles = {"mobs_cobweb.png"},
inventory_image = "mobs_cobweb.png",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
groups = {snappy = 1, disable_jump = 1, speed = -30}, groups = {snappy = 1, disable_jump = 1, speed = -30},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults()
}) })
-- protection item -- protection item
@ -277,7 +279,7 @@ minetest.register_craft({
recipe = { recipe = {
{"default:stone", "default:stone", "default:stone"}, {"default:stone", "default:stone", "default:stone"},
{"default:stone", "default:goldblock", "default:stone"}, {"default:stone", "default:goldblock", "default:stone"},
{"default:stone", "default:stone", "default:stone"}, {"default:stone", "default:stone", "default:stone"}
} }
}) })
@ -285,18 +287,18 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "mobs:nametag", recipe = "mobs:nametag",
burntime = 3, burntime = 3
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "mobs:leather", recipe = "mobs:leather",
burntime = 4, burntime = 4
}) })
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "mobs:rabbit_hide", recipe = "mobs:rabbit_hide",
burntime = 2, burntime = 2
}) })

View File

@ -1,2 +1,3 @@
default default
wool wool
farming?

View File

@ -9,7 +9,7 @@ for node, def in pairs(minetest.registered_nodes) do
(def.tiles and type(def.tiles[1]) == "string") and (def.tiles and type(def.tiles[1]) == "string") and
not def.on_rightclick and not def.on_rightclick and
not def.on_blast and not def.on_blast and
not def.allow_metadata_inventory_take and not def.on_metadata_inventory_put and
not (def.groups.not_in_creative_inventory == 1) and not (def.groups.not_in_creative_inventory == 1) and
not (def.groups.not_cuttable == 1) and not (def.groups.not_cuttable == 1) and
not def.groups.colorglass and not def.groups.colorglass and
@ -357,13 +357,13 @@ for i=1, #nodes do
end end
for _, d in pairs(workbench.defs) do for _, d in pairs(workbench.defs) do
minetest.register_alias("stairs:"..d[1].."_coal", "stairs:"..d[1].."_default_coalblock") minetest.register_alias("stairs:"..d[1].."_coal", "stairs:"..d[1].."_default_coalblock")
minetest.register_alias("stairs:"..d[1].."_straw", "stairs:"..d[1].."_farming_straw") minetest.register_alias("stairs:"..d[1].."_lapis_block", "stairs:"..d[1].."_default_lapisblock")
end end
for _, e in pairs(stairs_aliases) do for _, e in pairs(stairs_aliases) do
minetest.register_alias("stairs:"..e[1].."_coal", "stairs:"..e[2].."_default_coalblock") minetest.register_alias("stairs:"..e[1].."_coal", "stairs:"..e[2].."_default_coalblock")
minetest.register_alias("stairs:"..e[1].."_straw", "stairs:"..e[2].."_farming_straw") minetest.register_alias("stairs:"..e[1].."_lapis_block", "stairs:"..e[2].."_default_lapisblock")
end end
minetest.register_alias("stairs:stair_steel", "stairs:stair_default_steelblock") minetest.register_alias("stairs:stair_steel", "stairs:stair_default_steelblock")