Add mineral waters

This commit is contained in:
Juraj Vajda 2024-01-22 14:48:57 -05:00
parent c204309b47
commit 16d4bf076f
32 changed files with 1597 additions and 35 deletions

View File

@ -521,10 +521,14 @@ GNU Lesser General Public License v2.1 or later
- everness_cave_flower_item.png - everness_cave_flower_item.png
- everness_cave_flower_mesh_particles.png - everness_cave_flower_mesh_particles.png
- everness_cave_flower_mesh.png - everness_cave_flower_mesh.png
- everness_ceramic_pot_1_mesh.png - everness_ceramic_pot_blank_mesh.png
- everness_ceramic_pot_2_mesh.png - everness_ceramic_pot_flowers_mesh.png
- everness_ceramic_pot_3_mesh.png - everness_ceramic_pot_line_mesh.png
- everness_ceramic_pot_4_mesh.png - everness_ceramic_pot_tribal_mesh.png
- everness_ceramic_pot_blank_sherd.png
- everness_ceramic_pot_flowers_sherd.png
- everness_ceramic_pot_line_sherd.png
- everness_ceramic_pot_tribal_sherd.png
- everness_chest_front.png - everness_chest_front.png
- everness_chest_inside.png - everness_chest_inside.png
- everness_chest_side.png - everness_chest_side.png
@ -962,6 +966,21 @@ GNU Lesser General Public License v2.1 or later
- everness_xpanes_edge_pyrite.png - everness_xpanes_edge_pyrite.png
- everness_water_geyser_particle.png - everness_water_geyser_particle.png
- everness_water_geyser_item.png - everness_water_geyser_item.png
- everness_mineral_sandstone_brick.png
- everness_mineral_sandstone_brick_block.png
- everness_mineral_sandstone_brick_block_top.png
- everness_fence_palm_wood.png
- everness_fence_rail_palm_wood.png
- everness_door_palm_wood.png
- everness_door_trapdoor_palm_wood.png
- everness_door_trapdoor_palm_wood_side.png
- everness_door_palm_wood_item.png
- everness_ceramic_pot_lines_sherd.png
- everness_ceramic_pot_blank_sherd.png
- everness_ceramic_pot_tribal_sherd.png
- everness_ceramic_pot_flowers_sherd.png
- everness_ceramic_sherds_ore.png
- everness_pick_archeological.png
**CC-BY-SA-4.0, Pixel Perfection by XSSheep**, https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated **CC-BY-SA-4.0, Pixel Perfection by XSSheep**, https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated
@ -1659,3 +1678,5 @@ https://freesound.org/people/Rudmer_Rotteveel/sounds/590950/
- everness_palm_tree.mts - everness_palm_tree.mts
- everness_palm_tree_from_sapling.lua - everness_palm_tree_from_sapling.lua
- everness_palm_tree_from_sapling.mts - everness_palm_tree_from_sapling.mts
- everness_mineral_waters_tower.lua
- everness_mineral_waters_tower.mts

File diff suppressed because it is too large Load Diff

View File

@ -113,6 +113,15 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'everness:trapdoor_palm_wood 2',
recipe = {
{ 'everness:palm_tree_wood', 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
{ 'everness:palm_tree_wood', 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
{ '', '', '' },
}
})
minetest.register_craft({ minetest.register_craft({
output = 'everness:bamboo_mosaic_wood', output = 'everness:bamboo_mosaic_wood',
recipe = { recipe = {
@ -662,6 +671,14 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'everness:mineral_sandstone_brick 4',
recipe = {
{ 'everness:mineral_sandstone', 'everness:mineral_sandstone' },
{ 'everness:mineral_sandstone', 'everness:mineral_sandstone' },
}
})
minetest.register_craft({ minetest.register_craft({
output = 'everness:mineral_sandstone_block 9', output = 'everness:mineral_sandstone_block 9',
recipe = { recipe = {
@ -671,6 +688,14 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'everness:mineral_sandstone_brick_block 6',
recipe = {
{ 'everness:mineral_sandstone', 'everness:mineral_sandstone', 'everness:mineral_sandstone' },
{ 'everness:mineral_sandstone_brick', 'everness:mineral_sandstone_brick', 'everness:mineral_sandstone_brick' },
}
})
minetest.register_craft({ minetest.register_craft({
output = 'everness:mineral_stone_brick_with_growth 3', output = 'everness:mineral_stone_brick_with_growth 3',
recipe = { recipe = {
@ -698,6 +723,21 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'everness:ceramic_pot_blank',
recipe = {
{ '', 'everness:ceramic_pot_sherd_blank', ''},
{ 'everness:ceramic_pot_sherd_blank', '', 'everness:ceramic_pot_sherd_blank'},
{ '', 'everness:ceramic_pot_sherd_blank', ''},
}
})
minetest.register_craft({
output = 'everness:ceramic_pot_sherd_blank 4',
type = 'shapeless',
recipe = { 'everness:ceramic_pot_blank' }
})
-- Crystals -- Crystals
minetest.register_craft({ minetest.register_craft({
@ -794,6 +834,15 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = 'everness:pick_archeological',
recipe = {
{ 'group:stone', 'group:stone', 'group:stone' },
{ '', 'group:stick', '' },
{ 'group:stick', '', '' }
}
})
-- --
-- Fuels -- Fuels
-- --

View File

@ -155,3 +155,36 @@ doors.register_trapdoor('everness:trapdoor_cursed_wood', {
gain_close = 0.15, gain_close = 0.15,
groups = { node = 1, cracky = 3, oddly_breakable_by_hand = 3, door = 1 }, groups = { node = 1, cracky = 3, oddly_breakable_by_hand = 3, door = 1 },
}) })
-- Palm Wood
doors.register('everness:door_palm_wood', {
description = S('Palm Wood Door'),
tiles = { 'everness_door_palm_wood.png' },
inventory_image = 'everness_door_palm_wood_item.png',
use_texture_alpha = 'blend',
groups = { node = 1, cracky = 3, oddly_breakable_by_hand = 3, door = 1 },
sounds = Everness.node_sound_wood_defaults(),
recipe = {
{ 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
{ 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
{ 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
}
})
doors.register_trapdoor('everness:trapdoor_palm_wood', {
description = S('Palm Wood Trapdoor'),
inventory_image = 'everness_door_trapdoor_palm_wood.png',
wield_image = 'everness_door_trapdoor_palm_wood.png',
tile_front = 'everness_door_trapdoor_palm_wood.png',
tile_side = 'everness_door_trapdoor_palm_wood_side.png',
sounds = Everness.node_sound_wood_defaults(),
groups = { node = 1, cracky = 3, oddly_breakable_by_hand = 3, door = 1 },
})
doors.register_fencegate('everness:gate_palm_wood', {
description = S('Palm Wood Fence Gate'),
texture = 'everness_palm_tree_wood.png^[sheet:2x2:1,1',
material = 'everness:palm_tree_wood',
groups = { choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 }
})

View File

@ -111,3 +111,35 @@ default.register_mesepost('everness:mese_post_light_bamboo_wood', {
texture = 'everness_fence_crystal_wood.png^[transformFY', texture = 'everness_fence_crystal_wood.png^[transformFY',
material = 'everness:crystal_wood', material = 'everness:crystal_wood',
}) })
-- Palm Wood
default.register_fence('everness:fence_palm_wood', {
description = S('Palm Wood Fence'),
texture = 'everness_fence_palm_wood.png',
inventory_image = 'default_fence_overlay.png^everness_palm_tree_wood.png^' ..
'default_fence_overlay.png^[makealpha:255,126,126',
wield_image = 'default_fence_overlay.png^everness_palm_tree_wood.png^' ..
'default_fence_overlay.png^[makealpha:255,126,126',
material = 'everness:palm_tree_wood',
groups = { choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
sounds = Everness.node_sound_wood_defaults()
})
default.register_fence_rail('everness:fence_rail_palm_wood', {
description = S('Palm Wood Fence Rail'),
texture = 'everness_fence_rail_palm_wood.png^[transformR90',
inventory_image = 'default_fence_rail_overlay.png^everness_palm_tree_wood.png^' ..
'default_fence_rail_overlay.png^[makealpha:255,126,126',
wield_image = 'default_fence_rail_overlay.png^everness_palm_tree_wood.png^' ..
'default_fence_rail_overlay.png^[makealpha:255,126,126',
material = 'everness:palm_tree_wood',
groups = { choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
sounds = Everness.node_sound_wood_defaults()
})
default.register_mesepost('everness:mese_post_light_bamboo_wood', {
description = S('Palm Wood Mese Post Light'),
texture = 'everness_fence_palm_wood.png^[transformFY',
material = 'everness:palm_tree_wood',
})

View File

@ -28,7 +28,8 @@ minetest.register_lbm({
'everness:cursed_lands_deep_ocean_skull_marker', 'everness:cursed_lands_deep_ocean_skull_marker',
'everness:frosted_icesheet_igloo_marker', 'everness:frosted_icesheet_igloo_marker',
'everness:crystal_forest_deep_ocean_ruins_marker', 'everness:crystal_forest_deep_ocean_ruins_marker',
'everness:mineral_waters_marker' 'everness:mineral_waters_marker',
'everness:mineral_waters_tower_marker'
}, },
run_at_every_load = true, run_at_every_load = true,
action = function(pos, node) action = function(pos, node)
@ -258,6 +259,27 @@ minetest.register_lbm({
return return
end end
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:mineral_waters_tower_marker' then
--
-- Mineral Waters Tower
--
local item_def = Everness.loot_chest.default[rand:next(1, #Everness.loot_chest.default)]
if not minetest.registered_items[item_def.name] then
return
end
if rand:next(0, 100) <= item_def.chance then if rand:next(0, 100) <= item_def.chance then
local stack = ItemStack(item_def.name) local stack = ItemStack(item_def.name)

View File

@ -15,7 +15,6 @@
--]] --]]
-- Get the content IDs for the nodes used. -- Get the content IDs for the nodes used.
local c_air = minetest.get_content_id('air')
local c_dirt_with_grass_1 = minetest.get_content_id('everness:dirt_with_grass_1') local c_dirt_with_grass_1 = minetest.get_content_id('everness:dirt_with_grass_1')
local c_dirt_with_rainforest_litter = minetest.get_content_id('default:dirt_with_rainforest_litter') local c_dirt_with_rainforest_litter = minetest.get_content_id('default:dirt_with_rainforest_litter')
local c_dirt_with_cursed_grass = minetest.get_content_id('everness:dirt_with_cursed_grass') local c_dirt_with_cursed_grass = minetest.get_content_id('everness:dirt_with_cursed_grass')
@ -30,6 +29,9 @@ local c_forsaken_desert_brick = minetest.get_content_id('everness:forsaken_deser
local c_forsaken_desert_engraved_stone = minetest.get_content_id('everness:forsaken_desert_engraved_stone') 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_snowblock = minetest.get_content_id('everness:frosted_snowblock')
local c_frosted_ice = minetest.get_content_id('everness:frosted_ice') local c_frosted_ice = minetest.get_content_id('everness:frosted_ice')
local c_everness_mineral_water_source = minetest.get_content_id('everness:mineral_water_source')
local c_everness_mineral_sand = minetest.get_content_id('everness:mineral_sand')
-- Localize data buffer table outside the loop, to be re-used for all -- Localize data buffer table outside the loop, to be re-used for all
-- mapchunks, therefore minimising memory use. -- mapchunks, therefore minimising memory use.
@ -40,7 +42,6 @@ local water_level = tonumber(minetest.settings:get('water_level'))
minetest.register_on_generated(function(minp, maxp, blockseed) minetest.register_on_generated(function(minp, maxp, blockseed)
local rand = PcgRandom(blockseed) local rand = PcgRandom(blockseed)
-- Load the voxelmanip with the result of engine mapgen -- Load the voxelmanip with the result of engine mapgen
local vm, emin, emax = minetest.get_mapgen_object('voxelmanip') local vm, emin, emax = minetest.get_mapgen_object('voxelmanip')
-- 'area' is used later to get the voxelmanip indexes for positions -- 'area' is used later to get the voxelmanip indexes for positions
@ -50,7 +51,6 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
vm:get_data(data) vm:get_data(data)
-- Side length of mapchunk -- Side length of mapchunk
local sidelength = maxp.x - minp.x + 1 local sidelength = maxp.x - minp.x + 1
local x_disp = rand:next(0, disp) local x_disp = rand:next(0, disp)
local z_disp = rand:next(0, disp) local z_disp = rand:next(0, disp)
@ -60,7 +60,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
for y = minp.y, maxp.y do for y = minp.y, maxp.y do
local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp) local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp)
if data[vi + area.ystride] == c_air if data[vi + area.ystride] == minetest.CONTENT_AIR
and ( and (
data[vi] == c_dirt_with_grass_1 data[vi] == c_dirt_with_grass_1
or data[vi] == c_dirt_with_rainforest_litter or data[vi] == c_dirt_with_rainforest_litter
@ -73,6 +73,8 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or data[vi] == c_dirt_with_coniferous_litter or data[vi] == c_dirt_with_coniferous_litter
or data[vi] == c_frosted_snowblock or data[vi] == c_frosted_snowblock
or data[vi] == c_frosted_ice or data[vi] == c_frosted_ice
or data[vi] == c_everness_mineral_water_source
or data[vi] == c_everness_mineral_sand
) )
then then
local s_pos = area:position(vi) local s_pos = area:position(vi)
@ -264,22 +266,67 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
) )
minetest.log('action', '[Everness] Igloo was placed at ' .. schem_pos:to_string()) minetest.log('action', '[Everness] Igloo was placed at ' .. schem_pos:to_string())
elseif biome_name == 'everness_mineral_waters'
and rand:next(0, 100) < chance
then
local schem = minetest.get_modpath('everness') .. '/schematics/everness_mineral_waters_tower.mts'
--
-- Mineral Waters Tower
--
local size = { x = 7, y = 16, z = 9 }
local size_x = math.round(size.x / 2)
local size_z = math.round(size.z / 2)
-- add Y displacement
local schem_pos = vector.new(s_pos)
-- find floor big enough
local positions = minetest.find_nodes_in_area_under_air(
vector.new(s_pos.x - size_x, s_pos.y - 1, s_pos.z - size_z),
vector.new(s_pos.x + size_x, s_pos.y + 1, s_pos.z + size_z),
{
'everness:mineral_sand',
'everness:mineral_water_source'
})
if #positions < size.x * size.z then
-- not enough space
return
end
-- enough air to place structure ?
local air_positions = minetest.find_nodes_in_area(
vector.new(s_pos.x - size_x, s_pos.y, s_pos.z - size_z),
vector.new(s_pos.x + size_x, s_pos.y + size.y, s_pos.z + size_z),
'air', true)
if air_positions.air and #air_positions.air > (size.x * size.y * size.z) / 2 then
minetest.place_schematic_on_vmanip(
vm,
schem_pos,
schem,
'random',
nil,
true,
'place_center_x, place_center_z'
)
minetest.log('action', '[Everness] Mineral Waters Tower was placed at ' .. schem_pos:to_string())
end
end end
end end
end end
vm:write_to_map(true) vm:write_to_map(true)
-- @TODO
-- Try below approach
-- After modifying the Mapgen VoxelManip object's internal buffer, it may be necessary to update lighting information using either: `VoxelManip:calc_lighting()` or `VoxelManip:set_lighting()`
minetest.fix_light(minp, maxp) minetest.fix_light(minp, maxp)
else else
-- Under sea level -- Under sea level
for y = minp.y, maxp.y do for y = minp.y, maxp.y do
local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp) local vi = area:index(minp.x + sidelength / 2 + x_disp, y, minp.z + sidelength / 2 + z_disp)
if data[vi + area.ystride] == c_air if data[vi + area.ystride] == minetest.CONTENT_AIR
and ( and (
data[vi] == c_dirt_with_grass_1 data[vi] == c_dirt_with_grass_1
or data[vi] == c_forsaken_desert_sand or data[vi] == c_forsaken_desert_sand

View File

@ -62,6 +62,18 @@ minetest.register_ore({
biomes = { 'everness_mineral_waters' } biomes = { 'everness_mineral_waters' }
}) })
minetest.register_ore({
ore_type = 'scatter',
ore = 'everness:mineral_stone_with_ceramic_sherds',
wherein = 'everness:mineral_stone',
clust_scarcity = 14 * 14 * 14,
clust_num_ores = 5,
clust_size = 3,
y_max = y_max,
y_min = y_min,
biomes = { 'everness_mineral_waters' }
})
-- --
-- Register decorations -- Register decorations
-- placeholder node `everness:crystal_stone` will be replaced in VM -- placeholder node `everness:crystal_stone` will be replaced in VM
@ -104,10 +116,10 @@ minetest.register_decoration({
y_min = y_min, y_min = y_min,
decoration = { 'everness:crystal_stone' }, decoration = { 'everness:crystal_stone' },
_decoration = { _decoration = {
'everness:ceramic_pot_1', 'everness:ceramic_pot_blank',
'everness:ceramic_pot_2', 'everness:ceramic_pot_flowers',
'everness:ceramic_pot_3', 'everness:ceramic_pot_lines',
'everness:ceramic_pot_4' 'everness:ceramic_pot_tribal'
} }
}) })
@ -171,16 +183,17 @@ local c_everness_mineral_sandstone = minetest.get_content_id('everness:mineral_s
local c_everness_mineral_sandstone_block = minetest.get_content_id('everness:mineral_sandstone_block') local c_everness_mineral_sandstone_block = minetest.get_content_id('everness:mineral_sandstone_block')
local c_everness_mineral_waters_marker = minetest.get_content_id('everness:mineral_waters_marker') local c_everness_mineral_waters_marker = minetest.get_content_id('everness:mineral_waters_marker')
local c_everness_mineral_stone_with_coal = minetest.get_content_id('everness:mineral_stone_with_coal') local c_everness_mineral_stone_with_coal = minetest.get_content_id('everness:mineral_stone_with_coal')
local c_everness_mineral_stone_with_ceramic_sherds = minetest.get_content_id('everness:mineral_stone_with_ceramic_sherds')
local c_everness_lotus_flower_white = minetest.get_content_id('everness:lotus_flower_white') local c_everness_lotus_flower_white = minetest.get_content_id('everness:lotus_flower_white')
local c_everness_lotus_flower_purple = minetest.get_content_id('everness:lotus_flower_purple') local c_everness_lotus_flower_purple = minetest.get_content_id('everness:lotus_flower_purple')
local c_everness_lotus_flower_pink = minetest.get_content_id('everness:lotus_flower_pink') local c_everness_lotus_flower_pink = minetest.get_content_id('everness:lotus_flower_pink')
local c_everness_lotus_lotus_leaf = minetest.get_content_id('everness:lotus_leaf') local c_everness_lotus_lotus_leaf = minetest.get_content_id('everness:lotus_leaf')
local c_everness_lotus_lotus_leaf_2 = minetest.get_content_id('everness:lotus_leaf_2') local c_everness_lotus_lotus_leaf_2 = minetest.get_content_id('everness:lotus_leaf_2')
local c_everness_lotus_lotus_leaf_3 = minetest.get_content_id('everness:lotus_leaf_3') local c_everness_lotus_lotus_leaf_3 = minetest.get_content_id('everness:lotus_leaf_3')
local c_everness_ceramic_pot_1 = minetest.get_content_id('everness:ceramic_pot_1') local c_everness_ceramic_pot_blank = minetest.get_content_id('everness:ceramic_pot_blank')
local c_everness_ceramic_pot_2 = minetest.get_content_id('everness:ceramic_pot_2') local c_everness_ceramic_pot_flowers = minetest.get_content_id('everness:ceramic_pot_flowers')
local c_everness_ceramic_pot_3 = minetest.get_content_id('everness:ceramic_pot_3') local c_everness_ceramic_pot_lines = minetest.get_content_id('everness:ceramic_pot_lines')
local c_everness_ceramic_pot_4 = minetest.get_content_id('everness:ceramic_pot_4') local c_everness_ceramic_pot_tribal = minetest.get_content_id('everness:ceramic_pot_tribal')
local c_everness_mineral_water_weed_1 = minetest.get_content_id('everness:mineral_water_weed_1') local c_everness_mineral_water_weed_1 = minetest.get_content_id('everness:mineral_water_weed_1')
local c_everness_mineral_water_weed_2 = minetest.get_content_id('everness:mineral_water_weed_2') local c_everness_mineral_water_weed_2 = minetest.get_content_id('everness:mineral_water_weed_2')
local c_everness_mineral_water_weed_3 = minetest.get_content_id('everness:mineral_water_weed_3') local c_everness_mineral_water_weed_3 = minetest.get_content_id('everness:mineral_water_weed_3')
@ -216,10 +229,10 @@ local c_lotus_leaves = {
c_everness_lotus_lotus_leaf_3 c_everness_lotus_lotus_leaf_3
} }
local c_pots = { local c_pots = {
c_everness_ceramic_pot_1, c_everness_ceramic_pot_blank,
c_everness_ceramic_pot_2, c_everness_ceramic_pot_flowers,
c_everness_ceramic_pot_3, c_everness_ceramic_pot_lines,
c_everness_ceramic_pot_4 c_everness_ceramic_pot_tribal
} }
local c_water_weeds = { local c_water_weeds = {
c_everness_mineral_water_weed_1, c_everness_mineral_water_weed_1,
@ -467,24 +480,28 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or c_right == c_everness_mineral_water_source or c_right == c_everness_mineral_water_source
or c_right == c_everness_mineral_stone or c_right == c_everness_mineral_stone
or c_right == c_everness_mineral_stone_with_coal or c_right == c_everness_mineral_stone_with_coal
or c_right == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
c_left == c_everness_mineral_sand c_left == c_everness_mineral_sand
or c_left == c_everness_mineral_water_source or c_left == c_everness_mineral_water_source
or c_left == c_everness_mineral_stone or c_left == c_everness_mineral_stone
or c_left == c_everness_mineral_stone_with_coal or c_left == c_everness_mineral_stone_with_coal
or c_left == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
c_front == c_everness_mineral_sand c_front == c_everness_mineral_sand
or c_front == c_everness_mineral_water_source or c_front == c_everness_mineral_water_source
or c_front == c_everness_mineral_stone or c_front == c_everness_mineral_stone
or c_front == c_everness_mineral_stone_with_coal or c_front == c_everness_mineral_stone_with_coal
or c_front == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
c_back == c_everness_mineral_sand c_back == c_everness_mineral_sand
or c_back == c_everness_mineral_water_source or c_back == c_everness_mineral_water_source
or c_back == c_everness_mineral_stone or c_back == c_everness_mineral_stone
or c_back == c_everness_mineral_stone_with_coal or c_back == c_everness_mineral_stone_with_coal
or c_back == c_everness_mineral_stone_with_ceramic_sherds
) )
then then
-- dig below -- dig below
@ -496,6 +513,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
( (
data[while_index] == c_everness_mineral_stone data[while_index] == c_everness_mineral_stone
or data[while_index] == c_everness_mineral_stone_with_coal or data[while_index] == c_everness_mineral_stone_with_coal
or data[while_index] == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
-- right -- right
@ -503,6 +521,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or data[while_index + 1 + area.ystride] == c_everness_mineral_water_source or data[while_index + 1 + area.ystride] == c_everness_mineral_water_source
or data[while_index + 1 + area.ystride] == c_everness_mineral_stone or data[while_index + 1 + area.ystride] == c_everness_mineral_stone
or data[while_index + 1 + area.ystride] == c_everness_mineral_stone_with_coal or data[while_index + 1 + area.ystride] == c_everness_mineral_stone_with_coal
or data[while_index + 1 + area.ystride] == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
-- left -- left
@ -510,6 +529,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or data[while_index - 1 + area.ystride] == c_everness_mineral_water_source or data[while_index - 1 + area.ystride] == c_everness_mineral_water_source
or data[while_index - 1 + area.ystride] == c_everness_mineral_stone or data[while_index - 1 + area.ystride] == c_everness_mineral_stone
or data[while_index - 1 + area.ystride] == c_everness_mineral_stone_with_coal or data[while_index - 1 + area.ystride] == c_everness_mineral_stone_with_coal
or data[while_index - 1 + area.ystride] == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
-- front -- front
@ -517,6 +537,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or data[while_index + area.zstride + area.ystride] == c_everness_mineral_water_source or data[while_index + area.zstride + area.ystride] == c_everness_mineral_water_source
or data[while_index + area.zstride + area.ystride] == c_everness_mineral_stone or data[while_index + area.zstride + area.ystride] == c_everness_mineral_stone
or data[while_index + area.zstride + area.ystride] == c_everness_mineral_stone_with_coal or data[while_index + area.zstride + area.ystride] == c_everness_mineral_stone_with_coal
or data[while_index + area.zstride + area.ystride] == c_everness_mineral_stone_with_ceramic_sherds
) )
and ( and (
-- back -- back
@ -524,6 +545,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
or data[while_index - area.zstride + area.ystride] == c_everness_mineral_water_source or data[while_index - area.zstride + area.ystride] == c_everness_mineral_water_source
or data[while_index - area.zstride + area.ystride] == c_everness_mineral_stone or data[while_index - area.zstride + area.ystride] == c_everness_mineral_stone
or data[while_index - area.zstride + area.ystride] == c_everness_mineral_stone_with_coal or data[while_index - area.zstride + area.ystride] == c_everness_mineral_stone_with_coal
or data[while_index - area.zstride + area.ystride] == c_everness_mineral_stone_with_ceramic_sherds
) )
then then
data[while_index + area.ystride] = c_everness_mineral_water_source data[while_index + area.ystride] = c_everness_mineral_water_source

View File

@ -48,6 +48,8 @@ mcl_fences.register_fence_and_fence_gate(
Everness.node_sound_wood_defaults() Everness.node_sound_wood_defaults()
) )
-- Crystal Wood
mcl_fences.register_fence_and_fence_gate( mcl_fences.register_fence_and_fence_gate(
'gate_crystal_wood', 'gate_crystal_wood',
S('Crystal Wood Fence'), S('Crystal Wood Fence'),
@ -60,6 +62,20 @@ mcl_fences.register_fence_and_fence_gate(
Everness.node_sound_wood_defaults() Everness.node_sound_wood_defaults()
) )
-- Palm Wood
mcl_fences.register_fence_and_fence_gate(
'gate_palm_tree_wood',
S('Palm Wood Fence'),
S('Palm Wood Fence Gate'),
'everness_palm_tree_wood.png',
{ handy = 1, axey = 1, flammable = 2, fence_wood = 1, fire_encouragement = 5, fire_flammability = 20 },
2,
15,
{ 'group:fence_wood' },
Everness.node_sound_wood_defaults()
)
--- ---
-- Walls -- Walls
--- ---
@ -1009,6 +1025,42 @@ mcl_stairs.register_stair_and_slab(
nil nil
) )
mcl_stairs.register_stair_and_slab(
'mineral_sandstone_brick',
'everness:mineral_sandstone_brick',
{ pickaxey = 2 },
{{
name = 'everness_mineral_sandstone_brick.png',
align_style = 'world',
scale = 2
}},
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Stair'),
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Slab'),
Everness.node_sound_stone_defaults(),
6,
1.5,
S('Double') .. ' ' .. S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Slab'),
nil
)
mcl_stairs.register_stair_and_slab(
'mineral_sandstone_brick_block',
'everness:mineral_sandstone_brick_block',
{ pickaxey = 2 },
{{
name = 'everness_mineral_sandstone_brick_block.png',
align_style = 'world',
scale = 2
}},
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block') .. ' ' .. S('Stair'),
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block') .. ' ' .. S('Slab'),
Everness.node_sound_stone_defaults(),
6,
1.5,
S('Double') .. ' ' .. S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block') .. ' ' .. S('Slab'),
nil
)
mcl_stairs.register_stair_and_slab( mcl_stairs.register_stair_and_slab(
'mineral_stone_brick_with_growth', 'mineral_stone_brick_with_growth',
'everness:mineral_stone_brick_with_growth', 'everness:mineral_stone_brick_with_growth',
@ -1241,6 +1293,47 @@ minetest.register_craft({
} }
}) })
-- Palm Wood
-- mcl_doors:register_door('everness:door_palm_wood', {
-- description = S('Palm Wood Door'),
-- inventory_image = 'everness_door_palm_wood_item.png',
-- groups = { handy = 1, axey = 1, material_wood = 1, flammable = -1 },
-- tiles_bottom = 'everness_mcl_doors_door_cursed_wood_lower.png',
-- tiles_top = 'everness_mcl_doors_door_cursed_wood_upper.png',
-- sounds = Everness.node_sound_wood_defaults(),
-- _mcl_hardness = 3,
-- _mcl_blast_resistance = 3,
-- })
-- minetest.register_craft({
-- output = 'everness:door_palm_wood 3',
-- recipe = {
-- { 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
-- { 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
-- { 'everness:palm_tree_wood', 'everness:palm_tree_wood' }
-- }
-- })
-- mcl_doors:register_trapdoor('everness:trapdoor_palm_wood', {
-- description = S('Palm Wood Trapdoor'),
-- tile_front = 'everness_door_trapdoor_cursed_wood.png',
-- tile_side = 'everness_mcl_doors_trapdoor_cursed_wood_side.png',
-- wield_image = 'everness_door_trapdoor_palm_wood.png',
-- groups = { handy = 1, axey = 1, material_wood = 1, flammable = -1 },
-- sounds = Everness.node_sound_wood_defaults(),
-- _mcl_hardness = 3,
-- _mcl_blast_resistance = 3,
-- })
-- minetest.register_craft({
-- output = 'everness:trapdoor_palm_wood',
-- recipe = {
-- { 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
-- { 'everness:palm_tree_wood', 'everness:palm_tree_wood' },
-- }
-- })
-- --
-- Buckets -- Buckets
-- --

165
nodes.lua
View File

@ -123,6 +123,45 @@ Everness:register_node('everness:stone_with_pyrite', {
sounds = Everness.node_sound_stone_defaults(), sounds = Everness.node_sound_stone_defaults(),
}) })
minetest.register_node('everness:mineral_stone_with_ceramic_sherds', {
description = S('Ceramic Sherds. Use archeological pickaxe to have a chance of getting various different sherds.'),
short_description = S('Ceramic Sherds'),
tiles = { 'everness_mineral_stone.png^[sheet:2x2:1,1^everness_ceramic_sherds_ore.png' },
groups = {
cracky = 3,
-- MCL
pickaxey = 1,
building_block = 1,
material_stone = 1,
xp = 1,
blast_furnace_smeltable = 1
},
drop = {
max_items = 1,
items = {
{
tool_groups = { 'archeological_drop' },
items = { 'everness:ceramic_pot_sherd_flowers' },
rarity = 20
},
{
tool_groups = { 'archeological_drop' },
items = { 'everness:ceramic_pot_sherd_lines' },
rarity = 10
},
{
tool_groups = { 'archeological_drop' },
items = { 'everness:ceramic_pot_sherd_tribal' },
rarity = 5
},
{
items = { 'everness:ceramic_pot_sherd_blank' }
}
}
},
sounds = Everness.node_sound_stone_defaults(),
})
Everness:register_node('everness:pyriteblock', { Everness:register_node('everness:pyriteblock', {
description = S('Pyrite Block'), description = S('Pyrite Block'),
tiles = { 'everness_pyrite_block.png' }, tiles = { 'everness_pyrite_block.png' },
@ -2095,6 +2134,64 @@ Everness:register_node('everness:mineral_stone_brick_with_flower_growth', {
sounds = Everness.node_sound_stone_defaults(), sounds = Everness.node_sound_stone_defaults(),
}) })
Everness:register_node('everness:mineral_sandstone_brick', {
description = S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick'),
paramtype2 = 'facedir',
is_ground_content = false,
place_param2 = 0,
tiles = {
{
name = 'everness_mineral_sandstone_brick.png',
align_style = 'world',
scale = 2
}
},
groups = {
-- MTG
cracky = 2,
-- MCL
pickaxey = 1,
building_block = 1,
material_stone = 1,
-- ALL
stone = 1,
},
_mcl_blast_resistance = 6,
_mcl_hardness = 1.5,
_mcl_silk_touch_drop = false,
sounds = Everness.node_sound_stone_defaults(),
})
Everness:register_node('everness:mineral_sandstone_brick_block', {
description = S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block'),
paramtype2 = 'facedir',
is_ground_content = false,
place_param2 = 0,
tiles = {
{ name = 'everness_mineral_sandstone_brick_block_top.png' },
{ name = 'everness_mineral_sandstone_brick_block_top.png' },
{
name = 'everness_mineral_sandstone_brick_block.png',
align_style = 'world',
scale = 2
}
},
groups = {
-- MTG
cracky = 2,
-- MCL
pickaxey = 1,
building_block = 1,
material_stone = 1,
-- ALL
stone = 1,
},
_mcl_blast_resistance = 6,
_mcl_hardness = 1.5,
_mcl_silk_touch_drop = false,
sounds = Everness.node_sound_stone_defaults(),
})
-- --
-- Soft / Non-Stone -- Soft / Non-Stone
-- --
@ -2663,6 +2760,16 @@ Everness:register_node('everness:mineral_waters_marker', {
drop = '' drop = ''
}) })
Everness:register_node('everness:mineral_waters_tower_marker', {
drawtype = 'airlike',
description = 'Mineral Waters Tower Marker',
tiles = { 'everness_lootchest_marker_top.png', 'everness_lootchest_marker_side.png' },
groups = { dig_immediate = 2, not_in_creative_inventory = 1 },
_mcl_hardness = 0.2,
paramtype2 = 'facedir',
drop = ''
})
-- Everness default blocks -- Everness default blocks
Everness:register_node('everness:dirt_1', { Everness:register_node('everness:dirt_1', {
@ -11386,17 +11493,18 @@ Everness:register_node('everness:water_geyser_active', {
}) })
for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
Everness:register_node('everness:ceramic_pot_' .. i, { Everness:register_node('everness:ceramic_pot_' .. v, {
description = S('Ceramic') .. ' ' .. S('Pot') .. ' ' .. S(v), description = S('Ceramic') .. ' ' .. S('Pot') .. ' ' .. S(v) .. '. ' .. S('If destroyed by archelogical pick axe, it will drop ceramic sherds instead of ceramic pot item.'),
short_description = S('Ceramic') .. ' ' .. S('Pot') .. ' ' .. S(v),
drawtype = 'mesh', drawtype = 'mesh',
mesh = 'everness_ceramic_pot.obj', mesh = 'everness_ceramic_pot.obj',
tiles = { 'everness_ceramic_pot_' .. i .. '_mesh.png' }, tiles = { 'everness_ceramic_pot_' .. v .. '_mesh.png' },
wield_scale = { x = 2, y = 2, z = 2 },
is_ground_content = false, is_ground_content = false,
paramtype = 'light', paramtype = 'light',
sunlight_propagates = true, sunlight_propagates = true,
use_texture_alpha = 'clip', use_texture_alpha = 'clip',
paramtype2 = '4dir', paramtype2 = '4dir',
stack_max = 1,
groups = { groups = {
-- MTG -- MTG
cracky = 3, cracky = 3,
@ -11411,6 +11519,24 @@ for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
_mcl_hardness = 1.5, _mcl_hardness = 1.5,
_mcl_silk_touch_drop = true, _mcl_silk_touch_drop = true,
sounds = Everness.node_sound_ceramic_defaults(), sounds = Everness.node_sound_ceramic_defaults(),
drop = {
max_items = 1,
items = {
{
tool_groups = { 'archeological_drop' },
items = {
'everness:ceramic_pot_sherd_blank',
'everness:ceramic_pot_sherd_blank',
'everness:ceramic_pot_sherd_blank',
'everness:ceramic_pot_sherd_blank',
'everness:ceramic_pot_sherd_' .. v,
}
},
{
items = { 'everness:ceramic_pot_' .. v }
}
}
},
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
@ -11445,7 +11571,7 @@ for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
label_copy = table.concat(label_copy, '') label_copy = table.concat(label_copy, '')
minetest.show_formspec(p_name, 'everness:ceramic_pot_' .. i, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. i .. '_mesh.png')) minetest.show_formspec(p_name, 'everness:ceramic_pot_' .. v, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. v .. '_mesh.png'))
minetest.sound_play('everness_ceramic_hit', { gain = 1.0, pos = pos, max_hear_distance = 10 }, true) minetest.sound_play('everness_ceramic_hit', { gain = 1.0, pos = pos, max_hear_distance = 10 }, true)
end, end,
@ -11466,7 +11592,7 @@ for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
end end
end end
drops[#drops + 1] = 'everness:ceramic_pot_' .. i drops[#drops + 1] = 'everness:ceramic_pot_' .. v
minetest.remove_node(pos) minetest.remove_node(pos)
return drops return drops
end, end,
@ -11524,7 +11650,7 @@ for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
label_copy = table.concat(label_copy, '') label_copy = table.concat(label_copy, '')
minetest.show_formspec(player:get_player_name(), 'everness:ceramic_pot_' .. i, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. i .. '_mesh.png')) minetest.show_formspec(player:get_player_name(), 'everness:ceramic_pot_' .. v, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. v .. '_mesh.png'))
end, end,
on_metadata_inventory_take = function(pos, listname, index, stack, player) on_metadata_inventory_take = function(pos, listname, index, stack, player)
@ -11543,9 +11669,32 @@ for i, v in ipairs({ 'blank', 'flowers', 'lines', 'tribal' }) do
label_copy = table.concat(label_copy, '') label_copy = table.concat(label_copy, '')
minetest.show_formspec(player:get_player_name(), 'everness:ceramic_pot_' .. i, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. i .. '_mesh.png')) minetest.show_formspec(player:get_player_name(), 'everness:ceramic_pot_' .. v, Everness.get_pot_formspec(pos, label_copy, 'everness_ceramic_pot_' .. v .. '_mesh.png'))
end end
}) })
minetest.register_craftitem('everness:ceramic_pot_sherd_' .. v, {
description = S('Ceramic') .. ' ' .. S('Pot') .. ' ' .. S(v) .. ' ' .. S('Sherd'),
inventory_image = 'everness_ceramic_pot_' .. v .. '_sherd.png',
})
if v ~= 'blank' then
-- recipes for 'blank' are in `crafting.lua`
minetest.register_craft({
output = 'everness:ceramic_pot_' .. v,
recipe = {
{ '', 'everness:ceramic_pot_sherd_blank', ''},
{ 'everness:ceramic_pot_sherd_blank', 'everness:ceramic_pot_sherd_' .. v, 'everness:ceramic_pot_sherd_blank'},
{ '', 'everness:ceramic_pot_sherd_blank', ''},
}
})
minetest.register_craft({
output = 'everness:ceramic_pot_' .. v,
type = 'shapeless',
recipe = { 'everness:ceramic_pot_blank', 'everness:ceramic_pot_sherd_' .. v }
})
end
end end
local fence_collision_extra = minetest.settings:get_bool('enable_fence_tall') and 3/8 or 0 local fence_collision_extra = minetest.settings:get_bool('enable_fence_tall') and 3/8 or 0

Binary file not shown.

View File

@ -694,6 +694,40 @@ stairs.register_stair_and_slab(
true true
) )
stairs.register_stair_and_slab(
'mineral_sandstone_brick',
'everness:mineral_sandstone_brick',
{ cracky = 2 },
{{
name = 'everness_mineral_sandstone_brick.png',
align_style = 'world',
scale = 2
}},
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Stair'),
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Slab'),
Everness.node_sound_stone_defaults(),
true
)
stairs.register_stair_and_slab(
'mineral_sandstone_brick_block',
'everness:mineral_sandstone_brick_block',
{ cracky = 2 },
{
{ name = 'everness_mineral_sandstone_brick_block_top.png' },
{ name = 'everness_mineral_sandstone_brick_block_top.png' },
{
name = 'everness_mineral_sandstone_brick_block.png',
align_style = 'world',
scale = 2
}
},
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block') .. ' ' .. S('Stair'),
S('Mineral') .. ' ' .. S('Sandstone') .. ' ' .. S('Brick') .. ' ' .. S('Block') .. ' ' .. S('Slab'),
Everness.node_sound_stone_defaults(),
true
)
stairs.register_stair_and_slab( stairs.register_stair_and_slab(
'mineral_stone_brick_with_growth', 'mineral_stone_brick_with_growth',
'everness:mineral_stone_brick_with_growth', 'everness:mineral_stone_brick_with_growth',

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

View File

@ -147,6 +147,35 @@ minetest.register_tool('everness:pick_illuminating', {
}, },
}) })
minetest.register_tool('everness:pick_archeological', {
description = 'Archeological pickaxe has the ability to get rare items from certain ores. (Use to get different kinds of ceramic sherds from ores with ceramic sherds)',
short_description = 'Archeological pickaxe',
inventory_image = 'everness_pick_archeological.png',
wield_scale = { x = 2, y = 2, z = 1 },
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level = 0,
groupcaps = {
cracky = { times = { [3] = 1.60 }, uses = 20, maxlevel = 1 }
},
damage_groups = { fleshy = 2 },
},
sound = { breaks = 'everness_tool_breaks' },
groups = {
-- MTG
pickaxe = 1,
-- X Enchanting
enchantability = 10,
-- Everness
archeological_drop = 1
},
-- MCL
_mcl_toollike_wield = true,
_mcl_diggroups = {
pickaxey = { speed = 2, level = 2, uses = 500 }
},
})
minetest.register_tool('everness:shovel_silk', { minetest.register_tool('everness:shovel_silk', {
description = S('Silk Shovel'), description = S('Silk Shovel'),
inventory_image = 'everness_shovel_silk.png', inventory_image = 'everness_shovel_silk.png',