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

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

View File

@ -6,35 +6,35 @@ dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor.lua")
minetest.register_tool("3d_armor:helmet_leather", {
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,
})

View File

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

View File

@ -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"},}

View File

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

View File

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

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: bucket
-- MultiCraft game mod: bucket
-- See README.txt for licensing and other information.
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)

View File

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

View File

@ -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",
}

View File

@ -188,7 +188,7 @@ local function get_creative_formspec(player_name, start_i, pagenum, page, pagema
local formspec = "image_button_exit[10.4,-0.1;0.75,0.75;close.png;exit;;true;true;]"..
"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

View File

@ -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")

View File

@ -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,
})

File diff suppressed because it is too large Load Diff

View File

@ -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",
})

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 = "",
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

View File

Before

Width:  |  Height:  |  Size: 967 B

After

Width:  |  Height:  |  Size: 967 B

View File

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 942 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -2,21 +2,21 @@
-- The hand
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,
})

View File

@ -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,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,6 +1,6 @@
local age = 1 --How old an item has to be before collecting
local 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)

View File

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

View File

@ -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

View File

@ -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"
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

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

View File

@ -1,4 +1,4 @@
-- MultiCraft mod: default
-- MultiCraft game mod: default
-- See README.txt for licensing and other information.
@ -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}
},
})

View File

@ -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")

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

View File

@ -1,4 +1,5 @@
local clay = {}
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

View File

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

View File

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

View File

@ -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()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -2,37 +2,37 @@
local tmp = {}
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'},
}
})

View File

@ -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 = {

View File

@ -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,

View File

@ -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,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -69,7 +69,7 @@ mobs:spawn({
max_height = 31000,
})
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

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

View File

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

View File

@ -1,7 +1,9 @@
PlayerPlus mod for minetest
MultiCraft game mod: PlayerPlus
Removed POVA, monoids support, knock-back, glitch.
This mod lets the player move faster when walking on ice, slows down the player
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:

View File

@ -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,18 +82,42 @@ 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
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

View File

@ -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 = "",
}

View File

@ -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

View File

@ -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"},

View File

@ -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

View File

@ -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},
}

View File

@ -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")

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

View File

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

View File

@ -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;]"..

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 258 B