Move our [default] edits to mff_classic, alias nodes
19
mods/mff/mff_classic/abms.lua
Normal file
@ -0,0 +1,19 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {'default:cherry_sapling', modname .. 'mg_cherry_sapling'},
|
||||
interval = 80,
|
||||
chance = 3,
|
||||
action = function(pos, node)
|
||||
|
||||
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||
local is_soil = minetest.get_item_group(nu, 'soil')
|
||||
|
||||
if is_soil == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z})
|
||||
default.grow_cherry_tree(pos, false, 'default:cherry_tree', 'default:cherry_blossom_leaves')
|
||||
end,
|
||||
})
|
35
mods/mff/mff_classic/aliases.lua
Normal file
@ -0,0 +1,35 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
do -- default
|
||||
local aliases = {
|
||||
'mg_cherry_sapling', 'acid_source', 'acid_flowing', 'sand_source', 'sand_flowing',
|
||||
'clay_burned', 'cherry_tree', 'cherry_log', 'cherry_plank', 'cherry_blossom_leaves',
|
||||
'cherry_leaves_deco', 'cherry_sapling', 'desert_stone_with_coal', 'desert_stone_with_copper',
|
||||
'stone_with_tin', 'desert_stone_with_tin', 'tinblock', 'stone_with_silver',
|
||||
'desert_stone_with_silver', 'silverblock', 'meze', 'stone_with_mithril', 'mithrilblock',
|
||||
'stone_with_coin', 'ladder_obsidian', 'fence_cobble', 'fence_desert_cobble',
|
||||
'fence_steelblock', 'fence_brick', 'nyancat', 'nyancat_rainbow', 'obsidian_cooled',
|
||||
'cobble_cooled'
|
||||
}
|
||||
for node in pairs(aliases) do
|
||||
minetest.register_alias('default:' .. node, modname .. ':' .. node)
|
||||
end
|
||||
minetest.register_alias('default:meze_block', modname .. ':meze')
|
||||
end
|
||||
|
||||
do -- moreores
|
||||
local aliases = {
|
||||
'pick_silver', 'pick_mithril', 'shovel_silver', 'shovel_mithril', 'axe_silver', 'axe_mithril',
|
||||
'sword_silver', 'sword_mithril', 'mithril_ingot', 'silver_ingot', 'tin_ingot', 'mithril_lump',
|
||||
'silver_lump', 'tin_lump'
|
||||
}
|
||||
for node in pairs(aliases) do
|
||||
minetest.register_alias('moreores:' .. node, modname .. ':' .. node)
|
||||
end
|
||||
minetest.register_alias('mineral_silver', modname .. ':stone_with_silver')
|
||||
minetest.register_alias('mineral_tin', modname .. ':stone_with_tin')
|
||||
minetest.register_alias('mineral_mithril', modname .. ':stone_with_mithril')
|
||||
minetest.register_alias('mithril_block', modname .. ':mithrilblock')
|
||||
minetest.register_alias('silver_block', modname .. ':silverblock')
|
||||
minetest.register_alias('tin_block', modname .. ':tinblock')
|
||||
end
|
44
mods/mff/mff_classic/biomes.lua
Normal file
@ -0,0 +1,44 @@
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
heat_point = 50,
|
||||
humidity_point = 55,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest_floral",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
heat_point = 47,
|
||||
humidity_point = 50,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "cherry_blossom_forest_grassy",
|
||||
node_shore_filler = "default:sand",
|
||||
node_top = "default:grass",
|
||||
depth_top = 1,
|
||||
node_filler = "default:dirt",
|
||||
depth_filler = 3,
|
||||
node_dust = "air",
|
||||
node_underwater = "default:gravel",
|
||||
y_min = 1,
|
||||
y_max = 42,
|
||||
heat_point = 55,
|
||||
humidity_point = 55,
|
||||
})
|
1
mods/mff/mff_classic/depends.txt
Normal file
@ -0,0 +1 @@
|
||||
default
|
13
mods/mff/mff_classic/init.lua
Normal file
@ -0,0 +1,13 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
local thismod = {}
|
||||
_G[modname] = thismod
|
||||
|
||||
dofile(modpath .. '/aliases.lua')
|
||||
|
||||
dofile(modpath .. '/abms.lua')
|
||||
dofile(modpath .. '/biomes.lua')
|
||||
dofile(modpath .. '/mapgen.lua')
|
||||
dofile(modpath .. '/nodes.lua')
|
||||
dofile(modpath .. '/trees.lua')
|
136
mods/mff/mff_classic/mapgen.lua
Normal file
@ -0,0 +1,136 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
-- Beware of Meze
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':meze',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 40 * 40 * 40,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = 0,
|
||||
y_max = 64,
|
||||
flags = 'absheight',
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':meze',
|
||||
wherein = 'default:desert_stone',
|
||||
clust_scarcity = 40 * 40 * 40,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 2,
|
||||
y_min = 0,
|
||||
y_max = 64,
|
||||
flags = 'absheight',
|
||||
})
|
||||
|
||||
|
||||
-- Tin
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_tin',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 7 * 7 * 7,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 7,
|
||||
y_min = -31000,
|
||||
y_max = 12,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':desert_stone_with_tin',
|
||||
wherein = 'default:desert_stone',
|
||||
clust_scarcity = 7 * 7 * 7,
|
||||
clust_num_ores = 3,
|
||||
clust_size = 7,
|
||||
y_min = -31000,
|
||||
y_max = 12,
|
||||
})
|
||||
|
||||
-- Silver
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_silver',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 11 * 11 * 11,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 11,
|
||||
y_min = -31000,
|
||||
y_max = -12,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':desert_stone_with_silver',
|
||||
wherein = 'default:desert_stone',
|
||||
clust_scarcity = 11 * 11 * 11,
|
||||
clust_num_ores = 4,
|
||||
clust_size = 11,
|
||||
y_min = -31000,
|
||||
y_max = -12,
|
||||
})
|
||||
|
||||
-- Mithril
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_mithril',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 11 * 11 * 11,
|
||||
clust_num_ores = 1,
|
||||
clust_size = 11,
|
||||
y_min = -31000,
|
||||
y_max = -1024,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_mithril',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 15 * 15 * 15,
|
||||
clust_num_ores = 2,
|
||||
clust_size = 3,
|
||||
y_min = -31000,
|
||||
y_max = -2048,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_mithril',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 22 * 22 * 22,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 5,
|
||||
y_min = -31000,
|
||||
y_max = -4096,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_mithril',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 28 * 28 * 28,
|
||||
clust_num_ores = 20,
|
||||
clust_size = 7,
|
||||
y_min = -31000,
|
||||
y_max = -12288,
|
||||
})
|
||||
|
||||
-- Gold Coins
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = 'scatter',
|
||||
ore = modname .. ':stone_with_coin',
|
||||
wherein = 'default:stone',
|
||||
clust_scarcity = 26 * 26 * 26,
|
||||
clust_num_ores = 1,
|
||||
clust_size = 1,
|
||||
y_min = -30000,
|
||||
y_max = 0,
|
||||
flags = 'absheight',
|
||||
})
|
504
mods/mff/mff_classic/nodes.lua
Normal file
@ -0,0 +1,504 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
minetest.register_node(modname .. ':acid_source', {
|
||||
description = 'Acid Source',
|
||||
inventory_image = minetest.inventorycube('default_acid.png'),
|
||||
drawtype = 'liquid',
|
||||
tiles = {
|
||||
{name = 'default_acid_source_animated.png', animation={type = 'vertical_frames', aspect_w = 16, aspect_h = 16, length = 1.5}}
|
||||
},
|
||||
special_tiles = {
|
||||
-- New-style acid source material (mostly unused)
|
||||
{
|
||||
name = 'default_acid_source_animated.png',
|
||||
animation = {type = 'vertical_frames', aspect_w= 16, aspect_h = 16, length = 1.5},
|
||||
backface_culling = false,
|
||||
}
|
||||
},
|
||||
alpha = 160,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
drop = '',
|
||||
drowning = 2,
|
||||
liquidtype = 'source',
|
||||
liquid_alternative_flowing = modname .. ':acid_flowing',
|
||||
liquid_alternative_source = modname .. ':acid_source',
|
||||
liquid_viscosity = 1,
|
||||
liquid_range = 4,
|
||||
damage_per_second = 3,
|
||||
post_effect_color = {a = 120, r = 50, g = 90, b = 30},
|
||||
groups = {water = 3, acid = 3, liquid = 3, puts_out_fire = 1},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':acid_flowing', {
|
||||
description = 'Flowing Acid',
|
||||
inventory_image = minetest.inventorycube('default_acid.png'),
|
||||
drawtype = 'flowingliquid',
|
||||
tiles = {'default_acid.png'},
|
||||
special_tiles = {
|
||||
{
|
||||
image = 'default_acid_flowing_animated.png',
|
||||
backface_culling=false,
|
||||
animation={type = 'vertical_frames', aspect_w= 16, aspect_h = 16, length = 0.6}
|
||||
},
|
||||
{
|
||||
image = 'default_acid_flowing_animated.png',
|
||||
backface_culling=true,
|
||||
animation={type = 'vertical_frames', aspect_w= 16, aspect_h = 16, length = 0.6}
|
||||
},
|
||||
},
|
||||
alpha = 160,
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'flowingliquid',
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
drop = '',
|
||||
drowning = 2,
|
||||
liquidtype = 'flowing',
|
||||
liquid_alternative_flowing = modname .. ':acid_flowing',
|
||||
liquid_alternative_source = modname .. ':acid_source',
|
||||
liquid_viscosity = 1,
|
||||
liquid_range = 4,
|
||||
damage_per_second = 3,
|
||||
post_effect_color = {a = 120, r = 50, g = 90, b = 30},
|
||||
groups = {water = 3, acid = 3, liquid = 3, puts_out_fire = 1, not_in_creative_inventory = 1},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':sand_source', {
|
||||
description = 'Sand Source',
|
||||
inventory_image = minetest.inventorycube('default_sand.png'),
|
||||
drawtype = 'liquid',
|
||||
tiles = {'default_sand.png'},
|
||||
alpha = 255,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
drop = '',
|
||||
drowning = 4,
|
||||
liquidtype = 'source',
|
||||
liquid_alternative_flowing = modname .. ':sand_flowing',
|
||||
liquid_alternative_source = modname .. ':sand_source',
|
||||
liquid_viscosity = 20,
|
||||
liquid_renewable = false,
|
||||
post_effect_color = {a = 250, r = 0, g = 0, b = 0},
|
||||
groups = {liquid = 3},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':sand_flowing', {
|
||||
description = 'Flowing Sand',
|
||||
inventory_image = minetest.inventorycube('default_sand.png'),
|
||||
drawtype = 'flowingliquid',
|
||||
tiles = {'default_sand.png'},
|
||||
special_tiles = {
|
||||
{
|
||||
image = 'default_sand_flowing_animated.png',
|
||||
backface_culling=false,
|
||||
animation={type = 'vertical_frames', aspect_w= 16, aspect_h = 16, length = 0.6}
|
||||
},
|
||||
{
|
||||
image = 'default_sand_flowing_animated.png',
|
||||
backface_culling=true,
|
||||
animation={type = 'vertical_frames', aspect_w= 16, aspect_h = 16, length = 0.6}
|
||||
},
|
||||
},
|
||||
alpha = 255,
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'flowingliquid',
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
drop = '',
|
||||
drowning = 4,
|
||||
liquidtype = 'flowing',
|
||||
liquid_alternative_flowing = modname .. ':sand_flowing',
|
||||
liquid_alternative_source = modname .. ':sand_source',
|
||||
liquid_viscosity = 20,
|
||||
post_effect_color = {a = 250, r = 0, g = 0, b = 0},
|
||||
groups = {liquid = 3, not_in_creative_inventory = 1},
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(modname .. ':clay_burned', {
|
||||
description = 'Burned Clay',
|
||||
tiles = {'default_clay_burned.png'},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly = 3},
|
||||
drop = 'default:clay_lump 4',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
-- From BFD, cherry tree
|
||||
minetest.register_node(modname .. ':cherry_tree', {
|
||||
description = 'Cherry Log',
|
||||
tiles = {'default_cherry_top.png', 'default_cherry_top.png', 'default_cherry_tree.png'},
|
||||
is_ground_content = false,
|
||||
groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
drop = modname .. 'cherry_log'
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cherry_log', {
|
||||
description = 'Cherry Log',
|
||||
tiles = {'default_cherry_top.png', 'default_cherry_top.png', 'default_cherry_tree.png'},
|
||||
paramtype2 = 'facedir',
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cherry_plank', {
|
||||
description = 'Cherry Planks',
|
||||
tiles = {'default_wood_cherry_planks.png'},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {oddly_breakable_by_hand=1, flammable=1, choppy=3, wood=1},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cherry_blossom_leaves', {
|
||||
description = 'Cherry Blossom Leaves',
|
||||
drawtype = 'allfaces_optional',
|
||||
visual_scale = 1.3,
|
||||
tiles = {'default_cherry_blossom_leaves.png'},
|
||||
paramtype = 'light',
|
||||
waving = 1,
|
||||
is_ground_content = false,
|
||||
groups = {snappy=3, leafdecay=3, leafdecay_drop = 1, flammable=2, leaves=1},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {modname .. ':cherry_sapling'},
|
||||
rarity = 32,
|
||||
},
|
||||
{
|
||||
items = {modname .. ':cherry_blossom_leaves'},
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- place a random grass node
|
||||
local stack = ItemStack(modname .. ':cherry_leaves_deco')
|
||||
local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||
return ItemStack(modname .. ':cherry_blossom_leaves'..' '..itemstack:get_count()-(1-ret:get_count()))
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cherry_leaves_deco', {
|
||||
description = 'Cherry Leaves',
|
||||
drawtype = 'allfaces_optional',
|
||||
visual_scale = 1.3,
|
||||
tiles = {'default_cherry_blossom_leaves.png'},
|
||||
paramtype = 'light',
|
||||
waving=1,
|
||||
is_ground_content = false,
|
||||
groups = {snappy=3, flammable=2, leaves=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = {modname .. 'cherry_blossom_leaves'},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cherry_sapling', {
|
||||
description = 'Cherry Sapling',
|
||||
waving = 1,
|
||||
visual_scale = 1.0,
|
||||
inventory_image = 'default_cherry_sapling.png',
|
||||
wield_image = 'default_cherry_sapling.png',
|
||||
drawtype = 'plantlike',
|
||||
paramtype = 'light',
|
||||
tiles = {'default_cherry_sapling.png'},
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':desert_stone_with_coal', {
|
||||
description = 'Coal Ore',
|
||||
tiles = {'default_desert_stone.png^default_mineral_coal.png'},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly = 1, cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:desert_cobble'}},
|
||||
{items = {'default:coal_lump'}},
|
||||
{items = {'maptools:copper_coin'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':desert_stone_with_copper', {
|
||||
description = 'Copper Ore',
|
||||
tiles = {'default_desert_stone.png^default_mineral_copper.png'},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly = 1, cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:desert_cobble'}},
|
||||
{items = {'default:copper_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':stone_with_tin', {
|
||||
description = 'Tin Ore',
|
||||
tiles = {'default_stone.png^default_mineral_tin.png'},
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:cobble'}},
|
||||
{items = {'default:tin_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':desert_stone_with_tin', {
|
||||
description = 'Tin Ore',
|
||||
tiles = {'default_desert_stone.png^default_mineral_tin.png'},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly = 1, cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:desert_cobble'}},
|
||||
{items = {'default:tin_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':tinblock', {
|
||||
description = 'Tin Block',
|
||||
tiles = {'default_tin_block.png'},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':stone_with_silver', {
|
||||
description = 'Silver Ore',
|
||||
tiles = {'default_stone.png^default_mineral_silver.png'},
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:cobble'}},
|
||||
{items = {'default:silver_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':desert_stone_with_silver', {
|
||||
description = 'Silver Ore',
|
||||
tiles = {'default_desert_stone.png^default_mineral_silver.png'},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly = 1, cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:desert_cobble'}},
|
||||
{items = {'default:silver_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':silverblock', {
|
||||
description = 'Silver Block',
|
||||
tiles = {'default_silver_block.png'},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- Meze
|
||||
|
||||
local function die_later(digger)
|
||||
digger:set_hp(0)
|
||||
end
|
||||
|
||||
minetest.register_node(modname .. ':meze', {
|
||||
description = 'Meze Block',
|
||||
tiles = {'default_meze_block.png'},
|
||||
is_ground_content = true,
|
||||
drop = '',
|
||||
groups = {cracky = 1, level = 2, fall_damage_add_percent = -75},
|
||||
sounds = default.node_sound_wood_defaults(), -- Intended.
|
||||
|
||||
on_dig = function(pos, node, digger)
|
||||
if digger and minetest.setting_getbool('enable_damage') and not minetest.setting_getbool('creative_mode') then
|
||||
minetest.after(3, die_later, digger)
|
||||
minetest.chat_send_player(digger:get_player_name(), 'You feel like you did a mistake.')
|
||||
minetest.node_dig(pos, node, digger)
|
||||
elseif digger then
|
||||
minetest.node_dig(pos, node, digger)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Mithril
|
||||
|
||||
minetest.register_node(modname .. ':stone_with_mithril', {
|
||||
description = 'Mithril Ore',
|
||||
tiles = {'default_stone.png^default_mineral_mithril.png'},
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:cobble'}},
|
||||
{items = {'default:mithril_lump'}},
|
||||
{items = {'maptools:copper_coin 3'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':mithrilblock', {
|
||||
description = 'Mithril Block',
|
||||
tiles = {'default_mithril_block.png'},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
--
|
||||
|
||||
minetest.register_node(modname .. ':stone_with_coin', {
|
||||
description = 'Stone with Coin',
|
||||
tiles = {'default_stone.png^maptools_gold_coin.png'},
|
||||
is_ground_content = true,
|
||||
groups = {cracky = 3},
|
||||
drop = {
|
||||
items = {
|
||||
{items = {'default:cobble'}},
|
||||
{items = {'maptools:gold_coin'}},
|
||||
},
|
||||
},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':ladder_obsidian', {
|
||||
description = "Obsidian Ladder",
|
||||
drawtype = 'signlike',
|
||||
tiles = {'default_ladder_obsidian.png'},
|
||||
inventory_image = 'default_ladder_obsidian.png',
|
||||
wield_image = 'default_ladder_obsidian.png',
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'wallmounted',
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
selection_box = {
|
||||
type = 'wallmounted',
|
||||
--wall_top = = <default>
|
||||
--wall_bottom = = <default>
|
||||
--wall_side = = <default>
|
||||
},
|
||||
groups = {cracky = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
default.register_fence(modname .. ':fence_cobble', {
|
||||
description = "Cobble Fence",
|
||||
texture = 'default_fence_cobble.png',
|
||||
material = 'default:cobble',
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults()
|
||||
})
|
||||
|
||||
default.register_fence(modname .. ':fence_desert_cobble', {
|
||||
description = "Desert Cobble Fence",
|
||||
texture = 'default_fence_desert_cobble.png',
|
||||
material = 'default:desert_cobble',
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults()
|
||||
})
|
||||
|
||||
default.register_fence(modname .. ':fence_steelblock', {
|
||||
description = "Steel Block Fence",
|
||||
texture = 'default_fence_steelblock.png',
|
||||
material = 'default:steelblock',
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults()
|
||||
})
|
||||
|
||||
default.register_fence(modname .. ':fence_brick', {
|
||||
description = "Brick Fence",
|
||||
texture = 'default_fence_brick.png',
|
||||
material = 'default:brick',
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults()
|
||||
})
|
||||
|
||||
-- Nyan cat
|
||||
|
||||
minetest.register_node(modname .. ':nyancat', {
|
||||
description = "Nyan Cat",
|
||||
tiles = {'default_nc_side.png', 'default_nc_side.png', 'default_nc_side.png',
|
||||
'default_nc_side.png', 'default_nc_back.png', 'default_nc_front.png'},
|
||||
paramtype2 = 'facedir',
|
||||
groups = {cracky = 2},
|
||||
is_ground_content = false,
|
||||
post_effect_color = {a = 128, r= 255, g= 128, b= 255},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':nyancat_rainbow', {
|
||||
description = "Nyan Cat Rainbow",
|
||||
drawtype = 'glasslike',
|
||||
tiles = {
|
||||
'default_nc_rb.png^[transformR90', 'default_nc_rb.png^[transformR90',
|
||||
'default_nc_rb.png', 'default_nc_rb.png'
|
||||
},
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'facedir',
|
||||
groups = {cracky = 2},
|
||||
sunlight_propagate = true,
|
||||
walkable = false,
|
||||
use_texture_alpha = true,
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
post_effect_color = {a = 128, r= 255, g= 128, b= 255},
|
||||
sounds = default.node_sound_defaults(),
|
||||
})
|
||||
|
||||
--
|
||||
|
||||
minetest.register_node(modname .. ':obsidian_cooled', {
|
||||
description = "Obsidian (cooled)",
|
||||
tiles = {'default_obsidian.png'},
|
||||
is_ground_content = true,
|
||||
drop = 'default:obsidian',
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
groups = {cracky = 1, level = 2},
|
||||
})
|
||||
|
||||
minetest.register_node(modname .. ':cobble_cooled', {
|
||||
description = "Cobblestone (cooled)",
|
||||
tiles = {'default_cobble.png'},
|
||||
is_ground_content = true,
|
||||
drop = 'default:cobble',
|
||||
groups = {cracky = 3, stone = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
BIN
mods/mff/mff_classic/textures/default_acid.png
Executable file
After Width: | Height: | Size: 360 B |
BIN
mods/mff/mff_classic/textures/default_acid_flowing_animated.png
Executable file
After Width: | Height: | Size: 2.0 KiB |
BIN
mods/mff/mff_classic/textures/default_acid_source_animated.png
Executable file
After Width: | Height: | Size: 1.7 KiB |
BIN
mods/mff/mff_classic/textures/default_cherry_blossom_leaves.png
Executable file
After Width: | Height: | Size: 571 B |
BIN
mods/mff/mff_classic/textures/default_cherry_sapling.png
Executable file
After Width: | Height: | Size: 167 B |
BIN
mods/mff/mff_classic/textures/default_cherry_top.png
Executable file
After Width: | Height: | Size: 627 B |
BIN
mods/mff/mff_classic/textures/default_cherry_tree.png
Executable file
After Width: | Height: | Size: 632 B |
BIN
mods/mff/mff_classic/textures/default_clay_burned.png
Normal file
After Width: | Height: | Size: 320 B |
BIN
mods/mff/mff_classic/textures/default_fence_brick.png
Normal file
After Width: | Height: | Size: 347 B |
BIN
mods/mff/mff_classic/textures/default_fence_cobble.png
Normal file
After Width: | Height: | Size: 261 B |
BIN
mods/mff/mff_classic/textures/default_fence_desert_cobble.png
Normal file
After Width: | Height: | Size: 235 B |
BIN
mods/mff/mff_classic/textures/default_fence_steelblock.png
Normal file
After Width: | Height: | Size: 319 B |
BIN
mods/mff/mff_classic/textures/default_ladder_obsidian.png
Executable file
After Width: | Height: | Size: 208 B |
BIN
mods/mff/mff_classic/textures/default_ladder_obsidian_inv.png
Executable file
After Width: | Height: | Size: 209 B |
BIN
mods/mff/mff_classic/textures/default_meze_block.png
Executable file
After Width: | Height: | Size: 303 B |
BIN
mods/mff/mff_classic/textures/default_mineral_mithril.png
Executable file
After Width: | Height: | Size: 141 B |
BIN
mods/mff/mff_classic/textures/default_mineral_silver.png
Executable file
After Width: | Height: | Size: 141 B |
BIN
mods/mff/mff_classic/textures/default_mineral_tin.png
Executable file
After Width: | Height: | Size: 141 B |
BIN
mods/mff/mff_classic/textures/default_mithril_block.png
Executable file
After Width: | Height: | Size: 372 B |
BIN
mods/mff/mff_classic/textures/default_mithril_ingot.png
Executable file
After Width: | Height: | Size: 266 B |
BIN
mods/mff/mff_classic/textures/default_mithril_lump.png
Executable file
After Width: | Height: | Size: 220 B |
BIN
mods/mff/mff_classic/textures/default_nc_back.png
Executable file
After Width: | Height: | Size: 186 B |
BIN
mods/mff/mff_classic/textures/default_nc_front.png
Executable file
After Width: | Height: | Size: 204 B |
BIN
mods/mff/mff_classic/textures/default_nc_rb.png
Executable file
After Width: | Height: | Size: 137 B |
BIN
mods/mff/mff_classic/textures/default_nc_side.png
Executable file
After Width: | Height: | Size: 148 B |
BIN
mods/mff/mff_classic/textures/default_sand_flowing_animated.png
Executable file
After Width: | Height: | Size: 669 B |
BIN
mods/mff/mff_classic/textures/default_sand_source_animated.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
mods/mff/mff_classic/textures/default_silver_block.png
Executable file
After Width: | Height: | Size: 315 B |
BIN
mods/mff/mff_classic/textures/default_silver_ingot.png
Executable file
After Width: | Height: | Size: 181 B |
BIN
mods/mff/mff_classic/textures/default_silver_lump.png
Executable file
After Width: | Height: | Size: 183 B |
BIN
mods/mff/mff_classic/textures/default_tin_block.png
Executable file
After Width: | Height: | Size: 486 B |
BIN
mods/mff/mff_classic/textures/default_tin_ingot.png
Executable file
After Width: | Height: | Size: 258 B |
BIN
mods/mff/mff_classic/textures/default_tin_lump.png
Executable file
After Width: | Height: | Size: 224 B |
BIN
mods/mff/mff_classic/textures/default_tool_mithrilaxe.png
Executable file
After Width: | Height: | Size: 257 B |
BIN
mods/mff/mff_classic/textures/default_tool_mithrilpick.png
Executable file
After Width: | Height: | Size: 311 B |
BIN
mods/mff/mff_classic/textures/default_tool_mithrilshovel.png
Executable file
After Width: | Height: | Size: 304 B |
BIN
mods/mff/mff_classic/textures/default_tool_mithrilsword.png
Normal file
After Width: | Height: | Size: 856 B |
BIN
mods/mff/mff_classic/textures/default_tool_nyanaxe.png
Executable file
After Width: | Height: | Size: 434 B |
BIN
mods/mff/mff_classic/textures/default_tool_nyanpick.png
Executable file
After Width: | Height: | Size: 308 B |
BIN
mods/mff/mff_classic/textures/default_tool_nyanshovel.png
Executable file
After Width: | Height: | Size: 274 B |
BIN
mods/mff/mff_classic/textures/default_tool_nyansword.png
Executable file
After Width: | Height: | Size: 334 B |
BIN
mods/mff/mff_classic/textures/default_tool_silveraxe.png
Executable file
After Width: | Height: | Size: 220 B |
BIN
mods/mff/mff_classic/textures/default_tool_silverpick.png
Executable file
After Width: | Height: | Size: 270 B |
BIN
mods/mff/mff_classic/textures/default_tool_silvershovel.png
Executable file
After Width: | Height: | Size: 204 B |
BIN
mods/mff/mff_classic/textures/default_tool_silversword.png
Executable file
After Width: | Height: | Size: 480 B |
BIN
mods/mff/mff_classic/textures/default_wood_cherry_planks.png
Executable file
After Width: | Height: | Size: 555 B |
BIN
mods/mff/mff_classic/textures/moreores_tool_bronzesword.png
Normal file
After Width: | Height: | Size: 735 B |
BIN
mods/mff/mff_classic/textures/moreores_tool_goldsword.png
Normal file
After Width: | Height: | Size: 788 B |
BIN
mods/mff/mff_classic/textures/moreores_tool_mithrilsword.png
Normal file
After Width: | Height: | Size: 856 B |
68
mods/mff/mff_classic/trees.lua
Normal file
@ -0,0 +1,68 @@
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
-- From BFD:
|
||||
|
||||
minetest.register_node(modname .. 'mg_cherry_sapling', {
|
||||
description = "Impossible to get node.",
|
||||
drawtype = 'airlike',
|
||||
paramtype = 'light',
|
||||
tiles = {'xfences_space.png'},
|
||||
groups = {not_in_creative_inventory=1},
|
||||
})
|
||||
|
||||
local c_mg_cherry_sapling = minetest.get_content_id(modname .. 'mg_cherry_sapling')
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, seed)
|
||||
local timer = os.clock()
|
||||
local vm, emin, emax = minetest.get_mapgen_object('voxelmanip')
|
||||
local data = vm:get_data()
|
||||
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
|
||||
local trees_grown = 0
|
||||
for z=minp.z, maxp.z, 1 do
|
||||
for y=minp.y, maxp.y, 1 do
|
||||
for x=minp.x, maxp.x, 1 do
|
||||
local p_pos = area:index(x,y,z)
|
||||
local content_id = data[p_pos]
|
||||
if content_id == c_mg_cherry_sapling then
|
||||
minetest.after(1, default.grow_cherry_tree,
|
||||
{x=x, y=y, z=z},
|
||||
false,
|
||||
modname .. ':cherry_tree',
|
||||
modname .. ':cherry_blossom_leaves')
|
||||
trees_grown = trees_grown + 1
|
||||
else
|
||||
-- nope
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local geninfo = string.format(" trees grown after: %.2fs", os.clock() - timer)
|
||||
minetest.log('action', trees_grown..geninfo)
|
||||
end)
|
||||
|
||||
function default.grow_cherry_tree(pos, is_apple_tree, trunk_node, leaves_node)
|
||||
--[[
|
||||
NOTE: Tree-placing code is currently duplicated in the engine
|
||||
and in games that have saplings; both are deprecated but not
|
||||
replaced yet
|
||||
--]]
|
||||
|
||||
local x, y, z = pos.x, pos.y, pos.z
|
||||
local height = random(4, 5)
|
||||
local c_tree = minetest.get_content_id(trunk_node)
|
||||
local c_leaves = minetest.get_content_id(leaves_node)
|
||||
|
||||
local vm = minetest.get_voxel_manip()
|
||||
local minp, maxp = vm:read_from_map(
|
||||
{x = pos.x - 2, y = pos.y, z = pos.z - 2},
|
||||
{x = pos.x + 2, y = pos.y + height + 1, z = pos.z + 2}
|
||||
)
|
||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
||||
local data = vm:get_data()
|
||||
|
||||
add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree)
|
||||
|
||||
vm:set_data(data)
|
||||
vm:write_to_map()
|
||||
vm:update_map()
|
||||
end
|