Spaces=>Tabs, 3dmushrooms (thank @VanessaE), update mobs, player_api, minor fixes and improvements

This commit is contained in:
MoNTE48 2019-05-18 20:35:38 +02:00
parent 5ee797e3c7
commit 512c54072f
76 changed files with 1771 additions and 1761 deletions

View File

@ -6,35 +6,35 @@ dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor.lua")
minetest.register_tool("3d_armor:helmet_leather", { minetest.register_tool("3d_armor:helmet_leather", {
description = "Leather Helmet", description = "Leather Helmet",
inventory_image = "3d_armor_inv_helmet_leather.png", inventory_image = "3d_armor_inv_helmet_leather.png",
groups = {armor_head=5, armor_heal=0, armor_use=100, combat = 1}, groups = {armor_head=5, armor_heal=0, armor_use=100},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet_steel", { minetest.register_tool("3d_armor:helmet_steel", {
description = "Steel Helmet", description = "Steel Helmet",
inventory_image = "3d_armor_inv_helmet_steel.png", inventory_image = "3d_armor_inv_helmet_steel.png",
groups = {armor_head=10, armor_heal=5, armor_use=250, combat = 1}, groups = {armor_head=10, armor_heal=5, armor_use=250},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet_gold", { minetest.register_tool("3d_armor:helmet_gold", {
description = "Golden Helmet", description = "Golden Helmet",
inventory_image = "3d_armor_inv_helmet_gold.png", inventory_image = "3d_armor_inv_helmet_gold.png",
groups = {armor_head=15, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_head=15, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet_diamond",{ minetest.register_tool("3d_armor:helmet_diamond",{
description = "Diamond Helmet", description = "Diamond Helmet",
inventory_image = "3d_armor_inv_helmet_diamond.png", inventory_image = "3d_armor_inv_helmet_diamond.png",
groups = {armor_head=20, armor_heal=15, armor_use=750, combat = 1}, groups = {armor_head=20, armor_heal=15, armor_use=750},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet_chain", { minetest.register_tool("3d_armor:helmet_chain", {
description = "Chain Helmet", description = "Chain Helmet",
inventory_image = "3d_armor_inv_helmet_chain.png", inventory_image = "3d_armor_inv_helmet_chain.png",
groups = {armor_head=15, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_head=15, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
@ -43,35 +43,35 @@ minetest.register_tool("3d_armor:helmet_chain", {
minetest.register_tool("3d_armor:chestplate_leather", { minetest.register_tool("3d_armor:chestplate_leather", {
description = "Leather Chestplate", description = "Leather Chestplate",
inventory_image = "3d_armor_inv_chestplate_leather.png", inventory_image = "3d_armor_inv_chestplate_leather.png",
groups = {armor_torso=15, armor_heal=0, armor_use=100, combat = 1}, groups = {armor_torso=15, armor_heal=0, armor_use=100},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate_steel", { minetest.register_tool("3d_armor:chestplate_steel", {
description = "Steel Chestplate", description = "Steel Chestplate",
inventory_image = "3d_armor_inv_chestplate_steel.png", inventory_image = "3d_armor_inv_chestplate_steel.png",
groups = {armor_torso=20, armor_heal=5, armor_use=250, combat = 1}, groups = {armor_torso=20, armor_heal=5, armor_use=250},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate_gold", { minetest.register_tool("3d_armor:chestplate_gold", {
description = "Golden Chestplate", description = "Golden Chestplate",
inventory_image = "3d_armor_inv_chestplate_gold.png", inventory_image = "3d_armor_inv_chestplate_gold.png",
groups = {armor_torso=25, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_torso=25, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate_diamond",{ minetest.register_tool("3d_armor:chestplate_diamond",{
description = "Diamond Chestplate", description = "Diamond Chestplate",
inventory_image = "3d_armor_inv_chestplate_diamond.png", inventory_image = "3d_armor_inv_chestplate_diamond.png",
groups = {armor_torso=30, armor_heal=15, armor_use=750, combat = 1}, groups = {armor_torso=30, armor_heal=15, armor_use=750},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate_chain", { minetest.register_tool("3d_armor:chestplate_chain", {
description = "Chain Chestplate", description = "Chain Chestplate",
inventory_image = "3d_armor_inv_chestplate_chain.png", inventory_image = "3d_armor_inv_chestplate_chain.png",
groups = {armor_torso=25, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_torso=25, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
@ -80,35 +80,35 @@ minetest.register_tool("3d_armor:chestplate_chain", {
minetest.register_tool("3d_armor:leggings_leather", { minetest.register_tool("3d_armor:leggings_leather", {
description = "Leather Leggings", description = "Leather Leggings",
inventory_image = "3d_armor_inv_leggings_leather.png", inventory_image = "3d_armor_inv_leggings_leather.png",
groups = {armor_legs=10, armor_heal=0, armor_use=100, combat = 1}, groups = {armor_legs=10, armor_heal=0, armor_use=100},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings_steel", { minetest.register_tool("3d_armor:leggings_steel", {
description = "Steel Leggings", description = "Steel Leggings",
inventory_image = "3d_armor_inv_leggings_steel.png", inventory_image = "3d_armor_inv_leggings_steel.png",
groups = {armor_legs=15, armor_heal=5, armor_use=250, combat = 1}, groups = {armor_legs=15, armor_heal=5, armor_use=250},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings_gold", { minetest.register_tool("3d_armor:leggings_gold", {
description = "Golden Leggings", description = "Golden Leggings",
inventory_image = "3d_armor_inv_leggings_gold.png", inventory_image = "3d_armor_inv_leggings_gold.png",
groups = {armor_legs=20, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_legs=20, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings_diamond",{ minetest.register_tool("3d_armor:leggings_diamond",{
description = "Diamond Helmet", description = "Diamond Helmet",
inventory_image = "3d_armor_inv_leggings_diamond.png", inventory_image = "3d_armor_inv_leggings_diamond.png",
groups = {armor_legs=25, armor_heal=15, armor_use=750, combat = 1}, groups = {armor_legs=25, armor_heal=15, armor_use=750},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings_chain", { minetest.register_tool("3d_armor:leggings_chain", {
description = "Chain Leggings", description = "Chain Leggings",
inventory_image = "3d_armor_inv_leggings_chain.png", inventory_image = "3d_armor_inv_leggings_chain.png",
groups = {armor_legs=20, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_legs=20, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
-- Regisiter Boots -- Regisiter Boots
@ -116,35 +116,35 @@ minetest.register_tool("3d_armor:leggings_chain", {
minetest.register_tool("3d_armor:boots_leather", { minetest.register_tool("3d_armor:boots_leather", {
description = "Leather Boots", description = "Leather Boots",
inventory_image = "3d_armor_inv_boots_leather.png", inventory_image = "3d_armor_inv_boots_leather.png",
groups = {armor_feet=5, armor_heal=0, armor_use=100, combat = 1}, groups = {armor_feet=5, armor_heal=0, armor_use=100},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:boots_steel", { minetest.register_tool("3d_armor:boots_steel", {
description = "Steel Boots", description = "Steel Boots",
inventory_image = "3d_armor_inv_boots_steel.png", inventory_image = "3d_armor_inv_boots_steel.png",
groups = {armor_feet=10, armor_heal=5, armor_use=250, combat = 1}, groups = {armor_feet=10, armor_heal=5, armor_use=250},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:boots_gold", { minetest.register_tool("3d_armor:boots_gold", {
description = "Golden Boots", description = "Golden Boots",
inventory_image = "3d_armor_inv_boots_gold.png", inventory_image = "3d_armor_inv_boots_gold.png",
groups = {armor_feet=15, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_feet=15, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:boots_diamond",{ minetest.register_tool("3d_armor:boots_diamond",{
description = "Diamond Helmet", description = "Diamond Helmet",
inventory_image = "3d_armor_inv_boots_diamond.png", inventory_image = "3d_armor_inv_boots_diamond.png",
groups = {armor_feet=20, armor_heal=15, armor_use=750, combat = 1}, groups = {armor_feet=20, armor_heal=15, armor_use=750},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:boots_chain", { minetest.register_tool("3d_armor:boots_chain", {
description = "Chain Boots", description = "Chain Boots",
inventory_image = "3d_armor_inv_boots_chain.png", inventory_image = "3d_armor_inv_boots_chain.png",
groups = {armor_feet=15, armor_heal=10, armor_use=500, combat = 1}, groups = {armor_feet=15, armor_heal=10, armor_use=500},
wear = 0, wear = 0,
}) })

View File

@ -1,4 +1,4 @@
MultiCraft mod: beds MultiCraft game mod: beds
======================= =======================
See license.txt for license information. See license.txt for license information.

View File

@ -37,7 +37,7 @@ local torch_get_input_rules = function(node)
end end
minetest.register_craft({ minetest.register_craft({
output = '"mesecons_torch:mesecon_torch_on" 4', output = "mesecons_torch:mesecon_torch_on 4",
recipe = { recipe = {
{"default:bluestone_dust"}, {"default:bluestone_dust"},
{"default:stick"},} {"default:stick"},}

View File

@ -1,4 +1,4 @@
MultiCraft mod: boats MultiCraft game mod: boats
======================== ========================
See license.txt for license information. See license.txt for license information.

View File

@ -1,4 +1,4 @@
MultiCraft mod: bucket MultiCraft game mod: bucket
========================= =========================
License of source code: License of source code:

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: bucket -- MultiCraft game mod: bucket
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
minetest.register_alias("bucket", "bucket:bucket_empty") minetest.register_alias("bucket", "bucket:bucket_empty")
@ -30,15 +30,15 @@ local function check_protection(pos, name, text)
end end
-- Register a new liquid -- Register a new liquid
-- source = name of the source node -- source = name of the source node
-- flowing = name of the flowing node -- flowing = name of the flowing node
-- itemname = name of the new bucket item (or nil if liquid is not takeable) -- itemname = name of the new bucket item (or nil if liquid is not takeable)
-- inventory_image = texture of the new bucket item (ignored if itemname == nil) -- inventory_image = texture of the new bucket item (ignored if itemname == nil)
-- name = text description of the bucket item -- name = text description of the bucket item
-- groups = (optional) groups of the bucket item, for example {water_bucket = 1} -- groups = (optional) groups of the bucket item, for example {water_bucket = 1}
-- force_renew = (optional) bool. Force the liquid source to renew if it has a -- force_renew = (optional) bool. Force the liquid source to renew if it has a
-- source neighbour, even if defined as 'liquid_renewable = false'. -- source neighbour, even if defined as 'liquid_renewable = false'.
-- Needed to avoid creating holes in sloping rivers. -- Needed to avoid creating holes in sloping rivers.
-- This function can be called from any mod (that depends on bucket). -- This function can be called from any mod (that depends on bucket).
function bucket.register_liquid(source, flowing, itemname, inventory_image, name, function bucket.register_liquid(source, flowing, itemname, inventory_image, name,
groups, force_renew) groups, force_renew)

View File

@ -12,7 +12,7 @@ return {
"default:emerald", "default:emerald",
"default:quartz_crystal", "default:quartz_crystal",
"default:sugar", "default:sugar",
"default:reeds", "default:sugarcane",
"default:stick", "default:stick",
"default:gunpowder", "default:gunpowder",
} }

View File

@ -15,4 +15,10 @@ return {
"default:shovel_stone", "default:shovel_stone",
"default:axe_wood", "default:axe_wood",
"default:pick_steel", "default:pick_steel",
"farming:hoe_wood",
"farming:hoe_stone",
"farming:hoe_steel",
"farming:hoe_gold",
"farming:hoe_diamond",
"default:pole",
} }

View File

@ -188,7 +188,7 @@ local function get_creative_formspec(player_name, start_i, pagenum, page, pagema
local formspec = "image_button_exit[10.4,-0.1;0.75,0.75;close.png;exit;;true;true;]".. local formspec = "image_button_exit[10.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
"background[-0.19,-0.25;11.5,8.5;inventory_creative.png]".. "background[-0.19,-0.25;11.5,8.5;inventory_creative.png]"..
sfinv.gui_bg.. sfinv.gui_bg..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]".. sfinv.listcolors..
"label[-5,-5;"..name.."]".. "label[-5,-5;"..name.."]"..
"image_button[-0.16,-0.15;1,1;"..bg["blocks"]..";build;;;false]".. --build blocks "image_button[-0.16,-0.15;1,1;"..bg["blocks"]..";build;;;false]".. --build blocks
"image_button[0.87,-0.15;1,1;"..bg["deco"]..";deco;;;false]".. --decoration blocks "image_button[0.87,-0.15;1,1;"..bg["deco"]..";deco;;;false]".. --decoration blocks

View File

@ -18,7 +18,7 @@ minetest.register_alias("jungletree", "default:jungletree")
minetest.register_alias("junglegrass", "default:junglegrass") minetest.register_alias("junglegrass", "default:junglegrass")
minetest.register_alias("leaves", "default:leaves") minetest.register_alias("leaves", "default:leaves")
minetest.register_alias("cactus", "default:cactus") minetest.register_alias("cactus", "default:cactus")
minetest.register_alias("papyrus", "default:papyrus") minetest.register_alias("papyrus", "default:sugarcane")
minetest.register_alias("bookshelf", "default:bookshelf") minetest.register_alias("bookshelf", "default:bookshelf")
minetest.register_alias("glass", "default:glass") minetest.register_alias("glass", "default:glass")
minetest.register_alias("wooden_fence", "default:fence_wood") minetest.register_alias("wooden_fence", "default:fence_wood")
@ -86,3 +86,7 @@ minetest.register_alias("default:haybale", "farming:straw")
-- Ladder -- Ladder
minetest.register_alias("default:ladder", "default:ladder_wood") minetest.register_alias("default:ladder", "default:ladder_wood")
-- Ladder
minetest.register_alias("default:reeds", "default:sugarcane")
minetest.register_alias("default:papyrus", "default:sugarcane")

View File

@ -3,7 +3,7 @@
-- --
local function get_chest_neighborpos(pos, param2, side) local function get_chest_neighborpos(pos, param2, side)
if side == "right" then if side == "right" then
if param2 == 0 then if param2 == 0 then
return {x=pos.x-1, y=pos.y, z=pos.z} return {x=pos.x-1, y=pos.y, z=pos.z}
elseif param2 == 1 then elseif param2 == 1 then
@ -13,7 +13,7 @@ local function get_chest_neighborpos(pos, param2, side)
elseif param2 == 3 then elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z-1} return {x=pos.x, y=pos.y, z=pos.z-1}
end end
else else
if param2 == 0 then if param2 == 0 then
return {x=pos.x+1, y=pos.y, z=pos.z} return {x=pos.x+1, y=pos.y, z=pos.z}
elseif param2 == 1 then elseif param2 == 1 then
@ -23,18 +23,18 @@ local function get_chest_neighborpos(pos, param2, side)
elseif param2 == 3 then elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z+1} return {x=pos.x, y=pos.y, z=pos.z+1}
end end
end end
end end
minetest.register_node("default:chest", { minetest.register_node("default:chest", {
description = "Chest", description = "Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, decorative = 1}, groups = {choppy = 2, oddly_breakable_by_hand = 2, decorative = 1},
legacy_facedir_simple = true, legacy_facedir_simple = true,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos) on_construct = function(pos)
local param2 = minetest.get_node(pos).param2 local param2 = minetest.get_node(pos).param2
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if minetest.get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then if minetest.get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then
@ -100,8 +100,8 @@ minetest.register_node("default:chest", {
end end
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 9*3) inv:set_size("main", 9*3)
end, end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local meta2 = meta local meta2 = meta
meta:from_table(oldmetadata) meta:from_table(oldmetadata)
@ -109,41 +109,41 @@ minetest.register_node("default:chest", {
for i=1,inv:get_size("main") do for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i) local stack = inv:get_stack("main", i)
if not stack:is_empty() then if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.add_item(p, stack) minetest.add_item(p, stack)
end end
end end
meta:from_table(meta2:to_table()) meta:from_table(meta2:to_table())
end, end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos)) " moves stuff in chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_put = function(pos, listname, index, stack, player) on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos)) " moves stuff to chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_take = function(pos, listname, index, stack, player) on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos)) " takes stuff from chest at "..minetest.pos_to_string(pos))
end, end,
on_receive_fields = function(pos, formname, fields, sender) on_receive_fields = function(pos, formname, fields, sender)
if fields.exit then if fields.exit then
print('test') print('test')
fields.quit = true fields.quit = true
-- minetest.show_formspec(sender:get_player_name(), 'quit', "") -- minetest.show_formspec(sender:get_player_name(), 'quit', "")
end end
end end
}) })
minetest.register_node("default:chest_left", { minetest.register_node("default:chest_left", {
tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png", tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"}, "default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1}, groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
drop = "default:chest", drop = "default:chest",
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos) on_destruct = function(pos)
local m = minetest.get_meta(pos) local m = minetest.get_meta(pos)
if m:get_string("infotext") == "Chest" then if m:get_string("infotext") == "Chest" then
return return
@ -164,8 +164,8 @@ minetest.register_node("default:chest_left", {
"list[current_player;main;0,7.74;9,1;]") "list[current_player;main;0,7.74;9,1;]")
meta:set_string("infotext", "Chest") meta:set_string("infotext", "Chest")
minetest.swap_node(p, {name="default:chest", param2=param2}) minetest.swap_node(p, {name="default:chest", param2=param2})
end, end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local meta2 = meta local meta2 = meta
meta:from_table(oldmetadata) meta:from_table(oldmetadata)
@ -173,34 +173,34 @@ minetest.register_node("default:chest_left", {
for i=1,inv:get_size("main") do for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i) local stack = inv:get_stack("main", i)
if not stack:is_empty() then if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.add_item(p, stack) minetest.add_item(p, stack)
end end
end end
meta:from_table(meta2:to_table()) meta:from_table(meta2:to_table())
end, end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos)) " moves stuff in chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_put = function(pos, listname, index, stack, player) on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos)) " moves stuff to chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_take = function(pos, listname, index, stack, player) on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos)) " takes stuff from chest at "..minetest.pos_to_string(pos))
end, end,
}) })
minetest.register_node("default:chest_right", { minetest.register_node("default:chest_right", {
tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png", tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"}, "default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"},
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1}, groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
drop = "default:chest", drop = "default:chest",
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos) on_destruct = function(pos)
local m = minetest.get_meta(pos) local m = minetest.get_meta(pos)
if m:get_string("infotext") == "Chest" then if m:get_string("infotext") == "Chest" then
return return
@ -221,8 +221,8 @@ minetest.register_node("default:chest_right", {
"list[current_player;main;0,7.74;9,1;]") "list[current_player;main;0,7.74;9,1;]")
meta:set_string("infotext", "Chest") meta:set_string("infotext", "Chest")
minetest.swap_node(p, {name="default:chest", param2=param2}) minetest.swap_node(p, {name="default:chest", param2=param2})
end, end,
after_dig_node = function(pos, oldnode, oldmetadata, digger) after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local meta2 = meta local meta2 = meta
meta:from_table(oldmetadata) meta:from_table(oldmetadata)
@ -230,22 +230,22 @@ minetest.register_node("default:chest_right", {
for i=1,inv:get_size("main") do for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i) local stack = inv:get_stack("main", i)
if not stack:is_empty() then if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.add_item(p, stack) minetest.add_item(p, stack)
end end
end end
meta:from_table(meta2:to_table()) meta:from_table(meta2:to_table())
end, end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos)) " moves stuff in chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_put = function(pos, listname, index, stack, player) on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos)) " moves stuff to chest at "..minetest.pos_to_string(pos))
end, end,
on_metadata_inventory_take = function(pos, listname, index, stack, player) on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos)) " takes stuff from chest at "..minetest.pos_to_string(pos))
end, end,
}) })

File diff suppressed because it is too large Load Diff

View File

@ -5,20 +5,19 @@
-- --
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 = {materials = 1}, 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 = {misc = 1}, groups = {flammable = 3},
}) })
local lpp = 14 -- Lines per book's page local lpp = 14 -- Lines per book's page
local function book_on_use(itemstack, user) local function book_on_use(itemstack, user)
local player_name = user:get_player_name() local player_name = user:get_player_name()
@ -176,95 +175,82 @@ minetest.register_craftitem("default:book_written", {
}) })
minetest.register_craftitem("default:coal_lump", { minetest.register_craftitem("default:coal_lump", {
description = "Coal Lump", description = "Coal Lump",
inventory_image = "default_coal_lump.png", inventory_image = "default_coal_lump.png",
groups = {materials = 1}, groups = {coal = 1, flammable = 1}
}) })
minetest.register_craftitem("default:charcoal_lump", { minetest.register_craftitem("default:charcoal_lump", {
description = "Charcoal Lump", description = "Charcoal Lump",
inventory_image = "default_charcoal_lump.png", inventory_image = "default_charcoal_lump.png",
groups = {materials = 1}, groups = {coal = 1, flammable = 1}
}) })
minetest.register_craftitem("default:diamond", { minetest.register_craftitem("default:diamond", {
description = "Diamond", description = "Diamond",
inventory_image = "default_diamond.png", inventory_image = "default_diamond.png",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })
minetest.register_craftitem("default:emerald", { minetest.register_craftitem("default:emerald", {
description = "Emerald", description = "Emerald",
inventory_image = "default_emerald.png", inventory_image = "default_emerald.png",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })
minetest.register_craftitem("default:gunpowder", { minetest.register_craftitem("default:gunpowder", {
description = "Gunpowder", description = "Gunpowder",
inventory_image = "default_gunpowder.png", inventory_image = "default_gunpowder.png",
groups = {materials = 1},
}) })
minetest.register_craftitem("default:bone", { minetest.register_craftitem("default:bone", {
description = "Bone", description = "Bone",
inventory_image = "default_bone.png", inventory_image = "default_bone.png",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })
minetest.register_craftitem("default:fish_raw", { minetest.register_craftitem("default:fish_raw", {
description = "Raw Fish", description = "Raw Fish",
groups = {}, groups = {},
inventory_image = "default_fish.png", inventory_image = "default_fish.png",
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
groups = {foodstuffs = 1},
}) })
minetest.register_craftitem("default:fish", { minetest.register_craftitem("default:fish", {
description = "Cooked Fish", description = "Cooked Fish",
groups = {}, groups = {},
inventory_image = "default_fish_cooked.png", inventory_image = "default_fish_cooked.png",
on_use = minetest.item_eat(4), on_use = minetest.item_eat(4),
groups = {foodstuffs = 1},
}) })
minetest.register_craftitem("default:sugar", { minetest.register_craftitem("default:sugar", {
description = "Sugar", description = "Sugar",
inventory_image = "default_sugar.png", inventory_image = "default_sugar.png",
groups = {materials = 1},
}) })
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",
groups = {materials = 1},
}) })

View File

@ -206,7 +206,7 @@ function default.grow_papyrus(pos, node)
end end
pos.y = pos.y + 1 pos.y = pos.y + 1
local height = 0 local height = 0
while node.name == "default:papyrus" and height < 4 do while node.name == "default:sugarcane" and height < 4 do
height = height + 1 height = height + 1
pos.y = pos.y + 1 pos.y = pos.y + 1
node = minetest.get_node(pos) node = minetest.get_node(pos)
@ -217,7 +217,7 @@ function default.grow_papyrus(pos, node)
if minetest.get_node_light(pos) < 13 then if minetest.get_node_light(pos) < 13 then
return return
end end
minetest.set_node(pos, {name = "default:papyrus"}) minetest.set_node(pos, {name = "default:sugarcane"})
return true return true
end end
@ -234,7 +234,7 @@ minetest.register_abm({
minetest.register_abm({ minetest.register_abm({
label = "Grow papyrus", label = "Grow papyrus",
nodenames = {"default:papyrus"}, nodenames = {"default:sugarcane"},
neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand"}, neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand"},
interval = 14, interval = 14,
chance = 71, chance = 71,

View File

@ -6,15 +6,17 @@
local function active_formspec(fuel_percent, item_percent) local function active_formspec(fuel_percent, item_percent)
local formspec = local formspec =
"size[9,8.75]".. "size[9,8.75]"..
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]".. "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]"..
"background[-0.19,-0.25;9.41,9.49;formspec_furnace.png]".. "background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]"..
sfinv.gui_bg.. "bgcolor[#08080880;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]".. "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
"list[current_player;main;0,4.5;9,3;9]".. "list[current_player;main;0,4.5;9,3;9]"..
"list[current_player;main;0,7.74;9,1;]".. "list[current_player;main;0,7.74;9,1;]"..
"list[current_name;src;3,0.5;1,1;]".. "list[current_name;src;3,0.5;1,1;]"..
"list[current_name;fuel;3,2.5;1,1;]".. "list[current_name;fuel;3,2.5;1,1;]"..
"list[current_name;dst;5,1.5;1,1;]".. "list[current_name;dst;5,1.5;1,1;]"..
"list[detached:split;main;8,3.14;1,1;]"..
"image[3,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. "image[3,1.5;1,1;default_furnace_fire_bg.png^[lowpart:"..
(100-fuel_percent)..":default_furnace_fire_fg.png]" (100-fuel_percent)..":default_furnace_fire_fg.png]"
return formspec return formspec
@ -22,15 +24,30 @@ end
local inactive_formspec = local inactive_formspec =
"size[9,8.75]".. "size[9,8.75]"..
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]".. "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]"..
"background[-0.19,-0.25;9.41,9.49;formspec_furnace.png]".. "background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]"..
"bgcolor[#08080880;true]".. "bgcolor[#08080880;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]".. "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
"list[current_player;main;0,4.5;9,3;9]".. "list[current_player;main;0,4.5;9,3;9]"..
"list[current_player;main;0,7.74;9,1;]".. "list[current_player;main;0,7.74;9,1;]"..
"list[current_name;src;3,0.5;1,1;]".. "list[current_name;src;3,0.5;1,1;]"..
"list[current_name;fuel;3,2.5;1,1;]".. "list[current_name;fuel;3,2.5;1,1;]"..
"list[current_name;dst;5,1.5;1,1;]" "list[current_name;dst;5,1.5;1,1;]"..
"list[detached:split;main;8,3.14;1,1;]"
local split_inv = minetest.create_detached_inventory("split", {
allow_move = function(_, _, _, _, _, count, _)
return count
end,
allow_put = function(_, _, _, stack, _)
return stack:get_count() / 2
end,
allow_take = function(_, _, _, stack, _)
return stack:get_count()
end,
})
split_inv:set_size("main", 1)
-- --
-- Node callback functions that are the same for active and inactive furnace -- Node callback functions that are the same for active and inactive furnace

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: default -- MultiCraft game mod: default
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
-- The API documentation in here was moved into doc/lua_api.txt -- The API documentation in here was moved into doc/lua_api.txt

View File

@ -159,204 +159,204 @@ function default.register_ores()
-- Coal -- Coal
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_coal", ore = "default:stone_with_coal",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 500, clust_scarcity = 500,
clust_num_ores = 8, clust_num_ores = 8,
clust_size = 3, clust_size = 3,
y_min = -59, y_min = -59,
y_max = -12, y_max = -12,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_coal", ore = "default:stone_with_coal",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 1000, clust_scarcity = 1000,
clust_num_ores = 6, clust_num_ores = 6,
clust_size = 3, clust_size = 3,
y_min = -11, y_min = -11,
y_max = 64, y_max = 64,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_coal", ore = "default:stone_with_coal",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 5000, clust_scarcity = 5000,
clust_num_ores = 4, clust_num_ores = 4,
clust_size = 2, clust_size = 2,
y_min = 65, y_min = 65,
y_max = 67, y_max = 67,
}) })
-- Iron -- Iron
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 830, clust_scarcity = 830,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
y_min = -59, y_min = -59,
y_max = -10, y_max = -10,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_iron", ore = "default:stone_with_iron",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 1660, clust_scarcity = 1660,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
y_min = -9, y_min = -9,
y_max = 0, y_max = 0,
}) })
-- Gold -- Gold
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_gold", ore = "default:stone_with_gold",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 5000, clust_scarcity = 5000,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
y_min = -59, y_min = -59,
y_max = -35, y_max = -35,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_gold", ore = "default:stone_with_gold",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
y_min = -35, y_min = -35,
y_max = -33, y_max = -33,
}) })
-- Diamond -- Diamond
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_diamond", ore = "default:stone_with_diamond",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 4, clust_num_ores = 4,
clust_size = 3, clust_size = 3,
y_min = -59, y_min = -59,
y_max = -48, y_max = -48,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_diamond", ore = "default:stone_with_diamond",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 5000, clust_scarcity = 5000,
clust_num_ores = 2, clust_num_ores = 2,
clust_size = 2, clust_size = 2,
y_min = -59, y_min = -59,
y_max = -48, y_max = -48,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_diamond", ore = "default:stone_with_diamond",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 8, clust_num_ores = 8,
clust_size = 3, clust_size = 3,
y_min = -55, y_min = -55,
y_max = -52, y_max = -52,
}) })
-- Bluestone -- Bluestone
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_bluestone", ore = "default:stone_with_bluestone",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 3, clust_size = 3,
y_min = -59, y_min = -59,
y_max = -48, y_max = -48,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_bluestone", ore = "default:stone_with_bluestone",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 10, clust_num_ores = 10,
clust_size = 4, clust_size = 4,
y_min = -59, y_min = -59,
y_max = -48, y_max = -48,
}) })
-- Emerald -- Emerald
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_emerald", ore = "default:stone_with_emerald",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 1, clust_num_ores = 1,
clust_size = 2, clust_size = 2,
y_min = -59, y_min = -59,
y_max = -35, y_max = -35,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_emerald", ore = "default:stone_with_emerald",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 50000, clust_scarcity = 50000,
clust_num_ores = 3, clust_num_ores = 3,
clust_size = 2, clust_size = 2,
y_min = -59, y_min = -59,
y_max = -35, y_max = -35,
}) })
-- Lapis Lazuli -- Lapis Lazuli
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_lapis", ore = "default:stone_with_lapis",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 7, clust_num_ores = 7,
clust_size = 4, clust_size = 4,
y_min = -50, y_min = -50,
y_max = -46, y_max = -46,
}) })
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:stone_with_lapis", ore = "default:stone_with_lapis",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 10000, clust_scarcity = 10000,
clust_num_ores = 5, clust_num_ores = 5,
clust_size = 4, clust_size = 4,
y_min = -59, y_min = -59,
y_max = -50, y_max = -50,
}) })
-- Glowstone -- Glowstone
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "default:glowstone", ore = "default:glowstone",
wherein = "default:stone", wherein = "default:stone",
clust_scarcity = 50000, clust_scarcity = 50000,
clust_num_ores = 10, clust_num_ores = 10,
clust_size = 5, clust_size = 5,
y_min = -59, y_min = -59,
y_max = -0, y_max = -0,
}) })
end end
@ -915,7 +915,7 @@ function default.register_mgv6_decorations()
decoration = {"bonusbox:chest"}, decoration = {"bonusbox:chest"},
}) })
-- Papyrus -- Sugar Cane
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
@ -931,7 +931,7 @@ function default.register_mgv6_decorations()
}, },
y_min = 1, y_min = 1,
y_max = 1, y_max = 1,
decoration = "default:papyrus", decoration = "default:sugarcane",
height = 2, height = 2,
y_max = 4, y_max = 4,
spawn_by = "default:water_source", spawn_by = "default:water_source",
@ -956,7 +956,7 @@ function default.register_mgv6_decorations()
y_max = 30, y_max = 30,
decoration = "default:cactus", decoration = "default:cactus",
height = 3, height = 3,
y_max = 4, y_max = 4,
}) })
-- Long grasses -- Long grasses

View File

@ -7,7 +7,7 @@
minetest.register_node("default:stone", { minetest.register_node("default:stone", {
description = "Stone", description = "Stone",
tiles = {"default_stone.png"}, tiles = {"default_stone.png"},
groups = {cracky = 3, stone = 1, building = 1, decorative = 1}, groups = {cracky = 3, stone = 1},
drop = 'default:cobble', drop = 'default:cobble',
legacy_mineral = true, legacy_mineral = true,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
@ -16,7 +16,7 @@ minetest.register_node("default:stone", {
minetest.register_node("default:cobble", { minetest.register_node("default:cobble", {
description = "Cobblestone", description = "Cobblestone",
tiles = {"default_cobble.png"}, tiles = {"default_cobble.png"},
groups = {cracky = 3, stone = 2, building = 1, decorative = 1}, groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -26,7 +26,7 @@ minetest.register_node("default:stonebrick", {
place_param2 = 0, place_param2 = 0,
tiles = {"default_stone_brick.png"}, tiles = {"default_stone_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky = 2, stone = 1, building = 1, decorative = 1}, groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -34,63 +34,63 @@ minetest.register_node("default:mossycobble", {
description = "Mossy Cobblestone", description = "Mossy Cobblestone",
tiles = {"default_mossycobble.png"}, tiles = {"default_mossycobble.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, building = 1, decorative = 1}, groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:stonebrickcarved", { minetest.register_node("default:stonebrickcarved", {
description = "Stone Brick Carved", description = "Stone Brick Carved",
tiles = {"default_stonebrick_carved.png"}, tiles = {"default_stonebrick_carved.png"},
groups = {cracky = 3, stone = 1, building = 1, decorative = 1}, groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:stonebrickcracked", { minetest.register_node("default:stonebrickcracked", {
description = "Stone Brick Cracked", description = "Stone Brick Cracked",
tiles = {"default_stonebrick_cracked.png"}, tiles = {"default_stonebrick_cracked.png"},
groups = {cracky = 3, stone = 1, building = 1, decorative = 1}, groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:stonebrickmossy", { minetest.register_node("default:stonebrickmossy", {
description = "Mossy Stone Brick", description = "Mossy Stone Brick",
tiles = {"default_stonebrick_mossy.png"}, tiles = {"default_stonebrick_mossy.png"},
groups = {cracky = 3, stone = 1, building = 1, decorative = 1}, groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:sandstone", { minetest.register_node("default:sandstone", {
description = "Sandstone", description = "Sandstone",
tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_normal.png"}, tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_normal.png"},
groups = {crumbly = 1, cracky = 3, building = 1}, groups = {crumbly = 1, cracky = 3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:sandstonesmooth", { minetest.register_node("default:sandstonesmooth", {
description = "Smooth Sandstone", description = "Smooth Sandstone",
tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_smooth.png"}, tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_smooth.png"},
groups = {crumbly = 2, cracky = 2, building = 1}, groups = {crumbly = 2, cracky = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:redsandstone", { minetest.register_node("default:redsandstone", {
description = "Red SandStone", description = "Red SandStone",
tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_normal.png"}, tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_normal.png"},
groups = {crumbly = 2, cracky = 2, building = 1}, groups = {crumbly = 2, cracky = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:redsandstonesmooth", { minetest.register_node("default:redsandstonesmooth", {
description = "Red SandStone Smooth", description = "Red SandStone Smooth",
tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_smooth.png"}, tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_smooth.png"},
groups = {crumbly = 2, cracky = 2, building = 1}, groups = {crumbly = 2, cracky = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:redsandstonecarved", { minetest.register_node("default:redsandstonecarved", {
description = "Red SandStone Carved", description = "Red SandStone Carved",
tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_carved.png"}, tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_carved.png"},
groups = {crumbly = 2, cracky = 2, building = 1}, groups = {crumbly = 2, cracky = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -105,7 +105,7 @@ minetest.register_node("default:obsidian", {
description = "Obsidian", description = "Obsidian",
tiles = {"default_obsidian.png"}, tiles = {"default_obsidian.png"},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
groups = {cracky = 4, level = 2, oddly_breakable_by_hand = 3, building = 1}, groups = {cracky = 4, level = 2, oddly_breakable_by_hand = 3},
}) })
-- --
-- Soft / Non-Stone -- Soft / Non-Stone
@ -114,14 +114,14 @@ minetest.register_node("default:obsidian", {
minetest.register_node("default:dirt", { minetest.register_node("default:dirt", {
description = "Dirt", description = "Dirt",
tiles = {"default_dirt.png"}, tiles = {"default_dirt.png"},
groups = {crumbly = 3, soil = 1, building = 1}, groups = {crumbly = 3, soil = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
}) })
minetest.register_node("default:dirt_with_grass", { minetest.register_node("default:dirt_with_grass", {
description = "Dirt with Grass", description = "Dirt with Grass",
tiles = {"default_grass.png", "default_dirt.png", "default_grass_side.png"}, tiles = {"default_grass.png", "default_dirt.png", "default_grass_side.png"},
groups = {crumbly = 3, soil = 1, building = 1, spreading_dirt_type = 1}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain = 0.4}, footstep = {name="default_grass_footstep", gain = 0.4},
@ -142,7 +142,7 @@ minetest.register_node("default:dirt_with_dry_grass", {
description = "Dirt with Dry Grass", description = "Dirt with Dry Grass",
tiles = {"default_dry_grass.png", "default_dirt.png", tiles = {"default_dry_grass.png", "default_dirt.png",
"default_dry_grass_side.png"}, "default_dry_grass_side.png"},
groups = {crumbly = 3, soil = 1, building = 1, spreading_dirt_type = 1}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.4}, footstep = {name = "default_grass_footstep", gain = 0.4},
@ -154,7 +154,7 @@ minetest.register_node("default:dirt_with_snow", {
tiles = {"default_snow.png", "default_dirt.png", tiles = {"default_snow.png", "default_dirt.png",
{name = "default_snow_side.png", {name = "default_snow_side.png",
tileable_vertical = false}}, tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, building = 1, spreading_dirt_type = 1, snowy = 1}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.4}, footstep = {name = "default_snow_footstep", gain = 0.4},
@ -164,7 +164,7 @@ minetest.register_node("default:dirt_with_snow", {
minetest.register_node("default:sand", { minetest.register_node("default:sand", {
description = "Sand", description = "Sand",
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1, building = 1}, groups = {crumbly = 3, falling_node = 1, sand = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
@ -172,7 +172,7 @@ minetest.register_node("default:sand", {
minetest.register_node("default:gravel", { minetest.register_node("default:gravel", {
description = "Gravel", description = "Gravel",
tiles = {"default_gravel.png"}, tiles = {"default_gravel.png"},
groups = {crumbly = 2, falling_node = 1, building = 1}, groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain = 0.45}, footstep = {name="default_gravel_footstep", gain = 0.45},
}), }),
@ -183,20 +183,19 @@ minetest.register_node("default:gravel", {
{items = {'default:gravel'}} {items = {'default:gravel'}}
} }
}, },
}) })
minetest.register_node("default:redsand", { minetest.register_node("default:redsand", {
description = "Red Sand", description = "Red Sand",
tiles = {"default_red_sand.png"}, tiles = {"default_red_sand.png"},
groups = {crumbly = 3, falling_node = 1, redsand=1, building = 1}, groups = {crumbly = 3, falling_node = 1, redsand = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
minetest.register_node("default:clay", { minetest.register_node("default:clay", {
description = "Clay", description = "Clay",
tiles = {"default_clay.png"}, tiles = {"default_clay.png"},
groups = {crumbly = 3, building = 1}, groups = {crumbly = 3},
drop = 'default:clay_lump 4', drop = 'default:clay_lump 4',
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
}) })
@ -232,7 +231,7 @@ minetest.register_node("default:snow", {
minetest.register_node("default:snowblock", { minetest.register_node("default:snowblock", {
description = "Snow Block", description = "Snow Block",
tiles = {"default_snow.png"}, tiles = {"default_snow.png"},
groups = {crumbly = 3, building = 1}, groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.4}, footstep = {name = "default_snow_footstep", gain = 0.4},
dug = {name = "default_snow_footstep", gain = 0.75}, dug = {name = "default_snow_footstep", gain = 0.75},
@ -248,7 +247,7 @@ minetest.register_node("default:ice", {
is_ground_content = false, is_ground_content = false,
paramtype = "light", paramtype = "light",
use_texture_alpha = true, use_texture_alpha = true,
groups = {cracky = 3, puts_out_fire = 1, oddly_breakable_by_hand = 2, building = 1}, groups = {cracky = 3, puts_out_fire = 1, oddly_breakable_by_hand = 2},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
@ -258,7 +257,7 @@ minetest.register_node("default:packedice", {
tiles = {"default_ice_packed.png"}, tiles = {"default_ice_packed.png"},
paramtype = "light", paramtype = "light",
use_texture_alpha = true, use_texture_alpha = true,
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
@ -284,7 +283,7 @@ minetest.register_node("default:wood", {
tiles = {"default_wood.png"}, tiles = {"default_wood.png"},
is_ground_content = false, is_ground_content = false,
material = "default:wood", material = "default:wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1, building = 1}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
@ -701,7 +700,7 @@ minetest.register_node("default:aspen_sapling", {
minetest.register_node("default:stone_with_coal", { minetest.register_node("default:stone_with_coal", {
description = "Coal Ore", description = "Coal Ore",
tiles = {"default_stone.png^default_mineral_coal.png"}, tiles = {"default_stone.png^default_mineral_coal.png"},
groups = {cracky = 3, building = 1}, groups = {cracky = 3},
drop = 'default:coal_lump', drop = 'default:coal_lump',
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -709,7 +708,7 @@ minetest.register_node("default:stone_with_coal", {
minetest.register_node("default:stone_with_iron", { minetest.register_node("default:stone_with_iron", {
description = "Iron Ore", description = "Iron Ore",
tiles = {"default_stone.png^default_mineral_iron.png"}, tiles = {"default_stone.png^default_mineral_iron.png"},
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
drop = 'default:stone_with_iron', drop = 'default:stone_with_iron',
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -717,21 +716,21 @@ minetest.register_node("default:stone_with_iron", {
minetest.register_node("default:steelblock", { minetest.register_node("default:steelblock", {
description = "Steel Block", description = "Steel Block",
tiles = {"default_steel_block.png"}, tiles = {"default_steel_block.png"},
groups = {cracky = 1,level = 2, building = 1}, groups = {cracky = 1,level = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:lapisblock", { minetest.register_node("default:lapisblock", {
description = "Lapis Lazul Block", description = "Lapis Lazul Block",
tiles = {"default_lapis_block.png"}, tiles = {"default_lapis_block.png"},
groups = {cracky = 1, building = 1}, groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:stone_with_bluestone", { minetest.register_node("default:stone_with_bluestone", {
description = "Bluestone Ore", description = "Bluestone Ore",
tiles = {"default_stone.png^default_mineral_bluestone.png"}, tiles = {"default_stone.png^default_mineral_bluestone.png"},
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
drop = "mesecons:wire_00000000_off 5", drop = "mesecons:wire_00000000_off 5",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -739,7 +738,7 @@ minetest.register_node("default:stone_with_bluestone", {
minetest.register_node("default:stone_with_lapis", { minetest.register_node("default:stone_with_lapis", {
description = "Lapis Lazuli Ore", description = "Lapis Lazuli Ore",
tiles = {"default_stone.png^default_mineral_lapis.png"}, tiles = {"default_stone.png^default_mineral_lapis.png"},
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
drop = { drop = {
max_items = 2, max_items = 2,
items = { items = {
@ -757,7 +756,7 @@ minetest.register_node("default:stone_with_lapis", {
minetest.register_node("default:stone_with_gold", { minetest.register_node("default:stone_with_gold", {
description = "Gold Ore", description = "Gold Ore",
tiles = {"default_stone.png^default_mineral_gold.png"}, tiles = {"default_stone.png^default_mineral_gold.png"},
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
drop = "default:stone_with_gold", drop = "default:stone_with_gold",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -766,14 +765,14 @@ minetest.register_node("default:goldblock", {
description = "Gold Block", description = "Gold Block",
tiles = {"default_gold_block.png"}, tiles = {"default_gold_block.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky = 1, building = 1}, groups = {cracky = 1},
sounds = default.node_sound_metal_defaults(), sounds = default.node_sound_metal_defaults(),
}) })
minetest.register_node("default:stone_with_emerald", { minetest.register_node("default:stone_with_emerald", {
description = "Emerald Ore", description = "Emerald Ore",
tiles = {"default_stone.png^default_mineral_emerald.png"}, tiles = {"default_stone.png^default_mineral_emerald.png"},
groups = {cracky = 2, building = 1}, groups = {cracky = 2},
drop = "default:emerald", drop = "default:emerald",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -781,14 +780,14 @@ minetest.register_node("default:stone_with_emerald", {
minetest.register_node("default:emeraldblock", { minetest.register_node("default:emeraldblock", {
description = "Emerald Block", description = "Emerald Block",
tiles = {"default_emerald_block.png"}, tiles = {"default_emerald_block.png"},
groups = {cracky = 1, building = 1}, groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:stone_with_diamond", { minetest.register_node("default:stone_with_diamond", {
description = "Diamonds in Stone", description = "Diamonds in Stone",
tiles = {"default_stone.png^default_mineral_diamond.png"}, tiles = {"default_stone.png^default_mineral_diamond.png"},
groups = {cracky = 1, building = 1}, groups = {cracky = 1},
drop = "default:diamond", drop = "default:diamond",
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -797,7 +796,7 @@ minetest.register_node("default:diamondblock", {
description = "Diamond Block", description = "Diamond Block",
tiles = {"default_diamond_block.png"}, tiles = {"default_diamond_block.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky = 1, level = 3, building = 1}, groups = {cracky = 1, level = 3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -813,7 +812,7 @@ minetest.register_node("default:dry_shrub", {
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
groups = {snappy = 3, flammable = 3, attached_node=1, decorative = 1}, groups = {snappy = 3, flammable = 3, attached_node=1},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
@ -864,7 +863,7 @@ minetest.register_node("default:grass", {
}, },
paramtype = "light", paramtype = "light",
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1,
flammable = 1, dig_immediate = 3, decorative = 1}, flammable = 1, dig_immediate = 3},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
@ -881,7 +880,7 @@ minetest.register_node("default:dry_grass", {
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1,
not_in_creative_inventory=1, dry_grass = 1, dig_immediate = 3, decorative = 1}, not_in_creative_inventory=1, dry_grass = 1, dig_immediate = 3},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
@ -1221,7 +1220,7 @@ minetest.register_node("default:bookshelf", {
"default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
is_ground_content = false, is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, building = 1}, groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos) on_construct = function(pos)
@ -1274,7 +1273,7 @@ minetest.register_node("default:cactus", {
description = "Cactus", description = "Cactus",
drawtype = "nodebox", drawtype = "nodebox",
tiles = {"default_cactus_top.png", "default_cactus_bottom.png", "default_cactus_side.png","default_cactus_side.png","default_cactus_side.png","default_cactus_side.png"}, tiles = {"default_cactus_top.png", "default_cactus_bottom.png", "default_cactus_side.png","default_cactus_side.png","default_cactus_side.png","default_cactus_side.png"},
groups = {snappy = 1, choppy = 3, flammable = 2, decorative = 1}, groups = {snappy = 1, choppy = 3, flammable = 2},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
paramtype = "light", paramtype = "light",
node_box = { node_box = {
@ -1297,12 +1296,12 @@ minetest.register_node("default:cactus", {
}) })
minetest.register_node("default:papyrus", { minetest.register_node("default:sugarcane", {
description = "Papyrus", description = "Sugarcane",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"default_papyrus.png"}, tiles = {"default_sugarcane.png"},
inventory_image = "default_papyrus.png", inventory_image = "default_sugarcane_inv.png",
wield_image = "default_papyrus.png", wield_image = "default_sugarcane_inv.png",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
@ -1312,40 +1311,11 @@ minetest.register_node("default:papyrus", {
}, },
groups = {snappy = 3, flammable = 2}, groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger) after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger) default.dig_up(pos, node, digger)
end, end,
}) })
minetest.register_node("default:reeds", {
description = "Sugarcane",
drawtype = "plantlike",
tiles = {"default_papyrus.png"},
inventory_image = "default_sugar_cane.png",
wield_image = "default_sugar_cane.png",
paramtype = "light",
walkable = false,
node_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main Body
{-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes
{-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes
{-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes
{7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes
},
},
selection_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16},
},
},
groups = {snappy = 3, flammable = 2, materials = 1},
sounds = default.node_sound_leaves_defaults(),
})
-- --
-- Quartz -- Quartz
-- --
@ -1353,7 +1323,7 @@ minetest.register_node("default:reeds", {
minetest.register_node("default:quartz_ore", { minetest.register_node("default:quartz_ore", {
description = "Quartz Ore", description = "Quartz Ore",
tiles = {"default_quartz_ore.png"}, tiles = {"default_quartz_ore.png"},
groups = {cracky = 3, stone = 1, building = 1}, groups = {cracky = 3, stone = 1},
drop = 'default:quartz_crystal', drop = 'default:quartz_crystal',
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -1361,14 +1331,14 @@ minetest.register_node("default:quartz_ore", {
minetest.register_node("default:quartz_block", { minetest.register_node("default:quartz_block", {
description = "Quartz Block", description = "Quartz Block",
tiles = {"default_quartz_block_top.png", "default_quartz_block_bottom.png", "default_quartz_block_side.png"}, tiles = {"default_quartz_block_top.png", "default_quartz_block_bottom.png", "default_quartz_block_side.png"},
groups = {snappy = 1, bendy = 2,cracky = 1,level = 2, building = 1}, groups = {snappy = 1, bendy = 2,cracky = 1,level = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:quartz_chiseled", { minetest.register_node("default:quartz_chiseled", {
description = "Chiseled Quartz", description = "Chiseled Quartz",
tiles = {"default_quartz_chiseled_top.png", "default_quartz_chiseled_top.png", "default_quartz_chiseled_side.png"}, tiles = {"default_quartz_chiseled_top.png", "default_quartz_chiseled_top.png", "default_quartz_chiseled_side.png"},
groups = {snappy = 1,bendy=2,cracky = 1,level = 2, building = 1}, groups = {snappy = 1,bendy=2,cracky = 1,level = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -1377,7 +1347,7 @@ minetest.register_node("default:quartz_pillar", {
paramtype2 = "facedir", paramtype2 = "facedir",
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
tiles = {"default_quartz_pillar_top.png", "default_quartz_pillar_top.png", "default_quartz_pillar_side.png"}, tiles = {"default_quartz_pillar_top.png", "default_quartz_pillar_top.png", "default_quartz_pillar_side.png"},
groups = {snappy = 1,bendy=2,cracky = 1,level = 2, building = 1}, groups = {snappy = 1,bendy=2,cracky = 1,level = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
@ -1397,7 +1367,7 @@ minetest.register_node("default:slimeblock", {
paramtype = "light", paramtype = "light",
use_texture_alpha = true, use_texture_alpha = true,
sunlight_propagates = true, sunlight_propagates = true,
groups = {oddly_breakable_by_hand = 3,dig_immediate = 2,bouncy=70,disable_jump=1, fall_damage_add_percent=-100, building = 1}, groups = {oddly_breakable_by_hand = 3,dig_immediate = 2,bouncy=70,disable_jump=1, fall_damage_add_percent=-100},
}) })
minetest.register_node("default:ladder_wood", { minetest.register_node("default:ladder_wood", {
@ -1418,7 +1388,7 @@ minetest.register_node("default:ladder_wood", {
--wall_bottom = = <default> --wall_bottom = = <default>
--wall_side = = <default> --wall_side = = <default>
}, },
groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2, decorative = 1}, groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2},
legacy_wallmounted = true, legacy_wallmounted = true,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
@ -1436,7 +1406,7 @@ minetest.register_node("default:vine", {
selection_box = { selection_box = {
type = "wallmounted", type = "wallmounted",
}, },
groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2, decorative = 1}, groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2},
legacy_wallmounted = true, legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
drop = "", drop = "",
@ -1475,7 +1445,7 @@ minetest.register_node("default:glass", {
tiles = {"default_glass.png"}, tiles = {"default_glass.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, building = 1}, groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
drop = "", drop = "",
}) })
@ -1486,14 +1456,14 @@ minetest.register_node("default:brick", {
place_param2 = 0, place_param2 = 0,
tiles = {"default_brick.png"}, tiles = {"default_brick.png"},
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, building = 1}, groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("default:glowstone", { minetest.register_node("default:glowstone", {
description = "Glowstone", description = "Glowstone",
tiles = {"default_glowstone.png"}, tiles = {"default_glowstone.png"},
groups = {cracky = 3, building = 1}, groups = {cracky = 3},
--[[ drop = { --[[ drop = {
max_items = 1, max_items = 1,
items = { items = {
@ -1516,7 +1486,7 @@ minetest.register_node("default:sponge", {
pointable = true, pointable = true,
diggable = true, diggable = true,
buildable_to = false, buildable_to = false,
groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3, building = 1}, groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3},
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local pn = placer:get_player_name() local pn = placer:get_player_name()
if pointed_thing.type ~= "node" then if pointed_thing.type ~= "node" then
@ -1649,7 +1619,7 @@ function AddGlass(desc, recipeitem, color)
tiles = {"xpanes_pane_glass"..color..".png"}, tiles = {"xpanes_pane_glass"..color..".png"},
paramtype = "light", paramtype = "light",
use_texture_alpha = true, use_texture_alpha = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, building = 1}, groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
drop = "", drop = "",
}) })

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

View File

Before

Width:  |  Height:  |  Size: 967 B

After

Width:  |  Height:  |  Size: 967 B

View File

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 942 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -2,21 +2,21 @@
-- The hand -- The hand
minetest.register_item(":", { minetest.register_item(":", {
type = "none", type = "none",
wield_image = "wieldhand.png", wield_image = "wieldhand.png",
wield_scale = {x=0.7,y=2,z=0.0001}, wield_scale = {x=0.7,y=2,z=0.0001},
tool_capabilities = { tool_capabilities = {
full_punch_interval = 0.9, full_punch_interval = 0.9,
max_drop_level = 0, max_drop_level = 0,
groupcaps = { groupcaps = {
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
choppy = {times={[3]=3}}, choppy = {times={[3]=3}},
cracky = {times={[10]=10, [3]=7.5}}, cracky = {times={[10]=10, [3]=7.5}},
oddly_breakable_by_hand = {times={[0]=90.00,[1]=7.00,[2]=3.00,[3]=3*3.33,[4]=250,[5]=999999.0,[6]=0.5}, uses=0, maxlevel=5} oddly_breakable_by_hand = {times={[0]=90.00,[1]=7.00,[2]=3.00,[3]=3*3.33,[4]=250,[5]=999999.0,[6]=0.5}, uses=0, maxlevel=5}
}, },
damage_groups = {fleshy=1}, damage_groups = {fleshy=1},
} }
}) })
-- --
@ -24,299 +24,294 @@ minetest.register_item(":", {
-- --
minetest.register_tool("default:pick_wood", { minetest.register_tool("default:pick_wood", {
description = "Wooden Pickaxe", description = "Wooden Pickaxe",
inventory_image = "default_tool_woodpick.png", inventory_image = "default_tool_woodpick.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
cracky = {times={[3]=1.60, [10]=1.60}, uses=10, maxlevel=1}, cracky = {times={[3]=1.60, [10]=1.60}, uses=10, maxlevel=1},
}, },
damage_groups = {fleshy=3}, damage_groups = {fleshy=3},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:pick_stone", { minetest.register_tool("default:pick_stone", {
description = "Stone Pickaxe", description = "Stone Pickaxe",
inventory_image = "default_tool_stonepick.png", inventory_image = "default_tool_stonepick.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.3, full_punch_interval = 1.3,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
cracky = {times={[2]=2.0, [3]=1.20, [3]=0.60}, uses=20, maxlevel=1}, cracky = {times={[2]=2.0, [3]=1.20, [3]=0.60}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=4}, damage_groups = {fleshy=4},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:pick_steel", { minetest.register_tool("default:pick_steel", {
description = "Steel Pickaxe", description = "Steel Pickaxe",
inventory_image = "default_tool_steelpick.png", inventory_image = "default_tool_steelpick.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.0, full_punch_interval = 1.0,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80,[3]=0.40}, uses=20, maxlevel=2}, cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80,[3]=0.40}, uses=20, maxlevel=2},
}, },
damage_groups = {fleshy=5}, damage_groups = {fleshy=5},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:pick_gold", { minetest.register_tool("default:pick_gold", {
description = "Gold Pickaxe", description = "Gold Pickaxe",
inventory_image = "default_tool_goldpick.png", inventory_image = "default_tool_goldpick.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.3, full_punch_interval = 1.3,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
cracky = {times={[2]=2.0, [3]=1.20, [10]=0.30}, uses=20, maxlevel=1}, cracky = {times={[2]=2.0, [3]=1.20, [10]=0.30}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=3}, damage_groups = {fleshy=3},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:pick_diamond", { minetest.register_tool("default:pick_diamond", {
description = "Diamond Pickaxe", description = "Diamond Pickaxe",
inventory_image = "default_tool_diamondpick.png", inventory_image = "default_tool_diamondpick.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 0.9, full_punch_interval = 0.9,
max_drop_level=3, max_drop_level=3,
groupcaps={ groupcaps={
cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50,[4]=20.00,[3]=0.20 }, uses=30, maxlevel=4}, cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50,[4]=20.00,[3]=0.20 }, uses=30, maxlevel=4},
}, },
damage_groups = {fleshy=6}, damage_groups = {fleshy=6},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
-- Shovels -- Shovels
minetest.register_tool("default:shovel_wood", { minetest.register_tool("default:shovel_wood", {
description = "Wooden Shovel", description = "Wooden Shovel",
inventory_image = "default_tool_woodshovel.png", inventory_image = "default_tool_woodshovel.png",
wield_image = "default_tool_woodshovel.png^[transformR90", wield_image = "default_tool_woodshovel.png^[transformR90",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1},
}, },
damage_groups = {fleshy=2}, damage_groups = {fleshy=2},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:shovel_stone", { minetest.register_tool("default:shovel_stone", {
description = "Stone Shovel", description = "Stone Shovel",
inventory_image = "default_tool_stoneshovel.png", inventory_image = "default_tool_stoneshovel.png",
wield_image = "default_tool_stoneshovel.png^[transformR90", wield_image = "default_tool_stoneshovel.png^[transformR90",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.4, full_punch_interval = 1.4,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=2}, damage_groups = {fleshy=2},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:shovel_steel", { minetest.register_tool("default:shovel_steel", {
description = "Steel Shovel", description = "Steel Shovel",
inventory_image = "default_tool_steelshovel.png", inventory_image = "default_tool_steelshovel.png",
wield_image = "default_tool_steelshovel.png^[transformR90", wield_image = "default_tool_steelshovel.png^[transformR90",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.1, full_punch_interval = 1.1,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2}, crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2},
}, },
damage_groups = {fleshy=3}, damage_groups = {fleshy=3},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:shovel_gold", { minetest.register_tool("default:shovel_gold", {
description = "Gold Shovel", description = "Gold Shovel",
inventory_image = "default_tool_goldshovel.png", inventory_image = "default_tool_goldshovel.png",
wield_image = "default_tool_goldshovel.png^[transformR90", wield_image = "default_tool_goldshovel.png^[transformR90",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.4, full_punch_interval = 1.4,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=2}, damage_groups = {fleshy=2},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:shovel_diamond", { minetest.register_tool("default:shovel_diamond", {
description = "Diamond Shovel", description = "Diamond Shovel",
inventory_image = "default_tool_diamondshovel.png", inventory_image = "default_tool_diamondshovel.png",
wield_image = "default_tool_diamondshovel.png^[transformR90", wield_image = "default_tool_diamondshovel.png^[transformR90",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.0, full_punch_interval = 1.0,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3}, crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
}, },
damage_groups = {fleshy=5}, damage_groups = {fleshy=5},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
-- Axes -- Axes
minetest.register_tool("default:axe_wood", { minetest.register_tool("default:axe_wood", {
description = "Wooden Axe", description = "Wooden Axe",
inventory_image = "default_tool_woodaxe.png", inventory_image = "default_tool_woodaxe.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.0, full_punch_interval = 1.0,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1}, choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1},
}, },
damage_groups = {fleshy=1}, damage_groups = {fleshy=1},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:axe_stone", { minetest.register_tool("default:axe_stone", {
description = "Stone Axe", description = "Stone Axe",
inventory_image = "default_tool_stoneaxe.png", inventory_image = "default_tool_stoneaxe.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1}, choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=3}, damage_groups = {fleshy=3},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:axe_steel", { minetest.register_tool("default:axe_steel", {
description = "Steel Axe", description = "Steel Axe",
inventory_image = "default_tool_steelaxe.png", inventory_image = "default_tool_steelaxe.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.0, full_punch_interval = 1.0,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
choppy = {times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2}, choppy = {times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2},
}, },
damage_groups = {fleshy=5}, damage_groups = {fleshy=5},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:axe_gold", { minetest.register_tool("default:axe_gold", {
description = "Gold Axe", description = "Gold Axe",
inventory_image = "default_tool_goldaxe.png", inventory_image = "default_tool_goldaxe.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1}, choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=3}, damage_groups = {fleshy=3},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
minetest.register_tool("default:axe_diamond", { minetest.register_tool("default:axe_diamond", {
description = "Diamond Axe", description = "Diamond Axe",
inventory_image = "default_tool_diamondaxe.png", inventory_image = "default_tool_diamondaxe.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 0.9, full_punch_interval = 0.9,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
choppy = {times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, choppy = {times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
}, },
damage_groups = {fleshy=6}, damage_groups = {fleshy=6},
}, },
groups = {tools=1}, groups = {tools=1},
}) })
-- Swords -- Swords
minetest.register_tool("default:sword_wood", { minetest.register_tool("default:sword_wood", {
description = "Wooden Sword", description = "Wooden Sword",
inventory_image = "default_tool_woodsword.png", inventory_image = "default_tool_woodsword.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1, full_punch_interval = 1,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
snappy = {times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, snappy = {times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1},
}, },
damage_groups = {fleshy=2}, damage_groups = {fleshy=2},
}, },
groups = {combat=1},
}) })
minetest.register_tool("default:sword_stone", { minetest.register_tool("default:sword_stone", {
description = "Stone Sword", description = "Stone Sword",
inventory_image = "default_tool_stonesword.png", inventory_image = "default_tool_stonesword.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=4}, damage_groups = {fleshy=4},
}, },
groups = {combat=1},
}) })
minetest.register_tool("default:sword_steel", { minetest.register_tool("default:sword_steel", {
description = "Steel Sword", description = "Steel Sword",
inventory_image = "default_tool_steelsword.png", inventory_image = "default_tool_steelsword.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 0.8, full_punch_interval = 0.8,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
snappy = {times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, snappy = {times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
}, },
damage_groups = {fleshy=6}, damage_groups = {fleshy=6},
}, },
groups = {combat=1},
}) })
minetest.register_tool("default:sword_gold", { minetest.register_tool("default:sword_gold", {
description = "Gold Sword", description = "Gold Sword",
inventory_image = "default_tool_goldsword.png", inventory_image = "default_tool_goldsword.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.2, full_punch_interval = 1.2,
max_drop_level=0, max_drop_level=0,
groupcaps={ groupcaps={
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
}, },
damage_groups = {fleshy=4}, damage_groups = {fleshy=4},
}, },
groups = {combat=1},
}) })
minetest.register_tool("default:sword_diamond", { minetest.register_tool("default:sword_diamond", {
description = "Diamond Sword", description = "Diamond Sword",
inventory_image = "default_tool_diamondsword.png", inventory_image = "default_tool_diamondsword.png",
tool_capabilities = { tool_capabilities = {
full_punch_interval = 0.7, full_punch_interval = 0.7,
max_drop_level=1, max_drop_level=1,
groupcaps={ groupcaps={
snappy = {times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3}, snappy = {times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
}, },
damage_groups = {fleshy=7}, damage_groups = {fleshy=7},
}, },
groups = {combat=1},
}) })
-- Fishing Pole -- Fishing Pole
minetest.register_tool("default:pole", { minetest.register_tool("default:pole", {
description = "Fishing Rod", description = "Fishing Rod",
groups = {}, groups = {},
inventory_image = "default_tool_fishing_pole.png", inventory_image = "default_tool_fishing_pole.png",
stack_max = 1, stack_max = 1,
groups = {tools=1}, groups = {tools=1},
liquids_pointable = true, liquids_pointable = true,
on_use = function (itemstack, user, pointed_thing) on_use = function (itemstack, user, pointed_thing)
if pointed_thing and pointed_thing.under then if pointed_thing and pointed_thing.under then
local node = minetest.get_node(pointed_thing.under) local node = minetest.get_node(pointed_thing.under)
if string.find(node.name, "default:water") then if string.find(node.name, "default:water") then
if math.random(1, 100) > 50 then if math.random(1, 100) > 50 then
local inv = user:get_inventory() local inv = user:get_inventory()
if inv:room_for_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""}) then if inv:room_for_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""}) then
inv:add_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""}) inv:add_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""})
end end
end end
itemstack:add_wear(66000/65) -- 65 uses itemstack:add_wear(66000/65) -- 65 uses
return itemstack return itemstack
end end
end end
return nil return nil
end, end,
}) })

View File

@ -244,9 +244,9 @@ function doors:register_door(name, def)
if check_player_priv(pos, clicker) then if check_player_priv(pos, clicker) then
on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
if is_right(pos, clicker) then if is_right(pos, clicker) then
minetest.sound_play("doors_door_open", {gain = 0.3, max_hear_distance = 10}) minetest.sound_play("doors_door_open", {pos = pos, gain = 0.3, max_hear_distance = 10})
else else
minetest.sound_play("doors_door_close", {gain = 0.3, max_hear_distance = 10}) minetest.sound_play("doors_door_close", {pos = pos, gain = 0.3, max_hear_distance = 10})
end end
end end
end, end,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,6 +1,6 @@
local age = 1 --How old an item has to be before collecting local age = 1 --How old an item has to be before collecting
local radius_magnet = 2 --Radius of item magnet local radius_magnet = 2 --Radius of item magnet
local player_collect_height = 1.3 --Added to their pos y value local player_collect_height = 1.3 --Added to their pos y value
--Item collection --Item collection
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function(dtime)

View File

@ -1,4 +1,4 @@
MultiCraft mod: dye MultiCraft game mod: dye
====================== ======================
See license.txt for license information. See license.txt for license information.
See init.lua for documentation. See init.lua for documentation.

View File

@ -3,21 +3,21 @@ dye = {}
-- Make dye names and descriptions available globally -- Make dye names and descriptions available globally
dye.dyes = { dye.dyes = {
{"white", "White"}, {"white", "White"},
{"grey", "Grey"}, {"grey", "Grey"},
{"dark_grey", "Dark grey"}, {"dark_grey", "Dark grey"},
{"black", "Black"}, {"black", "Black"},
{"violet", "Violet"}, {"violet", "Violet"},
{"blue", "Blue"}, {"blue", "Blue"},
{"cyan", "Cyan"}, {"cyan", "Cyan"},
{"dark_green", "Dark green"}, {"dark_green", "Dark green"},
{"green", "Green"}, {"green", "Green"},
{"yellow", "Yellow"}, {"yellow", "Yellow"},
{"brown", "Brown"}, {"brown", "Brown"},
{"orange", "Orange"}, {"orange", "Orange"},
{"red", "Red"}, {"red", "Red"},
{"magenta", "Magenta"}, {"magenta", "Magenta"},
{"pink", "Pink"}, {"pink", "Pink"},
} }
-- Define items -- Define items

View File

@ -20,7 +20,7 @@ farming.register_hoe(":farming:hoe_steel", {
material = "default:steel_ingot" material = "default:steel_ingot"
}) })
farming.register_hoe(":farming:gold_mese", { farming.register_hoe(":farming:hoe_gold", {
description = "Gold Hoe", description = "Gold Hoe",
inventory_image = "farming_tool_goldhoe.png", inventory_image = "farming_tool_goldhoe.png",
max_uses = 350, max_uses = 350,
@ -32,5 +32,4 @@ farming.register_hoe(":farming:hoe_diamond", {
inventory_image = "farming_tool_diamondhoe.png", inventory_image = "farming_tool_diamondhoe.png",
max_uses = 1000, max_uses = 1000,
material = "default:diamond" material = "default:diamond"
}) })

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -6,3 +6,8 @@ Authors of source code
---------------------- ----------------------
Originally by Ironzorg (MIT) and VanessaE (MIT) Originally by Ironzorg (MIT) and VanessaE (MIT)
Various Minetest developers and contributors (MIT) Various Minetest developers and contributors (MIT)
----------------------
3dmushrooms based on old version of VanessaE mod plantlife_modpack
https://gitlab.com/VanessaE/plantlife_modpack/tree/f11fa6e6fe12bde9c964c20e0e87906f8149485d/3dmushrooms
License for media and all other assets: WTFPL

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: default -- MultiCraft game mod: default
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
@ -173,10 +173,10 @@ minetest.register_abm({
minetest.register_node("flowers:mushroom_red", { minetest.register_node("flowers:mushroom_red", {
description = "Red Mushroom", description = "Red Mushroom",
tiles = {"flowers_mushroom_red.png"}, tiles = {"3dmushrooms_red.png"},
inventory_image = "flowers_mushroom_red.png", inventory_image = "3dmushrooms_red_inv.png",
wield_image = "flowers_mushroom_red.png", drawtype = "mesh",
drawtype = "plantlike", mesh = "3dmushrooms.obj",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
@ -186,16 +186,16 @@ minetest.register_node("flowers:mushroom_red", {
on_use = minetest.item_eat(-5), on_use = minetest.item_eat(-5),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
} },
}) })
minetest.register_node("flowers:mushroom_brown", { minetest.register_node("flowers:mushroom_brown", {
description = "Brown Mushroom", description = "Brown Mushroom",
tiles = {"flowers_mushroom_brown.png"}, tiles = {"3dmushrooms_brown.png"},
inventory_image = "flowers_mushroom_brown.png", inventory_image = "3dmushrooms_brown_inv.png",
wield_image = "flowers_mushroom_brown.png", drawtype = "mesh",
drawtype = "plantlike", mesh = "3dmushrooms.obj",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
@ -205,8 +205,8 @@ minetest.register_node("flowers:mushroom_brown", {
on_use = minetest.item_eat(1), on_use = minetest.item_eat(1),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
} },
}) })

View File

@ -155,12 +155,12 @@ local function register_waterlily()
end end
function flowers.register_decorations() function flowers.register_decorations()
register_flower(436, "rose") register_flower(436, "rose")
register_flower(19822, "tulip") register_flower(19822, "tulip")
register_flower(1220999, "dandelion_yellow") register_flower(1220999, "dandelion_yellow")
register_flower(36662, "orchid") register_flower(36662, "orchid")
register_flower(1133, "allium") register_flower(1133, "allium")
register_flower(73133, "dandelion_white") register_flower(73133, "dandelion_white")
register_mushroom("mushroom_brown") register_mushroom("mushroom_brown")
register_mushroom("mushroom_red") register_mushroom("mushroom_red")

View File

@ -0,0 +1,329 @@
# Blender v2.73 (sub 0) OBJ File: 'plantlife_mushroom.blend'
# www.blender.org
o Cylinder
v 0.261489 -0.177877 -0.000000
v 0.165972 -0.203714 -0.000000
v 0.210761 -0.224729 -0.000000
v 0.258520 -0.211811 -0.000000
v 0.185335 -0.171215 -0.184553
v 0.116925 -0.199423 -0.118862
v 0.148161 -0.219252 -0.151707
v 0.182366 -0.205148 -0.184553
v 0.001484 -0.155130 -0.260997
v -0.001484 -0.189063 -0.168096
v -0.002969 -0.206030 -0.214547
v -0.001484 -0.189063 -0.260997
v -0.182366 -0.139045 -0.184553
v -0.119894 -0.178704 -0.118862
v -0.154099 -0.192808 -0.151707
v -0.185335 -0.172979 -0.184553
v -0.258520 -0.132382 -0.000000
v -0.168941 -0.174413 -0.000000
v -0.216699 -0.187331 -0.000000
v -0.261489 -0.166316 -0.000000
v -0.182366 -0.139045 0.184553
v -0.119894 -0.178704 0.118862
v -0.154099 -0.192808 0.151707
v -0.185335 -0.172979 0.184553
v 0.001484 -0.155130 0.260997
v -0.001484 -0.189063 0.168096
v -0.002969 -0.206030 0.214547
v -0.001484 -0.189063 0.260997
v 0.185335 -0.171215 0.184553
v 0.116925 -0.199423 0.118862
v 0.148161 -0.219252 0.151708
v 0.182366 -0.205148 0.184553
v 0.059333 -0.075538 0.000000
v 0.044915 -0.074277 -0.034942
v 0.010106 -0.071232 -0.049416
v -0.024704 -0.068186 -0.034942
v -0.039122 -0.066925 0.000000
v -0.024704 -0.068186 0.034942
v 0.010106 -0.071232 0.049416
v 0.044915 -0.074277 0.034942
v 0.004580 -0.119744 -0.206430
v 0.149993 -0.132466 -0.145968
v 0.004580 -0.119744 0.206430
v -0.140833 -0.107022 0.145968
v 0.210225 -0.137736 -0.000000
v 0.149993 -0.132466 0.145968
v -0.201064 -0.101752 -0.000000
v -0.140833 -0.107022 -0.145968
v 0.033054 -0.500000 -0.079800
v 0.025067 -0.177627 -0.060518
v 0.079800 -0.500000 -0.033054
v 0.060518 -0.177627 -0.025067
v 0.079800 -0.500000 0.033054
v 0.060518 -0.177627 0.025067
v 0.033054 -0.500000 0.079800
v 0.025067 -0.177627 0.060518
v -0.033054 -0.500000 0.079800
v -0.025067 -0.177627 0.060518
v -0.079800 -0.500000 0.033054
v -0.060518 -0.177627 0.025067
v -0.079800 -0.500000 -0.033054
v -0.060518 -0.177627 -0.025067
v -0.033054 -0.500000 -0.079800
v -0.025067 -0.177627 -0.060518
v 0.014323 -0.253674 -0.065067
v 0.012105 -0.382623 -0.072780
v 0.052438 -0.253674 -0.026952
v 0.054739 -0.382623 -0.030146
v 0.052438 -0.253674 0.026952
v 0.054739 -0.382623 0.030146
v 0.014323 -0.253674 0.065067
v 0.012105 -0.382623 0.072780
v -0.039580 -0.253674 0.065067
v -0.048187 -0.382623 0.072780
v -0.077695 -0.253674 0.026952
v -0.090820 -0.382623 0.030146
v -0.077695 -0.253674 -0.026952
v -0.090820 -0.382623 -0.030146
v -0.039580 -0.253674 -0.065067
v -0.048187 -0.382623 -0.072780
vt 0.261010 0.917920
vt 0.235559 0.983636
vt 0.016350 0.764426
vt 0.080814 0.737724
vt 0.545568 0.235207
vt 0.764778 0.454417
vt 0.690996 0.484978
vt 0.517617 0.311599
vt 0.235559 0.235207
vt 0.515845 0.302693
vt 0.261010 0.302693
vt 0.578125 0.234375
vt 0.765625 0.234375
vt 0.765625 0.312500
vt 0.578125 0.312500
vt 0.015625 0.234375
vt 0.203125 0.234375
vt 0.203125 0.312500
vt 0.015625 0.312500
vt 0.390625 0.312500
vt 0.578125 0.390625
vt 0.390625 0.390625
vt 0.016350 0.454417
vt 0.080814 0.482889
vt 0.545569 0.983636
vt 0.515845 0.917920
vt 0.099043 0.730173
vt 0.272422 0.903553
vt 0.290733 0.368408
vt 0.490395 0.368408
vt 0.149550 0.709253
vt 0.149550 0.509591
vt 0.764778 0.764426
vt 0.696041 0.737725
vt 0.696041 0.482889
vt 0.099043 0.484978
vt 0.203125 0.390625
vt 0.765625 0.390625
vt 0.272422 0.311599
vt 0.631577 0.509591
vt 0.390625 0.234375
vt 0.517617 0.903553
vt 0.690996 0.730173
vt 0.432320 0.675133
vt 0.473823 0.633629
vt 0.015625 0.390625
vt 0.490395 0.850435
vt 0.290733 0.850435
vt 0.631577 0.709253
vt 0.373624 0.533431
vt 0.332121 0.574934
vt 0.473823 0.574934
vt 0.432320 0.533431
vt 0.332121 0.633630
vt 0.373624 0.675133
vt 0.935126 0.767633
vt 0.998032 0.830539
vt 0.998032 0.919502
vt 0.935126 0.982408
vt 0.846164 0.982408
vt 0.783257 0.919502
vt 0.783258 0.830539
vt 0.846164 0.767633
vt 0.375000 0.187500
vt 0.375000 0.031250
vt 0.500000 0.031250
vt 0.500000 0.187500
vt 0.625000 0.031250
vt 0.625000 0.187500
vt 0.750000 0.031250
vt 0.750000 0.187500
vt 0.875000 0.031250
vt 0.875000 0.187500
vt 1.000000 0.031250
vt 1.000000 0.187500
vt 0.000000 0.031250
vt 0.125000 0.031250
vt 0.125000 0.187500
vt 0.000000 0.187500
vt 0.250000 0.031250
vt 0.250000 0.187500
vt 0.542224 0.015885
vt 0.601585 0.075246
vt 0.601585 0.159195
vt 0.542224 0.218556
vt 0.458275 0.218556
vt 0.398914 0.159195
vt 0.398914 0.075246
vt 0.458275 0.015885
vt 0.625000 0.125000
vt 0.500000 0.125000
vt 0.750000 0.125000
vt 0.875000 0.125000
vt 1.000000 0.125000
vt 0.125000 0.125000
vt 0.000000 0.125000
vt 0.250000 0.125000
vt 0.375000 0.125000
vn -0.147000 -0.987300 0.060400
vn -0.648700 -0.460200 0.606100
vn -0.898800 -0.438400 0.000000
vn -0.172000 -0.985100 0.000000
vn 0.672500 0.376500 0.637100
vn 0.935400 0.353500 0.000000
vn 0.529200 0.848500 0.000000
vn 0.396700 0.860200 0.320400
vn -0.044900 -0.513100 -0.857100
vn 0.558900 -0.565900 -0.606100
vn -0.026600 -0.997800 -0.060400
vn -0.086800 -0.992500 -0.085500
vn -0.044900 -0.513100 0.857100
vn 0.037800 0.432000 0.901100
vn -0.596900 0.487600 0.637100
vn -0.648700 -0.460200 -0.606100
vn -0.596900 0.487600 -0.637100
vn 0.037800 0.432000 -0.901100
vn 0.809000 -0.587800 0.000000
vn 0.672500 0.376500 -0.637100
vn -0.147000 -0.987300 -0.060400
vn -0.086800 -0.992500 0.085500
vn -0.859800 0.510500 0.000000
vn -0.372100 0.928200 0.000000
vn -0.240600 0.916500 -0.319400
vn -0.085100 -0.972600 0.216400
vn -0.237500 -0.959200 0.153000
vn 0.130500 -0.991400 0.000000
vn 0.067400 -0.985900 0.153000
vn 0.558900 -0.565900 0.606100
vn -0.026600 -0.997800 0.060400
vn -0.001700 -1.000000 0.000000
vn -0.240600 0.916500 0.319400
vn 0.077500 0.888400 0.452400
vn -0.300700 -0.953700 0.000000
vn 0.077500 0.888400 -0.452400
vn 0.396700 0.860200 -0.320400
vn 0.086200 0.978700 -0.186300
vn 0.217800 0.967000 -0.132200
vn -0.085100 -0.972600 -0.216400
vn 0.067400 -0.985900 -0.153000
vn -0.237500 -0.959200 -0.153000
vn 0.086200 0.978700 0.186300
vn -0.044600 0.990300 0.131300
vn 0.272600 0.962100 0.000000
vn 0.217800 0.967000 0.132200
vn -0.098600 0.995100 0.000000
vn -0.044600 0.990300 -0.131300
vn -0.273500 -0.626100 -0.730200
vn -0.402500 0.040600 -0.914500
vn 0.360300 0.084000 -0.929000
vn 0.335600 -0.581700 -0.740900
vn 0.369900 0.027700 -0.928600
vn 0.921100 -0.031200 -0.388000
vn 0.913800 0.116800 -0.388800
vn 0.921100 -0.031200 0.388000
vn 0.913800 0.116800 0.388800
vn 0.369900 0.027700 0.928600
vn 0.360300 0.084000 0.929000
vn -0.391600 0.105700 0.914000
vn -0.402500 0.040600 0.914500
vn -0.914200 0.156600 0.373800
vn -0.927200 0.012400 0.374500
vn -0.914200 0.156600 -0.373800
vn -0.927200 0.012400 -0.374500
vn -0.391600 0.105700 -0.914000
vn 0.774400 -0.552100 -0.309000
vn 0.774400 -0.552100 0.309000
vn 0.335600 -0.581700 0.740900
vn -0.273500 -0.626100 0.730200
vn -0.690800 -0.658600 0.298100
vn -0.690800 -0.658600 -0.298100
vn 0.416700 -0.004500 -0.909100
vn 0.925800 -0.089300 -0.367400
vn 0.925800 -0.089300 0.367400
vn 0.416700 -0.004500 0.909100
vn -0.344300 0.121400 0.931000
vn -0.896600 0.212200 0.388700
vn -0.896600 0.212200 -0.388700
vn -0.344300 0.121400 -0.931000
s 1
f 23/1/1 24/2/2 20/3/3 19/4/4
f 29/5/5 1/6/6 45/7/7 46/8/8
f 12/9/9 8/5/10 7/10/11 11/11/12
f 24/12/2 28/13/13 25/14/14 21/15/15
f 12/16/9 16/17/16 13/18/17 9/19/18
f 4/20/19 8/15/10 5/21/20 1/22/6
f 16/23/16 12/9/9 11/11/12 15/24/21
f 28/25/13 24/2/2 23/1/1 27/26/22
f 13/2/17 17/3/23 47/27/24 48/28/25
f 10/29/26 11/11/12 7/10/11 6/30/27
f 18/31/28 19/4/4 15/24/21 14/32/29
f 4/6/19 32/33/30 31/34/31 3/35/32
f 17/3/23 21/23/15 44/36/33 47/27/24
f 32/18/30 4/20/19 1/22/6 29/37/5
f 8/5/10 4/6/19 3/35/32 7/10/11
f 8/15/10 12/14/9 9/38/18 5/21/20
f 25/9/14 29/5/5 46/8/8 43/39/34
f 6/30/27 7/10/11 3/35/32 2/40/35
f 16/17/16 20/41/3 17/20/23 13/18/17
f 31/34/31 32/33/30 28/25/13 27/26/22
f 5/33/20 9/25/18 41/42/36 42/43/37
f 41/42/36 35/44/38 34/45/39 42/43/37
f 15/24/21 11/11/12 10/29/26 14/32/29
f 20/41/3 24/12/2 21/15/15 17/20/23
f 1/6/6 5/33/20 42/43/37 45/7/7
f 19/4/4 20/3/3 16/23/16 15/24/21
f 28/19/13 32/18/30 29/37/5 25/46/14
f 26/47/40 27/26/22 23/1/1 22/48/41
f 21/23/15 25/9/14 43/39/34 44/36/33
f 9/25/18 13/2/17 48/28/25 41/42/36
f 23/1/1 19/4/4 18/31/28 22/48/41
f 2/40/35 3/35/32 31/34/31 30/49/42
f 43/39/34 39/50/43 38/51/44 44/36/33
f 45/7/7 33/52/45 40/53/46 46/8/8
f 42/43/37 34/45/39 33/52/45 45/7/7
f 46/8/8 40/53/46 39/50/43 43/39/34
f 44/36/33 38/51/44 37/54/47 47/27/24
f 47/27/24 37/54/47 36/55/48 48/28/25
f 48/28/25 36/55/48 35/44/38 41/42/36
f 35/44/38 36/55/48 37/54/47 38/51/44 39/50/43 40/53/46 33/52/45 34/45/39
f 6/56/27 2/57/35 30/58/42 26/59/40 22/60/41 18/61/28 14/62/29 10/63/26
f 63/64/49 80/65/50 66/66/51 49/67/52
f 65/66/53 67/68/54 68/69/55 66/67/51
f 67/68/54 69/70/56 70/71/57 68/69/55
f 69/70/56 71/72/58 72/73/59 70/71/57
f 71/72/58 73/74/60 74/75/61 72/73/59
f 73/76/60 75/77/62 76/78/63 74/79/61
f 75/77/62 77/80/64 78/81/65 76/78/63
f 77/80/64 79/65/66 80/64/50 78/81/65
f 49/82/52 51/83/67 53/84/68 55/85/69 57/86/70 59/87/71 61/88/72 63/89/49
f 50/66/73 52/68/74 67/90/54 65/91/53
f 52/68/74 54/70/75 69/92/56 67/90/54
f 66/66/51 68/68/55 51/69/67 49/67/52
f 54/70/75 56/72/76 71/93/58 69/92/56
f 68/68/55 70/70/57 53/71/68 51/69/67
f 56/72/76 58/74/77 73/94/60 71/93/58
f 70/70/57 72/72/59 55/73/69 53/71/68
f 58/76/77 60/77/78 75/95/62 73/96/60
f 72/72/59 74/74/61 57/75/70 55/73/69
f 60/77/78 62/80/79 77/97/64 75/95/62
f 74/76/61 76/77/63 59/78/71 57/79/70
f 62/80/79 64/65/80 79/98/66 77/97/64
f 76/77/63 78/80/65 61/81/72 59/78/71
f 31/34/31 27/26/22 26/47/40 30/49/42
f 78/80/65 80/65/50 63/64/49 61/81/72
f 79/98/66 64/65/80 50/66/73 65/91/53
f 79/65/66 65/66/53 66/67/51 80/64/50

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

View File

@ -1,4 +1,5 @@
local clay = {} local clay = {}
clay.dyes = { clay.dyes = {
{"white", "White", "white"}, {"white", "White", "white"},
{"grey", "Grey", "dark_grey"}, {"grey", "Grey", "dark_grey"},
@ -19,40 +20,39 @@ clay.dyes = {
} }
minetest.register_node("hardened_clay:hardened_clay", { minetest.register_node("hardened_clay:hardened_clay", {
description = "Hardened Clay", description = "Hardened Clay",
tiles = {"hardened_clay.png"}, tiles = {"hardened_clay.png"},
groups = {cracky = 3}, groups = {cracky = 3},
legacy_mineral = true, legacy_mineral = true,
groups = {buliding = 1}, groups = {buliding = 1},
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "hardened_clay:hardened_clay", output = "hardened_clay:hardened_clay",
recipe = "default:clay", recipe = "default:clay",
}) })
for _, row in ipairs(clay.dyes) do for _, row in ipairs(clay.dyes) do
local name = row[1] local name = row[1]
local desc = row[2] local desc = row[2]
local craft_color_group = row[3] local craft_color_group = row[3]
-- Node Definition -- Node Definition
minetest.register_node("hardened_clay:"..name, { minetest.register_node("hardened_clay:"..name, {
description = desc.." Hardened Clay", description = desc.." Hardened Clay",
tiles = {"hardened_clay_stained_"..name..".png"}, tiles = {"hardened_clay_stained_"..name..".png"},
groups = {cracky = 3,hardened_clay=1, buliding = 1}, groups = {cracky = 3,hardened_clay=1, buliding = 1},
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
if craft_color_group then if craft_color_group then
minetest.register_craft({ minetest.register_craft({
output = 'hardened_clay:'..name..' 8', output = 'hardened_clay:'..name..' 8',
recipe = { recipe = {
{'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'}, {'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'},
{'hardened_clay:hardened_clay', 'dye:'..craft_color_group, 'hardened_clay:hardened_clay'}, {'hardened_clay:hardened_clay', 'dye:'..craft_color_group, 'hardened_clay:hardened_clay'},
{'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'}, {'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'},
}, },
}) })
end end
end end

View File

@ -1,4 +1,4 @@
Minetest mod "Better HUD" MultiCraft game mod: Better HUD
========================= =========================
Version: 2.1.5 Version: 2.1.5

View File

@ -1,4 +1,4 @@
Minetest mod "Hunger" MultiCraft game mod: Hunger
===================== =====================
Version: 1.1.3 Version: 1.1.3

View File

@ -39,14 +39,15 @@ sfinv.override_page("sfinv:inventory", {
title = "Inventory", title = "Inventory",
get = function(self, player, context) get = function(self, player, context)
local form = [[ local form = [[
background[-0.19,-0.25;9.41,9.49;formspec_inventory.png] background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]
background[-0.2,-0.26;9.41,9.49;formspec_inventory_inventory.png]
image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]
listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF] listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]
list[current_player;craft;4,1;2,1;1] list[current_player;craft;4,1;2,1;1]
list[current_player;craft;4,2;2,1;4] list[current_player;craft;4,2;2,1;4]
list[current_player;craftpreview;7.05,1.54;1,1;] list[current_player;craftpreview;7.05,1.53;1,1;]
list[detached:split;main;7.99,3.15;1,1;] list[detached:split;main;8,3.14;1,1;]
image[1.5,0;2,4;default_player2d.png] image[1.5,0;2,4;default_player2d.png]
image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true]
]] ]]
if show_armor then if show_armor then
local player_name = player:get_player_name() local player_name = player:get_player_name()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -2,37 +2,37 @@
local tmp = {} local tmp = {}
minetest.register_entity("itemframes:item",{ minetest.register_entity("itemframes:item",{
hp_max = 1, hp_max = 1,
visual="wielditem", visual="wielditem",
visual_size={x=.33,y=.33}, visual_size={x=.33,y=.33},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
physical=false, physical=false,
textures={"air"}, textures={"air"},
on_activate = function(self, staticdata) on_activate = function(self, staticdata)
if tmp.nodename ~= nil and tmp.texture ~= nil then if tmp.nodename ~= nil and tmp.texture ~= nil then
self.nodename = tmp.nodename self.nodename = tmp.nodename
tmp.nodename = nil tmp.nodename = nil
self.texture = tmp.texture self.texture = tmp.texture
tmp.texture = nil tmp.texture = nil
else else
if staticdata ~= nil and staticdata ~= "" then if staticdata ~= nil and staticdata ~= "" then
local data = staticdata:split(';') local data = staticdata:split(';')
if data and data[1] and data[2] then if data and data[1] and data[2] then
self.nodename = data[1] self.nodename = data[1]
self.texture = data[2] self.texture = data[2]
end end
end end
end end
if self.texture ~= nil then if self.texture ~= nil then
self.object:set_properties({textures={self.texture}}) self.object:set_properties({textures={self.texture}})
end end
end, end,
get_staticdata = function(self) get_staticdata = function(self)
if self.nodename ~= nil and self.texture ~= nil then if self.nodename ~= nil and self.texture ~= nil then
return self.nodename .. ';' .. self.texture return self.nodename .. ';' .. self.texture
end end
return "" return ""
end, end,
}) })
@ -43,99 +43,99 @@ facedir[2] = {x=0,y=0,z=-1}
facedir[3] = {x=-1,y=0,z=0} facedir[3] = {x=-1,y=0,z=0}
local remove_item = function(pos, node) local remove_item = function(pos, node)
local objs = nil local objs = nil
if node.name == "itemframes:frame" then if node.name == "itemframes:frame" then
objs = minetest.get_objects_inside_radius(pos, .5) objs = minetest.get_objects_inside_radius(pos, .5)
end end
if objs then if objs then
for _, obj in ipairs(objs) do for _, obj in ipairs(objs) do
if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then
obj:remove() obj:remove()
end end
end end
end end
end end
local update_item = function(pos, node) local update_item = function(pos, node)
remove_item(pos, node) remove_item(pos, node)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if meta:get_string("item") ~= "" then if meta:get_string("item") ~= "" then
if node.name == "itemframes:frame" then if node.name == "itemframes:frame" then
local posad = facedir[node.param2] local posad = facedir[node.param2]
pos.x = pos.x + posad.x*6.5/16 pos.x = pos.x + posad.x*6.5/16
pos.y = pos.y + posad.y*6.5/16 pos.y = pos.y + posad.y*6.5/16
pos.z = pos.z + posad.z*6.5/16 pos.z = pos.z + posad.z*6.5/16
end end
tmp.nodename = node.name tmp.nodename = node.name
tmp.texture = ItemStack(meta:get_string("item")):get_name() tmp.texture = ItemStack(meta:get_string("item")):get_name()
local e = minetest.add_entity(pos,"itemframes:item") local e = minetest.add_entity(pos,"itemframes:item")
if node.name == "itemframes:frame" then if node.name == "itemframes:frame" then
local yaw = math.pi*2 - node.param2 * math.pi/2 local yaw = math.pi*2 - node.param2 * math.pi/2
e:setyaw(yaw) e:setyaw(yaw)
end end
end end
end end
local drop_item = function(pos, node) local drop_item = function(pos, node)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if meta:get_string("item") ~= "" then if meta:get_string("item") ~= "" then
if node.name == "itemframes:frame" then if node.name == "itemframes:frame" then
minetest.add_item(pos, meta:get_string("item")) minetest.add_item(pos, meta:get_string("item"))
end end
meta:set_string("item","") meta:set_string("item","")
end end
remove_item(pos, node) remove_item(pos, node)
end end
minetest.register_node("itemframes:frame",{ minetest.register_node("itemframes:frame",{
description = "Item frame", description = "Item frame",
drawtype = "nodebox", drawtype = "nodebox",
node_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} }, node_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} },
selection_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} }, selection_box = { type = "fixed", fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} },
inventory_image = "itemframes_frame.png", inventory_image = "itemframes_frame.png",
tiles = {"itemframe_background.png"}, tiles = {"itemframe_background.png"},
inventory_image = "itemframes_frame.png", inventory_image = "itemframes_frame.png",
wield_image = "itemframes_frame.png", wield_image = "itemframes_frame.png",
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
sunlight_propagates = true, sunlight_propagates = true,
groups = { choppy = 2,dig_immediate=2, decorative = 1 }, groups = { choppy = 2,dig_immediate=2, decorative = 1 },
legacy_wallmounted = true, legacy_wallmounted = true,
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
after_place_node = function(pos, placer, itemstack) after_place_node = function(pos, placer, itemstack)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("owner",placer:get_player_name()) meta:set_string("owner",placer:get_player_name())
meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")") meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")")
end, end,
on_rightclick = function(pos, node, clicker, itemstack) on_rightclick = function(pos, node, clicker, itemstack)
if not itemstack then return end if not itemstack then return end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if clicker:get_player_name() == meta:get_string("owner") then if clicker:get_player_name() == meta:get_string("owner") then
drop_item(pos,node) drop_item(pos,node)
local s = itemstack:take_item() local s = itemstack:take_item()
meta:set_string("item",s:to_string()) meta:set_string("item",s:to_string())
update_item(pos,node) update_item(pos,node)
end end
return itemstack return itemstack
end, end,
on_punch = function(pos,node,puncher) on_punch = function(pos,node,puncher)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
if puncher:get_player_name() == meta:get_string("owner") then if puncher:get_player_name() == meta:get_string("owner") then
drop_item(pos, node) drop_item(pos, node)
end end
end, end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
return player:get_player_name() == meta:get_string("owner") return player:get_player_name() == meta:get_string("owner")
end, end,
}) })
minetest.register_craft({ minetest.register_craft({
output = 'itemframes:frame', output = 'itemframes:frame',
recipe = { recipe = {
{'default:stick', 'default:stick', 'default:stick'}, {'default:stick', 'default:stick', 'default:stick'},
{'default:stick', 'default:paper', 'default:stick'}, {'default:stick', 'default:paper', 'default:stick'},
{'default:stick', 'default:stick', 'default:stick'}, {'default:stick', 'default:stick', 'default:stick'},
} }
}) })

View File

@ -22,6 +22,7 @@ mobs:register_mob("mobs_animal:bunny", {
walk_velocity = 1, walk_velocity = 1,
run_velocity = 2, run_velocity = 2,
runaway = true, runaway = true,
runaway_from = {"mobs_animal:pumba", "player"},
jump = true, jump = true,
jump_height = 6, jump_height = 6,
drops = { drops = {

View File

@ -25,11 +25,11 @@ mobs:register_mob("mobs_animal:cow", {
jump_height = 6, jump_height = 6,
pushable = true, pushable = true,
drops = { drops = {
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, {name = "mobs:meat_raw", chance = 1},
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1}, {name = "mobs:meat_raw", chance = 2},
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1}, {name = "mobs:meat_raw", chance = 2},
{name = "mobs:leather", chance = 2, min = 1, max = 1}, {name = "mobs:leather", chance = 2},
{name = "mobs:leather", chance = 2, min = 1, max = 1} {name = "mobs:leather", chance = 2}
}, },
water_damage = 0, water_damage = 0,
lava_damage = 5, lava_damage = 5,

View File

@ -19,9 +19,10 @@ local all_colours = {
-- Sheep by PilzAdam -- Sheep by PilzAdam
for _, col in pairs(all_colours) do for _, col in ipairs(all_colours) do
mobs:register_mob("mobs_animal:sheep_"..col[1], { mobs:register_mob("mobs_animal:sheep_"..col[1], {
stay_near = {"farming:straw", 10},
stepheight = 0.6, stepheight = 0.6,
type = "animal", type = "animal",
passive = true, passive = true,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -69,7 +69,7 @@ mobs:spawn({
max_height = 31000, max_height = 31000,
}) })
mobs:register_egg("mobs_monster:spider", "Spider", "mobs_cobweb.png", 1) mobs:register_egg("mobs_monster:spider", "Spider", "mobs_chicken_egg.png^mobs_cobweb.png", 1)
mobs:alias_mob("mobs:spider", "mobs_monster:spider") -- compatibility mobs:alias_mob("mobs:spider", "mobs_monster:spider") -- compatibility

View File

@ -5,7 +5,7 @@ local use_cmi = minetest.global_exists("cmi")
mobs = { mobs = {
mod = "redo", mod = "redo",
version = "20190402", version = "20190513",
invis = minetest.global_exists("invisibility") and invisibility or {}, invis = minetest.global_exists("invisibility") and invisibility or {},
} }
@ -104,6 +104,7 @@ local mob_class = {
jump = true, jump = true,
knock_back = true, knock_back = true,
walk_chance = 50, walk_chance = 50,
stand_chance = 30,
attack_chance = 5, attack_chance = 5,
passive = false, passive = false,
blood_amount = 5, blood_amount = 5,
@ -275,15 +276,15 @@ end
-- set defined animation -- set defined animation
function mob_class:set_animation(anim) function mob_class:set_animation(anim, force)
if not self.animation if not self.animation
or not anim then return end or not anim then return end
self.animation.current = self.animation.current or "" self.animation.current = self.animation.current or ""
-- only set different animation for attacks when setting to same set -- only set different animation for attacks when using same set
if anim ~= "punch" and anim ~= "shoot" if force ~= true and anim ~= "punch" and anim ~= "shoot"
and string.find(self.animation.current, anim) then and string.find(self.animation.current, anim) then
return return
end end
@ -327,7 +328,7 @@ end
-- check line of sight (BrunoMine) -- check line of sight (BrunoMine)
function mob_class:line_of_sight(pos1, pos2, stepsize) local line_of_sight = function(self, pos1, pos2, stepsize)
stepsize = stepsize or 1 stepsize = stepsize or 1
@ -398,7 +399,7 @@ end
-- check line of sight (by BrunoMine, tweaked by Astrobe) -- check line of sight (by BrunoMine, tweaked by Astrobe)
function mob_class:NEW_line_of_sight(pos1, pos2, stepsize) local new_line_of_sight = function(self, pos1, pos2, stepsize)
if not pos1 or not pos2 then return end if not pos1 or not pos2 then return end
@ -444,12 +445,49 @@ function mob_class:NEW_line_of_sight(pos1, pos2, stepsize)
return false return false
end end
-- check line of sight using raycasting (thanks Astrobe)
local ray_line_of_sight = function(self, pos1, pos2)
local ray = minetest.raycast(pos1, pos2, true, false)
local thing = ray:next()
while thing do
if thing.type == "object"
and thing.ref ~= self.object
and not thing.ref:is_player() then return false end
if thing.type == "node" then
local name = minetest.get_node(thing.under).name
if minetest.registered_items[name].walkable then return false end
end
thing = ray:next()
end
return true
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)
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)
end
-- global function -- global function
function mobs:line_of_sight(entity, pos1, pos2, stepsize) function mobs:line_of_sight(entity, pos1, pos2, stepsize)
return entity:line_of_sight(pos1, pos2, stepsize)
return mob_class.line_of_sight(entity, pos1, pos2, stepsize)
end end
function mob_class:attempt_flight_correction() function mob_class:attempt_flight_correction()
if self:flight_check() then return true end if self:flight_check() then return true end
@ -464,8 +502,8 @@ function mob_class:attempt_flight_correction()
end end
local flyable_nodes = minetest.find_nodes_in_area( local flyable_nodes = minetest.find_nodes_in_area(
{x = pos.x - r, y = pos.y - r, z = pos.z - r}, {x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
{x = pos.x + r, y = pos.y + r, z = pos.z + r}, {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1},
searchnodes) searchnodes)
if #flyable_nodes < 1 then if #flyable_nodes < 1 then
@ -481,6 +519,7 @@ function mob_class:attempt_flight_correction()
return true return true
end end
-- are we flying in what we are suppose to? (taikedz) -- are we flying in what we are suppose to? (taikedz)
function mob_class:flight_check() function mob_class:flight_check()
@ -1573,7 +1612,7 @@ function mob_class:smart_mobs(s, p, dist, dtime)
self.path.stuck_timer = stuck_timeout - 2 self.path.stuck_timer = stuck_timeout - 2
-- frustration! cant find the damn path :( -- frustration! cant find the damn path :(
self:mob_sound(self.sounds.random) --self:mob_sound(self.sounds.random)
else else
-- yay i found path -- yay i found path
self:mob_sound(self.sounds.war_cry) self:mob_sound(self.sounds.war_cry)
@ -2068,11 +2107,11 @@ function mob_class:do_states(dtime)
if self.facing_fence == true if self.facing_fence == true
or temp_is_cliff or temp_is_cliff
or random(1, 100) <= 30 then or random(1, 100) <= self.stand_chance then
self:set_velocity(0) self:set_velocity(0)
self.state = "stand" self.state = "stand"
self:set_animation("stand") self:set_animation("stand", true)
else else
self:set_velocity(self.walk_velocity) self:set_velocity(self.walk_velocity)
@ -2231,7 +2270,7 @@ function mob_class:do_states(dtime)
minetest.sound_play(self.sounds.explode, { minetest.sound_play(self.sounds.explode, {
pos = pos, pos = pos,
gain = 1.0, gain = 1.0,
max_hear_distance = self.sounds.distance or 16 max_hear_distance = self.sounds.distance or 32
}) })
entity_physics(pos, entity_damage_radius) entity_physics(pos, entity_damage_radius)
@ -3272,11 +3311,12 @@ minetest.register_entity(name, setmetatable({
follow = def.follow, follow = def.follow,
jump = def.jump, jump = def.jump,
walk_chance = def.walk_chance, walk_chance = def.walk_chance,
stand_chance = def.stand_chance,
attack_chance = def.attack_chance, attack_chance = def.attack_chance,
passive = def.passive, passive = def.passive,
knock_back = def.knock_back, knock_back = def.knock_back,
blood_amount = def.blood_amount or 5, blood_amount = def.blood_amount,
blood_texture = def.blood_texture or "mobs_blood.png", blood_texture = def.blood_texture,
shoot_offset = def.shoot_offset, shoot_offset = def.shoot_offset,
floats = def.floats, floats = def.floats,
replace_rate = def.replace_rate, replace_rate = def.replace_rate,
@ -3728,14 +3768,14 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
local invimg = background local invimg = background
if addegg == 1 then if addegg == 1 then
invimg = "mobs_chicken_egg.png^(" .. invimg .. invimg = "(" .. invimg ..
"^[mask:mobs_chicken_egg_overlay.png)" "^[mask:mobs_egg_overlay.png)"
end end
-- register new spawn egg containing mob information -- register new spawn egg containing mob information
minetest.register_craftitem(mob .. "_set", { minetest.register_craftitem(mob .. "_set", {
description = "@1 (Tamed)", desc, description = desc.." (Tamed)",
inventory_image = invimg, inventory_image = invimg,
groups = {spawn_egg = 2, not_in_creative_inventory = 1}, groups = {spawn_egg = 2, not_in_creative_inventory = 1},
stack_max = 1, stack_max = 1,
@ -3905,7 +3945,7 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
if self.owner ~= name if self.owner ~= name
and force_take == false then and force_take == false then
minetest.chat_send_player(name, "@1 is owner!", self.owner) minetest.chat_send_player(name, self.owner.." is owner!")
return false return false
end end
@ -4063,8 +4103,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
if self.htimer < 1 then if self.htimer < 1 then
minetest.chat_send_player(clicker:get_player_name(), minetest.chat_send_player(clicker:get_player_name(),
"@1 at full health (@2)", self.name:split(":")[2]
self.name:split(":")[2], tostring(self.health)) .. " at full health (" .. tostring(self.health) .. ")")
self.htimer = 5 self.htimer = 5
end end
@ -4097,8 +4137,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
if self.tamed == false then if self.tamed == false then
minetest.chat_send_player(clicker:get_player_name(), minetest.chat_send_player(clicker:get_player_name(),
"@1 has been tamed!", self.name:split(":")[2]
self.name:split(":")[2]) .. " has been tamed!")
end end
self.tamed = true self.tamed = true
@ -4132,7 +4172,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
minetest.show_formspec(name, "mobs_nametag", "size[8,4]" minetest.show_formspec(name, "mobs_nametag", "size[8,4]"
.. "field[0.5,1;7.5,0;name;" .. "field[0.5,1;7.5,0;name;"
.. minetest.formspec_escape("Enter name:") .. ";" .. tag .. "]" .. minetest.formspec_escape("Enter name:") .. ";" .. tag .. "]"
.. "button_exit[2.5,3.5;3,1;mob_rename;" .. "button_exit[2.5,3.5;3,1;mob_rename;"
.. minetest.formspec_escape("Rename") .. "]") .. minetest.formspec_escape("Rename") .. "]")
end end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: player -- MultiCraft game mod: player
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
player_api = {} player_api = {}

View File

@ -1,7 +1,9 @@
PlayerPlus mod for minetest MultiCraft game mod: PlayerPlus
Removed POVA, monoids support, knock-back, glitch.
This mod lets the player move faster when walking on ice, slows down the player This mod lets the player move faster when walking on ice, slows down the player
when walking on snow or in water, and makes touching a cactus hurt... enjoy! when walking on snow, makes touching a cactus hurt and suffocates player when
their head is inside a solid node... enjoy!
https://forum.minetest.net/viewtopic.php?t=10090&p=153667 https://forum.minetest.net/viewtopic.php?t=10090&p=153667
@ -12,7 +14,12 @@ https://forum.minetest.net/viewtopic.php?t=10090&p=153667
- 0.5 - Slow down when walking in water - 0.5 - Slow down when walking in water
- 0.6 - Code tidy and tweak, increased damage by cactus and suffocation - 0.6 - Code tidy and tweak, increased damage by cactus and suffocation
- 0.7 - Added global 'playerplus' table to hold node names gathered around player - 0.7 - Added global 'playerplus' table to hold node names gathered around player
- 0.8 - Player knock-back added
- 0.9 - 'on_walk_over' function support added for nodes
- 1.0 - Update to newer functions, requires Minetest 0.4.16 and above to run
- 1.1 - Added support for player_monoids mod (thanks tacotexmex)
- 1.2 - Added POVA support, tweaked code slightly
- 1.3 - Add setting under Advances to enable older sneak glitch movement
API: API:

View File

@ -2,7 +2,7 @@
walking on ice makes player walk faster, walking on ice makes player walk faster,
stepping through snow or water slows player down, stepping through snow or water slows player down,
touching a cactus hurts player, touching a cactus hurts player,
and if head stuck inside a solid node suffocates player. and suffocation when head is inside solid node,.
PlayerPlus by TenPlus1 PlayerPlus by TenPlus1
]] ]]
@ -25,7 +25,7 @@ end
local armor_mod = minetest.get_modpath("3d_armor") local armor_mod = minetest.get_modpath("3d_armor")
local def = {} --local def = {}
local time = 0 local time = 0
@ -82,18 +82,42 @@ minetest.register_globalstep(function(dtime)
end end
-- are we standing on any nodes that speed player up? -- are we standing on any nodes that speed player up?
--nfast = nil nfast = nil
if playerplus[name].nod_stand == "default:ice" then if playerplus[name].nod_stand == "default:ice" then
def.speed = def.speed + 0.4 nfast = true
end end
-- are we standing on any nodes that slow player down? -- are we standing on any nodes that slow player down?
--nslow = nil nslow = nil
if playerplus[name].nod_stand == "default:snow" if playerplus[name].nod_stand == "default:snow"
or playerplus[name].nod_stand == "default:snowblock" or playerplus[name].nod_stand == "default:snowblock"
-- wading in water? if so walk slower -- The probable cause of the bug when swimming under water on the server!
or minetest.registered_nodes[ playerplus[name].nod_feet ].groups.water then or minetest.registered_nodes[ playerplus[name].nod_feet ].groups.water then
nslow = true
end
-- apply speed changes
if nfast and not playerplus[name].nfast then
def.speed = def.speed + 0.4
playerplus[name].nfast = true
elseif not nfast and playerplus[name].nfast then
def.speed = def.speed - 0.4 def.speed = def.speed - 0.4
playerplus[name].nfast = nil
end
-- apply slowdown changes
if nslow and not playerplus[name].nslow then
def.speed = def.speed - 0.3
playerplus[name].nslow = true
elseif not nslow and playerplus[name].nslow then
def.speed = def.speed + 0.3
playerplus[name].nslow = nil
end end
-- set player physics -- set player physics

View File

@ -4,6 +4,7 @@ sfinv = {
contexts = {}, contexts = {},
enabled = true, enabled = true,
gui_bg = "bgcolor[#08080880;true]", gui_bg = "bgcolor[#08080880;true]",
listcolors = "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]",
gui_bg_img = "", gui_bg_img = "",
gui_slots = "", gui_slots = "",
} }

View File

@ -75,12 +75,12 @@ local function check_text(pos, wall)
if text and text ~= "" then if text and text ~= "" then
local found = false local found = false
for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do
local ent = obj:get_luaentity() local ent = obj:get_luaentity()
if ent and ent.name == "signs:sign_text" then if ent and ent.name == "signs:sign_text" then
found = true found = true
break break
end end
end end
if not found then if not found then
local p2 = minetest.get_node(pos).param2 local p2 = minetest.get_node(pos).param2
if not p2 or p2 > 3 or p2 < 0 then return end if not p2 or p2 > 3 or p2 < 0 then return end
@ -104,21 +104,21 @@ local function check_text(pos, wall)
end end
minetest.register_lbm({ minetest.register_lbm({
label = "Check for sign text", label = "Check for sign text",
name = "signs:sign_text", name = "signs:sign_text",
nodenames = {"signs:sign"}, nodenames = {"signs:sign"},
run_at_every_load = true, run_at_every_load = true,
action = function(pos, node) action = function(pos, node)
check_text(pos, false) check_text(pos, false)
end, end,
}) })
minetest.register_lbm({ minetest.register_lbm({
label = "Check for sign text (Wall)", label = "Check for sign text (Wall)",
name = "signs:wall_sign_text", name = "signs:wall_sign_text",
nodenames = {"signs:wall_sign"}, nodenames = {"signs:wall_sign"},
run_at_every_load = true, run_at_every_load = true,
action = function(pos, node) action = function(pos, node)
check_text(pos, true) check_text(pos, true)
end, end,
}) })
@ -213,7 +213,7 @@ minetest.register_node("signs:wall_sign", {
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
node_box = { node_box = {
type = "wallmounted", type = "wallmounted",
wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375},
}, },
@ -232,8 +232,8 @@ minetest.register_node("signs:wall_sign", {
end end
end, end,
on_punch = function(pos) on_punch = function(pos)
check_text(pos, true) check_text(pos, true)
end, end,
on_receive_fields = function(pos, formname, fields, sender) on_receive_fields = function(pos, formname, fields, sender)
if not fields.text then if not fields.text then
return return

View File

@ -487,7 +487,8 @@ stairs.register_all("steelblock", "default:steelblock",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
{"default_steel_block.png"}, {"default_steel_block.png"},
"Steel", "Steel",
stairs.stone) stairs.metal)
minetest.register_alias("stairs:steel", "stairs:steelblock") minetest.register_alias("stairs:steel", "stairs:steelblock")
@ -498,6 +499,7 @@ stairs.register_all("goldblock", "default:goldblock",
stairs.metal) stairs.metal)
minetest.register_alias("stairs:gold", "stairs:goldblock") minetest.register_alias("stairs:gold", "stairs:goldblock")
minetest.register_alias("stairs:corner_gold", "stairs:goldblock")
stairs.register_all("diamondblock", "default:diamondblock", stairs.register_all("diamondblock", "default:diamondblock",
{cracky = 1, level=3}, {cracky = 1, level=3},
@ -541,12 +543,6 @@ stairs.register_all("ice", "default:ice",
default.node_sound_glass_defaults()) default.node_sound_glass_defaults())
stairs.register_all("glass", "default:glass",
{cracky = 3, oddly_breakable_by_hand = 3},
{"default_glass.png"},
"Glass",
stairs.glass)
local colours = { local colours = {
{"black", "Black", "#000000b0"}, {"black", "Black", "#000000b0"},
{"blue", "Blue", "#015dbb70"}, {"blue", "Blue", "#015dbb70"},

View File

@ -1,23 +1,16 @@
=== THROWING-MOD for multicraft-C55 === MultiCraft game mod: throwing
by PilzAdam by PilzAdam
Inroduction: Inroduction:
This mod adds bows and arrows to minetest. This mod adds bows and arrows to Minetest.
How to install:
Unzip the archive an place it in multicraft-base-directory/mods/multicraft/
if you have a windows client or a linux run-in-place client. If you have
a linux system-wide instalation place it in ~/.multicraft/mods/multicraft/.
If you want to install this mod only in one world create the folder
worldmods/ in your worlddirectory.
For further information or help see:
http://wiki.minetest.com/wiki/Installing_Mods
How to use the mod: How to use the mod:
Craft a bow with the strings from the farming mod: Craft a bow with the strings from the farming mod:
wood string stick string
wood string stick string
wood string stick string
Craft arrows with: Craft arrows with:
flint flint
stick stick

View File

@ -1,7 +1,6 @@
minetest.register_craftitem("throwing:arrow", { minetest.register_craftitem("throwing:arrow", {
description = "Arrow", description = "Arrow",
inventory_image = "throwing_arrow_inv.png", inventory_image = "throwing_arrow_inv.png",
groups = {combat = 1},
}) })
minetest.register_node("throwing:arrow_box", { minetest.register_node("throwing:arrow_box", {
@ -34,9 +33,8 @@ local THROWING_ARROW_ENTITY={
physical = false, physical = false,
timer=0, timer=0,
visual = "wielditem", visual = "wielditem",
visual_size = {x=0.4, y=0.4}, visual_size = {x=0.3, y=0.3},
--textures = {"throwing:arrow_box"}, textures = {"throwing:arrow_box"},
textures = {"throwing_arrow_back.png"},
lastpos={}, lastpos={},
collisionbox = {0,0,0,0,0,0}, collisionbox = {0,0,0,0,0,0},
} }

View File

@ -1,15 +1,15 @@
dofile(minetest.get_modpath("throwing").."/arrow.lua")
arrows = { arrows = {
{"throwing:arrow", "throwing:arrow_entity"}, {"throwing:arrow", "throwing:arrow_entity"},
} }
local creative = minetest.settings:get_bool("creative_mode")
local throwing_shoot_arrow = function(itemstack, player) local throwing_shoot_arrow = function(itemstack, player)
for _,arrow in ipairs(arrows) do for _,arrow in ipairs(arrows) do
if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then
if not creative then
player:get_inventory():remove_item("main", arrow[1]) player:get_inventory():remove_item("main", arrow[1])
end
local playerpos = player:get_pos() local playerpos = player:get_pos()
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2]) local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2])
local dir = player:get_look_dir() local dir = player:get_look_dir()
@ -31,7 +31,6 @@ minetest.register_tool("throwing:bow", {
description = "Bow", description = "Bow",
inventory_image = "throwing_bow.png", inventory_image = "throwing_bow.png",
stack_max = 1, stack_max = 1,
groups = {combat = 1},
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
wear = itemstack:get_wear() wear = itemstack:get_wear()
itemstack:replace("throwing:bow_0") itemstack:replace("throwing:bow_0")
@ -42,7 +41,7 @@ minetest.register_tool("throwing:bow", {
wear = itemstack:get_wear() wear = itemstack:get_wear()
itemstack:add_wear(wear) itemstack:add_wear(wear)
if throwing_shoot_arrow(itemstack, user, pointed_thing) then if throwing_shoot_arrow(itemstack, user, pointed_thing) then
if not minetest.setting_getbool("creative_mode") then if not creative then
itemstack:add_wear(65535/385) itemstack:add_wear(65535/385)
end end
end end
@ -65,7 +64,7 @@ minetest.register_tool("throwing:bow_0", {
wear = itemstack:get_wear() wear = itemstack:get_wear()
itemstack:add_wear(wear) itemstack:add_wear(wear)
if throwing_shoot_arrow(itemstack, user, pointed_thing) then if throwing_shoot_arrow(itemstack, user, pointed_thing) then
if not minetest.setting_getbool("creative_mode") then if not creative then
itemstack:add_wear(65535/385) itemstack:add_wear(65535/385)
end end
end end
@ -88,7 +87,7 @@ minetest.register_tool("throwing:bow_1", {
wear = itemstack:get_wear() wear = itemstack:get_wear()
itemstack:add_wear(wear) itemstack:add_wear(wear)
if throwing_shoot_arrow(itemstack, user, pointed_thing) then if throwing_shoot_arrow(itemstack, user, pointed_thing) then
if not minetest.setting_getbool("creative_mode") then if not creative then
itemstack:add_wear(65535/385) itemstack:add_wear(65535/385)
end end
end end
@ -106,7 +105,7 @@ minetest.register_tool("throwing:bow_2", {
itemstack:replace("throwing:bow") itemstack:replace("throwing:bow")
itemstack:add_wear(wear) itemstack:add_wear(wear)
if throwing_shoot_arrow(itemstack, user, pointed_thing) then if throwing_shoot_arrow(itemstack, user, pointed_thing) then
if not minetest.setting_getbool("creative_mode") then if not creative then
itemstack:add_wear(65535/385) itemstack:add_wear(65535/385)
end end
end end
@ -123,3 +122,4 @@ minetest.register_craft({
} }
}) })
dofile(minetest.get_modpath("throwing").."/arrow.lua")

View File

@ -1,359 +0,0 @@
xof 0303txt 0032
Frame Root {
FrameTransformMatrix {
1.000000, 0.000000, 0.000000, 0.000000,
0.000000,-0.000000, 1.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 1.000000;;
}
Frame Cube {
FrameTransformMatrix {
0.056399, 0.000000, 0.000000, 0.000000,
0.000000, 0.056399, 0.000000, 0.000000,
0.000000, 0.000000, 0.056399, 0.000000,
0.000000, 0.000000, 0.000000, 1.000000;;
}
Mesh { // Cube mesh
104;
-1.000000; 0.314103;-1.000000;,
-1.000000;-0.314103;-1.000000;,
-1.000000;-0.242418;-0.242418;,
-1.000000; 0.242418;-0.242418;,
-1.000000;-0.242418; 0.242418;,
-1.000000; 0.242418; 0.242418;,
-16.233685; 0.242418; 0.242418;,
-16.233686;-0.242418; 0.242418;,
-1.000000; 0.314103; 1.000000;,
-1.000000; 0.314103;-1.000000;,
-1.000000; 0.242418;-0.242418;,
-1.000000; 0.242418; 0.242418;,
-1.000000;-0.314103; 1.000000;,
-1.000000; 0.314103; 1.000000;,
-1.000000; 0.242418; 0.242418;,
-1.000000;-0.242418; 0.242418;,
-1.000000;-0.314103;-1.000000;,
-1.000000;-0.314103; 1.000000;,
-1.000000;-0.242418; 0.242418;,
-1.000000;-0.242418;-0.242418;,
-16.233685; 0.242418;-0.242418;,
-16.233685;-0.242418;-0.242418;,
-16.233685;-0.289522;-0.521628;,
-16.233685; 0.289522;-0.521628;,
-1.000000; 0.242418; 0.242418;,
-1.000000; 0.242418;-0.242418;,
-16.233685; 0.242418;-0.242418;,
-16.233685; 0.242418; 0.242418;,
-1.000000;-0.242418;-0.242418;,
-1.000000;-0.242418; 0.242418;,
-16.233686;-0.242418; 0.242418;,
-16.233685;-0.242418;-0.242418;,
-1.000000; 0.242418;-0.242418;,
-1.000000;-0.242418;-0.242418;,
-16.233685;-0.242418;-0.242418;,
-16.233685; 0.242418;-0.242418;,
-16.233686;-0.242418; 0.242418;,
-16.233685; 0.242418; 0.242418;,
-16.233685; 0.289522; 0.521628;,
-16.233688;-0.289522; 0.521628;,
-16.233685; 0.242418; 0.242418;,
-16.233685; 0.242418;-0.242418;,
-16.233685; 0.289522;-0.521628;,
-16.233685; 0.289522; 0.521628;,
-16.233685;-0.242418;-0.242418;,
-16.233686;-0.242418; 0.242418;,
-16.233688;-0.289522; 0.521628;,
-16.233685;-0.289522;-0.521628;,
-16.233685; 0.289522; 0.521628;,
-16.233685; 0.289522;-0.521628;,
-17.729048; 0.000000;-0.768652;,
-17.729050; 0.000000; 0.768652;,
-16.233685;-0.289522;-0.521628;,
-16.233688;-0.289522; 0.521628;,
-17.729050; 0.000000; 0.768652;,
-17.729048; 0.000000;-0.768652;,
-16.233688;-0.289522; 0.521628;,
-16.233685; 0.289522; 0.521628;,
-17.729050; 0.000000; 0.768652;,
-16.233685; 0.289522;-0.521628;,
-16.233685;-0.289522;-0.521628;,
-17.729048; 0.000000;-0.768652;,
-16.233685; 0.242418; 0.242418;,
-16.233685; 0.242418;-0.242418;,
-16.233685; 0.521628;-0.289522;,
-16.233685; 0.521628; 0.289522;,
-16.233686;-0.242418;-0.242418;,
-16.233685;-0.242418; 0.242418;,
-16.233685;-0.521628; 0.289522;,
-16.233688;-0.521628;-0.289522;,
-16.233685;-0.242418; 0.242418;,
-16.233685; 0.242418; 0.242418;,
-16.233685; 0.521628; 0.289522;,
-16.233685;-0.521628; 0.289522;,
-16.233685; 0.242418;-0.242418;,
-16.233686;-0.242418;-0.242418;,
-16.233688;-0.521628;-0.289522;,
-16.233685; 0.521628;-0.289522;,
-16.233685;-0.521628; 0.289522;,
-16.233685; 0.521628; 0.289522;,
-17.729048; 0.768652; 0.000000;,
-17.729050;-0.768652;-0.000000;,
-16.233685; 0.521628;-0.289522;,
-16.233688;-0.521628;-0.289522;,
-17.729050;-0.768652;-0.000000;,
-17.729048; 0.768652; 0.000000;,
-16.233688;-0.521628;-0.289522;,
-16.233685;-0.521628; 0.289522;,
-17.729050;-0.768652;-0.000000;,
-16.233685; 0.521628; 0.289522;,
-16.233685; 0.521628;-0.289522;,
-17.729048; 0.768652; 0.000000;,
1.000000;-0.000000; 0.000000;,
-1.000000;-0.314103;-1.000000;,
-1.000000; 0.314103;-1.000000;,
1.000000;-0.000000; 0.000000;,
-1.000000; 0.314103; 1.000000;,
-1.000000;-0.314103; 1.000000;,
1.000000;-0.000000; 0.000000;,
-1.000000;-0.314103; 1.000000;,
-1.000000;-0.314103;-1.000000;,
1.000000;-0.000000; 0.000000;,
-1.000000; 0.314103;-1.000000;,
-1.000000; 0.314103; 1.000000;;
28;
4;3,2,1,0;,
4;7,6,5,4;,
4;11,10,9,8;,
4;15,14,13,12;,
4;19,18,17,16;,
4;23,22,21,20;,
4;27,26,25,24;,
4;31,30,29,28;,
4;35,34,33,32;,
4;39,38,37,36;,
4;43,42,41,40;,
4;47,46,45,44;,
4;51,50,49,48;,
4;55,54,53,52;,
3;58,57,56;,
3;61,60,59;,
4;65,64,63,62;,
4;69,68,67,66;,
4;73,72,71,70;,
4;77,76,75,74;,
4;81,80,79,78;,
4;85,84,83,82;,
3;88,87,86;,
3;91,90,89;,
3;94,93,92;,
3;97,96,95;,
3;100,99,98;,
3;103,102,101;;
MeshNormals { // Cube normals
28;
-1.000000; 0.000001;-0.000000;,
-0.000000; 0.000000; 1.000000;,
-1.000000; 0.000002;-0.000000;,
-1.000000; 0.000000;-0.000000;,
-1.000000; 0.000002;-0.000000;,
1.000000; 0.000000;-0.000000;,
0.000000; 1.000000; 0.000000;,
0.000000;-1.000000; 0.000000;,
0.000000; 0.000000;-1.000000;,
1.000000;-0.000005; 0.000003;,
1.000000; 0.000000; 0.000000;,
1.000000;-0.000020; 0.000004;,
-0.190083; 0.981768;-0.000000;,
-0.190083;-0.981768;-0.000000;,
0.162984;-0.000001; 0.986629;,
0.162984; 0.000000;-0.986629;,
1.000000; 0.000000; 0.000000;,
1.000000;-0.000003;-0.000005;,
1.000000; 0.000000; 0.000000;,
1.000000;-0.000004;-0.000020;,
-0.190083; 0.000000; 0.981768;,
-0.190083; 0.000000;-0.981768;,
0.162984;-0.986629;-0.000001;,
0.162984; 0.986629; 0.000000;,
0.447214;-0.000000;-0.894427;,
0.447214;-0.000000; 0.894427;,
0.155150;-0.987891; 0.000000;,
0.155150; 0.987891; 0.000000;;
28;
4;0,0,0,0;,
4;1,1,1,1;,
4;2,2,2,2;,
4;3,3,3,3;,
4;4,4,4,4;,
4;5,5,5,5;,
4;6,6,6,6;,
4;7,7,7,7;,
4;8,8,8,8;,
4;9,9,9,9;,
4;10,10,10,10;,
4;11,11,11,11;,
4;12,12,12,12;,
4;13,13,13,13;,
3;14,14,14;,
3;15,15,15;,
4;16,16,16,16;,
4;17,17,17,17;,
4;18,18,18,18;,
4;19,19,19,19;,
4;20,20,20,20;,
4;21,21,21,21;,
3;22,22,22;,
3;23,23,23;,
3;24,24,24;,
3;25,25,25;,
3;26,26,26;,
3;27,27,27;;
} // End of Cube normals
MeshTextureCoords { // Cube UV coordinates
104;
0.369363; 0.189428;,
0.319790; 0.189428;,
0.325447; 0.129647;,
0.363706; 0.129647;,
1.000000; 0.531250;,
1.000000; 0.500000;,
0.000000; 0.500000;,
0.000000; 0.531250;,
0.369363; 0.031606;,
0.369363; 0.189428;,
0.363706; 0.129647;,
0.363706; 0.091387;,
0.319790; 0.031606;,
0.369363; 0.031606;,
0.363706; 0.091387;,
0.325447; 0.091387;,
0.319790; 0.189428;,
0.319790; 0.031606;,
0.325447; 0.091387;,
0.325447; 0.129647;,
0.129567; 0.130972;,
0.087434; 0.130972;,
0.083340; 0.155236;,
0.133660; 0.155236;,
1.000000; 0.531250;,
1.000000; 0.500000;,
0.000000; 0.500000;,
0.000000; 0.531250;,
1.000000; 0.500000;,
1.000000; 0.468750;,
0.000000; 0.468750;,
0.000000; 0.500000;,
1.000000; 0.500000;,
1.000000; 0.531250;,
0.000000; 0.531250;,
0.000000; 0.500000;,
0.087434; 0.088839;,
0.129567; 0.088839;,
0.133660; 0.064576;,
0.083340; 0.064576;,
0.129567; 0.088839;,
0.129567; 0.130972;,
0.133660; 0.155236;,
0.133660; 0.064576;,
0.087434; 0.130972;,
0.087434; 0.088839;,
0.083340; 0.064576;,
0.083340; 0.155236;,
0.133660; 0.064576;,
0.133660; 0.155236;,
0.108500; 0.176703;,
0.108500; 0.043109;,
0.083340; 0.155236;,
0.083340; 0.064576;,
0.108500; 0.043109;,
0.108500; 0.176703;,
0.083340; 0.064576;,
0.133660; 0.064576;,
0.108500; 0.043109;,
0.133660; 0.155236;,
0.083340; 0.155236;,
0.108500; 0.176703;,
0.129567; 0.088839;,
0.129567; 0.130972;,
0.153830; 0.135065;,
0.153830; 0.084746;,
0.087434; 0.130972;,
0.087434; 0.088839;,
0.063170; 0.084746;,
0.063170; 0.135065;,
0.087434; 0.088839;,
0.129567; 0.088839;,
0.153830; 0.084746;,
0.063170; 0.084746;,
0.129567; 0.130972;,
0.087434; 0.130972;,
0.063170; 0.135065;,
0.153830; 0.135065;,
0.063170; 0.084746;,
0.153830; 0.084746;,
0.175297; 0.109906;,
0.041704; 0.109906;,
0.153830; 0.135065;,
0.063170; 0.135065;,
0.041704; 0.109906;,
0.175297; 0.109906;,
0.063170; 0.135065;,
0.063170; 0.084746;,
0.041704; 0.109906;,
0.153830; 0.084746;,
0.153830; 0.135065;,
0.175297; 0.109906;,
0.490842; 0.110144;,
0.317628; 0.180029;,
0.317709; 0.182778;,
0.490842; 0.110144;,
0.316335; 0.034761;,
0.314880; 0.036135;,
0.495482; 0.109968;,
0.312500; 0.031250;,
0.312500; 0.187500;,
0.495482; 0.109968;,
0.312500; 0.187500;,
0.312500; 0.031250;;
} // End of Cube UV coordinates
MeshMaterialList { // Cube material list
1;
28;
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0;;
Material Material {
0.640000; 0.640000; 0.640000; 1.000000;;
96.078431;
0.500000; 0.500000; 0.500000;;
0.000000; 0.000000; 0.000000;;
}
} // End of Cube material list
} // End of Cube mesh
} // End of Cube
} // End of Root

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

View File

@ -1,4 +1,4 @@
MultiCraft mod: wool MultiCraft game mod: wool
======================= =======================
See license.txt for license information. See license.txt for license information.
Authors of source code Authors of source code

View File

@ -124,19 +124,19 @@ local formspecs = {
image[0,1.52;1,1;workbench_anvil.png] image[0,1.52;1,1;workbench_anvil.png]
list[context;tool;1.195,1.505;1,1;] list[context;tool;1.195,1.505;1,1;]
image[4.04,1.55;1,1;hammer_layout.png] image[4.04,1.55;1,1;hammer_layout.png]
list[context;hammer;4.065,1.505;1,1;] ]], list[context;hammer;4.06,1.50;1,1;] ]],
} }
local split_inv = minetest.create_detached_inventory("split", { local split_inv = minetest.create_detached_inventory("split", {
allow_move = function(_, _, _, _, _, count, _) allow_move = function(_, _, _, _, _, count, _)
return count return count
end, end,
allow_put = function(_, _, _, stack, _) allow_put = function(_, _, _, stack, _)
return stack:get_count() / 2 return stack:get_count() / 2
end, end,
allow_take = function(_, _, _, stack, _) allow_take = function(_, _, _, stack, _)
return stack:get_count() return stack:get_count()
end, end,
}) })
split_inv:set_size("main", 1) split_inv:set_size("main", 1)
@ -170,10 +170,10 @@ end
function workbench:set_formspec(meta, id) function workbench:set_formspec(meta, id)
meta:set_string("formspec", "size[9,8.75;]".. meta:set_string("formspec", "size[9,8.75;]"..
"bgcolor[#08080880;true]" .. "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]" ..
"background[-0.2,-0.26;9.41,9.49;formspec_workbench.png]" .. sfinv.gui_bg..
sfinv.listcolors..
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]" .. "image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]" ..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]" ..
"list[detached:split;main;8,3.14;1,1;]".. "list[detached:split;main;8,3.14;1,1;]"..
"list[current_player;main;0.01,4.51;9,3;9]".. "list[current_player;main;0.01,4.51;9,3;9]"..
"list[current_player;main;0.01,7.75;9,1;]".. "list[current_player;main;0.01,7.75;9,1;]"..

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 258 B