Spaces=>Tabs, 3dmushrooms (thank @VanessaE), update mobs, player_api, minor fixes and improvements
|
@ -6,35 +6,35 @@ dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor.lua")
|
|||
minetest.register_tool("3d_armor:helmet_leather", {
|
||||
description = "Leather Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_steel", {
|
||||
description = "Steel Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_gold", {
|
||||
description = "Golden Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_diamond",{
|
||||
description = "Diamond Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_chain", {
|
||||
description = "Chain Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
|
@ -43,35 +43,35 @@ minetest.register_tool("3d_armor:helmet_chain", {
|
|||
minetest.register_tool("3d_armor:chestplate_leather", {
|
||||
description = "Leather Chestplate",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_steel", {
|
||||
description = "Steel Chestplate",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_gold", {
|
||||
description = "Golden Chestplate",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_diamond",{
|
||||
description = "Diamond Chestplate",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_chain", {
|
||||
description = "Chain Chestplate",
|
||||
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,
|
||||
})
|
||||
|
||||
|
@ -80,35 +80,35 @@ minetest.register_tool("3d_armor:chestplate_chain", {
|
|||
minetest.register_tool("3d_armor:leggings_leather", {
|
||||
description = "Leather Leggings",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_steel", {
|
||||
description = "Steel Leggings",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_gold", {
|
||||
description = "Golden Leggings",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_diamond",{
|
||||
description = "Diamond Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_chain", {
|
||||
description = "Chain Leggings",
|
||||
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,
|
||||
})
|
||||
-- Regisiter Boots
|
||||
|
@ -116,35 +116,35 @@ minetest.register_tool("3d_armor:leggings_chain", {
|
|||
minetest.register_tool("3d_armor:boots_leather", {
|
||||
description = "Leather Boots",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_steel", {
|
||||
description = "Steel Boots",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_gold", {
|
||||
description = "Golden Boots",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_diamond",{
|
||||
description = "Diamond Helmet",
|
||||
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,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_chain", {
|
||||
description = "Chain Boots",
|
||||
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,
|
||||
})
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
MultiCraft mod: beds
|
||||
MultiCraft game mod: beds
|
||||
=======================
|
||||
See license.txt for license information.
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ local torch_get_input_rules = function(node)
|
|||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"mesecons_torch:mesecon_torch_on" 4',
|
||||
output = "mesecons_torch:mesecon_torch_on 4",
|
||||
recipe = {
|
||||
{"default:bluestone_dust"},
|
||||
{"default:stick"},}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
MultiCraft mod: boats
|
||||
MultiCraft game mod: boats
|
||||
========================
|
||||
See license.txt for license information.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
MultiCraft mod: bucket
|
||||
MultiCraft game mod: bucket
|
||||
=========================
|
||||
|
||||
License of source code:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
-- MultiCraft mod: bucket
|
||||
-- MultiCraft game mod: bucket
|
||||
-- See README.txt for licensing and other information.
|
||||
|
||||
minetest.register_alias("bucket", "bucket:bucket_empty")
|
||||
|
@ -30,15 +30,15 @@ local function check_protection(pos, name, text)
|
|||
end
|
||||
|
||||
-- Register a new liquid
|
||||
-- source = name of the source node
|
||||
-- flowing = name of the flowing node
|
||||
-- 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)
|
||||
-- name = text description of the bucket item
|
||||
-- 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
|
||||
-- source neighbour, even if defined as 'liquid_renewable = false'.
|
||||
-- Needed to avoid creating holes in sloping rivers.
|
||||
-- source = name of the source node
|
||||
-- flowing = name of the flowing node
|
||||
-- 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)
|
||||
-- name = text description of the bucket item
|
||||
-- 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
|
||||
-- source neighbour, even if defined as 'liquid_renewable = false'.
|
||||
-- Needed to avoid creating holes in sloping rivers.
|
||||
-- This function can be called from any mod (that depends on bucket).
|
||||
function bucket.register_liquid(source, flowing, itemname, inventory_image, name,
|
||||
groups, force_renew)
|
||||
|
|
|
@ -12,7 +12,7 @@ return {
|
|||
"default:emerald",
|
||||
"default:quartz_crystal",
|
||||
"default:sugar",
|
||||
"default:reeds",
|
||||
"default:sugarcane",
|
||||
"default:stick",
|
||||
"default:gunpowder",
|
||||
}
|
|
@ -15,4 +15,10 @@ return {
|
|||
"default:shovel_stone",
|
||||
"default:axe_wood",
|
||||
"default:pick_steel",
|
||||
"farming:hoe_wood",
|
||||
"farming:hoe_stone",
|
||||
"farming:hoe_steel",
|
||||
"farming:hoe_gold",
|
||||
"farming:hoe_diamond",
|
||||
"default:pole",
|
||||
}
|
|
@ -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;]"..
|
||||
"background[-0.19,-0.25;11.5,8.5;inventory_creative.png]"..
|
||||
sfinv.gui_bg..
|
||||
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
|
||||
sfinv.listcolors..
|
||||
"label[-5,-5;"..name.."]"..
|
||||
"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
|
||||
|
|
|
@ -18,7 +18,7 @@ minetest.register_alias("jungletree", "default:jungletree")
|
|||
minetest.register_alias("junglegrass", "default:junglegrass")
|
||||
minetest.register_alias("leaves", "default:leaves")
|
||||
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("glass", "default:glass")
|
||||
minetest.register_alias("wooden_fence", "default:fence_wood")
|
||||
|
@ -86,3 +86,7 @@ minetest.register_alias("default:haybale", "farming:straw")
|
|||
|
||||
-- Ladder
|
||||
minetest.register_alias("default:ladder", "default:ladder_wood")
|
||||
|
||||
-- Ladder
|
||||
minetest.register_alias("default:reeds", "default:sugarcane")
|
||||
minetest.register_alias("default:papyrus", "default:sugarcane")
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
--
|
||||
|
||||
local function get_chest_neighborpos(pos, param2, side)
|
||||
if side == "right" then
|
||||
if side == "right" then
|
||||
if param2 == 0 then
|
||||
return {x=pos.x-1, y=pos.y, z=pos.z}
|
||||
elseif param2 == 1 then
|
||||
|
@ -13,7 +13,7 @@ local function get_chest_neighborpos(pos, param2, side)
|
|||
elseif param2 == 3 then
|
||||
return {x=pos.x, y=pos.y, z=pos.z-1}
|
||||
end
|
||||
else
|
||||
else
|
||||
if param2 == 0 then
|
||||
return {x=pos.x+1, y=pos.y, z=pos.z}
|
||||
elseif param2 == 1 then
|
||||
|
@ -23,18 +23,18 @@ local function get_chest_neighborpos(pos, param2, side)
|
|||
elseif param2 == 3 then
|
||||
return {x=pos.x, y=pos.y, z=pos.z+1}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("default:chest", {
|
||||
description = "Chest",
|
||||
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
|
||||
description = "Chest",
|
||||
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"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, decorative = 1},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, decorative = 1},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local param2 = minetest.get_node(pos).param2
|
||||
local meta = minetest.get_meta(pos)
|
||||
if minetest.get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then
|
||||
|
@ -100,8 +100,8 @@ minetest.register_node("default:chest", {
|
|||
end
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 9*3)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta2 = meta
|
||||
meta:from_table(oldmetadata)
|
||||
|
@ -109,41 +109,41 @@ minetest.register_node("default:chest", {
|
|||
for i=1,inv:get_size("main") do
|
||||
local stack = inv:get_stack("main", i)
|
||||
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}
|
||||
minetest.add_item(p, stack)
|
||||
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)
|
||||
end
|
||||
end
|
||||
meta:from_table(meta2:to_table())
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if fields.exit then
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if fields.exit then
|
||||
print('test')
|
||||
fields.quit = true
|
||||
-- minetest.show_formspec(sender:get_player_name(), 'quit', "")
|
||||
end
|
||||
end
|
||||
-- minetest.show_formspec(sender:get_player_name(), 'quit', "")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
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"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
|
||||
drop = "default:chest",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_destruct = function(pos)
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
|
||||
drop = "default:chest",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_destruct = function(pos)
|
||||
local m = minetest.get_meta(pos)
|
||||
if m:get_string("infotext") == "Chest" then
|
||||
return
|
||||
|
@ -164,8 +164,8 @@ minetest.register_node("default:chest_left", {
|
|||
"list[current_player;main;0,7.74;9,1;]")
|
||||
meta:set_string("infotext", "Chest")
|
||||
minetest.swap_node(p, {name="default:chest", param2=param2})
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta2 = meta
|
||||
meta:from_table(oldmetadata)
|
||||
|
@ -173,34 +173,34 @@ minetest.register_node("default:chest_left", {
|
|||
for i=1,inv:get_size("main") do
|
||||
local stack = inv:get_stack("main", i)
|
||||
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}
|
||||
minetest.add_item(p, stack)
|
||||
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)
|
||||
end
|
||||
end
|
||||
meta:from_table(meta2:to_table())
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
||||
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"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
|
||||
drop = "default:chest",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_destruct = function(pos)
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1},
|
||||
drop = "default:chest",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_destruct = function(pos)
|
||||
local m = minetest.get_meta(pos)
|
||||
if m:get_string("infotext") == "Chest" then
|
||||
return
|
||||
|
@ -221,8 +221,8 @@ minetest.register_node("default:chest_right", {
|
|||
"list[current_player;main;0,7.74;9,1;]")
|
||||
meta:set_string("infotext", "Chest")
|
||||
minetest.swap_node(p, {name="default:chest", param2=param2})
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta2 = meta
|
||||
meta:from_table(oldmetadata)
|
||||
|
@ -230,22 +230,22 @@ minetest.register_node("default:chest_right", {
|
|||
for i=1,inv:get_size("main") do
|
||||
local stack = inv:get_stack("main", i)
|
||||
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}
|
||||
minetest.add_item(p, stack)
|
||||
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)
|
||||
end
|
||||
end
|
||||
meta:from_table(meta2:to_table())
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
" moves stuff in chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -5,20 +5,19 @@
|
|||
--
|
||||
|
||||
minetest.register_craftitem("default:stick", {
|
||||
description = "Stick",
|
||||
inventory_image = "default_stick.png",
|
||||
groups = {materials = 1},
|
||||
description = "Stick",
|
||||
inventory_image = "default_stick.png",
|
||||
groups = {stick = 1, flammable = 2},
|
||||
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:paper", {
|
||||
description = "Paper",
|
||||
inventory_image = "default_paper.png",
|
||||
groups = {misc = 1},
|
||||
description = "Paper",
|
||||
inventory_image = "default_paper.png",
|
||||
groups = {flammable = 3},
|
||||
})
|
||||
|
||||
|
||||
|
||||
local lpp = 14 -- Lines per book's page
|
||||
local function book_on_use(itemstack, user)
|
||||
local player_name = user:get_player_name()
|
||||
|
@ -176,95 +175,82 @@ minetest.register_craftitem("default:book_written", {
|
|||
})
|
||||
|
||||
minetest.register_craftitem("default:coal_lump", {
|
||||
description = "Coal Lump",
|
||||
inventory_image = "default_coal_lump.png",
|
||||
groups = {materials = 1},
|
||||
description = "Coal Lump",
|
||||
inventory_image = "default_coal_lump.png",
|
||||
groups = {coal = 1, flammable = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:charcoal_lump", {
|
||||
description = "Charcoal Lump",
|
||||
inventory_image = "default_charcoal_lump.png",
|
||||
groups = {materials = 1},
|
||||
description = "Charcoal Lump",
|
||||
inventory_image = "default_charcoal_lump.png",
|
||||
groups = {coal = 1, flammable = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:diamond", {
|
||||
description = "Diamond",
|
||||
inventory_image = "default_diamond.png",
|
||||
groups = {materials = 1},
|
||||
description = "Diamond",
|
||||
inventory_image = "default_diamond.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:clay_lump", {
|
||||
description = "Clay Lump",
|
||||
inventory_image = "default_clay_lump.png",
|
||||
groups = {materials = 1},
|
||||
description = "Clay Lump",
|
||||
inventory_image = "default_clay_lump.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:steel_ingot", {
|
||||
description = "Steel Ingot",
|
||||
inventory_image = "default_steel_ingot.png",
|
||||
groups = {materials = 1},
|
||||
description = "Steel Ingot",
|
||||
inventory_image = "default_steel_ingot.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:gold_ingot", {
|
||||
description = "Gold Ingot",
|
||||
inventory_image = "default_gold_ingot.png",
|
||||
groups = {materials = 1},
|
||||
description = "Gold Ingot",
|
||||
inventory_image = "default_gold_ingot.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:emerald", {
|
||||
description = "Emerald",
|
||||
inventory_image = "default_emerald.png",
|
||||
groups = {materials = 1},
|
||||
description = "Emerald",
|
||||
inventory_image = "default_emerald.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:clay_brick", {
|
||||
description = "Clay Brick",
|
||||
inventory_image = "default_clay_brick.png",
|
||||
groups = {materials = 1},
|
||||
description = "Clay Brick",
|
||||
inventory_image = "default_clay_brick.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:gunpowder", {
|
||||
description = "Gunpowder",
|
||||
inventory_image = "default_gunpowder.png",
|
||||
groups = {materials = 1},
|
||||
description = "Gunpowder",
|
||||
inventory_image = "default_gunpowder.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:bone", {
|
||||
description = "Bone",
|
||||
inventory_image = "default_bone.png",
|
||||
groups = {materials = 1},
|
||||
description = "Bone",
|
||||
inventory_image = "default_bone.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:glowstone_dust", {
|
||||
description = "Glowstone Dust",
|
||||
inventory_image = "default_glowstone_dust.png",
|
||||
groups = {materials = 1},
|
||||
description = "Glowstone Dust",
|
||||
inventory_image = "default_glowstone_dust.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:fish_raw", {
|
||||
description = "Raw Fish",
|
||||
groups = {},
|
||||
inventory_image = "default_fish.png",
|
||||
on_use = minetest.item_eat(2),
|
||||
groups = {foodstuffs = 1},
|
||||
description = "Raw Fish",
|
||||
groups = {},
|
||||
inventory_image = "default_fish.png",
|
||||
on_use = minetest.item_eat(2),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:fish", {
|
||||
description = "Cooked Fish",
|
||||
groups = {},
|
||||
inventory_image = "default_fish_cooked.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
groups = {foodstuffs = 1},
|
||||
description = "Cooked Fish",
|
||||
groups = {},
|
||||
inventory_image = "default_fish_cooked.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:sugar", {
|
||||
description = "Sugar",
|
||||
inventory_image = "default_sugar.png",
|
||||
groups = {materials = 1},
|
||||
description = "Sugar",
|
||||
inventory_image = "default_sugar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("default:quartz_crystal", {
|
||||
description = "Quartz Crystal",
|
||||
inventory_image = "default_quartz_crystal.png",
|
||||
groups = {materials = 1},
|
||||
description = "Quartz Crystal",
|
||||
inventory_image = "default_quartz_crystal.png",
|
||||
})
|
|
@ -206,7 +206,7 @@ function default.grow_papyrus(pos, node)
|
|||
end
|
||||
pos.y = pos.y + 1
|
||||
local height = 0
|
||||
while node.name == "default:papyrus" and height < 4 do
|
||||
while node.name == "default:sugarcane" and height < 4 do
|
||||
height = height + 1
|
||||
pos.y = pos.y + 1
|
||||
node = minetest.get_node(pos)
|
||||
|
@ -217,7 +217,7 @@ function default.grow_papyrus(pos, node)
|
|||
if minetest.get_node_light(pos) < 13 then
|
||||
return
|
||||
end
|
||||
minetest.set_node(pos, {name = "default:papyrus"})
|
||||
minetest.set_node(pos, {name = "default:sugarcane"})
|
||||
return true
|
||||
end
|
||||
|
||||
|
@ -234,7 +234,7 @@ minetest.register_abm({
|
|||
|
||||
minetest.register_abm({
|
||||
label = "Grow papyrus",
|
||||
nodenames = {"default:papyrus"},
|
||||
nodenames = {"default:sugarcane"},
|
||||
neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand"},
|
||||
interval = 14,
|
||||
chance = 71,
|
||||
|
|
|
@ -6,15 +6,17 @@
|
|||
local function active_formspec(fuel_percent, item_percent)
|
||||
local formspec =
|
||||
"size[9,8.75]"..
|
||||
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
|
||||
"background[-0.19,-0.25;9.41,9.49;formspec_furnace.png]"..
|
||||
sfinv.gui_bg..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]"..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]"..
|
||||
"bgcolor[#08080880;true]"..
|
||||
"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,7.74;9,1;]"..
|
||||
"list[current_name;src;3,0.5;1,1;]"..
|
||||
"list[current_name;fuel;3,2.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:"..
|
||||
(100-fuel_percent)..":default_furnace_fire_fg.png]"
|
||||
return formspec
|
||||
|
@ -22,15 +24,30 @@ end
|
|||
|
||||
local inactive_formspec =
|
||||
"size[9,8.75]"..
|
||||
"image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
|
||||
"background[-0.19,-0.25;9.41,9.49;formspec_furnace.png]"..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]"..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]"..
|
||||
"bgcolor[#08080880;true]"..
|
||||
"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,7.74;9,1;]"..
|
||||
"list[current_name;src;3,0.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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
-- MultiCraft mod: default
|
||||
-- MultiCraft game mod: default
|
||||
-- See README.txt for licensing and other information.
|
||||
|
||||
-- The API documentation in here was moved into doc/lua_api.txt
|
||||
|
|
|
@ -159,204 +159,204 @@ function default.register_ores()
|
|||
-- Coal
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 500,
|
||||
clust_num_ores = 8,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -12,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 500,
|
||||
clust_num_ores = 8,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -12,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 1000,
|
||||
clust_num_ores = 6,
|
||||
clust_size = 3,
|
||||
y_min = -11,
|
||||
y_max = 64,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 1000,
|
||||
clust_num_ores = 6,
|
||||
clust_size = 3,
|
||||
y_min = -11,
|
||||
y_max = 64,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 2,
|
||||
y_min = 65,
|
||||
y_max = 67,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 2,
|
||||
y_min = 65,
|
||||
y_max = 67,
|
||||
})
|
||||
|
||||
-- Iron
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 830,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -10,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 830,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -10,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 1660,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -9,
|
||||
y_max = 0,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 1660,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -9,
|
||||
y_max = 0,
|
||||
})
|
||||
|
||||
-- Gold
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_gold",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_gold",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_gold",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -35,
|
||||
y_max = -33,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_gold",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -35,
|
||||
y_max = -33,
|
||||
})
|
||||
|
||||
-- Diamond
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 2,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 5000,
|
||||
clust_num_ores = 2,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 8,
|
||||
clust_size = 3,
|
||||
y_min = -55,
|
||||
y_max = -52,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_diamond",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 8,
|
||||
clust_size = 3,
|
||||
y_min = -55,
|
||||
y_max = -52,
|
||||
})
|
||||
|
||||
-- Bluestone
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_bluestone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_bluestone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_bluestone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 10,
|
||||
clust_size = 4,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_bluestone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 10,
|
||||
clust_size = 4,
|
||||
y_min = -59,
|
||||
y_max = -48,
|
||||
})
|
||||
|
||||
-- Emerald
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_emerald",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 1,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_emerald",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 1,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_emerald",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 50000,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_emerald",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 50000,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = -59,
|
||||
y_max = -35,
|
||||
})
|
||||
|
||||
-- Lapis Lazuli
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_lapis",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 7,
|
||||
clust_size = 4,
|
||||
y_min = -50,
|
||||
y_max = -46,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_lapis",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 7,
|
||||
clust_size = 4,
|
||||
y_min = -50,
|
||||
y_max = -46,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_lapis",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 4,
|
||||
y_min = -59,
|
||||
y_max = -50,
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_lapis",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 10000,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 4,
|
||||
y_min = -59,
|
||||
y_max = -50,
|
||||
})
|
||||
|
||||
-- Glowstone
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:glowstone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 50000,
|
||||
clust_num_ores = 10,
|
||||
clust_size = 5,
|
||||
y_min = -59,
|
||||
y_max = -0,
|
||||
ore_type = "scatter",
|
||||
ore = "default:glowstone",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 50000,
|
||||
clust_num_ores = 10,
|
||||
clust_size = 5,
|
||||
y_min = -59,
|
||||
y_max = -0,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -915,7 +915,7 @@ function default.register_mgv6_decorations()
|
|||
decoration = {"bonusbox:chest"},
|
||||
})
|
||||
|
||||
-- Papyrus
|
||||
-- Sugar Cane
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
|
@ -931,7 +931,7 @@ function default.register_mgv6_decorations()
|
|||
},
|
||||
y_min = 1,
|
||||
y_max = 1,
|
||||
decoration = "default:papyrus",
|
||||
decoration = "default:sugarcane",
|
||||
height = 2,
|
||||
y_max = 4,
|
||||
spawn_by = "default:water_source",
|
||||
|
@ -956,7 +956,7 @@ function default.register_mgv6_decorations()
|
|||
y_max = 30,
|
||||
decoration = "default:cactus",
|
||||
height = 3,
|
||||
y_max = 4,
|
||||
y_max = 4,
|
||||
})
|
||||
|
||||
-- Long grasses
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
minetest.register_node("default:stone", {
|
||||
description = "Stone",
|
||||
tiles = {"default_stone.png"},
|
||||
groups = {cracky = 3, stone = 1, building = 1, decorative = 1},
|
||||
groups = {cracky = 3, stone = 1},
|
||||
drop = 'default:cobble',
|
||||
legacy_mineral = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
@ -16,7 +16,7 @@ minetest.register_node("default:stone", {
|
|||
minetest.register_node("default:cobble", {
|
||||
description = "Cobblestone",
|
||||
tiles = {"default_cobble.png"},
|
||||
groups = {cracky = 3, stone = 2, building = 1, decorative = 1},
|
||||
groups = {cracky = 3, stone = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
|
@ -26,7 +26,7 @@ minetest.register_node("default:stonebrick", {
|
|||
place_param2 = 0,
|
||||
tiles = {"default_stone_brick.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 2, stone = 1, building = 1, decorative = 1},
|
||||
groups = {cracky = 2, stone = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
|
@ -34,63 +34,63 @@ minetest.register_node("default:mossycobble", {
|
|||
description = "Mossy Cobblestone",
|
||||
tiles = {"default_mossycobble.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, building = 1, decorative = 1},
|
||||
groups = {cracky = 3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stonebrickcarved", {
|
||||
description = "Stone Brick Carved",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stonebrickcracked", {
|
||||
description = "Stone Brick Cracked",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stonebrickmossy", {
|
||||
description = "Mossy Stone Brick",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:sandstone", {
|
||||
description = "Sandstone",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:sandstonesmooth", {
|
||||
description = "Smooth Sandstone",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:redsandstone", {
|
||||
description = "Red SandStone",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:redsandstonesmooth", {
|
||||
description = "Red SandStone Smooth",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:redsandstonecarved", {
|
||||
description = "Red SandStone Carved",
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -105,7 +105,7 @@ minetest.register_node("default:obsidian", {
|
|||
description = "Obsidian",
|
||||
tiles = {"default_obsidian.png"},
|
||||
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
|
||||
|
@ -114,14 +114,14 @@ minetest.register_node("default:obsidian", {
|
|||
minetest.register_node("default:dirt", {
|
||||
description = "Dirt",
|
||||
tiles = {"default_dirt.png"},
|
||||
groups = {crumbly = 3, soil = 1, building = 1},
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:dirt_with_grass", {
|
||||
description = "Dirt with Grass",
|
||||
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',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
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",
|
||||
tiles = {"default_dry_grass.png", "default_dirt.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',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
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",
|
||||
{name = "default_snow_side.png",
|
||||
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',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name = "default_snow_footstep", gain = 0.4},
|
||||
|
@ -164,7 +164,7 @@ minetest.register_node("default:dirt_with_snow", {
|
|||
minetest.register_node("default:sand", {
|
||||
description = "Sand",
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -172,7 +172,7 @@ minetest.register_node("default:sand", {
|
|||
minetest.register_node("default:gravel", {
|
||||
description = "Gravel",
|
||||
tiles = {"default_gravel.png"},
|
||||
groups = {crumbly = 2, falling_node = 1, building = 1},
|
||||
groups = {crumbly = 2, falling_node = 1},
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name="default_gravel_footstep", gain = 0.45},
|
||||
}),
|
||||
|
@ -183,20 +183,19 @@ minetest.register_node("default:gravel", {
|
|||
{items = {'default:gravel'}}
|
||||
}
|
||||
},
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("default:redsand", {
|
||||
description = "Red Sand",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:clay", {
|
||||
description = "Clay",
|
||||
tiles = {"default_clay.png"},
|
||||
groups = {crumbly = 3, building = 1},
|
||||
groups = {crumbly = 3},
|
||||
drop = 'default:clay_lump 4',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
@ -232,7 +231,7 @@ minetest.register_node("default:snow", {
|
|||
minetest.register_node("default:snowblock", {
|
||||
description = "Snow Block",
|
||||
tiles = {"default_snow.png"},
|
||||
groups = {crumbly = 3, building = 1},
|
||||
groups = {crumbly = 3},
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name = "default_snow_footstep", gain = 0.4},
|
||||
dug = {name = "default_snow_footstep", gain = 0.75},
|
||||
|
@ -248,7 +247,7 @@ minetest.register_node("default:ice", {
|
|||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -258,7 +257,7 @@ minetest.register_node("default:packedice", {
|
|||
tiles = {"default_ice_packed.png"},
|
||||
paramtype = "light",
|
||||
use_texture_alpha = true,
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
|
@ -284,7 +283,7 @@ minetest.register_node("default:wood", {
|
|||
tiles = {"default_wood.png"},
|
||||
is_ground_content = false,
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -701,7 +700,7 @@ minetest.register_node("default:aspen_sapling", {
|
|||
minetest.register_node("default:stone_with_coal", {
|
||||
description = "Coal Ore",
|
||||
tiles = {"default_stone.png^default_mineral_coal.png"},
|
||||
groups = {cracky = 3, building = 1},
|
||||
groups = {cracky = 3},
|
||||
drop = 'default:coal_lump',
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -709,7 +708,7 @@ minetest.register_node("default:stone_with_coal", {
|
|||
minetest.register_node("default:stone_with_iron", {
|
||||
description = "Iron Ore",
|
||||
tiles = {"default_stone.png^default_mineral_iron.png"},
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
drop = 'default:stone_with_iron',
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -717,21 +716,21 @@ minetest.register_node("default:stone_with_iron", {
|
|||
minetest.register_node("default:steelblock", {
|
||||
description = "Steel Block",
|
||||
tiles = {"default_steel_block.png"},
|
||||
groups = {cracky = 1,level = 2, building = 1},
|
||||
groups = {cracky = 1,level = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:lapisblock", {
|
||||
description = "Lapis Lazul Block",
|
||||
tiles = {"default_lapis_block.png"},
|
||||
groups = {cracky = 1, building = 1},
|
||||
groups = {cracky = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stone_with_bluestone", {
|
||||
description = "Bluestone Ore",
|
||||
tiles = {"default_stone.png^default_mineral_bluestone.png"},
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
drop = "mesecons:wire_00000000_off 5",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -739,7 +738,7 @@ minetest.register_node("default:stone_with_bluestone", {
|
|||
minetest.register_node("default:stone_with_lapis", {
|
||||
description = "Lapis Lazuli Ore",
|
||||
tiles = {"default_stone.png^default_mineral_lapis.png"},
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
drop = {
|
||||
max_items = 2,
|
||||
items = {
|
||||
|
@ -757,7 +756,7 @@ minetest.register_node("default:stone_with_lapis", {
|
|||
minetest.register_node("default:stone_with_gold", {
|
||||
description = "Gold Ore",
|
||||
tiles = {"default_stone.png^default_mineral_gold.png"},
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
drop = "default:stone_with_gold",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -766,14 +765,14 @@ minetest.register_node("default:goldblock", {
|
|||
description = "Gold Block",
|
||||
tiles = {"default_gold_block.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 1, building = 1},
|
||||
groups = {cracky = 1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stone_with_emerald", {
|
||||
description = "Emerald Ore",
|
||||
tiles = {"default_stone.png^default_mineral_emerald.png"},
|
||||
groups = {cracky = 2, building = 1},
|
||||
groups = {cracky = 2},
|
||||
drop = "default:emerald",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -781,14 +780,14 @@ minetest.register_node("default:stone_with_emerald", {
|
|||
minetest.register_node("default:emeraldblock", {
|
||||
description = "Emerald Block",
|
||||
tiles = {"default_emerald_block.png"},
|
||||
groups = {cracky = 1, building = 1},
|
||||
groups = {cracky = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:stone_with_diamond", {
|
||||
description = "Diamonds in Stone",
|
||||
tiles = {"default_stone.png^default_mineral_diamond.png"},
|
||||
groups = {cracky = 1, building = 1},
|
||||
groups = {cracky = 1},
|
||||
drop = "default:diamond",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -797,7 +796,7 @@ minetest.register_node("default:diamondblock", {
|
|||
description = "Diamond Block",
|
||||
tiles = {"default_diamond_block.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 1, level = 3, building = 1},
|
||||
groups = {cracky = 1, level = 3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
|
@ -813,7 +812,7 @@ minetest.register_node("default:dry_shrub", {
|
|||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
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(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
|
@ -864,7 +863,7 @@ minetest.register_node("default:grass", {
|
|||
},
|
||||
paramtype = "light",
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -881,7 +880,7 @@ minetest.register_node("default:dry_grass", {
|
|||
walkable = false,
|
||||
buildable_to = true,
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -1221,7 +1220,7 @@ minetest.register_node("default:bookshelf", {
|
|||
"default_wood.png", "default_bookshelf.png", "default_bookshelf.png"},
|
||||
paramtype2 = "facedir",
|
||||
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(),
|
||||
|
||||
on_construct = function(pos)
|
||||
|
@ -1274,7 +1273,7 @@ minetest.register_node("default:cactus", {
|
|||
description = "Cactus",
|
||||
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"},
|
||||
groups = {snappy = 1, choppy = 3, flammable = 2, decorative = 1},
|
||||
groups = {snappy = 1, choppy = 3, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
|
@ -1297,12 +1296,12 @@ minetest.register_node("default:cactus", {
|
|||
|
||||
})
|
||||
|
||||
minetest.register_node("default:papyrus", {
|
||||
description = "Papyrus",
|
||||
minetest.register_node("default:sugarcane", {
|
||||
description = "Sugarcane",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_papyrus.png"},
|
||||
inventory_image = "default_papyrus.png",
|
||||
wield_image = "default_papyrus.png",
|
||||
tiles = {"default_sugarcane.png"},
|
||||
inventory_image = "default_sugarcane_inv.png",
|
||||
wield_image = "default_sugarcane_inv.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
|
@ -1312,40 +1311,11 @@ minetest.register_node("default:papyrus", {
|
|||
},
|
||||
groups = {snappy = 3, flammable = 2},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
after_dig_node = function(pos, node, metadata, digger)
|
||||
default.dig_up(pos, node, digger)
|
||||
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
|
||||
--
|
||||
|
@ -1353,7 +1323,7 @@ minetest.register_node("default:reeds", {
|
|||
minetest.register_node("default:quartz_ore", {
|
||||
description = "Quartz Ore",
|
||||
tiles = {"default_quartz_ore.png"},
|
||||
groups = {cracky = 3, stone = 1, building = 1},
|
||||
groups = {cracky = 3, stone = 1},
|
||||
drop = 'default:quartz_crystal',
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
@ -1361,14 +1331,14 @@ minetest.register_node("default:quartz_ore", {
|
|||
minetest.register_node("default:quartz_block", {
|
||||
description = "Quartz Block",
|
||||
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(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:quartz_chiseled", {
|
||||
description = "Chiseled Quartz",
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -1377,7 +1347,7 @@ minetest.register_node("default:quartz_pillar", {
|
|||
paramtype2 = "facedir",
|
||||
on_place = minetest.rotate_node,
|
||||
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(),
|
||||
})
|
||||
|
||||
|
@ -1397,7 +1367,7 @@ minetest.register_node("default:slimeblock", {
|
|||
paramtype = "light",
|
||||
use_texture_alpha = 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", {
|
||||
|
@ -1418,7 +1388,7 @@ minetest.register_node("default:ladder_wood", {
|
|||
--wall_bottom = = <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,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
@ -1436,7 +1406,7 @@ minetest.register_node("default:vine", {
|
|||
selection_box = {
|
||||
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,
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = "",
|
||||
|
@ -1475,7 +1445,7 @@ minetest.register_node("default:glass", {
|
|||
tiles = {"default_glass.png"},
|
||||
paramtype = "light",
|
||||
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(),
|
||||
drop = "",
|
||||
})
|
||||
|
@ -1486,14 +1456,14 @@ minetest.register_node("default:brick", {
|
|||
place_param2 = 0,
|
||||
tiles = {"default_brick.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, building = 1},
|
||||
groups = {cracky = 3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:glowstone", {
|
||||
description = "Glowstone",
|
||||
tiles = {"default_glowstone.png"},
|
||||
groups = {cracky = 3, building = 1},
|
||||
groups = {cracky = 3},
|
||||
--[[ drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
|
@ -1516,7 +1486,7 @@ minetest.register_node("default:sponge", {
|
|||
pointable = true,
|
||||
diggable = true,
|
||||
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)
|
||||
local pn = placer:get_player_name()
|
||||
if pointed_thing.type ~= "node" then
|
||||
|
@ -1649,7 +1619,7 @@ function AddGlass(desc, recipeitem, color)
|
|||
tiles = {"xpanes_pane_glass"..color..".png"},
|
||||
paramtype = "light",
|
||||
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(),
|
||||
drop = "",
|
||||
})
|
||||
|
|
Before Width: | Height: | Size: 447 B |
Before Width: | Height: | Size: 967 B After Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 942 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
@ -2,21 +2,21 @@
|
|||
|
||||
-- The hand
|
||||
minetest.register_item(":", {
|
||||
type = "none",
|
||||
wield_image = "wieldhand.png",
|
||||
wield_scale = {x=0.7,y=2,z=0.0001},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level = 0,
|
||||
groupcaps = {
|
||||
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
|
||||
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
|
||||
choppy = {times={[3]=3}},
|
||||
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}
|
||||
},
|
||||
damage_groups = {fleshy=1},
|
||||
}
|
||||
type = "none",
|
||||
wield_image = "wieldhand.png",
|
||||
wield_scale = {x=0.7,y=2,z=0.0001},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level = 0,
|
||||
groupcaps = {
|
||||
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
|
||||
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
|
||||
choppy = {times={[3]=3}},
|
||||
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}
|
||||
},
|
||||
damage_groups = {fleshy=1},
|
||||
}
|
||||
})
|
||||
|
||||
--
|
||||
|
@ -24,299 +24,294 @@ minetest.register_item(":", {
|
|||
--
|
||||
|
||||
minetest.register_tool("default:pick_wood", {
|
||||
description = "Wooden Pickaxe",
|
||||
inventory_image = "default_tool_woodpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[3]=1.60, [10]=1.60}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Wooden Pickaxe",
|
||||
inventory_image = "default_tool_woodpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[3]=1.60, [10]=1.60}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:pick_stone", {
|
||||
description = "Stone Pickaxe",
|
||||
inventory_image = "default_tool_stonepick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.3,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[2]=2.0, [3]=1.20, [3]=0.60}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Stone Pickaxe",
|
||||
inventory_image = "default_tool_stonepick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.3,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[2]=2.0, [3]=1.20, [3]=0.60}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:pick_steel", {
|
||||
description = "Steel Pickaxe",
|
||||
inventory_image = "default_tool_steelpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80,[3]=0.40}, uses=20, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Steel Pickaxe",
|
||||
inventory_image = "default_tool_steelpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80,[3]=0.40}, uses=20, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:pick_gold", {
|
||||
description = "Gold Pickaxe",
|
||||
inventory_image = "default_tool_goldpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.3,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[2]=2.0, [3]=1.20, [10]=0.30}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Gold Pickaxe",
|
||||
inventory_image = "default_tool_goldpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.3,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky = {times={[2]=2.0, [3]=1.20, [10]=0.30}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:pick_diamond", {
|
||||
description = "Diamond Pickaxe",
|
||||
inventory_image = "default_tool_diamondpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
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},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Diamond Pickaxe",
|
||||
inventory_image = "default_tool_diamondpick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
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},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
|
||||
-- Shovels
|
||||
minetest.register_tool("default:shovel_wood", {
|
||||
description = "Wooden Shovel",
|
||||
inventory_image = "default_tool_woodshovel.png",
|
||||
wield_image = "default_tool_woodshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Wooden Shovel",
|
||||
inventory_image = "default_tool_woodshovel.png",
|
||||
wield_image = "default_tool_woodshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:shovel_stone", {
|
||||
description = "Stone Shovel",
|
||||
inventory_image = "default_tool_stoneshovel.png",
|
||||
wield_image = "default_tool_stoneshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.4,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Stone Shovel",
|
||||
inventory_image = "default_tool_stoneshovel.png",
|
||||
wield_image = "default_tool_stoneshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.4,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:shovel_steel", {
|
||||
description = "Steel Shovel",
|
||||
inventory_image = "default_tool_steelshovel.png",
|
||||
wield_image = "default_tool_steelshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.1,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Steel Shovel",
|
||||
inventory_image = "default_tool_steelshovel.png",
|
||||
wield_image = "default_tool_steelshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.1,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:shovel_gold", {
|
||||
description = "Gold Shovel",
|
||||
inventory_image = "default_tool_goldshovel.png",
|
||||
wield_image = "default_tool_goldshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.4,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Gold Shovel",
|
||||
inventory_image = "default_tool_goldshovel.png",
|
||||
wield_image = "default_tool_goldshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.4,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:shovel_diamond", {
|
||||
description = "Diamond Shovel",
|
||||
inventory_image = "default_tool_diamondshovel.png",
|
||||
wield_image = "default_tool_diamondshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Diamond Shovel",
|
||||
inventory_image = "default_tool_diamondshovel.png",
|
||||
wield_image = "default_tool_diamondshovel.png^[transformR90",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
|
||||
-- Axes
|
||||
minetest.register_tool("default:axe_wood", {
|
||||
description = "Wooden Axe",
|
||||
inventory_image = "default_tool_woodaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=1},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Wooden Axe",
|
||||
inventory_image = "default_tool_woodaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=1},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:axe_stone", {
|
||||
description = "Stone Axe",
|
||||
inventory_image = "default_tool_stoneaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Stone Axe",
|
||||
inventory_image = "default_tool_stoneaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:axe_steel", {
|
||||
description = "Steel Axe",
|
||||
inventory_image = "default_tool_steelaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Steel Axe",
|
||||
inventory_image = "default_tool_steelaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=5},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:axe_gold", {
|
||||
description = "Gold Axe",
|
||||
inventory_image = "default_tool_goldaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Gold Axe",
|
||||
inventory_image = "default_tool_goldaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=3},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
minetest.register_tool("default:axe_diamond", {
|
||||
description = "Diamond Axe",
|
||||
inventory_image = "default_tool_diamondaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
},
|
||||
groups = {tools=1},
|
||||
description = "Diamond Axe",
|
||||
inventory_image = "default_tool_diamondaxe.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy = {times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
},
|
||||
groups = {tools=1},
|
||||
})
|
||||
|
||||
-- Swords
|
||||
minetest.register_tool("default:sword_wood", {
|
||||
description = "Wooden Sword",
|
||||
inventory_image = "default_tool_woodsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
groups = {combat=1},
|
||||
description = "Wooden Sword",
|
||||
inventory_image = "default_tool_woodsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=2},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("default:sword_stone", {
|
||||
description = "Stone Sword",
|
||||
inventory_image = "default_tool_stonesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
groups = {combat=1},
|
||||
description = "Stone Sword",
|
||||
inventory_image = "default_tool_stonesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("default:sword_steel", {
|
||||
description = "Steel Sword",
|
||||
inventory_image = "default_tool_steelsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.8,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy = {times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
},
|
||||
groups = {combat=1},
|
||||
description = "Steel Sword",
|
||||
inventory_image = "default_tool_steelsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.8,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy = {times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
|
||||
},
|
||||
damage_groups = {fleshy=6},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("default:sword_gold", {
|
||||
description = "Gold Sword",
|
||||
inventory_image = "default_tool_goldsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
groups = {combat=1},
|
||||
description = "Gold Sword",
|
||||
inventory_image = "default_tool_goldsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.2,
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy = {times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=4},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("default:sword_diamond", {
|
||||
description = "Diamond Sword",
|
||||
inventory_image = "default_tool_diamondsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.7,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy = {times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=7},
|
||||
},
|
||||
groups = {combat=1},
|
||||
description = "Diamond Sword",
|
||||
inventory_image = "default_tool_diamondsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.7,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy = {times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
|
||||
},
|
||||
damage_groups = {fleshy=7},
|
||||
},
|
||||
})
|
||||
|
||||
-- Fishing Pole
|
||||
minetest.register_tool("default:pole", {
|
||||
description = "Fishing Rod",
|
||||
groups = {},
|
||||
inventory_image = "default_tool_fishing_pole.png",
|
||||
stack_max = 1,
|
||||
groups = {tools=1},
|
||||
liquids_pointable = true,
|
||||
on_use = function (itemstack, user, pointed_thing)
|
||||
if pointed_thing and pointed_thing.under then
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if string.find(node.name, "default:water") then
|
||||
if math.random(1, 100) > 50 then
|
||||
local inv = user:get_inventory()
|
||||
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=""})
|
||||
end
|
||||
end
|
||||
itemstack:add_wear(66000/65) -- 65 uses
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end,
|
||||
description = "Fishing Rod",
|
||||
groups = {},
|
||||
inventory_image = "default_tool_fishing_pole.png",
|
||||
stack_max = 1,
|
||||
groups = {tools=1},
|
||||
liquids_pointable = true,
|
||||
on_use = function (itemstack, user, pointed_thing)
|
||||
if pointed_thing and pointed_thing.under then
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if string.find(node.name, "default:water") then
|
||||
if math.random(1, 100) > 50 then
|
||||
local inv = user:get_inventory()
|
||||
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=""})
|
||||
end
|
||||
end
|
||||
itemstack:add_wear(66000/65) -- 65 uses
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -244,9 +244,9 @@ function doors:register_door(name, def)
|
|||
if check_player_priv(pos, clicker) then
|
||||
on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2})
|
||||
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
|
||||
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,
|
||||
|
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -1,6 +1,6 @@
|
|||
local age = 1 --How old an item has to be before collecting
|
||||
local radius_magnet = 2 --Radius of item magnet
|
||||
local player_collect_height = 1.3 --Added to their pos y value
|
||||
local age = 1 --How old an item has to be before collecting
|
||||
local radius_magnet = 2 --Radius of item magnet
|
||||
local player_collect_height = 1.3 --Added to their pos y value
|
||||
|
||||
--Item collection
|
||||
minetest.register_globalstep(function(dtime)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
MultiCraft mod: dye
|
||||
MultiCraft game mod: dye
|
||||
======================
|
||||
See license.txt for license information.
|
||||
See init.lua for documentation.
|
||||
|
|
|
@ -3,21 +3,21 @@ dye = {}
|
|||
-- Make dye names and descriptions available globally
|
||||
|
||||
dye.dyes = {
|
||||
{"white", "White"},
|
||||
{"grey", "Grey"},
|
||||
{"dark_grey", "Dark grey"},
|
||||
{"black", "Black"},
|
||||
{"violet", "Violet"},
|
||||
{"blue", "Blue"},
|
||||
{"cyan", "Cyan"},
|
||||
{"dark_green", "Dark green"},
|
||||
{"green", "Green"},
|
||||
{"yellow", "Yellow"},
|
||||
{"brown", "Brown"},
|
||||
{"orange", "Orange"},
|
||||
{"red", "Red"},
|
||||
{"magenta", "Magenta"},
|
||||
{"pink", "Pink"},
|
||||
{"white", "White"},
|
||||
{"grey", "Grey"},
|
||||
{"dark_grey", "Dark grey"},
|
||||
{"black", "Black"},
|
||||
{"violet", "Violet"},
|
||||
{"blue", "Blue"},
|
||||
{"cyan", "Cyan"},
|
||||
{"dark_green", "Dark green"},
|
||||
{"green", "Green"},
|
||||
{"yellow", "Yellow"},
|
||||
{"brown", "Brown"},
|
||||
{"orange", "Orange"},
|
||||
{"red", "Red"},
|
||||
{"magenta", "Magenta"},
|
||||
{"pink", "Pink"},
|
||||
}
|
||||
|
||||
-- Define items
|
||||
|
|
|
@ -20,7 +20,7 @@ farming.register_hoe(":farming:hoe_steel", {
|
|||
material = "default:steel_ingot"
|
||||
})
|
||||
|
||||
farming.register_hoe(":farming:gold_mese", {
|
||||
farming.register_hoe(":farming:hoe_gold", {
|
||||
description = "Gold Hoe",
|
||||
inventory_image = "farming_tool_goldhoe.png",
|
||||
max_uses = 350,
|
||||
|
@ -32,5 +32,4 @@ farming.register_hoe(":farming:hoe_diamond", {
|
|||
inventory_image = "farming_tool_diamondhoe.png",
|
||||
max_uses = 1000,
|
||||
material = "default:diamond"
|
||||
|
||||
})
|
||||
|
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -5,4 +5,9 @@ See license.txt for license information.
|
|||
Authors of source code
|
||||
----------------------
|
||||
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
|
|
@ -1,4 +1,4 @@
|
|||
-- MultiCraft mod: default
|
||||
-- MultiCraft game mod: default
|
||||
-- See README.txt for licensing and other information.
|
||||
|
||||
|
||||
|
@ -173,10 +173,10 @@ minetest.register_abm({
|
|||
|
||||
minetest.register_node("flowers:mushroom_red", {
|
||||
description = "Red Mushroom",
|
||||
tiles = {"flowers_mushroom_red.png"},
|
||||
inventory_image = "flowers_mushroom_red.png",
|
||||
wield_image = "flowers_mushroom_red.png",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"3dmushrooms_red.png"},
|
||||
inventory_image = "3dmushrooms_red_inv.png",
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
|
@ -186,16 +186,16 @@ minetest.register_node("flowers:mushroom_red", {
|
|||
on_use = minetest.item_eat(-5),
|
||||
selection_box = {
|
||||
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", {
|
||||
description = "Brown Mushroom",
|
||||
tiles = {"flowers_mushroom_brown.png"},
|
||||
inventory_image = "flowers_mushroom_brown.png",
|
||||
wield_image = "flowers_mushroom_brown.png",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"3dmushrooms_brown.png"},
|
||||
inventory_image = "3dmushrooms_brown_inv.png",
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
|
@ -205,8 +205,8 @@ minetest.register_node("flowers:mushroom_brown", {
|
|||
on_use = minetest.item_eat(1),
|
||||
selection_box = {
|
||||
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}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -155,12 +155,12 @@ local function register_waterlily()
|
|||
end
|
||||
|
||||
function flowers.register_decorations()
|
||||
register_flower(436, "rose")
|
||||
register_flower(19822, "tulip")
|
||||
register_flower(436, "rose")
|
||||
register_flower(19822, "tulip")
|
||||
register_flower(1220999, "dandelion_yellow")
|
||||
register_flower(36662, "orchid")
|
||||
register_flower(1133, "allium")
|
||||
register_flower(73133, "dandelion_white")
|
||||
register_flower(36662, "orchid")
|
||||
register_flower(1133, "allium")
|
||||
register_flower(73133, "dandelion_white")
|
||||
|
||||
register_mushroom("mushroom_brown")
|
||||
register_mushroom("mushroom_red")
|
||||
|
|
|
@ -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
|
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 197 B |
|
@ -1,4 +1,5 @@
|
|||
local clay = {}
|
||||
|
||||
clay.dyes = {
|
||||
{"white", "White", "white"},
|
||||
{"grey", "Grey", "dark_grey"},
|
||||
|
@ -19,40 +20,39 @@ clay.dyes = {
|
|||
}
|
||||
|
||||
minetest.register_node("hardened_clay:hardened_clay", {
|
||||
description = "Hardened Clay",
|
||||
tiles = {"hardened_clay.png"},
|
||||
groups = {cracky = 3},
|
||||
legacy_mineral = true,
|
||||
groups = {buliding = 1},
|
||||
description = "Hardened Clay",
|
||||
tiles = {"hardened_clay.png"},
|
||||
groups = {cracky = 3},
|
||||
legacy_mineral = true,
|
||||
groups = {buliding = 1},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "hardened_clay:hardened_clay",
|
||||
recipe = "default:clay",
|
||||
type = "cooking",
|
||||
output = "hardened_clay:hardened_clay",
|
||||
recipe = "default:clay",
|
||||
})
|
||||
|
||||
|
||||
for _, row in ipairs(clay.dyes) do
|
||||
local name = row[1]
|
||||
local desc = row[2]
|
||||
local craft_color_group = row[3]
|
||||
-- Node Definition
|
||||
minetest.register_node("hardened_clay:"..name, {
|
||||
description = desc.." Hardened Clay",
|
||||
tiles = {"hardened_clay_stained_"..name..".png"},
|
||||
groups = {cracky = 3,hardened_clay=1, buliding = 1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
if craft_color_group then
|
||||
minetest.register_craft({
|
||||
output = 'hardened_clay:'..name..' 8',
|
||||
recipe = {
|
||||
{'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', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'},
|
||||
},
|
||||
})
|
||||
end
|
||||
local name = row[1]
|
||||
local desc = row[2]
|
||||
local craft_color_group = row[3]
|
||||
-- Node Definition
|
||||
minetest.register_node("hardened_clay:"..name, {
|
||||
description = desc.." Hardened Clay",
|
||||
tiles = {"hardened_clay_stained_"..name..".png"},
|
||||
groups = {cracky = 3,hardened_clay=1, buliding = 1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
if craft_color_group then
|
||||
minetest.register_craft({
|
||||
output = 'hardened_clay:'..name..' 8',
|
||||
recipe = {
|
||||
{'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', 'hardened_clay:hardened_clay', 'hardened_clay:hardened_clay'},
|
||||
},
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Minetest mod "Better HUD"
|
||||
MultiCraft game mod: Better HUD
|
||||
=========================
|
||||
Version: 2.1.5
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Minetest mod "Hunger"
|
||||
MultiCraft game mod: Hunger
|
||||
=====================
|
||||
Version: 1.1.3
|
||||
|
||||
|
|
|
@ -39,14 +39,15 @@ sfinv.override_page("sfinv:inventory", {
|
|||
title = "Inventory",
|
||||
get = function(self, player, context)
|
||||
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]
|
||||
list[current_player;craft;4,1;2,1;1]
|
||||
list[current_player;craft;4,2;2,1;4]
|
||||
list[current_player;craftpreview;7.05,1.54;1,1;]
|
||||
list[detached:split;main;7.99,3.15;1,1;]
|
||||
list[current_player;craftpreview;7.05,1.53;1,1;]
|
||||
list[detached:split;main;8,3.14;1,1;]
|
||||
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
|
||||
local player_name = player:get_player_name()
|
||||
|
|
Before Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
|
@ -2,37 +2,37 @@
|
|||
local tmp = {}
|
||||
|
||||
minetest.register_entity("itemframes:item",{
|
||||
hp_max = 1,
|
||||
visual="wielditem",
|
||||
visual_size={x=.33,y=.33},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
physical=false,
|
||||
textures={"air"},
|
||||
on_activate = function(self, staticdata)
|
||||
if tmp.nodename ~= nil and tmp.texture ~= nil then
|
||||
self.nodename = tmp.nodename
|
||||
tmp.nodename = nil
|
||||
self.texture = tmp.texture
|
||||
tmp.texture = nil
|
||||
else
|
||||
if staticdata ~= nil and staticdata ~= "" then
|
||||
local data = staticdata:split(';')
|
||||
if data and data[1] and data[2] then
|
||||
self.nodename = data[1]
|
||||
self.texture = data[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
if self.texture ~= nil then
|
||||
self.object:set_properties({textures={self.texture}})
|
||||
end
|
||||
end,
|
||||
get_staticdata = function(self)
|
||||
if self.nodename ~= nil and self.texture ~= nil then
|
||||
return self.nodename .. ';' .. self.texture
|
||||
end
|
||||
return ""
|
||||
end,
|
||||
hp_max = 1,
|
||||
visual="wielditem",
|
||||
visual_size={x=.33,y=.33},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
physical=false,
|
||||
textures={"air"},
|
||||
on_activate = function(self, staticdata)
|
||||
if tmp.nodename ~= nil and tmp.texture ~= nil then
|
||||
self.nodename = tmp.nodename
|
||||
tmp.nodename = nil
|
||||
self.texture = tmp.texture
|
||||
tmp.texture = nil
|
||||
else
|
||||
if staticdata ~= nil and staticdata ~= "" then
|
||||
local data = staticdata:split(';')
|
||||
if data and data[1] and data[2] then
|
||||
self.nodename = data[1]
|
||||
self.texture = data[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
if self.texture ~= nil then
|
||||
self.object:set_properties({textures={self.texture}})
|
||||
end
|
||||
end,
|
||||
get_staticdata = function(self)
|
||||
if self.nodename ~= nil and self.texture ~= nil then
|
||||
return self.nodename .. ';' .. self.texture
|
||||
end
|
||||
return ""
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
@ -43,99 +43,99 @@ facedir[2] = {x=0,y=0,z=-1}
|
|||
facedir[3] = {x=-1,y=0,z=0}
|
||||
|
||||
local remove_item = function(pos, node)
|
||||
local objs = nil
|
||||
if node.name == "itemframes:frame" then
|
||||
objs = minetest.get_objects_inside_radius(pos, .5)
|
||||
end
|
||||
if objs then
|
||||
for _, obj in ipairs(objs) do
|
||||
if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then
|
||||
obj:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
local objs = nil
|
||||
if node.name == "itemframes:frame" then
|
||||
objs = minetest.get_objects_inside_radius(pos, .5)
|
||||
end
|
||||
if objs then
|
||||
for _, obj in ipairs(objs) do
|
||||
if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then
|
||||
obj:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local update_item = function(pos, node)
|
||||
remove_item(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "itemframes:frame" then
|
||||
local posad = facedir[node.param2]
|
||||
pos.x = pos.x + posad.x*6.5/16
|
||||
pos.y = pos.y + posad.y*6.5/16
|
||||
pos.z = pos.z + posad.z*6.5/16
|
||||
end
|
||||
tmp.nodename = node.name
|
||||
tmp.texture = ItemStack(meta:get_string("item")):get_name()
|
||||
local e = minetest.add_entity(pos,"itemframes:item")
|
||||
if node.name == "itemframes:frame" then
|
||||
local yaw = math.pi*2 - node.param2 * math.pi/2
|
||||
e:setyaw(yaw)
|
||||
end
|
||||
end
|
||||
remove_item(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "itemframes:frame" then
|
||||
local posad = facedir[node.param2]
|
||||
pos.x = pos.x + posad.x*6.5/16
|
||||
pos.y = pos.y + posad.y*6.5/16
|
||||
pos.z = pos.z + posad.z*6.5/16
|
||||
end
|
||||
tmp.nodename = node.name
|
||||
tmp.texture = ItemStack(meta:get_string("item")):get_name()
|
||||
local e = minetest.add_entity(pos,"itemframes:item")
|
||||
if node.name == "itemframes:frame" then
|
||||
local yaw = math.pi*2 - node.param2 * math.pi/2
|
||||
e:setyaw(yaw)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local drop_item = function(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "itemframes:frame" then
|
||||
minetest.add_item(pos, meta:get_string("item"))
|
||||
end
|
||||
meta:set_string("item","")
|
||||
end
|
||||
remove_item(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("item") ~= "" then
|
||||
if node.name == "itemframes:frame" then
|
||||
minetest.add_item(pos, meta:get_string("item"))
|
||||
end
|
||||
meta:set_string("item","")
|
||||
end
|
||||
remove_item(pos, node)
|
||||
end
|
||||
|
||||
minetest.register_node("itemframes:frame",{
|
||||
description = "Item frame",
|
||||
drawtype = "nodebox",
|
||||
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} },
|
||||
inventory_image = "itemframes_frame.png",
|
||||
tiles = {"itemframe_background.png"},
|
||||
inventory_image = "itemframes_frame.png",
|
||||
wield_image = "itemframes_frame.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
groups = { choppy = 2,dig_immediate=2, decorative = 1 },
|
||||
legacy_wallmounted = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner",placer:get_player_name())
|
||||
meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")")
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack)
|
||||
if not itemstack then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
if clicker:get_player_name() == meta:get_string("owner") then
|
||||
drop_item(pos,node)
|
||||
local s = itemstack:take_item()
|
||||
meta:set_string("item",s:to_string())
|
||||
update_item(pos,node)
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_punch = function(pos,node,puncher)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if puncher:get_player_name() == meta:get_string("owner") then
|
||||
drop_item(pos, node)
|
||||
end
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
description = "Item frame",
|
||||
drawtype = "nodebox",
|
||||
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} },
|
||||
inventory_image = "itemframes_frame.png",
|
||||
tiles = {"itemframe_background.png"},
|
||||
inventory_image = "itemframes_frame.png",
|
||||
wield_image = "itemframes_frame.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
groups = { choppy = 2,dig_immediate=2, decorative = 1 },
|
||||
legacy_wallmounted = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner",placer:get_player_name())
|
||||
meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")")
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack)
|
||||
if not itemstack then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
if clicker:get_player_name() == meta:get_string("owner") then
|
||||
drop_item(pos,node)
|
||||
local s = itemstack:take_item()
|
||||
meta:set_string("item",s:to_string())
|
||||
update_item(pos,node)
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_punch = function(pos,node,puncher)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if puncher:get_player_name() == meta:get_string("owner") then
|
||||
drop_item(pos, node)
|
||||
end
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
return player:get_player_name() == meta:get_string("owner")
|
||||
end,
|
||||
local meta = minetest.get_meta(pos)
|
||||
return player:get_player_name() == meta:get_string("owner")
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'itemframes:frame',
|
||||
recipe = {
|
||||
{'default:stick', 'default:stick', 'default:stick'},
|
||||
{'default:stick', 'default:paper', 'default:stick'},
|
||||
{'default:stick', 'default:stick', 'default:stick'},
|
||||
}
|
||||
output = 'itemframes:frame',
|
||||
recipe = {
|
||||
{'default:stick', 'default:stick', 'default:stick'},
|
||||
{'default:stick', 'default:paper', 'default:stick'},
|
||||
{'default:stick', 'default:stick', 'default:stick'},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -22,6 +22,7 @@ mobs:register_mob("mobs_animal:bunny", {
|
|||
walk_velocity = 1,
|
||||
run_velocity = 2,
|
||||
runaway = true,
|
||||
runaway_from = {"mobs_animal:pumba", "player"},
|
||||
jump = true,
|
||||
jump_height = 6,
|
||||
drops = {
|
||||
|
|
|
@ -25,11 +25,11 @@ mobs:register_mob("mobs_animal:cow", {
|
|||
jump_height = 6,
|
||||
pushable = true,
|
||||
drops = {
|
||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
||||
{name = "mobs:leather", chance = 2, min = 1, max = 1},
|
||||
{name = "mobs:leather", chance = 2, min = 1, max = 1}
|
||||
{name = "mobs:meat_raw", chance = 1},
|
||||
{name = "mobs:meat_raw", chance = 2},
|
||||
{name = "mobs:meat_raw", chance = 2},
|
||||
{name = "mobs:leather", chance = 2},
|
||||
{name = "mobs:leather", chance = 2}
|
||||
},
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
|
|
|
@ -19,9 +19,10 @@ local all_colours = {
|
|||
|
||||
-- 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], {
|
||||
stay_near = {"farming:straw", 10},
|
||||
stepheight = 0.6,
|
||||
type = "animal",
|
||||
passive = true,
|
||||
|
|
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1001 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
@ -69,7 +69,7 @@ mobs:spawn({
|
|||
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
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ local use_cmi = minetest.global_exists("cmi")
|
|||
|
||||
mobs = {
|
||||
mod = "redo",
|
||||
version = "20190402",
|
||||
version = "20190513",
|
||||
invis = minetest.global_exists("invisibility") and invisibility or {},
|
||||
}
|
||||
|
||||
|
@ -104,6 +104,7 @@ local mob_class = {
|
|||
jump = true,
|
||||
knock_back = true,
|
||||
walk_chance = 50,
|
||||
stand_chance = 30,
|
||||
attack_chance = 5,
|
||||
passive = false,
|
||||
blood_amount = 5,
|
||||
|
@ -275,15 +276,15 @@ end
|
|||
|
||||
|
||||
-- set defined animation
|
||||
function mob_class:set_animation(anim)
|
||||
function mob_class:set_animation(anim, force)
|
||||
|
||||
if not self.animation
|
||||
or not anim then return end
|
||||
|
||||
self.animation.current = self.animation.current or ""
|
||||
|
||||
-- only set different animation for attacks when setting to same set
|
||||
if anim ~= "punch" and anim ~= "shoot"
|
||||
-- only set different animation for attacks when using same set
|
||||
if force ~= true and anim ~= "punch" and anim ~= "shoot"
|
||||
and string.find(self.animation.current, anim) then
|
||||
return
|
||||
end
|
||||
|
@ -327,7 +328,7 @@ end
|
|||
|
||||
|
||||
-- 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
|
||||
|
||||
|
@ -398,7 +399,7 @@ end
|
|||
|
||||
|
||||
-- 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
|
||||
|
||||
|
@ -444,12 +445,49 @@ function mob_class:NEW_line_of_sight(pos1, pos2, stepsize)
|
|||
return false
|
||||
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
|
||||
function mobs:line_of_sight(entity, pos1, pos2, stepsize)
|
||||
|
||||
return mob_class.line_of_sight(entity, pos1, pos2, stepsize)
|
||||
return entity:line_of_sight(pos1, pos2, stepsize)
|
||||
end
|
||||
|
||||
|
||||
function mob_class:attempt_flight_correction()
|
||||
|
||||
if self:flight_check() then return true end
|
||||
|
@ -464,8 +502,8 @@ function mob_class:attempt_flight_correction()
|
|||
end
|
||||
|
||||
local flyable_nodes = minetest.find_nodes_in_area(
|
||||
{x = pos.x - r, y = pos.y - r, z = pos.z - r},
|
||||
{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 + 1, y = pos.y + 1, z = pos.z + 1},
|
||||
searchnodes)
|
||||
|
||||
if #flyable_nodes < 1 then
|
||||
|
@ -481,6 +519,7 @@ function mob_class:attempt_flight_correction()
|
|||
return true
|
||||
end
|
||||
|
||||
|
||||
-- are we flying in what we are suppose to? (taikedz)
|
||||
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
|
||||
|
||||
-- frustration! cant find the damn path :(
|
||||
self:mob_sound(self.sounds.random)
|
||||
--self:mob_sound(self.sounds.random)
|
||||
else
|
||||
-- yay i found path
|
||||
self:mob_sound(self.sounds.war_cry)
|
||||
|
@ -2068,11 +2107,11 @@ function mob_class:do_states(dtime)
|
|||
|
||||
if self.facing_fence == true
|
||||
or temp_is_cliff
|
||||
or random(1, 100) <= 30 then
|
||||
or random(1, 100) <= self.stand_chance then
|
||||
|
||||
self:set_velocity(0)
|
||||
self.state = "stand"
|
||||
self:set_animation("stand")
|
||||
self:set_animation("stand", true)
|
||||
else
|
||||
self:set_velocity(self.walk_velocity)
|
||||
|
||||
|
@ -2231,7 +2270,7 @@ function mob_class:do_states(dtime)
|
|||
minetest.sound_play(self.sounds.explode, {
|
||||
pos = pos,
|
||||
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)
|
||||
|
@ -3272,11 +3311,12 @@ minetest.register_entity(name, setmetatable({
|
|||
follow = def.follow,
|
||||
jump = def.jump,
|
||||
walk_chance = def.walk_chance,
|
||||
stand_chance = def.stand_chance,
|
||||
attack_chance = def.attack_chance,
|
||||
passive = def.passive,
|
||||
knock_back = def.knock_back,
|
||||
blood_amount = def.blood_amount or 5,
|
||||
blood_texture = def.blood_texture or "mobs_blood.png",
|
||||
blood_amount = def.blood_amount,
|
||||
blood_texture = def.blood_texture,
|
||||
shoot_offset = def.shoot_offset,
|
||||
floats = def.floats,
|
||||
replace_rate = def.replace_rate,
|
||||
|
@ -3728,14 +3768,14 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
|
|||
local invimg = background
|
||||
|
||||
if addegg == 1 then
|
||||
invimg = "mobs_chicken_egg.png^(" .. invimg ..
|
||||
"^[mask:mobs_chicken_egg_overlay.png)"
|
||||
invimg = "(" .. invimg ..
|
||||
"^[mask:mobs_egg_overlay.png)"
|
||||
end
|
||||
|
||||
-- register new spawn egg containing mob information
|
||||
minetest.register_craftitem(mob .. "_set", {
|
||||
|
||||
description = "@1 (Tamed)", desc,
|
||||
description = desc.." (Tamed)",
|
||||
inventory_image = invimg,
|
||||
groups = {spawn_egg = 2, not_in_creative_inventory = 1},
|
||||
stack_max = 1,
|
||||
|
@ -3905,7 +3945,7 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
|
|||
if self.owner ~= name
|
||||
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
|
||||
end
|
||||
|
@ -4063,8 +4103,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
|||
if self.htimer < 1 then
|
||||
|
||||
minetest.chat_send_player(clicker:get_player_name(),
|
||||
"@1 at full health (@2)",
|
||||
self.name:split(":")[2], tostring(self.health))
|
||||
self.name:split(":")[2]
|
||||
.. " at full health (" .. tostring(self.health) .. ")")
|
||||
|
||||
self.htimer = 5
|
||||
end
|
||||
|
@ -4097,8 +4137,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
|||
|
||||
if self.tamed == false then
|
||||
minetest.chat_send_player(clicker:get_player_name(),
|
||||
"@1 has been tamed!",
|
||||
self.name:split(":")[2])
|
||||
self.name:split(":")[2]
|
||||
.. " has been tamed!")
|
||||
end
|
||||
|
||||
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]"
|
||||
.. "field[0.5,1;7.5,0;name;"
|
||||
.. 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") .. "]")
|
||||
end
|
||||
|
||||
|
|
Before Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 158 B |
|
@ -1,4 +1,4 @@
|
|||
-- MultiCraft mod: player
|
||||
-- MultiCraft game mod: player
|
||||
-- See README.txt for licensing and other information.
|
||||
|
||||
player_api = {}
|
||||
|
|
|
@ -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
|
||||
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
|
||||
|
||||
|
@ -12,7 +14,12 @@ https://forum.minetest.net/viewtopic.php?t=10090&p=153667
|
|||
- 0.5 - Slow down when walking in water
|
||||
- 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.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:
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
walking on ice makes player walk faster,
|
||||
stepping through snow or water slows player down,
|
||||
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
|
||||
]]
|
||||
|
@ -25,7 +25,7 @@ end
|
|||
|
||||
|
||||
local armor_mod = minetest.get_modpath("3d_armor")
|
||||
local def = {}
|
||||
--local def = {}
|
||||
local time = 0
|
||||
|
||||
|
||||
|
@ -82,20 +82,44 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
|
||||
-- are we standing on any nodes that speed player up?
|
||||
--nfast = nil
|
||||
nfast = nil
|
||||
if playerplus[name].nod_stand == "default:ice" then
|
||||
def.speed = def.speed + 0.4
|
||||
nfast = true
|
||||
end
|
||||
|
||||
-- are we standing on any nodes that slow player down?
|
||||
--nslow = nil
|
||||
nslow = nil
|
||||
if playerplus[name].nod_stand == "default:snow"
|
||||
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
|
||||
def.speed = def.speed - 0.4
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
-- set player physics
|
||||
player:set_physics_override(def.speed, def.jump, def.gravity)
|
||||
--[[
|
||||
|
|
|
@ -4,6 +4,7 @@ sfinv = {
|
|||
contexts = {},
|
||||
enabled = true,
|
||||
gui_bg = "bgcolor[#08080880;true]",
|
||||
listcolors = "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]",
|
||||
gui_bg_img = "",
|
||||
gui_slots = "",
|
||||
}
|
||||
|
|
|
@ -75,12 +75,12 @@ local function check_text(pos, wall)
|
|||
if text and text ~= "" then
|
||||
local found = false
|
||||
for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do
|
||||
local ent = obj:get_luaentity()
|
||||
if ent and ent.name == "signs:sign_text" then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
local ent = obj:get_luaentity()
|
||||
if ent and ent.name == "signs:sign_text" then
|
||||
found = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not found then
|
||||
local p2 = minetest.get_node(pos).param2
|
||||
if not p2 or p2 > 3 or p2 < 0 then return end
|
||||
|
@ -104,21 +104,21 @@ local function check_text(pos, wall)
|
|||
end
|
||||
|
||||
minetest.register_lbm({
|
||||
label = "Check for sign text",
|
||||
name = "signs:sign_text",
|
||||
nodenames = {"signs:sign"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
check_text(pos, false)
|
||||
end,
|
||||
label = "Check for sign text",
|
||||
name = "signs:sign_text",
|
||||
nodenames = {"signs:sign"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
check_text(pos, false)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_lbm({
|
||||
label = "Check for sign text (Wall)",
|
||||
name = "signs:wall_sign_text",
|
||||
nodenames = {"signs:wall_sign"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
label = "Check for sign text (Wall)",
|
||||
name = "signs:wall_sign_text",
|
||||
nodenames = {"signs:wall_sign"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
check_text(pos, true)
|
||||
end,
|
||||
})
|
||||
|
@ -213,7 +213,7 @@ minetest.register_node("signs:wall_sign", {
|
|||
paramtype2 = "wallmounted",
|
||||
node_box = {
|
||||
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_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,
|
||||
on_punch = function(pos)
|
||||
check_text(pos, true)
|
||||
end,
|
||||
check_text(pos, true)
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not fields.text then
|
||||
return
|
||||
|
|
|
@ -487,7 +487,8 @@ stairs.register_all("steelblock", "default:steelblock",
|
|||
{cracky = 1, level = 2},
|
||||
{"default_steel_block.png"},
|
||||
"Steel",
|
||||
stairs.stone)
|
||||
stairs.metal)
|
||||
|
||||
|
||||
minetest.register_alias("stairs:steel", "stairs:steelblock")
|
||||
|
||||
|
@ -498,6 +499,7 @@ stairs.register_all("goldblock", "default:goldblock",
|
|||
stairs.metal)
|
||||
|
||||
minetest.register_alias("stairs:gold", "stairs:goldblock")
|
||||
minetest.register_alias("stairs:corner_gold", "stairs:goldblock")
|
||||
|
||||
stairs.register_all("diamondblock", "default:diamondblock",
|
||||
{cracky = 1, level=3},
|
||||
|
@ -541,12 +543,6 @@ stairs.register_all("ice", "default:ice",
|
|||
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 = {
|
||||
{"black", "Black", "#000000b0"},
|
||||
{"blue", "Blue", "#015dbb70"},
|
||||
|
|
|
@ -1,23 +1,16 @@
|
|||
=== THROWING-MOD for multicraft-C55 ===
|
||||
MultiCraft game mod: throwing
|
||||
by PilzAdam
|
||||
|
||||
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:
|
||||
Craft a bow with the strings from the farming mod:
|
||||
wood string
|
||||
wood string
|
||||
wood string
|
||||
stick string
|
||||
stick string
|
||||
stick string
|
||||
Craft arrows with:
|
||||
flint
|
||||
stick
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
minetest.register_craftitem("throwing:arrow", {
|
||||
description = "Arrow",
|
||||
inventory_image = "throwing_arrow_inv.png",
|
||||
groups = {combat = 1},
|
||||
})
|
||||
|
||||
minetest.register_node("throwing:arrow_box", {
|
||||
|
@ -34,9 +33,8 @@ local THROWING_ARROW_ENTITY={
|
|||
physical = false,
|
||||
timer=0,
|
||||
visual = "wielditem",
|
||||
visual_size = {x=0.4, y=0.4},
|
||||
--textures = {"throwing:arrow_box"},
|
||||
textures = {"throwing_arrow_back.png"},
|
||||
visual_size = {x=0.3, y=0.3},
|
||||
textures = {"throwing:arrow_box"},
|
||||
lastpos={},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
|
||||
|
||||
dofile(minetest.get_modpath("throwing").."/arrow.lua")
|
||||
|
||||
arrows = {
|
||||
{"throwing:arrow", "throwing:arrow_entity"},
|
||||
}
|
||||
|
||||
local creative = minetest.settings:get_bool("creative_mode")
|
||||
|
||||
local throwing_shoot_arrow = function(itemstack, player)
|
||||
for _,arrow in ipairs(arrows) do
|
||||
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])
|
||||
end
|
||||
local playerpos = player:get_pos()
|
||||
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2])
|
||||
local dir = player:get_look_dir()
|
||||
|
@ -31,7 +31,6 @@ minetest.register_tool("throwing:bow", {
|
|||
description = "Bow",
|
||||
inventory_image = "throwing_bow.png",
|
||||
stack_max = 1,
|
||||
groups = {combat = 1},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
wear = itemstack:get_wear()
|
||||
itemstack:replace("throwing:bow_0")
|
||||
|
@ -42,7 +41,7 @@ minetest.register_tool("throwing:bow", {
|
|||
wear = itemstack:get_wear()
|
||||
itemstack:add_wear(wear)
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
@ -65,7 +64,7 @@ minetest.register_tool("throwing:bow_0", {
|
|||
wear = itemstack:get_wear()
|
||||
itemstack:add_wear(wear)
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
@ -88,7 +87,7 @@ minetest.register_tool("throwing:bow_1", {
|
|||
wear = itemstack:get_wear()
|
||||
itemstack:add_wear(wear)
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
@ -106,7 +105,7 @@ minetest.register_tool("throwing:bow_2", {
|
|||
itemstack:replace("throwing:bow")
|
||||
itemstack:add_wear(wear)
|
||||
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)
|
||||
end
|
||||
end
|
||||
|
@ -123,3 +122,4 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
dofile(minetest.get_modpath("throwing").."/arrow.lua")
|
||||
|
|
|
@ -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
|
Before Width: | Height: | Size: 110 B |
|
@ -1,4 +1,4 @@
|
|||
MultiCraft mod: wool
|
||||
MultiCraft game mod: wool
|
||||
=======================
|
||||
See license.txt for license information.
|
||||
Authors of source code
|
||||
|
|
|
@ -124,19 +124,19 @@ local formspecs = {
|
|||
image[0,1.52;1,1;workbench_anvil.png]
|
||||
list[context;tool;1.195,1.505;1,1;]
|
||||
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", {
|
||||
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,
|
||||
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)
|
||||
|
||||
|
@ -170,10 +170,10 @@ end
|
|||
|
||||
function workbench:set_formspec(meta, id)
|
||||
meta:set_string("formspec", "size[9,8.75;]"..
|
||||
"bgcolor[#08080880;true]" ..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_workbench.png]" ..
|
||||
"background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]" ..
|
||||
sfinv.gui_bg..
|
||||
sfinv.listcolors..
|
||||
"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[current_player;main;0.01,4.51;9,3;9]"..
|
||||
"list[current_player;main;0.01,7.75;9,1;]"..
|
||||
|
|
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 256 B |
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 258 B |