From e5c4dbb122d9a7bf1b6186c3c42e4aafd5312316 Mon Sep 17 00:00:00 2001 From: Juraj Vajda Date: Fri, 17 Feb 2023 14:39:42 -0500 Subject: [PATCH] Grass covered, dirt in darkness, groups, missing items and more --- LICENSE.txt | 2 + README.md | 5 +- assets/everness_lumecorn.blend | Bin 745688 -> 746048 bytes functions.lua | 217 ++++++++++++------- locale/template.txt | 22 +- mapgen.lua | 27 ++- models/everness_lumecorn.obj | 50 ++--- nodes.lua | 105 ++++----- stairs.lua | 101 ++++----- textures/everness_amaranita_lantern_item.png | Bin 0 -> 640 bytes textures/everness_lumecorn_item.png | Bin 0 -> 576 bytes walls.lua | 44 ++++ 12 files changed, 357 insertions(+), 216 deletions(-) create mode 100644 textures/everness_amaranita_lantern_item.png create mode 100644 textures/everness_lumecorn_item.png diff --git a/LICENSE.txt b/LICENSE.txt index 600eb82..49df68d 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -785,6 +785,8 @@ GNU Lesser General Public License v2.1 or later (see included LICENSE file) - everness_dry_tree_sapling.png - everness_sequoia_tree_sapling.png - everness_willow_tree_sapling.png +- everness_amaranita_lantern_item.png +- everness_lumecorn_item.png **CC-BY-SA-4.0, Pixel Perfection by XSSheep**, https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated diff --git a/README.md b/README.md index a58a483..f103a96 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,8 @@ Everness is a mapgen, which aims to provide an endless array of beautiful biomes from the surface lands to the caverns with custom-painted -textures. It creates both a sense of dicovery and danger when one lands in the -wrong biome. It also adds structures, dungeons with loot chests, custom sounds and custom -skyboxes based on the biome. +textures. It creates both a sense of discovery and of danger when one lands in the wrong biome. +It also adds structures, dungeons with loot chests, and custom skyboxes based on the biome. ![screenshot](screenshot.png) diff --git a/assets/everness_lumecorn.blend b/assets/everness_lumecorn.blend index c56dc7acdb5cc601f55c2fda9ff7ef228836c991..ea546ef37949c68f44bcb3f64e234ee80767911d 100644 GIT binary patch delta 63300 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 delta 63664 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 SjWbp+elhJ^{Nkan-28u+_}A3{ diff --git a/functions.lua b/functions.lua index 3782431..fe9cc1b 100644 --- a/functions.lua +++ b/functions.lua @@ -17,23 +17,44 @@ --]] -- --- Convert everness:dirt to something that fits the environment +-- Convert dirt to something that fits the environment -- +local grass_covered_mapping = { + ['everness:coral_dirt'] = { 'everness:dirt_with_coral_grass' }, + ['everness:cursed_dirt'] = { 'everness:dirt_with_cursed_grass' }, + ['everness:crystal_dirt'] = { 'everness:dirt_with_crystal_grass' }, + ['everness:dirt_1'] = { + 'everness:dirt_with_grass_1', + 'everness:dirt_with_grass_2', + 'everness:dirt_with_grass_extras_1', + 'everness:dirt_with_grass_extras_2', + }, +} + +local grass_covered_mapping_under = { + ['everness:coral_desert_stone'] = { 'everness:coral_desert_stone_with_moss' }, + ['everness:soul_sandstone'] = { 'everness:soul_sandstone_veined' }, + ['everness:crystal_cave_dirt'] = { 'everness:crystal_cave_dirt_with_moss' }, + ['everness:mold_cobble'] = { 'everness:mold_stone_with_moss' }, +} + +-- Spread grass on dirt + minetest.register_abm({ label = 'Everness Grass spread', nodenames = { - 'default:dirt', 'everness:coral_dirt', 'everness:cursed_dirt', 'everness:crystal_dirt', + 'everness:dirt_1', }, neighbors = { 'air', 'group:coral_grass', 'group:cursed_grass', 'group:crystal_grass', - 'group:forsaken_tundra_grass', + 'group:bamboo_grass', }, interval = 6, chance = 50, @@ -48,37 +69,62 @@ minetest.register_abm({ -- Look for spreading dirt-type neighbours local p2 = minetest.find_node_near(pos, 1, 'group:everness_spreading_dirt_type') - or minetest.find_node_near(pos, 1, 'group:spreading_dirt_type') if p2 then - local n3 = minetest.get_node(p2) - minetest.set_node(pos, { name = n3.name }) + local n3_def = grass_covered_mapping[node.name] + + if not n3_def then + return + end + + local n3_name = n3_def[1] + + if #n3_def > 1 then + n3_name = n3_def[math.random(1, #n3_def)] + end + + minetest.set_node(pos, {name = n3_name}) return end -- Else, any seeding nodes on top? local name = minetest.get_node(above).name - if minetest.get_item_group(name, 'coral_grass') ~= 0 then + if minetest.get_item_group(name, 'coral_grass') ~= 0 and node.name == 'everness:coral_dirt' then minetest.set_node(pos, { name = 'everness:dirt_with_coral_grass' }) - elseif minetest.get_item_group(name, 'cursed_grass') ~= 0 then + elseif minetest.get_item_group(name, 'cursed_grass') ~= 0 and node.name == 'everness:cursed_dirt' then minetest.set_node(pos, { name = 'everness:dirt_with_cursed_grass' }) - elseif minetest.get_item_group(name, 'crystal_grass') ~= 0 then + elseif minetest.get_item_group(name, 'crystal_grass') ~= 0 and node.name == 'everness:crystal_dirt' then minetest.set_node(pos, { name = 'everness:dirt_with_crystal_grass' }) + elseif minetest.get_item_group(name, 'bamboo_grass') ~= 0 and node.name == 'everness:dirt_1' then + local bamboo_grass_covered_types = { + 'everness:dirt_with_grass_1', + 'everness:dirt_with_grass_2', + 'everness:dirt_with_grass_extras_1', + 'everness:dirt_with_grass_extras_2' + } + + minetest.set_node(pos, { name = bamboo_grass_covered_types[math.random(1, #bamboo_grass_covered_types)] }) end end }) --- Spread mold on stone +-- Spread mold/moss on stone/dirt - under minetest.register_abm({ - label = 'Everness Mold spread', + label = 'Everness Grass spread under', nodenames = { - 'everness:mold_cobble' + 'everness:coral_desert_stone', + 'everness:soul_sandstone', + 'everness:crystal_cave_dirt', + 'everness:mold_cobble', }, neighbors = { 'air', - 'group:moldy' + 'group:coral_grass_under', + 'group:cursed_grass_under', + 'group:crystal_grass_under', + 'group:forsaken_tundra_grass_under', }, interval = 6, chance = 50, @@ -87,70 +133,55 @@ minetest.register_abm({ -- Check for darkness: night, shadow or under a light-blocking node -- Returns if ignore above local above = { x = pos.x, y = pos.y + 1, z = pos.z } + if (minetest.get_node_light(above) or 0) < 13 then + return + end -- Look for spreading dirt-type neighbours - local p2 = minetest.find_node_near(pos, 1, 'group:everness_spreading_mold_type') + local p2 = minetest.find_node_near(pos, 1, 'group:everness_spreading_dirt_type_under') if p2 then - local n3 = minetest.get_node(p2) - minetest.set_node(pos, { name = n3.name }) + local n3_def = grass_covered_mapping_under[node.name] + + if not n3_def then + return + end + + local n3_name = n3_def[1] + + if #n3_def > 1 then + n3_name = n3_def[math.random(1, #n3_def)] + end + + minetest.set_node(pos, {name = n3_name}) return end -- Else, any seeding nodes on top? local name = minetest.get_node(above).name - if minetest.get_item_group(name, 'forsaken_tundra_grass') ~= 0 then + if minetest.get_item_group(name, 'coral_grass_under') ~= 0 and node.name == 'everness:coral_desert_stone' then + minetest.set_node(pos, { name = 'everness:coral_desert_stone_with_moss' }) + elseif minetest.get_item_group(name, 'cursed_grass_under') ~= 0 and node.name == 'everness:soul_sandstone' then + minetest.set_node(pos, { name = 'everness:soul_sandstone_veined' }) + elseif minetest.get_item_group(name, 'crystal_grass_under') ~= 0 and node.name == 'everness:crystal_cave_dirt' then + minetest.set_node(pos, { name = 'everness:crystal_cave_dirt_with_moss' }) + elseif minetest.get_item_group(name, 'forsaken_tundra_grass_under') ~= 0 and node.name == 'everness:mold_cobble' then minetest.set_node(pos, { name = 'everness:mold_stone_with_moss' }) end end }) --- Spread moss veins on stone - -minetest.register_abm({ - label = 'Everness moss veins spread', - nodenames = { - 'everness:soul_sandstone' - }, - neighbors = { - 'air', - 'group:moss_veins' - }, - interval = 6, - chance = 50, - catch_up = false, - action = function(pos, node) - -- Check for darkness: night, shadow or under a light-blocking node - -- Returns if ignore above - local above = { x = pos.x, y = pos.y + 1, z = pos.z } - - -- Look for spreading dirt-type neighbours - local p2 = minetest.find_node_near(pos, 1, 'group:everness_spreading_moss_veins_type') - - if p2 then - local n3 = minetest.get_node(p2) - minetest.set_node(pos, { name = n3.name }) - return - end - - -- Else, any seeding nodes on top? - local name = minetest.get_node(above).name - - if minetest.get_item_group(name, 'cursed_grass') ~= 0 then - minetest.set_node(pos, { name = 'everness:soul_sandstone_veined' }) - end - end -}) - - -- -- Grass and dry grass removed in darkness -- minetest.register_abm({ label = 'Everness Grass covered', - nodenames = { 'group:everness_spreading_dirt_type' }, + nodenames = { + 'group:everness_spreading_dirt_type', + 'group:everness_spreading_dirt_type_under', + }, interval = 8, chance = 50, catch_up = false, @@ -172,6 +203,20 @@ minetest.register_abm({ minetest.set_node(pos, { name = 'everness:cursed_dirt' }) elseif node.name == 'everness:dirt_with_crystal_grass' then minetest.set_node(pos, { name = 'everness:crystal_dirt' }) + elseif node.name == 'everness:dirt_with_grass_1' + or node.name == 'everness:dirt_with_grass_2' + or node.name == 'everness:dirt_with_grass_extras_1' + or node.name == 'everness:dirt_with_grass_extras_2' + then + minetest.set_node(pos, { name = 'everness:dirt_1' }) + elseif node.name == 'everness:coral_desert_stone_with_moss' then + minetest.set_node(pos, { name = 'everness:coral_desert_stone' }) + elseif node.name == 'everness:soul_sandstone_veined' then + minetest.set_node(pos, { name = 'everness:soul_sandstone' }) + elseif node.name == 'everness:crystal_cave_dirt_with_moss' then + minetest.set_node(pos, { name = 'everness:crystal_cave_dirt' }) + elseif node.name == 'everness:mold_stone_with_moss' then + minetest.set_node(pos, { name = 'everness:mold_cobble' }) end end end @@ -220,21 +265,22 @@ default.register_leafdecay({ local moss_correspondences = { ['everness:coral_desert_cobble'] = 'everness:coral_desert_mossy_cobble', - -- ['stairs:slab_cobble'] = 'stairs:slab_mossycobble', - -- ['stairs:stair_cobble'] = 'stairs:stair_mossycobble', - -- ['stairs:stair_inner_cobble'] = 'stairs:stair_inner_mossycobble', - -- ['stairs:stair_outer_cobble'] = 'stairs:stair_outer_mossycobble', - -- ['walls:cobble'] = 'walls:mossycobble', + ['stairs:slab_coral_desert_cobble'] = 'stairs:slab_coral_desert_mossy_cobble', + ['stairs:stair_coral_desert_cobble'] = 'stairs:stair_coral_desert_mossy_cobble', + ['stairs:stair_inner_coral_desert_cobble'] = 'stairs:stair_inner_coral_desert_mossy_cobble', + ['stairs:stair_outer_coral_desert_cobble'] = 'stairs:stair_outer_coral_desert_mossy_cobble', + ['everness:coral_desert_cobble_wall'] = 'everness:coral_desert_mossy_cobble_wall', } + minetest.register_abm({ label = 'Everness Moss growth', nodenames = { 'everness:coral_desert_cobble', - -- 'stairs:slab_cobble', - -- 'stairs:stair_cobble', - -- 'stairs:stair_inner_cobble', - -- 'stairs:stair_outer_cobble', - -- 'walls:cobble' + 'stairs:slab_coral_desert_cobble', + 'stairs:stair_coral_desert_cobble', + 'stairs:stair_inner_coral_desert_cobble', + 'stairs:stair_outer_coral_desert_cobble', + 'everness:coral_desert_cobble_wall', }, neighbors = { 'group:water' }, interval = 16, @@ -242,6 +288,7 @@ minetest.register_abm({ catch_up = false, action = function(pos, node) node.name = moss_correspondences[node.name] + if node.name then minetest.set_node(pos, node) end @@ -252,6 +299,21 @@ minetest.register_abm({ -- Magma growth on cobble near lava -- +local magma_correspondences = { + ['default:cobble'] = 'everness:magmacobble', + ['stairs:slab_cobble'] = 'stairs:slab_magmacobble', + ['stairs:stair_cobble'] = 'stairs:stair_magmacobble', + ['stairs:stair_inner_cobble'] = 'stairs:stair_inner_magmacobble', + ['stairs:stair_outer_cobble'] = 'stairs:stair_outer_magmacobble', + ['walls:cobble'] = 'everness:magmacobble_wall', + ['everness:volcanic_rock'] = 'everness:volcanic_rock_with_magma', + ['stairs:slab_volcanic_rock'] = 'stairs:slab_volcanic_rock_with_magma', + ['stairs:stair_volcanic_rock'] = 'stairs:stair_volcanic_rock_with_magma', + ['stairs:stair_inner_volcanic_rock'] = 'stairs:stair_inner_volcanic_rock_with_magma', + ['stairs:stair_outer_volcanic_rock'] = 'stairs:stair_outer_volcanic_rock_with_magma', + ['everness:volcanic_rock_wall'] = 'everness:volcanic_rock_with_magma_wall', +} + minetest.register_abm({ label = 'Magma growth', nodenames = { @@ -262,26 +324,21 @@ minetest.register_abm({ 'stairs:stair_outer_cobble', 'walls:cobble', 'everness:volcanic_rock', + 'stairs:slab_volcanic_rock', + 'stairs:stair_volcanic_rock', + 'stairs:stair_inner_volcanic_rock', + 'stairs:stair_outer_volcanic_rock', + 'everness:volcanic_rock_wall', }, neighbors = { 'group:lava' }, interval = 16, chance = 200, catch_up = false, action = function(pos, node) - if node.name == 'default:cobble' then - minetest.set_node(pos, { name = 'everness:magmacobble' }) - elseif node.name == 'everness:volcanic_rock' then - minetest.set_node(pos, { name = 'everness:volcanic_rock_with_magma' }) - elseif node.name == 'stairs:slab_cobble' then - minetest.set_node(pos, { name = 'stairs:slab_magmacobble', param2 = node.param2 }) - elseif node.name == 'stairs:stair_cobble' then - minetest.set_node(pos, { name = 'stairs:stair_magmacobble', param2 = node.param2 }) - elseif node.name == 'stairs:stair_inner_cobble' then - minetest.set_node(pos, { name = 'stairs:stair_inner_magmacobble', param2 = node.param2 }) - elseif node.name == 'stairs:stair_outer_cobble' then - minetest.set_node(pos, { name = 'stairs:stair_outer_magmacobble', param2 = node.param2 }) - elseif node.name == 'walls:cobble' then - minetest.set_node(pos, { name = 'x_walls:magmacobble', param2 = node.param2 }) + node.name = magma_correspondences[node.name] + + if node.name then + minetest.set_node(pos, node) end end }) diff --git a/locale/template.txt b/locale/template.txt index 8c365e0..3877cef 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -3,7 +3,6 @@ Quartz Crystal= Baobab Roasted Fruit= Pyrite Ingot= Pyrite Lump= -Bamboo= Bamboo Door= Bamboo Trapdoor= Bamboo Wood Fence Gate= @@ -15,11 +14,6 @@ Dry Wood Mese Post Light= Bamboo Wood Fence= Bamboo Wood Fence Rail= Bamboo Wood Mese Post Light= -/= - \t= -_= -_.*-= -/\')^1@nlocal Symbol @= m.S= Pyrite Ore= Pyrite Block= Forged Pyrite Block= @@ -123,6 +117,12 @@ Coral Tree Leaves= Dry Tree Branches= Crystal Tree Leaves= Coral Tree Sapling= +Coral Tree Bioluminescent Sapling= +Dry Tree Sapling= +Cursed Dream Tree Sapling= +Sequoia Tree Sapling= +Crystal Tree Sapling= +Crystal Tree Large Sapling= Crystal Bush Stem= Crystal Bush Leaves= Crystal Bush Sapling= @@ -188,6 +188,7 @@ Lumabus Vine Lantern= Eye Vine Lantern= Cursed Pumpkin Lantern= Floating Crystal= +Bamboo= Pyrite Glass Pane= Quartz Block Stair= Quartz Block Slab= @@ -219,6 +220,12 @@ Forsaken Tundra Brick Stair= Forsaken Tundra Brick Slab= Willow Wood Stair= Willow Wood Slab= +Magma Cobblestone Stair= +Magma Cobblestone Slab= +Volcanic Rock Stair= +Volcanic Rock Slab= +Volcanic Rock with Magma Stair= +Volcanic Rock with Magma Slab= Vine Shears= Cave Vine= Cave Vine with Mese Leaves= @@ -239,3 +246,6 @@ Cursed Brick Wall= Forsaken Tundra Cobblestone Wall= Forsaken Tundra Stone Wall= Forsaken Tundra Brick Wall= +Magma Cobblestone Wall= +Volcanic Rock Wall= +Volcanic Rock with Magma Wall= diff --git a/mapgen.lua b/mapgen.lua index ae3bbba..a16d375 100644 --- a/mapgen.lua +++ b/mapgen.lua @@ -2035,7 +2035,7 @@ minetest.register_decoration({ -- Bamboo forest minetest.register_decoration({ - name = 'everness:everness_small_bamboo_forest', + name = 'everness:small_bamboo_forest', deco_type = 'schematic', place_on = { 'everness:dirt_with_grass_1' }, sidelen = 80, @@ -2049,7 +2049,7 @@ minetest.register_decoration({ }) minetest.register_decoration({ - name = 'everness:everness_large_bamboo_forest', + name = 'everness:large_bamboo_forest', deco_type = 'schematic', place_on = { 'everness:dirt_with_grass_1' }, sidelen = 80, @@ -2171,6 +2171,29 @@ minetest.register_decoration({ flags = 'all_floors' }) +minetest.register_decoration({ + name = 'everness:blue_vine_lantern', + deco_type = 'simple', + place_on = { + 'everness:moss_block', + 'default:clay' + }, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = { x = 250, y = 250, z = 250 }, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = { 'everness_bamboo_forest_under' }, + y_max = -2025, + y_min = -31000, + decoration = { 'everness:blue_vine_lantern' }, + flags = 'all_floors', +}) + -- Jungle tree and log minetest.register_decoration({ diff --git a/models/everness_lumecorn.obj b/models/everness_lumecorn.obj index b4c51c1..a13dc76 100644 --- a/models/everness_lumecorn.obj +++ b/models/everness_lumecorn.obj @@ -2,31 +2,31 @@ # www.blender.org mtllib everness_lumecorn.mtl o Cube -v 0.441942 0.625000 -0.441942 -v 0.441942 -0.625000 -0.441942 -v -0.441942 0.625000 0.441942 -v -0.441942 -0.625000 0.441942 -v -0.441942 0.625000 -0.441942 -v -0.441942 -0.625000 -0.441942 -v 0.441942 0.625000 0.441942 -v 0.441942 -0.625000 0.441942 -v 1.767767 0.225000 0.000000 -v -0.000000 0.225000 -1.767767 -v 0.000000 0.225000 1.767767 -v -1.767767 0.225000 -0.000000 -v -0.883883 0.625000 -0.883883 -v 0.883883 0.625000 0.883883 -v -0.883883 0.625000 0.883883 -v 0.883883 0.625000 -0.883883 -v 0.000000 0.625000 0.000000 -v -0.441942 5.625000 -0.441942 -v -0.441942 0.625000 -0.441942 -v 0.441942 5.625000 0.441942 -v 0.441942 0.625000 0.441942 -v -0.441942 5.625000 0.441942 -v -0.441942 0.625000 0.441942 -v 0.441942 5.625000 -0.441942 -v 0.441942 0.625000 -0.441942 +v 0.441942 0.750000 -0.441942 +v 0.441942 -0.500000 -0.441942 +v -0.441942 0.750000 0.441942 +v -0.441942 -0.500000 0.441942 +v -0.441942 0.750000 -0.441942 +v -0.441942 -0.500000 -0.441942 +v 0.441942 0.750000 0.441942 +v 0.441942 -0.500000 0.441942 +v 1.767767 0.350000 0.000000 +v -0.000000 0.350000 -1.767767 +v 0.000000 0.350000 1.767767 +v -1.767767 0.350000 -0.000000 +v -0.883883 0.750000 -0.883883 +v 0.883883 0.750000 0.883883 +v -0.883883 0.750000 0.883883 +v 0.883883 0.750000 -0.883883 +v 0.000000 0.750000 0.000000 +v -0.441942 5.750000 -0.441942 +v -0.441942 0.750000 -0.441942 +v 0.441942 5.750000 0.441942 +v 0.441942 0.750000 0.441942 +v -0.441942 5.750000 0.441942 +v -0.441942 0.750000 0.441942 +v 0.441942 5.750000 -0.441942 +v 0.441942 0.750000 -0.441942 vt 0.999900 0.000100 vt 0.999900 0.999900 vt 0.000100 0.999900 diff --git a/nodes.lua b/nodes.lua index fd6a856..9f2d765 100644 --- a/nodes.lua +++ b/nodes.lua @@ -182,7 +182,7 @@ minetest.register_node('everness:coral_desert_stone_with_moss', { tileable_vertical = false } }, - groups = { cracky = 3, stone = 1 }, + groups = { cracky = 3, stone = 1, everness_spreading_dirt_type_under = 1 }, drop = 'everness:coral_desert_cobble', legacy_mineral = true, sounds = default.node_sound_stone_defaults(), @@ -434,7 +434,7 @@ minetest.register_node('everness:mold_stone_with_moss', { 'everness_mold_stone.png', 'everness_mold_stone_with_moss_side.png' }, - groups = { cracky = 3, stone = 1, moldy = 1, everness_spreading_mold_type = 1 }, + groups = { cracky = 3, stone = 1, everness_spreading_dirt_type_under = 1 }, drop = 'everness:mold_cobble', sounds = default.node_sound_stone_defaults(), }) @@ -453,7 +453,7 @@ minetest.register_node('everness:soul_sandstone_veined', { 'everness_soul_sandstone.png', 'everness_soul_sandstone_veined_side.png' }, - groups = { cracky = 3, stone = 1, moss_veins = 1, everness_spreading_moss_veins_type = 1 }, + groups = { cracky = 3, stone = 1, everness_spreading_dirt_type_under = 1 }, drop = 'everness:soul_sandstone', sounds = default.node_sound_stone_defaults(), }) @@ -615,8 +615,8 @@ minetest.register_node('everness:forsaken_tundra_dirt_with_grass', { 'everness_forsaken_tundra_dirt.png', { name = 'everness_forsaken_tundra_dirt.png^everness_forsaken_tundra_grass_side.png', tileable_vertical = false } }, - groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1, mold_soil = 1 }, - drop = 'everness:forsaken_tundra_dirt', + groups = { crumbly = 3, soil = 1 }, + -- drop = 'everness:forsaken_tundra_dirt', sounds = default.node_sound_dirt_defaults({ footstep = { name = 'default_grass_footstep', gain = 0.25 }, }), @@ -645,7 +645,7 @@ minetest.register_node('everness:dirt_with_cursed_grass', { 'everness_cursed_dirt.png', { name = 'everness_cursed_dirt.png^everness_cursed_grass_side.png', tileable_vertical = false } }, - groups = { crumbly = 3, soil = 1, cursed_grass = 1, everness_spreading_dirt_type = 1 }, + groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 }, drop = 'everness:cursed_dirt', sounds = Everness.node_sound_mud_defaults(), }) @@ -658,7 +658,7 @@ minetest.register_node('everness:dirt_with_crystal_grass', { 'everness_crystal_dirt.png', { name = 'everness_crystal_dirt.png^everness_crystal_grass_side.png', tileable_vertical = false } }, - groups = { crumbly = 3, soil = 1, crystal_grass = 1, everness_spreading_dirt_type = 1 }, + 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 }, @@ -797,7 +797,7 @@ minetest.register_node('everness:crystal_cave_dirt', { description = S('Crystal Cave Dirt'), short_description = S('Crystal Cave Dirt'), tiles = { 'everness_crystal_cave_dirt.png' }, - groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 }, + groups = { crumbly = 3, soil = 1 }, sounds = default.node_sound_dirt_defaults({ footstep = { name = 'default_grass_footstep', gain = 0.25 }, }), @@ -812,7 +812,7 @@ minetest.register_node('everness:crystal_cave_dirt_with_moss', { 'everness_crystal_cave_dirt_side.png' }, drop = 'everness:crystal_cave_dirt', - groups = { crumbly = 3, soil = 1, everness_spreading_dirt_type = 1 }, + 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 }, }), @@ -830,7 +830,7 @@ minetest.register_node('everness:moss_block', { minetest.register_node('everness:crystal_moss_block', { description = S('Crystal Moss Block'), tiles = { 'everness_crystal_cave_moss.png' }, - groups = { crumbly = 3, soil = 1 }, + 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 }, }), @@ -1054,7 +1054,7 @@ minetest.register_node('everness:cave_flower', { type = 'fixed', fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } }, - groups = { choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, bamboo_grass_under = 1, flammable = 1 }, sounds = default.node_sound_wood_defaults(), sunlight_propagates = true, light_source = 7, @@ -1091,7 +1091,7 @@ minetest.register_node('everness:cave_flower_with_particles', { type = 'fixed', fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 } }, - groups = { choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, bamboo_grass_under = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), sunlight_propagates = true, light_source = 12, @@ -2137,7 +2137,7 @@ minetest.register_node('everness:coral_shrub', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1 }, + groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1, coral_grass = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2157,7 +2157,7 @@ minetest.register_node('everness:coral_grass_orange', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, flora = 1, coral_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2178,7 +2178,7 @@ minetest.register_node('everness:globulagus', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, flora = 1, coral_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2200,7 +2200,7 @@ minetest.register_node('everness:coral_grass_tall', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, flora = 1, coral_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2221,7 +2221,7 @@ minetest.register_node('everness:crystal_purple', { paramtype2 = 'wallmounted', sunlight_propagates = true, walkable = false, - groups = { cracky = 3, oddly_breakable_by_hand = 3 }, + groups = { cracky = 3, attached_node = 1, flora = 1, crystal_grass_under = 1 }, sounds = Everness.node_sound_crystal_defaults(), light_source = 7, selection_box = { @@ -2242,7 +2242,7 @@ minetest.register_node('everness:crystal_orange', { paramtype2 = 'wallmounted', sunlight_propagates = true, walkable = false, - groups = { cracky = 3, oddly_breakable_by_hand = 3 }, + groups = { cracky = 3, attached_node = 1, flora = 1, crystal_grass_under = 1 }, sounds = Everness.node_sound_crystal_defaults(), light_source = 7, selection_box = { @@ -2263,7 +2263,7 @@ minetest.register_node('everness:crystal_cyan', { paramtype2 = 'wallmounted', sunlight_propagates = true, walkable = false, - groups = { cracky = 3, oddly_breakable_by_hand = 3 }, + groups = { cracky = 3, attached_node = 1, flora = 1, crystal_grass_under = 1 }, sounds = default.node_sound_glass_defaults(), light_source = 12, selection_box = { @@ -2286,7 +2286,7 @@ minetest.register_node('everness:coral_plant_bioluminescent', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1 }, + groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1, coral_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 9 }) @@ -2306,7 +2306,7 @@ minetest.register_node('everness:blooming_cooksonia', { walkable = false, buildable_to = true, is_ground_content = true, - groups = { oddly_breakable_by_hand = 3 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, frosted_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 9 }) @@ -2326,7 +2326,7 @@ minetest.register_node('everness:creeping_moss_spores', { walkable = false, buildable_to = true, is_ground_content = true, - groups = { oddly_breakable_by_hand = 3 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, frosted_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 9 }) @@ -2366,7 +2366,7 @@ minetest.register_node('everness:frosted_icicle_floor', { walkable = false, buildable_to = true, is_ground_content = true, - groups = { oddly_breakable_by_hand = 3 }, + groups = { snappy = 3, attached_node = 1, frosted_grass_under = 1 }, sounds = default.node_sound_ice_defaults(), light_source = 9, selection_box = { @@ -2509,7 +2509,7 @@ minetest.register_node('everness:crystal_mushrooms', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { mushroom = 1, food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1 }, + groups = { mushroom = 1, food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1, crystal_grass = 1 }, sounds = default.node_sound_leaves_defaults(), on_use = minetest.item_eat(1), selection_box = { @@ -2530,7 +2530,7 @@ minetest.register_node('everness:twisted_crystal_grass', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { flora = 1, attached_node = 1, crystal_grass = 1, flammable = 1 }, + groups = { snappy = 3, flammable = 1, attached_node = 1, crystal_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 7, selection_box = { @@ -2552,7 +2552,7 @@ minetest.register_node('everness:crystal_grass_1', { walkable = false, buildable_to = true, groups = { snappy = 3, flora = 1, attached_node = 1, crystal_grass = 1, normal_grass = 1, flammable = 1 }, - sounds = default.node_sound_leaves_defaults(), + sounds = default.node_sound_glass_defaults(), selection_box = { type = 'fixed', fixed = { -6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16 }, @@ -2588,7 +2588,7 @@ for i = 2, 3 do normal_grass = 1, flammable = 1 }, - sounds = default.node_sound_leaves_defaults(), + sounds = default.node_sound_glass_defaults(), light_source = i, selection_box = { type = 'fixed', @@ -2609,7 +2609,7 @@ minetest.register_node('everness:marsh_grass', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2894,7 +2894,7 @@ minetest.register_node('everness:agave_leaf_1', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, normal_grass = 1, flammable = 1, forsaken_tundra_grass = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, normal_grass = 1, flammable = 1, forsaken_tundra_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -2930,7 +2930,7 @@ for i = 2, 3 do not_in_creative_inventory = 1, normal_grass = 1, flammable = 1, - forsaken_tundra_grass = 1 + forsaken_tundra_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 4 + i, @@ -2958,7 +2958,7 @@ minetest.register_node('everness:egg_plant', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass = 1, normal_grass = 1, flammable = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass_under = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), node_box = { type = 'fixed', @@ -2988,7 +2988,7 @@ minetest.register_node('everness:ivis_moss', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass = 1, normal_grass = 1, flammable = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass_under = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -3010,7 +3010,7 @@ minetest.register_node('everness:ngrass_1', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass = 1, normal_grass = 1, flammable = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass_under = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -3032,7 +3032,7 @@ minetest.register_node('everness:ngrass_2', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass = 1, normal_grass = 1, flammable = 1 }, + groups = { snappy = 3, flora = 1, attached_node = 1, cursed_grass_under = 1, flammable = 1 }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = 'fixed', @@ -3088,6 +3088,7 @@ minetest.register_node('everness:bamboo_1', { flammable = 2, bamboo = 1, bamboo_small = 1, + bamboo_grass = 1 }, selection_box = { type = 'fixed', @@ -3153,6 +3154,7 @@ minetest.register_node('everness:bamboo_2', { flammable = 2, bamboo = 1, bamboo_small = 1, + bamboo_grass = 1 }, selection_box = { type = 'fixed', @@ -3220,6 +3222,7 @@ minetest.register_node('everness:bamboo_3', { flammable = 2, bamboo = 1, bamboo_large = 1, + bamboo_grass = 1 }, selection_box = { type = 'fixed', @@ -3281,6 +3284,7 @@ minetest.register_node('everness:bamboo_4', { flammable = 2, bamboo = 1, bamboo_large = 1, + bamboo_grass = 1 }, selection_box = { type = 'fixed', @@ -3342,6 +3346,7 @@ minetest.register_node('everness:bamboo_5', { flammable = 2, bamboo = 1, bamboo_large = 1, + bamboo_grass = 1 }, selection_box = { type = 'fixed', @@ -3365,7 +3370,7 @@ minetest.register_node('everness:bamboo_sprout', { inventory_image = 'everness_bamboo_sprout.png', wield_image = 'everness_bamboo_sprout.png', drawtype = 'plantlike', - groups = { seed = 1, snappy = 3, flammable = 2, attached_node = 1, bamboo = 1 }, + groups = { seed = 1, snappy = 3, flammable = 2, attached_node = 1, bamboo = 1, bamboo_grass = 1 }, paramtype = 'light', paramtype2 = 'meshoptions', walkable = false, @@ -3403,7 +3408,7 @@ minetest.register_node('everness:bloodspore_plant', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1 }, + groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1, forsaken_tundra_grass = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 7 }) @@ -3422,7 +3427,7 @@ minetest.register_node('everness:bloodspore_plant_small', { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1, forsaken_tundra_grass = 1 }, + groups = { snappy = 3, flammable = 3, attached_node = 1, flora = 1, forsaken_tundra_grass_under = 1 }, sounds = default.node_sound_leaves_defaults(), light_source = 7 }) @@ -3814,7 +3819,7 @@ minetest.register_node('everness:forsythia_bush', { paramtype = 'light', is_ground_content = false, walkable = true, - groups = { snappy = 3, flammable = 2 }, + groups = { snappy = 3, flora = 1, attached_node = 1, bamboo_grass_under = 1, flammable = 2 }, sounds = default.node_sound_leaves_defaults(), sunlight_propagates = true, use_texture_alpha = 'clip', @@ -3835,7 +3840,7 @@ minetest.register_node('everness:glowing_pillar', { inventory_image = 'everness_glowing_pillar_item.png', wield_image = 'everness_glowing_pillar_item.png', paramtype = 'light', - groups = { snappy = 3, flammable = 2, forsaken_tundra_grass = 1 }, + groups = { snappy = 3, flammable = 2, forsaken_tundra_grass_under = 1, flora = 1, attached_node = 1 }, selection_box = { type = 'fixed', fixed = { -0.63, -0.5, -0.63, 0.63, 3.23, 0.63 } @@ -3865,10 +3870,10 @@ minetest.register_node('everness:blue_vine_lantern', { inventory_image = 'everness_blue_vine_lantern_item.png', wield_image = 'everness_blue_vine_lantern_item.png', paramtype = 'light', - groups = { snappy = 3, flammable = 2 }, + groups = { snappy = 3, flammable = 2, flora = 1, attached_node = 1, bamboo_grass_under = 1 }, selection_box = { type = 'fixed', - fixed = { -0.63, -0.63, -0.63, 0.63, 3.13, 0.63 } + fixed = { -0.63, -0.5, -0.63, 0.63, 3.23, 0.63 } }, collision_box = { type = 'fixed', @@ -3892,13 +3897,13 @@ minetest.register_node('everness:amaranita_lantern', { 'everness_amaranita_lantern_light.png', 'everness_amaranita_lantern_fur.png', }, - inventory_image = 'everness_blue_vine_lantern_item.png', - wield_image = 'everness_blue_vine_lantern_item.png', + inventory_image = 'everness_amaranita_lantern_item.png', + wield_image = 'everness_amaranita_lantern_item.png', paramtype = 'light', - groups = { snappy = 3, flammable = 2 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, frosted_grass_under = 1 }, selection_box = { type = 'fixed', - fixed = { -0.63, -0.63, -0.63, 0.63, 3.13, 0.63 } + fixed = { -0.63, -0.5, -0.63, 0.63, 3.23, 0.63 } }, collision_box = { type = 'fixed', @@ -3929,14 +3934,14 @@ minetest.register_node('everness:lumecorn', { backface_culling = false }, }, - -- inventory_image = 'everness_glowing_pillar_item.png', - -- wield_image = 'everness_glowing_pillar_item.png', + inventory_image = 'everness_lumecorn_item.png', + wield_image = 'everness_lumecorn_item.png', paramtype = 'light', waving = 1, - groups = { snappy = 3, flammable = 2 }, + groups = { snappy = 3, flammable = 2, attached_node = 1, flora = 1, coral_grass_under = 1 }, selection_box = { type = 'fixed', - fixed = { -0.63, -0.63, -0.63, 0.63, 3.13, 0.63 } + fixed = { -0.63, -0.5, -0.63, 0.63, 3.23, 0.63 } }, sounds = default.node_sound_leaves_defaults(), sunlight_propagates = true, @@ -4084,7 +4089,7 @@ minetest.register_node('everness:floating_crystal', { sunlight_propagates = true, buildable_to = true, walkable = false, - groups = { snappy = 3 }, + groups = { snappy = 3, not_in_creative_inventory = 1 }, selection_box = { type = 'fixed', fixed = { -0.25, -0.4, -0.25, 0.25, 0.4, 0.25 }, diff --git a/stairs.lua b/stairs.lua index 3af98bd..9ea95b1 100644 --- a/stairs.lua +++ b/stairs.lua @@ -257,57 +257,58 @@ stairs.register_stair_and_slab( true ) --- stairs.register_stair_and_slab( --- 'desert_stonebrick', --- 'default:desert_stonebrick', --- { cracky = 2 }, --- { 'default_desert_stone_brick.png' }, --- 'Desert Stone Brick Stair', --- 'Desert Stone Brick Slab', --- default.node_sound_stone_defaults(), --- false --- ) --- stairs.register_stair_and_slab( --- 'desert_stone_block', --- 'default:desert_stone_block', --- { cracky = 2 }, --- { 'default_desert_stone_block.png' }, --- 'Desert Stone Block Stair', --- 'Desert Stone Block Slab', --- default.node_sound_stone_defaults(), --- true --- ) +-- Magma Cobble --- stairs.register_stair_and_slab( --- 'desert_sandstone', --- 'default:desert_sandstone', --- { crumbly = 1, cracky = 3 }, --- { 'default_desert_sandstone.png' }, --- 'Desert Sandstone Stair', --- 'Desert Sandstone Slab', --- default.node_sound_stone_defaults(), --- true --- ) +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, + }, + }}, + S('Magma Cobblestone Stair'), + S('Magma Cobblestone Slab'), + default.node_sound_stone_defaults(), + true +) --- stairs.register_stair_and_slab( --- 'desert_sandstone_brick', --- 'default:desert_sandstone_brick', --- { cracky = 2 }, --- { 'default_desert_sandstone_brick.png' }, --- 'Desert Sandstone Brick Stair', --- 'Desert Sandstone Brick Slab', --- default.node_sound_stone_defaults(), --- false --- ) +-- Volcanic rock --- stairs.register_stair_and_slab( --- 'desert_sandstone_block', --- 'default:desert_sandstone_block', --- { cracky = 2 }, --- { 'default_desert_sandstone_block.png' }, --- 'Desert Sandstone Block Stair', --- 'Desert Sandstone Block Slab', --- default.node_sound_stone_defaults(), --- true --- ) +stairs.register_stair_and_slab( + 'volcanic_rock', + 'everness:volcanic_rock', + { cracky = 1, stone = 2 }, + { 'everness_volcanic_rock.png' }, + S('Volcanic Rock Stair'), + S('Volcanic Rock Slab'), + default.node_sound_stone_defaults(), + true +) + +stairs.register_stair_and_slab( + 'volcanic_rock_with_magma', + 'everness:volcanic_rock_with_magma', + { cracky = 1, stone = 2 }, + { + { + name = 'everness_volcanic_rock_with_magma_animated.png', + animation = { + type = 'vertical_frames', + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + }, + }, + S('Volcanic Rock with Magma Stair'), + S('Volcanic Rock with Magma Slab'), + default.node_sound_stone_defaults(), + true +) diff --git a/textures/everness_amaranita_lantern_item.png b/textures/everness_amaranita_lantern_item.png new file mode 100644 index 0000000000000000000000000000000000000000..b86c1acc4b97f772389a89b786b08ddec62ac645 GIT binary patch literal 640 zcmV-`0)PF9P)1R5*=wlTT<9K@`Tnw>#NCNxSsWh?QDWBYNsd3nD1=;Kd3p ziXQZ)J*bEkg3=iAw0@Rh?$#*>!sK1xgJhuvMfkYLL&$w)WQHYC3*hGCfz%DoKmS&Q=_%I zxpfy02Z!nTr*-NS0#8;~V3EMn^^dU0V%BwBUMg~{CPLu*J}$nQ=A>ny?loYU3AkPZ zwv|BLZQ$9^S-QG3!;c0}(T)U{7N$9sG%=dVvTY_Xc3=RumB48KKG>Flv4yFKIA%al zczk4pwv_9g=<8ACK&p{UzmlP=hWBP%BEtE(7ypmYy7HwN{_y=5=GVSqOS+Kx0@=2W z@#P{<9zMBq1OTX3s|dpo37udI0mn9hio|xKR&k6#N(rSDIyyT3Ugjqlh7LJ#hcr!t zX__(8h=J?6@O>Y>5AJid?g5=C4E1$mAd|-A(K8fNw@0un3y$NU9xCkL(~aFa!DEI} zs@b4@W)XrQ2q2||<2ax~p3|0r8UvNWUE1jx#|VTFa2y8!aQoabWHY;PDBA;(yV>mG zd0xaI_L%^nuu|mrUpG&0000Ax5lQC!%K@^7n8Sh~C+{|tEJiS6OToi@CApt9G6bvG^ z27@+-Xs4BsN)XbhwWXECA%Y-6EKFe`q)1^Zg9M{F5lM3FWivaO-P_sSvCuuxO*rqb zhT)%&_rLdsXsz+D!Y~Bq97-v?m!I^_lT##T`Xjp6WgN#4LZG#}pbtBh{od{kNRk9; znj(rK*rPTA5ex@VNvUVyCx}Jx2*vU6)KR}wM2!a4( zMh#+DfR#t^J>2~N3No#UA7G4u?{FM9YQqD@t)t+agOwTD;l^M;_7~0V$ ztb-Q#j*nx;k--3^6oe3nq6oEG4cF=yNZ0Mcv2BbQ)xnD-gn*P1vrF50c4=FirU~0F zgL4i5xc%;%zQ4GYn?@l!^m;u!D#m){s|&!zjdfE`otCIptGM;Htv|1K0Ce!+OhM0; zoPI?l`wPuCD|*WfG2fgdzVGAW(+|3?7r}pe7(I6ft(gY#eIJ*eebkrFPvGI%L*%ar z-Q5)P%}E0MUZxk*r^uJ(Rg_Evt(gV^073{}O`jlZ8zLX!_4NsoO(TwDP)bp6jH5)1 zzS*)YD5dcHs-2IJDGWn+o`)-U@96`D0vH=X#V+IJ<0mAWR$m0Ii+8_M@ O0000