Add deep ocean biomes
This commit is contained in:
parent
7e8478ccea
commit
07718f6e04
|
@ -26,6 +26,7 @@ Additionally adds extra biomes to the MT game default biomes:
|
|||
* Coral Forest
|
||||
* Coral Forest Dunes
|
||||
* Coral Forest Ocean
|
||||
* Coral Forest Deep Ocean
|
||||
* Coral Forest Under
|
||||
* Frosted Icesheet
|
||||
* Frosted Icesheet Ocean
|
||||
|
@ -34,11 +35,13 @@ Additionally adds extra biomes to the MT game default biomes:
|
|||
* Cursed Lands Dunes
|
||||
* Cursed Lands Swamp
|
||||
* Cursed Lands Ocean
|
||||
* Cursed Lands Deep Ocean
|
||||
* Cursed Lands Under
|
||||
* Crystal Forest
|
||||
* Crystal Forest Dunes
|
||||
* Crystal Forest Shore
|
||||
* Crystal Forest Ocean
|
||||
* Crystal Forest Deep Ocean
|
||||
* Crystal Forest Under
|
||||
* Bamboo Forest
|
||||
* Bamboo Forest Under
|
||||
|
|
145
api.lua
145
api.lua
|
@ -394,7 +394,12 @@ Everness = {
|
|||
everness_coral_forest_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_coral_forest_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_coral_forest_ocean_y_max')) or 3,
|
||||
y_min = tonumber(minetest.settings:get('everness_coral_forest_ocean_y_min')) or -255,
|
||||
y_min = tonumber(minetest.settings:get('everness_coral_forest_ocean_y_min')) or -10,
|
||||
},
|
||||
everness_coral_forest_deep_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_coral_forest_deep_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_coral_forest_deep_ocean_y_max')) or -11,
|
||||
y_min = tonumber(minetest.settings:get('everness_coral_forest_deep_ocean_y_min')) or -255,
|
||||
},
|
||||
everness_coral_forest_under = {
|
||||
enabled = minetest.settings:get_bool('everness_coral_forest_under', true),
|
||||
|
@ -434,6 +439,11 @@ Everness = {
|
|||
everness_cursed_lands_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_cursed_lands_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_max')) or -2,
|
||||
y_min = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_min')) or -10,
|
||||
},
|
||||
everness_cursed_lands_deep_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_cursed_lands_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_max')) or -11,
|
||||
y_min = tonumber(minetest.settings:get('everness_cursed_lands_ocean_y_min')) or -255,
|
||||
},
|
||||
everness_cursed_lands_under = {
|
||||
|
@ -459,7 +469,12 @@ Everness = {
|
|||
everness_crystal_forest_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_crystal_forest_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_crystal_forest_ocean_y_max')) or -2,
|
||||
y_min = tonumber(minetest.settings:get('everness_crystal_forest_ocean_y_min')) or -255,
|
||||
y_min = tonumber(minetest.settings:get('everness_crystal_forest_ocean_y_min')) or -10,
|
||||
},
|
||||
everness_crystal_forest_deep_ocean = {
|
||||
enabled = minetest.settings:get_bool('everness_crystal_forest_deep_ocean', true),
|
||||
y_max = tonumber(minetest.settings:get('everness_crystal_forest_deep_ocean_y_max')) or -11,
|
||||
y_min = tonumber(minetest.settings:get('everness_crystal_forest_deep_ocean_y_min')) or -255,
|
||||
},
|
||||
everness_crystal_forest_under = {
|
||||
enabled = minetest.settings:get_bool('everness_crystal_forest_under', true),
|
||||
|
@ -728,6 +743,45 @@ function Everness.node_sound_mud_defaults(table)
|
|||
return table
|
||||
end
|
||||
|
||||
function Everness.node_sound_grass_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{ name = 'everness_grass_footstep', gain = 0.4 }
|
||||
table.dig = table.dig or
|
||||
{ name = 'everness_grass_hit', gain = 1.2 }
|
||||
table.dug = table.dug or
|
||||
{ name = 'everness_dirt_hit', gain = 1.0 }
|
||||
table.place = table.place or
|
||||
{ name = 'everness_dirt_hit', gain = 1.0 }
|
||||
return table
|
||||
end
|
||||
|
||||
function Everness.node_sound_dirt_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{ name = 'everness_dirt_footstep', gain = 0.15 }
|
||||
table.dig = table.dig or
|
||||
{ name = 'everness_dirt_hit', gain = 0.4 }
|
||||
table.dug = table.dug or
|
||||
{ name = 'everness_dirt_hit', gain = 1.0 }
|
||||
table.place = table.place or
|
||||
{ name = 'everness_dirt_hit', gain = 1.0 }
|
||||
return table
|
||||
end
|
||||
|
||||
function Everness.node_sound_ice_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{ name = 'everness_ice_footstep', gain = 0.2 }
|
||||
table.dig = table.dig or
|
||||
{ name = 'everness_ice_hit', gain = 0.4 }
|
||||
table.dug = table.dug or
|
||||
{ name = 'everness_ice_hit', gain = 1.0 }
|
||||
table.place = table.place or
|
||||
{ name = 'everness_ice_hit', gain = 1.0 }
|
||||
return table
|
||||
end
|
||||
|
||||
--
|
||||
-- Forsted Cave Icicles
|
||||
--
|
||||
|
@ -777,3 +831,90 @@ function Everness.emerge_icicle_area_recursive(pos_node, incrementer, pos_marker
|
|||
}
|
||||
)
|
||||
end
|
||||
|
||||
function Everness.use_shell_of_underwater_breathing(self, itemstack, user, pointed_thing)
|
||||
if not user then
|
||||
return
|
||||
end
|
||||
|
||||
local pos_player = user:get_pos()
|
||||
|
||||
if pointed_thing.type == 'node' then
|
||||
local pos_pt = minetest.get_pointed_thing_position(pointed_thing)
|
||||
|
||||
if not pos_pt then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local pointed_node = minetest.get_node(pos_pt)
|
||||
local pointed_node_def = minetest.registered_nodes[pointed_node.name]
|
||||
|
||||
if not pointed_node or not pointed_node_def then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if pointed_node_def.on_rightclick then
|
||||
return pointed_node_def.on_rightclick(pos_pt, pointed_node, user, itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local node_head = minetest.get_node(
|
||||
vector.new(
|
||||
math.floor(pos_player.x + 0.5),
|
||||
math.ceil(pos_player.y + 1),
|
||||
math.floor(pos_player.z + 0.5)
|
||||
)
|
||||
)
|
||||
local breath = user:get_breath()
|
||||
|
||||
if minetest.get_item_group(node_head.name, 'water') > 0 and breath < 9 then
|
||||
-- Under water
|
||||
user:set_breath(9)
|
||||
|
||||
if not minetest.settings:get_bool('creative_mode')
|
||||
or not minetest.check_player_privs(user:get_player_name(), { creative = true })
|
||||
then
|
||||
itemstack:add_wear(65535 / 20)
|
||||
end
|
||||
|
||||
minetest.sound_play('everness_underwater_bubbles', {
|
||||
object = user,
|
||||
gain = 1.0,
|
||||
max_hear_distance = 16
|
||||
})
|
||||
|
||||
minetest.add_particlespawner({
|
||||
amount = 20,
|
||||
time = 0.1,
|
||||
pos = {
|
||||
min = vector.new(pos_player.x - 0.25, pos_player.y + 1.25, pos_player.z - 0.25),
|
||||
max = vector.new(pos_player.x + 0.25, pos_player.y + 1.5, pos_player.z + 0.25)
|
||||
},
|
||||
vel = {
|
||||
min = vector.new(-0.5, 0, -0.5),
|
||||
max = vector.new(0.5, 0, 0.5)
|
||||
},
|
||||
acc = {
|
||||
min = vector.new(-0.5, 4, -0.5),
|
||||
max = vector.new(0.5, 1, 0.5),
|
||||
},
|
||||
exptime = {
|
||||
min = 1,
|
||||
max = 2
|
||||
},
|
||||
size = {
|
||||
min = 0.5,
|
||||
max = 2
|
||||
},
|
||||
texture = {
|
||||
name = 'everness_bubble.png',
|
||||
alpha_tween = {
|
||||
1, 0,
|
||||
start = 0.75
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
|
66
crafting.lua
66
crafting.lua
|
@ -250,6 +250,22 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:coral_deep_ocean_sandstone_block 4',
|
||||
recipe = {
|
||||
{ 'everness:coral_forest_deep_ocean_sand', 'everness:coral_forest_deep_ocean_sand' },
|
||||
{ 'everness:coral_forest_deep_ocean_sand', 'everness:coral_forest_deep_ocean_sand' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:coral_deep_ocean_sandstone_brick 4',
|
||||
recipe = {
|
||||
{ 'everness:coral_deep_ocean_sandstone_block', 'everness:coral_deep_ocean_sandstone_block' },
|
||||
{ 'everness:coral_deep_ocean_sandstone_block', 'everness:coral_deep_ocean_sandstone_block' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:coral_sandstone_chiseled 9',
|
||||
recipe = {
|
||||
|
@ -453,6 +469,56 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:coral_forest_deep_ocean_lantern 1',
|
||||
recipe = {
|
||||
{ 'everness:coral_deep_ocean_sandstone_block', 'default:glass', 'everness:coral_deep_ocean_sandstone_block' },
|
||||
{ 'default:glass', 'default:torch', 'default:glass' },
|
||||
{ 'everness:coral_deep_ocean_sandstone_block', 'default:glass', 'everness:coral_deep_ocean_sandstone_block' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:cursed_lands_deep_ocean_sandstone_block 4',
|
||||
recipe = {
|
||||
{ 'everness:cursed_lands_deep_ocean_sand', 'everness:cursed_lands_deep_ocean_sand' },
|
||||
{ 'everness:cursed_lands_deep_ocean_sand', 'everness:cursed_lands_deep_ocean_sand' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:cursed_lands_deep_ocean_sandstone_brick 4',
|
||||
recipe = {
|
||||
{ 'everness:cursed_lands_deep_ocean_sandstone_block', 'everness:cursed_lands_deep_ocean_sandstone_block' },
|
||||
{ 'everness:cursed_lands_deep_ocean_sandstone_block', 'everness:cursed_lands_deep_ocean_sandstone_block' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:crystal_forest_deep_ocean_sandstone_block 4',
|
||||
recipe = {
|
||||
{ 'everness:crystal_forest_deep_ocean_sand', 'everness:crystal_forest_deep_ocean_sand' },
|
||||
{ 'everness:crystal_forest_deep_ocean_sand', 'everness:crystal_forest_deep_ocean_sand' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:crystal_forest_deep_ocean_sandstone_brick 4',
|
||||
recipe = {
|
||||
{ 'everness:crystal_forest_deep_ocean_sandstone_block', 'everness:crystal_forest_deep_ocean_sandstone_block' },
|
||||
{ 'everness:crystal_forest_deep_ocean_sandstone_block', 'everness:crystal_forest_deep_ocean_sandstone_block' },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'everness:shell_of_underwater_breathing',
|
||||
recipe = {
|
||||
{ '', '', 'group:everness_crystal_forest_deep_ocean_coral' },
|
||||
{ '', 'group:everness_cursed_lands_deep_ocean_coral', '' },
|
||||
{ 'group:everness_coral_forest_deep_ocean_coral', '', '' },
|
||||
}
|
||||
})
|
||||
|
||||
--
|
||||
-- Tools
|
||||
--
|
||||
|
|
269
functions.lua
269
functions.lua
|
@ -355,7 +355,7 @@ minetest.register_abm({
|
|||
chance = 16,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if not minetest.settings:get_bool('enable_particles') then
|
||||
if not minetest.settings:get_bool('enable_particles', true) then
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -429,7 +429,7 @@ minetest.register_abm({
|
|||
chance = 16,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if not minetest.settings:get_bool('enable_particles') then
|
||||
if not minetest.settings:get_bool('enable_particles', true) then
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -510,3 +510,268 @@ minetest.register_abm({
|
|||
Everness:grow_cactus(...)
|
||||
end
|
||||
})
|
||||
|
||||
--
|
||||
-- Bio Bubbles
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = 'everness:bio_bubbles',
|
||||
nodenames = { 'group:bio_bubbles' },
|
||||
neighbors = { 'default:water_source' },
|
||||
interval = 16,
|
||||
chance = 2,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if not minetest.settings:get_bool('enable_particles', true) then
|
||||
return
|
||||
end
|
||||
|
||||
local water_above = minetest.find_nodes_in_area(pos, { x = pos.x, y = pos.y + 10, z = pos.z }, { 'group:water' })
|
||||
|
||||
if #water_above < 10 then
|
||||
return
|
||||
end
|
||||
|
||||
-- particles
|
||||
local particlespawner_def = {
|
||||
amount = 50,
|
||||
time = 10,
|
||||
minpos = vector.new({ x = pos.x - 0.1, y = pos.y + 0.6, z = pos.z - 0.1 }),
|
||||
maxpos = vector.new({ x = pos.x + 0.1, y = pos.y + 0.6, z = pos.z + 0.1 }),
|
||||
minvel = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxvel = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minacc = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxacc = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minexptime = 5,
|
||||
maxexptime = 7,
|
||||
minsize = 2,
|
||||
maxsize = 3.5,
|
||||
texture = 'everness_bubble.png',
|
||||
glow = 7
|
||||
}
|
||||
|
||||
if minetest.has_feature({ dynamic_add_media_table = true, particlespawner_tweenable = true }) then
|
||||
-- new syntax, after v5.6.0
|
||||
particlespawner_def = {
|
||||
amount = 50,
|
||||
time = 10,
|
||||
size = {
|
||||
min = 2,
|
||||
max = 3.5,
|
||||
},
|
||||
exptime = {
|
||||
min = 5,
|
||||
max = 7
|
||||
},
|
||||
pos = {
|
||||
min = vector.new({ x = pos.x - 0.1, y = pos.y + 0.6, z = pos.z - 0.1 }),
|
||||
max = vector.new({ x = pos.x + 0.1, y = pos.y + 0.6, z = pos.z + 0.1 }),
|
||||
},
|
||||
vel = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
acc = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
texture = {
|
||||
name = 'everness_bubble.png',
|
||||
alpha_tween = {
|
||||
1, 0,
|
||||
style = 'fwd',
|
||||
reps = 1
|
||||
},
|
||||
scale_tween = {
|
||||
0.5, 1,
|
||||
style = 'fwd',
|
||||
reps = 1
|
||||
}
|
||||
},
|
||||
glow = 7
|
||||
}
|
||||
end
|
||||
|
||||
minetest.add_particlespawner(particlespawner_def)
|
||||
end
|
||||
})
|
||||
|
||||
--
|
||||
-- Rising Souls
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = 'everness:rising_souls',
|
||||
nodenames = { 'group:rising_souls' },
|
||||
neighbors = { 'default:water_source' },
|
||||
interval = 16,
|
||||
chance = 2,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if not minetest.settings:get_bool('enable_particles', true) then
|
||||
return
|
||||
end
|
||||
|
||||
local water_above = minetest.find_nodes_in_area(pos, { x = pos.x, y = pos.y + 10, z = pos.z }, { 'group:water' })
|
||||
|
||||
if #water_above < 10 then
|
||||
return
|
||||
end
|
||||
|
||||
-- particles
|
||||
local particlespawner_def = {
|
||||
amount = 17,
|
||||
time = 10,
|
||||
minpos = vector.new({ x = pos.x - 0.3, y = pos.y + 0.6, z = pos.z - 0.3 }),
|
||||
maxpos = vector.new({ x = pos.x + 0.3, y = pos.y + 0.6, z = pos.z + 0.3 }),
|
||||
minvel = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxvel = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minacc = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxacc = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minexptime = 4,
|
||||
maxexptime = 6,
|
||||
minsize = 4,
|
||||
maxsize = 6,
|
||||
texture = 'everness_rising_soul_particle.png',
|
||||
glow = 7
|
||||
}
|
||||
|
||||
if minetest.has_feature({ dynamic_add_media_table = true, particlespawner_tweenable = true }) then
|
||||
-- new syntax, after v5.6.0
|
||||
particlespawner_def = {
|
||||
amount = 17,
|
||||
time = 10,
|
||||
size = {
|
||||
min = 4,
|
||||
max = 6,
|
||||
},
|
||||
exptime = {
|
||||
min = 4,
|
||||
max = 6
|
||||
},
|
||||
pos = {
|
||||
min = vector.new({ x = pos.x - 0.3, y = pos.y + 0.6, z = pos.z - 0.3 }),
|
||||
max = vector.new({ x = pos.x + 0.3, y = pos.y + 0.6, z = pos.z + 0.3 }),
|
||||
},
|
||||
vel = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
acc = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
texture = {
|
||||
name = 'everness_rising_soul_particle.png',
|
||||
animation = {
|
||||
type = 'vertical_frames',
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 2,
|
||||
},
|
||||
alpha_tween = {
|
||||
1, 0,
|
||||
style = 'fwd',
|
||||
reps = 1
|
||||
},
|
||||
scale_tween = {
|
||||
0.5, 1,
|
||||
style = 'fwd',
|
||||
reps = 1
|
||||
}
|
||||
},
|
||||
glow = 7
|
||||
}
|
||||
end
|
||||
|
||||
minetest.add_particlespawner(particlespawner_def)
|
||||
end
|
||||
})
|
||||
|
||||
--
|
||||
-- Rising Crystals
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = 'everness:rising_souls',
|
||||
nodenames = { 'group:rising_crystals' },
|
||||
neighbors = { 'default:water_source' },
|
||||
interval = 16,
|
||||
chance = 2,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if not minetest.settings:get_bool('enable_particles', true) then
|
||||
return
|
||||
end
|
||||
|
||||
local water_above = minetest.find_nodes_in_area(pos, { x = pos.x, y = pos.y + 10, z = pos.z }, { 'group:water' })
|
||||
|
||||
if #water_above < 10 then
|
||||
return
|
||||
end
|
||||
|
||||
-- particles
|
||||
local particlespawner_def = {
|
||||
amount = 17,
|
||||
time = 10,
|
||||
minpos = vector.new({ x = pos.x - 0.3, y = pos.y + 0.6, z = pos.z - 0.3 }),
|
||||
maxpos = vector.new({ x = pos.x + 0.3, y = pos.y + 0.6, z = pos.z + 0.3 }),
|
||||
minvel = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxvel = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minacc = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
maxacc = vector.new({ x = 0.1, y = 0.5, z = 0.1 }),
|
||||
minexptime = 4,
|
||||
maxexptime = 6,
|
||||
minsize = 4,
|
||||
maxsize = 6,
|
||||
texture = 'everness_rising_soul_particle.png',
|
||||
glow = 7
|
||||
}
|
||||
|
||||
if minetest.has_feature({ dynamic_add_media_table = true, particlespawner_tweenable = true }) then
|
||||
-- new syntax, after v5.6.0
|
||||
particlespawner_def = {
|
||||
amount = 25,
|
||||
time = 10,
|
||||
size = {
|
||||
min = 6,
|
||||
max = 8,
|
||||
},
|
||||
exptime = {
|
||||
min = 4,
|
||||
max = 6
|
||||
},
|
||||
pos = {
|
||||
min = vector.new({ x = pos.x - 0.3, y = pos.y + 0.6, z = pos.z - 0.3 }),
|
||||
max = vector.new({ x = pos.x + 0.3, y = pos.y + 0.6, z = pos.z + 0.3 }),
|
||||
},
|
||||
vel = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
acc = {
|
||||
min = vector.new({ x = -0.1, y = 0.25, z = -0.1 }),
|
||||
max = vector.new({ x = 0.1, y = 0.5, z = 0.1 })
|
||||
},
|
||||
texture = {
|
||||
name = 'everness_crystal_forest_deep_ocean_sand_bubbles.png',
|
||||
animation = {
|
||||
type = 'vertical_frames',
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1,
|
||||
},
|
||||
alpha_tween = {
|
||||
1, 0.5,
|
||||
style = 'fwd',
|
||||
reps = 1
|
||||
}
|
||||
},
|
||||
glow = 7
|
||||
}
|
||||
end
|
||||
|
||||
minetest.add_particlespawner(particlespawner_def)
|
||||
end
|
||||
})
|
||||
|
|
12
init.lua
12
init.lua
|
@ -51,6 +51,10 @@ if Everness.settings.biomes.everness_coral_forest_ocean.enabled then
|
|||
dofile(path .. '/mapgen_coral_forest_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_coral_forest_deep_ocean.enabled then
|
||||
dofile(path .. '/mapgen_coral_forest_deep_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_coral_forest_under.enabled then
|
||||
dofile(path .. '/mapgen_coral_forest_under.lua')
|
||||
end
|
||||
|
@ -67,6 +71,10 @@ if Everness.settings.biomes.everness_crystal_forest_ocean.enabled then
|
|||
dofile(path .. '/mapgen_crystal_forest_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_crystal_forest_deep_ocean.enabled then
|
||||
dofile(path .. '/mapgen_crystal_forest_deep_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_crystal_forest_shore.enabled then
|
||||
dofile(path .. '/mapgen_crystal_forest_shore.lua')
|
||||
end
|
||||
|
@ -87,6 +95,10 @@ if Everness.settings.biomes.everness_cursed_lands_ocean.enabled then
|
|||
dofile(path .. '/mapgen_cursed_lands_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_cursed_lands_deep_ocean.enabled then
|
||||
dofile(path .. '/mapgen_cursed_lands_deep_ocean.lua')
|
||||
end
|
||||
|
||||
if Everness.settings.biomes.everness_cursed_lands_swamp.enabled then
|
||||
dofile(path .. '/mapgen_cursed_lands_swamp.lua')
|
||||
end
|
||||
|
|
|
@ -26,6 +26,10 @@ minetest.register_lbm({
|
|||
'everness:quartz_temple_lootchest_marker',
|
||||
'everness:forsaken_desert_temple_marker',
|
||||
'everness:forsaken_desert_temple_2_marker',
|
||||
'everness:coral_forest_deep_ocean_house_marker',
|
||||
'everness:cursed_lands_deep_ocean_skull_marker',
|
||||
'everness:frosted_icesheet_igloo_marker',
|
||||
'everness:crystal_forest_deep_ocean_ruins_marker',
|
||||
},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
|
@ -126,6 +130,74 @@ minetest.register_lbm({
|
|||
--
|
||||
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
|
||||
|
||||
if rand:next(0, 100) <= item_def.chance then
|
||||
local stack = ItemStack(item_def.name)
|
||||
|
||||
if minetest.registered_tools[item_def.name] then
|
||||
stack:set_wear(rand:next(1, 65535))
|
||||
else
|
||||
stack:set_count(rand:next(1, item_def.max_count))
|
||||
end
|
||||
|
||||
inv:set_stack('main', index, stack)
|
||||
end
|
||||
elseif node.name == 'everness:coral_forest_deep_ocean_house_marker' then
|
||||
--
|
||||
-- Deep Ocean House
|
||||
--
|
||||
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
|
||||
|
||||
if rand:next(0, 100) <= item_def.chance then
|
||||
local stack = ItemStack(item_def.name)
|
||||
|
||||
if minetest.registered_tools[item_def.name] then
|
||||
stack:set_wear(rand:next(1, 65535))
|
||||
else
|
||||
stack:set_count(rand:next(1, item_def.max_count))
|
||||
end
|
||||
|
||||
inv:set_stack('main', index, stack)
|
||||
end
|
||||
elseif node.name == 'everness:cursed_lands_deep_ocean_skull_marker' then
|
||||
--
|
||||
-- Deep Ocean Skull
|
||||
--
|
||||
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
|
||||
|
||||
if rand:next(0, 100) <= item_def.chance then
|
||||
local stack = ItemStack(item_def.name)
|
||||
|
||||
if minetest.registered_tools[item_def.name] then
|
||||
stack:set_wear(rand:next(1, 65535))
|
||||
else
|
||||
stack:set_count(rand:next(1, item_def.max_count))
|
||||
end
|
||||
|
||||
inv:set_stack('main', index, stack)
|
||||
end
|
||||
elseif node.name == 'everness:frosted_icesheet_igloo_marker' then
|
||||
--
|
||||
-- Igloo
|
||||
--
|
||||
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
|
||||
|
||||
if rand:next(0, 100) <= item_def.chance then
|
||||
local stack = ItemStack(item_def.name)
|
||||
|
||||
if minetest.registered_tools[item_def.name] then
|
||||
stack:set_wear(rand:next(1, 65535))
|
||||
else
|
||||
stack:set_count(rand:next(1, item_def.max_count))
|
||||
end
|
||||
|
||||
inv:set_stack('main', index, stack)
|
||||
end
|
||||
elseif node.name == 'everness:crystal_forest_deep_ocean_ruins_marker' then
|
||||
--
|
||||
-- Crystal Forest Deep Ocean Ruins
|
||||
--
|
||||
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
|
||||
|
||||
if rand:next(0, 100) <= item_def.chance then
|
||||
local stack = ItemStack(item_def.name)
|
||||
|
||||
|
|
|
@ -30,13 +30,14 @@ local c_forsaken_desert_sand = minetest.get_content_id('everness:forsaken_desert
|
|||
local c_forsaken_desert_chiseled_stone = minetest.get_content_id('everness:forsaken_desert_chiseled_stone')
|
||||
local c_forsaken_desert_brick = minetest.get_content_id('everness:forsaken_desert_brick')
|
||||
local c_forsaken_desert_engraved_stone = minetest.get_content_id('everness:forsaken_desert_engraved_stone')
|
||||
local c_frosted_snowblock = minetest.get_content_id('everness:frosted_snowblock')
|
||||
local c_frosted_ice = minetest.get_content_id('everness:frosted_ice')
|
||||
|
||||
-- Localize data buffer table outside the loop, to be re-used for all
|
||||
-- mapchunks, therefore minimising memory use.
|
||||
local data = {}
|
||||
local chance = 15
|
||||
local disp = 16
|
||||
local rotations = { '0', '90', '180', '270' }
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local rand = PcgRandom(blockseed)
|
||||
|
@ -66,9 +67,10 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
or data[vi] == c_dry_ocean_dirt
|
||||
or data[vi] == c_dirt_with_snow
|
||||
or data[vi] == c_dirt_with_coniferous_litter
|
||||
or data[vi] == c_frosted_snowblock
|
||||
or data[vi] == c_frosted_ice
|
||||
)
|
||||
then
|
||||
local rotation = rotations[rand:next(1, #rotations)]
|
||||
local s_pos = area:position(vi)
|
||||
local biome_data = minetest.get_biome_data(s_pos)
|
||||
|
||||
|
@ -95,7 +97,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -116,7 +118,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -137,7 +139,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -158,7 +160,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -181,7 +183,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -225,7 +227,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
minetest.place_schematic(
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
@ -235,6 +237,29 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
end
|
||||
}
|
||||
)
|
||||
elseif (biome_name == 'everness_frosted_icesheet' or biome_name == 'everness_frosted_icesheet_ocean')
|
||||
and rand:next(0, 100) < chance
|
||||
then
|
||||
local schem = minetest.get_modpath('everness') .. '/schematics/everness_frosted_icesheet_igloo.mts'
|
||||
|
||||
--
|
||||
-- Igloo
|
||||
--
|
||||
|
||||
-- add Y displacement
|
||||
local schem_pos = vector.new(s_pos.x, s_pos.y - 8, s_pos.z)
|
||||
|
||||
minetest.place_schematic_on_vmanip(
|
||||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
)
|
||||
|
||||
minetest.log('action', '[Everness] Igloo was placed at ' .. schem_pos:to_string())
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -255,7 +280,6 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
or data[vi] == c_forsaken_desert_engraved_stone
|
||||
)
|
||||
then
|
||||
local rotation = rotations[rand:next(1, #rotations)]
|
||||
local s_pos = area:position(vi)
|
||||
local biome_data = minetest.get_biome_data(s_pos)
|
||||
|
||||
|
@ -318,7 +342,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
vm,
|
||||
schem_pos,
|
||||
schem,
|
||||
rotation,
|
||||
'random',
|
||||
nil,
|
||||
true,
|
||||
'place_center_x, place_center_z'
|
||||
|
|
701
nodes.lua
701
nodes.lua
|
@ -270,6 +270,54 @@ minetest.register_node('everness:coral_desert_stone_with_moss', {
|
|||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_deep_ocean_sandstone_block', {
|
||||
description = S('Coral Deep Ocean Sandstone Block'),
|
||||
tiles = { 'everness_deep_ocean_sandstone_block.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_deep_ocean_sandstone_brick', {
|
||||
description = S('Coral Deep Ocean Sandstone Brick'),
|
||||
paramtype2 = 'facedir',
|
||||
place_param2 = 0,
|
||||
tiles = { 'everness_deep_ocean_sandstone_brick.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_sandstone_block', {
|
||||
description = S('Cursed Lands Deep Ocean Sandstone Block'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sandblock.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_sandstone_brick', {
|
||||
description = S('Cursed Lands Deep Ocean Sandstone Brick'),
|
||||
paramtype2 = 'facedir',
|
||||
place_param2 = 0,
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand_brick.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_sandstone_block', {
|
||||
description = S('Crystal Forest Deep Ocean Sandstone Block'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sandstone_block.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_sandstone_brick', {
|
||||
description = S('Crystal Forest Deep Ocean Sandstone Brick'),
|
||||
paramtype2 = 'facedir',
|
||||
place_param2 = 0,
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sandstone_brick.png' },
|
||||
groups = { cracky = 2 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_desert_stone', {
|
||||
description = S('Forsaken Desert Stone'),
|
||||
tiles = { 'everness_forsaken_desert_stone.png' },
|
||||
|
@ -755,7 +803,15 @@ minetest.register_node('everness:coral_dirt', {
|
|||
short_description = S('Coral Dirt'),
|
||||
tiles = { 'everness_coral_dirt.png' },
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_deep_ocean_mud', {
|
||||
description = S('Coral Deep Ocean Mud'),
|
||||
short_description = S('Coral Deep Ocean Mud'),
|
||||
tiles = { 'everness_mud_2.png' },
|
||||
groups = { crumbly = 3, bio_bubbles = 1 },
|
||||
sounds = Everness.node_sound_mud_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_dirt', {
|
||||
|
@ -771,7 +827,7 @@ minetest.register_node('everness:crystal_dirt', {
|
|||
short_description = S('Crystal Dirt'),
|
||||
tiles = { 'everness_crystal_dirt.png' },
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_tundra_dirt', {
|
||||
|
@ -779,7 +835,7 @@ minetest.register_node('everness:forsaken_tundra_dirt', {
|
|||
short_description = S('Forsaken Tundra Dirt'),
|
||||
tiles = { 'everness_forsaken_tundra_dirt.png' },
|
||||
groups = { crumbly = 3, soil = 1, mold_soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_tundra_dirt_with_grass', {
|
||||
|
@ -792,9 +848,7 @@ minetest.register_node('everness:forsaken_tundra_dirt_with_grass', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
-- drop = 'everness:forsaken_tundra_dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_coral_grass', {
|
||||
|
@ -807,9 +861,7 @@ minetest.register_node('everness:dirt_with_coral_grass', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:coral_dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_cursed_grass', {
|
||||
|
@ -835,9 +887,7 @@ minetest.register_node('everness:dirt_with_crystal_grass', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:crystal_dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dry_ocean_dirt', {
|
||||
|
@ -845,72 +895,104 @@ minetest.register_node('everness:dry_ocean_dirt', {
|
|||
short_description = S('Dry Ocean Dirt'),
|
||||
tiles = { 'everness_forsaken_desert_dry_ocean_dirt.png' },
|
||||
groups = { crumbly = 3 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
-- Loot Chest / Icicle Markers
|
||||
|
||||
minetest.register_node('everness:japanese_shrine_lootchest_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Japanese Shrine Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:jungle_temple_lootchest_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Jungle Temple Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:haunted_house_lootchest_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Haunted House Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:quartz_temple_lootchest_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Quartz Temple Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_desert_temple_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Forsaken Temple Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_desert_temple_2_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Forsaken Temple 2 Loot Chest Spawn Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_icicle_large_ceiling_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Frosted Icicle Large Ceiling Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_icicle_large_floor_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
drawtype = 'airlike',
|
||||
description = 'Frosted Icicle Large Floor Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 0 },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_house_marker', {
|
||||
drawtype = 'airlike',
|
||||
description = 'Coral Forest Deep Ocean House Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_skull_marker', {
|
||||
drawtype = 'airlike',
|
||||
description = 'Cursed Lands Deep Ocean Skull Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_icesheet_igloo_marker', {
|
||||
drawtype = 'airlike',
|
||||
description = 'Frosted Icesheet Igloo Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_ruins_marker', {
|
||||
drawtype = 'airlike',
|
||||
description = 'Crystal Forest Deep Ocean Ruins Marker',
|
||||
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
|
||||
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
|
@ -921,7 +1003,7 @@ minetest.register_node('everness:dirt_1', {
|
|||
short_description = S('Dirt'),
|
||||
tiles = { 'everness_dirt_1.png' },
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_grass_1', {
|
||||
|
@ -934,9 +1016,7 @@ minetest.register_node('everness:dirt_with_grass_1', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:dirt_1',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_grass_2', {
|
||||
|
@ -949,9 +1029,7 @@ minetest.register_node('everness:dirt_with_grass_2', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:dirt_1',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_grass_extras_1', {
|
||||
|
@ -964,9 +1042,7 @@ minetest.register_node('everness:dirt_with_grass_extras_1', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:dirt_1',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dirt_with_grass_extras_2', {
|
||||
|
@ -979,9 +1055,7 @@ minetest.register_node('everness:dirt_with_grass_extras_2', {
|
|||
},
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 },
|
||||
drop = 'everness:dirt_1',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_cave_dirt', {
|
||||
|
@ -989,9 +1063,7 @@ minetest.register_node('everness:crystal_cave_dirt', {
|
|||
short_description = S('Crystal Cave Dirt'),
|
||||
tiles = { 'everness_crystal_cave_dirt.png' },
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_cave_dirt_with_moss', {
|
||||
|
@ -1004,27 +1076,21 @@ minetest.register_node('everness:crystal_cave_dirt_with_moss', {
|
|||
},
|
||||
drop = 'everness:crystal_cave_dirt',
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type_under = 1 },
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:moss_block', {
|
||||
description = S('Moss Block'),
|
||||
tiles = { 'everness_moss_block.png' },
|
||||
groups = { crumbly = 3, soil = 1 },
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_moss_block', {
|
||||
description = S('Crystal Moss Block'),
|
||||
tiles = { 'everness_crystal_cave_moss.png' },
|
||||
groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type_under = 1 },
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
sounds = Everness.node_sound_grass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_sand', {
|
||||
|
@ -1059,6 +1125,14 @@ minetest.register_node('everness:crystal_sand', {
|
|||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_sand_with_crack', {
|
||||
description = S('Crystal Forest Deep Ocean Sand with Crack'),
|
||||
short_description = S('Crystal Forest Deep Ocean Sand with Crack'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sand_with_crack.png' },
|
||||
groups = { crumbly = 3, falling_node = 1, sand = 1, rising_crystals = 1 },
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:forsaken_tundra_beach_sand', {
|
||||
description = S('Forsaken Tundra Beach Sand'),
|
||||
short_description = S('Forsaken Tundra Beach Sand'),
|
||||
|
@ -1083,6 +1157,38 @@ minetest.register_node('everness:forsaken_desert_sand', {
|
|||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_sand', {
|
||||
description = S('Coral Forest Deep Ocean Sand'),
|
||||
short_description = S('Coral Forest Deep Ocean Sand'),
|
||||
tiles = { 'everness_deep_ocean_sand.png' },
|
||||
groups = { crumbly = 3, falling_node = 1, sand = 1 },
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_sand', {
|
||||
description = S('Cursed Lands Deep Ocean Sand'),
|
||||
short_description = S('Cursed Lands Deep Ocean Sand'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand.png' },
|
||||
groups = { crumbly = 3, falling_node = 1, sand = 1 },
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_sand_with_crack', {
|
||||
description = S('Cursed Lands Deep Ocean Sand with Crack'),
|
||||
short_description = S('Cursed Lands Deep Ocean Sand with Crack'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand_with_crack.png' },
|
||||
groups = { crumbly = 3, falling_node = 1, sand = 1, rising_souls = 1 },
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_sand', {
|
||||
description = S('Crystal Forest Deep Ocean Sand'),
|
||||
short_description = S('Crystal Forest Deep Ocean Sand'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sand.png' },
|
||||
groups = { crumbly = 3, falling_node = 1, sand = 1 },
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_snowblock', {
|
||||
description = S('Frosted Snow Block'),
|
||||
tiles = { 'everness_frosted_snow.png' },
|
||||
|
@ -1103,7 +1209,7 @@ minetest.register_node('everness:frosted_ice', {
|
|||
is_ground_content = false,
|
||||
paramtype = 'light',
|
||||
groups = { cracky = 3, cools_lava = 1, slippery = 3 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_ice_translucent', {
|
||||
|
@ -1112,7 +1218,7 @@ minetest.register_node('everness:frosted_ice_translucent', {
|
|||
is_ground_content = false,
|
||||
paramtype = 'light',
|
||||
groups = { cracky = 3, cools_lava = 1, slippery = 3 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
drawtype = 'glasslike',
|
||||
-- opaque, clip, blend
|
||||
use_texture_alpha = 'blend'
|
||||
|
@ -1126,7 +1232,7 @@ minetest.register_node('everness:frosted_cave_ice', {
|
|||
groups = { cracky = 3, cools_lava = 1, slippery = 3,
|
||||
not_in_creative_inventory = 1 },
|
||||
drop = 'everness:frosted_ice',
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
})
|
||||
|
||||
-- Mapgen-placed ice with 'is ground content = true' to contain tunnels
|
||||
|
@ -1137,7 +1243,7 @@ minetest.register_node('everness:frosted_cave_ice_illuminating', {
|
|||
groups = { cracky = 3, cools_lava = 1, slippery = 3,
|
||||
not_in_creative_inventory = 1 },
|
||||
drop = 'everness:frosted_ice',
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
light_source = 9,
|
||||
is_ground_content = false
|
||||
})
|
||||
|
@ -1157,7 +1263,7 @@ minetest.register_node('everness:ancient_emerald_ice', {
|
|||
tiles = { 'everness_ancient_emerald_ice.png' },
|
||||
paramtype = 'light',
|
||||
groups = { cracky = 3, cools_lava = 1 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:dense_emerald_ice', {
|
||||
|
@ -1165,7 +1271,7 @@ minetest.register_node('everness:dense_emerald_ice', {
|
|||
tiles = { 'everness_dense_emerald_ice.png' },
|
||||
paramtype = 'light',
|
||||
groups = { cracky = 3, cools_lava = 1 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:emerald_ice', {
|
||||
|
@ -1173,7 +1279,7 @@ minetest.register_node('everness:emerald_ice', {
|
|||
tiles = { 'everness_emerald_ice.png' },
|
||||
paramtype = 'light',
|
||||
groups = { cracky = 3, cools_lava = 1 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:snowcobble', {
|
||||
|
@ -1195,7 +1301,7 @@ minetest.register_node('everness:icecobble', {
|
|||
description = 'Ice Cobble',
|
||||
tiles = { 'everness_icecobble.png' },
|
||||
groups = { cracky = 2, cools_lava = 1 },
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
is_ground_content = false,
|
||||
})
|
||||
|
||||
|
@ -2539,7 +2645,7 @@ minetest.register_node('everness:frosted_icicle', {
|
|||
buildable_to = true,
|
||||
is_ground_content = true,
|
||||
groups = { oddly_breakable_by_hand = 3 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
light_source = 9
|
||||
})
|
||||
|
||||
|
@ -2559,7 +2665,7 @@ minetest.register_node('everness:frosted_icicle_floor', {
|
|||
buildable_to = true,
|
||||
is_ground_content = true,
|
||||
groups = { snappy = 3, attached_node = 1, frosted_grass_under = 1 },
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
sounds = Everness.node_sound_ice_defaults(),
|
||||
light_source = 9,
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
|
@ -3578,9 +3684,9 @@ minetest.register_node('everness:bamboo_sprout', {
|
|||
type = 'fixed',
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, -5 / 16, 0.5 },
|
||||
},
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
sounds = Everness.node_sound_dirt_defaults({
|
||||
dig = { name = '', gain = 0 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.2 },
|
||||
dug = { name = 'everness_grass_footstep', gain = 0.2 },
|
||||
place = { name = 'default_place_node', gain = 0.25 },
|
||||
}),
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
|
@ -3643,7 +3749,7 @@ minetest.register_node('everness:termite_block', {
|
|||
post_effect_color = { r = 47, g = 28, b = 18, a = 255 },
|
||||
damage_per_second = 1,
|
||||
groups = { crumbly = 3, disable_jump = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:bamboo_block', {
|
||||
|
@ -3720,11 +3826,13 @@ minetest.register_node('everness:sequoia_wood', {
|
|||
-- Corals
|
||||
--
|
||||
|
||||
local function coral_on_place(itemstack, placer, pointed_thing)
|
||||
local function coral_on_place(itemstack, placer, pointed_thing, params)
|
||||
if pointed_thing.type ~= 'node' or not placer then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local ignore_water = params.ignore_water or false
|
||||
local node_under_name = params.node_under_name or 'default:coral_skeleton'
|
||||
local player_name = placer:get_player_name()
|
||||
local pos_under = pointed_thing.under
|
||||
local pos_above = pointed_thing.above
|
||||
|
@ -3736,8 +3844,9 @@ local function coral_on_place(itemstack, placer, pointed_thing)
|
|||
placer, itemstack, pointed_thing) or itemstack
|
||||
end
|
||||
|
||||
if node_under.name ~= 'default:coral_skeleton' or
|
||||
minetest.get_node(pos_above).name ~= 'default:water_source' then
|
||||
if node_under.name ~= node_under_name
|
||||
or (minetest.get_node(pos_above).name ~= 'default:water_source' and not ignore_water)
|
||||
then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
|
@ -3946,6 +4055,366 @@ minetest.register_node('everness:sand_with_spine_kelp', {
|
|||
end
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_plant_1', {
|
||||
description = S('Coral Bulbs'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_deep_ocean_coral_plant_1.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_deep_ocean_coral_plant_1.png',
|
||||
wield_image = 'everness_deep_ocean_coral_plant_1.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:coral_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:coral_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:coral_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_plant_2', {
|
||||
description = S('Coral Tree'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_deep_ocean_coral_plant_2.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_deep_ocean_coral_plant_2.png',
|
||||
wield_image = 'everness_deep_ocean_coral_plant_2.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:coral_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:coral_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:coral_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_plant_3', {
|
||||
description = S('Coral Palm'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_deep_ocean_coral_plant_3.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_deep_ocean_coral_plant_3.png',
|
||||
wield_image = 'everness_deep_ocean_coral_plant_3.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:coral_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:coral_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:coral_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_plant_anemone', {
|
||||
description = S('Coral Anemone'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_cursed_lands_deep_ocean_coral_anemone.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_cursed_lands_deep_ocean_coral_anemone.png',
|
||||
wield_image = 'everness_cursed_lands_deep_ocean_coral_anemone.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:cursed_lands_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:cursed_lands_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:cursed_lands_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_plant_darkilluma', {
|
||||
description = S('Coral Darkilluma'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_cursed_lands_deep_ocean_coral_darkilluma.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_cursed_lands_deep_ocean_coral_darkilluma.png',
|
||||
wield_image = 'everness_cursed_lands_deep_ocean_coral_darkilluma.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:cursed_lands_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:cursed_lands_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:cursed_lands_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_plant_demon', {
|
||||
description = S('Coral Demon'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_cursed_lands_deep_ocean_coral_demon.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_cursed_lands_deep_ocean_coral_demon.png',
|
||||
wield_image = 'everness_cursed_lands_deep_ocean_coral_demon.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:cursed_lands_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:cursed_lands_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:cursed_lands_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_plant_1', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Plant Cyan'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_crystal_forest_deep_ocean_coral_plant_1.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_crystal_forest_deep_ocean_coral_plant_1.png',
|
||||
wield_image = 'everness_crystal_forest_deep_ocean_coral_plant_1.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:crystal_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:crystal_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:crystal_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_plant_2', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Plant Orange'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_crystal_forest_deep_ocean_coral_plant_2.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_crystal_forest_deep_ocean_coral_plant_2.png',
|
||||
wield_image = 'everness_crystal_forest_deep_ocean_coral_plant_2.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:crystal_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:crystal_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:crystal_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_plant_3', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Plant Pink'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_sand.png' },
|
||||
special_tiles = { { name = 'everness_crystal_forest_deep_ocean_coral_plant_3.png', tileable_vertical = true } },
|
||||
inventory_image = 'everness_crystal_forest_deep_ocean_coral_plant_3.png',
|
||||
wield_image = 'everness_crystal_forest_deep_ocean_coral_plant_3.png',
|
||||
groups = { snappy = 3 },
|
||||
selection_box = {
|
||||
type = 'fixed',
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
|
||||
},
|
||||
},
|
||||
node_dig_prediction = 'everness:crystal_forest_deep_ocean_sand',
|
||||
node_placement_prediction = '',
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = { name = 'default_dig_snappy', gain = 0.2 },
|
||||
dug = { name = 'default_grass_footstep', gain = 0.25 },
|
||||
}),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
coral_on_place(
|
||||
itemstack,
|
||||
placer,
|
||||
pointed_thing,
|
||||
{
|
||||
ignore_water = true,
|
||||
node_under_name = 'everness:crystal_forest_deep_ocean_sand'
|
||||
}
|
||||
)
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, { name = 'everness:crystal_forest_deep_ocean_sand' })
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_coral_dark', {
|
||||
description = S('Crystal Coral Dark'),
|
||||
tiles = { 'everness_crystal_coral_dark_block.png' },
|
||||
|
@ -3960,6 +4429,76 @@ minetest.register_node('everness:crystal_coral_light', {
|
|||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_1', {
|
||||
description = S('Coral Forest Deep Ocean Coral Pink'),
|
||||
tiles = { 'everness_deep_ocean_coral_1.png' },
|
||||
groups = { cracky = 3, everness_coral_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_2', {
|
||||
description = S('Coral Forest Deep Ocean Coral Cyan'),
|
||||
tiles = { 'everness_deep_ocean_coral_2.png' },
|
||||
groups = { cracky = 3, everness_coral_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_3', {
|
||||
description = S('Coral Forest Deep Ocean Coral Green'),
|
||||
tiles = { 'everness_deep_ocean_coral_3.png' },
|
||||
groups = { cracky = 3, everness_coral_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_coral_4', {
|
||||
description = S('Coral Forest Deep Ocean Coral Red'),
|
||||
tiles = { 'everness_deep_ocean_coral_4.png' },
|
||||
groups = { cracky = 3, everness_coral_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_alcyonacea', {
|
||||
description = S('Coral Alcyonacea'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_coral_alcyonacea.png' },
|
||||
groups = { cracky = 3, everness_cursed_lands_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_ostracod', {
|
||||
description = S('Coral Ostracod'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_coral_ostracod.png' },
|
||||
groups = { cracky = 3, everness_cursed_lands_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:cursed_lands_deep_ocean_coral_octocurse', {
|
||||
description = S('Coral Octocurse'),
|
||||
tiles = { 'everness_cursed_lands_deep_ocean_coral_octocurse.png' },
|
||||
groups = { cracky = 3, everness_cursed_lands_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_1', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Green'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_coral_1.png' },
|
||||
groups = { cracky = 3, everness_crystal_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_2', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Orange'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_coral_2.png' },
|
||||
groups = { cracky = 3, everness_crystal_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node('everness:crystal_forest_deep_ocean_coral_3', {
|
||||
description = S('Crystal Forest Deep Ocean Coral Cyan'),
|
||||
tiles = { 'everness_crystal_forest_deep_ocean_coral_3.png' },
|
||||
groups = { cracky = 3, everness_crystal_forest_deep_ocean_coral = 1 },
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
--
|
||||
-- Meshes
|
||||
--
|
||||
|
@ -4374,3 +4913,25 @@ minetest.register_node('everness:floating_crystal', {
|
|||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node('everness:coral_forest_deep_ocean_lantern', {
|
||||
description = S('Coral Forest Deep Ocean Lantern'),
|
||||
tiles = {
|
||||
{
|
||||
name = 'everness_coral_forest_deep_ocean_lantern_animated.png',
|
||||
animation = {
|
||||
type = 'vertical_frames',
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
drawtype = 'glasslike',
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
groups = { cracky = 3, oddly_breakable_by_hand = 3 },
|
||||
paramtype = 'light',
|
||||
light_source = 12,
|
||||
})
|
||||
|
|
|
@ -131,7 +131,7 @@ minetest.register_node('everness:coral_dirt_soil', {
|
|||
},
|
||||
drop = 'everness:coral_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:coral_dirt',
|
||||
dry = 'everness:coral_dirt_soil',
|
||||
|
@ -147,7 +147,7 @@ minetest.register_node('everness:dirt_1_soil', {
|
|||
},
|
||||
drop = 'everness:dirt_1',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:dirt_1',
|
||||
dry = 'everness:dirt_1_soil',
|
||||
|
@ -163,7 +163,7 @@ minetest.register_node('everness:crystal_dirt_soil', {
|
|||
},
|
||||
drop = 'everness:crystal_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:crystal_dirt',
|
||||
dry = 'everness:crystal_dirt_soil',
|
||||
|
@ -179,7 +179,7 @@ minetest.register_node('everness:crystal_cave_dirt_soil', {
|
|||
},
|
||||
drop = 'everness:crystal_cave_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:crystal_cave_dirt',
|
||||
dry = 'everness:crystal_cave_dirt_soil',
|
||||
|
@ -195,7 +195,7 @@ minetest.register_node('everness:cursed_dirt_soil', {
|
|||
},
|
||||
drop = 'everness:cursed_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:cursed_dirt',
|
||||
dry = 'everness:cursed_dirt_soil',
|
||||
|
@ -212,7 +212,7 @@ minetest.register_node('everness:coral_dirt_soil_wet', {
|
|||
},
|
||||
drop = 'everness:coral_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:coral_dirt',
|
||||
dry = 'everness:coral_dirt_soil',
|
||||
|
@ -228,7 +228,7 @@ minetest.register_node('everness:dirt_1_soil_wet', {
|
|||
},
|
||||
drop = 'everness:dirt_1',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:dirt_1',
|
||||
dry = 'everness:dirt_1_soil',
|
||||
|
@ -244,7 +244,7 @@ minetest.register_node('everness:crystal_dirt_soil_wet', {
|
|||
},
|
||||
drop = 'everness:crystal_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:crystal_dirt',
|
||||
dry = 'everness:crystal_dirt_soil',
|
||||
|
@ -260,7 +260,7 @@ minetest.register_node('everness:crystal_cave_dirt_soil_wet', {
|
|||
},
|
||||
drop = 'everness:crystal_cave_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:crystal_cave_dirt',
|
||||
dry = 'everness:crystal_cave_dirt_soil',
|
||||
|
@ -276,7 +276,7 @@ minetest.register_node('everness:cursed_dirt_soil_wet', {
|
|||
},
|
||||
drop = 'everness:cursed_dirt',
|
||||
groups = { crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1 },
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = Everness.node_sound_dirt_defaults(),
|
||||
soil = {
|
||||
base = 'everness:cursed_dirt',
|
||||
dry = 'everness:cursed_dirt_soil',
|
||||
|
|
|
@ -34,7 +34,19 @@ everness_coral_forest_ocean (Coral Forest Ocean) bool true
|
|||
everness_coral_forest_ocean_y_max (y max) int 3
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_coral_forest_ocean_y_min (y min) int -255
|
||||
everness_coral_forest_ocean_y_min (y min) int -10
|
||||
|
||||
[*Coral Forest Deep Ocean]
|
||||
|
||||
# Enable/ Disable Coral Forest Deep Ocean Biome
|
||||
# Disabling this biome might result in missing recipes.
|
||||
everness_coral_forest_deep_ocean (Coral Forest Deep Ocean) bool true
|
||||
|
||||
# Upper limit for biome.
|
||||
everness_coral_forest_deep_ocean_y_max (y max) int -11
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_coral_forest_deep_ocean_y_min (y min) int -255
|
||||
|
||||
[*Coral Forest Under]
|
||||
|
||||
|
@ -130,7 +142,19 @@ everness_cursed_lands_ocean (Cursed Lands Ocean) bool true
|
|||
everness_cursed_lands_ocean_y_max (y max) int -2
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_cursed_lands_ocean_y_min (y min) int -255
|
||||
everness_cursed_lands_ocean_y_min (y min) int -10
|
||||
|
||||
[*Cursed Lands Deep Ocean]
|
||||
|
||||
# Enable/ Disable Cursed Lands Deep Ocean Biome
|
||||
# Disabling this biome might result in missing recipes.
|
||||
everness_cursed_lands_deep_ocean (Cursed Lands Deep Ocean) bool true
|
||||
|
||||
# Upper limit for biome.
|
||||
everness_cursed_lands_deep_ocean_y_max (y max) int -11
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_cursed_lands_deep_ocean_y_min (y min) int -255
|
||||
|
||||
[*Cursed Lands Under]
|
||||
|
||||
|
@ -190,7 +214,19 @@ everness_crystal_forest_ocean (Crystal Forest Ocean) bool true
|
|||
everness_crystal_forest_ocean_y_max (y max) int -2
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_crystal_forest_ocean_y_min (y min) int -255
|
||||
everness_crystal_forest_ocean_y_min (y min) int -10
|
||||
|
||||
[*Crystal Forest Deep Ocean]
|
||||
|
||||
# Enable/ Disable Crystal Forest Deep Ocean Biome
|
||||
# Disabling this biome might result in missing recipes.
|
||||
everness_crystal_forest_deep_ocean (Crystal Forest Deep Ocean) bool true
|
||||
|
||||
# Upper limit for biome.
|
||||
everness_crystal_forest_deep_ocean_y_max (y max) int -11
|
||||
|
||||
# Lower limit for biome.
|
||||
everness_crystal_forest_deep_ocean_y_min (y min) int -255
|
||||
|
||||
[*Crystal Forest Under]
|
||||
|
||||
|
|
197
stairs.lua
197
stairs.lua
|
@ -275,15 +275,17 @@ stairs.register_stair_and_slab(
|
|||
'magmacobble',
|
||||
'everness:magmacobble',
|
||||
{ cracky = 3, stone = 1 },
|
||||
{{
|
||||
name = 'everness_magmacobble_animated.png',
|
||||
animation = {
|
||||
type = 'vertical_frames',
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 3.0,
|
||||
},
|
||||
}},
|
||||
{
|
||||
{
|
||||
name = 'everness_magmacobble_animated.png',
|
||||
animation = {
|
||||
type = 'vertical_frames',
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 3.0,
|
||||
},
|
||||
}
|
||||
},
|
||||
S('Magma Cobblestone Stair'),
|
||||
S('Magma Cobblestone Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
|
@ -323,3 +325,180 @@ stairs.register_stair_and_slab(
|
|||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
-- Coral Forest Deep Ocean
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_deep_ocean_sandstone_block',
|
||||
'everness:coral_deep_ocean_sandstone_block',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_deep_ocean_sandstone_block.png' },
|
||||
S('Coral Depp Ocean Sandstone Block Stair'),
|
||||
S('Coral Depp Ocean Sandstone Block Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_deep_ocean_sandstone_brick',
|
||||
'everness:coral_deep_ocean_sandstone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_deep_ocean_sandstone_brick.png' },
|
||||
S('Coral Depp Ocean Sandstone Brick Stair'),
|
||||
S('Coral Depp Ocean Sandstone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
-- Coral White Sandstone
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_white_sandstone',
|
||||
'everness:coral_white_sandstone',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_white_sandstone.png' },
|
||||
S('Coral White Sandstone Stair'),
|
||||
S('Coral White Sandstone Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_white_sandstone_pillar',
|
||||
'everness:coral_white_sandstone_pillar',
|
||||
{ cracky = 2 },
|
||||
{
|
||||
'everness_coral_white_sandstone.png',
|
||||
'everness_coral_white_sandstone.png',
|
||||
'everness_coral_white_sandstone_pillar.png',
|
||||
},
|
||||
S('Coral White Sandstone Pillar Stair'),
|
||||
S('Coral White Sandstone Pillar Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_white_sandstone_brick',
|
||||
'everness:coral_white_sandstone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_white_sandstone_brick.png' },
|
||||
S('Coral White Sandstone Brick Stair'),
|
||||
S('Coral White Sandstone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
-- Coral Desert Stone
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_desert_stone_block',
|
||||
'everness:coral_desert_stone_block',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_desert_stone_block.png' },
|
||||
S('Coral Desert Stone Block Stair'),
|
||||
S('Coral Desert Stone Block Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_desert_stone_brick',
|
||||
'everness:coral_desert_stone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_desert_stone_brick.png' },
|
||||
S('Coral Desert Stone Brick Stair'),
|
||||
S('Coral Desert Stone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
-- Coral Sandstone
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_sandstone',
|
||||
'everness:coral_sandstone',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_sandstone.png' },
|
||||
S('Coral Sandstone Stair'),
|
||||
S('Coral Sandstone Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_sandstone_brick',
|
||||
'everness:coral_sandstone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_sandstone_brick.png' },
|
||||
S('Coral Sandstone Brick Stair'),
|
||||
S('Coral Sandstone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_sandstone_chiseled',
|
||||
'everness:coral_sandstone_chiseled',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_sandstone_chiseled.png' },
|
||||
S('Coral Sandstone Chiseled Stair'),
|
||||
S('Coral Sandstone Chiseled Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'coral_sandstone_carved_1',
|
||||
'everness:coral_sandstone_carved_1',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_coral_sandstone_carved_1.png' },
|
||||
S('Coral Sandstone Carved Stair'),
|
||||
S('Coral Sandstone Carved Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'cursed_lands_deep_ocean_sandstone_block',
|
||||
'everness:cursed_lands_deep_ocean_sandstone_block',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_cursed_lands_deep_ocean_sandblock.png' },
|
||||
S('Cursed Lands Deep Ocean Sandstone Block Stair'),
|
||||
S('Cursed Lands Deep Ocean Sandstone Block Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'cursed_lands_deep_ocean_sandstone_brick',
|
||||
'everness:cursed_lands_deep_ocean_sandstone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_cursed_lands_deep_ocean_sand_brick.png' },
|
||||
S('Cursed Lands Deep Ocean Sandstone Brick Stair'),
|
||||
S('Cursed Lands Deep Ocean Sandstone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'crystal_forest_deep_ocean_sandstone_block',
|
||||
'everness:crystal_forest_deep_ocean_sandstone_block',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_crystal_forest_deep_ocean_sandstone_block.png' },
|
||||
S('Crystal Forest Deep Ocean Sandstone Block Stair'),
|
||||
S('Crystal Forest Deep Ocean Sandstone Block Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
'crystal_forest_deep_ocean_sandstone_brick',
|
||||
'everness:crystal_forest_deep_ocean_sandstone_brick',
|
||||
{ cracky = 2 },
|
||||
{ 'everness_crystal_forest_deep_ocean_sandstone_brick.png' },
|
||||
S('Crystal Forest Deep Ocean Sandstone Brick Stair'),
|
||||
S('Crystal Forest Deep Ocean Sandstone Brick Slab'),
|
||||
default.node_sound_stone_defaults(),
|
||||
true
|
||||
)
|
||||
|
|
39
tools.lua
39
tools.lua
|
@ -22,12 +22,14 @@ minetest.register_tool('everness:vine_shears', {
|
|||
description = S('Vine Shears'),
|
||||
inventory_image = 'everness_vine_shears.png',
|
||||
wield_image = 'everness_vine_shears.png',
|
||||
wield_scale = { x = 2, y = 2, z = 1 },
|
||||
sound = { breaks = 'default_tool_breaks' },
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level = 0,
|
||||
groupcaps = {
|
||||
snappy = { times = { [3] = 0.2 }, uses = 60, maxlevel = 3 },
|
||||
wool = { times = { [3] = 0.2 }, uses = 60, maxlevel = 3 }
|
||||
snappy = { times = { [3] = 0.2 }, uses = 30, maxlevel = 3 },
|
||||
wool = { times = { [3] = 0.2 }, uses = 30, maxlevel = 3 }
|
||||
}
|
||||
},
|
||||
})
|
||||
|
@ -41,7 +43,7 @@ minetest.register_tool('everness:pick_illuminating', {
|
|||
full_punch_interval = 0.9,
|
||||
max_drop_level = 3,
|
||||
groupcaps = {
|
||||
cracky = { times = { [1] = 2.0, [2] = 1.0, [3] = 0.50 }, uses = 60, maxlevel = 3 }
|
||||
cracky = { times = { [1] = 2.0,[2] = 1.0,[3] = 0.50 }, uses = 60, maxlevel = 3 }
|
||||
},
|
||||
damage_groups = { fleshy = 5 },
|
||||
},
|
||||
|
@ -133,17 +135,20 @@ minetest.register_tool('everness:shovel_silk', {
|
|||
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 },
|
||||
crumbly = { times = { [1] = 1.10,[2] = 0.50,[3] = 0.30 }, uses = 30, maxlevel = 3 },
|
||||
},
|
||||
damage_groups = { fleshy = 4 },
|
||||
},
|
||||
sound = { breaks = 'default_tool_breaks' },
|
||||
sound = {
|
||||
breaks = 'default_tool_breaks'
|
||||
},
|
||||
-- no `shovel` group so it cannot be enchanted
|
||||
-- groups = { shovel = 1 }
|
||||
})
|
||||
|
||||
local old_handle_node_drops = minetest.handle_node_drops
|
||||
|
||||
---@diagnostic disable-next-line: duplicate-set-field
|
||||
function minetest.handle_node_drops(pos, drops, digger)
|
||||
if not digger
|
||||
or not digger:is_player()
|
||||
|
@ -164,3 +169,27 @@ function minetest.handle_node_drops(pos, drops, digger)
|
|||
|
||||
return old_handle_node_drops(pos, drops, digger)
|
||||
end
|
||||
|
||||
minetest.register_tool('everness:shell_of_underwater_breathing', {
|
||||
description = S('Shell of Underwater Breating'),
|
||||
inventory_image = 'everness_shell_of_underwarer_breathing.png',
|
||||
wield_image = 'everness_shell_of_underwarer_breathing.png',
|
||||
wield_scale = { x = 2, y = 2, z = 1 },
|
||||
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 },
|
||||
oddly_breakable_by_hand = { times = { [1] = 3.50,[2] = 2.00,[3] = 0.70 }, uses = 0 }
|
||||
},
|
||||
damage_groups = { fleshy = 1 },
|
||||
},
|
||||
sound = { breaks = 'default_tool_breaks' },
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return Everness:use_shell_of_underwater_breathing(itemstack, placer, pointed_thing)
|
||||
end,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
return Everness:use_shell_of_underwater_breathing(itemstack, user, pointed_thing)
|
||||
end
|
||||
})
|
||||
|
|
Ŝarĝante…
Reference in New Issue