4 Change Frosted Icesheet under textures, tweak decorations, mapgen and add icicles
|
@ -1053,7 +1053,6 @@ GNU Lesser General Public License v2.1 or later (see included LICENSE file)
|
|||
- everness_forsaken_desert_temple.lua
|
||||
- everness_forsaken_tundra_rocks.lua
|
||||
- everness_forsythia_on_moss.lua
|
||||
- everness_frosted_crystal.lua
|
||||
- everness_frosted_lands_fossils.lua
|
||||
- everness_frosted_lands_stalagmite.lua
|
||||
- everness_frosted_lands_volcanic_rock.lua
|
||||
|
|
50
api.lua
|
@ -727,3 +727,53 @@ function Everness.node_sound_mud_defaults(table)
|
|||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
--
|
||||
-- Forsted Cave Icicles
|
||||
--
|
||||
|
||||
function Everness.stack_icicle_recursive(node, pos_node, incrementer, pos_marker, direction)
|
||||
local nb = node
|
||||
local pos = pos_node
|
||||
local inc = incrementer
|
||||
local m_pos = pos_marker
|
||||
|
||||
while nb.name == 'air' or nb.name == 'ignore' do
|
||||
if nb.name == 'ignore' then
|
||||
Everness.emerge_icicle_area_recursive(pos, inc, m_pos, direction)
|
||||
break
|
||||
else
|
||||
minetest.set_node(pos, { name = 'everness:frosted_cave_ice_illuminating' })
|
||||
-- Shift 1 down
|
||||
inc = inc + 1
|
||||
local y_offset = (direction == 'down') and (m_pos.y - inc) or (m_pos.y + inc)
|
||||
pos = vector.new(m_pos.x, y_offset, m_pos.z)
|
||||
nb = minetest.get_node(pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Everness.emerge_icicle_area_recursive(pos_node, incrementer, pos_marker, direction)
|
||||
local y_offset = (direction == 'down') and (pos_node.y - 16) or (pos_node.y + 16)
|
||||
|
||||
minetest.emerge_area(
|
||||
vector.new(pos_node.x - 1, pos_node.y, pos_node.z - 1),
|
||||
vector.new(pos_node.x + 1, y_offset, pos_node.z + 1),
|
||||
function(blockpos, action, calls_remaining, param)
|
||||
Everness:emerge_area(blockpos, action, calls_remaining, param)
|
||||
end,
|
||||
{
|
||||
callback = function(data)
|
||||
local incrementer_cllbck = data.incrementer
|
||||
local pos_node_cllbck = data.pos_node
|
||||
local node_cllbck = minetest.get_node(pos_node_cllbck)
|
||||
|
||||
Everness.stack_icicle_recursive(node_cllbck, pos_node_cllbck, incrementer_cllbck, pos_marker, direction)
|
||||
end,
|
||||
data = {
|
||||
incrementer = incrementer,
|
||||
pos_node = pos_node
|
||||
}
|
||||
}
|
||||
)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
schematic = {
|
||||
size = {x=2, y=19, z=2},
|
||||
yslice_prob = {
|
||||
{ypos=0, prob=254},
|
||||
{ypos=1, prob=254},
|
||||
{ypos=2, prob=254},
|
||||
{ypos=3, prob=254},
|
||||
{ypos=4, prob=254},
|
||||
{ypos=5, prob=254},
|
||||
{ypos=6, prob=254},
|
||||
{ypos=7, prob=254},
|
||||
{ypos=8, prob=254},
|
||||
{ypos=9, prob=254},
|
||||
{ypos=10, prob=254},
|
||||
{ypos=11, prob=254},
|
||||
{ypos=12, prob=254},
|
||||
{ypos=13, prob=254},
|
||||
{ypos=14, prob=254},
|
||||
{ypos=15, prob=254},
|
||||
{ypos=16, prob=254},
|
||||
{ypos=17, prob=254},
|
||||
{ypos=18, prob=254},
|
||||
},
|
||||
data = {
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_icicle_large_ceiling_marker", prob=254, param2=2},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
},
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
schematic = {
|
||||
size = {x=2, y=20, z=2},
|
||||
yslice_prob = {
|
||||
{ypos=0, prob=254},
|
||||
{ypos=1, prob=254},
|
||||
{ypos=2, prob=254},
|
||||
{ypos=3, prob=254},
|
||||
{ypos=4, prob=254},
|
||||
{ypos=5, prob=254},
|
||||
{ypos=6, prob=254},
|
||||
{ypos=7, prob=254},
|
||||
{ypos=8, prob=254},
|
||||
{ypos=9, prob=254},
|
||||
{ypos=10, prob=254},
|
||||
{ypos=11, prob=254},
|
||||
{ypos=12, prob=254},
|
||||
{ypos=13, prob=254},
|
||||
{ypos=14, prob=254},
|
||||
{ypos=15, prob=254},
|
||||
{ypos=16, prob=254},
|
||||
{ypos=17, prob=254},
|
||||
{ypos=18, prob=254},
|
||||
{ypos=19, prob=254},
|
||||
},
|
||||
data = {
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_cave_ice_illuminating", prob=254, param2=0},
|
||||
{name="air", prob=254, param2=0},
|
||||
{name="everness:frosted_icicle_large_floor_marker", prob=254, param2=2},
|
||||
{name="air", prob=254, param2=0},
|
||||
},
|
||||
}
|
|
@ -261,6 +261,9 @@ local data = {}
|
|||
local chance = 50
|
||||
local disp = 16
|
||||
local rotations = { '0', '90', '180', '270' }
|
||||
local everness_forsaken_tundra_under_y_max = y_max - 1500 > y_min and y_max - 1500 or y_max
|
||||
local everness_forsaken_tundra_under_y_min = y_min
|
||||
|
||||
-- size = { x = 39, y = 28, z = 39 }
|
||||
local willow_tree_volume = 39 * 39 * 28
|
||||
local willow_tree_schem = minetest.get_modpath('everness') .. '/schematics/everness_willow_tree.mts'
|
||||
|
@ -277,8 +280,6 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
|||
|
||||
local x_disp = rand:next(0, disp)
|
||||
local z_disp = rand:next(0, disp)
|
||||
local everness_forsaken_tundra_under_y_max = y_max - 1500 > y_min and y_max - 1500 or y_max
|
||||
local everness_forsaken_tundra_under_y_min = y_min
|
||||
|
||||
if everness_forsaken_tundra_under_y_min < maxp.y
|
||||
and maxp.y < everness_forsaken_tundra_under_y_max
|
||||
|
|
|
@ -83,7 +83,6 @@ minetest.register_decoration({
|
|||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
|
@ -103,12 +102,51 @@ minetest.register_decoration({
|
|||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icesheet_under_illuminating_floors',
|
||||
deco_type = 'simple',
|
||||
place_on = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
sidelen = 16,
|
||||
place_offset_y = -1,
|
||||
fill_ratio = 0.01,
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
decoration = { 'everness:frosted_cave_ice_illuminating' },
|
||||
flags = 'all_floors, force_placement'
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icesheet_under_illuminating_ceilings',
|
||||
deco_type = 'simple',
|
||||
place_on = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
sidelen = 16,
|
||||
place_offset_y = -1,
|
||||
fill_ratio = 0.01,
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
decoration = { 'everness:frosted_cave_ice_illuminating' },
|
||||
flags = 'all_ceilings, force_placement'
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icesheet_under_amaranita_lantern',
|
||||
deco_type = 'simple',
|
||||
|
@ -116,7 +154,6 @@ minetest.register_decoration({
|
|||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
|
@ -143,7 +180,6 @@ minetest.register_decoration({
|
|||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
|
@ -164,6 +200,60 @@ minetest.register_decoration({
|
|||
num_spawn_by = 8
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icicle_large_ceiling',
|
||||
deco_type = 'schematic',
|
||||
place_on = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.004,
|
||||
scale = 0.01,
|
||||
spread = { x = 100, y = 100, z = 100 },
|
||||
seed = 137,
|
||||
octaves = 3,
|
||||
persist = 0.7,
|
||||
},
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_icicle_large_ceiling.mts',
|
||||
flags = 'place_center_x, place_center_z, all_ceilings',
|
||||
rotation = 'random',
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icicle_large_floor',
|
||||
deco_type = 'schematic',
|
||||
place_on = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.004,
|
||||
scale = 0.01,
|
||||
spread = { x = 100, y = 100, z = 100 },
|
||||
seed = 137,
|
||||
octaves = 3,
|
||||
persist = 0.7,
|
||||
},
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_icicle_large_floor.mts',
|
||||
flags = 'place_center_x, place_center_z, all_floors',
|
||||
rotation = 'random',
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icesheet_under_plants',
|
||||
deco_type = 'simple',
|
||||
|
@ -171,7 +261,6 @@ minetest.register_decoration({
|
|||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
|
@ -184,52 +273,119 @@ minetest.register_decoration({
|
|||
octaves = 3,
|
||||
persist = 0.6
|
||||
},
|
||||
param2 = 11,
|
||||
param2 = 8,
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
decoration = {
|
||||
'everness:blooming_cooksonia',
|
||||
'everness:creeping_moss_spores',
|
||||
'everness:frosted_icicle_floor',
|
||||
},
|
||||
flags = 'all_floors',
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
name = 'everness:frosted_icesheet_under_crystal',
|
||||
deco_type = 'schematic',
|
||||
name = 'everness:frosted_icesheet_under_plants_2',
|
||||
deco_type = 'simple',
|
||||
place_on = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
place_offset_y = 1,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.002,
|
||||
spread = { x = 250, y = 250, z = 250 },
|
||||
seed = 2,
|
||||
scale = 0.02,
|
||||
spread = { x = 200, y = 200, z = 200 },
|
||||
seed = 329,
|
||||
octaves = 3,
|
||||
persist = 0.66
|
||||
persist = 0.6
|
||||
},
|
||||
biomes = { 'everness_frosted_icesheet_under' },
|
||||
y_max = y_max - 250 > y_min and y_max - 250 or y_max,
|
||||
y_max = y_max,
|
||||
y_min = y_min,
|
||||
schematic = minetest.get_modpath('everness') .. '/schematics/everness_frosted_crystal.mts',
|
||||
flags = 'place_center_x, place_center_z, all_floors, force_placement',
|
||||
rotation = 'random',
|
||||
spawn_by = {
|
||||
'everness:ancient_emerald_ice',
|
||||
'everness:dense_emerald_ice',
|
||||
'everness:emerald_ice',
|
||||
'everness:frosted_cave_ice_illuminating',
|
||||
'everness:frosted_ice',
|
||||
'everness:frosted_ice_translucent',
|
||||
},
|
||||
num_spawn_by = 8,
|
||||
decoration = { 'everness:creeping_moss_spores' },
|
||||
flags = 'all_floors',
|
||||
param2 = 26
|
||||
})
|
||||
|
||||
--
|
||||
-- On Generated
|
||||
--
|
||||
|
||||
local deco_id_frosted_icicle_large_ceiling = minetest.get_decoration_id('everness:frosted_icicle_large_ceiling')
|
||||
local deco_id_frosted_icicle_large_floor = minetest.get_decoration_id('everness:frosted_icicle_large_floor')
|
||||
|
||||
minetest.set_gen_notify('decoration', { deco_id_frosted_icicle_large_ceiling, deco_id_frosted_icicle_large_floor })
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local gennotify = minetest.get_mapgen_object('gennotify')
|
||||
|
||||
if y_min < maxp.y and maxp.y < y_max then
|
||||
--
|
||||
-- Frosted Large Icicle Ceiling
|
||||
--
|
||||
for _, pos in ipairs(gennotify['decoration#' .. deco_id_frosted_icicle_large_ceiling] or {}) do
|
||||
local markers = minetest.find_nodes_in_area(
|
||||
vector.new(pos.x - 1, pos.y - 18, pos.z - 1),
|
||||
vector.new(pos.x + 1, pos.y - 20, pos.z + 1),
|
||||
{'everness:frosted_icicle_large_ceiling_marker'}
|
||||
)
|
||||
|
||||
if #markers > 0 then
|
||||
local pos_marker = markers[1]
|
||||
|
||||
local air_below = minetest.find_nodes_in_area(
|
||||
vector.new(pos_marker.x, pos_marker.y, pos_marker.z),
|
||||
vector.new(pos_marker.x, pos_marker.y - 7, pos_marker.z),
|
||||
{'air'}
|
||||
)
|
||||
|
||||
-- Replace marker
|
||||
minetest.set_node(pos_marker, { name = 'everness:frosted_cave_ice_illuminating' })
|
||||
|
||||
if #air_below == 7 then
|
||||
local incrementer = 1
|
||||
local pos_below = vector.new(pos_marker.x, pos_marker.y - incrementer, pos_marker.z)
|
||||
local node_below = minetest.get_node(pos_below)
|
||||
|
||||
Everness.stack_icicle_recursive(node_below, pos_below, incrementer, pos_marker, 'down')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Frosted Large Icicle Floor
|
||||
--
|
||||
for _, pos in ipairs(gennotify['decoration#' .. deco_id_frosted_icicle_large_floor] or {}) do
|
||||
local markers = minetest.find_nodes_in_area(
|
||||
vector.new(pos.x - 1, pos.y + 18, pos.z - 1),
|
||||
vector.new(pos.x + 1, pos.y + 20, pos.z + 1),
|
||||
{'everness:frosted_icicle_large_floor_marker'}
|
||||
)
|
||||
|
||||
if #markers > 0 then
|
||||
local pos_marker = markers[1]
|
||||
|
||||
local air_above = minetest.find_nodes_in_area(
|
||||
vector.new(pos_marker.x, pos_marker.y, pos_marker.z),
|
||||
vector.new(pos_marker.x, pos_marker.y + 7, pos_marker.z),
|
||||
{'air'}
|
||||
)
|
||||
|
||||
minetest.set_node(pos_marker, { name = 'everness:frosted_cave_ice_illuminating' })
|
||||
|
||||
-- Make sure we have some space
|
||||
if #air_above == 7 then
|
||||
local incrementer = 1
|
||||
local pos_above = vector.new(pos_marker.x, pos_marker.y + incrementer, pos_marker.z)
|
||||
local node_above = minetest.get_node(pos_above)
|
||||
|
||||
Everness.stack_icicle_recursive(node_above, pos_above, incrementer, pos_marker, 'up')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
|
25
nodes.lua
|
@ -828,7 +828,7 @@ minetest.register_node('everness:dry_ocean_dirt', {
|
|||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- Loot Chest Markers
|
||||
-- Loot Chest / Icicle Markers
|
||||
|
||||
minetest.register_node('everness:japanese_shrine_lootchest_marker', {
|
||||
-- drawtype = 'airlike',
|
||||
|
@ -878,6 +878,22 @@ minetest.register_node('everness:forsaken_desert_temple_2_marker', {
|
|||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_icicle_large_ceiling_marker', {
|
||||
-- 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 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
minetest.register_node('everness:frosted_icicle_large_floor_marker', {
|
||||
-- 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 },
|
||||
paramtype2 = 'facedir',
|
||||
})
|
||||
|
||||
-- Everness default blocks
|
||||
|
||||
minetest.register_node('everness:dirt_1', {
|
||||
|
@ -1102,7 +1118,8 @@ minetest.register_node('everness:frosted_cave_ice_illuminating', {
|
|||
not_in_creative_inventory = 1 },
|
||||
drop = 'everness:frosted_ice',
|
||||
sounds = default.node_sound_ice_defaults(),
|
||||
light_source = 9
|
||||
light_source = 9,
|
||||
is_ground_content = false
|
||||
})
|
||||
|
||||
minetest.register_node('everness:bone', {
|
||||
|
@ -2456,7 +2473,7 @@ minetest.register_node('everness:blooming_cooksonia', {
|
|||
wield_image = 'everness_blooming_cooksonia.png',
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'meshoptions',
|
||||
place_param2 = 11,
|
||||
place_param2 = 8,
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
|
@ -2476,7 +2493,7 @@ minetest.register_node('everness:creeping_moss_spores', {
|
|||
wield_image = 'everness_creeping_moss_spores.png',
|
||||
paramtype = 'light',
|
||||
paramtype2 = 'meshoptions',
|
||||
place_param2 = 11,
|
||||
place_param2 = 26,
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
|
|
BIN
screenshot.png
Before Width: | Height: | Size: 8.1 MiB After Width: | Height: | Size: 7.9 MiB |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 224 B |
Before Width: | Height: | Size: 846 B After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 457 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 168 B |
Before Width: | Height: | Size: 782 B After Width: | Height: | Size: 245 B |
Before Width: | Height: | Size: 735 B After Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 811 B After Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 222 B |
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 220 B |