686 lines
18 KiB
Lua
686 lines
18 KiB
Lua
--[[
|
|
Everness. Never ending discovery in Everness mapgen.
|
|
Copyright (C) 2024 SaKeL
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
--]]
|
|
|
|
local S = minetest.get_translator(minetest.get_current_modname())
|
|
|
|
Everness:register_node('everness:mineral_cave_stone', {
|
|
description = S('Mineral Cave Stone'),
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_stone_under_top.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_stone_under_top.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_stone_under.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
}
|
|
},
|
|
drop = 'everness:mineral_cave_cobblestone',
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_cave_cobblestone', {
|
|
description = S('Mineral Cave Cobblestone'),
|
|
is_ground_content = false,
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_cobblestone_under.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
}
|
|
},
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 2,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_lava_stone', {
|
|
description = S('Mineral Lava Stone with lava'),
|
|
is_ground_content = false,
|
|
-- Textures of node; +Y, -Y, +X, -X, +Z, -Z
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_lava_stone_animated.png',
|
|
align_style = 'world',
|
|
scale = 2,
|
|
animation = {
|
|
type = 'vertical_frames',
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 6.4,
|
|
},
|
|
},
|
|
{
|
|
name = 'everness_mineral_lava_stone_bottom.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_lava_stone_side.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
}
|
|
},
|
|
drop = 'everness:mineral_lava_stone_dry',
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
light_source = 3,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_lava_stone_dry', {
|
|
description = S('Mineral Lava Stone without lava'),
|
|
is_ground_content = false,
|
|
-- Textures of node; +Y, -Y, +X, -X, +Z, -Z
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_lava_stone_bottom.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
}
|
|
},
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_lava_stone_with_moss', {
|
|
description = S('Mineral Lava Stone with moss'),
|
|
is_ground_content = false,
|
|
-- Textures of node; +Y, -Y, +X, -X, +Z, -Z
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_cave_moss.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_cave_moss.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_cave_moss_side.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
},
|
|
drop = 'everness:mineral_lava_stone_dry',
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- Everness
|
|
everness_spreading_dirt_type_under = 1,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
light_source = 3,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
})
|
|
|
|
for i = 1, 7 do
|
|
local last = i == 7
|
|
|
|
Everness:register_node('everness:volcanic_spike_' .. i, {
|
|
description = S('Volcanic Spike @1', i),
|
|
tiles = { 'everness_volcanic_rock.png' },
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
drawtype = 'nodebox',
|
|
groups = {
|
|
-- MTG
|
|
cracky = 1,
|
|
level = 2,
|
|
stone = 1,
|
|
-- MCL
|
|
pickaxey = 5,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 1200,
|
|
_mcl_hardness = 50,
|
|
is_ground_content = false,
|
|
node_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
}
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i - 1) / 16,
|
|
-8 / 16,
|
|
(-8 + i - 1) / 16,
|
|
(8 - i + 1) / 16,
|
|
8 / 16,
|
|
(8 - i + 1) / 16
|
|
}
|
|
},
|
|
collision_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
},
|
|
},
|
|
move_resistance = last and 7 or 0,
|
|
damage_per_second = last and 4 or 0,
|
|
drowning = last and 1 or 0,
|
|
walkable = not last,
|
|
climbable = last,
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_cave_stone_spike_' .. i, {
|
|
description = S('Mineral Lava Stone Spike @1', i),
|
|
-- Textures of node; +Y, -Y, +X, -X, +Z, -Z
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_stone_under_top.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_stone_under_top.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
{
|
|
name = 'everness_mineral_stone_under.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
}
|
|
},
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
drawtype = 'nodebox',
|
|
is_ground_content = false,
|
|
node_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
}
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i - 1) / 16,
|
|
-8 / 16,
|
|
(-8 + i - 1) / 16,
|
|
(8 - i + 1) / 16,
|
|
8 / 16,
|
|
(8 - i + 1) / 16
|
|
}
|
|
},
|
|
collision_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
},
|
|
},
|
|
move_resistance = last and 7 or 0,
|
|
damage_per_second = last and 4 or 0,
|
|
drowning = last and 1 or 0,
|
|
walkable = not last,
|
|
climbable = last,
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_lava_stone_spike_' .. i, {
|
|
description = S('Mineral Lava Stone Spike @1', i),
|
|
-- Textures of node; +Y, -Y, +X, -X, +Z, -Z
|
|
tiles = {
|
|
{
|
|
name = 'everness_mineral_lava_stone_animated.png',
|
|
align_style = 'world',
|
|
scale = 2,
|
|
animation = {
|
|
type = 'vertical_frames',
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 6.4,
|
|
},
|
|
},
|
|
},
|
|
groups = {
|
|
-- MTG
|
|
cracky = 3,
|
|
-- MCL
|
|
pickaxey = 1,
|
|
building_block = 1,
|
|
material_stone = 1,
|
|
-- ALL
|
|
stone = 1,
|
|
},
|
|
_mcl_blast_resistance = 6,
|
|
_mcl_hardness = 1.5,
|
|
_mcl_silk_touch_drop = true,
|
|
sounds = Everness.node_sound_stone_defaults(),
|
|
drawtype = 'nodebox',
|
|
is_ground_content = false,
|
|
node_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
}
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i - 1) / 16,
|
|
-8 / 16,
|
|
(-8 + i - 1) / 16,
|
|
(8 - i + 1) / 16,
|
|
8 / 16,
|
|
(8 - i + 1) / 16
|
|
}
|
|
},
|
|
collision_box = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
(-8 + i) / 16,
|
|
-8 / 16,
|
|
(-8 + i) / 16,
|
|
(8 - i) / 16,
|
|
8 / 16,
|
|
(8 - i) / 16
|
|
},
|
|
},
|
|
light_source = 12,
|
|
move_resistance = last and 7 or 0,
|
|
damage_per_second = last and 4 or 0,
|
|
drowning = last and 1 or 0,
|
|
walkable = not last,
|
|
climbable = last,
|
|
})
|
|
end
|
|
|
|
Everness:register_node('everness:lava_tree', {
|
|
description = S('Lava Tree Trunk'),
|
|
short_description = S('Lava Tree Trunk'),
|
|
tiles = {
|
|
{ name = 'everness_lava_tree_top.png' },
|
|
{ name = 'everness_lava_tree_top.png' },
|
|
{
|
|
name = 'everness_lava_tree.png',
|
|
align_style = 'world',
|
|
scale = 2,
|
|
},
|
|
},
|
|
paramtype2 = 'facedir',
|
|
is_ground_content = false,
|
|
groups = {
|
|
-- MTG
|
|
choppy = 2,
|
|
oddly_breakable_by_hand = 1,
|
|
-- MCL
|
|
handy = 1,
|
|
axey = 1,
|
|
building_block = 1,
|
|
material_wood = 1,
|
|
fire_encouragement = 5,
|
|
fire_flammability = 5,
|
|
-- ALL
|
|
tree = 1,
|
|
flammable = 2,
|
|
},
|
|
_mcl_blast_resistance = 2,
|
|
_mcl_hardness = 2,
|
|
sounds = Everness.node_sound_wood_defaults(),
|
|
on_place = minetest.rotate_node
|
|
})
|
|
|
|
Everness:register_node('everness:lava_tree_with_lava', {
|
|
description = S('Lava Tree Trunk with Lava Veins'),
|
|
short_description = S('Lava Tree Trunk with Lava Veins'),
|
|
tiles = {
|
|
{ name = 'everness_lava_tree_top.png' },
|
|
{ name = 'everness_lava_tree_top.png' },
|
|
{
|
|
name = 'everness_lava_tree_animated.png',
|
|
align_style = 'world',
|
|
scale = 8,
|
|
animation = {
|
|
type = 'vertical_frames',
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 8,
|
|
},
|
|
},
|
|
},
|
|
paramtype2 = 'facedir',
|
|
is_ground_content = false,
|
|
groups = {
|
|
-- MTG
|
|
choppy = 2,
|
|
oddly_breakable_by_hand = 1,
|
|
-- MCL
|
|
handy = 1,
|
|
axey = 1,
|
|
building_block = 1,
|
|
material_wood = 1,
|
|
fire_encouragement = 5,
|
|
fire_flammability = 5,
|
|
-- ALL
|
|
tree = 1,
|
|
flammable = 2,
|
|
},
|
|
_mcl_blast_resistance = 2,
|
|
_mcl_hardness = 2,
|
|
sounds = Everness.node_sound_wood_defaults(),
|
|
on_place = minetest.rotate_node,
|
|
light_source = 3,
|
|
})
|
|
|
|
Everness:register_node('everness:lava_tree_wood', {
|
|
description = S('Lava Tree Wood Planks'),
|
|
paramtype2 = 'facedir',
|
|
place_param2 = 0,
|
|
tiles = {
|
|
{
|
|
name = 'everness_lava_tree_wood.png',
|
|
align_style = 'world',
|
|
scale = 2
|
|
},
|
|
},
|
|
is_ground_content = false,
|
|
groups = {
|
|
-- MTG
|
|
choppy = 3,
|
|
oddly_breakable_by_hand = 2,
|
|
-- Everness
|
|
everness_wood = 1,
|
|
-- MCL
|
|
handy = 1,
|
|
axey = 1,
|
|
building_block = 1,
|
|
material_wood = 1,
|
|
fire_encouragement = 5,
|
|
fire_flammability = 20,
|
|
-- ALL
|
|
flammable = 3,
|
|
wood = 1,
|
|
},
|
|
_mcl_blast_resistance = 3,
|
|
_mcl_hardness = 2,
|
|
sounds = Everness.node_sound_wood_defaults(),
|
|
})
|
|
|
|
Everness:register_node('everness:lava_tree_sapling', {
|
|
description = S('Lava Tree Sapling'),
|
|
short_description = S('Lava Tree Sapling'),
|
|
drawtype = 'plantlike',
|
|
tiles = { 'everness_lava_tree_sapling.png' },
|
|
inventory_image = 'everness_lava_tree_sapling.png',
|
|
wield_image = 'everness_lava_tree_sapling.png',
|
|
paramtype = 'light',
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = { -4 / 16, -0.5, -4 / 16, 4 / 16, 4 / 16, 4 / 16 }
|
|
},
|
|
groups = {
|
|
-- MTG
|
|
snappy = 2,
|
|
flammable = 2,
|
|
-- X Farming
|
|
compost = 30,
|
|
-- MCL
|
|
plant = 1,
|
|
non_mycelium_plant = 1,
|
|
deco_block = 1,
|
|
dig_by_water = 1,
|
|
dig_by_piston = 1,
|
|
destroy_by_lava_flow = 1,
|
|
compostability = 30,
|
|
-- ALL
|
|
dig_immediate = 3,
|
|
attached_node = 1,
|
|
sapling = 1,
|
|
},
|
|
_mcl_blast_resistance = 0,
|
|
_mcl_hardness = 0,
|
|
sounds = Everness.node_sound_leaves_defaults(),
|
|
on_timer = function(pos)
|
|
Everness.grow_sapling(pos)
|
|
end,
|
|
on_construct = function(pos)
|
|
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
|
end,
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
local on_place_props = {
|
|
sapling_name = 'everness:lava_tree_sapling',
|
|
minp_relative = { x = -7, y = 1, z = -7 },
|
|
maxp_relative = { x = 7, y = 13, z = 7 },
|
|
interval = 4,
|
|
}
|
|
|
|
return Everness:sapling_on_place(itemstack, placer, pointed_thing, on_place_props)
|
|
end,
|
|
})
|
|
|
|
Everness:register_node('everness:lava_tree_leaves', {
|
|
description = S('Lava Tree Leaves'),
|
|
short_description = S('Lava Tree Leaves'),
|
|
drawtype = 'allfaces_optional',
|
|
tiles = {
|
|
{
|
|
name = 'everness_lava_tree_leaves.png',
|
|
align_style = 'world',
|
|
scale = 2,
|
|
},
|
|
},
|
|
special_tiles = {
|
|
{
|
|
name = 'everness_lava_tree_leaves.png',
|
|
align_style = 'world',
|
|
scale = 2,
|
|
},
|
|
},
|
|
paramtype = 'light',
|
|
is_ground_content = false,
|
|
sunlight_propagates = true,
|
|
groups = {
|
|
-- MTG
|
|
snappy = 3,
|
|
leafdecay = 3,
|
|
-- X Farming
|
|
compost = 30,
|
|
-- MCL
|
|
handy = 1,
|
|
hoey = 1,
|
|
shearsy = 1,
|
|
swordy = 1,
|
|
dig_by_piston = 1,
|
|
fire_encouragement = 30,
|
|
fire_flammability = 60,
|
|
deco_block = 1,
|
|
compostability = 30,
|
|
-- ALL
|
|
flammable = 2,
|
|
leaves = 1,
|
|
},
|
|
_mcl_shears_drop = true,
|
|
_mcl_blast_resistance = 0.2,
|
|
_mcl_hardness = 0.2,
|
|
_mcl_silk_touch_drop = true,
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{
|
|
-- player will get sapling with 1/100 chance
|
|
items = { 'everness:lava_tree_sapling' },
|
|
rarity = 100,
|
|
},
|
|
{
|
|
-- player will get leaves only if he get no saplings,
|
|
-- this is because max_items is 1
|
|
items = { 'everness:lava_tree_leaves' },
|
|
}
|
|
}
|
|
},
|
|
sounds = Everness.node_sound_leaves_defaults(),
|
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
|
return Everness:after_place_leaves(pos, placer, itemstack, pointed_thing)
|
|
end
|
|
})
|
|
|
|
Everness:register_node('everness:mineral_cave_moss_grass', {
|
|
description = S('Mineral Cave Moss Grass'),
|
|
short_description = S('Mineral Cave Moss Grass'),
|
|
drawtype = 'plantlike',
|
|
waving = 1,
|
|
tiles = { 'everness_mineral_cave_moss_grass.png' },
|
|
inventory_image = 'everness_mineral_cave_moss_grass.png',
|
|
wield_image = 'everness_mineral_cave_moss_grass.png',
|
|
paramtype = 'light',
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
buildable_to = true,
|
|
groups = {
|
|
-- MTG
|
|
snappy = 3,
|
|
flora = 1,
|
|
-- Everness
|
|
mineral_waters_grass_under = 1,
|
|
-- X Farming
|
|
compost = 30,
|
|
-- MCL
|
|
handy = 1,
|
|
shearsy = 1,
|
|
deco_block = 1,
|
|
plant = 1,
|
|
non_mycelium_plant = 1,
|
|
fire_encouragement = 60,
|
|
fire_flammability = 100,
|
|
dig_by_water = 1,
|
|
destroy_by_lava_flow = 1,
|
|
compostability = 30,
|
|
-- ALL
|
|
attached_node = 1,
|
|
flammable = 2,
|
|
},
|
|
_mcl_blast_resistance = 0,
|
|
_mcl_hardness = 0,
|
|
sounds = Everness.node_sound_leaves_defaults(),
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = { -6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16 },
|
|
},
|
|
light_source = 7
|
|
})
|