pax_global_header00006660000000000000000000000064141105153720014511gustar00rootroot0000000000000052 comment=4d601754620441d8a7434698f492ad675de9fd0e ethereal/000077500000000000000000000000001411051537200126465ustar00rootroot00000000000000ethereal/README.md000066400000000000000000000357531411051537200141420ustar00rootroot00000000000000# ethereal Ethereal Mapgen mod for Minetest (works on all except v6) ## Forum Topic - https://forum.minetest.net/viewtopic.php?f=11&t=14638 ## Lucky Blocks 47 ## Changelog ### 1.29 - Use "stratum" to generate mesa biome for stripey goodness - Added coloured candles (thanks wRothbard) - Rename some biomes to fall inline with default for spawning - Make stairs and doors a soft dependency, fix willow recipes (thanks sangeet) ### 1.28 - Added new Mediterranean biome with Lemon and Olive trees (thanks Felfa) - Added Candied Lemon and Olive Oil items and recipe - Rewrite stairs and add auto-select function - Added Lemonade - Added smaller redwood trees, to grow large variety 2 saplings required - Added Flight Potion (etherium dust arch, fire dust middle, empty bottle bottom) - Added new Fishing mechanics (inspired by Rootyjr's on mineclone2) - Added fishing api to add new items (read API.txt file) - Certain fish can only be found in specific biomes - Rename textures so they begin with ethereal_ (sorry texture pack folks) - Override mushroom spread abm to use "group:mushroom" ### 1.27 - Added Etherium ore and dust - Added sparse decoration of dry grass and shrub to caves biome - Added sponges that spawn near coral, dry sponge in furnace to soak up water - Added new savanna dirt and decorations - Use default grass abms - Split and re-write mapgen files for tidier generation - Giant Mushroom tops now decay when trunk removed - Added Blue Marble to grey biomes and Blue Marble Tile recipe ### 1.26 - Added Sakura biome, pink sakura trees and saplings - 1 in 10 chance of sakura sapling growing into white sakura - Bamboo grows in higher elevation while sakura grows in lower - Added sakura wood, stairs, fence, gate and door - Added 5.0 checks to add new biomes and decorations - Fixed water abm for dry dirt and added check for minetest 5.1 dry dirt also ### 1.25 - Converted .mts files into schematic tables for easier editing - Added firethorn shrub in glacier areas (can be crafted into jelly) - Tweaked mapgen decorations - Added more lucky blocks - Added igloo to glacier biome - 2x2 bamboo = bamboo floor, 3x3 bamboo or 2x bamboo floor = bamboo block, blocks can be made into sticks, bamboo stairs need blocks to craft ### 1.24 - Updating code to newer functions, requires Minetest 0.4.16 and above - Added food groups to be more compatible with other food mods - Bonemeal removed (use Bonemeal mod to replace https://forum.minetest.net/viewtopic.php?f=9&t=16446 ) - Crystal Ingot recipe requires a bucket of water, unless you are using builtin_item mod where you can mix ingredients by dropping in a pool of water instead ### 1.23 - Added bonemeal support for bush sapling and acacia bush sapling - Added support for [toolranks] mod if found - Reworked Crystal Shovel so it acts more like a normal shovel with soft touch ### 1.22 - Added coral and silver sand to mapgen (0.4.15 only) - Replaced ethereal:green_dirt with default:dirt_with_grass for mortrees compatibility - Mesa biomes are now topped with dirt with dry grass (redwood saplings grow on dry grass) - Added bonemeal support for moretree's saplings - Added settings.conf file example so that settings remain after mod update - Added support for Real Torch so that torches near water drop an unlit torch - Added support for new leafdecay functions (0.4.15 dev) - Mapgen will use dirt_with_rainforest_litter for jungles if found - Added bushes to mapgen ### 1.21 - Saplings need clear space above to grow (depending on height of tree) - Bonemeal changes to suit new sapling growth - Fixes and tweaks - Added default Abm overrides - Added 4 new plants from baked clay mod to mapgen - Added swamp biome to outskirts of bamboo areas ### 1.20 - Tweaked Ethereal to work with new features and nodes in Minetest 0.4.14 - Added bones found in dirt and bonemeal to make tree's and crops grow quicker - Tree's follow default rules where saplings need light to grow - Using default schematics for apple, pine, acacia and jungle tree's - Tidied and split code into separate files - Redid coloured grass spread function to run better - Added support for moreblock's stairsplus feature ### 1.19 - Added new biome routine to help restructure biomes - Tweaked biome values so that they are more spread out (no more huge bamboo biome) - Tweaked biome plant and tree decorations - Fixed farming compatibility when using hoe on ethereal dirt - Dirt with dry grass turns into green grass when near water - Ice or snow above sea level melts into river water - Disabling ethereal biomes no longer shows error messages - Fire Flowers re-generate, can also be made into Fire Dust and both are fuel - Optimize and tidy code ### 1.18 - Added Birch tree, also stairs; fence and gate - Added Fire flower to fiery biomes (careful, it hurts) - Tweaked biomes and decoration slightly - Added tree_tool for admin to quickly grow tree's - Cobble to Mossycobble when near water has been toned down a bit ### 1.17 - Added new Glacier biome filled with snow and ice - Changed Mesa biome to have more coloured clay patterns - Changed Bamboo biome to have tall tree-like stalks with leaves that give - Bamboo sprouts are now saplings to grow new stalks - Removed farmed mushrooms and replaced with default game mushrooms with spores ### 1.16 - Added new tree schematics that change when placed with random leaves, fruit and height - Changed frost dirt so that it no longer freezes water (saves lag) - Torches cannot be placed next to water, otherwise they drop as items - Added latest farming redo Bean Bushes to mapgen - Code tidy (thanks HybridDog) and bug fix - Banana, Orange and Apple fruits now drop when tree has been removed. ### 1.15 - Added Staff of Light (thanks Xanthin), crafted from illumishrooms and can turn stone into glostone and back again - Changed how Crystal Spikes reproduce - Crystal Ingots now require 2x mese crystal and 2x crystal spikes to craft - Removed obsidian brick & stairs now they are in default game, also removed pine wood stairs for same reason - Tidied code and optimized a few routines ### 1.14 - Changed Ethereal to work with Minetest 0.4.11 update and new mapgen features - Changed Pine tree's to use default pine wood - Added pine wood fence, gate and stairs - Crystal Spikes now re-generate in crystal biomes - Removed layer mapgen, keeping spread as default ### 1.13 - Changed melting feature to work with 0.4.11 pre-release now that group:hot and group:melt have been removed ### 1.12 - Added ability to disable biomes in the init.lua file by setting to 1 (enable) or 0 (disable) - Supports Framing Redo 1.10 foods ### 1.11 - Added Stairs for Ethereal wood types, mushroom, dry dirt, obsidian brick and clay - Added Green Coral which can be used as green dye - Craft 5x Ice in X pattern to give 5x Snow - Added Snow and Ice Bricks with their own stairs and slabs which melt when near heat ### 1.10 - Added Stone Ladders (another use for cobble) - Craft 5x Gravel in X pattern to give 5 dirt, and 5x dirt in X pattern for 5 sand - Added Acacia tree's to desert biome (a nice pink wood to build with, thanks to VanessaE for textures) - Added Acacia fences and gates - Added Vines, craftable with 2x3 leaves ### 1.09 - Fixed Quicksand bug where player see's only black when sinking instead of yellow effect, note this will only work on new maps or newly generated areas of map containing quicksand - Hot nodes will melt ice and snow in a better way - Few spelling errors sorted for sapling and wood names ### 1.08 - Saplings produce better placed tree's when grown, routines have been redone - Orange tree's now spawn in prairie biomes - The usual code tidy and few bug fixes along the way ### 1.07 - If Farming Redo mod detected then it's growing routines will be used for Ethereal plantlife instead of default Leaftype and Mapstyle settings can be changed within init.lua file, new layered style maps are being tested Changed crafting recipe for Fences, they tie in with Gates a little better ### 1.06 - Added support for Farming Redo mod, all plants spawn on newly generated areas: - https://forum.minetest.net/viewtopic.php?id=9019 ### 1.05b - Added Gates for each of the fence types (thanks to Blockmen for gate model) - Players can no longer jump over fences unless they wear crystal boots < REMOVED ### 1.04 - Farming of Mushrooms, Wild Onions and Strawberries now use minetest 0.4.10 functions - Strawberries can be grown by using actual fruit, seeds no longer needed - Tree leaves are no longer walkable, player can go through them - Saplings now fall if block underneath disturbed ### 1.03 - Changed Fence recipe's so it doesn't interfere with 3d armor's wooden boots - Tweaked textures to bring down file sizes - Flowers, Sprouts and Ferns now spread over ALL grassland ### 1.02 - Fences added for each type of wood in Ethereal - Changes to biome settings, less artifacts ### 1.01 - Quicksand generates throughout world near sandy water - Bamboo as well as Papyrus now grow on dirt near water - Fixed Coral textures and light ### 1.00 - Seaweed now spawns in deep water and can grow up to 10 high - Coral also spawns in deep water and glows slightly (orange, pink and blue) - Above items can be crafted into dye, also Seaweed is edible - So long as sand isn't disturbed under the ocean, sealife will re-generate - Fixed Leaves inventory images and Mushroom selection box (thanks Wuzzy) ### 0.0.9 #### 0.0.9p - Willow Trees now spawn in grey biome instead of tiny grey trees (model by Phiwari123) - Redwood Trees now spawn in Mesa biome (model by Wes42033) - BakedClay mod no longer required for Mesa biome but used if found - Paper Wall added #### 0.0.9o - Added Obsidian Brick craft for building - Changed Illumishroom cave levels - Changed *is_ground_content* to false for ethereal dirt so mapgen doesn't carve it up with caves #### 0.0.9n - New textures for farming mushrooms and spores - Illumi-shrooms spawn in caves to brighten things up a little - Crafting a wooden sign now gives 4 instead of 1 #### 0.0.9m - Changed Bamboo biome slightly, Bamboo Sprout has new image - Abm timings changed and a few bugs fixed - Crystal Gilly Staff has to be used (left-click) to replenish air while underwater - Crystal Shovel now works with protection mods - Tidied code and changed ladder recipe's to double output #### 0.0.9L - Scorched Tree's are now different sizes - Crystal Shovel with soft touch can now be used to dig up sand and gravel - Bamboo and Papyrus drop entire stalk when bottom node dug - Crystal Spikes require steel pick or better to dig and fall when dirt below is removed - Few changes to mapgen and water functions #### 0.0.9k - Fixed bug in charcoal lumps (no more placing as unknown nodes) - Added Crystal Shovel with soft touch, can be used to dig up dirt with grass intact - Fixed bug in Crystal Shovel, now works with dirt_with_snow and has sounds - Tweaked Fiery Biomes slightly, smaller craters on outside, large in hotter areas #### 0.0.9i - Cleaned up mapgen_v7.lua file, maps now generate a little faster - Removed cactus.mts, no longer required - Removed mushroomtwo.mts, no longer required - Removed bamboo.mts, no longer required - Removed deadtree.mts, no longer required - Few new textures added - Papyrus also spawns on jungle dirt near water - Replaced dead tree's with scorched tree's - Each scorched tree trunk crafts into 2x charcoal Lumps (fixed) - Torches can also be crafted from Charcoal #### 0.0.9h - Added Strawberry farming, Strawberry Seeds and new Textures - Tidied up mapgen_v7.lua for better spawning of plants and trees - Player can no longer walk through Bamboo Stalks #### 0.0.9g - Changed Ethereal's growing routine for Saplings, it now uses 1 single abm to grow all tree's #### 0.0.9f - Added Fishing to Ethereal, Fishing Rod, Worms, Fish and Cooked Fish (Left-click the water with a Baited Rod in the hope of landing your prize) #### 0.0.9e - Changed textures for Bowl, Mushroom Soup, Crystal Spike, Banana Loaf, Strawberry & Bush - Added Hearty Stew Recipes - If BakedClay mod is installed, Mesa Biome will be added to the mix #### 0.0.9d - Added Bamboo Grove and Bamboo Sprouts ) - Craft Bamboo into Paper and Bamboo Flooring - Cactus is now edible when crafted beside empty bucket #### 0.0.9c - Code re-worked so mod now uses sections for each function (easier to read and edit) - New textures for Strawberry Bush and Crystal Spikes #### 0.0.9b - Pine Tree Leaves have new texture and sometimes give Pine Nuts - Jungle Tree's now use default Jungle Wood as texture #### 0.0.9 - Prairie, Grove, Jungle and Snowy biomes have their own dirt - Saplings will only grow in the biomes they were taken from - Mapgen tweaks and code changes for new dirt added ### 0.0.8 Changes #### 0.0.8m - Added Banana Trunk and Wood - Added Boston Ferns to Grove biome - Added edible Fern Tubers - Mushroom Biome now has different sized mushrooms - Changed Pine Needles texture #### 0.0.8k - Added Desert Sand biome - Added Alpine biome with Pine Trees and Snow - Added Grove biome with Banana Tree's (saplings only grow in that temperate area) - Added Bananas, Banana Dough and Banana Bread - Changed biome generation to be more like real-world environs (e.g. shrooms like hot & humid so that's where they spawn) - Tidied up code and removed redundant lines #### 0.0.8e - New Plains biome added between Fiery and Green areas to hopefully stop forest fires, these have dry dirt and dead trees - Placing water near Dry Dirt turns it into normal dirt, cooking normal dirt changes it into Dry Dirt Note: if your Ethereal world does have a few forest fires appearing you can always add this line to your minetest.conf file: disable_fire = true #### 0.0.8 - Healing Tree (grows on high snowy peaks, leaves are edible and golden apples heal all hearts) - Added some new images for Cooked Mushroom Soup, Mushroom Spores and Palm Trees - 2D leaves or 3D leaves option, both wave in wind if enabled - All new saplings can grow on their native dirt, and palm tree's on sand - Crystal Spike or Crystal Dirt freezes nearby water, Heat can also melt ice - Wild Mushrooms now give Spores, plant these to grow edible mushrooms - Cobble in water turns mossy - Palm Leaves can be cooked into Palm Wax and made into Candles ### 0.0.7c - Gravel can be found under lake biomes (or craft 5 cobble in X pattern) - Papyrus is found and grows on dirt near water (also craft 2x3 string for paper) - Mushroom Heads have a chance of giving Mushroom Sapling (craft 1 head = 4x Mushrooms ready for Planting) - Trees and Mushrooms have a chance of giving Saplings - Frost Trunk and Mushroom Trunk are rotatable (craft 1 Mushroom Trunk = 4x White Dye) - Desert areas have Dry Shrubs added - Crystal Spikes added to Crystal Biome (watch out they hurt) - Crystal Ingots added to make Sword and Pick - New Pine Tree model added to snowy biome which adds Pine leaves and drops Pine Saplings - Fixed GrassyTwo biome so that BigTree now spawns and grows from sapling - Added Crystal Gilly Staff to allow breathing underwater (so long as it's in hand) - Added Palm Trees, Trunk, Wood, Sapling, Coconuts, Coconut Slice (to eat) - Thanks to VanessaE's for the Palm textures ethereal/api.txt000066400000000000000000000012631411051537200141620ustar00rootroot00000000000000Ethereal Fishing Rod API Usage: ethereal.add_item(fish, junk, bonus) Example: The fish, junk and bonus entries can all be entered or used seperately e.g. ..add fish: ethereal.add_item("mymod:myfish", "", "") ..add fish and junk: ethereal.add_item("mymod:myfish", "mymod:myjunk", "") You may also use a table that not only adds an item but the biome it can be found in: ..add fish only found in 'grassy_ocean' biome: ethereal.add_item({"mymod:myfish", "grassy_ocean"}, "", "") ..add special item only found in 'frost' biome waters: ethereal.add_item("", "", {"ethereal:crystal_spike", "frost"}) Please note that only Ethereal biome names can be used for specific finds. ethereal/biomes.lua000066400000000000000000000222251411051537200146320ustar00rootroot00000000000000 -- clear default mapgen biomes, decorations but keep ores minetest.clear_registered_biomes() minetest.clear_registered_decorations() --minetest.clear_registered_ores() local S = ethereal.intllib -- Blue Marble Nodes minetest.register_node("ethereal:blue_marble", { description = S("Blue Marble"), tiles = {"ethereal_blue_marble.png"}, groups = {cracky = 1, stone = 1}, sounds = default.node_sound_stone_defaults() }) minetest.register_node("ethereal:blue_marble_tile", { description = S("Blue Marble Tile"), tiles = {"ethereal_blue_marble_tile.png"}, groups = {cracky = 1, stone = 1}, sounds = default.node_sound_stone_defaults() }) minetest.register_craft({ output = "ethereal:blue_marble_tile 9", recipe = { {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"}, {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"}, {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"} } }) -- helper strings local tmp, tmp2 -- helper function local add_biome = function(a, l, m, n, o, p, b, c, d, e, f, g, nd, na, ns) -- if not 1 then biome disabled, don't add if p ~= 1 then return end minetest.register_biome({ name = a, node_dust = b, node_top = c, depth_top = d, node_filler = e, depth_filler = f, node_stone = g, -- node_water_top = h, -- depth_water_top = i, -- node_water = j, -- node_river_water = k, y_min = l, y_max = m, heat_point = n, humidity_point = o, node_dungeon = nd or "default:cobble", node_dungeon_alt = (nd and "") or "default:mossycobble", node_dungeon_stair = ns or "stairs:stair_cobble" }) end -- always registered biomes add_biome("mountain", 140, 31000, 50, 50, 1, nil, "default:snow", 1, "default:snowblock", 2) add_biome("grassland", 3, 71, 45, 65, 1, nil, "default:dirt_with_grass", 1, "default:dirt", 3) add_biome("underground", -31000, -192, 50, 50, 1, nil, nil, nil, nil, nil) -- biomes with disable setting tmp = "default:desert_stone" add_biome("desert", 3, 23, 35, 20, ethereal.desert, nil, "default:desert_sand", 1, "default:desert_sand", 3, tmp, "default:desert_stone", nil, "stairs:stair_desert_stone") add_biome("desert_ocean", -192, 3, 35, 20, ethereal.desert, nil, "default:sand", 1, "default:sand", 2, tmp, "default:desert_stone", nil, "stairs:stair_desert_stone") add_biome("bamboo", 25, 70, 45, 75, ethereal.bamboo, nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3) add_biome("sakura", 3, 25, 45, 75, ethereal.sakura, nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3) add_biome("sakura_ocean", -192, 2, 45, 75, ethereal.sakura, nil, "default:sand", 1, "default:sand", 2) add_biome("mesa", 1, 71, 25, 28, ethereal.mesa, nil, "default:dirt_with_dry_grass", 1, "bakedclay:orange", 15) add_biome("mesa_ocean", -192, 1, 25, 28, ethereal.mesa, nil, "default:sand", 1, "default:sand", 2) tmp = "default:dirt_with_coniferous_litter" if not minetest.registered_nodes[tmp] then tmp = "ethereal:cold_dirt" end -- was 'snowy' biome add_biome("coniferous_forest", 4, 40, 10, 40, ethereal.snowy, nil, tmp, 1, "default:dirt", 2) add_biome("taiga", 40, 140, 10, 40, ethereal.alpine, nil, "default:dirt_with_snow", 1, "default:dirt", 2) add_biome("frost_floatland", 1025, 1750, 10, 40, ethereal.frost, nil, "ethereal:crystal_dirt", 1, "default:dirt", 1) add_biome("frost", 1, 71, 10, 40, ethereal.frost, nil, "ethereal:crystal_dirt", 1, "default:dirt", 3) add_biome("frost_ocean", -192, 1, 10, 40, ethereal.frost, nil, "default:sand", 1, "default:sand", 2) add_biome("deciduous_forest", 3, 91, 13, 40, ethereal.grassy, nil, "default:dirt_with_grass", 1, "default:dirt", 3) add_biome("deciduous_forest_ocean", -31000, 3, 13, 40, ethereal.grassy, nil, "default:sand", 2, "default:gravel", 1) add_biome("caves", 4, 41, 15, 25, ethereal.caves, nil, "default:desert_stone", 3, "air", 8) tmp = "default:silver_sand" if not minetest.registered_nodes[tmp] then tmp = "default:sand" end add_biome("grayness", 2, 41, 15, 30, ethereal.grayness, nil, "ethereal:gray_dirt", 1, "default:dirt", 3) add_biome("grayness_ocean", -28, 1, 15, 30, ethereal.grayness, nil, tmp, 2, "default:sand", 2, "ethereal:blue_marble") add_biome("grassytwo", 1, 91, 15, 40, ethereal.grassytwo, nil, "default:dirt_with_grass", 1, "default:dirt", 3) add_biome("grassytwo_ocean", -192, 1, 15, 40, ethereal.grassytwo, nil, "default:sand", 1, "default:sand", 2) add_biome("prairie", 3, 26, 20, 40, ethereal.prairie, nil, "ethereal:prairie_dirt", 1, "default:dirt", 3) add_biome("prairie_ocean", -192, 1, 20, 40, ethereal.prairie, nil, "default:sand", 1, "default:sand", 2) add_biome("jumble", 1, 71, 25, 50, ethereal.jumble, nil, "default:dirt_with_grass", 1, "default:dirt", 3) add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble, nil, "default:sand", 1, "default:sand", 2) tmp = "default:dirt_with_rainforest_litter" if not minetest.registered_nodes[tmp] then tmp = "ethereal:jungle_dirt" end add_biome("junglee", 1, 71, 30, 60, ethereal.junglee, nil, tmp, 1, "default:dirt", 3) add_biome("junglee_ocean", -192, 1, 30, 60, ethereal.junglee, nil, "default:sand", 1, "default:sand", 2) add_biome("grove", 3, 23, 45, 35, ethereal.grove, nil, "ethereal:grove_dirt", 1, "default:dirt", 3) add_biome("grove_ocean", -192, 2, 45, 35, ethereal.grove, nil, "default:sand", 1, "default:sand", 2) add_biome("mediterranean", 3, 50, 20, 45, ethereal.mediterranean, nil, "ethereal:grove_dirt", 1, "default:dirt", 3) add_biome("mushroom", 3, 50, 45, 55, ethereal.mushroom, nil, "ethereal:mushroom_dirt", 1, "default:dirt", 3) add_biome("mushroom_ocean", -192, 2, 45, 55, ethereal.mushroom, nil, "default:sand", 1, "default:sand", 2) add_biome("sandstone", 3, 23, 50, 20, ethereal.sandstone, nil, "default:sandstone", 1, "default:sandstone", 1, "default:sandstone", "default:sandstone", nil, "stairs:stair_sandstone") add_biome("sandstone_ocean", -192, 2, 50, 20, ethereal.sandstone, nil, "default:sand", 1, "default:sand", 2, "default:sandstone", "default:sandstone", nil, "stairs:stair_sandstone") add_biome("quicksand", 1, 1, 50, 38, ethereal.quicksand, nil, "ethereal:quicksand2", 3, "default:gravel", 1) add_biome("plains", 3, 25, 65, 25, ethereal.plains, nil, "ethereal:dry_dirt", 1, "default:dirt", 3) add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains, nil, "default:sand", 1, "default:sand", 2) tmp = "default:dry_dirt_with_dry_grass" tmp2 = "default:dry_dirt" if not minetest.registered_nodes[tmp] then tmp = "default:dirt_with_dry_grass" tmp2 = "default:dirt" end add_biome("savanna", 3, 50, 55, 25, ethereal.savanna, nil, tmp, 1, tmp2, 3) add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna, nil, "default:sand", 1, "default:sand", 2) add_biome("fiery", 5, 20, 75, 10, ethereal.fiery, nil, "ethereal:fiery_dirt", 1, "default:dirt", 3) add_biome("fiery_ocean", -192, 4, 75, 10, ethereal.fiery, nil, "default:sand", 1, "default:sand", 2) add_biome("sandclay", 1, 11, 65, 2, ethereal.sandclay, nil, "default:sand", 3, "default:clay", 2) add_biome("swamp", 1, 7, 80, 90, ethereal.swamp, nil, "default:dirt_with_grass", 1, "default:dirt", 3) add_biome("swamp_ocean", -192, 1, 80, 90, ethereal.swamp, nil, "default:sand", 2, "default:clay", 2) if ethereal.glacier == 1 then minetest.register_biome({ name = "glacier", node_dust = "default:snowblock", node_top = "default:snowblock", depth_top = 1, node_filler = "default:snowblock", depth_filler = 3, node_stone = "default:ice", node_water_top = "default:ice", depth_water_top = 10, node_river_water = "default:ice", node_riverbed = "default:gravel", depth_riverbed = 2, node_dungeon = "ethereal:icebrick",--"default:ice", node_dungeon_stair = "stairs:stair_ice", y_min = -8, y_max = 31000, heat_point = 0, humidity_point = 50, }) minetest.register_biome({ name = "glacier_ocean", node_dust = "default:snowblock", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, y_min = -112, y_max = -9, heat_point = 0, humidity_point = 50, }) end if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then minetest.register_biome({ name = "tundra_highland", node_dust = "default:snow", node_riverbed = "default:gravel", depth_riverbed = 2, y_max = 180, y_min = 47, heat_point = 0, humidity_point = 40, }) minetest.register_biome({ name = "tundra", node_top = "default:permafrost_with_stones", depth_top = 1, node_filler = "default:permafrost", depth_filler = 1, node_riverbed = "default:gravel", depth_riverbed = 2, vertical_blend = 4, y_max = 46, y_min = 2, heat_point = 0, humidity_point = 40, }) minetest.register_biome({ name = "tundra_beach", node_top = "default:gravel", depth_top = 1, node_filler = "default:gravel", depth_filler = 2, node_riverbed = "default:gravel", depth_riverbed = 2, vertical_blend = 1, y_max = 1, y_min = -3, heat_point = 0, humidity_point = 40, }) minetest.register_biome({ name = "tundra_ocean", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, node_riverbed = "default:gravel", depth_riverbed = 2, vertical_blend = 1, y_max = -4, y_min = -112, heat_point = 0, humidity_point = 40, }) end ethereal/compatibility.lua000066400000000000000000000047221411051537200162270ustar00rootroot00000000000000 -- add compatibility for ethereal nodes already in default game or name changed minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree") minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood") minetest.register_alias("ethereal:fence_acacia", "default:fence_acacia_wood") minetest.register_alias("ethereal:fence_junglewood", "default:fence_junglewood") minetest.register_alias("ethereal:fence_pine", "default:fence_pine_wood") minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves") minetest.register_alias("ethereal:pineleaves", "default:pine_needles") minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown") minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown") minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup") minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown") minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown") minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown") minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown") minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7") minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry") for i = 1, 5 do minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i) end minetest.register_alias("ethereal:onion_7", "ethereal:onion_4") minetest.register_alias("ethereal:onion_8", "ethereal:onion_5") minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4") minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5") minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant") minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew") minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick") minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt") minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt") minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt") minetest.register_alias("ethereal:green_dirt_top", "default;dirt_with_grass") minetest.register_alias("ethereal:tree_sapling", "default:sapling") minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling") minetest.register_alias("ethereal:acacia_sapling", "default:acacia_sapling") minetest.register_alias("ethereal:pine_tree_sapling", "default:pine_sapling") ethereal/crystal.lua000066400000000000000000000172511411051537200150400ustar00rootroot00000000000000 local S = ethereal.intllib -- Crystal Spike (Hurts if you touch it) -- thanks to ZonerDarkRevention for his DokuCraft DeviantArt crystal texture minetest.register_node("ethereal:crystal_spike", { description = S("Crystal Spike"), drawtype = "plantlike", tiles = {"ethereal_crystal_spike.png"}, inventory_image = "ethereal_crystal_spike.png", wield_image = "ethereal_crystal_spike.png", paramtype = "light", light_source = 7, sunlight_propagates = true, walkable = true, damage_per_second = 1, groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1}, sounds = default.node_sound_glass_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16}, }, node_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16}, } }) -- Crystal Ingot minetest.register_craftitem("ethereal:crystal_ingot", { description = S("Crystal Ingot"), inventory_image = "ethereal_crystal_ingot.png", wield_image = "ethereal_crystal_ingot.png" }) if minetest.get_modpath("builtin_item") then minetest.override_item("ethereal:crystal_spike", { dropped_step = function(self, pos, dtime) self.ctimer = (self.ctimer or 0) + dtime if self.ctimer < 5.0 then return end self.ctimer = 0 if self.node_inside and self.node_inside.name ~= "default:water_source" then return end local objs = core.get_objects_inside_radius(pos, 0.8) if not objs or #objs ~= 2 then return end local crystal, mese, ent = nil, nil, nil for k, obj in pairs(objs) do ent = obj:get_luaentity() if ent and ent.name == "__builtin:item" then if ent.itemstring == "default:mese_crystal 2" and not mese then mese = obj elseif ent.itemstring == "ethereal:crystal_spike 2" and not crystal then crystal = obj end end end if mese and crystal then mese:remove() crystal:remove() core.add_item(pos, "ethereal:crystal_ingot") return false end end }) end minetest.register_craft({ type = "shapeless", output = "ethereal:crystal_ingot", recipe = { "default:mese_crystal", "ethereal:crystal_spike", "ethereal:crystal_spike", "default:mese_crystal", "bucket:bucket_water" }, replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} } }) -- Crystal Block minetest.register_node("ethereal:crystal_block", { description = S("Crystal Block"), tiles = {"ethereal_crystal_block.png"}, light_source = 9, is_ground_content = false, groups = {cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1}, sounds = default.node_sound_glass_defaults() }) minetest.register_craft({ output = "ethereal:crystal_block", recipe = { {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"}, {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"}, {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"}, } }) minetest.register_craft({ output = "ethereal:crystal_ingot 9", recipe = { {"ethereal:crystal_block"}, } }) -- Crystal Sword (Powerful wee beastie) minetest.register_tool("ethereal:sword_crystal", { description = S("Crystal Sword"), inventory_image = "ethereal_crystal_sword.png", wield_image = "ethereal_crystal_sword.png", tool_capabilities = { full_punch_interval = 0.6, max_drop_level = 1, groupcaps = { snappy = { times = {[1] = 1.70, [2] = 0.70, [3] = 0.25}, uses = 50, maxlevel = 3 }, }, damage_groups = {fleshy = 10}, }, groups = {sword = 1}, sound = {breaks = "default_tool_breaks"} }) minetest.register_craft({ output = "ethereal:sword_crystal", recipe = { {"ethereal:crystal_ingot"}, {"ethereal:crystal_ingot"}, {"default:steel_ingot"} } }) -- Crystal Axe minetest.register_tool("ethereal:axe_crystal", { description = S("Crystal Axe"), inventory_image = "ethereal_crystal_axe.png", wield_image = "ethereal_crystal_axe.png", tool_capabilities = { full_punch_interval = 0.8, max_drop_level = 1, groupcaps = { choppy = { times = {[1] = 2.00, [2] = 0.80, [3] = 0.40}, uses = 40, maxlevel = 3 } }, damage_groups = {fleshy = 7}, }, groups = {axe = 1}, sound = {breaks = "default_tool_breaks"} }) minetest.register_craft({ output = "ethereal:axe_crystal", recipe = { {"ethereal:crystal_ingot", "ethereal:crystal_ingot"}, {"ethereal:crystal_ingot", "default:steel_ingot"}, {"", "default:steel_ingot"} } }) minetest.register_craft({ output = "ethereal:axe_crystal", recipe = { {"ethereal:crystal_ingot", "ethereal:crystal_ingot"}, {"default:steel_ingot", "ethereal:crystal_ingot"}, {"default:steel_ingot", ""} } }) -- Crystal Pick (This will last a while) minetest.register_tool("ethereal:pick_crystal", { description = S("Crystal Pickaxe"), inventory_image = "ethereal_crystal_pick.png", wield_image = "ethereal_crystal_pick.png", tool_capabilities = { full_punch_interval = 0.7, max_drop_level = 3, groupcaps={ cracky = { times = {[1] = 1.8, [2] = 0.8, [3] = 0.40}, uses = 40, maxlevel = 3 } }, damage_groups = {fleshy = 6}, }, groups = {pickaxe = 1}, sound = {breaks = "default_tool_breaks"} }) minetest.register_craft({ output = "ethereal:pick_crystal", recipe = { {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"}, {"", "default:steel_ingot", ""}, {"", "default:steel_ingot", ""} } }) local old_handle_node_drops = minetest.handle_node_drops function minetest.handle_node_drops(pos, drops, digger) -- are we holding Crystal Shovel? if not digger or digger:get_wielded_item():get_name() ~= "ethereal:shovel_crystal" then return old_handle_node_drops(pos, drops, digger) end local nn = minetest.get_node(pos).name if minetest.get_item_group(nn, "crumbly") == 0 then return old_handle_node_drops(pos, drops, digger) end return old_handle_node_drops(pos, {ItemStack(nn)}, digger) end minetest.register_tool("ethereal:shovel_crystal", { description = "Crystal Shovel", inventory_image = "ethereal_crystal_shovel.png", wield_image = "ethereal_crystal_shovel.png^[transformR90", tool_capabilities = { full_punch_interval = 1.0, max_drop_level = 1, groupcaps = { crumbly = { times = {[1] = 1.10, [2] = 0.50, [3] = 0.30}, uses = 30, maxlevel = 3 } }, damage_groups = {fleshy = 4}, }, groups = {shovel = 1}, sound = {breaks = "default_tool_breaks"} }) minetest.register_craft({ output = "ethereal:shovel_crystal", recipe = { {"ethereal:crystal_ingot"}, {"default:steel_ingot"}, {"default:steel_ingot"} } }) -- Crystal Gilly Staff (replenishes air supply when used) minetest.register_tool("ethereal:crystal_gilly_staff", { description = S("Crystal Gilly Staff"), inventory_image = "ethereal_crystal_gilly_staff.png", wield_image = "ethereal_crystal_gilly_staff.png", on_use = function(itemstack, user, pointed_thing) if user:get_breath() < 10 then user:set_breath(10) end end }) minetest.register_craft({ type = "shapeless", output = "ethereal:crystal_gilly_staff", recipe = { "ethereal:green_moss", "ethereal:gray_moss", "ethereal:fiery_moss", "ethereal:crystal_moss", "ethereal:crystal_ingot", "ethereal:mushroom_moss", "ethereal:crystal_ingot" }, }) -- Add [toolranks] mod support if found if minetest.get_modpath("toolranks") then -- Helper function local function add_tool(name, desc, afteruse) minetest.override_item(name, { original_description = desc, description = toolranks.create_description(desc, 0, 1), after_use = afteruse and toolranks.new_afteruse }) end add_tool("ethereal:pick_crystal", "Crystal Pickaxe", true) add_tool("ethereal:axe_crystal", "Crystal Axe", true) add_tool("ethereal:shovel_crystal", "Crystal Shovel", true) add_tool("ethereal:sword_crystal", "Crystal Sword", true) end ethereal/decor.lua000066400000000000000000000520061411051537200144500ustar00rootroot00000000000000 if minetest.registered_nodes["farming:cotton_wild"] then minetest.register_decoration({ name = "farming:cotton_wild", deco_type = "simple", place_on = {"default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = -0.1, scale = 0.1, spread = {x = 50, y = 50, z = 50}, seed = 4242, octaves = 3, persist = 0.7 }, biomes = {"savanna"}, y_max = 31000, y_min = 1, decoration = "farming:cotton_wild", }) end -- water pools in swamp areas if 5.0 detected if minetest.registered_nodes["default:permafrost"] then minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, place_offset_y = -1, sidelen = 16, fill_ratio = 0.01, biomes = {"swamp"}, y_max = 2, y_min = 1, flags = "force_placement", decoration = "default:water_source", spawn_by = "default:dirt_with_grass", num_spawn_by = 8, }) minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, place_offset_y = -1, sidelen = 16, fill_ratio = 0.1, biomes = {"swamp"}, y_max = 2, y_min = 1, flags = "force_placement", decoration = "default:water_source", spawn_by = {"default:dirt_with_grass", "default:water_source"}, num_spawn_by = 8, }) end if minetest.registered_nodes["default:dry_dirt_with_dry_grass"] then minetest.register_decoration({ deco_type = "simple", place_on = {"default:dry_dirt_with_dry_grass"}, sidelen = 4, noise_params = { offset = -1.5, scale = -1.5, spread = {x = 200, y = 200, z = 200}, seed = 329, octaves = 4, persist = 1.0 }, biomes = {"savanna"}, y_max = 31000, y_min = 1, decoration = "default:dry_dirt", place_offset_y = -1, flags = "force_placement", }) end -- helper string local tmp -- helper function local add_node = function(a, b, c, d, e, f, g, h, i, j) if j ~= 1 then return end minetest.register_decoration({ deco_type = "simple", place_on = a, sidelen = 80, fill_ratio = b, biomes = c, y_min = d, y_max = e, decoration = f, height_max = g, spawn_by = h, num_spawn_by = i, }) end --firethorn shrub add_node({"default:snowblock"}, 0.001, {"glacier"}, 1, 30, {"ethereal:firethorn"}, nil, nil, nil, ethereal.glacier) -- scorched tree add_node({"ethereal:dry_dirt"}, 0.006, {"plains"}, 1, 100, {"ethereal:scorched_tree"}, 6, nil, nil, ethereal.plains) -- dry shrub add_node({"ethereal:dry_dirt"}, 0.015, {"plains"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.plains) add_node({"default:sand"}, 0.015, {"deciduous_forest_ocean"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.grassy) add_node({"default:desert_sand"}, 0.015, {"desert"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.desert) add_node({"default:sandstone"}, 0.015, {"sandstone"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.sandstone) add_node({"bakedclay:red", "bakedclay:orange"}, 0.015, {"mesa"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.mesa) -- dry grass add_node({"default:dry_dirt_with_dry_grass", "default:dirt_with_dry_grass"}, 0.25, {"savanna"}, 1, 100, {"default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, ethereal.savanna) add_node({"default:dirt_with_dry_grass"}, 0.10, {"mesa"}, 1, 100, {"default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, ethereal.mesa) add_node({"default:desert_stone"}, 0.005, {"caves"}, 5, 40, {"default:dry_grass_2", "default:dry_grass_3", "default:dry_shrub"}, nil, nil, nil, ethereal.caves) -- flowers & strawberry add_node({"default:dirt_with_grass"}, 0.025, {"deciduous_forest"}, 1, 100, {"flowers:dandelion_white", "flowers:dandelion_yellow", "flowers:geranium", "flowers:rose", "flowers:tulip", "flowers:viola", "ethereal:strawberry_7"}, nil, nil, nil, ethereal.grassy) add_node({"default:dirt_with_grass"}, 0.025, {"grassytwo"}, 1, 100, {"flowers:dandelion_white", "flowers:dandelion_yellow", "flowers:geranium", "flowers:rose", "flowers:tulip", "flowers:viola", "ethereal:strawberry_7"}, nil, nil, nil, ethereal.grassytwo) -- prairie flowers & strawberry add_node({"ethereal:prairie_dirt"}, 0.035, {"prairie"}, 1, 100, {"flowers:dandelion_white", "flowers:dandelion_yellow", "flowers:geranium", "flowers:rose", "flowers:tulip", "flowers:viola", "ethereal:strawberry_7", "flowers:chrysanthemum_green", "flowers:tulip_black"}, nil, nil, nil, ethereal.prairie) -- crystal spike & crystal grass add_node({"ethereal:crystal_dirt"}, 0.02, {"frost", "frost_floatland"}, 1, 1750, {"ethereal:crystal_spike", "ethereal:crystalgrass"}, nil, nil, nil, ethereal.frost) -- red shrub add_node({"ethereal:fiery_dirt"}, 0.10, {"fiery"}, 1, 100, {"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery) -- snowy grass add_node({"ethereal:gray_dirt"}, 0.05, {"grayness"}, 1, 100, {"ethereal:snowygrass"}, nil, nil, nil, ethereal.grayness) add_node({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"}, 0.05, {"coniferous_forest"}, 1, 100, {"ethereal:snowygrass"}, nil, nil, nil, ethereal.snowy) -- cactus add_node({"default:sandstone"}, 0.0025, {"sandstone"}, 1, 100, {"default:cactus"}, 3, nil, nil, ethereal.sandstone) add_node({"default:desert_sand"}, 0.005, {"desert"}, 1, 100, {"default:cactus"}, 4, nil, nil, ethereal.desert) -- wild red mushroom add_node({"ethereal:mushroom_dirt"}, 0.01, {"mushroom"}, 1, 100, {"flowers:mushroom_fertile_red"}, nil, nil, nil, ethereal.mushroom) local list = { {"junglee", {"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, ethereal.junglee}, {"deciduous_forest", {"default:dirt_with_grass"}, ethereal.grassy}, {"grassytwo", {"default:dirt_with_grass"}, ethereal.grassytwo}, {"prairie", {"ethereal:prairie_dirt"}, ethereal.prairie}, {"mushroom", {"ethereal:mushroom_dirt"}, ethereal.mushroom}, {"swamp", {"default:dirt_with_grass"}, ethereal.swamp} } -- wild red and brown mushrooms for _, row in pairs(list) do if row[3] == 1 then minetest.register_decoration({ deco_type = "simple", place_on = row[2], sidelen = 16, noise_params = { offset = 0, scale = 0.009, spread = {x = 200, y = 200, z = 200}, seed = 2, octaves = 3, persist = 0.66 }, biomes = {row[1]}, y_min = 1, y_max = 120, decoration = {"flowers:mushroom_brown", "flowers:mushroom_red"} }) end end -- jungle grass add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee) add_node({"default:dirt_with_grass"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble) add_node({"default:dirt_with_grass"}, 0.25, {"swamp"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.swamp) -- grass add_node({"default:dirt_with_grass"}, 0.35, {"deciduous_forest"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grassy) add_node({"default:dirt_with_grass"}, 0.35, {"grassytwo"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grassytwo) add_node({"default:dirt_with_grass"}, 0.35, {"jumble"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.jumble) add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.35, {"junglee"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.junglee) add_node({"ethereal:prairie_dirt"}, 0.35, {"prairie"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.prairie) add_node({"ethereal:grove_dirt"}, 0.35, {"grove"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove) add_node({"ethereal:grove_dirt"}, 0.35, {"mediterranean"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.mediterranean) add_node({"ethereal:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo) add_node({"default:dirt_with_grass"}, 0.35, {"grassland", "swamp"}, 1, 100, {"default:grass_3", "default:grass_4"}, nil, nil, nil, 1) add_node({"ethereal:bamboo_dirt"}, 0.35, {"sakura"}, 1, 100, {"default:grass_2", "default:grass_3", "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.sakura) -- grass on sand if minetest.registered_nodes["default:marram_grass_1"] then add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:marram_grass_1", "default:marram_grass_2", "default:marram_grass_3"}, nil, nil, nil, ethereal.sandclay) else add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay) end -- ferns add_node({"ethereal:grove_dirt"}, 0.2, {"grove"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.grove) add_node({"default:dirt_with_grass"}, 0.1, {"swamp"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.swamp) add_node({"ethereal:crystal_dirt"}, 0.001, {"frost_floatlands"}, 1025, 1750, {"ethereal:fern"}, nil, nil, nil, ethereal.frost) -- snow add_node({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"}, 0.8, {"coniferous_forest"}, 4, 40, {"default:snow"}, nil, nil, nil, ethereal.snowy) add_node({"default:dirt_with_snow"}, 0.8, {"taiga"}, 40, 140, {"default:snow"}, nil, nil, nil, ethereal.alpine) -- wild onion add_node({"default:dirt_with_grass", "ethereal:prairie_dirt"}, 0.25, {"deciduous_forest", "grassytwo", "jumble", "prairie"}, 1, 100, {"ethereal:onion_4"}, nil, nil, nil, 1) -- papyrus add_node({"default:dirt_with_grass"}, 0.1, {"deciduous_forest"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.grassy) add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.1, {"junglee"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.junglee) add_node({"default:dirt_with_grass"}, 0.1, {"swamp"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.swamp) --= Farming Redo plants if farming and farming.mod and farming.mod == "redo" then print ("[MOD] Ethereal - Farming Redo detected and in use") -- potato add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.035, {"junglee"}, 1, 100, {"farming:potato_3"}, nil, nil, nil, ethereal.junglee) -- carrot, cucumber, potato, tomato, corn, coffee, raspberry, rhubarb add_node({"default:dirt_with_grass"}, 0.05, {"grassytwo"}, 1, 100, {"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7", "farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4", "farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4", "farming:cabbage_6", "farming:lettuce_5"}, nil, nil, nil, ethereal.grassytwo) add_node({"default:dirt_with_grass"}, 0.05, {"deciduous_forest"}, 1, 100, {"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7", "farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4", "farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4", "farming:beetroot_5"}, nil, nil, nil, ethereal.grassy) add_node({"default:dirt_with_grass"}, 0.05, {"jumble"}, 1, 100, {"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7", "farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4", "farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4", "farming:cabbage_6", "farming:lettuce_5"}, nil, nil, nil, ethereal.jumble) add_node({"ethereal:prairie_dirt"}, 0.05, {"prairie"}, 1, 100, {"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:parsley_3", "farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4", "farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4", "farming:pea_5", "farming:beetroot_5"}, nil, nil, nil, ethereal.prairie) add_node({"ethereal:grove_dirt"}, 0.025, {"mediterranean"}, 1, 100, {"farming:parsley_3"}, nil, nil, nil, ethereal.mediterranean) -- melon and pumpkin add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.015, {"junglee"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.junglee) add_node({"default:dirt_with_grass"}, 0.015, {"deciduous_forest"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.grassy) add_node({"default:dirt_with_grass"}, 0.015, {"grassytwo"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.grassytwo) add_node({"default:dirt_with_grass"}, 0.015, {"jumble"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.jumble) -- mint add_node({"default:dirt_with_grass", "default:dirt_with_coniferous_grass", "ethereal:bamboo_dirt"}, 0.003, nil, 1, 75, "farming:mint_4", nil, "group:water", 1, 1) -- green beans add_node({"default:dirt_with_grass"}, 0.035, {"grassytwo"}, 1, 100, {"farming:beanbush"}, nil, nil, nil, ethereal.grassytwo) -- grape bushel add_node({"default:dirt_with_grass"}, 0.025, {"grassytwo"}, 1, 100, {"farming:grapebush"}, nil, nil, nil, ethereal.grassytwo) add_node({"default:dirt_with_grass"}, 0.025, {"deciduous_forest"}, 1, 100, {"farming:grapebush"}, nil, nil, nil, ethereal.grassy) add_node({"ethereal:prairie_dirt"}, 0.025, {"prairie"}, 1, 100, {"farming:grapebush"}, nil, nil, nil, ethereal.prairie) minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass", "ethereal:prairie_dirt", "default:dirt_with_rainforest_litter"}, sidelen = 16, noise_params = { offset = 0, scale = 0.09, spread = {x = 100, y = 100, z = 100}, seed = 760, octaves = 3, persist = 0.6 }, y_min = 5, y_max = 35, decoration = { "farming:chili_8", "farming:garlic_5", "farming:pepper_5", "farming:pepper_6", "farming:onion_5", "farming:hemp_7", "farming:pepper_7", "farming:soy_5" }, spawn_by = "group:tree", num_spawn_by = 1 }) minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = 0, scale = 0.06, spread = {x = 100, y = 100, z = 100}, seed = 917, octaves = 3, persist = 0.6 }, y_min = 18, y_max = 30, decoration = {"farming:pineapple_8", "farming:soy_5"} }) minetest.register_decoration({ deco_type = "simple", place_on = {"ethereal:grove_dirt"}, sidelen = 16, noise_params = { offset = 0, scale = 0.06, spread = {x = 100, y = 100, z = 100}, seed = 448, octaves = 3, persist = 0.6 }, y_min = 15, y_max = 40, decoration = {"farming:artichoke_5"}, spawn_by = "group:tree", num_spawn_by = 1 }) end -- is baked clay mod active? add new flowers if so if minetest.get_modpath("bakedclay") then minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:prairie_grass", "default:dirt_with_grass", "ethereal:grove_dirt" }, sidelen = 16, noise_params = { offset = 0, scale = 0.004, spread = {x = 100, y = 100, z = 100}, seed = 7133, octaves = 3, persist = 0.6 }, y_min = 10, y_max = 90, decoration = "bakedclay:delphinium" }) minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:prairie_grass", "default:dirt_with_grass", "ethereal:grove_dirt", "ethereal:bamboo_dirt" }, sidelen = 16, noise_params = { offset = 0, scale = 0.004, spread = {x = 100, y = 100, z = 100}, seed = 7134, octaves = 3, persist = 0.6 }, y_min = 15, y_max = 90, decoration = "bakedclay:thistle" }) minetest.register_decoration({ deco_type = "simple", place_on = {"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, sidelen = 16, noise_params = { offset = 0, scale = 0.01, spread = {x = 100, y = 100, z = 100}, seed = 7135, octaves = 3, persist = 0.6 }, y_min = 1, y_max = 90, decoration = "bakedclay:lazarus", spawn_by = "default:jungletree", num_spawn_by = 1 }) minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass", "default:sand"}, sidelen = 16, noise_params = { offset = 0, scale = 0.009, spread = {x = 100, y = 100, z = 100}, seed = 7136, octaves = 3, persist = 0.6 }, y_min = 1, y_max = 15, decoration = "bakedclay:mannagrass", spawn_by = "group:water", num_spawn_by = 1 }) end if ethereal.desert and minetest.get_modpath("wine") then minetest.register_decoration({ deco_type = "simple", place_on = {"default:desert_sand"}, sidelen = 16, fill_ratio = 0.001, biomes = {"desert"}, decoration = {"wine:blue_agave"} }) end if ethereal.snowy and minetest.registered_nodes["default:fern_1"] then local function register_fern_decoration(seed, length) minetest.register_decoration({ name = "default:fern_" .. length, deco_type = "simple", place_on = { "ethereal:cold_dirt", "default:dirt_with_coniferous_litter"}, sidelen = 16, noise_params = { offset = 0, scale = 0.2, spread = {x = 100, y = 100, z = 100}, seed = seed, octaves = 3, persist = 0.7 }, y_max = 31000, y_min = 6, decoration = "default:fern_" .. length }) end register_fern_decoration(14936, 3) register_fern_decoration(801, 2) register_fern_decoration(5, 1) end if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then -- Tundra moss minetest.register_decoration({ deco_type = "simple", place_on = {"default:permafrost_with_stones"}, sidelen = 4, noise_params = { offset = -0.8, scale = 2.0, spread = {x = 100, y = 100, z = 100}, seed = 53995, octaves = 3, persist = 1.0 }, biomes = {"tundra"}, y_max = 50, y_min = 2, decoration = "default:permafrost_with_moss", place_offset_y = -1, flags = "force_placement" }) -- Tundra patchy snow minetest.register_decoration({ deco_type = "simple", place_on = { "default:permafrost_with_moss", "default:permafrost_with_stones", "default:stone", "default:gravel" }, sidelen = 4, noise_params = { offset = 0, scale = 1.0, spread = {x = 100, y = 100, z = 100}, seed = 172555, octaves = 3, persist = 1.0 }, biomes = {"tundra", "tundra_beach"}, y_max = 50, y_min = 1, decoration = "default:snow" }) end if minetest.get_modpath("butterflies") then minetest.register_decoration({ name = "butterflies:butterfly", deco_type = "simple", place_on = {"default:dirt_with_grass", "ethereal:prairie_dirt"}, place_offset_y = 2, sidelen = 80, fill_ratio = 0.005, biomes = {"deciduous_forest", "grassytwo", "prairie", "jumble"}, y_max = 31000, y_min = 1, decoration = { "butterflies:butterfly_white", "butterflies:butterfly_red", "butterflies:butterfly_violet" }, spawn_by = "group:flower", num_spawn_by = 1 }) end if minetest.get_modpath("fireflies") then minetest.register_decoration({ name = "fireflies:firefly_low", deco_type = "simple", place_on = { "default:dirt_with_grass", "default:dirt_with_coniferous_litter", "default:dirt_with_rainforest_litter", "default:dirt", "ethereal:cold_dirt", }, place_offset_y = 2, sidelen = 80, fill_ratio = 0.0005, biomes = { "deciduous_forest", "grassytwo", "coniferous_forest", "junglee", "swamp"}, y_max = 31000, y_min = -1, decoration = "fireflies:hidden_firefly" }) end -- Coral Reef (Minetest 5.0) if minetest.registered_nodes["default:coral_green"] then minetest.register_decoration({ name = "default:corals", deco_type = "simple", place_on = {"default:sand"}, place_offset_y = -1, sidelen = 4, noise_params = { offset = -4, scale = 4, spread = {x = 50, y = 50, z = 50}, seed = 7013, octaves = 3, persist = 0.7, }, biomes = { "desert_ocean", "savanna_ocean", "junglee_ocean", }, y_max = -2, y_min = -8, flags = "force_placement", decoration = { "default:coral_green", "default:coral_pink", "default:coral_cyan", "default:coral_brown", "default:coral_orange", "default:coral_skeleton" } }) -- Kelp minetest.register_decoration({ name = "default:kelp", deco_type = "simple", place_on = {"default:sand"}, place_offset_y = -1, sidelen = 16, noise_params = { offset = -0.04, scale = 0.1, spread = {x = 200, y = 200, z = 200}, seed = 87112, octaves = 3, persist = 0.7 }, biomes = { "frost_ocean", "deciduous_forest_ocean", "sandstone_ocean", "swamp_ocean"}, y_max = -5, y_min = -10, flags = "force_placement", decoration = "default:sand_with_kelp", param2 = 48, param2_max = 96 }) end local random = math.random -- Generate Illumishroom in caves on top of coal minetest.register_on_generated(function(minp, maxp) if minp.y > -30 or maxp.y < -3000 then return end local bpos local coal = minetest.find_nodes_in_area_under_air( minp, maxp, "default:stone_with_coal") for n = 1, #coal do if random(2) == 1 then bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z} if bpos.y > -3000 and bpos.y < -2000 then minetest.swap_node(bpos, {name = "ethereal:illumishroom3"}) elseif bpos.y > -2000 and bpos.y < -1000 then minetest.swap_node(bpos, {name = "ethereal:illumishroom2"}) elseif bpos.y > -1000 and bpos.y < -30 then minetest.swap_node(bpos, {name = "ethereal:illumishroom"}) end end end end) ethereal/depends.txt000066400000000000000000000001401411051537200150240ustar00rootroot00000000000000default farming? stairs? flowers doors? bakedclay? moreblocks? intllib? lucky_block? toolranks? ethereal/description.txt000066400000000000000000000001041411051537200157250ustar00rootroot00000000000000Ethereal mod uses the v7 mapgen to add many new biomes to the world.ethereal/dirt.lua000066400000000000000000000172261411051537200143230ustar00rootroot00000000000000 local S = ethereal.intllib -- override default dirt (to stop caves cutting away dirt) minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt}) minetest.register_alias("ethereal:green_dirt", "default:dirt_with_grass") -- dry dirt minetest.register_node("ethereal:dry_dirt", { description = S("Dried Dirt"), tiles = {"ethereal_dry_dirt.png"}, is_ground_content = ethereal.cavedirt, groups = {crumbly = 3}, sounds = default.node_sound_dirt_defaults() }) minetest.register_craft({ type = "cooking", output = "ethereal:dry_dirt", recipe = "default:dirt", cooktime = 3, }) local dirts = { "Bamboo", "Jungle", "Grove", "Prairie", "Cold", "Crystal", "Mushroom", "Fiery", "Gray" } for n = 1, #dirts do local desc = dirts[n] local name = desc:lower() minetest.register_node("ethereal:"..name.."_dirt", { description = S(desc.." Dirt"), tiles = { "ethereal_grass_"..name.."_top.png", "default_dirt.png", { name = "default_dirt.png^ethereal_grass_" .. name .."_side.png", tileable_vertical = false } }, is_ground_content = ethereal.cavedirt, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, soil = { base = "ethereal:"..name.."_dirt", dry = "farming:soil", wet = "farming:soil_wet" }, drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.25}, }), }) end -- flower spread, also crystal and fire flower regeneration local flower_spread = function(pos, node) if (minetest.get_node_light(pos) or 0) < 13 then return end local pos0 = {x = pos.x - 4, y = pos.y - 2, z = pos.z - 4} local pos1 = {x = pos.x + 4, y = pos.y + 2, z = pos.z + 4} local num = #minetest.find_nodes_in_area(pos0, pos1, "group:flora") -- stop flowers spreading too much just below top of map block if minetest.find_node_near(pos, 2, "ignore") then return end if num > 3 and node.name == "ethereal:crystalgrass" then local grass = minetest.find_nodes_in_area_under_air( pos0, pos1, {"ethereal:crystalgrass"}) if #grass > 4 and not minetest.find_node_near(pos, 4, {"ethereal:crystal_spike"}) then pos = grass[math.random(#grass)] pos.y = pos.y - 1 if minetest.get_node(pos).name == "ethereal:crystal_dirt" then pos.y = pos.y + 1 minetest.swap_node(pos, {name = "ethereal:crystal_spike"}) end end return elseif num > 3 and node.name == "ethereal:dry_shrub" then local grass = minetest.find_nodes_in_area_under_air( pos0, pos1, {"ethereal:dry_shrub"}) if #grass > 8 and not minetest.find_node_near(pos, 4, {"ethereal:fire_flower"}) then pos = grass[math.random(#grass)] pos.y = pos.y - 1 if minetest.get_node(pos).name == "ethereal:fiery_dirt" then pos.y = pos.y + 1 minetest.swap_node(pos, {name = "ethereal:fire_flower"}) end end return elseif num > 3 then return end pos.y = pos.y - 1 local under = minetest.get_node(pos) -- make sure we have soil underneath if minetest.get_item_group(under.name, "soil") == 0 or under.name == "default:desert_sand" then return end local seedling = minetest.find_nodes_in_area_under_air( pos0, pos1, {under.name}) if #seedling > 0 then pos = seedling[math.random(#seedling)] pos.y = pos.y + 1 if (minetest.get_node_light(pos) or 0) < 13 then return end minetest.swap_node(pos, {name = node.name}) end end -- grow papyrus up to 4 high and bamboo up to 8 high local grow_papyrus = function(pos, node) local oripos = pos.y local high = 4 pos.y = pos.y - 1 local nod = minetest.get_node_or_nil(pos) if not nod or minetest.get_item_group(nod.name, "soil") < 1 or minetest.find_node_near(pos, 3, {"group:water"}) == nil then return end if node.name == "ethereal:bamboo" then high = 8 end pos.y = pos.y + 1 local height = 0 while height < high and minetest.get_node(pos).name == node.name do height = height + 1 pos.y = pos.y + 1 end nod = minetest.get_node_or_nil(pos) if nod and nod.name == "air" and height < high then if node.name == "ethereal:bamboo" and height == (high - 1) then ethereal.grow_bamboo_tree({x = pos.x, y = oripos, z = pos.z}) else minetest.swap_node(pos, {name = node.name}) end end end -- loop through active abm's for _, ab in pairs(minetest.registered_abms) do local label = ab.label or "" local node1 = ab.nodenames and ab.nodenames[1] or "" local node2 = ab.nodenames and ab.nodenames[2] or "" local neigh = ab.neighbors and ab.neighbors[1] or "" if label == "Flower spread" or node1 == "group:flora" then --ab.interval = 1 ab.chance = 96 -- back to original chance from 300 ab.nodenames = {"group:flora"} ab.neighbors = {"group:soil"} ab.action = flower_spread -- find grow papyrus abm and change to grow_papyrus function elseif label == "Grow papyrus" or node1 == "default:papyrus" then --ab.interval = 2 --ab.chance = 1 ab.nodenames = {"default:papyrus", "ethereal:bamboo"} ab.neighbors = {"group:soil"} ab.action = grow_papyrus elseif label == "Mushroom spread" then --ab.interval = 1 ab.chance = 50 -- back to original chance from 150 ab.nodenames = {"group:mushroom"} end end -- If Baked Clay mod not active, make Red, Orange and Grey nodes if not minetest.get_modpath("bakedclay") then minetest.register_node(":bakedclay:red", { description = S("Red Baked Clay"), tiles = {"baked_clay_red.png"}, groups = {cracky = 3}, is_ground_content = ethereal.cavedirt, sounds = default.node_sound_stone_defaults() }) minetest.register_node(":bakedclay:orange", { description = S("Orange Baked Clay"), tiles = {"baked_clay_orange.png"}, groups = {cracky = 3}, is_ground_content = ethereal.cavedirt, sounds = default.node_sound_stone_defaults() }) minetest.register_node(":bakedclay:grey", { description = S("Grey Baked Clay"), tiles = {"baked_clay_grey.png"}, groups = {cracky = 3}, is_ground_content = ethereal.cavedirt, sounds = default.node_sound_stone_defaults() }) end -- Quicksand (old style, sinking inside shows black instead of yellow effect, -- works ok with noclip enabled though) minetest.register_node("ethereal:quicksand", { description = S("Quicksand"), tiles = {"default_sand.png"}, drop = "default:sand", liquid_viscosity = 15, liquidtype = "source", liquid_alternative_flowing = "ethereal:quicksand", liquid_alternative_source = "ethereal:quicksand", liquid_renewable = false, liquid_range = 0, drowning = 1, walkable = false, climbable = false, post_effect_color = {r = 230, g = 210, b = 160, a = 245}, groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, sounds = default.node_sound_sand_defaults() }) -- Quicksand (new style, sinking inside shows yellow effect with or without noclip, -- but old quicksand is shown as black until block placed nearby to update light) minetest.register_node("ethereal:quicksand2", { description = S("Quicksand"), tiles = {"default_sand.png^[colorize:#00004F10"}, drawtype = "glasslike", paramtype = "light", drop = "default:sand", liquid_viscosity = 15, liquidtype = "source", liquid_alternative_flowing = "ethereal:quicksand2", liquid_alternative_source = "ethereal:quicksand2", liquid_renewable = false, liquid_range = 0, drowning = 1, walkable = false, climbable = false, post_effect_color = {r = 230, g = 210, b = 160, a = 245}, groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, sounds = default.node_sound_sand_defaults() }) -- craft quicksand minetest.register_craft({ output = "ethereal:quicksand2", recipe = { {"group:sand", "group:sand", "group:sand"}, {"group:sand", "bucket:bucket_water", "group:sand"}, {"group:sand", "group:sand", "group:sand"} }, replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} } }) ethereal/extra.lua000066400000000000000000000244571411051537200145100ustar00rootroot00000000000000 local S = ethereal.intllib -- Etherium Dust minetest.register_craftitem("ethereal:etherium_dust", { description = S("Etherium Dust"), inventory_image = "ethereal_etherium_dust.png", wield_image = "ethereal_etherium_dust.png" }) -- Ethereium Ore minetest.register_node("ethereal:etherium_ore", { description = S("Etherium Ore"), tiles = {"default_desert_stone.png^ethereal_etherium_ore.png"}, groups = {cracky = 3}, drop = "ethereal:etherium_dust", sounds = default.node_sound_stone_defaults() }) minetest.register_node("ethereal:stone_with_etherium_ore", { description = S("Etherium Ore"), tiles = {"default_stone.png^ethereal_etherium_ore.png"}, groups = {cracky = 3}, drop = "ethereal:etherium_dust", sounds = default.node_sound_stone_defaults() }) -- Bamboo Flooring minetest.register_node("ethereal:bamboo_floor", { description = S("Bamboo Floor"), drawtype = "nodebox", tiles = {"ethereal_bamboo_floor.png"}, wield_image = "ethereal_bamboo_floor.png", inventory_image = "ethereal_bamboo_floor.png", paramtype = "light", paramtype2 = "wallmounted", walkable = true, node_box = { type = "wallmounted", wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5} }, selection_box = {type = "wallmounted"}, groups = {snappy = 3, choppy = 3 , flammable = 2}, sounds = default.node_sound_wood_defaults() }) -- Craft Bamboo into Bamboo Flooring minetest.register_craft({ output = "ethereal:bamboo_floor 2", recipe = { {"ethereal:bamboo", "ethereal:bamboo"}, {"ethereal:bamboo", "ethereal:bamboo"} } }) minetest.register_craft({ output = "ethereal:bamboo_block", recipe = { {"ethereal:bamboo_floor"}, {"ethereal:bamboo_floor"} } }) -- Bamboo Block minetest.register_node("ethereal:bamboo_block", { description = S("Bamboo Block"), tiles = {"ethereal_bamboo_floor.png"}, paramtype = "light", groups = {snappy = 3, choppy = 3 , flammable = 2, wood = 1}, sounds = default.node_sound_wood_defaults() }) minetest.register_craft({ output = "ethereal:bamboo_block", recipe = { {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"} } }) -- Craft Bamboo into Paper minetest.register_craft({ output = "default:paper 6", recipe = { {"ethereal:bamboo", "ethereal:bamboo"}, {"ethereal:bamboo", "ethereal:bamboo"}, {"ethereal:bamboo", "ethereal:bamboo"} } }) if ethereal.xcraft == true then -- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b') local cheat = { {"default:cobble", "default:gravel", 5}, {"default:gravel", "default:dirt", 5}, {"default:dirt", "default:sand", 5}, {"default:ice", "default:snow", 20}, {"ethereal:dry_dirt", "default:desert_sand", 5}, {"default:stone", "default:silver_sandstone", 5} } for n = 1, #cheat do minetest.register_craft({ output = cheat[n][2] .. " " .. cheat[n][3], recipe = { {cheat[n][1], "", cheat[n][1]}, {"", cheat[n][1], ""}, {cheat[n][1], "", cheat[n][1]} } }) end end -- END if -- Paper (2x3 string = 4 paper) minetest.register_craft({ output = "default:paper 2", recipe = { {"farming:cotton", "farming:cotton", "farming:cotton"} } }) -- Palm Wax minetest.register_craftitem("ethereal:palm_wax", { description = S("Palm Wax"), inventory_image = "ethereal_palm_wax.png", wield_image = "ethereal_palm_wax.png" }) minetest.register_craft({ type = "cooking", cooktime = 10, output = "ethereal:palm_wax", recipe = "ethereal:palmleaves" }) -- Candle from Wax and String/Cotton minetest.register_node("ethereal:candle", { description = S("Candle"), drawtype = "plantlike", inventory_image = "ethereal_candle_static.png", wield_image = "ethereal_candle_static.png", tiles = { { name = "ethereal_candle.png", animation = { type="vertical_frames", aspect_w = 32, aspect_h = 32, length = 1.0 } } }, paramtype = "light", light_source = 11, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1}, sounds = default.node_sound_defaults(), selection_box = { type = "fixed", fixed = { -0.15, -0.5, -0.15, 0.15, 0, 0.15 } } }) -- candle recipe minetest.register_craft({ output = "ethereal:candle 2", recipe = { {"farming:string"}, {"ethereal:palm_wax"}, {"ethereal:palm_wax"} } }) local function add_candle(col, dcol) local rcol = "" if col ~= "" then rcol = col col = "_" .. col end minetest.register_node("ethereal:candle" .. col, { description = S(dcol .. "Candle"), drawtype = "plantlike", inventory_image = "ethereal_candle" .. col .. "_static.png", wield_image = "ethereal_candle" .. col .. "_static.png", tiles = { { name = "ethereal_candle" .. col .. ".png", animation = { type="vertical_frames", aspect_w = 32, aspect_h = 32, length = 1.0 } } }, paramtype = "light", light_source = 11, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1}, sounds = default.node_sound_defaults(), selection_box = { type = "fixed", fixed = { -0.15, -0.5, -0.15, 0.15, 0, 0.15 } } }) if col ~= "" then minetest.register_craft({ output = "ethereal:candle" .. col, recipe = { {"ethereal:candle", "dye:" .. rcol}, } }) end end add_candle("", "") add_candle("black", "Black ") -- candle colour textures by wRothbard add_candle("blue", "Blue ") add_candle("brown", "Brown ") add_candle("cyan", "Cyan ") add_candle("dark_green", "Dark Green ") add_candle("dark_grey", "Dark Grey ") add_candle("green", "Green ") add_candle("grey", "Grey ") add_candle("magenta", "Magenta ") add_candle("orange", "Orange ") add_candle("pink", "Pink ") add_candle("red", "Red ") add_candle("violet", "Violet ") add_candle("yellow", "Yellow ") -- Wooden Bowl minetest.register_craftitem("ethereal:bowl", { description = S("Bowl"), inventory_image = "ethereal_bowl.png", groups = {food_bowl = 1, flammable = 2} }) -- use farming redo's recipe if found if not minetest.registered_items["farming:bowl"] then minetest.register_craft({ output = "ethereal:bowl 4", recipe = { {"group:wood", "", "group:wood"}, {"", "group:wood", ""} } }) end -- stone Ladder minetest.register_node("ethereal:stone_ladder", { description = S("Stone Ladder"), drawtype = "signlike", tiles = {"ethereal_stone_ladder.png"}, inventory_image = "ethereal_stone_ladder.png", wield_image = "ethereal_stone_ladder.png", paramtype = "light", sunlight_propagates = true, paramtype2 = "wallmounted", walkable = false, climbable = true, is_ground_content = false, selection_box = { type = "wallmounted" }, groups = {cracky = 3, oddly_breakable_by_hand = 1}, legacy_wallmounted = true, sounds = default.node_sound_stone_defaults() }) minetest.register_craft({ output = "ethereal:stone_ladder 4", recipe = { {"group:stone", "", "group:stone"}, {"group:stone", "group:stone", "group:stone"}, {"group:stone", "", "group:stone"} } }) -- Paper Wall minetest.register_node("ethereal:paper_wall", { drawtype = "nodebox", description = S("Paper Wall"), tiles = {"ethereal_paper_wall.png"}, inventory_image_image = "ethereal_paper_wall.png", wield_image = "ethereal_paper_wall.png", paramtype = "light", groups = {snappy = 3}, sounds = default.node_sound_wood_defaults(), walkable = true, is_ground_content = false, sunlight_propagates = true, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 } }, node_box = { type = "fixed", fixed = { { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 } } } }) minetest.register_craft({ output = "ethereal:paper_wall", recipe = { {"group:stick", "default:paper", "group:stick"}, {"group:stick", "default:paper", "group:stick"}, {"group:stick", "default:paper", "group:stick"} } }) -- Glostone (A little bit of light decoration) minetest.register_node("ethereal:glostone", { description = S("Glo Stone"), tiles = {"ethereal_glostone.png"}, groups = {cracky = 3}, light_source = 13, drop = "ethereal:glostone", sounds = default.node_sound_stone_defaults() }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:glostone", recipe = { {"", "default:torch", ""}, {"default:torch", "default:stone", "default:torch"}, {"", "dye:yellow", ""} } }) -- Charcoal Lump minetest.register_craftitem("ethereal:charcoal_lump", { description = S("Lump of Charcoal"), inventory_image = "ethereal_charcoal_lump.png" }) minetest.register_craft({ output = "ethereal:charcoal_lump 2", recipe = { {"ethereal:scorched_tree"} } }) minetest.register_craft({ output = "ethereal:charcoal_lump 2", type = "cooking", recipe = "group:tree", cooktime = 4 }) minetest.register_craft({ type = "fuel", recipe = "ethereal:charcoal_lump", burntime = 10 }) -- Make Torch from Charcoal Lump minetest.register_craft({ output = "default:torch 4", recipe = { {"ethereal:charcoal_lump"}, {"default:stick"} } }) ethereal.lightstaff_recipes = { ["nether:rack"] = "nether:glowstone", ["nether:rack_deep"] = "nether:glowstone_deep" } -- Staff of Light (by Xanthin) minetest.register_tool("ethereal:light_staff", { description = S("Staff of Light"), inventory_image = "ethereal_light_staff.png", light_source = 13, -- used by other mods wield_image = "ethereal_light_staff.png", sound = {breaks = "default_tool_breaks"}, stack_max = 1, on_use = function(itemstack, user, pointed_thing) if pointed_thing.type ~= "node" then return end local pos = pointed_thing.under local pname = user:get_player_name() if minetest.is_protected(pos, pname) then minetest.record_protection_violation(pos, pname) return end local node = minetest.get_node(pos).name local def = minetest.registered_nodes[node] local stone = def and def.groups and def.groups.stone and def.groups.stone == 1 if ethereal.lightstaff_recipes[node] or stone then local glo = ethereal.lightstaff_recipes[node] or "ethereal:glostone" minetest.set_node(pos, {name = glo}) itemstack:add_wear(65535 / 149) -- 150 uses return itemstack end end }) minetest.register_craft({ output = "ethereal:light_staff", recipe = { {"ethereal:illumishroom", "default:mese_crystal", "ethereal:illumishroom"}, {"ethereal:illumishroom2", "default:steel_ingot", "ethereal:illumishroom2"}, {"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"} } }) ethereal/fences.lua000066400000000000000000000070731411051537200146230ustar00rootroot00000000000000 local S = ethereal.intllib local door_mod = minetest.get_modpath("doors") local add_fence = function(name, node, desc, texture) if default.register_fence then default.register_fence("ethereal:fence_" .. name, { description = S(desc .. " Fence"), texture = texture .. ".png", material = "ethereal:" .. node, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults(), check_for_pole = true }) end if default.register_fence_rail then default.register_fence_rail("ethereal:fence_rail_" .. name, { description = S(desc .. " Fence Rail"), texture = texture .. ".png", material = "ethereal:" .. node, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults() }) end if door_mod and doors.register_fencegate then doors.register_fencegate("ethereal:fencegate_" .. name, { description = S(desc .. " Fence Gate"), texture = texture .. ".png", material = "ethereal:" .. node, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} }) end if default.register_mesepost then default.register_mesepost("ethereal:mese_post_" .. name, { description = S(desc .. " Mese Post Light"), texture = texture .. ".png", material = "ethereal:" .. node, }) end end add_fence("scorched", "scorched_tree", "Scorched", "ethereal_scorched_tree") add_fence("frostwood", "frost_wood", "Frost", "ethereal_frost_wood") add_fence("redwood", "redwood_wood", "Redwood", "ethereal_redwood_wood") add_fence("willow", "willow_wood", "Willow", "ethereal_willow_wood") add_fence("yellowwood", "yellow_wood", "Healing Wood", "ethereal_yellow_wood") add_fence("palm", "palm_wood", "Palm", "moretrees_palm_wood") add_fence("banana", "banana_wood", "Banana Wood", "ethereal_banana_wood") add_fence("mushroom", "mushroom_trunk", "Mushroom", "ethereal_mushroom_trunk") add_fence("birch", "birch_wood", "Birch", "moretrees_birch_wood") add_fence("sakura", "sakura_wood", "Sakura", "ethereal_sakura_wood") -- add compatibility for ethereal's to default wooden gates minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open") minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed") minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open") minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed") minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open") minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed") minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open") minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed") -- sakura door if door_mod then doors.register_door("ethereal:door_sakura", { tiles = { {name = "ethereal_sakura_door.png", backface_culling = true} }, description = S("Sakura Wood Door"), inventory_image = "ethereal_sakura_door_inv.png", groups = { snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 }, sound_open = "doors_glass_door_open", sound_close = "doors_glass_door_close", recipe = { {"group:stick", "default:paper"}, {"default:paper", "group:stick"}, {"ethereal:sakura_wood", "ethereal:sakura_wood"} } }) minetest.register_alias("ethereal:sakura_door", "ethereal:door_sakura") minetest.register_alias("ethereal:sakura_door_a", "ethereal:door_sakura_a") minetest.register_alias("ethereal:sakura_door_b", "ethereal:door_sakura_b") end ethereal/fishing.lua000066400000000000000000000303351411051537200150040ustar00rootroot00000000000000--[[ This fishing routine is inspired by the great work Rootyjr did for MineClone2 ]]-- local S = ethereal.intllib local fish_items = { "ethereal:fish_bluefin", "ethereal:fish_blueram", "ethereal:fish_catfish", "ethereal:fish_plaice", "ethereal:fish_salmon", {"ethereal:fish_clownfish", "savanna"}, {"ethereal:fish_pike", "grassy"}, {"ethereal:fish_flathead", "jungle"}, {"ethereal:fish_pufferfish", "desert_ocean"}, {"ethereal:fish_cichlid", "junglee_ocean"}, {"ethereal:fish_coy", "sakura"}, {"ethereal:fish_angler", "ocean"}, {"ethereal:fish_jellyfish", "ocean"}, {"ethereal:fish_seahorse", "ocean"}, {"ethereal:fish_piranha", "jungle"}, {"ethereal:fish_trout", "ocean"} } local junk_items = { "ethereal:bowl", "default:stick", "farming:string", "default:papyrus", "dye:black", {"ethereal:bamboo", "bamboo"} } local bonus_items = { "mobs:nametag", "mobs:saddle", "flowers:waterlily", "default:book", {"ethereal:crystal_spike", "frost"}, {"ethereal:banana_bunch", "grove"} } local default_item = "default:dirt" local random = math.random -- yup we use this a lot -- add item function ethereal.add_item = function(fish, junk, bonus) if fish and fish ~= "" then table.insert(fish_items, fish) end if junk and junk ~= "" then table.insert(junk_items, junk) end if bonus and bonus ~= "" then table.insert(bonus_items, bonus) end end -- fishing bob entity that is thrown into water minetest.register_entity("ethereal:prebob_entity", { textures = {"ethereal_fishing_bob.png"}, visual_size = {x = 0.5, y = 0.5}, collisionbox = {-0.1,-0.1,-0.1,0.1,0.1,0.1}, pointable = false, physical = false, lastpos = {}, on_step = function(self, dtime) local pos = self.object:get_pos() -- Destroy when hitting a solid node if self.lastpos.x then local node = minetest.get_node(pos) local def = minetest.registered_nodes[node.name] -- remove if we hit something hard if def and def.walkable then self.object:remove() return end if def and def.liquidtype == "source" and minetest.get_item_group(node.name, "water") > 0 then --print("---water") -- do we have worms for bait, if so take one local player = self.fisher and minetest.get_player_by_name(self.fisher) local inv = player and player:get_inventory() local bait = 0 if inv and inv:contains_item("main", "ethereal:worm") then inv:remove_item("main", "ethereal:worm") bait = 20 end self.lastpos.y = math.floor(self.lastpos.y) local obj = minetest.add_entity(self.lastpos, "ethereal:bob_entity") local ent = obj:get_luaentity() ent.fisher = self.fisher ent.bait = bait minetest.sound_play("default_water_footstep", { pos = self.lastpos, gain = 0.1}, true) self.object:remove() return end end self.lastpos = {x = pos.x, y = pos.y, z = pos.z} end }) -- fishing bob entity that moves from time to time minetest.register_entity("ethereal:bob_entity", { textures = {"ethereal_fishing_bob.png"}, visual_size = {x = 0.5, y = 0.5}, collisionbox = {0.4,0.4,0.4,0.4,0.4,0.4}, physical = false, pointable = false, static_save = false, lastpos = {}, timer = 0, patience = nil, old_y = nil, bob = false, on_step = function(self, dtime) -- we need a name if self.fisher == nil or self.fisher == "" then self.object:remove() return end local player = minetest.get_player_by_name(self.fisher) -- we need an actual person if not player then self.object:remove() return end local pos = self.object:get_pos() pos.y = math.floor(pos.y) local node = minetest.get_node(pos) local def = minetest.registered_nodes[node.name] local wield = player:get_wielded_item() -- we also need a rod to fish with if not wield or wield:get_name() ~= "ethereal:fishing_rod" then self.object:remove() return end -- remove bob if player is too far away local bob_pos = self.object:get_pos() local pla_pos = player:get_pos() if (pla_pos.y - bob_pos.y) > 15 or (pla_pos.y - bob_pos.y) < -15 or (pla_pos.x - bob_pos.x) > 15 or (pla_pos.x - bob_pos.x) < -15 or (pla_pos.z - bob_pos.z) > 15 or (pla_pos.z - bob_pos.z) < -15 then --print("-- out of range") self.object:remove() return end -- when in water, bob. if def and def.liquidtype == "source" and minetest.get_item_group(def.name, "water") ~= 0 then if self.old_y == nil then self.object:set_pos({ x = self.object:get_pos().x, y = math.floor(self.object:get_pos().y) + 0.5, z = self.object:get_pos().z}) self.old_y = self.object:get_pos().y end -- reset to original position after dive. if self.object:get_pos().y > self.old_y then self.object:set_pos({ x = self.object:get_pos().x, y = self.old_y, z = self.object:get_pos().z}) self.object:set_velocity({x = 0, y = 0, z = 0}) self.object:set_acceleration({x = 0, y = 0, z = 0}) end -- choose random time to wait (minus bait time for worm) if not self.patience or self.patience <= 0 then self.patience = random(10, (45 - self.bait)) self.bait = 0 end -- add particles if bobber bobbing if self.bob then minetest.add_particle({ pos = { x = pos.x + random() - 0.5, y = pos.y + 0.1, z = pos.z + random() - 0.5 }, velocity = {x = 0, y = 4, z = 0}, acceleration = {x = 0, y = -5, z = 0}, expirationtime = random() * 0.5, size = random(), collisiondetection = false, vertical = false, texture = "bubble.png" }) -- handle timer if self.timer < self.patience then self.timer = self.timer + dtime else self.patience = 0 self.timer = 0 self.bob = false end else -- handle timer if self.timer < self.patience then self.timer = self.timer + dtime else -- waiting over, bob that bobber and play splash sound self.bob = true self.patience = 1.5 -- timeframe to catch fish after bob self.timer = 0 self.object:set_velocity({x = 0, y = -2, z = 0}) self.object:set_acceleration({x = 0, y = 5, z = 0}) minetest.sound_play("default_water_footstep", { pos = pos, gain = 0.1}, true) end end end end }) -- narrow item list depending on biome if applicable local find_item = function(list, pos) local item local items = {} local data= minetest.get_biome_data(pos) local biome = data and minetest.get_biome_name(data.biome) or "" for n = 1, #list do item = list[n] if type(item) == "string" then table.insert(items, item) elseif type(item) == "table" then if item[2] == "" or biome:find(item[2]) then table.insert(items, item[1]) end end end --print("==biome: " .. biome, dump(items)) if #items > 0 then return items[random(#items)] end return "" end -- fishing rod function that throws pre bob, places bob and catches fish when it moves local use_rod = function(itemstack, player, pointed_thing) local pos = player:get_pos() local objs = minetest.get_objects_inside_radius(pos, 25) local found = true local ent -- loop through entities and look for bobs for n = 1, #objs do ent = objs[n]:get_luaentity() if ent and ent.fisher and (ent.name == "ethereal:prebob_entity" or ent.name == "ethereal:bob_entity") and player:get_player_name() == ent.fisher then found = false if ent.bob == true then local item local r = random(100) if r < 86 then item = find_item(fish_items, pos) elseif r > 85 and r < 96 then item = find_item(junk_items, pos) else item = find_item(bonus_items, pos) end -- make sure item exists, if not replace with default item if not minetest.registered_items[item] then item = default_item end --print ("---caught", item, r) item = ItemStack(item) local inv = player:get_inventory() if inv:room_for_item("main", item) then inv:add_item("main", item) else minetest.add_item(pos, item) end end ent.object:remove() return itemstack end end -- loop through entities and look for bobs for n = 1, #objs do ent = objs[n]:get_luaentity() if ent and ent.fisher and (ent.name == "ethereal:prebob_entity" or ent.name == "ethereal:bob_entity") and player:get_player_name() == ent.fisher then found = false break end end if found == true then local playerpos = player:get_pos() local dir = player:get_look_dir() local pos = {x = playerpos.x, y = playerpos.y + 1.5, z = playerpos.z} minetest.sound_play("ethereal_casting_rod", {pos = pos, gain = 0.4, max_hear_distance = 16}, true) -- place actual bob local obj = minetest.add_entity(pos, "ethereal:prebob_entity") obj:set_velocity({x = dir.x * 8, y = dir.y * 8, z = dir.z * 8}) obj:set_acceleration({x = dir.x * -3, y = -9.8, z = dir.z * -3}) obj:get_luaentity().fisher = player and player:get_player_name() end end -- scan area for bobs that belong to player and remove local remove_bob = function(player) local objs = minetest.get_objects_inside_radius(player:get_pos(), 25) local name = player:get_player_name() local ent for n = 1, #objs do ent = objs[n]:get_luaentity() if ent and (ent.name == "ethereal:prebob_entity" or ent.name == "ethereal:bob_entity") then -- only remove players own bob if ent.fisher and ent.fisher == name then ent.object:remove() end end end end -- remove bob if player signs off minetest.register_on_leaveplayer(function(player) remove_bob(player) end) -- remove bob if player dies minetest.register_on_dieplayer(function(player) remove_bob(player) end) -- fishing rod minetest.register_tool("ethereal:fishing_rod", { description = S("Fishing Rod (USE to cast and again when the time is right)"), groups = {tool = 1}, inventory_image = "ethereal_fishing_rod.png", wield_image = "ethereal_fishing_rod.png^[transformFX", wield_scale = {x = 1.5, y = 1.5, z = 1}, stack_max = 1, on_use = use_rod, sound = {breaks = "default_tool_breaks"} }) minetest.register_craft({ output = "ethereal:fishing_rod", recipe = { {"","","group:stick"}, {"","group:stick","farming:string"}, {"group:stick","","farming:string"} } }) minetest.register_craft({ type = "fuel", recipe = "ethereal:fishing_rod", burntime = 15 }) local fish = { {"Blue Fin", "bluefin", 2}, {"Blue Ram", "blueram", 2}, {"Catfish", "catfish", 2}, {"Clownfish", "clownfish", 2}, {"Pike", "pike", 2}, {"Flathead", "flathead", 2}, {"Plaice", "plaice", 2}, {"Pufferfish", "pufferfish", -2}, {"Coy", "coy", 2}, {"Salmon", "salmon", 2}, {"Cichlid", "cichlid", 2}, {"Angler", "angler", 2}, {"Jellyfish", "jellyfish", 0}, {"Seahorse", "seahorse", 0}, {"Piranha", "piranha", 2}, {"Trout", "trout", 2} } for n = 1, #fish do local usage local groups if fish[n][3] > 0 then usage = minetest.item_eat(fish[n][3]) groups = {food_fish_raw = 1, ethereal_fish = 1} end minetest.register_craftitem("ethereal:fish_" .. fish[n][2], { description = S(fish[n][1]), inventory_image = "ethereal_fish_" .. fish[n][2] .. ".png", on_use = usage, groups = groups }) end -- cooked fish minetest.register_craftitem(":ethereal:fish_cooked", { description = S("Cooked Fish"), inventory_image = "ethereal_fish_cooked.png", wield_image = "ethereal_fish_cooked.png", groups = {food_fish = 1, flammable = 3}, on_use = minetest.item_eat(5) }) minetest.register_craft({ type = "cooking", output = "ethereal:fish_cooked", recipe = "group:ethereal_fish", cooktime = 8 }) -- Sashimi (Thanks to Natalia Grosner for letting me use the sashimi image) minetest.register_craftitem("ethereal:sashimi", { description = S("Sashimi"), inventory_image = "ethereal_sashimi.png", wield_image = "ethereal_sashimi.png", on_use = minetest.item_eat(4) }) minetest.register_craft({ output = "ethereal:sashimi 2", recipe = { {"group:food_seaweed", "group:food_fish_raw", "group:food_seaweed"}, } }) -- Worm minetest.register_craftitem("ethereal:worm", { description = S("Worm"), inventory_image = "ethereal_worm.png", wield_image = "ethereal_worm.png" }) minetest.register_craft({ output = "ethereal:worm", recipe = { {"default:dirt","default:dirt"} } }) -- compatibility minetest.register_alias("ethereal:fish_raw", "ethereal:fish_cichlid") minetest.register_alias("ethereal:fishing_rod_baited", "ethereal:fishing_rod") minetest.register_alias("ethereal:fish_chichlid", "ethereal:fish_cichlid") ethereal/flight.lua000066400000000000000000000075351411051537200146400ustar00rootroot00000000000000local timer_check = 5 -- seconds per check local flight_secs = 5 * 60 -- seconds of flight local S = ethereal.intllib -- disable flight local function set_flight(user, set) local name = user:get_player_name() local privs = minetest.get_player_privs(name) privs.fly = set minetest.set_player_privs(name, privs) -- when 'fly' removed set timer to temp value for checks if not set then local meta = user:get_meta() ; if not meta then return end meta:set_string("ethereal:fly_timer", "-99") end end -- after function local function ethereal_set_flight(user) local meta = user:get_meta() ; if not meta then return end local timer = tonumber(meta:get_string("ethereal:fly_timer")) if not timer then return end -- nil check -- if timer ran out then remove 'fly' privelage if timer <= 0 and timer ~= -99 then set_flight(user, nil) return end local name = user:get_player_name() local privs = minetest.get_player_privs(name) -- have we already applied 'fly' privelage? if not privs.fly then set_flight(user, true) end -- handle timer timer = timer - timer_check -- show expiration message and play sound if timer < 10 then minetest.chat_send_player(name, minetest.get_color_escape_sequence("#ff5500") .. S("Flight timer about to expire!")) minetest.sound_play("default_dig_dig_immediate", {to_player = name, gain = 1.0}, true) end -- store new timer setting meta:set_string("ethereal:fly_timer", timer) minetest.after(timer_check, function() ethereal_set_flight(user) end) end -- on join / leave minetest.register_on_joinplayer(function(player) local meta = player:get_meta() ; if not meta then return end local timer = tonumber(meta:get_string("ethereal:fly_timer")) if timer and timer == -99 then return end local privs = minetest.get_player_privs(player:get_player_name()) if privs.fly and timer then minetest.after(timer_check, function() ethereal_set_flight(player) end) end end) -- potion item minetest.register_node("ethereal:flight_potion", { description = S("Flight Potion"), drawtype = "plantlike", tiles = {"ethereal_flight_potion.png"}, inventory_image = "ethereal_flight_potion.png", wield_image = "ethereal_flight_potion.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2} }, groups = {dig_immediate = 3}, sounds = default.node_sound_glass_defaults(), on_use = function(itemstack, user, pointed_thing) -- get privs local name = user:get_player_name() local privs = minetest.get_player_privs(name) local meta = user:get_meta() local timer = meta:get_string("ethereal:fly_timer") if privs.fly then local msg = timer if timer == "" or timer == "-99" then msg = S("unlimited") end minetest.chat_send_player(name, minetest.get_color_escape_sequence("#ffff00") .. S("Flight already granted, @1 seconds left!", msg)) return end if not meta then return end meta:set_string("ethereal:fly_timer", flight_secs) minetest.chat_send_player(name, minetest.get_color_escape_sequence("#1eff00") .. S("Flight granted, you have @1 seconds!", flight_secs)) ethereal_set_flight(user) -- take item itemstack:take_item() -- return empty bottle local inv = user:get_inventory() if inv:room_for_item("main", {name = "vessels:glass_bottle"}) then user:get_inventory():add_item("main", "vessels:glass_bottle") else minetest.add_item(user:get_pos(), {name = "vessels:glass_bottle"}) end return itemstack end }) -- recipe minetest.register_craft({ output = "ethereal:flight_potion", recipe = { {"ethereal:etherium_dust", "ethereal:etherium_dust", "ethereal:etherium_dust"}, {"ethereal:etherium_dust", "ethereal:fire_dust", "ethereal:etherium_dust"}, {"ethereal:etherium_dust", "vessels:glass_bottle", "ethereal:etherium_dust"} } }) ethereal/food.lua000066400000000000000000000341061411051537200143040ustar00rootroot00000000000000 local S = ethereal.intllib -- Banana (Heals one heart when eaten) minetest.register_node("ethereal:banana", { description = S("Banana"), drawtype = "torchlike", tiles = {"ethereal_banana_single.png"}, inventory_image = "ethereal_banana_single.png", wield_image = "ethereal_banana_single.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31} }, groups = { food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 1, leafdecay_drop = 1 }, drop = "ethereal:banana", on_use = minetest.item_eat(2), sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:banana", param2 = 1}) end end }) -- Banana Bunch minetest.register_node("ethereal:banana_bunch", { description = S("Banana Bunch"), drawtype = "torchlike", tiles = {"ethereal_banana_bunch.png"}, inventory_image = "ethereal_banana_bunch.png", wield_image = "ethereal_banana_bunch.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31} }, groups = { fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 1, leafdecay_drop = 1 }, drop = "ethereal:banana_bunch", on_use = minetest.item_eat(6), sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:banana_bunch", param2 = 1}) end end }) -- Bunch to Single minetest.register_craft({ type = "shapeless", output = "ethereal:banana 3", recipe = {"ethereal:banana_bunch"} }) minetest.register_craft({ type = "shapeless", output = "ethereal:banana_bunch", recipe = {"ethereal:banana", "ethereal:banana", "ethereal:banana"} }) -- Banana Dough minetest.register_craftitem("ethereal:banana_dough", { description = S("Banana Dough"), inventory_image = "ethereal_banana_dough.png" }) minetest.register_craft({ type = "shapeless", output = "ethereal:banana_dough", recipe = {"group:food_flour", "group:food_banana"} }) minetest.register_craft({ type = "cooking", cooktime = 14, output = "ethereal:banana_bread", recipe = "ethereal:banana_dough" }) -- Orange (Heals 2 hearts when eaten) minetest.register_node("ethereal:orange", { description = S("Orange"), drawtype = "plantlike", tiles = {"farming_orange.png"}, inventory_image = "farming_orange.png", wield_image = "farming_orange.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27} }, groups = { food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 3, leafdecay_drop = 1 }, drop = "ethereal:orange", on_use = minetest.item_eat(4), sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:orange", param2 = 1}) end end, }) -- Pine Nuts (Heals 1/2 heart when eaten) minetest.register_craftitem("ethereal:pine_nuts", { description = S("Pine Nuts"), inventory_image = "ethereal_pine_nuts.png", wield_image = "ethereal_pine_nuts.png", groups = {food_pine_nuts = 1, flammable = 2}, on_use = minetest.item_eat(1) }) -- Banana Loaf (Heals 3 hearts when eaten) minetest.register_craftitem("ethereal:banana_bread", { description = S("Banana Loaf"), inventory_image = "ethereal_banana_bread.png", wield_image = "ethereal_banana_bread.png", groups = {food_bread = 1, flammable = 3}, on_use = minetest.item_eat(6) }) -- Coconut (Gives 4 coconut slices, each heal 1/2 heart) minetest.register_node("ethereal:coconut", { description = S("Coconut"), drawtype = "plantlike", walkable = false, paramtype = "light", sunlight_propagates = true, tiles = {"moretrees_coconut.png"}, inventory_image = "moretrees_coconut.png", wield_image = "moretrees_coconut.png", selection_box = { type = "fixed", fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31} }, groups = { food_coconut = 1, snappy = 1, oddly_breakable_by_hand = 1, cracky = 1, choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1 }, drop = "ethereal:coconut_slice 4", sounds = default.node_sound_wood_defaults() }) -- Coconut Slice (Heals half heart when eaten) minetest.register_craftitem("ethereal:coconut_slice", { description = S("Coconut Slice"), inventory_image = "moretrees_coconut_slice.png", wield_image = "moretrees_coconut_slice.png", groups = {food_coconut_slice = 1, flammable = 1}, on_use = minetest.item_eat(1) }) minetest.register_craft({ output = "ethereal:coconut", recipe = { {"ethereal:coconut_slice", "ethereal:coconut_slice"}, {"ethereal:coconut_slice", "ethereal:coconut_slice"} } }) -- Golden Apple (Found on Healing Tree, heals all 10 hearts) minetest.register_node("ethereal:golden_apple", { description = S("Golden Apple"), drawtype = "plantlike", tiles = {"default_apple_gold.png"}, inventory_image = "default_apple_gold.png", wield_image = "default_apple_gold.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2} }, groups = { fleshy = 3, dig_immediate = 3, leafdecay = 3,leafdecay_drop = 1 }, drop = "ethereal:golden_apple", -- on_use = minetest.item_eat(20), on_use = function(itemstack, user, pointed_thing) if user then user:set_hp(20) return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing) end end, sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer, itemstack) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1}) end end }) -- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture) minetest.register_craftitem("ethereal:hearty_stew", { description = S("Hearty Stew"), inventory_image = "ethereal_hearty_stew.png", wield_image = "ethereal_hearty_stew.png", on_use = minetest.item_eat(10, "ethereal:bowl") }) minetest.register_craft({ output = "ethereal:hearty_stew", recipe = { {"group:food_onion","flowers:mushroom_brown", "group:food_tuber"}, {"","flowers:mushroom_brown", ""}, {"","group:food_bowl", ""} } }) -- Extra recipe for hearty stew if farming and farming.mod and farming.mod == "redo" then minetest.register_craft({ output = "ethereal:hearty_stew", recipe = { {"group:food_onion","flowers:mushroom_brown", "group:food_beans"}, {"","flowers:mushroom_brown", ""}, {"","group:food_bowl", ""} } }) end -- Bucket of Cactus Pulp minetest.register_craftitem("ethereal:bucket_cactus", { description = S("Bucket of Cactus Pulp"), inventory_image = "bucket_cactus.png", wield_image = "bucket_cactus.png", stack_max = 1, groups = {vessel = 1, drink = 1}, on_use = minetest.item_eat(2, "bucket:bucket_empty"), }) minetest.register_craft({ output = "ethereal:bucket_cactus", recipe = { {"bucket:bucket_empty","default:cactus"}, } }) -- firethorn jelly minetest.register_craftitem("ethereal:firethorn_jelly", { description = S("Firethorn Jelly"), inventory_image = "ethereal_firethorn_jelly.png", wield_image = "ethereal_firethorn_jelly.png", on_use = minetest.item_eat(2, "vessels:glass_bottle"), groups = {vessel = 1} }) if minetest.registered_items["farming:bowl"] then minetest.register_craft({ -- type = "shapeless", output = "ethereal:firethorn_jelly", recipe = { {"farming:mortar_pestle","vessels:glass_bottle", ""}, {"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn"}, {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"} }, replacements = { {"bucket:bucket_water", "bucket:bucket_empty 3"}, {"farming:mortar_pestle", "farming:mortar_pestle"} } }) end -- Lemon minetest.register_node("ethereal:lemon", { description = S("Lemon"), drawtype = "plantlike", tiles = {"ethereal_lemon.png"}, inventory_image = "ethereal_lemon_fruit.png", wield_image = "ethereal_lemon_fruit.png", paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27} }, groups = { food_lemon = 1, fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 3, leafdecay_drop = 1 }, drop = "ethereal:lemon", on_use = minetest.item_eat(3), sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:lemon", param2 = 1}) end end }) -- Candied Lemon minetest.register_craftitem("ethereal:candied_lemon", { description = S("Candied Lemon"), inventory_image = "ethereal_candied_lemon.png", wield_image = "ethereal_candied_lemon.png", groups = {food_candied_lemon = 1}, on_use = minetest.item_eat(5) }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:candied_lemon", recipe = { {"farming:baking_tray", "ethereal:lemon", "group:food_sugar"} }, replacements = { {"farming:baking_tray", "farming:baking_tray"} } }) -- Lemonade minetest.register_node("ethereal:lemonade", { description = S("Lemonade"), drawtype = "plantlike", tiles = {"ethereal_lemonade.png"}, inventory_image = "ethereal_lemonade.png", wield_image = "ethereal_lemonade.png", paramtype = "light", walkable = false, selection_box = { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25} }, groups = {vessel = 1, dig_immediate = 3, attached_node = 1, drink = 1}, on_use = minetest.item_eat(5, "vessels:drinking_glass"), sounds = default.node_sound_glass_defaults() }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:lemonade", recipe = { {"ethereal:lemon", "group:food_sugar", "group:food_sugar"}, {"vessels:drinking_glass", "group:water_bucket", ""} }, replacements = { {"group:water_bucket", "bucket:bucket_empty"}, } }) -- Olive minetest.register_node("ethereal:olive", { description = S("Olive"), drawtype = "plantlike", tiles = {"ethereal_olive.png"}, inventory_image = "ethereal_olive_fruit.png", wield_image = "ethereal_olive_fruit.png", visual_scale = 0.2, paramtype = "light", sunlight_propagates = true, walkable = false, selection_box = { type = "fixed", fixed = {-0.1, -0.5, -0.1, 0.1, -0.3, 0.1} }, groups = { fleshy = 3, dig_immediate = 3, flammable = 2, leafdecay = 3, leafdecay_drop = 1 }, drop = "ethereal:olive", on_use = minetest.item_eat(1), sounds = default.node_sound_leaves_defaults(), after_place_node = function(pos, placer) if placer:is_player() then minetest.set_node(pos, {name = "ethereal:olive", param2 = 1}) end end }) -- Olive Oil minetest.register_craftitem("ethereal:olive_oil", { description = S("Olive Oil"), inventory_image = "ethereal_olive_oil.png", wield_image = "ethereal_olive_oil.png", groups = {food_oil = 1, food_olive_oil = 1, vessel = 1} }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:olive_oil", recipe = { {"ethereal:olive", "ethereal:olive", "ethereal:olive"}, {"ethereal:olive", "ethereal:olive", "ethereal:olive"}, {"farming:juicer", "vessels:glass_bottle", ""} }, replacements = { {"farming:juicer", "farming:juicer"} } }) -- Kappa Maki (sushi with cucumber) minetest.register_craftitem("ethereal:sushi_kappamaki", { description = S("Kappa Maki Sushi"), inventory_image = "ethereal_sushi_kappa_maki.png", on_use = minetest.item_eat(3) }) minetest.register_craft({ output = "ethereal:sushi_kappamaki 2", recipe = { {"group:food_seaweed", "group:food_cucumber", "group:food_rice"} } }) -- Nigiri (sushi with raw fish) minetest.register_craftitem("ethereal:sushi_nigiri", { description = S("Nigiri Sushi"), inventory_image = "ethereal_sushi_nigiri.png", on_use = minetest.item_eat(2) }) minetest.register_craft({ output = "ethereal:sushi_nigiri 2", recipe = { {"group:food_rice", "group:food_fish_raw", ""} } }) -- Tamago (sushi with sweet egg) minetest.register_craftitem("ethereal:sushi_tamago", { description = S("Tamago Sushi"), inventory_image = "ethereal_sushi_tamago.png", on_use = minetest.item_eat(2) }) minetest.register_craft({ output = "ethereal:sushi_tamago 2", recipe = { {"group:food_seaweed", "group:food_egg", "group:food_rice"} } }) -- Fugu (prepared pufferfish) minetest.register_craftitem("ethereal:fugu", { description = S("Fugusashi"), inventory_image = "ethereal_fugu.png", on_use = function(itemstack, user, pointed_thing) if user then if math.random(12) == 1 then return minetest.do_item_eat(-16, nil, itemstack, user, pointed_thing) else return minetest.do_item_eat(4, nil, itemstack, user, pointed_thing) end end end }) minetest.register_craft({ output = "ethereal:fugu", -- type = "shapeless", recipe = { {"group:food_cutting_board", "ethereal:fish_pufferfish", "group:food_soy_sauce"} }, replacements = { {"group:food_cutting_board", "farming:cutting_board"}, {"group:food_soy_sauce", "vessels:glass_bottle"} } }) -- Teriyaki Chicken minetest.register_craftitem("ethereal:teriyaki_chicken", { description = S("Teriyaki Chicken"), inventory_image = "ethereal_teriyaki_chicken.png", on_use = minetest.item_eat(4) }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:teriyaki_chicken 2", recipe = { {"group:food_chicken_raw", "group:food_sugar", "group:food_soy_sauce"}, {"group:food_garlic_clove", "group:food_saucepan", "group:food_gelatin"} }, replacements = { {"group:food_soy_sauce", "vessels:glass_bottle"}, {"group:food_saucepan", "farming:saucepan"} } }) -- Teriyaki Beef minetest.register_craftitem("ethereal:teriyaki_beef", { description = S("Teriyaki Beef"), inventory_image = "ethereal_teriyaki_beef.png", on_use = minetest.item_eat(12, "ethereal:bowl") }) minetest.register_craft({ -- type = "shapeless", output = "ethereal:teriyaki_beef", recipe = { {"group:food_meat_raw", "group:food_sugar", "group:food_soy_sauce"}, {"group:food_garlic_clove", "group:food_saucepan", "group:food_gelatin"}, {"group:food_cabbage", "group:food_rice", "group:food_bowl"} }, replacements = { {"group:food_soy_sauce", "vessels:glass_bottle"}, {"group:food_saucepan", "farming:saucepan"} } }) ethereal/init.lua000066400000000000000000000105211411051537200143130ustar00rootroot00000000000000--[[ Minetest Ethereal Mod Created by ChinChow Updated by TenPlus1 ]] -- DO NOT change settings below, use the settings.conf file instead ethereal = { version = "20210614", leaftype = minetest.settings:get('ethereal.leaftype') or 0, leafwalk = minetest.settings:get_bool('ethereal.leafwalk', false), cavedirt = minetest.settings:get_bool('ethereal.cavedirt', true), torchdrop = minetest.settings:get_bool('ethereal.torchdrop', true), papyruswalk = minetest.settings:get_bool('ethereal.papyruswalk', true), lilywalk = minetest.settings:get_bool('ethereal.lilywalk', true), xcraft = minetest.settings:get_bool('ethereal.xcraft', true), flight = minetest.settings:get_bool('ethereal.flight', true), glacier = minetest.settings:get('ethereal.glacier') or 1, bamboo = minetest.settings:get('ethereal.bamboo') or 1, mesa = minetest.settings:get('ethereal.mesa') or 1, alpine = minetest.settings:get('ethereal.alpine') or 1, healing = minetest.settings:get('ethereal.healing') or 1, snowy = minetest.settings:get('ethereal.snowy') or 1, frost = minetest.settings:get('ethereal.frost') or 1, grassy = minetest.settings:get('ethereal.grassy') or 1, caves = minetest.settings:get('ethereal.caves') or 1, grayness = minetest.settings:get('ethereal.grayness') or 1, grassytwo = minetest.settings:get('ethereal.grassytwo') or 1, prairie = minetest.settings:get('ethereal.prairie') or 1, jumble = minetest.settings:get('ethereal.jumble') or 1, junglee = minetest.settings:get('ethereal.junglee') or 1, desert = minetest.settings:get('ethereal.desert') or 1, grove = minetest.settings:get('ethereal.grove') or 1, mushroom = minetest.settings:get('ethereal.mushroom') or 1, sandstone = minetest.settings:get('ethereal.sandstone') or 1, quicksand = minetest.settings:get('ethereal.quicksand') or 1, plains = minetest.settings:get('ethereal.plains') or 1, savanna = minetest.settings:get('ethereal.savanna') or 1, fiery = minetest.settings:get('ethereal.fiery') or 1, sandclay = minetest.settings:get('ethereal.sandclay') or 1, swamp = minetest.settings:get('ethereal.swamp') or 1, sealife = minetest.settings:get('ethereal.sealife') or 1, reefs = minetest.settings:get('ethereal.reefs') or 1, sakura = minetest.settings:get('ethereal.sakura') or 1, tundra = minetest.settings:get('ethereal.tundra') or 1, mediterranean = minetest.settings:get('ethereal.mediterranean') or 1 } local path = minetest.get_modpath("ethereal") -- Load new settings if found local input = io.open(path.."/settings.conf", "r") if input then dofile(path .. "/settings.conf") input:close() input = nil end -- Intllib local S if minetest.get_translator then S = minetest.get_translator("ethereal") elseif minetest.global_exists("intllib") then if intllib.make_gettext_pair then S = intllib.make_gettext_pair() else S = intllib.Getter() end else S = function(s) return s end end ethereal.intllib = S -- Falling node function ethereal.check_falling = minetest.check_for_falling or nodeupdate -- creative check local creative_mode_cache = minetest.settings:get_bool("creative_mode") function ethereal.check_creative(name) return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) end dofile(path .. "/plantlife.lua") dofile(path .. "/mushroom.lua") dofile(path .. "/onion.lua") dofile(path .. "/crystal.lua") dofile(path .. "/water.lua") dofile(path .. "/dirt.lua") dofile(path .. "/food.lua") dofile(path .. "/wood.lua") dofile(path .. "/leaves.lua") dofile(path .. "/sapling.lua") dofile(path .. "/strawberry.lua") dofile(path .. "/fishing.lua") dofile(path .. "/extra.lua") dofile(path .. "/sealife.lua") dofile(path .. "/fences.lua") dofile(path .. "/biomes.lua") dofile(path .. "/ores.lua") dofile(path .. "/schems.lua") dofile(path .. "/decor.lua") dofile(path .. "/compatibility.lua") dofile(path .. "/stairs.lua") dofile(path .. "/lucky_block.lua") if ethereal.flight then dofile(path .. "/flight.lua") end -- Set bonemeal aliases if minetest.get_modpath("bonemeal") then minetest.register_alias("ethereal:bone", "bonemeal:bone") minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal") else -- or return to where it came from minetest.register_alias("ethereal:bone", "default:dirt") minetest.register_alias("ethereal:bonemeal", "default:dirt") end if minetest.get_modpath("xanadu") then dofile(path .. "/plantpack.lua") end print (S("[MOD] Ethereal loaded")) ethereal/leaves.lua000066400000000000000000000354431411051537200146410ustar00rootroot00000000000000 local S = ethereal.intllib -- set leaftype (value inside init.lua) local leaftype = "plantlike" local leafscale = 1.4 if ethereal.leaftype ~= 0 then leaftype = "allfaces_optional" leafscale = 1.0 end -- default apple tree leaves minetest.override_item("default:leaves", { drawtype = leaftype, visual_scale = leafscale, inventory_image = "default_leaves.png", wield_image = "default_leaves.png", walkable = ethereal.leafwalk, }) -- ability to craft big tree sapling minetest.register_craft({ recipe = {{"default:sapling", "default:sapling", "default:sapling"}}, output = "ethereal:big_tree_sapling" }) -- default jungle tree leaves minetest.override_item("default:jungleleaves", { drawtype = leaftype, visual_scale = leafscale, inventory_image = "default_jungleleaves.png", wield_image = "default_jungleleaves.png", walkable = ethereal.leafwalk, }) -- default pine tree leaves minetest.override_item("default:pine_needles", { drawtype = leaftype, visual_scale = leafscale, inventory_image = "default_pine_needles.png", wield_image = "default_pine_needles.png", walkable = ethereal.leafwalk, drop = { max_items = 1, items = { {items = {"default:pine_sapling"}, rarity = 20}, {items = {"ethereal:pine_nuts"}, rarity = 5}, {items = {"default:pine_needles"}} } }, }) -- default acacia tree leaves minetest.override_item("default:acacia_leaves", { drawtype = leaftype, inventory_image = "default_acacia_leaves.png", wield_image = "default_acacia_leaves.png", visual_scale = leafscale, walkable = ethereal.leafwalk, }) -- default aspen tree leaves minetest.override_item("default:aspen_leaves", { drawtype = leaftype, inventory_image = "default_aspen_leaves.png", wield_image = "default_aspen_leaves.png", visual_scale = leafscale, walkable = ethereal.leafwalk, }) -- willow twig minetest.register_node("ethereal:willow_twig", { description = S("Willow Twig"), drawtype = "plantlike", tiles = {"ethereal_willow_twig.png"}, inventory_image = "ethereal_willow_twig.png", wield_image = "ethereal_willow_twig.png", paramtype = "light", walkable = ethereal.leafwalk, visual_scale = leafscale, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:willow_sapling"}, rarity = 50}, {items = {"ethereal:willow_twig"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- redwood leaves minetest.register_node("ethereal:redwood_leaves", { description = S("Redwood Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_redwood_leaves.png"}, inventory_image = "ethereal_redwood_leaves.png", wield_image = "ethereal_redwood_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:redwood_sapling"}, rarity = 50}, {items = {"ethereal:redwood_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- orange tree leaves minetest.register_node("ethereal:orange_leaves", { description = S("Orange Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_orange_leaves.png"}, inventory_image = "ethereal_orange_leaves.png", wield_image = "ethereal_orange_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:orange_tree_sapling"}, rarity = 15}, {items = {"ethereal:orange_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- banana tree leaves minetest.register_node("ethereal:bananaleaves", { description = S("Banana Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_banana_leaf.png"}, inventory_image = "ethereal_banana_leaf.png", wield_image = "ethereal_banana_leaf.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:banana_tree_sapling"}, rarity = 10}, {items = {"ethereal:bananaleaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- healing tree leaves minetest.register_node("ethereal:yellowleaves", { description = S("Healing Tree Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_yellow_leaves.png"}, inventory_image = "ethereal_yellow_leaves.png", wield_image = "ethereal_yellow_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1}, drop = { max_items = 1, items = { {items = {"ethereal:yellow_tree_sapling"}, rarity = 50}, {items = {"ethereal:yellowleaves"}} } }, -- one leaf heals half a heart when eaten on_use = minetest.item_eat(1), sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves, light_source = 9 }) -- palm tree leaves minetest.register_node("ethereal:palmleaves", { description = S("Palm Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"moretrees_palm_leaves.png"}, inventory_image = "moretrees_palm_leaves.png", wield_image = "moretrees_palm_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:palm_sapling"}, rarity = 10}, {items = {"ethereal:palmleaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- birch tree leaves minetest.register_node("ethereal:birch_leaves", { description = S("Birch Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"moretrees_birch_leaves.png"}, inventory_image = "moretrees_birch_leaves.png", wield_image = "moretrees_birch_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:birch_sapling"}, rarity = 20}, {items = {"ethereal:birch_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- frost tree leaves minetest.register_node("ethereal:frost_leaves", { description = S("Frost Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_frost_leaves.png"}, inventory_image = "ethereal_frost_leaves.png", wield_image = "ethereal_frost_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, puts_out_fire = 1}, drop = { max_items = 1, items = { {items = {"ethereal:frost_tree_sapling"}, rarity = 15}, {items = {"ethereal:frost_leaves"}} } }, light_source = 9, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- bamboo stalk leaves minetest.register_node("ethereal:bamboo_leaves", { description = S("Bamboo Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_bamboo_leaves.png"}, inventory_image = "ethereal_bamboo_leaves.png", wield_image = "ethereal_bamboo_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:bamboo_sprout"}, rarity = 10}, {items = {"ethereal:bamboo_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- sakura leaves minetest.register_node("ethereal:sakura_leaves", { description = S("Sakura Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_sakura_leaves.png"}, inventory_image = "ethereal_sakura_leaves.png", wield_image = "ethereal_sakura_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:sakura_sapling"}, rarity = 30}, {items = {"ethereal:sakura_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) minetest.register_node("ethereal:sakura_leaves2", { description = S("Sakura Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_sakura_leaves2.png"}, inventory_image = "ethereal_sakura_leaves2.png", wield_image = "ethereal_sakura_leaves2.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:sakura_sapling"}, rarity = 30}, {items = {"ethereal:sakura_leaves2"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- lemon tree leaves minetest.register_node("ethereal:lemon_leaves", { description = S("Lemon Tree Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_lemon_leaves.png"}, inventory_image = "ethereal_lemon_leaves.png", wield_image = "ethereal_lemon_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:lemon_tree_sapling"}, rarity = 25}, {items = {"ethereal:lemon_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- olive tree leaves minetest.register_node("ethereal:olive_leaves", { description = S("Olive Tree Leaves"), drawtype = leaftype, visual_scale = leafscale, tiles = {"ethereal_olive_leaves.png"}, inventory_image = "ethereal_olive_leaves.png", wield_image = "ethereal_olive_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { {items = {"ethereal:olive_tree_sapling"}, rarity = 25}, {items = {"ethereal:olive_leaves"}} } }, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves }) -- mushroom tops minetest.register_node("ethereal:mushroom", { description = S("Mushroom Cap"), tiles = {"ethereal_mushroom_block.png"}, groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, leafdecay = 3}, drop = { max_items = 1, items = { {items = {"ethereal:mushroom_sapling"}, rarity = 20}, {items = {"ethereal:mushroom"}} } }, sounds = default.node_sound_wood_defaults() }) minetest.register_craft({ type = "fuel", recipe = "ethereal:mushroom", burntime = 10 }) -- mushroom pore (spongelike material found inside giant shrooms) minetest.register_node("ethereal:mushroom_pore", { description = S("Mushroom Pore"), tiles = {"ethereal_mushroom_pore.png"}, groups = { snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3, flammable = 2, disable_jump = 1, fall_damage_add_percent = -100, leafdecay = 3 }, sounds = default.node_sound_dirt_defaults() }) minetest.register_craft({ type = "fuel", recipe = "ethereal:mushroom_pore", burntime = 3 }) -- hedge block minetest.register_node("ethereal:bush", { description = S("Bush"), tiles = {"ethereal_bush.png"}, walkable = true, groups = {snappy = 3, flammable = 2}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft({ output = "ethereal:bush", recipe = { {"group:leaves", "group:leaves", "group:leaves"}, {"group:leaves", "ethereal:bamboo_leaves", "group:leaves"}, {"group:leaves", "group:leaves", "group:leaves"} } }) minetest.register_craft({ type = "fuel", recipe = "ethereal:bush", burntime = 1 }) -- bush block #2 minetest.register_node("ethereal:bush2", { drawtype = "allfaces_optional", description = S("Bush #2"), tiles = {"default_aspen_leaves.png"}, paramtype = "light", walkable = true, groups = {snappy = 3, flammable = 2}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft({ output = "ethereal:bush2", recipe = { {"group:leaves", "group:leaves", "group:leaves"}, {"group:leaves", "default:aspen_leaves", "group:leaves"}, {"group:leaves", "group:leaves", "group:leaves"} } }) minetest.register_craft({ type = "fuel", recipe = "ethereal:bush2", burntime = 1 }) -- bush block #3 minetest.register_node("ethereal:bush3", { drawtype = "allfaces_optional", description = S("Bush #3"), tiles = {"default_pine_needles.png"}, paramtype = "light", walkable = true, groups = {snappy = 3, flammable = 2}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft({ output = "ethereal:bush3", recipe = { {"group:leaves", "group:leaves", "group:leaves"}, {"group:leaves", "default:pine_needles", "group:leaves"}, {"group:leaves", "group:leaves", "group:leaves"} } }) minetest.register_craft({ type = "fuel", recipe = "ethereal:bush3", burntime = 1 }) -- compatibility check for new mt version with leafdecay function if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then default.register_leafdecay({ trunks = {"default:tree"}, leaves = { "default:apple", "default:leaves", "ethereal:orange", "ethereal:orange_leaves", "ethereal:lemon", "ethereal:lemon_leaves", "ethereal:vine" }, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:willow_trunk"}, leaves = {"ethereal:willow_twig"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:redwood_trunk"}, leaves = {"ethereal:redwood_leaves"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:frost_tree"}, leaves = {"ethereal:frost_leaves"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:yellow_trunk"}, leaves = {"ethereal:yellowleaves", "ethereal:golden_apple"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:palm_trunk"}, leaves = {"ethereal:palmleaves", "ethereal:coconut"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:banana_trunk"}, leaves = {"ethereal:bananaleaves", "ethereal:banana", "ethereal:banana_bunch"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:birch_trunk"}, leaves = {"ethereal:birch_leaves"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:bamboo"}, leaves = {"ethereal:bamboo_leaves"}, radius = 2 }) default.register_leafdecay({ trunks = {"ethereal:sakura_trunk"}, leaves = {"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:olive_trunk"}, leaves = {"ethereal:olive_leaves", "ethereal:olive"}, radius = 3 }) default.register_leafdecay({ trunks = {"ethereal:mushroom_trunk"}, leaves = {"ethereal:mushroom", "ethereal:mushroom_pore"}, radius = 3 }) end ethereal/license.txt000066400000000000000000000037671411051537200150460ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2016 TenPlus1 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Textures by Felfa (CC0) olive*.png lemon*.png Free textures from JMArtsDesign edited by myself: ethereal_lemonade.png Free textures from Altairas on DeviantArt ethereal_fish_chichlid.png ethereal_fish_cooked.png Free textures from epicwannehz on DeviantArt ethereal_fish_bluefin.png ethereal_fish_blueram.png ethereal_fish_catfish.png ethereal_fish_clownfish.png ethereal_fish_flathead.png ethereal_fish_pike.png ethereal_fish_plaice.png ethereal_fish_pufferfish.png ethereal_fish_redsnapper.png ethereal_fish_salmon.png ethereal_fish_trout.png ethereal_fish_piranha.png ethereal_fish_angler.png ethereal_fish_jellyfish.png ethereal_fish_seahorse.png Free textures from lisheng2121 (shutterstock) ethereal_sushi_*.png Notice: Most texture authors are written inside code as comments, anything with no name I have more than likely created myself :) Royalty Free SFX from dreamstime.com: ethereal_casting_rod.ogg ethereal/locale/000077500000000000000000000000001411051537200141055ustar00rootroot00000000000000ethereal/locale/de.txt000066400000000000000000000133321411051537200152400ustar00rootroot00000000000000# German Translation for ethereal mod # Deutsche Übersetzung der ethereal Mod # last update: 2016/May/25 # Author: Xanthin #bonemeal.lua Bone = Knochen Bone Meal = Knochenmehl #crystal.lua Crystal Spike = Kristallnadel Crystal Ingot = Kristallbarren Crystal Block = Kristallblock Crystal Sword = Kristallschwert Crystal Axe = Kristallaxt Crystal Pickaxe = Kristallspitzhacke Crystal (soft touch) Shovel = Kristallschaufel (Behutsamkeit) Crystal Gilly Staff = Kristallener Gilly-Stab #dirt.lua Green Dirt = Grüne Erde Dried Dirt = Vertrocknete Erde Bamboo Dirt = Bambuserde Jungle Dirt = Tropenerde Grove Dirt = Hainerde Prairie Dirt = Prärieerde Cold Dirt = Kalte Erde Crystal Dirt = Kristallerde Mushroom Dirt = Pilzerde Fiery Dirt = Feuerrote Erde Gray Dirt = Graue Erde Red Baked Clay = Roter gebrannter Ton Orange Baked Clay = Oranger gebrannter Ton Grey Baked Clay = Grauer gebrannter Ton Quicksand = Treibsand #extra.lua Bamboo Floor = Bambusboden Palm Wax = Palmwachs Candle = Kerze Bowl = Schale Stone Ladder = Steinleiter Paper Wall = Papierwand Glo Stone = Leuchtstein Lump of Charcoal = Holzkohlestück Staff of Light = Stab des Lichts #fences.lua Scorched Fence = Verbrannter Zaun Frost Fence = Frostzaun Redwood Fence = Mammutbaumzaun Willow Fence = Weidenzaun Healing Wood Fence = Lebensholzzaun Palm Fence = Palmzaun Banana Wood Fence = Bananenholzzaun Mushroom Fence = Pilzzaun Birch Fence = Birkenzaun #fishing.lua Raw Fish = Roher Fisch Cooked Fish = Gekochter Fisch Sashimi = Sashimi Worm = Wurm Fishing Rod = Angelrute Baited Fishing Rod = Angelrute mit Köder Inventory full, Fish Got Away! = Inventar voll, Fisch entkam! #food.lua Banana = Banane Banana Dough = Bananenteig Orange = Orange Pine Nuts = Pinienkerne Banana Loaf = Bananenbrot Coconut = Kokosnuss Coconut Slice = Kokosscheibe Golden Apple = Goldener Apfel Hearty Stew = Deftiger Eintopf Bucket of Cactus Pulp = Eimer Kaktusmark #gates.lua Scorched Wood Fence Gate = Verbranntes Holzzauntor Frost Wood Fence Gate = Frostholzzauntor Redwood Fence Gate = Mammutbaumzauntor Willow Wood Fence Gate = Weidenholztor Healing Wood Fence Gate = Lebensholzzauntor Palm Wood Fence Gate = Palmholzzauntor Banana Wood Fence Gate = Bananenholzzauntor Mushroom Trunk Fence Gate = Pilzstammzauntor Birch Wood Fence Gate = Birkenholzzauntor #init.lua [MOD] Ethereal loaded = [MOD] Ethereal geladen #leaves.lua Willow Twig = Weidenrute Redwood Leaves = Mammutbaumlaub Orange Leaves = Orangenlaub Banana Leaves = Bananenblätter Healing Tree Leaves = Lebensbaumlaub Palm Leaves = Palmenblätter Birch Leaves = Birkenlaub Frost Leaves = Frostlaub Bamboo Leaves = Bambuslaub Mushroom Cap = Pilzkappe Mushroom Pore = Pilzpore Bush = Busch Bush #2 = Busch #2 Bush #3 = Busch #3 #mushroom.lua Mushroom Soup = Pilzsuppe #onion.lua Wild Onion = Wilde Zwiebel #plantlife.lua Fire Flower = Feuerblume Fire Dust = Feuerstaub Vine = Weinrebe Light String Vine = Leuchtschnurrebe Fern = Farn Fern Tubers = Farnsporenkapseln Fiery Dry Shrub = Feuerroter vertrockneter Strauch Snowy Grass = Verschneites Gras Crystal Grass = Kristallgras Crystal Moss = Kristallmoos Mushroom Moss = Pilzmoos Fiery Moss = Feuerrotes Moos Gray Moss = Graues Moos Green Moss = Grünes Moos Red Illumishroom = Roter Leuchtpilz Green Illumishroom = Grüner Leuchtpilz Cyan Illumishroom = Türkiser Leuchtpilz #sapling.lua Bamboo Sprout = Bambussprosse Willow Tree Sapling = Weidenbaumsetzling Healing Tree Sapling = Lebensbaumsetzling Apple Tree Sapling = Apfelbaumsetzling Jungle Tree Sapling = Tropenbaumsetzling Pine Tree Sapling = Piniensetzling Big Tree Sapling = Großer-Baum-Setzling Banana Tree Sapling = Bananensetzling Frost Tree Sapling = Frostbaumsetzling Mushroom Tree Sapling = Pilzbaumsetzling Palm Tree Sapling = Palmensetzling Redwood Tree Sapling = Mammutbaumsetzling Orange Tree Sapling = Orangenbaumsetzling Acacia Tree Sapling = Akaziensetzling Birch Tree Sapling = Birkensetzling Schematic not found = Schema nicht gefunden #sealife.lua Seaweed = Seetang Blue Coral = Blaue Koralle Orange Coral = Orange Koralle Pink Coral = Rosa Koralle Green Coral = Grüne Koralle Sandy = Sandy #stairs.lua Crystal Block Stair = Kristallblocktreppe Crystal Block Slab = Kristallblockplatte Ice Brick Stair = Eisziegeltreppe Ice Brick Slab = Eisziegelplatte Snow Brick Stair = Schneeziegeltreppe Snow Brick Slab = Schneeziegelplatte Dry Dirt Stair = Vertrocknete Erdtreppe Dry Dirt Slab = vertrocknete Erdplatte Mushroom Trunk Stair = Pilzstammtreppe Mushroom Trunk Slab = Pilzstammplatte Mushroom Top Stair = Pilzkappentreppe Mushroom Top Slab = Pilzkappenplatte Frost Wood Stair = Frostholztreppe Frost Wood Slab = Frostholzplatte Healing Wood Stair = Lebensholztreppe Healing Wood Slab = Lebensholzplatte Palm Wood Stair = Palmholztreppe Palm Wood Slab = Palmholzplatte Birch Wood Stair = Birkenholztreppe Birch Wood Slab = Birkenholzplatte Banana Wood Stair = Bananenholztreppe Banana Wood Slab = Bananenholzplatte Willow Wood Stair = Weidenholztreppe Willow Wood Slab = Weidenholzplatte Redwood Stair = Mammutbaumtreppe Redwood Slab = Mammutbaumplatte Bamboo Stair = Bambustreppe Bamboo Slab = Bambusplatte Dry Dirt = Vertrocknete Erde Mushroom Trunk = Pilzstamm Mushroom Top = Pilzkappe Healing Wood = Lebensholz Redwood = Mammutbaum #strawberry.lua Strawberry = Erdbeere #water.lua Ice Brick = Eisziegel Snow Brick = Schneeziegel #wood.lua Willow Trunk = Weidenstamm Willow Wood = Weidenholz Redwood Trunk = Mammutbaumstamm Redwood Wood = Mammutbaumholz Frost Tree = Frostbaum Frost Wood = Frostholz Healing Tree Trunk = Lebensbaumstamm Healing Tree Wood = Lebensbaumholz Palm Trunk = Palmstamm Palm Wood = Palmholz Banana Trunk = Bananenstamm Banana Wood = Bananenholz Scorched Tree = Verbrannter Baum Mushroom = Pilz Birch Trunk = Birkenstamm Birch Wood = Birkenholz Bamboo = Bambusethereal/locale/ethereal.de.tr000066400000000000000000000113031411051537200166320ustar00rootroot00000000000000# textdomain:ethereal Agar Powder=Agarpulver Baited Fishing Rod=Angel mit Köder Bamboo=Bambus Bamboo Block=Bambusblock Bamboo Floor=Bambusboden Bamboo Leaves=Bambusblätter Bamboo Slab=Bambusplatte Bamboo Sprout=Bambussprosse Bamboo stair=Bambustreppe Banana=Banane Banana Bunch=Bananenbündel Banana Dough=Bananenteig Banana Leaves=Bananenblätter Banana Loaf=Bananenbrot Banana Trunk=Bananenstamm Banana Wood=Bananenholz Banana Wood Fence=Bananenholzzaun Banana Wood Fence Gate=Bananenholzzauntor Banana Wood Slab=Bananenholzplatte Banana Wood Stair=Bananenholztreppe Birch Fence=Birkenzaun Birch Leaves=Birkenblätter Birch Trunk=Birkenstamm Birch Wood=Birkenholz Birch Wood Fence Gate=Birkenholzzauntor Blue Glow Coral=Blaue Leuchtende Koralle Bowl=Schale Bucket of Cactus Pulp=Eimer Kaktusmark Bush=Busch Bush #2=Busch #2 Bush #3=Busch #3 Candle=Kerze Coconut=Kokosnuss Coconut Slice=Kokosscheibe Cooked Fish=Gekochter Fisch Crystal Axe=Kristallaxt Crystal Block=Kristallblock Crystal Block Slab=Kristallblockplatte Crystal Block Stair=Kristallblocktreppe Crystal Gilly Staff=Kristallener Gilly-Stab Crystal Grass=Kristallgras Crystal Ingot=Kristallbarren Crystal Pickaxe=Kristallspitzhacke Crystal Spike=Kristallnadel Crystal Sword=Kristallschwert Crystal block=Kristallblock Cyan Illumishroom=Türkiser Leuchtpilz Dried Dirt=Vertrocknete Erde Dried Dirt Slab=Vertrocknete Erdplatte Dried Dirt Stair=Vertrocknete Erdtreppe Etherium Dust=Etheriumstaub Etherium Ore=Etheriumerz Fern=Farn Fern Tubers=Farnsporenkapseln Fiery Dry Shrub=Feuerroter vertrockneter Strauch Fire Dust=Feuerstaub Fire Flower=Feuerblume Firethorn Jelly=Feuerdorngelee Firethorn Shrub=Feuerdornbusch Fishing Rod (Right-Click with rod to bait with worm from inventory)=Angel (Rechtsklick mit Angel, um Wurm aus Inventar als Köder zu benutzen) Frost Fence=Frostzaun Frost Leaves=Frostblätter Frost Tree=Frostbaum Frost Wood=Frostholz Frost Wood Fence Gate=Frostholzzauntor Frost Wood Slab=Frostholzplatte Frost Wood Stair=Frostholztreppe Glo Stone=Leuchtstein Golden Apple=Goldener Apfel Green Glow Coral=Grüne Leuchtende Koralle Green Illumishroom=Grüner Leuchtpilz Grey Baked Clay=Grauer gebrannter Ton Healing Tree Leaves=Lebensbaumblätter Healing Tree Trunk=Lebensbaumstamm Healing Tree Wood=Lebensbaumholz Healing Wood=Lebensholz Healing Wood Fence=Lebensholzzaun Healing Wood Fence Gate=Lebensholzzauntor Healing Wood Slab=Lebensholzplatte Healing Wood Stair=Lebensholztreppe Hearty Stew=Deftiger Eintopf Ice Brick=Eisziegel Ice Brick Slab=Eisziegelplatte Ice Brick Stair=Eisziegeltreppe Inventory full, Fish Got Away!=Inventar voll, Fisch entkam! Light String Vine=Leuchtschnurrebe Lump of Charcoal=Holzkohleklumpen Mushroom=Pilz Mushroom Cap=Pilzkappe Mushroom Fence=Pilzzaun Mushroom Pore=Pilzpore Mushroom Soup=Pilzsuppe Mushroom Top=Pilzkappe Mushroom Top Slab=Pilzkappenplatte Mushroom Top Stair=Pilzkappentreppe Mushroom Trunk=Pilzstamm Mushroom Trunk Fence Gate=Pilzstammzauntor Mushroom Trunk Slab=Pilzstammplatte Mushroom Trunk Stair=Pilzstammtreppe Orange=Orange Orange Baked Clay=Orange gebrannter Ton Orange Glow Coral=Orange Leuchtende Koralle Orange Leaves=Orangenblätter Palm Fence=Palmzaun Palm Leaves=Palmenblätter Palm Trunk=Palmstamm Palm Wax=Palmwachs Palm Wood=Palmholz Palm Wood Fence Gate=Palmholzzauntor Palm Wood Slab=Palmholzplatte Palm Wood Stair=Palmholztreppe Paper Wall=Papierwand Pine Nuts=Kiefernkerne Pink Glow Coral=Rosa Leuchtende Koralle Quicksand=Treibsand Raw Fish=Roher Fisch Red Baked Clay=Roter gebrannter Ton Red Illumishroom=Roter Leuchtpilz Redwood=Mammutbaum Redwood Fence=Mammutbaumzaun Redwood Fence Gate=Mammutbaumzauntor Redwood Leaves=Mammutbaumblätter Redwood Slab=Mammutbaumplatte Redwood Trunk=Mammutbaumstamm Redwood Wood=Mammutbaumholz Redwood stair=Mammutbaumtreppe Sakura=Sakura Sakura Fence=Sakurazaun Sakura Leaves=Sakurablätter Sakura Trunk=Sakurastamm Sakura Wood=Sakuraholz Sakura Wood Door=Sakuraholztür Sakura Wood Fence Gate=Sakuraholzzauntor Sakura Wood Slab=Sakuraholzplatte Sakura Wood Stair=Sakuraholztreppe Sandy=Sandy Sashimi=Sashimi Schematic not found=Schematic nicht gefunden Scorched Fence=Verbrannter Zaun Scorched Tree=Verbrannter Baum Scorched Wood Fence Gate=Verbranntes Holzzauntor Seaweed=Seetang Snow Brick=Schneeziegel Snow Brick Slab=Schneeziegelplatte Snow Brick Stair=Schneeziegeltreppe Snowy Grass=Verschneites Gras Sponge=Schwamm Staff of Light=Stab des Lichts Stone Ladder=Steinleiter Strawberry=Erdbeere Vine=Liane Wet sponge=Nasser Schwamm Wild Onion=Wildzwiebel Willow Fence=Weidenzaun Willow Trunk=Weidenstamm Willow Twig=Weidenrute Willow Wood=Weidenholz Willow Wood Fence Gate=Weidenholztor Willow Wood Slab=Weidenholzplatte Willow Wood Stair=Weidenholztreppe Worm=Wurm [MOD] Ethereal loaded=[MOD] Ethereal geladen ethereal/locale/ethereal.en.tr000066400000000000000000000052261411051537200166530ustar00rootroot00000000000000# textdomain:ethereal #Agar Powder= #Baited Fishing Rod= #Bamboo= #Bamboo Block= #Bamboo Floor= #Bamboo Leaves= #Bamboo Slab= #Bamboo Sprout= #Bamboo stair= #Banana= #Banana Bunch= #Banana Dough= #Banana Leaves= #Banana Loaf= #Banana Trunk= #Banana Wood= #Banana Wood Fence= #Banana Wood Fence Gate= #Banana Wood Slab= #Banana Wood Stair= #Birch Fence= #Birch Leaves= #Birch Trunk= #Birch Wood= #Birch Wood Fence Gate= #Blue Glow Coral= #Bowl= #Bucket of Cactus Pulp= #Bush= #Bush #2= #Bush #3= #Candle= #Coconut= #Coconut Slice= #Cooked Fish= #Crystal Axe= #Crystal Block= #Crystal Block Slab= #Crystal Block Stair= #Crystal Gilly Staff= #Crystal Grass= #Crystal Ingot= #Crystal Pickaxe= #Crystal Spike= #Crystal Sword= #Crystal block= #Cyan Illumishroom= #Dried Dirt= #Dried Dirt Slab= #Dried Dirt Stair= #Etherium Dust= #Etherium Ore= #Fern= #Fern Tubers= #Fiery Dry Shrub= #Fire Dust= #Fire Flower= #Firethorn Jelly= #Firethorn Shrub= #Fishing Rod (Right-Click with rod to bait with worm from inventory)= #Frost Fence= #Frost Leaves= #Frost Tree= #Frost Wood= #Frost Wood Fence Gate= #Frost Wood Slab= #Frost Wood Stair= #Glo Stone= #Golden Apple= #Green Glow Coral= #Green Illumishroom= #Grey Baked Clay= #Healing Tree Leaves= #Healing Tree Trunk= #Healing Tree Wood= #Healing Wood= #Healing Wood Fence= #Healing Wood Fence Gate= #Healing Wood Slab= #Healing Wood Stair= #Hearty Stew= #Ice Brick= #Ice Brick Slab= #Ice Brick Stair= #Inventory full, Fish Got Away!= #Light String Vine= #Lump of Charcoal= #Mushroom= #Mushroom Cap= #Mushroom Fence= #Mushroom Pore= #Mushroom Soup= #Mushroom Top= #Mushroom Top Slab= #Mushroom Top Stair= #Mushroom Trunk= #Mushroom Trunk Fence Gate= #Mushroom Trunk Slab= #Mushroom Trunk Stair= #Orange= #Orange Baked Clay= #Orange Glow Coral= #Orange Leaves= #Palm Fence= #Palm Leaves= #Palm Trunk= #Palm Wax= #Palm Wood= #Palm Wood Fence Gate= #Palm Wood Slab= #Palm Wood Stair= #Paper Wall= #Pine Nuts= #Pink Glow Coral= #Quicksand= #Raw Fish= #Red Baked Clay= #Red Illumishroom= #Redwood= #Redwood Fence= #Redwood Fence Gate= #Redwood Leaves= #Redwood Slab= #Redwood Trunk= #Redwood Wood= #Redwood stair= #Sakura= #Sakura Fence= #Sakura Leaves= #Sakura Trunk= #Sakura Wood= #Sakura Wood Door= #Sakura Wood Fence Gate= #Sakura Wood Slab= #Sakura Wood Stair= #Sandy= #Sashimi= #Schematic not found= #Scorched Fence= #Scorched Tree= #Scorched Wood Fence Gate= #Seaweed= #Snow Brick= #Snow Brick Slab= #Snow Brick Stair= #Snowy Grass= #Sponge= #Staff of Light= #Stone Ladder= #Strawberry= #Vine= #Wet sponge= #Wild Onion= #Willow Fence= #Willow Trunk= #Willow Twig= #Willow Wood= #Willow Wood Fence Gate= #Willow Wood Slab= #Willow Wood Stair= #Worm= #[MOD] Ethereal loaded= ethereal/locale/ethereal.fr.tr000066400000000000000000000124701411051537200166570ustar00rootroot00000000000000# textdomain:ethereal Agar Powder=Poudre d'agar Baited Fishing Rod=Canne à pêche avec appât Bamboo=Bambou Bamboo Block=Bloc de bambou Bamboo Floor=Plancher de bambou Bamboo Leaves=Feuilles de bambou Bamboo Slab=Dalle de bambou Bamboo Sprout=Germe de bambou Bamboo stair=Marche de bambou Banana=Banane Banana Bunch=Régime de banane Banana Dough=Pâte de banande Banana Leaves=Feuilles de bananier Banana Loaf=Pain aux bananes Banana Trunk=Tronc de bananier Banana Wood=Bois de bananier Banana Wood Fence=Clôture en bananier Banana Wood Fence Gate=Porte de clôture en bananier Banana Wood Slab=Dalle de bois de bananier Banana Wood Stair=Marche en bois de bananier Birch Fence=Clôture en bouleau Birch Leaves=Feuilles de bouleau Birch Trunk=Tronc de bouleau Birch Wood=Bois de bouleau Birch Wood Fence Gate=Porte de clôture en bouleau Blue Glow Coral=Corail lueur bleu Bowl=Bol Bucket of Cactus Pulp=Seau de pâte de cactus Bush=Arbuste Bush #2=Arbuste #2 Bush #3=Arbuste #3 Candle=Chandelle Coconut=Noix de coco Coconut Slice=Tranche de noix de coco Cooked Fish=Poisson cuit Crystal Axe=Hâche de crystal Crystal Block=Bloc de crystal Crystal Block Slab=Dalle de crystal Crystal Block Stair=Marche de crystal Crystal Gilly Staff=Baton de crystal Crystal Grass=Herbe de crystal Crystal Ingot=Lingot de crystal Crystal Pickaxe=Pioche de crystal Crystal Spike=Pic de crystal Crystal Sword=Épée de crystal Crystal block=Bloc de crystal Cyan Illumishroom=Luminochampignon cyan Dried Dirt=Terre sèche Dried Dirt Slab=Dalle de terre sèche Dried Dirt Stair=Marche de terre sèche Etherium Dust=Poudre céleste Etherium Ore=Minerai céleste Fern=Fougère Fern Tubers=Tubercules de fougère Fiery Dry Shrub=Arbuste ardent sec Fire Dust=Poudre de feu Fire Flower=Fleur de feu Firethorn Jelly=Gelée d'épinafeu Firethorn Shrub=Arbuste épinafeu Fishing Rod (Right-Click with rod to bait with worm from inventory)=Canne à pèche (Clic droit avec canne pour ajouter l'appât à partir de l'inventaire) Frost Fence=Clôture de givrier Frost Leaves=Feuilles de givrier Frost Tree=Givrier Frost Wood=Bois de givrier Frost Wood Fence Gate=Porte de clôture en givrier Frost Wood Slab=Dalle de givrier Frost Wood Stair=Marche en givrier Glo Stone=Pierre luminescente Golden Apple=Pomme dorée Green Glow Coral=Corail lueur vert Green Illumishroom=Luminochampignon vert Grey Baked Clay=Terre cuite grise Healing Tree Leaves=Feuilles de soignantier Healing Tree Trunk=Tronc de soignantier Healing Tree Wood=Bois de soignantier Healing Wood=Bois soignant Healing Wood Fence=Clôture en soignantier Healing Wood Fence Gate=Porte de clôture en soignantier Healing Wood Slab=Dalle de soignantier Healing Wood Stair=Marche en soignantier Hearty Stew=Ragoût copieux Ice Brick=Brique de glace Ice Brick Slab=Dalle en briques de glace Ice Brick Stair=Marche en briques de glace Inventory full, Fish Got Away!=Inventaire plein, un poisson s'est échappé ! Light String Vine=Vigne en girlande de lumières Lump of Charcoal=Morceau de charbon de bois Mushroom=Champignon Mushroom Cap=Dessus de champignon Mushroom Fence=Clôture en champignon Mushroom Pore=Pore de champignon Mushroom Soup=Soupe aux champignons Mushroom Top=Tête de champignon Mushroom Top Slab=Dalle en tête de champignon Mushroom Top Stair=Marche en tête de champignon Mushroom Trunk=Tronc de champignon Mushroom Trunk Fence Gate=Porte de clôture en champignon Mushroom Trunk Slab=Dalle de champignon Mushroom Trunk Stair=Marche en champignon Orange=Orange Orange Baked Clay=Terre cuite orange Orange Glow Coral=Corail lueur orange Orange Leaves=Feuilles orange Palm Fence=Clôture de palmier Palm Leaves=Feuilles de palmier Palm Trunk=Tronc de palmier Palm Wax=Cire de palmier Palm Wood=Bois de palmier Palm Wood Fence Gate=Porte de clôture en palmier Palm Wood Slab=Dalle de palmier Palm Wood Stair=Marche en palmier Paper Wall=Mûr de papier Pine Nuts=Pignon de pin Pink Glow Coral=Corail lueur rose Quicksand=Sables mouvants Raw Fish=Poisson cru Red Baked Clay=Terre cuite rouge Red Illumishroom=Luminochampignon rouge Redwood=Séquoia Redwood Fence=Clôture en séquoia Redwood Fence Gate=Porte de clôture en séquoia Redwood Leaves=Feuilles de séquoia Redwood Slab=Dalle de séquoia Redwood Trunk=Tronc de séquoia Redwood Wood=Bois de séquoia Redwood stair=Marche en séquoia Sakura=Sakura Sakura Fence=Clôture en sakura Sakura Leaves=Feuilles de sakura Sakura Trunk=Tronc de sakura Sakura Wood=Bois de sakura Sakura Wood Door=Porte en sakura Sakura Wood Fence Gate=Porte de clôture en sakura Sakura Wood Slab=Dalle de sakura Sakura Wood Stair=Marche de sakura Sandy=Sable de mer Sashimi=Sashimi Schematic not found=Schéma introuvable Scorched Fence=Clôture brûlée Scorched Tree=Arbre brûlé Scorched Wood Fence Gate=Porte de clôture en bois brûlé Seaweed=Algues Snow Brick=Brique de neige Snow Brick Slab=Dalle en briques de neige Snow Brick Stair=Marche en briques de neige Snowy Grass=Herbe des neiges Sponge=Éponge Staff of Light=Bâton de lumière Stone Ladder=Échelle en roche Strawberry=Fraise Vine=Vigne Wet sponge=Éponge mouillée Wild Onion=Onion sauvage Willow Fence=Clôture en saule Willow Trunk=Tronc de saule Willow Twig=Brindille de saule Willow Wood=Bois de saule Willow Wood Fence Gate=Porte de clôture en saule Willow Wood Slab=Dalle de saule Willow Wood Stair=Marche en saule Worm=Ver [MOD] Ethereal loaded=[MOD] Ethereal chargé ethereal/locale/ethereal.ru.tr000066400000000000000000000157531411051537200167050ustar00rootroot00000000000000# textdomain:ethereal #Agar Powder= Baited Fishing Rod=Удочка с приманкой Bamboo=Бамбук #Bamboo Block= Bamboo Floor=Бамбуковый пол Bamboo Leaves=Бамбуковая листва Bamboo Slab=Плита из бамбука Bamboo Sprout=Росток бамбука #Bamboo stair= Banana=Банан #Banana Bunch= Banana Dough=Банановое тесто Banana Leaves=Листва банана Banana Loaf=Банадовый хлеб Banana Trunk=Ствол бананового дерева Banana Wood=Доски банавого дерева Banana Wood Fence=Забор из бананового дерева Banana Wood Fence Gate=Ворота из бананового дерева для забора Banana Wood Slab=Плита из банановых досок Banana Wood Stair=Ступенька из банановых досок Birch Fence=Берёзовый забор Birch Leaves=Берёзовая листва Birch Trunk=Ствол берёзы Birch Wood=Доски берёзы Birch Wood Fence Gate=Берёзовые ворота для забора Blue Glow Coral=Синий коралл Bowl=Чашка Bucket of Cactus Pulp=Ведро с мякотью кактуса Bush=Куст Bush #2=Куст #2 Bush #3=Куст #3 Candle=Свеча Coconut=Кокос Coconut Slice=Кокосовый ломтик Cooked Fish=Свареная рыба Crystal Axe=Хрустальный топор Crystal Block=Хрустальный блок Crystal Block Slab=Плита из хрустального блока Crystal Block Stair=Ступенька из хрустального блока Crystal Gilly Staff=Хрустальный посох Джилли Crystal Grass=Хрустальная трава Crystal Ingot=Хрустальный слиток Crystal Pickaxe=Хрустальная кирка Crystal Spike=Хрустальный шип Crystal Sword=Хрустальный меч #Crystal block= Cyan Illumishroom=Голубой светящийся гриб Dried Dirt=Высушенная земля #Dried Dirt Slab= #Dried Dirt Stair= #Etherium Dust= #Etherium Ore= Fern=Папоротник Fern Tubers=Клубни папоротника Fiery Dry Shrub=Огненный сухой кустарник Fire Dust=Огненая пыль Fire Flower=Огненый цветок #Firethorn Jelly= #Firethorn Shrub= #Fishing Rod (Right-Click with rod to bait with worm from inventory)= Frost Fence=Замороженный забор Frost Leaves=Замороженная листва Frost Tree=Морозное дерево Frost Wood=Доски Frost Wood Fence Gate=Замороженные деревянные ворота для забора Frost Wood Slab=Плита из замороженных досок Frost Wood Stair=Ступенька из замороженных досок Glo Stone=Светящийся камень Golden Apple=Золотое яблоко Green Glow Coral=Залёный коралл Green Illumishroom=Зелёный светящийся гриб Grey Baked Clay=Серая обожжёная глина Healing Tree Leaves=Листва лечащего дерева Healing Tree Trunk=Ствол лечебного дерева Healing Tree Wood=Доски лечебного дерева Healing Wood=лечебная древесина Healing Wood Fence=Забор из лечащего дерева Healing Wood Fence Gate=Ворота из лечащего дерева для забора Healing Wood Slab=Плита из лечебного дерева Healing Wood Stair=Ступенька из лечебного дерева Hearty Stew=Сытное рагу Ice Brick=Ледяной кирпич Ice Brick Slab=Плита из ледяного кирпича Ice Brick Stair=Ступенька из ледяного кирпича Inventory full, Fish Got Away!=Инвентарь заполнен, рыба сбежала! Light String Vine=Светящаяся виноградная лоза Lump of Charcoal=Кусок угля Mushroom=Гриб Mushroom Cap=Шляпка гриба Mushroom Fence=Грибной забор Mushroom Pore=Грибные поры Mushroom Soup=Грибной суп Mushroom Top=Шляпка гриба Mushroom Top Slab=Плита из шляпки гриба Mushroom Top Stair=Ступенька из шляпки гриба Mushroom Trunk=Ствол гриба Mushroom Trunk Fence Gate=Ворота из грибного ствола для забора Mushroom Trunk Slab=Плита из ствола гриба Mushroom Trunk Stair=Ступенька из ствола гриба Orange=Апельсин Orange Baked Clay=Оранжевая обожжёная глина Orange Glow Coral=Оранжевый коралл Orange Leaves=Листва апельсина Palm Fence=Пальмовый забор Palm Leaves=Пальмовая листва Palm Trunk=Ствол пальмы Palm Wax=Пальмовый воск Palm Wood=Доски пальмы Palm Wood Fence Gate=Ворота из пальмого дерева для забора Palm Wood Slab=Плита из пальмовых досок Palm Wood Stair=Ступенька из пальмовых досок Paper Wall=Обои Pine Nuts=Кедровые орехи Pink Glow Coral=Розовый коралл Quicksand=Зыбучий песок Raw Fish=Сырая рыба Red Baked Clay=Красная обожжёная глина Red Illumishroom=Красный светящийся гриб Redwood=Секвойя Redwood Fence=Забор из секвойи Redwood Fence Gate=Ворота из секвойи для забора Redwood Leaves=Листва секвойи Redwood Slab=Плита из секвойи Redwood Trunk=Ствол секвойи Redwood Wood=Доски секвойи #Redwood stair= #Sakura= #Sakura Fence= #Sakura Leaves= #Sakura Trunk= #Sakura Wood= #Sakura Wood Door= #Sakura Wood Fence Gate= #Sakura Wood Slab= #Sakura Wood Stair= Sandy=Песочный Sashimi=Сашими Schematic not found=Схема не найдена Scorched Fence=Обожжёный забор Scorched Tree=Обожжёное дерево Scorched Wood Fence Gate=Обожжёные деревянные ворота для забора Seaweed=Водоросли Snow Brick=Снежный кирпич Snow Brick Slab=Плита из снежного кирпича Snow Brick Stair=Ступенька из снежного кирпича Snowy Grass=Заснеженная трава #Sponge= Staff of Light=Световой посох Stone Ladder=Каменная лестница Strawberry=Клубника Vine=Виноградная лоза #Wet sponge= Wild Onion=Дикий лук Willow Fence=Ивовый забор Willow Trunk=Ствол ивы Willow Twig=Ивовый прут Willow Wood=Доски ивы Willow Wood Fence Gate=Ивовые ворота для забора Willow Wood Slab=Плита из ивовых досок Willow Wood Stair=Ступенька из ивовых досок Worm=Червь [MOD] Ethereal loaded=[MOD] Ethereal загружен ethereal/locale/ethereal.zh_CN.tr000066400000000000000000000077651411051537200172640ustar00rootroot00000000000000# textdomain:ethereal #Agar Powder= Baited Fishing Rod=带饵的钓鱼竿 Bamboo=竹子 #Bamboo Block= Bamboo Floor=竹地板 Bamboo Leaves=竹叶 Bamboo Slab=竹板 Bamboo Sprout=竹笋 #Bamboo stair= Banana=香蕉 #Banana Bunch= Banana Dough=香蕉皮 Banana Leaves=香蕉树叶 Banana Loaf=香蕉面包 Banana Trunk=香蕉树干 Banana Wood=香蕉木 Banana Wood Fence=香蕉木栅栏 Banana Wood Fence Gate=香蕉木栅栏门 Banana Wood Slab=香蕉木板 Banana Wood Stair=香蕉木楼梯 Birch Fence=桦树栅栏 Birch Leaves=白桦树叶 Birch Trunk=桦树树干 Birch Wood=白桦木材 Birch Wood Fence Gate=白桦木栅栏门 Blue Glow Coral=蓝色珊瑚 Bowl=碗 Bucket of Cactus Pulp=仙人掌果肉桶 Bush=灌木 Bush #2=灌木 #2 Bush #3=灌木 #3 Candle=蜡烛 Coconut=椰子 Coconut Slice=椰子片 Cooked Fish=煮熟的鱼 Crystal Axe=水晶斧 Crystal Block=水晶块 Crystal Block Slab=水晶板 Crystal Block Stair=水晶楼梯 Crystal Gilly Staff=水晶网络人员 Crystal Grass=水晶草 Crystal Ingot=水晶锭 Crystal Pickaxe=水晶锄 Crystal Spike=水晶尖 Crystal Sword=水晶剑 #Crystal block= Cyan Illumishroom=青色蘑菇 Dried Dirt=干土 #Dried Dirt Slab= #Dried Dirt Stair= #Etherium Dust= #Etherium Ore= Fern=蕨类植物 Fern Tubers=蕨类植物的茎 Fiery Dry Shrub=干枯灌木 Fire Dust=火土 Fire Flower=火焰花 #Firethorn Jelly= #Firethorn Shrub= #Fishing Rod (Right-Click with rod to bait with worm from inventory)= Frost Fence=霜木栅栏 Frost Leaves=霜叶子 Frost Tree=霜树 Frost Wood=霜木 Frost Wood Fence Gate=霜木栅栏门 Frost Wood Slab=霜木材板 Frost Wood Stair=霜木楼梯 Glo Stone=荧光石 Golden Apple=金苹果 Green Glow Coral=绿色珊瑚 Green Illumishroom=绿色蘑菇 Grey Baked Clay=灰色烤粘土 Healing Tree Leaves=治疗树叶 Healing Tree Trunk=治疗树干 Healing Tree Wood=治疗树木材 Healing Wood=治疗木 Healing Wood Fence=治疗木栅栏 Healing Wood Fence Gate=愈合木栅栏门 Healing Wood Slab=治疗木板 Healing Wood Stair=治疗木楼梯 Hearty Stew=丰盛的炖肉 Ice Brick=冰砖 Ice Brick Slab=冰砖板 Ice Brick Stair=冰砖楼梯 Inventory full, Fish Got Away!=库存满了,鱼逃掉了! Light String Vine=荧光藤蔓 Lump of Charcoal=块木炭 Mushroom=蘑菇 Mushroom Cap=蘑菇帽 Mushroom Fence=蘑菇栅栏 Mushroom Pore=蘑菇孔隙 Mushroom Soup=蘑菇汤 Mushroom Top=蘑菇顶部 Mushroom Top Slab=蘑菇顶部板 Mushroom Top Stair=蘑菇上楼梯 Mushroom Trunk=蘑菇干 Mushroom Trunk Fence Gate=蘑菇栅栏门 Mushroom Trunk Slab=蘑菇板 Mushroom Trunk Stair=蘑菇楼梯 Orange=橙子 Orange Baked Clay=橙色烤粘土 Orange Glow Coral=橙色珊瑚 Orange Leaves=橙子树叶 Palm Fence=棕榈栅栏 Palm Leaves=棕榈叶 Palm Trunk=棕榈树干 Palm Wax=棕榈蜡 Palm Wood=棕榈木 Palm Wood Fence Gate=棕榈木栅栏门 Palm Wood Slab=棕榈木板 Palm Wood Stair=棕榈木楼梯 Paper Wall=纸墙 Pine Nuts=松子 Pink Glow Coral=粉色珊瑚 Quicksand=流沙 Raw Fish=生鱼 Red Baked Clay=红色烤粘土 Red Illumishroom=红色蘑菇 Redwood=红木 Redwood Fence=红杉栅栏 Redwood Fence Gate=红杉栅栏门 Redwood Leaves=红杉树叶 Redwood Slab=红杉板 Redwood Trunk=红木箱子 Redwood Wood=红木木材 #Redwood stair= #Sakura= #Sakura Fence= #Sakura Leaves= #Sakura Trunk= #Sakura Wood= #Sakura Wood Door= #Sakura Wood Fence Gate= #Sakura Wood Slab= #Sakura Wood Stair= Sandy=沙子 Sashimi=生鱼片 Schematic not found=没有找到示意图 Scorched Fence=烧焦的栅栏 Scorched Tree=烧焦的树 Scorched Wood Fence Gate=烧焦的木栅栏门 Seaweed=海藻 Snow Brick=雪砖 Snow Brick Slab=雪砖板 Snow Brick Stair=雪砖楼梯 Snowy Grass=雪草 #Sponge= Staff of Light=灯柱 Stone Ladder=石梯 Strawberry=草莓 Vine=藤蔓 #Wet sponge= Wild Onion=野生洋葱 Willow Fence=柳树栅栏 Willow Trunk=柳树树干 Willow Twig=柳树枝 Willow Wood=柳树木 Willow Wood Fence Gate=柳树木栅栏门 Willow Wood Slab=柳树木板 Willow Wood Stair=柳树木楼梯 Worm=蠕虫 [MOD] Ethereal loaded=(MOD)的加载 ethereal/locale/ru.txt000066400000000000000000000221321411051537200152740ustar00rootroot00000000000000# Russian Translation for ethereal mod # Русский перевод мода ethereal # last update: 2017/Aug/15 # Author: Inpos #bonemeal.lua Bone = Кость Bone Meal = Косятная мука #crystal.lua Crystal Spike = Хрустальный шип Crystal Ingot = Хрустальный слиток Crystal Block = Хрустальный блок Crystal Sword = Хрустальный меч Crystal Axe = Хрустальный топор Crystal Pickaxe = Хрустальная кирка Crystal (soft touch) Shovel = Хрустальная лопата (хрупкая) Crystal Gilly Staff = Хрустальный посох Джилли #dirt.lua Green Dirt = Зелёная земля Dried Dirt = Высушенная земля Bamboo Dirt = Бамбуковая земля Jungle Dirt = Земля джунглей Grove Dirt = Лесная земля Prairie Dirt = Земля прерий Cold Dirt = Холодная земля Crystal Dirt = Хрустальная земля Mushroom Dirt = Грибная земля Fiery Dirt = Огненная земля Gray Dirt = Серая земля Red Baked Clay = Красная обожжёная глина Orange Baked Clay = Оранжевая обожжёная глина Grey Baked Clay = Серая обожжёная глина Quicksand = Зыбучий песок #extra.lua Bamboo Floor = Бамбуковый пол Palm Wax = Пальмовый воск Candle = Свеча Bowl = Чашка Stone Ladder = Каменная лестница Paper Wall = Обои Glo Stone = Светящийся камень Lump of Charcoal = Кусок угля Staff of Light = Световой посох #fences.lua Scorched Fence = Обожжёный забор Frost Fence = Замороженный забор Redwood Fence = Забор из секвойи Willow Fence = Ивовый забор Healing Wood Fence = Забор из лечащего дерева Palm Fence = Пальмовый забор Banana Wood Fence = Забор из бананового дерева Mushroom Fence = Грибной забор Birch Fence = Берёзовый забор #fishing.lua Raw Fish = Сырая рыба Cooked Fish = Свареная рыба Sashimi = Сашими Worm = Червь Fishing Rod = Удочка Baited Fishing Rod = Удочка с приманкой Inventory full, Fish Got Away! = Инвентарь заполнен, рыба сбежала! #food.lua Banana = Банан Banana Dough = Банановое тесто Orange = Апельсин Pine Nuts = Кедровые орехи Banana Loaf = Банадовый хлеб Coconut = Кокос Coconut Slice = Кокосовый ломтик Golden Apple = Золотое яблоко Hearty Stew = Сытное рагу Bucket of Cactus Pulp = Ведро с мякотью кактуса #gates.lua Scorched Wood Fence Gate = Обожжёные деревянные ворота для забора Frost Wood Fence Gate = Замороженные деревянные ворота для забора Redwood Fence Gate = Ворота из секвойи для забора Willow Wood Fence Gate = Ивовые ворота для забора Healing Wood Fence Gate = Ворота из лечащего дерева для забора Palm Wood Fence Gate = Ворота из пальмого дерева для забора Banana Wood Fence Gate = Ворота из бананового дерева для забора Mushroom Trunk Fence Gate = Ворота из грибного ствола для забора Birch Wood Fence Gate = Берёзовые ворота для забора #init.lua [MOD] Ethereal loaded = [MOD] Ethereal загружен #leaves.lua Willow Twig = Ивовый прут Redwood Leaves = Листва секвойи Orange Leaves = Листва апельсина Banana Leaves = Листва банана Healing Tree Leaves = Листва лечащего дерева Palm Leaves = Пальмовая листва Birch Leaves = Берёзовая листва Frost Leaves = Замороженная листва Bamboo Leaves = Бамбуковая листва Mushroom Cap = Шляпка гриба Mushroom Pore = Грибные поры Bush = Куст Bush #2 = Куст #2 Bush #3 = Куст #3 #mushroom.lua Mushroom Soup = Грибной суп #onion.lua Wild Onion = Дикий лук #plantlife.lua Fire Flower = Огненый цветок Fire Dust = Огненая пыль Vine = Виноградная лоза Light String Vine = Светящаяся виноградная лоза Fern = Папоротник Fern Tubers = Клубни папоротника Fiery Dry Shrub = Огненный сухой кустарник Snowy Grass = Заснеженная трава Crystal Grass = Хрустальная трава Crystal Moss = Хрустальный мох Mushroom Moss = Грибной мох Fiery Moss = Огненный мох Gray Moss = Серый мох Green Moss = Зелёный мох Red Illumishroom = Красный светящийся гриб Green Illumishroom = Зелёный светящийся гриб Cyan Illumishroom = Голубой светящийся гриб #sapling.lua Bamboo Sprout = Росток бамбука Willow Tree Sapling = Саженец ивы Healing Tree Sapling = Саженец лечебного дерева Apple Tree Sapling = Саженец яблони Jungle Tree Sapling = Саженец дерева джунглей Pine Tree Sapling = Саженец сосны Big Tree Sapling = Саженец большого дерева Banana Tree Sapling = Саженец бананового дерева Frost Tree Sapling = Саженец морозного дерева Mushroom Tree Sapling = Саженец грибного дерева Palm Tree Sapling = Саженец пальмы Redwood Tree Sapling = Саженец секвойи Orange Tree Sapling = Саженец апельсинового дерева Acacia Tree Sapling = Саженец акации Birch Tree Sapling = Саженец берёзы Schematic not found = Схема не найдена #sealife.lua Seaweed = Водоросли Blue Coral = Синий коралл Orange Coral = Оранжевый коралл Pink Coral = Розовый коралл Green Coral = Залёный коралл Sandy = Песочный #stairs.lua Crystal Block Stair = Ступенька из хрустального блока Crystal Block Slab = Плита из хрустального блока Ice Brick Stair = Ступенька из ледяного кирпича Ice Brick Slab = Плита из ледяного кирпича Snow Brick Stair = Ступенька из снежного кирпича Snow Brick Slab = Плита из снежного кирпича Dry Dirt Stair = Ступенька из сухой земли Dry Dirt Slab = Плита из сухой земли Mushroom Trunk Stair = Ступенька из ствола гриба Mushroom Trunk Slab = Плита из ствола гриба Mushroom Top Stair = Ступенька из шляпки гриба Mushroom Top Slab = Плита из шляпки гриба Frost Wood Stair = Ступенька из замороженных досок Frost Wood Slab = Плита из замороженных досок Healing Wood Stair = Ступенька из лечебного дерева Healing Wood Slab = Плита из лечебного дерева Palm Wood Stair = Ступенька из пальмовых досок Palm Wood Slab = Плита из пальмовых досок Birch Wood Stair = Ступенька из берёзовых досок Birch Wood Slab = Плита из берёзовых досок Banana Wood Stair = Ступенька из банановых досок Banana Wood Slab = Плита из банановых досок Willow Wood Stair = Ступенька из ивовых досок Willow Wood Slab = Плита из ивовых досок Redwood Stair = Ступенька из секвойи Redwood Slab = Плита из секвойи Bamboo Stair = Ступенька из бамбука Bamboo Slab = Плита из бамбука Dry Dirt = Сухая земля Mushroom Trunk = Ствол гриба Mushroom Top = Шляпка гриба Healing Wood = лечебная древесина Redwood = Секвойя #strawberry.lua Strawberry = Клубника #water.lua Ice Brick = Ледяной кирпич Snow Brick = Снежный кирпич #wood.lua Willow Trunk = Ствол ивы Willow Wood = Доски ивы Redwood Trunk = Ствол секвойи Redwood Wood = Доски секвойи Frost Tree = Морозное дерево Frost Wood = Доски Healing Tree Trunk = Ствол лечебного дерева Healing Tree Wood = Доски лечебного дерева Palm Trunk = Ствол пальмы Palm Wood = Доски пальмы Banana Trunk = Ствол бананового дерева Banana Wood = Доски банавого дерева Scorched Tree = Обожжёное дерево Mushroom = Гриб Birch Trunk = Ствол берёзы Birch Wood = Доски берёзы Bamboo = Бамбукethereal/locale/template.txt000066400000000000000000000057571411051537200164770ustar00rootroot00000000000000# Template for translations of ethereal mod # last update: 2016/May/25 #bonemeal.lua Bone= Bone Meal= #crystal.lua Crystal Spike= Crystal Ingot= Crystal Block= Crystal Sword= Crystal Axe= Crystal Pickaxe= Crystal (soft touch) Shovel= Crystal Gilly Staff= #dirt.lua Green Dirt= Dried Dirt= Bamboo Dirt= Jungle Dirt= Grove Dirt= Prairie Dirt= Cold Dirt= Crystal Dirt= Mushroom Dirt= Fiery Dirt= Gray Dirt= Red Baked Clay= Orange Baked Clay= Grey Baked Clay= Quicksand= #extra.lua Bamboo Floor= Palm Wax= Candle= Bowl= Stone Ladder= Paper Wall= Glo Stone= Lump of Charcoal= Staff of Light= #fences.lua Scorched Fence= Frost Fence= Redwood Fence= Willow Fence= Healing Wood Fence= Palm Fence= Banana Wood Fence= Mushroom Fence= Birch Fence= #fishing.lua Raw Fish= Cooked Fish= Sashimi= Worm= Fishing Rod= Baited Fishing Rod= Inventory full, Fish Got Away!= #food.lua Banana= Banana Dough= Orange= Pine Nuts= Banana Loaf= Coconut= Coconut Slice= Golden Apple= Hearty Stew= Bucket of Cactus Pulp= #gates.lua Scorched Wood Fence Gate= Frost Wood Fence Gate= Redwood Fence Gate= Willow Wood Fence Gate= Healing Wood Fence Gate= Palm Wood Fence Gate= Banana Wood Fence Gate= Mushroom Trunk Fence Gate= Birch Wood Fence Gate= #init.lua [MOD] Ethereal loaded= #leaves.lua Willow Twig= Redwood Leaves= Orange Leaves= Banana Leaves= Healing Tree Leaves= Palm Leaves= Birch Leaves= Frost Leaves= Bamboo Leaves= Mushroom Cap= Mushroom Pore= Bush= Bush #2= Bush #3= #mushroom.lua Mushroom Soup= #onion.lua Wild Onion= #plantlife.lua Fire Flower= Fire Dust= Vine= Light String Vine= Fern= Fern Tubers= Fiery Dry Shrub= Snowy Grass= Crystal Grass= Crystal Moss= Mushroom Moss= Fiery Moss= Gray Moss= Green Moss= Red Illumishroom= Green Illumishroom= Cyan Illumishroom= #sapling.lua Bamboo Sprout= Willow Tree Sapling= Healing Tree Sapling= Apple Tree Sapling= Jungle Tree Sapling= Pine Tree Sapling= Big Tree Sapling= Banana Tree Sapling= Frost Tree Sapling= Mushroom Tree Sapling= Palm Tree Sapling= Redwood Tree Sapling= Orange Tree Sapling= Acacia Tree Sapling= Birch Tree Sapling= Schematic not found= #sealife.lua Seaweed= Blue Coral= Orange Coral= Pink Coral= Green Coral= Sandy= #stairs.lua Crystal Block Stair= Crystal Block Slab= Ice Brick Stair= Ice Brick Slab= Snow Brick Stair= Snow Brick Slab= Dry Dirt Stair= Dry Dirt Slab= Mushroom Trunk Stair= Mushroom Trunk Slab= Mushroom Top Stair= Mushroom Top Slab= Frost Wood Stair= Frost Wood Slab= Healing Wood Stair= Healing Wood Slab= Palm Wood Stair= Palm Wood Slab= Birch Wood Stair= Birch Wood Slab= Banana Wood Stair= Banana Wood Slab= Willow Wood Stair= Willow Wood Slab= Redwood Stair= Redwood Slab= Bamboo Stair= Bamboo Slab= Dry Dirt= Mushroom Trunk= Mushroom Top= Healing Wood= Redwood= #strawberry.lua Strawberry= #water.lua Ice Brick= Snow Brick= #wood.lua Willow Trunk= Willow Wood= Redwood Trunk= Redwood Wood= Frost Tree= Frost Wood= Healing Tree Trunk= Healing Tree Wood= Palm Trunk= Palm Wood= Banana Trunk= Banana Wood= Scorched Tree= Mushroom= Birch Trunk= Birch Wood= Bamboo= ethereal/locale/zh_CN.txt000066400000000000000000000114271411051537200156540ustar00rootroot00000000000000Bone =骨 Bone Meal =骨粉 Crystal Spike =水晶尖 Crystal Ingot =水晶锭 Crystal Block =水晶块 Crystal Sword =水晶剑 Crystal Axe =水晶斧 Crystal Pickaxe =水晶锄 Crystal (soft touch) Shovel =水晶铲 Crystal Gilly Staff =水晶网络人员 Green Dirt =绿土 Dried Dirt =干土 Bamboo Dirt =竹林土 Jungle Dirt =丛林土 Grove Dirt =灌木丛土 Prairie Dirt =草原土 Cold Dirt =冻土 Crystal Dirt =水晶尘 Mushroom Dirt =蘑菇土 Fiery Dirt =枯土 Gray Dirt =灰色的尘土 Red Baked Clay =红色烤粘土 Orange Baked Clay =橙色烤粘土 Grey Baked Clay =灰色烤粘土 Quicksand =流沙 Bamboo Floor =竹地板 Palm Wax =棕榈蜡 Candle =蜡烛 Bowl =碗 Stone Ladder =石梯 Paper Wall =纸墙 Glo Stone =荧光石 Lump of Charcoal =块木炭 Staff of Light =灯柱 Scorched Fence =烧焦的栅栏 Frost Fence =霜木栅栏 Redwood Fence =红杉栅栏 Willow Fence =柳树栅栏 Healing Wood Fence =治疗木栅栏 Palm Fence =棕榈栅栏 Banana Wood Fence =香蕉木栅栏 Mushroom Fence =蘑菇栅栏 Birch Fence =桦树栅栏 Raw Fish =生鱼 Cooked Fish =煮熟的鱼 Sashimi =生鱼片 Worm =蠕虫 Fishing Rod =鱼竿 Baited Fishing Rod =带饵的钓鱼竿 Inventory full, Fish Got Away! =库存满了,鱼逃掉了! Banana =香蕉 Banana Dough =香蕉皮 Orange =橙子 Pine Nuts =松子 Banana Loaf =香蕉面包 Coconut =椰子 Coconut Slice =椰子片 Golden Apple =金苹果 Hearty Stew =丰盛的炖肉 Bucket of Cactus Pulp =仙人掌果肉桶 Scorched Wood Fence Gate =烧焦的木栅栏门 Frost Wood Fence Gate =霜木栅栏门 Redwood Fence Gate =红杉栅栏门 Willow Wood Fence Gate =柳树木栅栏门 Healing Wood Fence Gate =愈合木栅栏门 Palm Wood Fence Gate =棕榈木栅栏门 Banana Wood Fence Gate =香蕉木栅栏门 Mushroom Trunk Fence Gate =蘑菇栅栏门 Birch Wood Fence Gate =白桦木栅栏门 [MOD] Ethereal loaded =(MOD)的加载 Willow Twig =柳树枝 Redwood Leaves =红杉树叶 Orange Leaves =橙子树叶 Banana Leaves =香蕉树叶 Healing Tree Leaves =治疗树叶 Palm Leaves =棕榈叶 Birch Leaves =白桦树叶 Frost Leaves =霜叶子 Bamboo Leaves =竹叶 Mushroom Cap =蘑菇帽 Mushroom Pore =蘑菇孔隙 Bush =灌木 Bush #2 =灌木 #2 Bush #3 =灌木 #3 Mushroom Soup =蘑菇汤 Wild Onion =野生洋葱 Fire Flower =火焰花 Fire Dust =火土 Vine =藤蔓 Light String Vine =荧光藤蔓 Fern =蕨类植物 Fern Tubers =蕨类植物的茎 Fiery Dry Shrub =干枯灌木 Snowy Grass =雪草 Crystal Grass =水晶草 Crystal Moss =水晶苔藓 Mushroom Moss =蘑菇苔藓 Fiery Moss =枯苔藓 Gray Moss =灰色苔藓 Green Moss =绿色的苔藓 Red Illumishroom =红色蘑菇 Green Illumishroom =绿色蘑菇 Cyan Illumishroom =青色蘑菇 Bamboo Sprout =竹笋 Willow Tree Sapling =柳树树苗 Healing Tree Sapling =治疗树树苗 Apple Tree Sapling =苹果树树苗 Jungle Tree Sapling =丛林树树苗 Pine Tree Sapling =松树树苗 Big Tree Sapling =大树树苗 Banana Tree Sapling =香蕉树树苗 Frost Tree Sapling =霜树树苗 Mushroom Tree Sapling =蘑菇树树苗 Palm Tree Sapling =棕榈树树苗 Redwood Tree Sapling =红木树树苗 Orange Tree Sapling =橙树树苗 Acacia Tree Sapling =金合欢树树苗 Birch Tree Sapling =桦树树苗 Schematic not found =没有找到示意图 Seaweed =海藻 Blue Coral =蓝色珊瑚 Orange Coral =橙色珊瑚 Pink Coral =粉色珊瑚 Green Coral =绿色珊瑚 Sandy =沙子 Crystal Block Stair =水晶楼梯 Crystal Block Slab =水晶板 Ice Brick Stair =冰砖楼梯 Ice Brick Slab =冰砖板 Snow Brick Stair =雪砖楼梯 Snow Brick Slab =雪砖板 Dry Dirt Stair =干燥的泥土楼梯 Dry Dirt Slab =干土板 Mushroom Trunk Stair =蘑菇楼梯 Mushroom Trunk Slab =蘑菇板 Mushroom Top Stair =蘑菇上楼梯 Mushroom Top Slab =蘑菇顶部板 Frost Wood Stair =霜木楼梯 Frost Wood Slab =霜木材板 Healing Wood Stair =治疗木楼梯 Healing Wood Slab =治疗木板 Palm Wood Stair =棕榈木楼梯 Palm Wood Slab =棕榈木板 Birch Wood Stair =白桦木楼梯 Birch Wood Slab =白桦木板 Banana Wood Stair =香蕉木楼梯 Banana Wood Slab =香蕉木板 Willow Wood Stair =柳树木楼梯 Willow Wood Slab =柳树木板 Redwood Stair =红木楼梯 Redwood Slab =红杉板 Bamboo Stair =竹楼梯 Bamboo Slab =竹板 Dry Dirt =干燥的泥土 Mushroom Trunk =蘑菇干 Mushroom Top =蘑菇顶部 Healing Wood =治疗木 Redwood =红木 Strawberry =草莓 Ice Brick =冰砖 Snow Brick =雪砖 Willow Trunk =柳树树干 Willow Wood =柳树木 Redwood Trunk =红木箱子 Redwood Wood =红木木材 Frost Tree =霜树 Frost Wood =霜木 Healing Tree Trunk =治疗树干 Healing Tree Wood =治疗树木材 Palm Trunk =棕榈树干 Palm Wood =棕榈木 Banana Trunk =香蕉树干 Banana Wood =香蕉木 Scorched Tree =烧焦的树 Mushroom =蘑菇 Birch Trunk =桦树树干 Birch Wood =白桦木材 Bamboo =竹子ethereal/lucky_block.lua000066400000000000000000000076571411051537200156710ustar00rootroot00000000000000 -- add lucky blocks if minetest.get_modpath("lucky_block") then local epath = minetest.get_modpath("ethereal") .. "/schematics/" lucky_block:add_schematics({ {"pinetree", ethereal.pinetree, {x = 3, y = 0, z = 3}}, {"palmtree", ethereal.palmtree, {x = 4, y = 0, z = 4}}, {"bananatree", ethereal.bananatree, {x = 3, y = 0, z = 3}}, {"orangetree", ethereal.orangetree, {x = 2, y = 0, z = 2}}, {"birchtree", ethereal.birchtree, {x = 2, y = 0, z = 2}} }) lucky_block:add_blocks({ {"dro", {"ethereal:firethorn"}, 3}, {"dro", {"ethereal:firethorn_jelly"}, 3}, {"nod", "ethereal:crystal_spike", 1}, {"sch", "pinetree", 0, false}, {"dro", {"ethereal:orange"}, 10}, {"sch", "appletree", 0, false}, {"dro", {"ethereal:strawberry"}, 10}, {"sch", "bananatree", 0, false}, {"sch", "orangetree", 0, false}, {"dro", {"ethereal:banana"}, 10}, {"sch", "acaciatree", 0, false}, {"dro", {"ethereal:golden_apple"}, 3}, {"sch", "palmtree", 0, false}, {"dro", {"ethereal:tree_sapling"}, 5}, {"dro", {"ethereal:orange_tree_sapling"}, 5}, {"dro", {"ethereal:banana_tree_sapling"}, 5}, {"dro", {"ethereal:willow_sapling"} ,5}, {"dro", {"ethereal:mushroom_sapling"} ,5}, {"dro", {"ethereal:palm_sapling"} ,5}, {"dro", {"ethereal:flight_potion"}, 1}, {"dro", {"ethereal:birch_sapling"} ,5}, {"dro", {"ethereal:redwood_sapling"} ,1}, {"dro", {"ethereal:prairie_dirt"}, 10}, {"dro", {"ethereal:grove_dirt"}, 10}, {"fal", {"default:lava_source", "default:lava_source", "default:lava_source", "default:lava_source", "default:lava_source"}, 1, true, 4}, {"dro", {"ethereal:cold_dirt"}, 10}, {"dro", {"ethereal:mushroom_dirt"}, 10}, {"dro", {"ethereal:fiery_dirt"}, 10}, {"dro", {"ethereal:axe_crystal"}}, {"nod", "ethereal:fire_flower", 1}, {"dro", {"ethereal:sword_crystal"}}, {"dro", {"ethereal:pick_crystal"}}, {"sch", "birchtree", 0, false}, {"dro", {"ethereal:fish_raw"}}, {"dro", {"ethereal:shovel_crystal"}}, {"dro", {"ethereal:fishing_rod_baited"}}, {"exp"}, {"dro", {"ethereal:fire_dust"}, 2}, {"exp", 4}, {"dro", {"ethereal:crystal_gilly_staff"}}, {"dro", {"ethereal:light_staff"}}, {"nod", "default:chest", 0, { {name = "ethereal:birch_sapling", max = 10}, {name = "ethereal:palm_sapling", max = 10}, {name = "ethereal:orange_tree_sapling", max = 10}, {name = "ethereal:redwood_sapling", max = 10}, {name = "ethereal:bamboo_sprout", max = 10}, {name = "ethereal:banana_tree_sapling", max = 10}, {name = "ethereal:mushroom_sapling", max = 10}, {name = "ethereal:frost_tree_sapling", max = 10}, {name = "ethereal:sakura_sapling", max = 10}, {name = "ethereal:willow_sapling", max = 10}, {name = "ethereal:lemon_tree_sapling", max = 10}, {name = "ethereal:olive_tree_sapling", max = 10} }}, {"flo", 5, {"ethereal:blue_marble_tile"}, 2}, {"dro", {"ethereal:blue_marble", "ethereal:blue_marble_tile"}, 8}, {"dro", {"ethereal:etherium_ore"}, 5}, {"nod", "default:chest", 0, { {name = "ethereal:fish_bluefin", max = 7}, {name = "ethereal:fish_blueram", max = 7}, {name = "ethereal:fish_catfish", max = 7}, {name = "ethereal:fish_clownfish", max = 7}, {name = "ethereal:fish_pike", max = 7}, {name = "ethereal:fish_flathead", max = 7}, {name = "ethereal:fish_plaice", max = 7}, {name = "ethereal:fish_pufferfish", max = 5}, {name = "ethereal:fish_salmon", max = 7}, {name = "ethereal:fish_cichlid", max = 7}, {name = "ethereal:fish_trout", max =7}, {name = "ethereal:fish_angler", max = 7}, {name = "ethereal:fish_piranha", max = 7}, {name = "ethereal:fishing_rod", max = 1}, {name = "ethereal:worm", max = 10} }}, {"dro", {"ethereal:lemon"}, 9} }) if minetest.get_modpath("3d_armor") then lucky_block:add_blocks({ {"dro", {"3d_armor:helmet_crystal"}}, {"dro", {"3d_armor:chestplate_crystal"}}, {"dro", {"3d_armor:leggings_crystal"}}, {"dro", {"3d_armor:boots_crystal"}}, {"lig"} }) end if minetest.get_modpath("shields") then lucky_block:add_blocks({ {"dro", {"shields:shield_crystal"}}, {"exp"} }) end end -- END IF ethereal/mod.conf000066400000000000000000000003401411051537200142710ustar00rootroot00000000000000name = ethereal depends = default, flowers optional_depends = stairs, doors, farming, bakedclay, moreblocks, intllib, lucky_block, toolranks description = Ethereal mod uses the v7 mapgen to add many new biomes to the world. ethereal/mushroom.lua000066400000000000000000000012141411051537200152200ustar00rootroot00000000000000 local S = ethereal.intllib -- mushroom soup (Heals 1 heart) minetest.register_craftitem("ethereal:mushroom_soup", { description = S("Mushroom Soup"), inventory_image = "ethereal_mushroom_soup.png", groups = {drink = 1}, on_use = minetest.item_eat(5, "ethereal:bowl") }) minetest.register_craft({ output = "ethereal:mushroom_soup", recipe = { {"group:food_mushroom"}, {"group:food_mushroom"}, {"group:food_bowl"} } }) -- 4x red mushrooms make mushroom block minetest.register_craft({ output = "ethereal:mushroom", recipe = { {"flowers:mushroom_red", "flowers:mushroom_red"}, {"flowers:mushroom_red", "flowers:mushroom_red"} } }) ethereal/onion.lua000066400000000000000000000051371411051537200145010ustar00rootroot00000000000000 local S = ethereal.intllib -- wild onion minetest.register_craftitem("ethereal:wild_onion_plant", { description = S("Wild Onion"), inventory_image = "ethereal_wild_onion.png", wield_image = "ethereal_wild_onion.png", groups = {food_onion = 1, flammable = 2}, on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1") end, on_use = minetest.item_eat(2), }) -- Define Onion growth stages local crop_def = { drawtype = "plantlike", tiles = {"ethereal_wild_onion_1.png"}, paramtype = "light", sunlight_propagates = true, walkable = false, buildable_to = true, drop = "", selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} }, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, growing = 1, not_in_creative_inventory = 1 }, sounds = default.node_sound_leaves_defaults(), } --stage 1 minetest.register_node("ethereal:onion_1", table.copy(crop_def)) --stage 2 crop_def.tiles = {"ethereal_wild_onion_2.png"} minetest.register_node("ethereal:onion_2", table.copy(crop_def)) --stage 3 crop_def.tiles = {"ethereal_wild_onion_3.png"} minetest.register_node("ethereal:onion_3", table.copy(crop_def)) --stage 4 crop_def.tiles = {"ethereal_wild_onion_4.png"} crop_def.drop = { items = { {items = {"ethereal:wild_onion_plant"}, rarity = 1}, {items = {"ethereal:wild_onion_plant 2"}, rarity = 3}, } } minetest.register_node("ethereal:onion_4", table.copy(crop_def)) --stage 5 crop_def.tiles = {"ethereal_wild_onion_5.png"} crop_def.groups.growing = nil crop_def.drop = { items = { {items = {"ethereal:wild_onion_plant 2"}, rarity = 1}, {items = {"ethereal:wild_onion_plant 3"}, rarity = 2}, } } minetest.register_node("ethereal:onion_5", table.copy(crop_def)) -- growing routine if farming redo isn't present if not farming or not farming.mod or farming.mod ~= "redo" then minetest.register_abm({ label = "Ethereal grow onion", nodenames = {"ethereal:onion_1", "ethereal:onion_2", "ethereal:onion_3", "ethereal:onion_4"}, neighbors = {"farming:soil_wet"}, interval = 11, chance = 20, catch_up = false, action = function(pos, node) -- are we on wet soil? pos.y = pos.y - 1 if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then return end pos.y = pos.y + 1 -- do we have enough light? local light = minetest.get_node_light(pos) if not light or light < 13 then return end -- grow to next stage local num = node.name:split("_")[2] node.name = "ethereal:onion_" .. tonumber(num + 1) minetest.swap_node(pos, node) end }) end -- END IF ethereal/ores.lua000066400000000000000000000042351411051537200143250ustar00rootroot00000000000000 -- Baked Clay (mesa biome is between 1 and 71) local add_stratum = function(y_min, y_max, node) minetest.register_ore({ ore_type = "stratum", ore = node, wherein = {"bakedclay:orange"}, clust_scarcity = 1, y_max = y_max, y_min = y_min, biomes = {"mesa"} }) end add_stratum(5, 10, "bakedclay:red") add_stratum(15, 20, "bakedclay:grey") add_stratum(25, 30, "bakedclay:red") add_stratum(35, 40, "bakedclay:grey") add_stratum(45, 50, "bakedclay:red") add_stratum(55, 60, "bakedclay:grey") local add_ore = function(a, b, c, d, e, f, g) minetest.register_ore({ ore_type = "scatter", ore = a, wherein = b, clust_scarcity = c, clust_num_ores = d, clust_size = e, y_min = f, y_max = g }) end -- Coal add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16) -- Iron add_ore("default:stone_with_iron", "default:desert_stone", 9*9*9, 5, 3, -63, -16) add_ore("default:stone_with_iron", "default:desert_stone", 24*24*24, 27, 6, -31000, -64) --Mese add_ore("default:stone_with_mese", "default:desert_stone", 14*14*14, 5, 3, -31000, -256) -- Gold add_ore("default:stone_with_gold", "default:desert_stone", 15*15*15, 3, 2, -255, -64) add_ore("default:stone_with_gold", "default:desert_stone", 13*13*13, 5, 3, -31000, -256) -- Diamond add_ore("default:stone_with_diamond", "default:desert_stone", 17*17*17, 4, 3, -255, -128) add_ore("default:stone_with_diamond", "default:desert_stone", 15*15*15, 4, 3, -31000, -256) -- Copper add_ore("default:stone_with_copper", "default:desert_stone", 9*9*9, 5, 3, -31000, -64) -- Coral Sand add_ore("ethereal:sandy", "default:sand", 10*10*10, 24, 4, -100, -10) -- Etherium minetest.register_ore({ ore_type = "scatter", ore = "ethereal:etherium_ore", wherein = "default:desert_stone", clust_scarcity = 10 * 10 * 10, clust_num_ores = 1, clust_size = 1, y_min = 5, y_max = 40, biomes = {"caves"} }) -- Etherium in floatlands minetest.register_ore({ ore_type = "scatter", ore = "ethereal:stone_with_etherium_ore", wherein = "default:stone", clust_scarcity = 9 * 9 * 9, clust_num_ores = 6, clust_size = 2, y_min = 1025, y_max = 31000 }) ethereal/plantlife.lua000066400000000000000000000212421411051537200153300ustar00rootroot00000000000000 local S = ethereal.intllib -- Firethorn (poisonous when eaten raw, must be crushed and washed in flowing water 1st) minetest.register_node("ethereal:firethorn", { description = S("Firethorn Shrub"), drawtype = "plantlike", tiles = {"ethereal_firethorn.png"}, inventory_image = "ethereal_firethorn.png", wield_image = "ethereal_firethorn.png", paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, groups = {snappy = 3, flora = 1, attached_node = 1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16} } }) -- Fire Flower minetest.register_node("ethereal:fire_flower", { description = S("Fire Flower"), drawtype = "plantlike", tiles = { "ethereal_fire_flower.png" }, inventory_image = "ethereal_fire_flower.png", wield_image = "ethereal_fire_flower.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, buildable_to = true, damage_per_second = 2, groups = {snappy = 1, oddly_breakable_by_hand = 3, igniter = 2}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 1 / 2, 5 / 16} }, on_punch = function(pos, node, puncher) puncher:punch(puncher, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 2} }, nil) end }) minetest.register_craft({ type = "fuel", recipe = "ethereal:fire_flower", burntime = 20 }) -- Fire Dust minetest.register_craftitem("ethereal:fire_dust", { description = S("Fire Dust"), inventory_image = "ethereal_fire_dust.png" }) minetest.register_craft({ output = "ethereal:fire_dust 2", recipe = { {"ethereal:fire_flower"} } }) minetest.register_craft({ type = "fuel", recipe = "ethereal:fire_dust", burntime = 10 }) -- vines minetest.register_node("ethereal:vine", { description = S("Vine"), drawtype = "signlike", tiles = {"ethereal_vine.png"}, inventory_image = "ethereal_vine.png", wield_image = "ethereal_vine.png", paramtype = "light", paramtype2 = "wallmounted", walkable = false, climbable = true, is_ground_content = false, selection_box = { type = "wallmounted" }, groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2}, legacy_wallmounted = true, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft({ output = "ethereal:vine 2", recipe = { {"group:leaves", "", "group:leaves"}, {"", "group:leaves", ""}, {"group:leaves", "", "group:leaves"} } }) -- light strings (glowing vine) minetest.register_node("ethereal:lightstring", { description = S("Light String Vine"), drawtype = "signlike", tiles = {"ethereal_lightstring.png"}, inventory_image = "ethereal_lightstring.png", wield_image = "ethereal_lightstring.png", paramtype = "light", paramtype2 = "wallmounted", light_source = 10, walkable = false, climbable = true, is_ground_content = false, selection_box = { type = "wallmounted" }, groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2}, legacy_wallmounted = true, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft({ output = "ethereal:lightstring 8", recipe = { {"ethereal:vine", "ethereal:vine", "ethereal:vine"}, {"ethereal:vine", "ethereal:fire_dust", "ethereal:vine"}, {"ethereal:vine", "ethereal:vine", "ethereal:vine"} } }) -- Fern (boston) minetest.register_node("ethereal:fern", { description = S("Fern"), drawtype = "plantlike", visual_scale = 1.4, tiles = {"ethereal_fern.png"}, inventory_image = "ethereal_fern.png", wield_image = "ethereal_fern.png", paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, drop = { max_items = 1, items = { {items = {"ethereal:fern_tubers"}, rarity = 6}, {items = {"ethereal:fern"}} } }, groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 2}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0.67, 5 / 16} } }) -- Boston Ferns sometimes drop edible Tubers (heals 1/2 heart when eaten) minetest.register_craftitem("ethereal:fern_tubers", { description = S("Fern Tubers"), inventory_image = "ethereal_fern_tubers.png", groups = {food_tuber = 1, flammable = 2}, on_use = minetest.item_eat(1) }) -- Red Shrub (not flammable) minetest.register_node("ethereal:dry_shrub", { description = S("Fiery Dry Shrub"), drawtype = "plantlike", tiles = {"ethereal_dry_shrub.png"}, inventory_image = "ethereal_dry_shrub.png", wield_image = "ethereal_dry_shrub.png", paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, groups = {snappy = 3, flora = 1, attached_node = 1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16} } }) -- Grey Shrub (not Flammable - too cold to burn) minetest.register_node("ethereal:snowygrass", { description = S("Snowy Grass"), drawtype = "plantlike", visual_scale = 0.9, tiles = {"ethereal_snowygrass.png"}, inventory_image = "ethereal_snowygrass.png", wield_image = "ethereal_snowygrass.png", paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, groups = {snappy = 3, flora = 1, attached_node = 1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16} } }) -- Crystal Shrub (not Flammable - too cold to burn) minetest.register_node("ethereal:crystalgrass", { description = S("Crystal Grass"), drawtype = "plantlike", visual_scale = 0.9, tiles = {"ethereal_crystalgrass.png"}, inventory_image = "ethereal_crystalgrass.png", wield_image = "ethereal_crystalgrass.png", paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, groups = {snappy = 3, flora = 1, attached_node = 1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16} } }) -- Define Moss Types (Has grass textures on all sides) local add_moss = function(typ, descr, texture, receipe_item) minetest.register_node("ethereal:" .. typ .. "_moss", { description = S(descr .. " Moss"), tiles = {texture}, groups = {crumbly = 3}, sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.4}}) }) minetest.register_craft({ type = "shapeless", output = "ethereal:" .. typ .. "_moss", recipe = {"default:dirt", receipe_item} }) end add_moss( "crystal", "Crystal", "ethereal_grass_crystal_top.png", "ethereal:frost_leaves") add_moss( "mushroom", "Mushroom", "ethereal_grass_mushroom_top.png", "ethereal:mushroom") add_moss( "fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:dry_shrub") add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass") add_moss( "green", "Green", "default_grass.png", "default:jungleleaves") -- Illuminated Cave Shrooms (Red, Green and Blue) minetest.register_node("ethereal:illumishroom", { description = S("Red Illumishroom"), drawtype = "plantlike", tiles = {"ethereal_illumishroom_red.png"}, inventory_image = "ethereal_illumishroom_red.png", wield_image = "ethereal_illumishroom_red.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1, flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16} } }) minetest.register_node("ethereal:illumishroom2", { description = S("Green Illumishroom"), drawtype = "plantlike", tiles = {"ethereal_illumishroom_green.png"}, inventory_image = "ethereal_illumishroom_green.png", wield_image = "ethereal_illumishroom_green.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1, flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16} } }) minetest.register_node("ethereal:illumishroom3", { description = S("Cyan Illumishroom"), drawtype = "plantlike", tiles = {"ethereal_illumishroom_cyan.png"}, inventory_image = "ethereal_illumishroom_cyan.png", wield_image = "ethereal_illumishroom_cyan.png", paramtype = "light", light_source = 5, sunlight_propagates = true, walkable = false, groups = {dig_immediate = 3, attached_node = 1, flammable = 3}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16} } }) ethereal/plantpack.lua000066400000000000000000000115151411051537200153310ustar00rootroot00000000000000 --= Register Biome Decoration Using Plants Mega Pack Lite --= Desert Biome -- Cactus minetest.register_decoration({ deco_type = "simple", place_on = {"default:desert_sand", "default:sandstone"}, sidelen = 16, fill_ratio = 0.005, biomes = {"desert", "sandstone"}, decoration = { "xanadu:cactus_echinocereus", "xanadu:cactus_matucana", "xanadu:cactus_baseball", "xanadu:cactus_golden" } }) -- Desert Plants minetest.register_decoration({ deco_type = "simple", place_on = {"default:desert_sand", "default:sandstone", "default:sand"}, sidelen = 16, fill_ratio = 0.004, biomes = {"desert", "sandstone"}, decoration = { "xanadu:desert_kangaroo", "xanadu:desert_brittle", "xanadu:desert_ocotillo", "xanadu:desert_whitesage" } }) --= Prairie Biome -- Grass minetest.register_decoration({ deco_type = "simple", place_on = {"ethereal:prairie_dirt", "default:dirt_with_grass"}, sidelen = 16, fill_ratio = 0.005, biomes = {"prairie", "deciduous_forest", "grassytwo"}, decoration = { "xanadu:grass_prairie", "xanadu:grass_cord", "xanadu:grass_wheatgrass", "xanadu:desert_whitesage" } }) -- Flowers minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:prairie_grass", "default:dirt_with_grass", "ethereal:grove_dirt", "ethereal:bamboo_dirt" }, sidelen = 16, fill_ratio = 0.005, biomes = {"prairie", "deciduous_forest", "grassytwo", "bamboo"}, decoration = { "xanadu:flower_jacobsladder", "xanadu:flower_thistle", "xanadu:flower_wildcarrot" } }) minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:prairie_grass", "default:dirt_with_grass", "ethereal:grove_dirt" }, sidelen = 16, fill_ratio = 0.005, biomes = {"prairie", "deciduous_forest", "grassytwo", "grove"}, decoration = { "xanadu:flower_delphinium", "xanadu:flower_celosia", "xanadu:flower_daisy", "xanadu:flower_bluerose" } }) -- Shrubs minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:prairie_grass", "default:dirt_with_grass", "ethereal:grove_dirt", "ethereal:jungle_grass", "ethereal:gray_dirt", "default:dirt_with_rainforest_litter" }, sidelen = 16, fill_ratio = 0.005, biomes = { "prairie", "deciduous_forest", "grassytwo", "grove", "junglee", "grayness", "jumble" }, decoration = {"xanadu:shrub_kerria", "xanadu:shrub_spicebush"} }) --= Jungle Biome minetest.register_decoration({ deco_type = "simple", place_on = {"ethereal:jungle_dirt", "default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, sidelen = 16, fill_ratio = 0.007, biomes = {"junglee", "jumble"}, decoration = { "xanadu:rainforest_guzmania", "xanadu:rainforest_devil", "xanadu:rainforest_lazarus", "xanadu:rainforest_lollipop", "xanadu:mushroom_woolly" } }) --= Cold Biomes minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_snow", "ethereal:cold_dirt", "ethereal:gray_dirt" }, sidelen = 16, fill_ratio = 0.005, biomes = {"coniferous_forest", "taiga", "grayness"}, decoration = { "xanadu:mountain_edelweiss", "xanadu:mountain_armeria", "xanadu:mountain_bellflower", "xanadu:mountain_willowherb", "xanadu:mountain_bistort" } }) --= Mushroom Biome minetest.register_decoration({ deco_type = "simple", place_on = {"ethereal:mushroom_dirt"}, sidelen = 16, fill_ratio = 0.005, biomes = {"mushroom"}, decoration = { "xanadu:mushroom_powderpuff", "xanadu:mushroom_chanterelle", "xanadu:mushroom_parasol" } }) --= Lakeside minetest.register_decoration({ deco_type = "simple", place_on = {"default:sand", "default:dirt_with_grass"}, sidelen = 16, fill_ratio = 0.015, biomes = { "sandclay", "deciduous_forest_ocean", "grassy", "grassytwo", "jumble", "swamp"}, decoration = { "xanadu:wetlands_cattails", "xanadu:wetlands_pickerel", "xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle" }, spawn_by = "default:water_source", num_spawn_by = 1 }) --= Harsh Biomes minetest.register_decoration({ deco_type = "simple", place_on = { "ethereal:mushroom_dirt", "default:dirt_with_grass", "ethereal:gray_dirt", "ethereal:cold_dirt", "ethereal:dirt_with_snow", "ethereal:jungle_dirt", "ethereal:prairie_dirt", "ethereal:grove_dirt", "ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand", "default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt", "default:dirt_with_rainforest_litter" }, sidelen = 16, fill_ratio = 0.004, biomes = { "mushroom", "prairie", "grayness", "plains", "desert", "junglee", "deciduous_forest", "grassytwo", "jumble", "coniferous_forest", "taiga", "fiery", "mesa", "bamboo" }, decoration = {"xanadu:spooky_thornbush", "xanadu:spooky_baneberry"} }) --= Poppy's growing in Clearing Biome in memory of RealBadAngel minetest.register_decoration({ deco_type = "simple", place_on = { "default:dirt_with_grass", }, sidelen = 16, fill_ratio = 0.004, biomes = {"grassland"}, decoration = {"xanadu:poppy"} }) ethereal/sapling.lua000066400000000000000000000173261411051537200150170ustar00rootroot00000000000000 local S = ethereal.intllib -- Bamboo Sprout minetest.register_node("ethereal:bamboo_sprout", { description = S("Bamboo Sprout"), drawtype = "plantlike", tiles = {"ethereal_bamboo_sprout.png"}, inventory_image = "ethereal_bamboo_sprout.png", wield_image = "ethereal_bamboo_sprout.png", paramtype = "light", sunlight_propagates = true, walkable = false, groups = { food_bamboo_sprout = 1, snappy = 3, attached_node = 1, flammable = 2, dig_immediate = 3, ethereal_sapling = 1, sapling = 1, }, sounds = default.node_sound_defaults(), selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0, 4 / 16} }, on_use = minetest.item_eat(2), grown_height = 11 }) -- Register Saplings local register_sapling = function(name, desc, texture, height) minetest.register_node(name .. "_sapling", { description = S(desc .. " Tree Sapling"), drawtype = "plantlike", tiles = {texture .. ".png"}, inventory_image = texture .. ".png", wield_image = texture .. ".png", paramtype = "light", sunlight_propagates = true, is_ground_content = false, walkable = false, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} }, groups = { snappy = 2, dig_immediate = 3, flammable = 2, ethereal_sapling = 1, attached_node = 1, sapling = 1 }, sounds = default.node_sound_leaves_defaults(), grown_height = height }) end register_sapling("ethereal:willow", "Willow", "ethereal_willow_sapling", 14) register_sapling("ethereal:yellow_tree", "Healing", "ethereal_yellow_tree_sapling", 19) register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree_sapling", 7) register_sapling("ethereal:banana_tree", "Banana", "ethereal_banana_tree_sapling", 8) register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree_sapling", 19) register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom_sapling", 11) register_sapling("ethereal:palm", "Palm", "moretrees_palm_sapling", 9) register_sapling("ethereal:giant_redwood", "Giant Redwood", "ethereal_giant_redwood_sapling", 33) register_sapling("ethereal:redwood", "Redwood", "ethereal_redwood_sapling", 21) register_sapling("ethereal:orange_tree", "Orange", "ethereal_orange_tree_sapling", 6) register_sapling("ethereal:birch", "Birch", "moretrees_birch_sapling", 7) register_sapling("ethereal:sakura", "Sakura", "ethereal_sakura_sapling", 10) register_sapling("ethereal:lemon_tree", "Lemon", "ethereal_lemon_tree_sapling", 7) register_sapling("ethereal:olive_tree", "Olive", "ethereal_olive_tree_sapling", 10) local add_tree = function (pos, ofx, ofy, ofz, schem, replace) -- check for schematic if not schem then print (S("Schematic not found")) return end -- remove sapling and place schematic minetest.swap_node(pos, {name = "air"}) minetest.place_schematic( {x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz}, schem, 0, replace, false) end local path = minetest.get_modpath("ethereal") .. "/schematics/" -- grow tree functions function ethereal.grow_yellow_tree(pos) add_tree(pos, 4, 0, 4, ethereal.yellowtree) end function ethereal.grow_big_tree(pos) add_tree(pos, 4, 0, 4, ethereal.bigtree) end function ethereal.grow_banana_tree(pos) if math.random(3) == 1 and minetest.find_node_near(pos, 1, {"farming:soil_wet"}) then add_tree(pos, 3, 0, 3, ethereal.bananatree, {{"ethereal:banana", "ethereal:banana_bunch"}}) else add_tree(pos, 3, 0, 3, ethereal.bananatree) end end function ethereal.grow_frost_tree(pos) add_tree(pos, 4, 0, 4, ethereal.frosttrees) end function ethereal.grow_mushroom_tree(pos) add_tree(pos, 4, 0, 4, ethereal.mushroomone) end function ethereal.grow_palm_tree(pos) add_tree(pos, 4, 0, 4, ethereal.palmtree) end function ethereal.grow_willow_tree(pos) add_tree(pos, 5, 0, 5, ethereal.willow) end function ethereal.grow_redwood_tree(pos) add_tree(pos, 4, 0, 4, ethereal.redwood_small_tree) end function ethereal.grow_giant_redwood_tree(pos) add_tree(pos, 7, 0, 7, ethereal.redwood_tree) end function ethereal.grow_orange_tree(pos) add_tree(pos, 2, 0, 2, ethereal.orangetree) end function ethereal.grow_bamboo_tree(pos) add_tree(pos, 1, 0, 1, ethereal.bambootree) end function ethereal.grow_birch_tree(pos) add_tree(pos, 2, 0, 2, ethereal.birchtree) end function ethereal.grow_sakura_tree(pos) if math.random(10) == 1 then add_tree(pos, 4, 0, 3, ethereal.sakura_tree, {{"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}}) else add_tree(pos, 4, 0, 3, ethereal.sakura_tree) end end function ethereal.grow_lemon_tree(pos) add_tree(pos, 2, 0, 2, ethereal.lemontree) end function ethereal.grow_olive_tree(pos) add_tree(pos, 3, 0, 3, ethereal.olivetree) end -- check if sapling has enough height room to grow local enough_height = function(pos, height) local nod = minetest.line_of_sight( {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x, y = pos.y + height, z = pos.z}) if not nod then return false -- obstructed else return true -- can grow end end local grow_sapling = function(pos, node) local under = minetest.get_node({ x = pos.x, y = pos.y - 1, z = pos.z }).name if not minetest.registered_nodes[node.name] then return end local height = minetest.registered_nodes[node.name].grown_height -- do we have enough height to grow sapling into tree? if not height or not enough_height(pos, height) then return end -- Check if Ethereal Sapling is growing on correct substrate if node.name == "ethereal:yellow_tree_sapling" and minetest.get_item_group(under, "soil") > 0 then ethereal.grow_yellow_tree(pos) elseif node.name == "ethereal:big_tree_sapling" and under == "default:dirt_with_grass" then ethereal.grow_big_tree(pos) elseif node.name == "ethereal:banana_tree_sapling" and under == "ethereal:grove_dirt" then ethereal.grow_banana_tree(pos) elseif node.name == "ethereal:frost_tree_sapling" and under == "ethereal:crystal_dirt" then ethereal.grow_frost_tree(pos) elseif node.name == "ethereal:mushroom_sapling" and under == "ethereal:mushroom_dirt" then ethereal.grow_mushroom_tree(pos) elseif node.name == "ethereal:palm_sapling" and under == "default:sand" then ethereal.grow_palm_tree(pos) elseif node.name == "ethereal:willow_sapling" and under == "ethereal:gray_dirt" then ethereal.grow_willow_tree(pos) elseif node.name == "ethereal:redwood_sapling" and under == "default:dirt_with_dry_grass" then ethereal.grow_redwood_tree(pos) elseif node.name == "ethereal:giant_redwood_sapling" and under == "default:dirt_with_dry_grass" then ethereal.grow_giant_redwood_tree(pos) elseif node.name == "ethereal:orange_tree_sapling" and under == "ethereal:prairie_dirt" then ethereal.grow_orange_tree(pos) elseif node.name == "ethereal:bamboo_sprout" and under == "ethereal:bamboo_dirt" then ethereal.grow_bamboo_tree(pos) elseif node.name == "ethereal:birch_sapling" and under == "default:dirt_with_grass" then ethereal.grow_birch_tree(pos) elseif node.name == "ethereal:sakura_sapling" and under == "ethereal:bamboo_dirt" then ethereal.grow_sakura_tree(pos) elseif node.name == "ethereal:olive_tree_sapling" and under == "ethereal:grove_dirt" then ethereal.grow_olive_tree(pos) elseif node.name == "ethereal:lemon_tree_sapling" and under == "ethereal:grove_dirt" then ethereal.grow_lemon_tree(pos) end end -- Grow saplings minetest.register_abm({ label = "Ethereal grow sapling", nodenames = {"group:ethereal_sapling"}, interval = 10, chance = 50, catch_up = false, action = function(pos, node) local light_level = minetest.get_node_light(pos) or 0 if light_level < 13 then return end grow_sapling(pos, node) end }) -- 2x redwood saplings make 1x giant redwood sapling minetest.register_craft({ output = "ethereal:giant_redwood_sapling", recipe = {{"ethereal:redwood_sapling", "ethereal:redwood_sapling"}} }) ethereal/schematics/000077500000000000000000000000001411051537200147715ustar00rootroot00000000000000ethereal/schematics/bamboo_tree.lua000066400000000000000000000017271411051537200177610ustar00rootroot00000000000000 local _ = {name = "air", param1 = 000} local B = {name = "ethereal:bamboo", param1 = 255} local L = {name = "ethereal:bamboo_leaves", param1 = 255} local l = {name = "ethereal:bamboo_leaves", param1 = 100} ethereal.bambootree = { size = {x = 3, y = 18, z = 3}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, {ypos = 2, prob = 127}, {ypos = 3, prob = 127}, }, data = { _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, l,L,l, _,L,_, _,_,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, _,B,_, l,B,l, _,L,_, _,l,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, _,_,_, l,L,l, _,L,_, _,_,_, } } if ethereal.papyruswalk == true then minetest.override_item("default:papyrus", { walkable = true, sunlight_propagates = true }) end ethereal/schematics/banana_tree.lua000066400000000000000000000025531411051537200177400ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local T = {name = "ethereal:banana_trunk", param1 = 255} local L = {name = "ethereal:bananaleaves", param1 = 255} local l = {name = "ethereal:bananaleaves", param1 = 180} local B = {name = "ethereal:banana", param1 = 255} local b = {name = "ethereal:banana", param1 = 070} ethereal.bananatree = { size = {x = 7, y = 8, z = 7}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, {ypos = 2, prob = 127} }, data = { _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,l,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,l,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,b,_,_,_, _,_,_,B,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,T,_,_,_, _,_,_,T,_,_,_, _,_,_,T,_,_,_, _,_,_,T,_,_,_, _,_,b,T,b,_,_, _,_,B,T,B,_,_, _,L,L,L,L,L,_, l,l,_,L,_,l,l, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,b,_,_,_, _,_,_,B,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,_,_,l,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,l,_,_,_, } } ethereal/schematics/bigtree.lua000066400000000000000000000033521411051537200171200ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local L = {name = "default:leaves", prob = 255} local T = {name = "default:tree", prob = 255} local t = {name = "default:tree", prob = 127} ethereal.bigtree = { size = {x = 9, y = 8, z = 9}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,t,t,_,t,t,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,t,t,t,t,t,t,t,_, _,_,_,t,_,t,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,t,t,t,T,t,t,t,_, _,_,t,t,T,t,t,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,L,L,L,T,L,L,L,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,t,T,T,T,t,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, L,L,L,L,T,L,L,L,L, _,L,L,L,T,L,L,L,_, _,_,L,L,L,L,L,_,_, _,_,_,_,_,_,_,_,_, _,t,t,t,T,t,t,t,_, _,_,t,t,T,t,t,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,L,L,L,T,L,L,L,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,t,t,t,t,t,t,t,_, _,_,_,t,_,t,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,t,t,_,t,t,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, } } ethereal/schematics/birch_tree.lua000066400000000000000000000014141411051537200176020ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local T = {name = "ethereal:birch_trunk", param1 = 255} local L = {name = "ethereal:birch_leaves", param1 = 255} local l = {name = "ethereal:birch_leaves", param1 = 150} ethereal.birchtree = { size = {x = 5, y = 7, z = 5}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 3, prob = 127}, }, data = { _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, l,L,L,L,l, l,L,L,L,l, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, L,L,L,L,L, L,L,L,L,L, _,l,L,l,_, _,_,L,_,_, _,_,T,_,_, _,_,T,_,_, _,_,T,_,_, L,L,T,L,L, L,L,T,L,L, _,L,T,L,_, _,L,L,L,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, L,L,L,L,L, L,L,L,L,L, _,l,L,l,_, _,_,L,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, l,L,L,L,l, l,L,L,L,l, _,_,_,_,_, _,_,_,_,_, } } ethereal/schematics/bush.lua000066400000000000000000000007171411051537200164420ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local B = {name = "ethereal:bush", param1 = 255} local b = {name = "ethereal:bush", param1 = 100} ethereal.bush = { size = {x = 5, y = 3, z = 5}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 2, prob = 127}, }, data = { b,B,B,B,b, _,_,_,_,_, _,_,_,_,_, B,B,B,B,B, _,b,B,b,_, _,_,_,_,_, B,B,B,B,B, _,B,B,B,_, _,_,b,_,_, B,B,B,B,B, _,b,B,b,_, _,_,_,_,_, b,B,B,B,b, _,_,_,_,_, _,_,_,_,_, } } ethereal/schematics/corals.mts000066400000000000000000000002531411051537200170010ustar00rootroot00000000000000MTSM?airdefault:coral_orangedefault:coral_browndefault:coral_skeletonx !C ?uߋbRFuo#qUfj3]R/r5&cԱφdSfz`2S&da)Eethereal/schematics/frosttrees.lua000066400000000000000000000062161411051537200177010ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local l = {name = "ethereal:frost_leaves", prob = 255} local t = {name = "ethereal:frost_tree", prob = 255} ethereal.frosttrees = { size = {x = 8, y = 19, z = 8}, yslice_prob = { {ypos = 0, prob = 127}, -- trunk {ypos = 1, prob = 127}, {ypos = 2, prob = 127}, {ypos = 3, prob = 127}, {ypos = 4, prob = 127}, {ypos = 5, prob = 127}, {ypos = 13, prob = 127}, -- leaves {ypos = 15, prob = 127}, }, data = { _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,l,l,l,l,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,l,l,l,l,l,l,_, _,_,_,l,l,_,_,_, _,_,l,l,l,l,_,_, _,_,_,l,l,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,l,t,t,l,_,_, l,l,l,t,t,l,l,l, _,_,l,t,t,l,_,_, _,l,l,t,t,l,l,_, _,_,l,t,t,l,_,_, _,_,l,t,t,l,_,_, _,_,_,l,l,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,_,t,t,_,_,_, _,_,l,t,t,l,_,_, l,l,l,t,t,l,l,l, _,_,l,t,t,l,_,_, _,l,l,t,t,l,l,_, _,_,l,t,t,l,_,_, _,_,l,t,t,l,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,l,l,l,l,l,l,_, _,_,_,l,l,_,_,_, _,_,l,l,l,l,_,_, _,_,_,l,l,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,l,l,l,l,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,l,l,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, } } ethereal/schematics/igloo.lua000066400000000000000000000016141411051537200166070ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local S = {name = "default:snowblock", prob = 255} local P = {name = "default:pine_bush_stem", prob = 50} local C = {name = "ethereal:coconut", prob = 50} ethereal.igloo = { size = {x = 7, y = 5, z = 8}, data = { _,_,S,S,S,_,_, _,_,S,_,S,_,_, _,_,S,_,S,_,_, _,_,_,S,_,_,_, _,_,_,_,_,_,_, _,_,S,S,S,_,_, _,_,S,_,S,_,_, _,_,S,_,S,_,_, _,_,_,S,_,_,_, _,_,_,_,_,_,_, _,S,S,S,S,S,_, _,S,_,_,_,S,_, _,S,_,_,_,S,_, _,_,S,S,S,_,_, _,_,_,_,_,_,_, S,S,S,S,S,S,S, S,P,_,_,_,C,S, S,_,_,_,_,_,S, _,S,_,_,_,S,_, _,_,S,S,S,_,_, S,S,S,S,S,S,S, S,_,_,_,_,_,S, S,_,_,_,_,_,S, _,S,_,_,_,S,_, _,_,S,S,S,_,_, S,S,S,S,S,S,S, S,_,_,_,_,_,S, S,_,_,_,_,_,S, _,S,_,_,_,S,_, _,_,S,S,S,_,_, _,S,S,S,S,S,_, _,S,_,_,_,S,_, _,S,_,_,_,S,_, _,_,S,S,S,_,_, _,_,_,_,_,_,_, _,_,S,S,S,_,_, _,_,S,S,S,_,_, _,_,S,S,S,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, } } ethereal/schematics/lemon_tree.lua000066400000000000000000000017501411051537200176300ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local L = {name = "ethereal:lemon_leaves", param1 = 255} local l = {name = "ethereal:lemon_leaves", param1 = 127} local T = {name = "default:tree", param1 = 255} local e = {name = "ethereal:lemon", param1 = 100} ethereal.lemontree = { size = {x = 5, y = 8, z = 5}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 3, prob = 127}, }, data = { _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,e,_,_, _,L,L,L,e, e,L,L,l,_, _,l,L,L,_, _,_,l,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,L,L,l,_, l,L,l,L,L, L,l,L,L,L, L,L,L,l,L, _,L,L,L,_, _,_,T,_,_, _,_,T,_,_, _,_,T,_,_, l,e,T,l,l, L,L,T,L,l, l,L,T,L,L, L,L,L,l,L, l,L,L,L,l, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,L,L,L,_, L,l,L,L,L, L,L,L,L,L, L,L,L,L,l, _,l,L,L,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,l,_,_, e,L,L,l,_, _,l,L,L,_, _,L,L,L,e, _,_,l,_,_, } } ethereal/schematics/mushroomone.lua000066400000000000000000000036601411051537200200540ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local M = {name = "ethereal:mushroom", prob = 255} local T = {name = "ethereal:mushroom_trunk", prob = 255} local P = {name = "ethereal:mushroom_pore", prob = 255} ethereal.mushroomone = { size = {x = 8, y = 11, z = 8}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, {ypos = 7, prob = 127}, }, data = { _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,M,M,_,_,_, _,_,_,M,M,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,M,_,_,M,_,_, _,_,M,_,_,M,_,_, _,_,_,M,M,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,M,_,_,_,_,M,_, _,M,_,_,_,_,M,_, _,_,M,P,P,M,_,_, _,_,_,M,M,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, M,_,_,T,T,_,_,M, M,_,_,T,T,_,_,M, _,M,P,P,P,P,M,_, _,_,M,M,M,M,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, M,_,_,T,T,_,_,M, M,_,_,T,T,_,_,M, _,M,P,P,P,P,M,_, _,_,M,M,M,M,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,M,_,_,_,_,M,_, _,M,_,_,_,_,M,_, _,_,M,P,P,M,_,_, _,_,_,M,M,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,M,_,_,M,_,_, _,_,M,_,_,M,_,_, _,_,_,M,M,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,M,M,_,_,_, _,_,_,M,M,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, } } ethereal/schematics/olive_tree.lua000066400000000000000000000031461411051537200176350ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local L = {name = "ethereal:olive_leaves", param1 = 255} local T = {name = "ethereal:olive_trunk", param1 = 255} local o = {name = "ethereal:olive", param1 = 150} ethereal.olivetree = { size = {x = 8, y = 9, z = 7}, data = { _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,L,_,_,_,_,L,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,L,_,L,L,o,_, L,T,L,L,o,L,T,L, _,L,_,_,_,_,L,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,T,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,L,T,L,_,T,L,_, _,L,L,_,L,L,L,_, _,_,_,L,L,_,_,_, _,_,o,L,L,_,_,_, _,_,_,_,_,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_, _,_,L,T,T,_,_,_, _,o,L,T,T,T,L,_, _,L,L,T,T,L,o,_, _,_,L,T,T,L,_,_, _,_,L,T,T,L,_,_, _,_,_,L,L,_,_,_, _,_,_,_,T,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,L,_,_,_, _,_,L,T,L,L,_,_, _,_,L,L,T,L,_,_, _,_,_,L,L,L,_,_, _,_,L,L,L,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,o,L,_,_,_,_, _,L,T,L,L,o,_,_, _,_,L,_,L,T,L,_, _,_,o,_,_,L,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, _,_,L,_,_,_,_,_, _,_,_,_,_,L,_,_, _,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_, } } ethereal/schematics/orange_tree.lua000066400000000000000000000013441411051537200177700ustar00rootroot00000000000000 local _ = {name = "air", param1 = 0} local L = {name = "ethereal:orange_leaves", param1 = 255} local l = {name = "ethereal:orange_leaves", param1 = 200} local T = {name = "default:tree", param1 = 255} local o = {name = "ethereal:orange", param1 = 200} ethereal.orangetree = { size = {x = 5, y = 6, z = 5}, yslice_prob = { {ypos = 0, prob = 127}, }, data = { _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,L,_,_, _,_,L,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,o,L,o,_, _,L,L,L,_, _,_,L,_,_, _,_,T,_,_, _,_,T,_,_, _,_,T,_,_, L,L,T,L,L, L,T,L,T,L, _,L,L,L,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,o,L,o,_, _,L,L,L,_, _,_,L,_,_, _,_,_,_,_, _,_,_,_,_, _,_,_,_,_, _,_,L,_,_, _,_,L,_,_, _,_,_,_,_, } } ethereal/schematics/palmtree.lua000066400000000000000000000040051411051537200173040ustar00rootroot00000000000000 local _ = {name = "air", param = 0} local L = {name = "ethereal:palmleaves", param = 255} local l = {name = "ethereal:palmleaves", param = 191} local T = {name = "ethereal:palm_trunk", param = 255} local t = {name = "ethereal:palm_trunk", param = 191} local C = {name = "ethereal:coconut", param = 127} ethereal.palmtree = { size = {x = 9, y = 9, z = 9}, yslice_prob = { {ypos = 3, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,l,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,C,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,t,_,_,_, _,_,_,_,_,T,_,_,_, _,_,l,_,_,T,_,_,l, _,_,L,L,C,T,C,L,L, _,_,_,L,L,L,L,L,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,C,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,l,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, } } ethereal/schematics/pinetree.lua000066400000000000000000000022441411051537200173110ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local L = {name = "ethereal:pineleaves", prob = 255} local T = {name = "default:pinetree", prob = 255} ethereal.pinetree = { size = {x = 7, y = 8, z = 7}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 4, prob = 127}, }, data = { _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,L,L,L,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,L,L,L,L,L,_, _,_,_,L,_,_,_, _,_,L,L,L,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,T,_,_,_, _,_,_,T,_,_,_, _,_,L,T,L,_,_, L,L,L,T,L,L,L, _,_,L,T,L,_,_, _,L,L,T,L,L,_, _,_,L,T,L,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,L,L,L,L,L,_, _,_,_,L,_,_,_, _,_,L,L,L,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,L,L,L,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,L,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, } } ethereal/schematics/redwood_small_tree.lua000066400000000000000000000076201411051537200213530ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local T = {name = "ethereal:redwood_trunk", prob = 255} local L = {name = "ethereal:redwood_leaves", prob = 255} ethereal.redwood_small_tree = { size = {x = 9, y = 21, z = 9}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, {ypos = 2, prob = 127}, {ypos = 3, prob = 127}, {ypos = 4, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,L,T,L,L, _,_,_,_,_,L,L,L,_, _,_,_,_,_,_,_,_,_, _,L,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,T,_,_, _,_,_,_,L,L,T,L,L, _,_,_,_,_,L,L,L,_, _,_,_,_,_,_,_,_,_, L,L,L,L,L,L,_,_,_, _,_,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,T,T,_,_, _,_,_,_,_,L,L,_,L, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, L,L,T,T,L,L,_,_,_, _,L,L,L,_,_,_,_,_, _,_,_,_,L,_,_,_,_, _,L,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,L,L, _,_,_,_,T,_,_,_,L, _,_,_,_,T,_,_,_,_, _,L,L,T,T,_,_,_,_, _,L,_,_,T,_,_,_,_, _,_,_,L,T,L,_,_,_, _,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,_, _,_,L,L,L,L,L,_,_, _,_,_,_,L,_,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,T,T,T,T,T,T, _,_,_,T,T,T,_,L,T, _,_,_,T,T,T,_,_,L, L,L,L,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,L,T,T,T,L,_,_, _,L,L,L,T,L,L,L,_, _,L,L,L,L,L,L,L,_, _,_,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,T,T,T,_,_,_, _,_,_,T,T,_,_,_,L, _,T,T,T,T,_,_,_,L, L,L,L,_,T,_,_,_,_, L,L,_,_,T,L,L,L,L, _,_,_,_,T,_,_,_,_, _,_,_,L,T,L,_,_,_, _,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,_,_, _,_,_,L,L,L,_,_,_, _,_,_,_,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,T,_,_,_,_,_,_,_, T,T,L,L,T,T,T,_,_, L,L,_,_,L,L,T,L,L, _,_,_,_,_,L,L,L,_, _,_,_,_,L,_,_,_,_, _,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_, _,_,_,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, L,L,L,L,_,_,_,_,_, L,L,_,_,L,L,T,L,L, _,_,_,_,_,L,L,L,_, _,_,_,_,_,_,_,_,_, _,_,_,L,L,L,_,_,_, _,_,_,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, L,L,L,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L, _,_,_,_,_,_,L,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, } } ethereal/schematics/redwood_tree.lua000066400000000000000000000366631411051537200201740ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local T = {name = "ethereal:redwood_trunk", prob = 255} local L = {name = "ethereal:redwood_leaves", prob = 255} ethereal.redwood_tree = { size = {x = 15, y = 33, z = 15}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 5, prob = 127}, {ypos = 6, prob = 127}, {ypos = 7, prob = 127}, {ypos = 14, prob = 127}, {ypos = 15, prob = 127}, {ypos = 16, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,_,L,_,_,_,_,_,_, _,_,_,_,L,L,L,T,L,L,_,_,_,_,_, _,_,_,_,_,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,T,L,L,_,_,_,_,_, _,_,_,_,L,L,L,T,L,L,_,_,_,_,_, _,_,_,_,_,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,L,L,L,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,T,L,L,_,_,_,_,_, _,_,_,_,_,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,T,L,L,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,L,L,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,T,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,T,_,_,_,_,_, _,_,_,_,_,_,_,L,L,T,L,L,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,L,L,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,T,T,_,_,_,_,_, _,_,_,_,_,_,_,_,L,L,_,L,L,L,L, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,L,L,T,T,L,L,_,_,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,_,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,T,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, L,L,L,L,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,L,L,L,L,L, _,_,_,_,_,_,_,T,_,_,_,L,L,L,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,L,L,T,T,_,_,_,_,_,_,_, _,_,_,_,L,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,L,T,L,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,L,L,L,L,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,_,L,_,_,_,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,T,T,T,_,_,_, _,_,_,_,_,_,T,T,T,_,_,L,L,L,L, _,_,_,_,_,_,T,T,T,_,_,_,L,L,L, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,T,T,T,T,T,T,_,_,_,_,_,_, L,L,L,L,L,_,T,T,T,_,_,_,_,_,_, L,L,L,L,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,T,T,T,_,_,_, _,_,_,_,_,_,T,T,T,_,L,T,T,T,L, _,_,_,_,_,_,T,T,T,_,_,L,L,L,L, _,_,L,L,L,L,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,L,T,T,T,L,_,_,_,_,_, _,_,_,_,L,L,L,T,L,L,L,_,_,_,_, _,_,_,_,L,L,L,L,L,L,L,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,T,T,T,T,T,T,T,_,_,_,_, _,_,_,_,_,T,T,T,T,T,T,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,T,T,_,_, _,_,_,_,_,_,T,T,T,_,_,L,T,T,L, _,_,_,_,_,_,T,T,T,_,_,_,L,L,L, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,T,_,_,T,T,T,_,_,_,_,_,_, L,T,T,T,L,_,T,T,T,_,_,_,_,_,_, L,L,L,L,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,_,_,_,L,L,L,L, _,_,_,_,T,T,T,T,_,_,_,L,L,L,_, _,L,L,L,L,L,_,T,_,_,_,_,_,_,_, _,_,_,L,L,_,_,T,L,L,L,L,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,L,T,L,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,_,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,L,L,L,L, _,_,_,_,_,_,_,_,_,_,_,_,L,L,L, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,T,T,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,L,_,_,_,_,_, L,L,L,L,L,_,_,_,L,_,_,_,_,_,_, L,L,L,L,_,_,T,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,L,L,L,L, _,_,_,_,T,_,_,_,_,_,_,_,_,_,_, _,L,L,T,T,L,L,T,T,T,_,_,_,_,_, _,_,L,L,L,_,_,L,L,T,L,L,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,L,_,_,_,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,T,T,T,T,T,_,_,_,_,_, _,_,_,_,_,_,T,T,T,_,_,_,_,_,_, _,_,_,_,_,_,_,T,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,L,L,L,L, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,T,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,L,_,_,_,_,_, L,L,L,L,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,T,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,L,L,L,L,L,L,_,_,_,_,_,_,_,_, _,_,_,L,L,_,_,L,L,T,L,L,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,T,_,_,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,L,L,L,L,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,L,L,L,_,_,_, _,_,_,_,_,_,_,_,_,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,T,_,_,_,_,_,_,_,_, _,_,_,_,L,L,T,L,L,_,_,_,_,_,_, _,_,_,_,_,L,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,L,L,T,L,L,_,_,_,_,_,_, _,_,_,_,_,L,L,L,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,L,L,L,L,L,_,_,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_, } } ethereal/schematics/sakura.lua000066400000000000000000000035061411051537200167660ustar00rootroot00000000000000local T = {name = "ethereal:sakura_trunk", param1 = 255} local P = {name = "ethereal:sakura_leaves", param1 = 255} local W = {name = "ethereal:sakura_leaves2", param1 = 255} local _ = {name = "air", param1 = 255} ethereal.sakura_tree = { size = {x=10, y=10, z=7}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 3, prob = 127}, {ypos = 8, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,P,P,_,_,_,_, _,_,_,P,P,P,P,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,P,P,P,P,_,_,_, _,_,_,P,P,P,P,_,_,_, _,_,P,P,T,P,P,P,_,_, _,_,P,P,P,P,P,P,_,_, _,_,P,_,P,P,P,P,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,P,P,P,P,P,P,_,_, _,_,P,P,T,P,P,P,P,_, _,P,P,P,P,P,P,P,P,P, _,P,P,P,P,P,P,P,P,P, _,P,P,P,P,P,P,P,P,_, _,_,P,P,P,P,P,P,_,_, _,_,_,_,T,_,_,_,_,_, _,_,_,_,T,_,_,_,_,_, _,_,_,_,T,_,_,_,_,_, _,_,P,P,T,T,P,_,_,_, _,P,P,T,T,T,T,P,P,_, _,P,P,T,_,T,P,T,P,_, P,P,P,T,P,T,P,P,T,P, P,P,T,P,P,P,P,P,T,P, P,P,T,P,P,P,P,T,P,P, _,P,P,P,P,P,P,P,P,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,P,_,P,_,_,_,_, _,_,P,P,T,P,P,P,_,_, _,_,P,P,_,P,P,P,P,_, _,P,P,P,P,P,P,P,P,P, _,P,P,P,P,P,P,P,P,P, _,P,P,P,P,P,P,P,P,_, _,_,P,P,P,P,P,P,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,P,_,_,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,_,P,T,P,_,_,_,_, _,_,P,P,T,P,P,P,P,_, _,_,P,P,P,P,P,P,P,_, _,_,P,P,P,P,_,P,P,_, _,_,_,_,P,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, _,_,_,_,P,_,_,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,_,P,P,P,_,_,_,_, _,_,_,_,P,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_, }, } ethereal/schematics/vinetree.lua000066400000000000000000000023751411051537200173240ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local T = {name = "default:tree", prob = 255} local L = {name = "default:leaves", prob = 255} local u = {name = "ethereal:vine", prob = 255, param2 = 2} local U = {name = "ethereal:vine", prob = 255, param2 = 3} local W = {name = "ethereal:vine", prob = 255, param2 = 4} local w = {name = "ethereal:vine", prob = 255, param2 = 5} ethereal.vinetree = { size = {x = 7, y = 7, z = 7}, yslice_prob = { {ypos = 0, prob = 127}, }, data = { _,_,_,_,_,_,_, _,W,_,_,_,_,_, _,W,_,W,_,_,_, _,W,_,W,_,_,_, _,W,_,_,_,W,_, _,W,_,_,_,W,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,_,_,W,_,_, _,_,_,_,W,_,_, _,L,L,L,W,L,_, _,L,L,_,L,L,_, _,L,L,L,L,L,_, _,_,_,_,_,_,_, _,_,_,_,_,_,U, _,_,_,_,_,_,U, _,_,_,_,_,_,U, _,L,T,_,T,L,U, u,L,L,L,L,_,_, _,_,L,L,L,L,_, _,_,L,L,L,_,_, _,_,_,T,_,_,_, _,_,_,T,_,_,_, u,_,_,T,_,_,_, u,L,_,L,_,L,_, u,L,L,L,L,L,_, _,L,L,L,L,L,_, _,_,L,L,L,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,U, _,_,_,_,_,_,U, _,L,T,_,T,L,U, _,L,L,L,L,L,U, _,L,L,L,L,L,_, _,_,_,L,L,_,_, _,_,_,_,_,_,_, u,_,_,_,_,_,_, u,_,_,_,w,_,_, u,L,L,L,w,L,_, _,L,L,L,L,_,_, _,_,L,L,L,L,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, _,_,w,_,_,_,_, _,_,w,_,_,_,_, _,_,w,w,_,_,_, _,_,_,w,w,_,_, _,_,_,_,_,_,_, _,_,_,_,_,_,_, } } ethereal/schematics/volcanol.lua000066400000000000000000000051221411051537200173110ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local d = {name = "ethereal:fiery_dirt", prob = 245} local s = {name = "default:stone", prob = 255} local l = {name = "default:lava_source", prob = 255} local f = {name = "default:lava_flowing", prob = 255} local o = {name = "default:obsidian", prob = 215} ethereal.volcanol = { size = {x = 17, y = 4, z = 15}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, {ypos = 2, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,d,d,d,d,_,_,d,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,d,s,s,s,s,d,d,s,d,d,_,_,_,_, _,_,_,_,s,s,s,s,_,_,s,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,d,s,o,o,o,o,s,s,o,s,s,d,_,_,_, _,_,_,s,f,f,s,f,s,s,f,s,s,_,_,_,_, _,_,_,_,s,s,_,s,_,_,s,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,d,s,o,s,s,s,s,o,o,s,o,o,s,d,_,_, _,_,s,l,l,l,l,f,s,f,f,l,l,s,_,_,_, _,_,_,s,f,f,s,s,o,s,o,s,s,_,_,_,_, _,_,_,_,o,o,o,_,_,_,o,_,_,_,_,_,_, _,d,s,o,s,o,o,o,s,s,o,s,s,o,s,d,_, _,_,s,f,l,l,l,l,l,l,l,l,l,l,s,_,_, _,_,_,s,f,f,f,f,f,f,l,f,l,s,_,_,_, _,_,_,_,o,_,_,o,o,o,_,o,o,_,_,_,_, _,d,s,o,s,o,s,s,o,o,s,o,s,o,s,d,_, _,_,s,s,l,l,l,l,l,l,l,l,l,l,s,_,_, _,_,_,_,o,f,f,f,f,f,f,f,l,s,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,o,_,_,_,_, _,_,d,s,o,s,o,s,s,s,s,o,s,o,s,d,_, _,_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_, _,_,_,s,f,f,f,f,f,f,f,f,l,s,_,_,_, _,_,_,_,o,_,_,_,_,_,_,_,s,_,_,_,_, _,d,s,o,s,o,o,o,o,o,o,s,o,s,d,_,_, _,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_, _,_,_,s,f,f,f,f,f,f,f,l,s,_,_,_,_, _,_,_,_,o,_,_,_,_,_,_,_,o,_,_,_,_, _,d,s,o,s,s,s,s,s,s,o,s,o,s,d,_,_, _,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_, _,_,_,s,f,f,f,f,l,l,f,l,s,_,_,_,_, _,_,_,_,o,o,_,_,_,o,_,o,_,_,_,_,_, _,_,d,s,o,o,o,o,o,o,s,o,s,d,_,_,_, _,_,_,s,s,l,f,f,f,f,l,l,s,_,_,_,_, _,_,_,_,s,s,s,s,s,s,f,s,_,_,_,_,_, _,_,_,_,_,s,o,o,o,_,s,_,_,_,_,_,_, _,_,_,d,s,s,s,s,s,s,o,s,d,_,_,_,_, _,_,_,_,s,s,s,s,s,s,l,s,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,s,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,d,d,d,d,d,d,s,s,d,_,_,_,_, _,_,_,_,_,_,_,_,_,_,s,s,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,d,d,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_, } } ethereal/schematics/volcanom.lua000066400000000000000000000007431411051537200173160ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local l = {name = "default:lava_source", prob = 225} local s = {name = "default:stone", prob = 255} local d = {name = "ethereal:fiery_dirt", prob = 255} ethereal.volcanom = { size = {x = 6, y = 2, z = 6}, yslice_prob = { {ypos = 0, prob = 127}, }, data = { _,_,s,_,_,_, _,_,_,_,_,_, _,s,l,s,_,_, _,_,s,d,_,_, _,s,l,l,s,_, _,s,_,_,s,_, s,l,l,l,s,_, _,s,_,_,d,_, _,d,l,l,d,d, _,_,s,d,_,_, _,_,d,d,d,_, _,_,_,_,_,_, } } ethereal/schematics/waterlily.lua000066400000000000000000000005151411051537200175110ustar00rootroot00000000000000 -- waterlily ethereal.waterlily = { size = {x = 1, y = 3, z = 1}, data = { {name = "default:sand", param1 = 255}, {name = "default:water_source", param1 = 255}, {name = "flowers:waterlily", param1 = 255}, }, } if ethereal.lilywalk == true then minetest.override_item("flowers:waterlily", { walkable = true, }) end ethereal/schematics/willow.lua000066400000000000000000000111671411051537200170170ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local L = {name = "ethereal:willow_twig", prob = 255} local T = {name = "ethereal:willow_trunk", prob = 255} local t = {name = "ethereal:willow_trunk", prob = 127} ethereal.willow = { size = {x = 12, y = 14, z = 12}, yslice_prob = { {ypos = 0, prob = 127}, {ypos = 1, prob = 127}, }, data = { _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_, _,_,_,_,L,_,L,_,_,_,_,_, _,_,_,_,L,L,L,L,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,L,L,L,L,_,_,_, _,_,L,L,L,L,T,L,L,_,_,_, _,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,t,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,L,_,_,_,_,_,_,_,_, _,_,_,L,_,L,_,L,_,_,_,_, _,_,_,L,L,L,L,L,L,L,_,_, _,_,L,L,L,T,T,L,L,_,_,_, _,_,_,L,L,L,L,L,L,_,_,_, _,_,_,L,L,L,L,L,L,_,_,_, _,_,_,L,L,L,L,_,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,t,T,T,T,_,_,t,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,L,_,L,_,_,_,_,_,_,_,_, _,L,L,L,L,L,L,_,L,L,L,_, _,L,T,T,L,T,L,L,L,L,_,_, _,_,L,L,L,L,L,L,L,L,_,_, _,_,L,L,L,L,L,L,T,L,_,_, _,_,L,L,L,L,L,L,L,_,_,_, _,_,L,L,L,L,L,_,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,_,L,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,T,_,_,T,_,_,_, _,_,_,_,_,T,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,L,_,_, _,_,_,_,_,L,L,_,_,L,_,_, _,_,L,L,_,L,L,L,L,L,L,_, L,L,L,T,L,T,L,L,T,L,L,_, _,L,L,L,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,T,T,L,_, _,L,L,L,L,L,L,L,L,L,L,_, _,L,T,T,T,T,T,L,L,_,_,_, _,_,L,L,L,L,L,L,_,_,_,_, _,_,_,_,L,T,L,L,_,_,_,_, _,_,_,_,_,L,_,_,_,_,_,_, _,_,_,_,_,T,T,T,T,t,_,_, _,_,_,_,_,T,T,_,_,_,_,_, _,_,_,_,_,T,T,_,_,_,_,_, _,L,_,_,_,T,T,_,_,_,_,_, _,L,L,_,_,T,_,_,_,L,L,_, _,L,L,L,_,T,L,L,L,L,L,L, L,L,L,T,L,T,T,T,T,T,L,_, _,L,L,L,L,T,L,L,L,L,L,_, _,_,L,L,L,T,T,T,T,L,L,_, _,_,L,L,L,L,L,L,L,L,_,_, _,_,L,T,L,T,T,L,L,_,_,_, _,_,_,L,L,T,T,L,_,_,_,_, _,_,_,L,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,t,T,T,T,T,T,_,_,_,_, _,_,_,_,_,T,T,T,_,_,_,_, _,_,_,_,_,T,T,_,_,_,_,_, _,_,_,_,_,T,T,_,_,_,_,_, _,L,_,_,_,T,T,_,_,_,_,_, L,L,L,L,L,T,T,T,L,L,L,L, L,T,T,T,T,T,T,L,T,L,L,_, _,L,L,L,L,L,T,L,L,L,L,_, _,_,L,L,L,L,T,L,L,L,L,_, _,_,_,L,_,L,T,L,L,_,_,_, _,_,_,L,L,L,T,L,L,_,_,_, _,_,_,L,L,L,L,L,L,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,_,T,_,_,_,_,_,_, _,_,_,_,_,T,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,L,_,_,_,_,_,_,_,_, _,_,_,L,L,_,L,_,L,L,_,_, _,L,L,L,L,L,L,_,L,L,L,_, _,L,T,L,L,L,L,L,L,L,_,_, _,L,L,L,L,L,T,L,L,L,_,_, _,_,L,L,L,L,L,L,L,L,_,_, _,_,L,L,L,L,T,L,L,L,_,_, _,_,_,L,L,L,L,L,L,_,_,_, _,_,_,L,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,T,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,L,_,_,_,_,_,_,_,_,_, _,L,L,_,_,L,L,_,L,L,L,_, _,L,T,L,L,L,L,L,L,L,_,_, _,_,L,_,L,L,T,L,L,L,_,_, _,_,L,L,L,L,L,L,L,_,_,_, _,_,_,_,L,L,T,T,L,_,_,_, _,_,_,_,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,_,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,T,T,t,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,L,_,_,_,_, _,_,_,_,L,_,_,L,_,L,_,_, _,_,L,L,L,L,L,L,L,L,_,_, _,_,L,L,L,L,T,L,L,_,_,_, _,_,_,L,L,L,T,L,_,_,_,_, _,_,_,_,L,L,L,L,_,_,_,_, _,_,_,_,L,L,L,L,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,t,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,L,_,_,_,_,_,_,_,_, _,_,_,L,_,_,_,_,_,_,_,_, _,_,_,L,L,L,L,L,L,_,_,_, _,_,_,L,L,L,T,L,_,_,_,_, _,_,_,_,_,L,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_, _,_,_,_,_,L,L,_,_,_,_,_, _,_,_,_,_,_,L,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,_,_, } } ethereal/schematics/yellowtree.lua000066400000000000000000000074241411051537200176760ustar00rootroot00000000000000 local _ = {name = "air", prob = 0} local T = {name = "ethereal:yellow_trunk", prob = 255} local t = {name = "ethereal:yellow_trunk", prob = 127} local L = {name = "ethereal:yellowleaves", prob = 255} local A = {name = "ethereal:golden_apple", prob = 115} ethereal.yellowtree = { size = {x = 9, y = 19, z = 9}, yslice_prob = { {ypos = 0, prob = 254}, {ypos = 3, prob = 254}, {ypos = 5, prob = 254}, }, data = { _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,A,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,L,A,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,t,_,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,t,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,L,L,_,_,_, _,_,_,_,_,_,L,L,_, _,_,_,L,_,_,_,_,_, A,L,L,L,T,L,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,L,_,L,L,_, _,_,L,L,L,_,_,_,_, A,L,L,L,T,L,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,T,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,T,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,T,T,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,T,T,t,_,_, _,_,_,_,T,_,T,T,L, _,_,t,T,T,_,L,L,_, L,T,T,_,T,_,_,_,_, _,L,L,_,T,T,t,_,_, _,_,_,_,T,L,T,T,L, _,_,t,T,T,L,L,L,_, L,T,T,L,T,L,_,_,_, _,L,L,_,L,A,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,T,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,_,T,L,L,L,A, _,_,_,L,_,_,_,_,_, _,L,L,_,_,_,_,_,_, _,_,_,_,_,L,_,_,_, _,_,_,L,T,L,L,L,A, _,_,L,L,L,_,_,_,_, _,L,L,_,L,_,_,_,_, _,_,_,_,A,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,t,_,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,t,L,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,L,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,L,T,L,_,_,_, _,_,_,_,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,A,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,A,L,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_, } } ethereal/schems.lua000066400000000000000000000210411411051537200146310ustar00rootroot00000000000000 local path = minetest.get_modpath("ethereal") .. "/schematics/" local dpath = minetest.get_modpath("default") .. "/schematics/" -- load schematic tables dofile(path .. "orange_tree.lua") dofile(path .. "banana_tree.lua") dofile(path .. "bamboo_tree.lua") dofile(path .. "birch_tree.lua") dofile(path .. "bush.lua") dofile(path .. "waterlily.lua") dofile(path .. "volcanom.lua") dofile(path .. "volcanol.lua") dofile(path .. "frosttrees.lua") dofile(path .. "palmtree.lua") dofile(path .. "pinetree.lua") dofile(path .. "yellowtree.lua") dofile(path .. "mushroomone.lua") dofile(path .. "willow.lua") dofile(path .. "bigtree.lua") dofile(path .. "redwood_tree.lua") dofile(path .. "redwood_small_tree.lua") dofile(path .. "vinetree.lua") dofile(path .. "sakura.lua") dofile(path .. "igloo.lua") dofile(path .. "lemon_tree.lua") dofile(path .. "olive_tree.lua") -- helper function local add_schem = function(a, b, c, d, e, f, g, h, i, j, k) -- if not 1 then biome disabled, don't add if g ~= 1 then return end minetest.register_decoration({ deco_type = "schematic", place_on = a, sidelen = 80, fill_ratio = b, biomes = c, y_min = d, y_max = e, schematic = f, flags = "place_center_x, place_center_z", replacements = h, spawn_by = i, num_spawn_by = j, rotation = k }) end -- igloo add_schem("default:snowblock", 0.0005, {"glacier"}, 3, 50, ethereal.igloo, ethereal.glacier, nil, "default:snowblock", 8, "random") -- sakura tree add_schem({"ethereal:bamboo_dirt"}, 0.01, {"sakura"}, 7, 100, ethereal.sakura_tree, ethereal.sakura, nil, "ethereal:bamboo_dirt", 6) -- redwood tree add_schem({"default:dirt_with_dry_grass"}, 0.0025, {"mesa"}, 1, 100, ethereal.redwood_tree, ethereal.mesa, nil, "default:dirt_with_dry_grass", 8) -- banana tree add_schem({"ethereal:grove_dirt"}, 0.015, {"grove"}, 1, 100, ethereal.bananatree, ethereal.grove) -- healing tree add_schem({"default:dirt_with_snow"}, 0.01, {"taiga"}, 120, 140, ethereal.yellowtree, ethereal.alpine, nil, "default:dirt_with_snow", 8) -- crystal frost tree add_schem({"ethereal:crystal_dirt"}, 0.01, {"frost", "frost_floatland"}, 1, 1750, ethereal.frosttrees, ethereal.frost, nil, "ethereal:crystal_dirt", 8) -- giant mushroom add_schem("ethereal:mushroom_dirt", 0.02, {"mushroom"}, 1, 100, ethereal.mushroomone, ethereal.mushroom, nil, "ethereal:mushroom_dirt", 8) -- small lava crater add_schem("ethereal:fiery_dirt", 0.01, {"fiery"}, 1, 100, ethereal.volcanom, ethereal.fiery, nil, "ethereal:fiery_dirt", 8) -- large lava crater add_schem("ethereal:fiery_dirt", 0.003, {"fiery"}, 1, 100, ethereal.volcanol, ethereal.fiery, nil, "ethereal:fiery_dirt", 8, "random") -- default jungle tree add_schem({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.08, {"junglee"}, 1, 100, dpath .. "jungle_tree.mts", ethereal.junglee) -- willow tree add_schem({"ethereal:gray_dirt"}, 0.02, {"grayness"}, 1, 100, ethereal.willow, ethereal.grayness, nil, "ethereal:gray_dirt", 6) -- default large pine tree for lower elevation add_schem({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"}, 0.025, {"coniferous_forest"}, 10, 40, ethereal.pinetree, ethereal.snowy) -- small pine for higher elevation add_schem({"default:dirt_with_snow"}, 0.025, {"taiga"}, 40, 140, ethereal.pinetree, ethereal.alpine) -- default apple tree add_schem({"default:dirt_with_grass"}, 0.025, {"jumble", "deciduous_forest"}, 1, 100, dpath .. "apple_tree.mts", ethereal.grassy) -- big old tree add_schem({"default:dirt_with_grass"}, 0.001, {"jumble"}, 1, 100, ethereal.bigtree, ethereal.jumble, nil, "default:dirt_with_grass", 8) -- default aspen tree add_schem({"default:dirt_with_grass"}, 0.02, {"grassytwo"}, 1, 50, dpath .. "aspen_tree.mts", ethereal.jumble) -- birch tree add_schem({"default:dirt_with_grass"}, 0.02, {"grassytwo"}, 50, 100, ethereal.birchtree, ethereal.grassytwo) -- orange tree add_schem({"ethereal:prairie_dirt"}, 0.01, {"prairie"}, 1, 100, ethereal.orangetree, ethereal.prairie) -- default acacia tree add_schem({"default:dry_dirt_with_dry_grass", "default:dirt_with_dry_grass"}, 0.004, {"savanna"}, 1, 100, dpath .. "acacia_tree.mts", ethereal.savanna) -- palm tree add_schem("default:sand", 0.0025, {"desert_ocean", "plains_ocean", "sandclay", "sandstone_ocean", "mesa_ocean", "grove_ocean", "deciduous_forest_ocean"}, 1, 1, ethereal.palmtree, 1) -- bamboo tree add_schem({"ethereal:bamboo_dirt"}, 0.025, {"bamboo"}, 1, 100, ethereal.bambootree, ethereal.bamboo) -- bush add_schem({"ethereal:bamboo_dirt"}, 0.08, {"bamboo"}, 1, 100, ethereal.bush, ethereal.bamboo) -- vine tree add_schem({"default:dirt_with_grass"}, 0.02, {"swamp"}, 1, 100, ethereal.vinetree, ethereal.swamp) -- lemon tree add_schem({"ethereal:grove_dirt"}, 0.002, {"mediterranean"}, 5, 50, ethereal.lemontree, ethereal.mediterranean) -- olive tree add_schem({"ethereal:grove_dirt"}, 0.002, {"mediterranean"}, 5, 35, ethereal.olivetree, ethereal.mediterranean) -- default large cactus if ethereal.desert == 1 then minetest.register_decoration({ deco_type = "schematic", place_on = {"default:desert_sand"}, sidelen = 80, noise_params = { offset = -0.0005, scale = 0.0015, spread = {x = 200, y = 200, z = 200}, seed = 230, octaves = 3, persist = 0.6 }, biomes = {"desert"}, y_min = 5, y_max = 31000, schematic = dpath .. "large_cactus.mts", flags = "place_center_x", rotation = "random", }) end -- default bush minetest.register_decoration({ deco_type = "schematic", place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, 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 = {"deciduous_forest", "grassytwo", "jumble"}, y_min = 1, y_max = 31000, schematic = dpath .. "bush.mts", flags = "place_center_x, place_center_z" }) -- default acacia bush minetest.register_decoration({ deco_type = "schematic", place_on = { "default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = -0.004, scale = 0.01, spread = {x = 100, y = 100, z = 100}, seed = 90155, octaves = 3, persist = 0.7, }, biomes = {"savanna", "mesa"}, y_min = 1, y_max = 31000, schematic = dpath .. "acacia_bush.mts", flags = "place_center_x, place_center_z" }) -- default pine bush if minetest.registered_nodes["default:pine_bush"] then minetest.register_decoration({ name = "default:pine_bush", deco_type = "schematic", place_on = {"default:dirt_with_snow"}, 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 = {"taiga"}, y_max = 31000, y_min = 4, schematic = dpath .. "pine_bush.mts", flags = "place_center_x, place_center_z" }) end -- default blueberry bush if minetest.registered_nodes["default:blueberry_bush_leaves"] then minetest.register_decoration({ name = "default:blueberry_bush", deco_type = "schematic", place_on = { "default:dirt_with_coniferous_litter", "default:dirt_with_snow"}, sidelen = 16, noise_params = { offset = -0.004, scale = 0.01, spread = {x = 100, y = 100, z = 100}, seed = 697, octaves = 3, persist = 0.7, }, biomes = {"coniferous_forest", "taiga"}, y_max = 31000, y_min = 1, place_offset_y = 1, schematic = dpath .. "blueberry_bush.mts", flags = "place_center_x, place_center_z" }) end -- place waterlily in beach areas minetest.register_decoration({ deco_type = "schematic", place_on = {"default:sand"}, sidelen = 16, noise_params = { offset = -0.12, scale = 0.3, spread = {x = 200, y = 200, z = 200}, seed = 33, octaves = 3, persist = 0.7 }, biomes = {"desert_ocean", "plains_ocean", "sandclay", "mesa_ocean", "grove_ocean", "deciduous_forest_ocean", "swamp_ocean"}, y_min = 0, y_max = 0, schematic = ethereal.waterlily, rotation = "random" }) -- coral reef if ethereal.reefs == 1 then -- override corals so crystal shovel can pick them up intact minetest.override_item("default:coral_skeleton", {groups = {crumbly = 3}}) minetest.override_item("default:coral_orange", {groups = {crumbly = 3}}) minetest.override_item("default:coral_brown", {groups = {crumbly = 3}}) minetest.register_decoration({ deco_type = "schematic", place_on = {"default:sand"}, noise_params = { offset = -0.15, scale = 0.1, spread = {x = 100, y = 100, z = 100}, seed = 7013, octaves = 3, persist = 1, }, biomes = {"desert_ocean", "grove_ocean"}, y_min = -8, y_max = -2, schematic = path .. "corals.mts", flags = "place_center_x, place_center_z", rotation = "random" }) end ethereal/screenshot.png000066400000000000000000001260561411051537200155430ustar00rootroot00000000000000PNG  IHDRST/|PLTE - ? "+""( -+#9'*.A"1'@'BX%8(56I55#9GB8*@,C-CQAEC2I_7KX:R,`Cf?V=[ mCpRQ5>SjhISBT`LTT}LEdgc[pE[s6Ww$skSMpk?l0{dzMpwE{\]́ϻ͛ȭܱO pHYs   IDATx} [ض-Y( DirPӁP1R;{c̹ Ѳۻ*+Ƽd9是?p~<~ '?<~ O?n''oLGӂ?nOIz۟G5ӏ۟Snֻ?(O*z} ?1~n?ޯp8}cL䣓Dv{^xxg8$iMZ?ro]cx4 _o{&IFǣ N|Q R4; y~2pQN\f?:{qćS!7fz+"_ ǵG3菦H8ݑw  |? W]GGǣcKf&Ya7 Nu:>O7~'я~DYYLԺ%G.O78[<[DaA^&KzfmSiyTn'x/x4LfOlCW燚~ْM+y營rgOFĬ >qLaE&$NZ\=wjniGU/󥷬`h鈰`w^f)lwr?.::x{ M؞J8:𖌁 ]OQ?#ߏs8G^˪Z?XXn'͗w`u'/~aכy~'Kp%:JFIX`1izkK w*pzw;G~ ޮw}!wk+z d0\nx=\0TS77yK? ݥԣݽ:z7s|/zo0cWZ3^vwr) ʸ2/+L?3 8grL~/mCh5O`1>`g˥ Hd >@ۿڣI 2ο(5Y/dSN5؈ p '[ݑٲuG3*{ߜ^DfW6M ; "U#$~ /LE`%_ZD: h8fĭh/4?Z+l[ !dNr;p^Őxx3R$n|o wG3),(߹oTgf#Gl و, `0c12YNlQ0sO"coLbB?Deg]B.Ꮦ ⪋Zlbۅ☌X;O÷z{4fnR\89Nk m\ܙT]bc, M Nep5]Dw1m S[R@='VBEFH`lyJN^}ޟXHǹPt0[~FHX2Llk>Ե_O^Hܿǝb.￾٩29V:tۯn=l?ܜw3]ņN nї IEK|4]K̠ias/?]'c8xu8dq{[Kc6LL*%wۗ56ԽN ֞ˏa ǮEeY%8\¥JjJ_1X-{} `Η}=~eeoe p+D5u{^z!}woӨ/-#vxA|s=i~/* wFhDc*O(gp;.N S`Dgm>b{(& :[R|QR\4Y.iLTg orr[QyUuK1 w_I~59և ڛ{ٶ¦]7[vu wߧk)OOTI.R8c#NQ;lrHQ&SДW"ǣ\ԳX߶ ]uGxw'Ǿ}P442RU󓶮ڻN^z$RX2lG$z X<}v7]VqpnƺFE(G"qs,Gl$ iрcFencxMsiR}Iйm:Eҍ=AXf}77E|7)š< /Ϻ vњ~QJJ!_A;-",+p| /,z\ש5or&kr'8*Xbt}]vh6["Aꝷ'`1bSYn F$ewqN\J+uU`h{,ρcme0:xrYU'h`aEdz+k(/aڊi$Jw_hQS/KS\1lQuo$̦z>,vYft71zn!{I ?eAJ&53iUVuaЮUyt(^?;3=V`IiC%gu&WFo GK /G{긺17b4 fiK.iX] ֬U302BKELBsISKw!;M٬Ei#fUv]^n:ۅ:2IT!,jkUZ%ZI&uEcze范]aנʗe|v ,=wJJ"`AU/r;KU^_qf泮kpW]f^5gZ ,RFuRKQ0B!ބc]460٦Yu 9d ?,\[N1q=޵(O 1iy38l< gٙ>;jn۳5Ū_B쁝x`b{.T%gNދx|._n.uEf%y7+p~%g21/^!kVl 24b%9Aш_i`2:%9/ڭnZ4Mİv庘u1,PX=4oS"[ɑ&e,-rKp鵞\b3y?jD>Vx[/:$,TŤ5^HJo)<w|ߝ^\]M ᡉd ׇ>]2T S1ղ,pn TIaXͲ /<0H$ o<Vi~S}gk(Ȋn˲itQwXxo?Y :oLb fF-r.NVXnZqրiQPm輙m 򶥚P: 6sIݔjTs%(GQ0c$# Τ_hVLl6ES.j3E@i P6ua,_Msu҈*-#cIKwhMf˜-:(93WTpe&j[q5qZ[ȊG=GG[/^2|"W_\s8Y@ Jj0]˳z=Nvaeҗ:.8"W8/\8)"e?,q{dZM ӗ|s;I㮛CV.`s4tVSv^FT ^zikJ^wJwx_2t3?Ŋ :/䞁gl/΢9qqz2dzث;B g.B0Aly1 p+Ke{ Ľ%Eн-pM.Zc#_5:9lL{B\D4 Q-t-V('b_k05jX6f1|3I7f rlcؓdÊG .bj<'I[iGҮCå-'"cty4=tt]Ƭr{UT}jb|O{Ǟ!n]STmZps||=?E`@~YH>[CܸV_̔e~~ М_]]MnH7 fm6)G8ڲAhpF ui– Y@U)#"2Y;fd_"]|PrEO ƢZ@d|!]Z/,!js ]>PYHK9 k 'P{*z&CQwgYAl/J`D@Ot!W\1--}{"il~^%O`'p\NlLrӮ|," tm4 {)2%^ $,zTjkX=p#-]V{z+:m|ўXrWYU, -ɗJE?5 >&ʀh/2/'S.U*|R?g |ss~ ^m *3d"> ^xD`\a 'u\ p6h* YH$bJ?,ؔ23S hˍ͵?Kx,V,R^5]%vCȜ<9A}|57@s_CXhoDpqW{I\Tdif6E8Q1 i=̧㛋KE\5 XmҳQ@ԼG@@)^+I.H+`$;㸡$A+|pDL"J判%ĕšMz˜;3x #Z^9 ,{RR!'{ds0Ql`β \V ,EӄAUa. iX1E, _j+N _i 5;@CdW ? % C$%'#(W<+#dD %JX qXqW,aNUz-n->t9r:};on|zʂOa F< VTD6i_?(? ];&h!%yj)M)+z0ϧq>O+)5e!? i %W@֞,U$y+XB`o2ܫ|LGO3}z$y&)+IpZBcPc5B[-',LF߄[B Eǝ^@Qg/+iu }}J L]u+0W:n{r_ Ͳp}0膕1-(hb1B8ԕ^iW0`miYV:`y<@P{Mρ;elxx0Vhq]ߺ2!+۩c'N+J'9*nȄSYP;+4_uY:\lΥKq'z 뢈 rµJ UQ3YPר c=j bAER6oaf.ҧIp|岋3JiB~4pJ\eGZԯZx~ɂ|bqqqK .I'>V9}Lu}UWMݭVd)26 k52Džκ8 i1_M)H; UJ{RZU ]2t G&JQ'k}h3cG~)_% IDAT/ 0xbK;=u7ZDrW"y)b: 0=='A|EO|(sqxt.@^f9$Y ⎶K2hXͪn}I5 hZƒ.;&U)t A+ZU|DDž5}tDJ Wv zֳ84{ C ߪ+v9bӑxBa}vki7&W į ũfA7'GGXS-YQnUנfd%nBY6/f=Gdͬ-[S6b&E0Sam3 Iy%#Owq܋2.n,#G듣0P{l\`b}ѼmgU^)UF|Ɣ['_Onr3 [Bc٘wq8QF/lmФ1{bjjF:؁׾F+=]GjY*WRsYivp4JtwRA8+щmv\:Wӵ|X]d~ek3;@ &}pPHO;fK^h󸏋̦=kCh EuIxZ]tlR [CȚīZ쵡-azxy>@b05Q&3Y"9p0 `=̙* 8;/jX;Ngz_q! C1-1@xɯbá/me|. wx#"B)>`j{~Ŗn%S9^IǮ F9wkX~Dqr] Le(9yrHakň`Y$ɃЧ=g{oHsXl .DX[7;R.:gs< 7*%O_"v:Ub |9E74X D 5 KE=x)bE6"lBUvM0%X ]QhO!'}E4 *oTG*#K홭aT?q?2~q8$we}}p_X ;zѩ%v, EuXf|GGGߠk[!>9M>9_|ZlV u<)ٿiŒ]kͷFrk#-4LŸ EH0:moQi)*kk% m*\Y# `,ga٨8 (}F,4N\,}+)uP RB)U 5FY$ܱ&0(¯6迓{c[b?s 'oNd88p$eh%ύk"lU6-7Yj8s#ӼQRI>mmzLSV UtrG!?]XO,=:{e* 8uoVIUl~[w;o$OONv{>e[89߃a#t+rF[|L ȎW#l$﹗La\WdE#i) fY(*RL/e Z16T&k pi߬uΆWѓʌFacfThS)V,TXO*ȾAR~4ͷoenqM*}p9?α5EZvcwmFUşM:f۩џ^A,γOg|Rgo`O=6"]td}zqG7i ,n4oi\FVJ¢ meM."vvmsPGo8`8}K>P]6Vmy%-0^Hʏ??~ӧ~;>FLf>!P7;#-O̬+3^f9U66-gF 6?U#7 2vٔl{xm[ېֆe*B|]h=,wJһPDtHv9oI~8+_^~ǟ^Hs 7Zzɭ?o8>!_F (ЎL ]N;2dG˂鉯8z^qE`ںOxMQXmzRUL,B1GkҖbŻ.z"P-ǚ[(BCT|/<3z1o.yO/8>Dpq~`-xl٪cY=ͦ8NFQ4F٘.ce93knN=,I5:d-{Xjl7W+_B~C2 lUuBk WE? 5~:<̚[ԌC 96W{i֤hƄ(OSئn[ϖFt[|E|{oF!}U"K1SmV ߊA˧bɿ"o>"AR{~w}ϸÕ Z$i%UDRB^1<@]br\ mAz͑4c~u,U$3YU,}JFn!eڂnu|RG>x ݴ_@C(_ `/,칇f{wŰXGܥ$8 *,qpйm4m75꾫gի{_پ![[MDtY="p2 gY֔JOs/-s5kt $+ / Sja+J#^JK2r/uĜ&K|.KfR#{Z %lvPIl:KTSe@1 i%(BXjM6,TlC-qQ^%::ߋύt|8Kt@1b` c1VXaE"2쏬Od&INlW%-b"D(nqøwq 4sW.l-Sg} l^hvbPٴ16H=FZM;G[ӏcA,?/ώ' u/ %ewbfN֎5eoly[vQs[2yqljʑs%}J$W ImpܧOl+ VX%e ktui۶e"%wQ8[>X/g A'lŵ11 }8^4l7= jZfłw,(zIÉѥ'ܩ8`$>RVp=o{a_WKǦ҂Ol:B.*Kb1LxSDJ=8b3 f V&D2{ri(8K}6b=D1oDq=I(O"Y_ޡxhKs&XX-BZ6}?"zo븴Յw-"UooTJ?\YETiߜ|G}&hM-fRieY)z=ΫPKn<dSPe- 9_7E 9l;*k ~V~h ٰ$sUkf&~[e=iC->d?Rr vꈆM"$nHdIyvvVe_Lf 3n2,Dj.NyJYrk9k Tqp7 K8lbh٪-7HB/R5 epɥ}j L64k2DÈDĎOM#vƺ0oA>79oBfZ/4ts} KfzYfIOi^3z+1Ӵhck ]ZއIkawt_VĄ]ETӊ$D5d;mB lR %Y0͒IF Mh*~w>5LOɼYc9|$ p3n\ג>n5cIZ("i>j9/eDh?['?WǦMZ3qjE#JqԃӒ=d3đnDxPwlW֚b*}ۑ1䕋|liǦ8>uSTr_䐑'0YYUQ%yֶ/u^BiYf<_pGn<u\EFe6OMgjޗFB# vz] `6J_=MpO$V-3>ԡmsɒbh Y a+/cH]aϒm3ockR_<>c$Ȱ"$;Oot3Iyӧ+k fmn` ׼&UZ6MEh[>=-a BeMY$3\Aټ`'. !ᆾ\G4 o89qrXЈ /d `?Ù1=H>mwVo q>k ~)tNi_T}_O!k,QYE:0a>'OvpEoW]HIu _ l? Lr_ӈ֩mA8tbxEVLlZizϞ."lІ5ϰ [y@^\~YK%+X帞ΦOί1NZNʅ&Ӣ~Y dGK^ygRzt1dIo;|nB>ʽu%kw2=vo}Tļ/poK[;fSĶ8߮Jʈn'+cOiVr!@FޗDp \ ُ:j tHc'i ˒u_Q).Y_E;n,FIE)Ά$v h(kvU^\iv}3rvVMիv˛%B3ee붹[㢆V ^."<*{T̬&ժY?uU4o Iqxa2_Lkx1@(hg!Ƚga>/8K$slHc`m?Rѷ S9϶diq _{ڼJ{V@vNnu]wV=2\]s(6_lf6Y60RzFs,npRݢ)̬@p˫Oʇ'2^fϴ,=/&/?p8u"nolGRI4z_zQz/LBN~]]'j dt l߇{s'u. ퟵIrWQh)DRh{%>6n3)ho.@˻a3AAr 90 Ҿo H`E6?ͭ2{`0 rŸfs޴]'tƞK6r`3@钞}05L=J[0YWݔkUW]s IDAT{iTa6g&e0fΒp:"xXwj_ ]qۼdUˋW1P&Bs+=)d>tKpefZ * HO| )|;p@n 8<`˕lBD/9Cg5۴$z&_H㰡ĕotWkYt^ioƶCk ʅpMחZ< {ql|p{X?p2U`[,1*; =P:I8{K[ AaO+ ?lVf.@2sIdfD%NO=`-_p =2xq\L. ܔq_7v(|oԧ0u. ͎K%v9#/O F=:L6؎SŶKĄib7с8Ɉz-SY 7<9KP%V/%ض ww ?Z¢[=`šp /_@ V,`,29m|a 8ԄI"\M,w%,`E0o' lA70zbEޘdVY稽gö%>ͿS `{ai<::?ǖí*DjYiPueǘR-ii PjiPOL[=e Wr?֢ 8/ibg}I MV?Gs֖VpXQ@+ 5ݎ8aA0JUKx 1YzhduDt(q#7%fWIk=U2w[H挿 S:/d9 ˳Hg.INUDMDl`G^!^̛\Q5LoQiñI"pB/5=TSwk-wox8DHw˒X0F].V)<UB j͜1FBHK[/jV3 Yŋ#`av(k+>i6}1SlU듀|+h[.=uYC;iΙ^oKfoY*T2!fV髍CH#lHDvlZDžkٷC P.Wq//vT*UTm+ީf3NwD.xq2]i* 2^P \Y`l2\"]l67_s/3⦩^. b|OS?25FXȅ%$cg Xvmel} HҒ8RWo:zV 6ܱ.Lю=sM,&|`R[~LDӕ j$I &%[`Xanx{=uG@#-l' DqY2*i2/ Ǽz q q3b5룐Kxr{fz6Xdfza#V kOXPAd\=̀L >t .5h6m6%1η)8^+V)Y4Q߄kĪ 80W]æIh?'ar$yv6}l'XQVǫ&{x'jEox[iuCeÌ 3)ʠHN}i6>!zZt5&&3 $ /" S׌l|ϧ /X L$ԞsI {jЊ"Bz/Yy2Jb-պܷ7>eRʼn6L%8N "Y͒-Pc١Ul5zMCSR*vdŖioW=ʌ&j046~1+:Uh_(dC#e*%,}[7 ny-9 3ePS1+V~QxlE)|E(LebBI /.)n|hҢÝ)N!J行9Mtu^{.&z.ّtrIk-6î98{0Gk@R5#.pm[dJ 'M 9MHyŰ0iQcVQ7$ >d1\9s.&yᴔ%b+s5XY|y‚R\|~o HOSD㲺I7vȏ5G{g=ޛȶI;hgP ķ6/N.s-s80 R1"vA7\El  _RH9AU \7j$дUroaƼh>UVlx}2q9.tXU-jh jJeu;-^I}/m`/wnMb٦b iy#9+u%1}Qp\5ŹA~*D$}JIшo i6b`.aLt{D>kΪ*dUG ,R/M7D9xŢ+7ifx+f@q<-! ( 3*JF/)wl.]ædy&47zi ۬D .򖵀X[AZY [#/"ZnHX.xSfL/^dz|MAj`Wބoի 1/3Ӱ\=P 6IfBl2d(;g%thvSk%)_4!e'һtuue0w4~O|nTHxI9 Mj挃Wl|g]\K "J2# f+a!a qD e@x=[{RR⦁i4Pl([ctҔEm"Dsܫ bXl1LW& T)"Q)қ7vrKScM`B_%NЧN~cK&zx)^w}uk?f k#q0}u1Agc{3r[)t۽{-ϲ4fQebeWLj@TOO&0Xq͍$Kh%1쇞0,HbZ=ٟW%zSG&}H-6f}!q8(ocd"V%ٜ!1c%sPY$DbXzl5sMҘqO8伿Z=/|G|Cy/- ZLFHq4 Bާy#NlzyZ#r 0)  j4`դaDB-5/ggq7!N6iukSntϥ`"A mj$ih/1²CL8c!bޝ 1ya{*#8Y I;6 ك-Q$oz4mefg+}g8 >PB65jՎ4q>Af6ߤ,689;{YM«N#+jrYL^n)uBY#I)TXi?8v rgAhS>aQgl6]T3??os<,t/UL̥}M\F<u j>M̚2H'FGl^g2bffE&1/l M{~/}WRALN+K ѸwHd4j k+Aݝ-R1n dٙ0߭V_nV8+8-haIhyCJ,5RRꎒ\=0b;mX2dYG:k6U'NJʁCMIpRa*JAJ6f]%U}`Rv \UM 7(Vj[IUclQ+Dlt+^E~ή66Qysr<>6s7[RX2$Lr I3Ȫ+,񂤊9~Ax\Ңhu}?o_ȥ5]Y8 ni+ !MdYCg&|Ÿ'sћB. 2lﱌs218O'F: stXlأ'0aG :y.=ш8A[{~;K^dj Of 5:\R3lsHoZH]4M2IBpieB%pDASfrJ!`Q{ou*ec[v yPiEЁm^{4Wy_k1yIhuIMIe\.h3)0:G迶guϾ>7^OUz+q,m5rz U*QgG_oRq*XHh8p{|{VSJautL|fbj.8q P\/kc?V4q\6UŽb6qY c(q%X/ퟱ}}n!u0OS}Tm]ʲS3Y Nc=eŤWlkRFX9Hw Bn3f+)?n"M((_"LZ"?4[vh6kW@LD65+ */׳dЯMC0Bv=Zt 90ݭ9o?El|xSԤ 5".~IvN&;ֿܹ{)CSohX2w VUoGu/UQ8!O[Q\Ֆi-b-X;PuI)e2w?YblulYFnlXʡkQW[=l/.upɌ)r%ߗ$ahi N>J(a Is .,Rh,d* X)J?K^@{ 8M҄uV9NQŒ;#D=Q@=!ͰݒԆSyDs/BoA=}&x"\ V)xyْUn$|=i'K[%]/ 08~C`J("}nՂ+M12@8b't석9%[ޓ< @]ż ] CxW~v2dVv #ZQ"󗈹|7nHowJ~5BR8ښa;!&!DN&1\8ْw[M8M?GRC.H|D ] yjVmj, bC@:Sx C>bdIp$<4kG mX`lIYe Y9!u'%=]"-!?h:u>@,&wj )s[kGv#[dγq*;Vd ݈ d2%Yg yq8 \F"8p#~&qhLjM:ki}p%Yܾ73aRY#\ÕiQ7%Bl 7Zq<h~TZvT >r~gu|z[5/W$q;qByy[o:*>,MSqjw6>Zop!݁?n]I5wuZ0•vBFv f9ZV@u"N~b%aUIɡV/{۽ҵdDWa av3 ;<ӊ4^zVŌ%{PkL=74w8,-&fV`j{ -7CNLn:!r0O|gOKbB[w/I6\ȩFHNw|ֿ3t8dxxGj3i.e|`@sTX\h5 ݇1Hr ,}-yOb)p\akY{A7evP.80ىf̧VVަn 0Ѩ)."Bwp @1qY>q*_95~g~9KR~C6qiU? Lmc3);wnI~zOߧ ZRgaL=DC7ZjɒE(\{cu"!cm9j:ڏ{qq~ /}F>jVPm7F:]$jU'"x0֟V ~G?a K~"%C^ew|7{}cpi$AI;TA1R?7&NqC O0%UsqeUy_;&S1)M7(SJ-VBhZ'`KNb=vR&qbWƁ 2jE2 לq$IH} MЉKw6qdLc2y [M6jT31$ bP:%g,kv_J6s&&ٳۮAZyj}+bTI{qPJt$کƥ5+;6.9݉xLijpߒ1?ʀ>딩2$DŽcK0\$c?2v]B7b N@n/j&xhaXG8 jmq6\xElVm]"}RN=3W݃L> 5s)ȋnݳDЖL2GHgYk'C|9Yb9YrWҚ!q_@?t72u>9b. ߂g$CNCrɋd>(aL@:}"]u]!bk'2A23(XR{( di|DXO‡J\ B97;ǹ68dǘm%Ymf]3 ՙytR:c$1.5f#Np:YֈL-<oL]skIw A|{8|bdH"18b=兎䂟 _-hwTp‡Vwq0g F2d(A0;r Vл-~tgÔ8 &)E<0x?aZME!bS[m1uяg#L{ECsڂxF`Clu;"??*Oi\VMU z9,#HH1ْNnɹ@1?Pt{4mL0zө$k|"񤍭bnI9?9 oIK۷O?O7l[ 鉝*F9ֳ^dRώB]b{$-9RZY 56o8nHy+C6@^{!!fn*.g6v-upyȳ?6ӉlKCHO8bUB6BrQ$9vLo'('!wl49"ahvikx%4 \q#kOp) ڟpRwۿ.nooYR"ry]@s%`_Y#\c B) )+^ţ.;!+7,\tLQz# #g 3d]ςA?HKH'WM*T oU[%3Xmb: {{n[ADR!"OQ}{I|;ce1KޮiQRl; 15t6I~\Vte& 0:bI2#lbqQ 9B深6S7vo&H0 CNL hϿUqR>9t ,Zٌ4"aB$ ZWa+,}jl%Qm8 ITn:ђYkc[5md5\pL'Yn|qG?716 Cf),hJ;¦{&~56) S,~dSȜ>y8fՋ[&|_CSB Q^c}=c%, ,6ׂ/PO\ۘ):AVǰ#L"+IsF3Uj1z1#Wi#?#Ƿfq"R !7:l $^/7.Vٽ%wu&[V WYmIQsK M%Ś: z"MA旉9H#HBz{?9&$" shnfgm*a$`]G> Kr|(,vdbFyԘ]OZfnrnsJQbb{I^An٬C_HKRp|}&/>fPV0EGr߹GSro)HD 4 āfk|Z(X -Z((&ov'?$*՜SyD o$H_ZSݭl߷- lNV rZ:"v+э0WsQ XjK6ljxs'n-ngWHz8qT)|܆".}ʖ#H &N^FkOABDc.%99".;rج)UC_L'+nƆI0#Q߳2QNɪmEo#-< aɆӆ9~nwSf1(: ZV/'?#Bڻ:^{,|[n3f6W3Ћc0m:Yr$P@Ev-"䜙|uR-˔Iyȶllei, 2P2w,R|ﵢ[S*5 oK; 3}++xVJrF#|ʸz`X|/̪qENOh4ՈT`,mÔLFNg|" X{l\#)>v/DWYIjz0g3ί%ӥ‚3$}'нSPCPRGntb};fhSX ezR+aHnڅY0&Fڅ9l/⭨j} Jl":;At%F$YI?c૫4I3!ceI6LUa+ y?`tP)a^S&Nf?<3s%]j@݉~ZeFmV0a>rҾaS{`ƭ`ն,޴]A_̏|rҷL_]#a}*Us˫@az:?~y}b˱m8)ގXA}qcj*y5w_},m{wj$nSkRn)KЦHۼvam- kz4{$4W.m$36׏e7WŘpO/Spd8~$G"$)(h?6c<Vؑ껓>J՟ӕ vV[gs}F|$34p&'e~n~,>B`8:7X8$6d=椝p%X/U*=\#pvn{4 gq_$$2}x.sʕ2>lx(tfK_Xm#xz|c1y@0}3^%J[UO?}''@LtV"d |n闛!m}:'*yivygp˟LCՄgɹAk#g?HKn2*Ɵ iD IDAT;sآ<禘g`0"mtybBLf F|!8ꅫ"!xDo XbkԀi*6Ǖk-D:SIz=-hgbqKU -fvR"L 9^QbZw@{3藷0qc7Ah:M,iDmVkkmnt(VȚ[Gz#(W:ܽүO ]'^z\3nǀtCu]i.3/PB]ᕼ){ȁ5=Fb_<6pc63a ӌQA멍@ p?ZJ:y KI /1$_FC c]%1׸YH\nW0[D:}ܱ<W]rGsj`zszz=z7q nj)ANv/8c}j/mk`jgV.T֖Ŗn|$q_}^Y~lҝXԌ*zHL!9]l}ޏ7l={s$10b>_Ľ nJ)v<|#d$^-2= cz,7x4 ]=BydAGJB鰼/Vy0cM0 pVk!l޻ԙLX5`Cq6ۀ$Vw'Ū&8h1:DvT["g ed) c%rF=@4>zAFL+kNIoŸ FiW^e:P؜^krHOJu8b#DNu;3H9?=`Ѷ&]4S_6r`a$14/Mb4rzєb 3k8râAh s:l{X"XGFB=pAT'8X x8I"PPج;` VcxUcD]v]ߢM: WOA|] q#B7V'ek , ƒ8 ^ͥ~zśJ,(R˴$T)GQæK kl gm0H*^)}I[ɋ,&G=^*n *1?l#}SNuNIcWʑ9sMwB ` LJjN*f {lq- ivrcER | f9+EН+:%J"`+@qj<JOx r?~!)Jz3SI{㨴rOYsF:vZ,ܻ)쇘]nD{rJ /B7;P9}3߀}bV~vfP*6_fD~~*܍؅Υ0Q_lve^b^ $Kadgsb@2ܣߟ]aHq O:1Zp@:L}r;eY78HtY4H_Х cU^+ɏlXQxDAg)Ds7 ̓^;#ϷƖmT!XMXflF:%=pAX`n߅{)ۗ$c$W̾G"z L6,-t@- [!]>hAcam}P?,C@|3H\B1*SyB~ zVՂ *^^7QyfN0!$axNcqfcyl$PɌQY}8K"9ƫ4䞜bF.D$TEAQK`[\񌃢^[͕ G Aj4'뵴qxNV49UŠXiu}ZOW` Fg D#NE 2M)^Hqt8bݚ~(F-yZS(^G5q{s`&\#jP=향?s?Y*͸I)j$xF=Mu./6&#Vnw1Ƈ"رw" [d-1n`#,J >&>Hӂ~b5 ] anS-eWjtc77mWPafOxo9aɂEZ+d7Bc,uD$jZ. 4i&mKj0RNA6E8KIT9W-V5^\p孋z:M哛2pF)e9i-keCxG䡂zsŌnsvsf89]Ն nOTY R̒<_vM\G 냺Dx9!?C]w#u`I;bq59}JZay 2*<e|}_^GԿ1PS՝ȽvEq|w]֟hK XVo欅])_*W.$ V3R-R\'n'o>UPѣ m8S.% 5 LH"hV EnHbŭPYֶqIIjL3eW56>N㊇{jq [YDp&PY7L35GӼ~O{9+NnNҼ*PU r^٫ai_WW:Ġ LZ k[81A}r^T**KΕSeo3ȳCSɯ'ZNqJ?u5pJR,I^8`(5Cm䊃9 5rfr u3~!ȥFm3jIze NW{Kݎu)UCC@]DLռFJxOj27>OՒUy<`eM |\[Fsfiiv5M:Q?d{'1TJV=9Y6/gKS<kVc eȤR<7 ~**Sh7`6u[IWYl8F/0M挝 `{<}f%k 2iq TKUхdT*?^pK:\|ڣ9s13i@I[QV%RZJtSO+3~= 6U(v 7%aqPEtd1Y&2T$=/p󼯧K~NM0(ϕ>I |#H0MwLW& c*EusN?kY",U'Ϙp x9LxA:үuQjx| e:&f`4RzN.zR|?v^c%WM:fbUr2(W[YmoOZՙZ)2]DL/{ps Cҫ /k(X Yaؑqp.<ϾѯuxfSyO`Ӭz9;O} E*ʤeS|4T9AhT)T&Z|נի{N 9M$os?*zI"пr >ѪVy~ '/CSgVOUdbɲC0P\7}VP;,oH6{^EXaT>}> 3qr*ϯ87ׯAKyn8&\"qNȱTŸE_hb[L pJ? g%?:W#|$A5J<G. XE8'%OJe>nCUQ$|Cy4KҞnݵD1yJ@8Iw+@ U=`ꡥyɐ]fN(*UcӔ 72n $n{N&,9>e;_"Z 겖Ga_=p/k2s(8f e\8Fsq0Ķ9JWߪMuP $9FzV ͈&T2Pb,Z7*rNGkrc9-;"f wUg-=\bi9tXlcChj Pv>TsHF yq+N.1y$ʒW62gqZ9nkjs}>yvJK#ȖUmp8z/ԲǯNlaA׹yCfH/+g1'|=*s,B\Og^J%#g> gn+J,qNpda<¾'r8WҨ[zK^-e_V `pثsS-ˠgR%v;`!G {m%:T/=~k]a$`2̖fkX ~JByN?r oSo:xPpP;,3/+Ûj:ewc}WG«I pn&A IDAT 6M|jiܯC#5Ҫu^ev2Fղ bG_-ꆕ ^*E"e9cj;s*Z|f|PTm`:A7ٌ^|X+c$.Sd/A¼!@e巡x~R;7C$hCy B˨g3_o*?"rdT}1o+3ebft<T; ޥeE2IR|ݬjXMrvH4`OReh&+z2Ek, ztmO~4/qi ?JXjVm%' Q4fsa_ݲNi`ڿ,]O7UhH*6hx|&C &_A > onSUa6NrusvATBw =;t!xl&Йђxgې()z&s8n:Ǵ)I"ŠS_<xe=/X +XG4\3)<^W5ʁwu!|`/G&rWA4PNq2>nUWME>>B\5!=]p1eϩn %ᕱPוJDS\+{SUڛ317cJD$Ёt_. xe+]s,m"6Z5-I}MoisEKy^_cWja`;nc٭Rt-o 7W1GjFY_-ĩ \EJ%elݼӔޅC$}-'*ˡp࢒Hr' K|دuht|:dGV;.;a [NG`.nq</+) tү*m>}2KrWҤ+Vj6>f֎'x^E݂PzJ W}ખ}?qǒ p;/ԄӌZT0a{0*kڅ+B*:jkN~>9wk/"0`x{XzuC;P$C.37,MYutr?;;>ryaqexu =6Aث${*}SV|KgUqp)ۑ= NTQT`&hGB*v%()kʈ5CZ7,@Ws`CEK~F ndp zF:q)V$23s%V-E+1OE*;n*><S::rPJIVm+u4?v!ݣ>[jHWϯ+CO*"-8v?p#mjb=?7%{N^ ]|[ [=)gv~,G(ܓRgbc6k~oZB([歪@ = ;$x/RiogC)w5?ݸR?:ҏ,.l~`3Ns;p=e &?7HIENDB`ethereal/sealife.lua000066400000000000000000000153331411051537200147660ustar00rootroot00000000000000 local S = ethereal.intllib -- Seaweed minetest.register_node("ethereal:seaweed", { description = S("Seaweed"), drawtype = "plantlike", tiles = {"ethereal_seaweed.png"}, inventory_image = "ethereal_seaweed.png", wield_image = "ethereal_seaweed.png", paramtype = "light", walkable = false, climbable = true, drowning = 1, selection_box = { type = "fixed", fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} }, post_effect_color = {a = 64, r = 100, g = 100, b = 200}, groups = {food_seaweed = 1, snappy = 3, flammable = 3}, on_use = minetest.item_eat(1), sounds = default.node_sound_leaves_defaults(), after_dig_node = function(pos, node, metadata, digger) default.dig_up(pos, node, digger) end }) minetest.register_craft( { type = "shapeless", output = "dye:dark_green 3", recipe = {"ethereal:seaweed"} }) -- agar powder minetest.register_craftitem("ethereal:agar_powder", { description = S("Agar Powder"), inventory_image = "ethereal_agar_powder.png", groups = {food_gelatin = 1, flammable = 2} }) minetest.register_craft({ output = "ethereal:agar_powder 3", recipe = { {"group:food_seaweed", "group:food_seaweed", "group:food_seaweed"}, {"bucket:bucket_water", "bucket:bucket_water", "default:torch"}, {"bucket:bucket_water", "bucket:bucket_water", "default:torch"} }, replacements = { {"bucket:bucket_water", "bucket:bucket_empty 4"} } }) -- Blue Coral minetest.register_node("ethereal:coral2", { description = S("Blue Glow Coral"), drawtype = "plantlike", tiles = {"ethereal_coral_blue.png"}, inventory_image = "ethereal_coral_blue.png", wield_image = "ethereal_coral_blue.png", paramtype = "light", selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16} }, light_source = 3, groups = {snappy = 3}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft( { type = "shapeless", output = "dye:cyan 3", recipe = {"ethereal:coral2"} }) -- Orange Coral minetest.register_node("ethereal:coral3", { description = S("Orange Glow Coral"), drawtype = "plantlike", tiles = {"ethereal_coral_orange.png"}, inventory_image = "ethereal_coral_orange.png", wield_image = "ethereal_coral_orange.png", paramtype = "light", selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16} }, light_source = 3, groups = {snappy = 3}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft( { type = "shapeless", output = "dye:orange 3", recipe = {"ethereal:coral3"} }) -- Pink Coral minetest.register_node("ethereal:coral4", { description = S("Pink Glow Coral"), drawtype = "plantlike", tiles = {"ethereal_coral_pink.png"}, inventory_image = "ethereal_coral_pink.png", wield_image = "ethereal_coral_pink.png", paramtype = "light", selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 8 / 16, 6 / 16} }, light_source = 3, groups = {snappy = 3}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft( { type = "shapeless", output = "dye:pink 3", recipe = {"ethereal:coral4"} }) -- Green Coral minetest.register_node("ethereal:coral5", { description = S("Green Glow Coral"), drawtype = "plantlike", tiles = {"ethereal_coral_green.png"}, inventory_image = "ethereal_coral_green.png", wield_image = "ethereal_coral_green.png", paramtype = "light", selection_box = { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 3 / 16, 6 / 16} }, light_source = 3, groups = {snappy = 3}, sounds = default.node_sound_leaves_defaults() }) minetest.register_craft( { type = "shapeless", output = "dye:green 3", recipe = {"ethereal:coral5"} }) -- Undersea Sand minetest.register_node("ethereal:sandy", { description = S("Sandy"), tiles = {"default_sand.png"}, is_ground_content = true, groups = { crumbly = 3, falling_node = 1, sand = 1, not_in_creative_inventory = 1 }, drop = "default:sand", sounds = default.node_sound_sand_defaults() }) -- randomly generate coral or seaweed and have seaweed grow up to 14 high if ethereal.sealife == 1 then minetest.register_abm({ label = "Grow coral/seaweed", nodenames = {"ethereal:sandy"}, neighbors = {"group:water"}, interval = 15, chance = 10, catch_up = false, action = function(pos, node) local sel = math.random(6) pos.y = pos.y + 1 local nod = minetest.get_node(pos).name if nod == "default:water_source" and sel == 6 then minetest.swap_node(pos, {name = "ethereal:sponge_wet"}) return end if nod == "default:water_source" and sel > 1 then minetest.swap_node(pos, {name = "ethereal:coral" .. sel}) return end if nod == "ethereal:seaweed" or sel == 1 then local height = 0 local high = 14 while height < high and minetest.get_node(pos).name == "ethereal:seaweed" do height = height + 1 pos.y = pos.y + 1 end if pos.y < 1 and height < high and minetest.get_node(pos).name == "default:water_source" then minetest.swap_node(pos, {name = "ethereal:seaweed"}) end end end }) end -- sponges minetest.register_node("ethereal:sponge_air", { drawtype = "airlike", paramtype = "light", walkable = false, buildable_to = true, sunlight_propagates = true, pointable = false, drop = "", groups = {not_in_creative_inventory = 1} }) minetest.register_node("ethereal:sponge", { description = S("Sponge"), tiles = {"ethereal_sponge.png"}, groups = {crumbly = 3}, sounds = default.node_sound_sand_defaults(), after_place_node = function(pos, placer, itemstack, pointed_thing) -- get player name local name = placer:get_player_name() -- is area protected if minetest.is_protected(pos, name) then return end -- get water nodes within range local num = minetest.find_nodes_in_area( {x = pos.x - 3, y = pos.y - 3, z = pos.z - 3}, {x = pos.x + 3, y = pos.y + 3, z = pos.z + 3}, {"group:water"}) -- no water if #num == 0 then return end -- replace water nodes with sponge air for _, w in pairs(num) do if not minetest.is_protected(pos, name) then minetest.swap_node(w, {name = "ethereal:sponge_air"}) end end -- replace dry sponge with wet sponge minetest.swap_node(pos, {name = "ethereal:sponge_wet"}) end }) minetest.register_node("ethereal:sponge_wet", { description = S("Wet sponge"), tiles = {"ethereal_sponge_wet.png"}, groups = {crumbly = 3}, sounds = default.node_sound_sand_defaults() }) -- cook wet sponge into dry sponge minetest.register_craft({ type = "cooking", recipe = "ethereal:sponge_wet", output = "ethereal:sponge", cooktime = 3 }) -- use leaf decay to remove sponge air nodes default.register_leafdecay({ trunks = {"ethereal:sponge_wet"}, leaves = {"ethereal:sponge_air"}, radius = 3 }) -- dry sponges can be used as fuel minetest.register_craft({ type = "fuel", recipe = "ethereal:sponge", burntime = 5 }) ethereal/settings.conf_example000066400000000000000000000044431411051537200170750ustar00rootroot00000000000000 --[[ Ethereal Settings can be changed here and kept even after the mod has been updated --]] ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces ethereal.leafwalk = false -- true for walkable leaves, false to fall through ethereal.cavedirt = true -- caves chop through dirt when true ethereal.torchdrop = true -- torches drop when touching water ethereal.papyruswalk = true -- papyrus can be walked on ethereal.lilywalk = true -- waterlilies can be walked on ethereal.xcraft = true -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand ethereal.flight = true -- enable flight potion -- Set following to 1 to enable biome or false to disable ethereal.glacier = 1 -- Ice glaciers with snow ethereal.bamboo = 1 -- Bamboo with sprouts ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood ethereal.alpine = 1 -- Snowy grass ethereal.healing = 1 -- Snowy peaks with healing trees ethereal.snowy = 1 -- Cold grass with pine trees and snow spots ethereal.frost = 1 -- Blue dirt with blue/pink frost trees ethereal.grassy = 1 -- Green grass with flowers and trees ethereal.caves = 1 -- Desert stone ares with huge caverns underneath ethereal.grayness = 1 -- Grey grass with willow trees ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers ethereal.prairie = 1 -- Flowery grass with many plants and flowers ethereal.jumble = 1 -- Green grass with trees and jungle grass ethereal.junglee = 1 -- Jungle grass with tall jungle trees ethereal.desert = 1 -- Desert sand with cactus ethereal.grove = 1 -- Banana groves and ferns ethereal.mushroom = 1 -- Purple grass with giant mushrooms ethereal.sandstone = 1 -- Sandstone with smaller cactus ethereal.quicksand = 1 -- Quicksand banks ethereal.plains = 1 -- Dry dirt with scorched trees ethereal.savanna = 1 -- Dry yellow grass with acacia tree's ethereal.fiery = 1 -- Red grass with lava craters ethereal.sandclay = 1 -- Sand areas with clay underneath ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand ethereal.sealife = 1 -- Enable coral and seaweed ethereal.reefs = 1 -- Enable new coral reefs in default ethereal.sakura = 1 -- Enable sakura biomes with trees ethereal.mediterranean = 1 -- Enable Mediterranean biome ethereal/settingtypes.txt000066400000000000000000000045001411051537200161500ustar00rootroot00000000000000ethereal.leaftype (0 for 2D plantlike leaves or 1 for 3D) int 0 ethereal.leafwalk (Walkable leaves) bool false ethereal.cavedirt (Caves cut through dirt) bool true ethereal.torchdrop (Torches drop when in water) bool true ethereal.papyruswalk (Papyrus and Bamboo are walkable) bool true ethereal.lilywalk (Lilypads are walkable) bool true ethereal.xcraft (Enable X-Craft cheats) bool true ethereal.flight (Enable Flight Potion) bool true ethereal.glacier (Glacier biome, 1 = Enable / 0 = Disable) int 1 ethereal.bambo (Bamboo biome, 1 = Enable / 0 = Disable) int 1 ethereal.mesa (Mesa biome, 1 = Enable / 0 = Disable) int 1 ethereal.alpine (Alpine biome, 1 = Enable / 0 = Disable) int 1 ethereal.healing (Healing Tree biome, 1 = Enable / 0 = Disable) int 1 ethereal.snowy (Pine Tree biome, 1 = Enable / 0 = Disable) int 1 ethereal.frost (Blue Frost biome, 1 = Enable / 0 = Disable) int 1 ethereal.grassy (Grassy biome, 1 = Enable / 0 = Disable) int 1 ethereal.caves (Desertstone biome, 1 = Enable / 0 = Disable) int 1 ethereal.grayness (Grey Willow biome, 1 = Enable / 0 = Disable) int 1 ethereal.grassytwo (GrassyTwo biome, 1 = Enable / 0 = Disable) int 1 ethereal.prairie (Prairie biome, 1 = Enable / 0 = Disable) int 1 ethereal.jumble (Jumble biome, 1 = Enable / 0 = Disable) int 1 ethereal.junglee (Jungle biome, 1 = Enable / 0 = Disable) int 1 ethereal.desert (Desert biome, 1 = Enable / 0 = Disable) int 1 ethereal.grove (Banana Grove biome, 1 = Enable / 0 = Disable) int 1 ethereal.mushroom (Mushroom biome, 1 = Enable / 0 = Disable) int 1 ethereal.sandstone (Sandstone biome, 1 = Enable / 0 = Disable) int 1 ethereal.quicksand (Quicksand Bank biome, 1 = Enable / 0 = Disable) int 1 ethereal.plains (Scorched Plains biome, 1 = Enable / 0 = Disable) int 1 ethereal.savanna (Savanna biome, 1 = Enable / 0 = Disable) int 1 ethereal.fiery (Feiry Lava biome, 1 = Enable / 0 = Disable) int 1 ethereal.sandclay (Sandy Clay biome, 1 = Enable / 0 = Disable) int 1 ethereal.swamp (Swamp biome, 1 = Enable / 0 = Disable) int 1 ethereal.sealife (Coral and Seaweed biome, 1 = Enable / 0 = Disable) int 1 ethereal.reefs (MT5 Coral biome, 1 = Enable / 0 = Disable) int 1 ethereal.sakura (Sakura biome, 1 = Enable / 0 = Disable) int 1 ethereal.tundra (Tundra biome, 1 = Enable / 0 = Disable) int 1 ethereal.mediterranean (Mediterranean biome, 1 = Enable / 0 = Disable) int 1 ethereal/sounds/000077500000000000000000000000001411051537200141615ustar00rootroot00000000000000ethereal/sounds/ethereal_casting_rod.ogg000066400000000000000000000373341411051537200210360ustar00rootroot00000000000000OggSt9=vorbisDOggSt9LNi Avorbis Lavf58.68.100 encoder=Lavc58.126.100 libvorbisvorbisBCVcT)FRJs1FbJBHsS9לk SP)RRic)RKI%t:'c[I֘kA RL)ĔRBS)ŔRJB%t:SJ(AsctJ$dLBH)JSNBH5R)sRRjA B АU@ P2((#9cI pIɱ$K,KDQU}6UUu]u]u 4d@H d Y F(BCVb(9&|sf9h*tp"In*s9's8srf1h&sf)h&sAks9qFsAj6s9j.s"Im.s9s9sspN8sZnBs>{sB8s9s9sАUA6q HEiȤݣ$h r GR TI) 4d!RH!RH!R!b) *2,2,2밳:0C KMXckZiJ)RJ) YdAF!R!r)BCVU}SvteׅYn]8u}amXeY9~Xet]_XmVY_}xu]n̺ mc}Yf_w:㩪+ , Ƴ, *±,j°ڶ1ܾn,pk1Qu|_x tu]yf]utG8~@!+8$dY(Y(躢hiiiZgi),iiZfhk)˦jʲi캲mlۢiʲil,ۮ꺤Yyijgjʲiyjzh(j,[g試'j*˦ڲilmmim-jۮ,ۺ/iijg癦il+[(扦j,ʖ癪'ꉞk*˦jڪil-*ˮmʲnljjʲl˾ʪ)˦ڲi-۲˲iʲim.˲mlhm-*۲-,ۺʮo-p0l+ۺo2}DӔeS5mTUYvee}4m[UU[6MնeY}Yma4M6UUMմmYmaeveٷe[uוu_}e溲˲p p0 a1R9Q9 dA!9!92 RZ !Rk8ؠ)8@!+TX癢jڲcI'H牢im['牢ih뺺.뺲+릪ʮ,ª+˲m°ʲl۶oܺ‘.1 G @6pR4XhJ 0!B!RJ!0`B(4d%!B!B!B!Bs9s ؏pz011RcR1 D9tJs1T9!TZ˭rB)T[朔b99))VsΡb;)՚k͹j5\s.Śk5r5s9Ɯs9s8 6pR4XhJ @F)Ɯs:c9!H!ƜsBc9*sB!d9!BȜ:!A!B(sB!J!B!B!B!BB!PB(%X`'Ec %3accCrLSNtLdD'DZP 0 b @"3DBa,0(y!$&(..tqׁ P@N7<':x8(*,.02468:<> "   OggSt9 $()),$! ! &&'(0"!*'(+ )*)!!/.+ +)*!***'.+!&).*$-!+)+!(***('"/-)%)*&,*&)("**(!)*)''+'*.(,**,)),'*-*'%)++*'+*(),*)*)()))-+(**#(*&''*!*'*&+)))*'+,()))()*-()*),),',,*+(#''+$")-'"#*,)!()) +**(+ ('--!#+)!**(!!!(,*+!!**-) "&(-+''&,-+,*@&ʯwumg+v5_B5XZ9,ovYrT378 vJ|;uԪƃT (Fswkc D4fm%M2Dn(D]R%1f[PPYX[Ǝw@T]0IG?玫sC+‹kHXڑ2}~#OrUZS@їAϷ*wl?m| 8ZKe"UB{1<Ŋ?BNXBlbA?c?c"]~`k`LxJ#X3cDy{AV|}dN9ybI*ssq\,<7ާ[.5J9$T U>}e~E<F.s96#`gi״>PГ/ 8؀7zx @&4w@ϩ;s1@>*y~'ՕjԖ9 @l uA*}=ݐPc3EOL1x>~81qܞ^2$YNo&W}Hc돍XJփ:~D X&=Ļܭ9OLgRI&̧!F>n=\_ z'I?nNr(3yFlz U*۳Z~zN(4zEj+ێK^= L:7y>Je1JkȕFlg[wpp~dsm{ۑNKz;~Ҧ66OåߜIiu۷nDnUp_/= akh6δPA)OJTOVX(rs=uoᘏ[{“_p.qNwOBKTh9TMЫ:/1 Uc=p&n@'K*Ol FBq @d1Tvƃ7j%Jsľj=ADHř<(Oy+|C PY!8ݎxj͗쿣zEc_$򡇵ƾ7|Cio7_[%vKnǡߛ`oq*-:w߷eb_ٰ&S\vO<j $˖|6=wko77CV>c'"बt|G7yњf`Wk=ܾ+;_$i͍Y|ϊ(@ļORaѪ^\M4}wO8]f :G,׿a1ô'yjʙzȔmd嬟|_hI?9yXPX>͏WMGx#)MSϵBN9?T  cH|bM44ްy|􏷫W $O,DJRَL؎n|RUQvvzg|;g;| \62Qʋvqi^pPUq8_Gzk#Ō;\zb6wP}>c[rn8F7eҳKncu*ȉ;nMW6e-9<ݙ v^]YpSu Hw/ 3-2G ?F9A})Rߞy10؞~-(澛?g.JnQDd`j3=>&zj{Barڔ}?Q)5߷6[+|NߡޛTM;r(C7 )[xCByf-dOeJdpH6Z(E熑E44bjqZBi1{9n%7;;w0=G};455[ZTkr˩A9 z]`>'4Nv4:!ƳYpDKM]0v{Rj7̩E!߰I~@o$㯵z'1WU??c; < 5_{W1~Y=(Yoq'N"埏zE-Z{ۛӠzP+FCļe<ӯ@(e}1_1mV^_Z%;yЗ&Hcs.q鼏ulDZV{.L}7RmgݱKPxMW%ļjR^d,T0|%QPHzrZTѕgzϜu7_0 Ceɹn|yi7cy/K{:wQ$]{g ݉¹Qw{8<{R5e32IY6OI8Ey}u^4-5XJ?ًԙ V+B5̪6Nʃ4}Z}ܬ{.E xoZVuStpŇc[X-jz%(GB4ii7pp.c1Sl>|[_ǜgeYޟY?K#/De )Kg]ԟ-ɹ {sGW@wS{g2R\F )6_zq?J__yq ȟL#nG4 _V`G ϾeZ)Qvν(+2ݱFNܙ\@w~m|fƖp_[Y~a<ǷgS{osVjߏ.YuܬNVLOGc! Vo;1H&6'}.bgR rs$v&?SߡVy0՛2v\D9O!2Fa+7h_6qqWυJ-fDǝ{t' Xv6󇵳ݛmLiL#uwoIw?YpzKx16˭ͪ$>@8ud1Ԓ^_-(6qwSU-g>埏8 (دs<*Ek1ygu;dyFn&iM>,M'A7OQ<9X{Nw-Vw=fz$_R+rpG*i8h[e[pKDPOgfxg;bئw[Ǔtcf:]OˑƏӯܕm9Sk=U#)ixdN]Z3s17#mRE<.}K?hOͯe~gr"5R۫XeoL?ˊr]ׇm>+,Aʎg폄p{ź s*ZV!_e~ET:`}}9 lב1t^}*̐4*v[(6<{&cpJ%}L:o7⒕hqG??; (-Rt{6 UCFaYB=OIJl"=y1vECRN({&B@ܯnJju|{ŅhuUWtvG~8=SGMoɦ]{1#kFU绺*w2B< 6;"w_[(!ôz1>rC>? >c3@ WnGr.@5E;W r!+M$_k=R0<}?US;W|q6e'sʱhW}ŕEU_M:9?3qMlHajf .*/m+i>57lJilofg6/b5ڠd::B!y> pvI V~7W~?a`ZV~a:MK_Sw8_(n⯄Ⱦ8 B"ʩ"+Z="r2gc]w4mcJN_OR6g{0tsӝ8p~9M5Hyyy~u*>7'ZHW ԽWq6\[eUپ9HFۘnq@u$F[Ҫ K9/9>nZ ?U6eg?sDY$K!tϭs%B :|gx1v7T}]ۯYhSS#&ySTw~?ns_:}@^֓@zE@ U}njwL&>nUٰH/;sKM=#/`=@ϢFHyɡM9 TZa 4<7Ag@onK]gΏޥK| >=Aɟ9>/W>w?2igă˰ޣmc\i<9;:5~m)+];Z_j>- yAu~{9%55T~Lm+2@Ѐ5fo'=w,~ŤH-e,e9{L Ay5uӏd޹̞ron6פpܳϏ O9\Ϳ#mPē&MOi`gE6cԸby3[T2J3Eʙnv̿B ?WR&b>nؿ)Y5߽yjW:o,Όl)@0jhdYfZ/Q mXQvRi%Bu 8L"=kk$T#]4m1[yAxDnUT)v@1msy _!K6"Է#|dMQ*]7krw8,$z;2ۅ۳5Dw?F&@`Tp.S4 K|#ͥUgl@w?tplM!1L36|c)`#y |Hf.Bl1H{3ƍFBjnQ  σ *\ls(T@0T+â_䅯|;;dz8+ӆb =qH$CZ44,;{p1,ybpS>V/˟r脍}J.i%rx&lGϮ@j ;b4Dqڕ@n`m%peimG:5BI`k@02AyrFcZ3>n-d*ke[؟('y@0#,7Ӎ ?٣{ u\Uν6}Fݿ/P:0r13n䔿kǯ\0f73k;Y7c}]iޤ> Uq6X=/*PCF@_#DP#2qufav @셝;EO=byzx걓Gr\%F)>cWhdw k1VG{qyz8@!uiD&6[|zncm)F9 m:_|S"|d)nUGûj֎-|1c>nY@b9MwvǛ*ZL @+4Iٟ4fF@ЗHU=k6|n?>05T-:B| .SywcƔh|B0D4R7{!st>UA;v@p.B.p(!o[}wkx&ocķw9OqPU[CU7S]ø_çKVu6L\#C)7o4})U= /b#:o~Rns|5"d(\:ʓy:eH R ;fOI?WN^夨jeI0}rKߨ{sku{(fyS>`׋+jQ2嚪$#FygfvrEZݮ>2On a{]9fL%<MԴ\?̷jk!z) ytج؁ {a hǞ&>0EQt]MJ@uj<H$S\w}v-O+Uq.wH$5pwͻ@OO)鯂VG9 11.@3UMs?]B|{ݥPZyތWb$ "o: kf}͍GЁK)cltAL;/:%O;hSSY OggSDt9#'-('+*(" '.+),+$()* '+,-lЙS&#r~^z 3m˚OuΗ_Z[h*ߞstOIʪbbdbW#fVYTW'\vVXW&)ff9:ưsG~ lh+:^"6ɝJ+icz1"{=ۭ !>QߺcjPnt01GVu2 zhXyMtLʼ2V E:3s"uJdMr=[r2K6Z5MHG<iש'y tk7`06nשBMi;<2Qagc8M HFF]EkZJzFbw+OS.@K5 呱vWwDxFS6̿]fDq}1(uxs {.CD X)~yVv܏.Beg|P}s?e !Vkү׬Biu<'(cJ$-j=+xg;loU:};tc?C}{jlϮspsH\C3;>C)gzF}>d0󘋗ƺ˿].J?W~8,"{qC(S{uۭ˳C R+g͏AΩ=KgnEϲV\Nf$v3?mT}Q^=͝lH36_|G~ug lsS9SZ(հN ! "kQ?LQ x&#̾\7rH6uI](4E-mm`2rp@> 9u5}E詗 "ן[;h^gn>eBgZHln٣nndc'ϩqB E)=B9 צ]K6gpyhX7/%aCX5nuuRf"X71śPĥ6D-6ůϛ̙DޞGS>R!lb{Y^kǼTf+c9{Jő.{۵2_kx<|zeei~F's #+Mٷ&&eRbEÔ+ߔVn]s"AžB;ߥ(_ Ć@RD~Q`I!=T4|Vfנ)@n5\WF$y{+¿+uh>7B<.`oo6hylpk Bwg߼B0b?z-(vk$f0y7kqg@9S Rs7|\WgDOq#o C߄R1[x+=9Oʝ℄vin%4f Tf>n=ީ&HňF(Tro fT̈pL|E+-59W֑㵙 J98pcMb}{3B?^35**Z}1@և]VC]<ƞpVVVV$a[x{Z/? xcFjx"-losEs.8:^~kohXt `1+܉<,;;e]K$؈rn4f8X (TN[CMNSt9R[EF( [ۃ,V^gv2K \G_7?PIENDB`ethereal/textures/baked_clay_orange.png000066400000000000000000000006451411051537200206550ustar00rootroot00000000000000PNG  IHDR(-SPLTEtJuLuKtItKvMtKrItItIuKuMvOtLxPvNsIuJvLvMsLwOsJuLtJwNuKvKuNtJtKvMrKqKsMqKvIsMuOsKrIvNsJuLqJwNwPuOtMsI<6IDAT V0&٤XSSiЂU)/g=3Аn'mJs:b,J)Bn2S<`S8#8eW?^E|$9QP>S!m;R)SS!kDQR>2Ij,u'~2D~ZRV׹[քNb@)7{W IENDB`ethereal/textures/baked_clay_red.png000066400000000000000000000006511411051537200201510ustar00rootroot00000000000000PNG  IHDR(-SPLTEj54k76k65i53j65m87i65h32h52g32l87m88h43n;:k66m98q;;n99h53j64l98l76n88j76g42o::h54o:9j75k75m:9m99i64k87n98i55l88k77i63l77h33l86j55i43o99i54n:9m77o<;n::PIDAT V0E;LЉLZhr}";/P<<cɕAKR;ljZfFBކc'Fa2h=>.W^Tā_y4H0NdV ~2֨KG)hV8g'7r -l.?}z%&̐~:o*^dZ{ιe"IENDB`ethereal/textures/bucket_cactus.png000066400000000000000000000004241411051537200200560ustar00rootroot00000000000000PNG  IHDR(-S3PLTE@ aaaVۓ\\sߚMtRNS@fbKGDH pHYs  tIME ,DZIDATӍK POQ F+ a/]a:RYCq =;>)'oq}IENDB`ethereal/textures/bucket_cactus.png_hd000066400000000000000000000006451411051537200205360ustar00rootroot00000000000000PNG  IHDR Tg0PLTED,77HSTVihcvui6h}QŦjߚ(+^tRNS@f#IDAT(c` (jڻ0cccOPV#%׊RJiii`%Bj9޽?9ssNv@b[3ϼ{̴Vgμֵ""`UvVcc';TVu:uXתVt Wt (BM Wt! Q6 r  5RlTvX244HI.30VAR#X( blbl|kl/IENDB`ethereal/textures/default_apple_gold.png000066400000000000000000000003021411051537200210440ustar00rootroot00000000000000PNG  IHDRR0PLTEEGPP!XW(bayy5k8ItRNS@f@IDATc` ` S- b+]f 8f̨{{ DA%X- IENDB`ethereal/textures/default_ice.png000066400000000000000000000004201411051537200174770ustar00rootroot00000000000000PNG  IHDRR0PLTE͡ОԣϤڨԭ٩߰ٳ߹ܷWkIDAToDDۛA }}i"@+-f $L٥U{`if$' jea@2!&E$M4e%B۵5bE*JThBbFETI"T"Z!@2&EwitFL3ʍIENDB`ethereal/textures/ethereal_agar_powder.png000066400000000000000000000002241411051537200214000ustar00rootroot00000000000000PNG  IHDRb PLTEe-gDZ2J Kߝ}8_A.:c^j(AP ~2w79.]0I>Ō`(cZ#d_<flXɤChud+xpc_+8:bCrƘ[܌(7T>1@OoHWP}"+~C64%x+L"E 'GFuwx/@ї}{>1AvsxLlÍQWw* ҫ4P0VJ); xDy6"ڼZ'`š?FZqqe[ol&Bs`y ^IENDB`ethereal/textures/ethereal_bamboo_leaves.png000066400000000000000000000003331411051537200217050ustar00rootroot00000000000000PNG  IHDRRPLTEorm 3}mv ǒR1f11:~Yc\IENDB`ethereal/textures/ethereal_banana_bunch.png000066400000000000000000000003731411051537200215120ustar00rootroot00000000000000PNG  IHDR>$PLTE8$ G-V7wn}!+/58=tRNS@fIDATc`J 0 g#ʪPGuYU*Z d00p5 Tl5}6{U+%ي˫wwfؽcEe&ɤ5d`K93bjxZiIEP'D%IENDB`ethereal/textures/ethereal_banana_dough.png000066400000000000000000000003011411051537200215100ustar00rootroot00000000000000PNG  IHDRRPLTE u~܍NpritRNS@fTIDATc`]] txH ޑQQ^^`R d2FG3;2:;00(++1<lĎO,IENDB`ethereal/textures/ethereal_banana_leaf.png000066400000000000000000000006451411051537200213240ustar00rootroot00000000000000PNG  IHDR TgPLTEOT .^"1hFn9P%gVcHIDAT(==n0'FHZ#WnCR[+8ֻ{F?N Ip"]C'aydRLw.Fk{I2ׂkPmΑoYHI~ךK2aHґ}7 X ?-Lȑ7AܓUӳv6#]8m8LN؅jc!T޼!RpM1K#oW;9F-CBq@VN_BTRCxZ{wɷw0h{!?>.t:m-`=q)PffqRv]uTFB6_IENDB`ethereal/textures/ethereal_banana_single.png000066400000000000000000000003101411051537200216630ustar00rootroot00000000000000PNG  IHDRR!PLTE8$ G-V7wn}!+/58=otRNS@fUIDATc`F e023D rcf9X ٖClӁ U@%L櫖O2++;RA*XC;:CC7AIENDB`ethereal/textures/ethereal_banana_tree_sapling.png000066400000000000000000000002611411051537200230630ustar00rootroot00000000000000PNG  IHDRRPLTE -%5,#?2)A2%P@23u+ H69tRNS@fDIDATc`@0FcB  GGC{XED'C3;@313`,( R 7IENDB`ethereal/textures/ethereal_banana_trunk.png000066400000000000000000000003321411051537200215510ustar00rootroot00000000000000PNG  IHDRRPLTEEC'SP.TV2Z[1`a7jj?trB~Ic}IDAT 0Eki{|@%kPGD۵sp8F2dt6POD[}ڠ]b'u-+pʡl]L߆G**XY`D|Ѳ3J?IENDB`ethereal/textures/ethereal_banana_trunk_top.png000066400000000000000000000003201411051537200224300ustar00rootroot00000000000000PNG  IHDRRPLTEI>)WI/gW7~kDTnʸsIDAT 0E KϕJ2A,``ڬ_wz<ycn=U;JM-?Rz=cUvIRQRv uFW'#"IeIENDB`ethereal/textures/ethereal_banana_wood.png000066400000000000000000000003221411051537200213550ustar00rootroot00000000000000PNG  IHDRRPLTEK:#[F)x^7m@RbrȭuIDAT 1 C  :[K&@[ C WmD6le)\v_A'㜴MN"e6Č=!'GRkZ3ZLBߣA"\VIENDB`ethereal/textures/ethereal_big_tree_sapling.png000066400000000000000000000004751411051537200224130ustar00rootroot00000000000000PNG  IHDRRsRGBgAMA a pHYs  ~tIME ,qtEXtSoftwarePaint.NET v3.5.11GB7'PLTEA2&?2'.%6+#6,$;.$=2+=3,>D*A2&P?3`y5KiKtRNS ;WIDAT[c`@<\P BK&h< ,+.] vՑVPsX1P!Qe^ )00gNFIENDB`ethereal/textures/ethereal_blue_marble.png000066400000000000000000000011071411051537200213600ustar00rootroot00000000000000PNG  IHDR Tg0PLTE*AkDcMoWy`hjqmtxv{̀ʇҔػ"IDAT(Q=@9{џge$Jd#!Dr7^Kw%5kOD I9t )]D"IMtoӼ7C%USV91+[lz}dfiUI 7 |!Sd^;d79l-R= T">t e?vIi#_P*M1գ\qPW9۠gp"9n$F .~p%ioz$!CIޅ{B;PBI1~KF@B}T- []AI5C e墰PbanOC A/p3N_ JBMI+۱۲烎]d ѮheFOJ;HLb[<f+CQKh3JbYq]X{o'Sz2hyr0n?0uY:)IENDB`ethereal/textures/ethereal_blue_marble_tile.png000066400000000000000000000011311411051537200223720ustar00rootroot00000000000000PNG  IHDR Tg0PLTE1UFhPq[|fhqlvry˄Ā~Ј҈ػUIDAT(MOkQů~?@&(t&".< N!*f"yL .֤>ͪûo Ά [< IZMQ_]yV=}۲[Xkb,Sro0æ{q8Ox8h^YV0!GĻwtc^hUt@L\gV (5wRMB+wgG4m"JhIREбH>ƴ:(53v$)/@~2 4mDуo}|;>L#"m$ՃĹ=μ!! |gqILFi~{m>/m>}lIdXd ;#إrIENDB`ethereal/textures/ethereal_bowl.png000066400000000000000000000004721411051537200200560ustar00rootroot00000000000000PNG  IHDR Tg0PLTEH(:-#h1I8'J@[F IhQ0~b9bykm7y~J(M]OtRNS@fIDAT(͑10 ECbX"R"=HC! : uLDо?Y?sf.K/3yD1$,H$К8rJJ5E#PjVc@&O` uw:{R[9^6Хw tzDGD-Y#Reuڰ?OXuvIENDB`ethereal/textures/ethereal_brick_ice.png000066400000000000000000000004201411051537200210160ustar00rootroot00000000000000PNG  IHDRR0PLTE}Ð˓ӚϡСةէݯݴ۸o'IDATof!nꗝ`hAڪrw~hfޫwdI"##aDDB뺪fuUFcgtDv@wwefv@iIfvsfDgfA]DGfrf1"B0fJBIENDB`ethereal/textures/ethereal_brick_snow.png000066400000000000000000000002461411051537200212520ustar00rootroot00000000000000PNG  IHDRb PLTEZbKGDH pHYs  tIME  /۩i#IDATcXj ! 0Xb*А &F1_IENDB`ethereal/textures/ethereal_bush.png000066400000000000000000000003341411051537200200510ustar00rootroot00000000000000PNG  IHDRRPLTE1.[&5g,OBVHeVn`uh㟐IDAT10C_Bi\8f. !e*bKϖyjfa}iXKxv@oԁF7n,4\G7(T00$DWa 1Oj~7n[3IENDB`ethereal/textures/ethereal_candied_lemon.png000066400000000000000000000003061411051537200216700ustar00rootroot00000000000000PNG  IHDRRPLTE!j^w!'(˵:^ٚ֬.rtRNS@fYIDATc` @Fzk2Zf b(UAT!hd:+!  sCQb7X$ (l`IENDB`ethereal/textures/ethereal_candle.png000066400000000000000000000003451411051537200203400ustar00rootroot00000000000000PNG  IHDR Hv)PLTEщjrяޮ|ܪ͙&tRNS@fuIDATHc`XA! 4`4ft3P,...(n3gNs@DHA`ILA543]` tkS2 cC$=G81lA!cW0(HIENDB`ethereal/textures/ethereal_candle_black.png000066400000000000000000000003431411051537200214720ustar00rootroot00000000000000PNG  IHDR Hv)PLTE861@@?щjrя|ܪ=tRNS@fsIDATHc`XBhehl frP]\PTUP 51BpFp1BM-=1D c =}TkIM-?F | [;a>\(SYIENDB`ethereal/textures/ethereal_candle_black_static.png000066400000000000000000000002711411051537200230410ustar00rootroot00000000000000PNG  IHDR TgPLTE861@@?щjrя|ܪ=tRNS@fIIDAT(c`XBhehl frP]\PTUP 51BpFp1BM |F%IENDB`ethereal/textures/ethereal_candle_blue.png000066400000000000000000000003431411051537200213450ustar00rootroot00000000000000PNG  IHDR Hv)PLTE#7I4SoUщjrя|ܪltRNS@fsIDATHc`XBhehl frP]\PTUP 51BpFp1BM-=1D c =}TkIM-?F | [;a>\(SYIENDB`ethereal/textures/ethereal_candle_blue_static.png000066400000000000000000000002711411051537200227140ustar00rootroot00000000000000PNG  IHDR TgPLTE#7I4SoUщjrя|ܪltRNS@fIIDAT(c`XBhehl frP]\PTUP 51BpFp1BM |F%IENDB`ethereal/textures/ethereal_candle_brown.png000066400000000000000000000003441411051537200215460ustar00rootroot00000000000000PNG  IHDR Hv)PLTE9f1mG(щjrя|ܪtRNS@ftIDATHc`XBhehl frP]\PTUP 51BpVBp1BM-=1D c =}TkIM-?F | [;a>(I_IENDB`ethereal/textures/ethereal_candle_brown_static.png000066400000000000000000000002721411051537200231150ustar00rootroot00000000000000PNG  IHDR TgPLTE9f1mG(щjrя|ܪtRNS@fJIDAT(c`XBhehl frP]\PTUP 51BpVBp1BM8 lPIENDB`ethereal/textures/ethereal_candle_cyan.png000066400000000000000000000003431411051537200213500ustar00rootroot00000000000000PNG  IHDR Hv)PLTEB`щjYrxя|ܪ`~tRNS@fsIDATHc`XBh̥hfrPTRP\ԜP usBHAHsB M-=1D c=}Tk M-?F | k;a> 2ړhMaIENDB`ethereal/textures/ethereal_candle_cyan_static.png000066400000000000000000000002711411051537200227170ustar00rootroot00000000000000PNG  IHDR TgPLTEB`щjYrxя|ܪ`~tRNS@fIIDAT(c`XBh̥hfrPTRP\ԜP usBHAHsB M X5IENDB`ethereal/textures/ethereal_candle_dark_green.png000066400000000000000000000003441411051537200225200ustar00rootroot00000000000000PNG  IHDR Hv)PLTEf##щjrя|ܪ%XtRNS@ftIDATHc`XBhehl frP]\PTUP 51BpVBp1BM-=1D c =}TkIM-?F | [;a>(I_IENDB`ethereal/textures/ethereal_candle_dark_green_static.png000066400000000000000000000002721411051537200240670ustar00rootroot00000000000000PNG  IHDR TgPLTEf##щjrя|ܪ%XtRNS@fJIDAT(c`XBhehl frP]\PTUP 51BpVBp1BM8 lPIENDB`ethereal/textures/ethereal_candle_dark_grey.png000066400000000000000000000003441411051537200223660ustar00rootroot00000000000000PNG  IHDR Hv)PLTEPI=ibWxщjrя|ܪوwtRNS@ftIDATHc`XBhehl frP]\PTUP 51BpVBp1BM-=1D c =}TkIM-?F | [;a>(I_IENDB`ethereal/textures/ethereal_candle_dark_grey_static.png000066400000000000000000000002721411051537200237350ustar00rootroot00000000000000PNG  IHDR TgPLTEPI=ibWxщjrя|ܪوwtRNS@fJIDAT(c`XBhehl frP]\PTUP 51BpVBp1BM8 lPIENDB`ethereal/textures/ethereal_candle_green.png000066400000000000000000000003431411051537200215160ustar00rootroot00000000000000PNG  IHDR Hv)PLTE`щj*r2я|ܪXvtRNS@fsIDATHc`XBh̥hfrPTRP\ԜP usBHAHsB M-=1D c=}Tk M-?F | k;a> 2ړhMaIENDB`ethereal/textures/ethereal_candle_green_static.png000066400000000000000000000002711411051537200230650ustar00rootroot00000000000000PNG  IHDR TgPLTE`щj*r2я|ܪXvtRNS@fIIDAT(c`XBh̥hfrPTRP\ԜP usBHAHsB M X5IENDB`ethereal/textures/ethereal_candle_grey.png000066400000000000000000000003441411051537200213650ustar00rootroot00000000000000PNG  IHDR Hv)PLTExщjrя|ܪabtRNS@ftIDATHc`XBh̥hfrPTRP\ԜP usBHQBHsB M-=1D c=}Tk M-?F | k;a>T2ZIIENDB`ethereal/textures/ethereal_candle_grey_static.png000066400000000000000000000002721411051537200227340ustar00rootroot00000000000000PNG  IHDR TgPLTExщjrя|ܪabtRNS@fJIDAT(c`XBh̥hfrPTRP\ԜP usBHQBHsB M IENDB`ethereal/textures/ethereal_candle_magenta.png000066400000000000000000000003441411051537200220330ustar00rootroot00000000000000PNG  IHDR Hv)PLTEoH$e.}щjrя|ܪ^)tRNS@ftIDATHc`XBhehl frP]\PTUP 51BpVBp1BM-=1D c =}TkIM-?F | [;a>(I_IENDB`ethereal/textures/ethereal_candle_magenta_static.png000066400000000000000000000002721411051537200234020ustar00rootroot00000000000000PNG  IHDR TgPLTEoH$e.}щjrя|ܪ^)tRNS@fJIDAT(c`XBhehl frP]\PTUP 51BpVBp1BM8 lPIENDB`ethereal/textures/ethereal_candle_orange.png000066400000000000000000000003431411051537200216710ustar00rootroot00000000000000PNG  IHDR Hv)PLTEStщjrя|ܪtRNS@fsIDATHc`XBhehl frP]\PTUP 51BpFp1BM-=1D c =}TkIM-?F | [;a>\(SYIENDB`ethereal/textures/ethereal_candle_orange_static.png000066400000000000000000000002711411051537200232400ustar00rootroot00000000000000PNG  IHDR TgPLTEStщjrя|ܪtRNS@fIIDAT(c`XBhehl frP]\PTUP 51BpFp1BM |F%IENDB`ethereal/textures/ethereal_candle_pink.png000066400000000000000000000003431411051537200213570ustar00rootroot00000000000000PNG  IHDR Hv)PLTERUgkщjrя|ܪgՌtRNS@fsIDATHc`XBh,ehl frPCCPTUP 55BF5BM-=1D c =}TkIM-?F | [;a>S/,Bv“IENDB`ethereal/textures/ethereal_candle_pink_static.png000066400000000000000000000002711411051537200227260ustar00rootroot00000000000000PNG  IHDR TgPLTERUgkщjrя|ܪgՌtRNS@fIIDAT(c`XBh,ehl frPCCPTUP 55BF5BM% juIENDB`ethereal/textures/ethereal_candle_red.png000066400000000000000000000003431411051537200211700ustar00rootroot00000000000000PNG  IHDR Hv)PLTE3=#G'щjrя|ܪ6tRNS@fsIDATHc`XBhehl frP]\PTUP 51BpFp1BM-=1D c =}TkIM-?F | [;a>\(SYIENDB`ethereal/textures/ethereal_candle_red_static.png000066400000000000000000000002711411051537200225370ustar00rootroot00000000000000PNG  IHDR TgPLTE3=#G'щjrя|ܪ6tRNS@fIIDAT(c`XBhehl frP]\PTUP 51BpFp1BM |F%IENDB`ethereal/textures/ethereal_candle_static.png000066400000000000000000000002731411051537200217070ustar00rootroot00000000000000PNG  IHDR TgPLTE)щjrяޮ|ܪgurtRNS@fKIDAT(c`XA! 4`4ft3P,...(n3gNs@DHA`ILA543]` tkSl&3oIENDB`ethereal/textures/ethereal_candle_violet.png000066400000000000000000000003431411051537200217200ustar00rootroot00000000000000PNG  IHDR Hv)PLTEK3\hE^щjrя|ܪRAtRNS@fsIDATHc`XBhehl frP]\PTUP 51BpFp1BM-=1D c =}TkIM-?F | [;a>\(SYIENDB`ethereal/textures/ethereal_candle_violet_static.png000066400000000000000000000002711411051537200232670ustar00rootroot00000000000000PNG  IHDR TgPLTEK3\hE^щjrя|ܪRAtRNS@fIIDAT(c`XBhehl frP]\PTUP 51BpFp1BM |F%IENDB`ethereal/textures/ethereal_candle_yellow.png000066400000000000000000000003441411051537200217320ustar00rootroot00000000000000PNG  IHDR Hv)PLTE-щjr(я|ܪMtRNS@ftIDATHc`XA! 44t3PLJJJ(3gNU@DB` B542]`* tk2 cC$=KG:1lA!cW(@T IENDB`ethereal/textures/ethereal_candle_yellow_static.png000066400000000000000000000002721411051537200233010ustar00rootroot00000000000000PNG  IHDR TgPLTE-щjr(я|ܪMtRNS@fJIDAT(c`XA! 44t3PLJJJ(3gNU@DB` B542]`* tklQSTF*CIENDB`ethereal/textures/ethereal_charcoal_lump.png000066400000000000000000000002721411051537200217220ustar00rootroot00000000000000PNG  IHDRRPLTE ;;3DCR'w:alPhxڭ 0B>cfyhE> 6`Vdv6\sRSINKX63ZYIENDB`ethereal/textures/ethereal_coral_orange.png000066400000000000000000000003211411051537200215370ustar00rootroot00000000000000PNG  IHDRRPLTEhY`bjqqv*tRNS@fdIDATc` 8I& ^hQPR Πoa`.`d0e y80:;583.).Ƭ \EMA&3; 00SM .>lIENDB`ethereal/textures/ethereal_coral_pink.png000066400000000000000000000003301411051537200212250ustar00rootroot00000000000000PNG  IHDRRPLTEhR8tRNS@fkIDAT QDg B.D % `|iHwhsvBKg%I{4} 2El^t)A2ig~6n4\RIENDB`ethereal/textures/ethereal_crystal_axe.png000066400000000000000000000002651411051537200214310ustar00rootroot00000000000000PNG  IHDRR'PLTE)IC'SN0XUU`Z6hb>itJSɀİ8tRNS@f@@AEKLQ¹ZԿEIDATEQ { ܰqPO9Q{o{}eV"(SFeU5f {Wdk-glQ^ȸ%`9 7t@l_/{0v/fwPx}2;? sxIENDB`ethereal/textures/ethereal_crystal_gilly_staff.png000066400000000000000000000002631411051537200231550ustar00rootroot00000000000000PNG  IHDRR*PLTE 0-;=^GnhD>y@8yWzt}tW";/tRNS@f7IDATc`3 4OJ(#\P0v̜[ Bxn&` Q11IENDB`ethereal/textures/ethereal_crystal_ingot.png000066400000000000000000000003501411051537200217670ustar00rootroot00000000000000PNG  IHDR(-S3PLTE8FA&nhDZsiyjWztԦյݢtRNS@fcIDATӕ D 5# iVޛR>/dlmQ;ZNIU$:zbSz${B+/g{eSDV E?~) _ IENDB`ethereal/textures/ethereal_crystal_pick.png000066400000000000000000000003141411051537200215750ustar00rootroot00000000000000PNG  IHDRR$PLTEIC'SN0XUU`Z6hb>itSɀİx tRNS@fVIDATc`@4#kt--sfJq),͝( *bl7`Pp30E FTaV2 0d2=jIENDB`ethereal/textures/ethereal_crystal_shovel.png000066400000000000000000000002701411051537200221500ustar00rootroot00000000000000PNG  IHDRR$PLTEIC'SN0XUUhb>itJSɀİ2~tRNS@fBIDATc`@qVd: `j 0;4S] LsCMn@@~ `rIENDB`ethereal/textures/ethereal_crystal_spike.png000066400000000000000000000005741411051537200217720ustar00rootroot00000000000000PNG  IHDR TgPLTEtes+Pt7p=LԮwytRNS@fIDAT(ϝN0`Xy7+zv(iWBJ9[zhQ &e]6_fN>O)/fSjeyJQ.k1FdC};ZL4$m _ +AٶZ%M*u!!e";5W=[VS^>MBL@ o Dd&)3jJʄC@(=eOm !}ӡ <tb N? \oF~y";@JjQLIENDB`ethereal/textures/ethereal_crystal_sword.png000066400000000000000000000002671411051537200220140ustar00rootroot00000000000000PNG  IHDRR'PLTE!IC'SN0TN0^S2XUU`Z6itJɀİtRNS@f>IDATc`@}QB*ЈU*BD`"* 1dXVu.DyUw1nIENDB`ethereal/textures/ethereal_crystalgrass.png000066400000000000000000000003121411051537200216250ustar00rootroot00000000000000PNG  IHDRRPLTE2]8hL{qXtRNS@fiIDAT0Cram BtpR"X,8fBO/dѰuZoΞ,-?&>bPx>8.@ FDIENDB`ethereal/textures/ethereal_dry_dirt.png000066400000000000000000000004201411051537200207240ustar00rootroot00000000000000PNG  IHDRR0PLTEsU2}`?c;g:lEoAuHPKZŠjšdȥaѬl۶szIDAToIiA$f!MADڶdt)ztAo9evC&w$7BzR{t}uw)N)u $v J{Uq@Dwf p $k54Jw{!"mwzz8@oIENDB`ethereal/textures/ethereal_dry_shrub.png000066400000000000000000000004331411051537200211110ustar00rootroot00000000000000PNG  IHDRR pHYs  tIME 4X!PLTES2 V:p3$yNuRѳxԲkEtRNSRbKGD hVlIDAT1 PЇN [HPr0!J䷮S.;BQxTМv>78% Bd3*&mggkYIENDB`ethereal/textures/ethereal_etherium_dust.png000066400000000000000000000002511411051537200217670ustar00rootroot00000000000000PNG  IHDRRPLTEZj{VXntRNS@fHIDATc`  aGDHD"$v1rV )B.J 2X AA!Q)IENDB`ethereal/textures/ethereal_etherium_ore.png000066400000000000000000000002451411051537200216000ustar00rootroot00000000000000PNG  IHDRRPLTEɕѯtRNS@fDIDATc` '"  `rK && 1` ( up~ͥ@IENDB`ethereal/textures/ethereal_fern.png000066400000000000000000000003261411051537200200430ustar00rootroot00000000000000PNG  IHDRRPLTEh-E)2H&3P-?Z1<_4Hp=XKpIZ5tRNS@fiIDATc`8 "&UP{@h)PILU D3kJ GhzId*UiE40046* %UCJ12IENDB`ethereal/textures/ethereal_fern_tubers.png000066400000000000000000000002731411051537200214300ustar00rootroot00000000000000PNG  IHDRRPLTE >)-B z[ Qk;r!BWڲlrtRNS@fNIDATc```Rb(AIB3Z @ɆF[j  ji 6 dH3 6 bP3$0! IENDB`ethereal/textures/ethereal_fire_dust.png000066400000000000000000000002411411051537200210710ustar00rootroot00000000000000PNG  IHDRRPLTEet- %tRNS@f@IDATc`4#LDM $k$"FP]M .. 0XNQQl0[{IENDB`ethereal/textures/ethereal_fire_flower.png000066400000000000000000000003131411051537200214100ustar00rootroot00000000000000PNG  IHDRR!PLTE- (k 8 T h5xBBztRNS@fXIDATc````K`w( `(10"&IhsDc,`0cBeap̦```j RvIENDB`ethereal/textures/ethereal_firethorn.png000066400000000000000000000002311411051537200211040ustar00rootroot00000000000000PNG  IHDRb PLTEe-gP{q놇wtRNS@f;IDATc` X0;08X70c`8rx/ 2ou7000~ IENDB`ethereal/textures/ethereal_firethorn_jelly.png000066400000000000000000000002471411051537200223120ustar00rootroot00000000000000PNG  IHDRRPLTE!m[yUmP˷ĸ(tRNS@f:IDATc` 0 @hY*eCh6TFe8A(A0Dt ?IENDB`ethereal/textures/ethereal_fish_angler.png000066400000000000000000000006031411051537200213700ustar00rootroot00000000000000PNG  IHDR(-SPLTEw##))**++ --!.."//#22$22%33%44&55&6603D(885DD=LLDRRLPkQ^^`fdoofqqgssittry|Œ‘Šյؾh|tRNS@fIDAT}@ 겂DNf(L2ɜ3WG8Zv ّq8,,NάDpw:2 I{LwJ$*"_/%V [:&&Bf,N#~>z?< 06IENDB`ethereal/textures/ethereal_fish_bluefin.png000066400000000000000000000007531411051537200215520ustar00rootroot00000000000000PNG  IHDRaIDAT8˥kSaͅܔk bjo4j)$bdsJ5ED,tl7]OhuQP`!q F6!ZkvΏHb?1O?.ݺK;;I֠~D$io@vzM5y'۶eYGQCгd2]CK4 rApz̡Mv^ËS/_j}&=َuKd f04L|]cv~Y?N/.IENDB`ethereal/textures/ethereal_fish_blueram.png000066400000000000000000000007131411051537200215510ustar00rootroot00000000000000PNG  IHDRaIDAT8œAHq??H@aFJ[qqb%G?EpKDDQqV,l.Mg+>ҺIygf/,;ݸ‚?EG{V)!0[y$/ȣ-~!hl\."箉J\;PJɬ׎W&X{HJ)9juv*1iIENDB`ethereal/textures/ethereal_fish_catfish.png000066400000000000000000000010731411051537200215430ustar00rootroot00000000000000PNG  IHDRaIDAT8}S_HSq=?bƄe6[A4)oDQSDQ` N,"/b,iP+0=ww~D$ћG{7aRr}}RJ{o2z"EC ?F8ԕÁ8uo$UJ??q%6MHvR~ VYnl gNt`M9\ Iz^F[D@ +n& Y yOP~tuū&HZjq,-kP~i~h_po7J̠+(}րak{9B`Jx`nqNwzϩNl6:J) Y o^`nqP}= y XU+ }\\irjrămH ͍{i,H<QBwpTvsy[&t'd]IENDB`ethereal/textures/ethereal_fish_cichlid.png000066400000000000000000000005571411051537200215270ustar00rootroot00000000000000PNG  IHDRE/3PLTE83>FV:,iD4R@cFt<ƃLSڒWz%BetRNS@fIDAT(ϝۖ ИLu p%Jm}*MkݭvT3jjmlwTL{m+O&؋)t|[akJ yk:WEM5ØkKBZ!E! 1\tYp]W P h;+ oFsN}sZUVLqC"M(4A,gA9V:oIENDB`ethereal/textures/ethereal_fish_clownfish.png000066400000000000000000000006601411051537200221170ustar00rootroot00000000000000PNG  IHDRawIDAT8˽=HBa`?M2$ D!pUJe6 QAS \.A`!AC" R~Oe*v9,j3mS6# ]$%<} @El!R)LKH7-""%I"IʲLF<$p8L?؁b̃B\.xYVw7Һ0N$"'ng|EQx=q*BD"^hg!˲Lez{(WNT]ɸLeh55~e;. >yw&#v"n7v;RѴ ϟ%ttnͨPgUӒ+'IENDB`ethereal/textures/ethereal_fish_cooked.png000066400000000000000000000005301411051537200213630ustar00rootroot00000000000000PNG  IHDR#§0PLTE/&B5TD#bP)p[/wa2j7m8x>ELPhǯ|XhtRNS@fIDATc`@ (**w..3~+*WE|J1A L3'Za9{?#lL]?Oik^ .sS_#ZM 9998Xdihphi2llljlllqgq()@;SI a`` }q.VS=;IENDB`ethereal/textures/ethereal_fish_coy.png000066400000000000000000000011021411051537200207050ustar00rootroot00000000000000PNG  IHDRa IDAT8˕]Ha93"BFtjFB.>@$+/6JYb""b7RTd)[nևV,Nm9sD=#mN9]lűU$wM9<{S(YpeӃw0,ƣ*~IɷV}|ِICq!B,6yxNzA(8gWS3=g.6Ed)A^Q !!-B]u%)?UMD ",(uPlKY9>$% Jl{Ix&/CuM_XybU֬`)Ÿ"\9vwIg[¸q:Db~z=`)w =}ot0V&:\ιqvp􀍪.|})`Q5 OGj%''[ݲ~--d((Tt^JJ)׹8-y؏HgED)isoL+ߎdUIENDB`ethereal/textures/ethereal_fish_flathead.png000066400000000000000000000010501411051537200216650ustar00rootroot00000000000000PNG  IHDRaIDAT8˥OHq?53 ߢ~]DU?L{.(d$S~$8eDi"f39O,,,Y$">Ir&clx4_GE"Rzl|Y3l$ Ҭiܼ>AUגv]b)Yx?1TJDgybWZţY%!=z&I\koSH"%GK dgM5oS#rtuI(PK cٴ[D/ǪG.29/3G&{Tt~IB>K:0: ;DHeUVJD*U`#XN&IENDB`ethereal/textures/ethereal_fish_jellyfish.png000066400000000000000000000003211411051537200221060ustar00rootroot00000000000000PNG  IHDRRPLTEolp:tRNS@fmIDATM BZQΈbNna@{]K].sCG.[Pߎ21RNKfn<&L@2N)//C zIENDB`ethereal/textures/ethereal_fish_pike.png000066400000000000000000000010661411051537200210540ustar00rootroot00000000000000PNG  IHDRaIDAT8˕SOHa~ޭ ZHp.u!&)fFrCtyT "J:HRYlKkmto|˭ y~H\܈=kDZa݃{'jd/ZG'H<];5FG a'XŒep=?߂dl6"ˣtIv ^*y13;VL~¤ )4@d0r,GݘF]. ]c/eJP&S;z.UGCl:6 Rگpwo=F"a(2@٧2p=D틬pUqStzEʮd`Wb+頂oK%w6'Ohl|lC>z3~d EM<|Os=uOKrZz{*р`6,!Fq[QW>aBP'K_dmݽ"IENDB`ethereal/textures/ethereal_fish_piranha.png000066400000000000000000000003701411051537200215430ustar00rootroot00000000000000PNG  IHDR(-SKPLTELNLLU{S>h5qf&c*Hz@xx~-[Q4of8z:Ž^|LtRNS@f[IDATӕA [BQDU.ƽͤ9}]XZs,GD6L"aQ& Fu4<9K ~DnIENDB`ethereal/textures/ethereal_fish_plaice.png000066400000000000000000000010261411051537200213550ustar00rootroot00000000000000PNG  IHDRaIDAT8˥AHam A5b9i[:! JltȚ^vdE()DaKgFsknsCvq }~/}jE]x@GY=҆j+dZcߡ drO)O|Vj~ ר7xdf6Aˤryk`·yRn;|o"&iLEBDHg7w ~CVHge[*ViNh0U Zrq6b ݺNP8uI-x'b!"'+o7AlǥH.6.Q%n"`=n92G>1z!jki9PJ D'¿I)].GvR?q)`IENDB`ethereal/textures/ethereal_fish_pufferfish.png000066400000000000000000000007101411051537200222600ustar00rootroot00000000000000PNG  IHDRaIDAT8˥Kja/!-'")4Dõ@@ i.?rC"C.:5T"4AΡci<RJ'F8t:--Ţ+}[|$ q'ܢ䎤(t:rx+u]AZrեl/ " gRIunn[.ԟJ)fG3`0nfc8UmE-եAZezuӳ3v~vzC0eL&) uL'81DDT*DQ&m( >w4 mvnF!f.0 QPT*5XHELƳ~ূ_W''Q)U9IENDB`ethereal/textures/ethereal_fish_salmon.png000066400000000000000000000011611411051537200214110ustar00rootroot00000000000000PNG  IHDRa8IDAT8ˍ]H`oEʔ %lҔ%jF:K.JRLQ̂nL[BE˟)RAҖ.Y* m||;=2Yah}&AڵlwN7郙Q\t;qL3F*ZZ?Cj@U_O3 9%ioVK#tW`gd(S,'>QF_Q^lђWvǘLɳڏ>RDD'M9pk0X4B>9B_L;8uZ˷g8'\tpتK,䧱Ϗp,-DF/kLùlmaR j."zڛtw +JE%5KSm&S^4U j _syFx98 ֻ_h*gHmF#1qͅUvN8lr2/C]Y>4~/&};sV-G$\H{s=ɏ+Z]J){Rn#Gh|Xw{RJZUTBq7IENDB`ethereal/textures/ethereal_fish_seahorse.png000066400000000000000000000002701411051537200217310ustar00rootroot00000000000000PNG  IHDRRPLTEorm 0@XhNtRNS@fQIDATc`@ A P0ܜ ed"&c7gj%%#n`~ec%K(PR6  a2U2(Q65p':IENDB`ethereal/textures/ethereal_fish_trout.png000066400000000000000000000004271411051537200213010ustar00rootroot00000000000000PNG  IHDR(-SKPLTEAC1CI4M?@OLL_EPPYLb`]sp^rokov}xq}}n0tRNS@fzIDATUQ0P`ӆO[1 6 f%6F.lޏ\t~qu4P(SL8 v{̓Dξs̈yO^7IENDB`ethereal/textures/ethereal_fishing_bob.png000066400000000000000000000002431411051537200213600ustar00rootroot00000000000000PNG  IHDRRPLTEapTQOnGh({TӀ(tRNS@f9IDATc`@94V^f0(`0()Aa2a& 09AFbAd'S.,*IENDB`ethereal/textures/ethereal_fishing_rod.png000066400000000000000000000003711411051537200214040ustar00rootroot00000000000000PNG  IHDR#§!PLTEP?+TQOpS3a^\e;{xv{TӀ(Qu3tRNS@fIDATc`@IENDB`ethereal/textures/ethereal_flight_potion.png000066400000000000000000000002521411051537200217540ustar00rootroot00000000000000PNG  IHDRRPLTE!]jvdz뷴˴,*RtRNS@f=IDATc` 0)@hִ+I *cBtt@Fa+ll, ihEUV$B t7TIENDB`ethereal/textures/ethereal_frost_leaves.png000066400000000000000000000004541411051537200216070ustar00rootroot00000000000000PNG  IHDRRsRGBgAMA a pHYs  ~tIME :OKtEXtSoftwarePaint.NET v3.5.11GB7PLTET"Z!#37P!V^= tRNS\_IDAT 1 E) xRnR ۹z-;e{B_#vK){ ';8xiSP!I}IENDB`ethereal/textures/ethereal_frost_tree.png000066400000000000000000000012361411051537200212660ustar00rootroot00000000000000PNG  IHDRh6sRGBgAMA a pHYs  ~tIME +/tEXtSoftwarePaint.NET v3.5.11GB7IDATrI MR|Tg>w}L%Eۿߟ8ȇTE}}2ԼkvY[Ugp!]t䐢޳91G&&1ҵUT蹜z=_Df"QW53LV''CcʽG9n ٖrFf"o[-"5 0<M84 @Dd Lj!^%svURz5R6۸rXƬs # S&Eo|Z;8/ky_xSު)̬uhUbc^W)s6gbT23 b"K PK1s.H90q{;Tވ311}Hs)w]F)6w{o>EU#_מk"uIENDB`ethereal/textures/ethereal_frost_tree_sapling.png000066400000000000000000000004751411051537200230070ustar00rootroot00000000000000PNG  IHDRRsRGBgAMA a pHYs  ~tIME ,qtEXtSoftwarePaint.NET v3.5.11GB7-PLTE=3,A2&A2&A2&6+#!#.%376+#6,$=3,A2&P!VP?33CRtRNSwKuNIDAT[c`@0CiYp,tg &r `el2xAs UIENDB`ethereal/textures/ethereal_frost_tree_top.png000066400000000000000000000014351411051537200221510ustar00rootroot00000000000000PNG  IHDRh6sRGBgAMA a pHYs  ~tIME  -\,òtEXtSoftwarePaint.NET v3.5.11GB7yIDAT(S=KE]]~(!Y'ʊG:{N8ȊM2MDm]]b)>rW1ee *8 eBF<}L Nt.*"HYn߼\#Dv|{ٛv3!RGK#`zg٦So*V+RX+2 FXq9;.戁ri|v0ùxdoƒA,lL'uS_6֩ u%IƉit2m >(KS`Z>ZNJvyp8Bȡ.G& 7E,O]}/-L)!7jRbҾ(,RN| \ɛݚ3w.M,kVF3 +8"I;q5 !gbXۙ}CAxUU3ٮnz+6lgzxz޵+S٥~(JJliYS^o^Ե  Wϟ=Y&xc]c)zu ݬ6׿27ޟ9v)VnIENDB`ethereal/textures/ethereal_frost_wood.png000066400000000000000000000004151411051537200212750ustar00rootroot00000000000000PNG  IHDRRgAMA a pHYs(JtIME2ztEXtSoftwarePaint.NET v3.5.11GB7PLTE4@R7DWJ]{Uhg~DdZ[IDAT 0 D`* 35DiLlFm{I)g2"q@Red*) ^ښ%Yuc#6;IENDB`ethereal/textures/ethereal_fugu.png000066400000000000000000000007671411051537200200700ustar00rootroot00000000000000PNG  IHDR D6PLTE@]WRpsnʬگG5tRNS@foIDAT8mSQ *_vZ/1GbL'92sO|@3u{7 (E<Q<'%C܊N=QD*`y5nޛtRNS@fIIDATc```(`0"h6H5i@!4 fOqWqJ1`0 6t47@ ]t3IENDB`ethereal/textures/ethereal_glostone.png000066400000000000000000000010141411051537200207360ustar00rootroot00000000000000PNG  IHDRh6IDAT(EKr#EF>2UjlIOYj˕u _D0t9@= ضm }̾\MEd"yN T+4R7/2.֑u'" QaT2I6ɢn_"B n@wz*ݖ:n~ >WMƅh2s誊G82Et:"凃x{u u4kk͉(ѭsn+E3|WƧJT`hhezM{%ѴqXUSD"RABoit@p1՗wuwṬӫ LU}y;5:gDJCDte3?U wݹKD9y09 F;#@ @WQd3jX=&IENDB`ethereal/textures/ethereal_grass_bamboo_side.png000066400000000000000000000011021411051537200225440ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME }n4IDAT8퐽nP;q8 M#.\@$$1C& U H\DHH q\'9>ː2HI;|z _.6aJ),4M2dz,k4I|{F &)CU!9 ( GlGj.5aa'59SkN5BرCS}6LR)kIx#N?-Wz_M:ep<aMėܱTjE @hS9#= >/In҄De2+K:[RBJ>]m* aX-@, J)x*B@) M5;vpl{؎h6p#^Y;xqC8+_F4t-^>Y; \'rgkp>}s7<|5/u@?noP69IENDB`ethereal/textures/ethereal_grass_bamboo_top.png000066400000000000000000000006061411051537200224320ustar00rootroot00000000000000PNG  IHDR(-SWPLTEb4j;g>h?o>sAuCs?SSwBVyDQzESU~IWEZ`H\O^S[]/gzbKGDH pHYs  tIME }n4IDATY0 DQL4x οN'ߟrG#Qz)&FEcgCL@h[ra/A L2t"jR7`P7z&s-ڷeOҪg,〇Ab"IG@mGjY.ۏك qwODZ PlIENDB`ethereal/textures/ethereal_grass_cold_side.png000066400000000000000000000010551411051537200222350ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME }n4IDAT8퐽nAFwǻ5vpB$#)iP:$i"e2BxwCa@HW3!ۖz.lR5REK]ߠ"iF~dz,bqF"evANó^Ţnm6c6,nZ&~je~10|<%e@E0AܲOi-AA%=M/1ƭ @@+ TZر֕$&SP(GtT)a^;_R-vl(D X⨍1IOc̆TQ5<~{7~+0f=E&T3<>ȫhrZbSًTih]Iak·꧜O?(Py·a\첝8ͯnErpG~2IENDB`ethereal/textures/ethereal_grass_cold_top.png000066400000000000000000000006061411051537200221140ustar00rootroot00000000000000PNG  IHDR(-SWPLTEbQqWlPoWsWx]r^zXw[w\d`}`zcdeacikmhirnnotsJ+˸bKGDH pHYs  tIME }n4IDATY0 DQL4x οN'ߟrG#Qz)&FEcgCL@h[ra/A L2t"jR7`P7z&s-ڷeOҪg,〇Ab"IG@mGjY.ۏك qwODZ PlIENDB`ethereal/textures/ethereal_grass_crystal_side.png000066400000000000000000000010531411051537200227730ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME !HIDAT8퐽Q̽s1$D װn: , Zk݊ Xlゅa2Iܙk(sy艻}p_Ċs-hdƬPBF,.QY)tez=A_A`eHCw9 hjMr5m#Q) y x˲}z\b|nfTEA<6/YfK/}| F{ P2+KDOVuR%[ihm6BANTvYW,sD' 0-St3xpTE޿xHJFcy"PԾ xrwGI:4dqw/+!e+h̊YH3ӳ`P̒%GSΎ_MZpȟ%ɯgkPˍRIENDB`ethereal/textures/ethereal_grass_crystal_top.png000066400000000000000000000006061411051537200226540ustar00rootroot00000000000000PNG  IHDR(-SWPLTE@U%Ha#Mb&Ph&Pn)Uf*Ul/Yq+[w/]n2]t.bx1a~5bt7ay.fv2f|8ew7j;k|6l;n8r?r9uDv?|I{Eu7bKGDH pHYs  tIME }n4IDATY0 DQL4x οN'ߟrG#Qz)&FEcgCL@h[ra/A L2t"jR7`P7z&s-ڷeOҪg,〇Ab"IG@mGjY.ۏك qwODZ PlIENDB`ethereal/textures/ethereal_grass_fiery_side.png000066400000000000000000000010271411051537200224310ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME }n4IDAT8jP&4VŮhmw |W(::Mn{]ލ8p8#^b%qe/Cɵw`H'4p 4CA{#F5=cZ!͆ p]$I4I˲vv;,}H5x ,KosETR!Ae(8NTUǡs\zxzRnxIe 3QQZ 4<>v54m۶ɲ8)5h4,(n74 !9qm (qPJ$ #l6I584 1sJ)a:B$Ip8|>\.Ac\etZ)"<|M&O$Ibf||%~4 c5fIENDB`ethereal/textures/ethereal_grass_gray_top.png000066400000000000000000000006061411051537200221350ustar00rootroot00000000000000PNG  IHDR(-SWPLTEvvv|||^L%bKGDH pHYs  tIME }n4IDATY0 DQL4x οN'ߟrG#Qz)&FEcgCL@h[ra/A L2t"jR7`P7z&s-ڷeOҪg,〇Ab"IG@mGjY.ۏك qwODZ PlIENDB`ethereal/textures/ethereal_grass_grove_side.png000066400000000000000000000011011411051537200224260ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME }n4IDAT8퐿ka?ƻ^S(T'A' rCť t+؂ZhKrɽw9TA|6oWW>~%f|N-rI{dJJ!/EsF`f%ᅪHo@QX |.R-X,6xd'vtq9<ִ^?_r֒ r6v}>,jM?}s77/@A;>BEGPrTbKGDH pHYs  tIME }n4IDATY0 DQL4x οN'ߟrG#Qz)&FEcgCL@h[ra/A L2t"jR7`P7z&s-ڷeOҪg,〇Ab"IG@mGjY.ۏك qwODZ PlIENDB`ethereal/textures/ethereal_grass_jungle_side.png000066400000000000000000000010171411051537200225760ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME  i?IDAT8=kQs~dv]452KDABYVI4ٙsE܀xg/s|M3wZHNahSp\1n9et=l=Sp 8&T%Rkn=G"B"B ?G*Saka]ԚUO zfIqb0PZ[m S~@)m"°9A *J)#J)LY֐sfx=*u6RAgCdJw:A)2lcK'"H%[⠽[ 7U `hNff9ɪ1|hwy`9=Yu_>7_v[; !rp~/ó# sIENDB`ethereal/textures/ethereal_grass_jungle_top.png000066400000000000000000000006061411051537200224570ustar00rootroot00000000000000PNG  IHDR(-SWPLTE!/"0%4%6&7(:);*<+>,? -@!.B!/C"0D#1E$1G$2H%3I&4K&5L'6M(7O(8P)9Q*:S*;T+. z5ɿJk J**AȳI)7K<]q4:Է,7 9o?s84LuS" ڢ`c()ȡ7($zq{W wsd'g"ZIENDB`ethereal/textures/ethereal_grass_mushroom_top.png000066400000000000000000000004741411051537200230470ustar00rootroot00000000000000PNG  IHDRR'PLTE`;]i?eeAeo?kkCnnCjsHnqHtxIvIzvMy{R}Q#bKGDH pHYs  tIME  i?IDATo'dsl9VQHV»XIH$|kuv*yUQ!Dvbqu':7Z{WYs9˛%hh8;xb{b lvwT(@y+8DHaUCh7GoIENDB`ethereal/textures/ethereal_grass_prairie_side.png000066400000000000000000000011361411051537200227470ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME  i?IDAT8폿kq?߻xטK"HũAEpqp8bq? 8w_E`Ђh$ޝCtwg]ˎ(c ?Spp|VÂ(h7E~PM+ %I>k۬}Xʩ:$!2,!~J)Z."v̥"gV6s8l݈r8d}M#MLs#7x͘C;Ʒ-LО *g#eQ(IFO iuVSo{۴[-:!c.:h_a(ip{{Ki$u)8diʵ;[9;@A;>BEGVPWZ]¥Ʀǧȧɨʨ˩̩ЫѫծFbKGDH pHYs  tIME  i?IDATWv@Gxa¦iE+968xg܃{z,U BWM0!!?6yne J&׃ESAW ͙>\fBGc<QN乎~^{i qu| qF)_ *T,|es-PxJ>Yz"^k̹-?xZRIENDB`ethereal/textures/ethereal_gray_tree_sapling.png000066400000000000000000000005271411051537200226120ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a pHYs  ~tIME ,qtEXtSoftwarePaint.NET v3.5.11GB7IDAT8Oc)H4e  \f:*pMȆ@E ؠ\=Ufp Cz ( 60]2$ޘ;7`4T nt>@ Cx`.Jg5g|h{v()2@  H6  ;:1Vld]LIENDB`ethereal/textures/ethereal_hearty_stew.png000066400000000000000000000005161411051537200214500ustar00rootroot00000000000000PNG  IHDR D3PLTE8H(:-#h1I8'J@[F IhQ0~b9bykm7y~J(jttRNS@fIDAT8Qn Dx0@ikC Kl~w>j9, "yF?9/|`KIS*fIxr)Qo5(cp[>&wDnA sS.!W [%srXTkƑ&SX%l 7:jpPðy`F8 0#~f _/*' ׽C [[IENDB`ethereal/textures/ethereal_illumishroom_cyan.png000066400000000000000000000045721411051537200226550ustar00rootroot00000000000000PNG  IHDR szz AIDATXÕ{]U?ُ>{{[X^BJ@dр ~?EfRQԩ_q 5D2h[mV^no=~~O[0Jv9km;PUPs 83swRÖe~=ss_SzD7ȩ R[vx|6w~_Ƀm9(zjV"PTw"zf^[-fV蓀@^Y4+[^:'`42ZKQfvWhW8x3C\#fұ3U$EUQ-Aw:iɆaˋq[( r8owlLLFZJu*RɡMY?Czˀ}|VC=j4x̦2`K:He]_6{H&+zbhQ@?hC=#`̶_>uPtT|W*&_OfPbŘ%E̹D{ުv)֮ wU7%df#tVA GϿOp/1"SW7@AZ Ke-4$C89@A|4k.>_1|=]zƒ~ޗp|DO$rv˛6g%=KUw#- Ot~́b٤lԣ^t yt.]rӬEL؛eٟڱu;:w <3ncO- ':.-a, 0@+ޅIQ).yu=ejNy79'`Y?a&Bi<(??xM .oY͕sQii}l9?lN#S1ԣ6"q;_zM{_#pkGp׎PgQd8UéȐ!QcWA&{kQߍ-3oՀEQe_l}ӳG^@0]sR=We1G7Ŗ%yb|Y&&5r?y{qRe@ڭh=l!ͦqN'af4f]Tòtd1fZɋqU]BwŷۃD^Zp$IǴM9˫S@ﵴEuZ*0^u}P jS/7x^M^QxYAMIqn%yq.1.E8(IlmkYf=AIAK|-Qۆ]NN,<k= Ѣh\mcǯ֏smw\O ^?`a 8ٟa:'t8 7{9i..? t_ley/wpNڽ{>zK-uĖp]Z?4Kd&Ɩ?97=IENDB`ethereal/textures/ethereal_illumishroom_green.png000066400000000000000000000045161411051537200230210ustar00rootroot00000000000000PNG  IHDR szz IDATXÕm]Wu;{q℀8qPJ(!4(U! $ԠXD*RZTRP(?J$ZUmIH]8!M{z{>^8Av[::^~ߵ޵妛)(Ż~p3_*o2M9#Wrͷa``ƀ*'?|=-ɤiGiOl6 O~<}`Tz7SFD|ϡtܯ{-'3q[0Eξul `=֜qgytb@^z|m?;wYۮxZC8p;ۣA-H,Dz2A<o'_x9^qP30S seimuz8Ձ] ղ#Ӎ|e՚ `jqg{0['7 FU-C6HBԔU{߂XzU5:WqE X(EdG7OBq⍓@LҴ'}|ވ;5q{f\c{>ՉVgP:cig PPL83iZ.J(k[f&jPX{l Z-ٔ%NH"Vv%%kO0%Ŧ f_:LK5]j7 \jng8:+h~)%8`el[[p1H Qʥ57G >|Vouf:WkWo<ql9u']N/!n˺(/nZ_LieD{gtOq~wgt0n-@ [ ܺsMiI z3&s!n mHASzۨ%Xz 9r^2)dNҥ '] f&x߻F NJ,%TO(39n}-&5 BDKk9ue^NS9`鯎Le{_7\ t?I `U~`۴E-6$] R.mFQiOJ?k6C.[@"Mf2t 1ʟhS4N\Ï-._aBβ)l6eNIW'sŴZc`;|mcZn9Mq/}V&))[/I7F.Q.wÈc.* '9o-g_^L%-yO{В?ƴ,wv3ZMߔ4IGM!H7$n6 "4b:K-h0]"NkU.t8!kӨC(FJҘĹfiT-Y߂;&^]>L-?)q2/?k65DD~SI[L+`I%b oh0z 2j.Ȟ3YS;bU\–dnxB8WaғB)VӞ޸b?2aJٷ'CΑ8e ͸LRJ~ȡG`#SMjemS*/OD;LyB"ΌN뇀ղ57]~d}SUffc?d,ۣ2xtZղX?Z^Ǎ)OrG]*/Yz^tΔ~`+uN-X[HdC5P+x8j͡REўfw;U{@7l5!ijq8C: q3 @ xaTH"4şL҉eK]C@[H }Gy^;J#ڢ+ڠ=FQcz?\9`'1"Ƚ1q"35 ^/'9·[wTWvSL҈RIUVU2M!B8u6ITpɈV^77"!Y8? #`&Bd9O/\8PݻZM%II Mch7˗wMxSy=ILJN⿪b=xv݀B 4\9@.=<</xM|8>m_u6!!E |𰊗7Q  $Q *R-UuűF+M{>igk!Z&\Q8xlfG^0xW}&jMu=b<2"sMv,sfn=cTAHf* +tBت-/Ǿ5*j"J+Zص)E)%~_aY!LFm~1hu`@ ª }l1B$G8J|NqΌOhFʠ:ğ v[94ɚy{/nclr"Sl=ǀkXn& y!6L؟{UT'NN߬k;Җ1~1`%DL;8}K-J&X bB+SØ6i<ZXvoC# FKqri5re],q;7t*n<ՙȨ]1mVr”X-_^QE0Uto8 1O)i'k t"܄NJ[v(sy|gM^7V֮k 2\qM {n|8R:m{ҝ4D6/g0WUGW37:!]׷'d-*r%qaT <bw.D8rc5ƊP:)%ޖ/+.. y ~μ6,݁ -3ZdD*A2&P?3`y5`y5.%P?3A2&6+#6+#.%6+#6,$=3,>D*A2&P?3`y5  tRNS  ]W_IDAT @ґ. @k3iҴ =8A\7iRtܷ˫ pN %${ѣCIENDB`ethereal/textures/ethereal_lemon.png000066400000000000000000000005761411051537200202320ustar00rootroot00000000000000PNG  IHDRaEIDAT8ŐJBA9fEEPTU.Z ].ZVm"+ʅ?9_0cR-|;7κG1w7:X_b#3KIjo?>$g{h,ϦXĆ zl&  wl )chT`c化rW*=,h`?#GDI!1z֌ Sf/1^ɏ]dw)o^4b׍XU-Tѷ.P0@Q&juLzf+I?'.=Qg?m aIUN7 ʼIENDB`ethereal/textures/ethereal_lemon_leaves.png000066400000000000000000000041271411051537200215650ustar00rootroot00000000000000PNG  IHDR szzIDATXhTW?aޛ8c8YӮjZmصhX fi`),Y]nЀЂ?].%+h`n65jLf&{Ls}̛{9|~j?sV3?W>&mbKhbPFZ۪QsY=켰Yv^,ճ{m0Eۜy7)6ƲJkbќOUi\>]ke*)Yճs0lir:itǾ!HEvSo =wz0h#Ҩӹ|*-Gd*)K9 1vS>&õ\E/iYQ| 7v ,ͱZyꚷ }3ˍLS/-"R0>`?hLnys=IrTZ|-#}="D.MMi .Ɩ?7x7蛥.#buUc3B[-Rc?#Ov*b{nI' {bT"o|Z|5*w4&dP'FFdU2kq6_*T/f46VyhFbKD|4m7e9xQt??&}'tЉ|`89pkA_FvNy7Tv\8vZÿn{{5` >w4ަtr~// oј4 A)0cuU<5+Tycq~,.;zP+_N$$\o܈Љlez݇BhL?r!꼰Y ?L0:nw8ד _]ҙ׈$\>\Vtl.<ڼPTt 8vwN7Wtvբ37@C<@$gex)Az\}-?y?72Iȗψqdֶjwc=#Sg wR>VʽrXwt3(fKle[ԉ59=nV%ʾ3TMaK׹K:滁l *[-Z|xK']+WqOn9+vv?f}V<-A:ʽoŰ,W/3b% ;.͹*? vYa]l 8Db~LCLѵVV(cqYt tw+x5e4`ËNj(fKu:.U+t5h]krݖ Vo,^fy;Ks!%=9n?6Ě *6*{c{׮fy߳nVɧe~+yT9j7;khC}PA S-hg݇ckUNg^&f%4o]p޳|iS#žvKc,}k8acG0lzF׿z<2[xb8,/<- `Z DG7Lz%hmJPln7@uNĖ SB7 ~@wQTW]J2jKh/,mMԘ{|QMySU,IENDB`ethereal/textures/ethereal_lemon_tree_sapling.png000066400000000000000000000003161411051537200227560ustar00rootroot00000000000000PNG  IHDR(-S!PLTE!#.%6+#6,$A2&=3,P?3%F%[ö́ tRNS}v}QIDATuQ0 B,k(iהLAȈުċB.( %zk1籲n(ww/CO@$IENDB`ethereal/textures/ethereal_lemonade.png000066400000000000000000000012411411051537200206720ustar00rootroot00000000000000PNG  IHDR$$.iCCPICC profile(}=HPO[R* vuP,U(BP+`?hҐ8 .κ: x_Rh8{zfjJąLvU‡^0A(&Y_MuY}V3gnXSy8ŠB|N,I 1.3`"7%¡"R_Na vn$Mh5HdMȾMzBF]FCϺE~5ONLJ>69_|Z]RDQ~+7 vθAf8BguZkIZk'1b% 1h41F:Ic7ɇ2IENDB`ethereal/textures/ethereal_lightstring.png000066400000000000000000000003111411051537200214410ustar00rootroot00000000000000PNG  IHDRRPLTEet-¿GqtRNS@fhIDAT 0 PH?S<AW2({l=Ρ D*3!|`c/7_0WCmeLўb^>.7Aœ?6-IENDB`ethereal/textures/ethereal_mushroom_block.png000066400000000000000000000003501411051537200221310ustar00rootroot00000000000000PNG  IHDRR0PLTEe_ o nmz$x)x,!8*NBwkѼasIDATcP\!(((  Ak !C2A!%FA@Bs2bjAU` k6 0uP#("Q  $g-ۇIENDB`ethereal/textures/ethereal_mushroom_pore.png000066400000000000000000000003671411051537200220140ustar00rootroot00000000000000PNG  IHDR(-S-PLTEϮzʪwͮzͭzɪxɩvcǧuƦv˫xέyťv̫wƥuȩwicIDAT-Y!Ă .?*<R@fN ~X9ٳʓl=Ae&jf`ݸhN/hx%"suWԏwB6%OVE#趲KK|<M&!IENDB`ethereal/textures/ethereal_mushroom_sapling.png000066400000000000000000000003761411051537200225040ustar00rootroot00000000000000PNG  IHDR D3PLTE@  y#36lM1UT947xadqnm5mtRNS@fyIDAT8A EhZQO&RMt0&nFO'zh BCY\DAUYL(Оކ ?ĔR/ZfB'L:Rɒ,`1EnzIENDB`ethereal/textures/ethereal_mushroom_soup.png000066400000000000000000000004701411051537200220300ustar00rootroot00000000000000PNG  IHDR Tg'PLTE)H(:-#I8'J@[F `IphQ0wP~b9m7~J4)tRNS@fIDAT(͑A 0ESZB,q-CԵCz0l.s('IGП<?%aνahRظhrո@[kny11GYGa5BX#_~2c4k9om:A[)c5h7l:r>v@wAs?r?omm;g9c6^|3Wr/Ng*@U"b7wA{Ch9g8g9c6]{2Vr.Le)=R!|Dq>g8f8e7`4[y1So-Ia'l;c5a4`4^~3Yw0Tp-Nh*Ib(;O 3Dj;c6b5a4_3Vs.Rm,Le(E]%>S"6Hd7b5]}2\{1[z1Wt/Rn,Mg)H`&CY#

S!9L5GCZ$BX%CY%AX$F tRNSnIDAT8ѱj0`Z>q!(R:&}C$NOדlHv' /#|x+֨J tuWkCE>S#cQ>sZK&6M %=yw}zCt= @wJYy$Mw l4CZ@vGo]iǝio+5} xWa̜2Lm͜x|BNCRx:c'"BIENDB`ethereal/textures/ethereal_olive_leaves.png000066400000000000000000000021361411051537200215670ustar00rootroot00000000000000PNG  IHDR DPLTEZyA1U Rm91@ RuA9L)9U1Ai19])bJ9Y)Ja1 8bJ1P 1D ZARyA ,   A]))DAa)Ji1 9U 9P 1H Jm9( 4Je11L )4Ru9 09P)Jm1AY)1L)Jq9)< A]1Aa1)D AY1ZA ,Ae1$)@ 4Jq19U) 01H)Ry9)<Ji9Ae)Z}AJe9,)8$)@ Rq9LRtRNSU`IDAT85T]: gn:ôx!"}HX}31yHdI"$ig~8Ydphx>I"$T$`)Bk53Gtx10O*NuJӚÈH.yPGrBB0 ?:N -C`Nmhu]}*h C]vxځ&ByWop#_?bT9K5kri)jߟkf]ݣF`U0]9IzmTqދ\p~mJ+=+Y+|HQ1axÉP#~ {G"q{V2{x W$cGeI-n0yj'\RnP!JN"u;$9>_m%mɜMZт)kyf~KX󤈶I,6>PvN웙ggU|Mslҋ*k#1^IENDB`ethereal/textures/ethereal_olive_oil.png000066400000000000000000000002471411051537200210740ustar00rootroot00000000000000PNG  IHDRRPLTEm[mG˗j ytRNS@f:IDATc` 0 @hI*eChTkhhaeAC0xt Y%IENDB`ethereal/textures/ethereal_olive_tree_sapling.png000066400000000000000000000004061411051537200227620ustar00rootroot00000000000000PNG  IHDR(-SD*A2&P?3`y5`y5.%P?3A2&6+#6+#.%6+#6,$=3,>D*A2&P?3`y5 tRNS "4eIDAT]K@CYTZ{]򑆰@`=#BB5ahUӬ@ٗ@2i>>}^Q|gv4 FE;҂>IENDB`ethereal/textures/ethereal_olive_trunk.png000066400000000000000000000036141411051537200214550ustar00rootroot00000000000000PNG  IHDR DPLTER)m1{eJJ՝JuA}9qJR,jeAyRR< 90 JD J8ZA90jL)J4J4R4saJA$9,}Jj]JJ,q9{qRJZH1R<sP RZ<bD)mRmARD1iAb<AbYA}Z{a9J0uJRJ(A4JD1R(JZ1$RL9uRJyZRH1sHA(s]A1 9 RH){aAsP1 J0A}JjaJb@J8 A@1sU1sL e9jP){e9qZeAj]99$mAA0A0Z@R<A8)ZH)1(ZL)jeJA,ZD)ZD1saA1{]91$yAb]JuJuRR@Z@ R@ yJA}RR8)uA{mR{iA{iJjYAsU)RD sY9b@ ZL1bD ZH9(s]19${eAA4bU9jU)ZDJ< jP1jH }JqAJjHiJJmAbP)JD)m9bH bH)iAbP9J8R@)R81(siJqAsiA1$jY)uAZD jU9jU1sa9jY9R8uJJs]9j]AZH bDZP9RD{]1jL ZjLjL1J@)bL1bP A4 J<9(mJqRZP1bYJA,{mZ}RsU ZL9bDse9J<)qJbL)bL RD)e9sY1seJjY1seAbP1yRbU1bPAA<)qJ#{tRNS*IDAT8 mk\ǭL看n2!u-z 6;l FRm  Xu~*o*mp <"|$K @5FwOIZYpEWX3U15|IS`p1Nz/^}~e bC (β_7+_c1{;+,[/! 3!qu&G/B*̬'#?հVշɫgs@-NQƙ5²$~?L[@ѦhǨQ|j(*}e';CכEBl7ƪ4'gI/#"9Nz#X87e ~n]E)^uy3hEd} .~;<7!K,Q6˝ w}FY/I ݐb^' ^RwO&6'Y\Ps7M6ݑT-ʹ JB'umj؀)R٤Am B O iJ䥹kɗOMI׫Hy)-9\JN6ds܉<,hQ6R4A.e`Џɻ8ˊr:j=b(e{d>>,:ixg }2ǵ$&S3-/۳gKI$҃HV% D!"3Yő^*PN[~_ohҔ@o3 \۟HʲDk}v8rq/2g"8WR\|Z}[壙kOg4zab !6CZcbd0 gդ} b]{T" *[ʼޛ3{NB*%&_3^k ld'kP[dW`Cc[m[igIENDB`ethereal/textures/ethereal_olive_trunk_top.png000066400000000000000000000015641411051537200223410ustar00rootroot00000000000000PNG  IHDR DsRGBPLTEZH1saAZD)bP1siJsaJJD1Z@Z@ {]1j]9iJuRuJR@)1(R@ JD)A$9(bP {iAsY9A(R< {aAb]JjP1sU)jH {eJmRA@1{qRZP1jL))jY1sP1tT`HP8hHTDt\`| |LϤAJ)Wi /ɿ%e( p2D$x:x8/'ƞO(]gEt+vx[%[FcfdRHK8mÃ0MpT\z[l8K[bnH/aUympXM-Ux-01{Q_J~&-o݂.oDPmhq2lABZە?csReև{tNJVlo+Ar#qCb!m$G:v'p.[9 ) vϾk,@B%% * ~`~*-X<2.ƻӊymq4 FNd4){\Αx! y$7 Õd|4IENDB`ethereal/textures/ethereal_olive_wood.png000066400000000000000000000010461411051537200212570ustar00rootroot00000000000000PNG  IHDR(-SPLTEe5W1g4c3_3?;u9C=Q\2Ç Ŏ,|w…ƒ:ő4piVZč/ď2‡ċ'v~qunyrg P;'^d m*8&4"(&/ 3"'5$8%.l_`e Z{mÈ"ĖFƞY[d3R/C+U/j6;>|;ş]È$c ǦnŊ&Ē9Ď1Ō(-. +2!CřNBŏIDAT10UHP%'`L%Z.m79wx>' 륁)Ft#nd{hSDK^ZTJ3&-=:Šƨ@ E><|=o4G{GEPfEơ-V"缮Ks)k=TAѵ) ~4M»򡴿+ZF}IENDB`ethereal/textures/ethereal_orange_leaves.png000066400000000000000000000011561411051537200217250ustar00rootroot00000000000000PNG  IHDR D3PLTE8" ,6>H#R!(\#,a(/e%/l*4v-:|2:3B;ITQTjd)YzؐAuw#]Kr57/-X-5*;g kp B~Jٮ}`uI0hAI̜/1,Fw_d⵨*Q]>6oyfOӣ:oVS9N]?+5bp f֌昛ȈGnL%?E+^|FD;! ͝{ONe| К#2B-kZ(?7!1\ᓋI] $䧹՚0qfx -Zϐ\ B`m|G8 iѱ7 -ܐZtR_U6zQ=~A7D[6:*HS;s}վm"Cc+KaVIENDB`ethereal/textures/ethereal_orange_tree_sapling.png000066400000000000000000000002761411051537200231240ustar00rootroot00000000000000PNG  IHDRR!PLTE!#.%6+#6,$A2&=3,P?3mY0(KtRNS@fKIDATc`@\0FahQ XA 3Bᬮ3A4RR j0,0sL0Vf-I  $y[IENDB`ethereal/textures/ethereal_palm_wax.png000066400000000000000000000002451411051537200207210ustar00rootroot00000000000000PNG  IHDRRPLTEhŗϟޮ|1tRNS@f8IDATc` ())i挎 C5 MM )DBBC]A &A k,# %*IENDB`ethereal/textures/ethereal_paper_wall.png000066400000000000000000000005051411051537200212360ustar00rootroot00000000000000PNG  IHDR(-S`PLTEjL!iL&pQrT'rW/nEu@vFy>zDOJNNIRQXN[VS[a\âfgƪjǬrͱqϴyYIDAT]0 D^BS9p#9剔V~mFhӠm*FQJ yHBoo:RBp"58πC $!;~O{|X1O31k d(FZ?2 ?6IIENDB`ethereal/textures/ethereal_pine_nuts.png000066400000000000000000000002141411051537200211110ustar00rootroot00000000000000PNG  IHDRb PLTEbSm_'6n5:VtRNS@f.IDATc`@Oy  |@(`  !$P!`7b"IENDB`ethereal/textures/ethereal_pine_tree_sapling.png000066400000000000000000000003221411051537200225740ustar00rootroot00000000000000PNG  IHDRR-PLTE=3,A2&A2&A2&6+#!#$mI.%6+#6,$=3,A2&ImP?3';tRNSwKuNIDAT[c`@08Cb)Yp,tg[ &r xel2xAs %IENDB`ethereal/textures/ethereal_redwood_leaves.png000066400000000000000000000017111411051537200221120ustar00rootroot00000000000000PNG  IHDRaIDAT8UOh#ef$LBcJi[n*–&Aoғ Ńx .^dBY"5J`64vۚ7>/x&X=bEWNpOټ4 Dsr2Fw oJl-Rk;kmcurK.DT 卽"ĸrv~$!~-vc!KЩS]ghryF+q 4rFCC"eU$e",ZD?PsvߔQg4gdDH0WVn;})EVwEJ;gUi?pL$4~@;WHɇDճyR忡s\0f Dpb 7ukHMqT9R;?t7*]udK!y*\_\{2M)`/y#+)3`[ͻU_$fy|bd[0v 5{eh"[) ßv=@~8t5Bz;<`s&R_YMݲhA:ta4 CN6Rw* ϲҭ{U9 Mݮg"H~QD*`y5nޛtRNS@f:IDATc` p@0"h6H5i@ݡ] tS $x o::IENDB`ethereal/textures/ethereal_redwood_trunk.png000066400000000000000000000015431411051537200220010ustar00rootroot00000000000000PNG  IHDR D`PLTE  ! &+'+ 3080437;"7$<#A":&C%@'J)C,N(E,H-S,T2!P3%P4 T41MbKGDH pHYs  tIME;6IDAT8 ջb \ؒF߲l%|abNw1H=Ũf UHٺ;sz\C/ZRQkQK Rـe7]dY(d>͖Uǒb KˀAdJ50Lw vlT >˕Ɍ>.e暿u߾櫸?KSZ}wBq%!!4KաC\\¿jcB1FS?;xpw׃/$DGY #X6W@bGPHֵ>įˍc%klTCYP{C?'i 2ic޷ǩ‹WE(3nXnSj Ϗ׫4r7Pub@PxtO!zOO&MDQ6O#VyL_Bb̹~ԓ/Lc2L zkwf йֶgz)V' %.! a汫3 =R?xaJxݼ<ȹ ~~ѻ,]ƪϟ_n V4[|vF@J_”UiºEMKW-sgdL Gi{pHARx}&Һ+E.u8FɩIENDB`ethereal/textures/ethereal_redwood_trunk_top.png000066400000000000000000000014661411051537200226670ustar00rootroot00000000000000PNG  IHDR D`PLTE ! ' (7;A C0=@I@ G GM8"JP M! @%V$Y& T'K/!_,\-a,f,i5b='}Y[bKGDH pHYs  tIME;̂`\IDAT8=T BBp6T$٠1zvz,y,t՜ZmKD)S {3ru%g#iRkRt!vZ0K 瓻b"a('*hg.j"R7x#U*(>7KE]+D!xtykkrLēА|@T]r]an,hTp.Tq)>&,w Ou90T<3;dB(0oe»TiQ*צ9S$!Ѻ07wBF8s !8k}c &$g7*B0Iυ ËdfC hYPX{",8NC 5ߑr#ڠߥq X]_̏Yz8{=O|QBp>IENDB`ethereal/textures/ethereal_redwood_wood.png000066400000000000000000000012161411051537200216030ustar00rootroot00000000000000PNG  IHDR D`PLTE-2 26; 9 ?<E A HC AK F D NJP M M!T!Q$\" X$ W$['Z'X) X*_*].lIDAT8UR R*a\AW/oz7 db9{|X_ʑP~Yb#{fߠὄ&2o,AX䄔$( klľ$_8/%H 4u@UAHW]KQ^>fRJԓ9 d$)R̂,﹃,& Bkk"J)ي@C0@ڶZ6ԡFPU^%؈ tFA )[a}0 < ,lyIENDB`ethereal/textures/ethereal_sakura_door.png000066400000000000000000000020131411051537200214150ustar00rootroot00000000000000PNG  IHDR& IDATHoDş7&)-4h%%R4pJ[*$'BK-7kA!TG Emm&nan[X|VY}(:%%cy߷\(NW,s]ËAB^ׄN xqb(2.?6o6?gWZ_ \]>v}bv\O B(}&: /]R(PREvv~@o׳zNj-kĠ\UX)!D |•Htl$IʵePߟe?ˀ8)3X]Z EIΦ^7Vʫ5zce!Ԛi~ռo6t*/]^&^_;L0Kjߗ >u1#>JtI,^8jR^dB$k78Ll%Q}hͣa?˃= ͖H~%ofui!㋗WDY3Q?pMͼ$iwi0 чe8I(KԾPǏf4m8vU^P;}Dg >A^Vozv؏Ξnm=a*`W|ڱO;ӱ^q[M?~:?ؙMpBM˘l0 %r<9e;GPfk뎥]/?7~Lf^4uv N% ѐ 2]/S}G:{\z~9lצRuSeY0εiV."EuzDiFs}ǪEE)8 'K? *Jk+yH9`yG_x S1FSΩ:bbuT-{%錍~?|pQ$O"( ]IENDB`ethereal/textures/ethereal_sakura_door_inv.png000066400000000000000000000003341411051537200222750ustar00rootroot00000000000000PNG  IHDR(-S3PLTE@g9h4m?n:t?xJ{LKKPPb^cjKtRNS@fWIDATӵI0E;a[-X{X=CHL7MDG/-"[ӊ\ـD "c`DQIENDB`ethereal/textures/ethereal_sakura_leaves.png000066400000000000000000000004301411051537200217320ustar00rootroot00000000000000PNG  IHDRaIDAT8!@EфK VTpne/A7X A(C64m**A[Tcv,ۢkV<%v,&3,k,Q0dرLpSR)i1owL~f+mݡR[Th) vb!:kE_:WmQ tʿ߃)%dη;Lf(kRé=xî^]=IENDB`ethereal/textures/ethereal_sakura_leaves2.png000066400000000000000000000002671411051537200220240ustar00rootroot00000000000000PNG  IHDRa~IDAT8 E;[ SpNXSr014/fd?k (o5cwCk  MQ eT`cḲ |8B(X7eojF~ڃ.oJlsv)?/1(?7<&4 sSd$TQp>i #uA,p[}&A@G묿["x_}@$mytIloܽQG[&C*;ZT]VRb <6͐aNyT60R'yU&i ^sǔR%~𬝚RJH3O$)/B..?!3713/lD`3R(ʍ:EZ/U[B~rqBIENDB`ethereal/textures/ethereal_sakura_wood.png000066400000000000000000000010211411051537200214200ustar00rootroot00000000000000PNG  IHDR Tg0PLTErpwz}~Z-SBIDAT(5ѱk@GN?PP:0=pD(<_ SDjx1'.1-ǘRq!ނIvqAa'0J lED GI%lҐAv, \~n~@eI^R|b B[ځY)8j }QBTBx&mv :>^gzg=܂z=(+*}fKWDGn$-{\B"`Ȍm2h&9AxA*HV nD'SH2ݦp!SPO>n ?\4:Ҟ3rRƒơz[D4/ֿxj?BQO|. z){Gй?*bIENDB`ethereal/textures/ethereal_sashimi.png000066400000000000000000000007451411051537200205530ustar00rootroot00000000000000PNG  IHDR D3PLTE>%+*%>>=R TY[4?ACBulm~}q tRNS@fbKGDH pHYs  tIME*X+IDAT8˵ے C/[kW6i3}&  Q"/n\#D<]it9rpUGm]u*Vyn<@qޑsLX6Z),rY{Tl''p .ftn c{}W]]ت]>ΐ:{D#DyHhh"p[!.>VdQm@|\6$l\z?\~@4X+IENDB`ethereal/textures/ethereal_scorched_tree.png000066400000000000000000000004201411051537200217150ustar00rootroot00000000000000PNG  IHDRR0PLTE  !"$!$%#&(%()'*,),-+./-130BIDAToaa7GqrXx)نbJmׇ2<:ţ!=6Ӳ2>ձ"3v"^aZ2-N?lbw_Bhq>qMNV_~QP1.qIENDB`ethereal/textures/ethereal_scorched_tree_top.png000066400000000000000000000004201411051537200225770ustar00rootroot00000000000000PNG  IHDRR0PLTE!" &'%+-+686CDBMOLVWU^`]kmjxzwD,dLIDATo1 "!&5wD0%%˼A%r$b$Q%΁ˬ́̾͂˩νrq̹R[05fwS1"!7F`IENDB`ethereal/textures/ethereal_seaweed.png000066400000000000000000000007721411051537200205330ustar00rootroot00000000000000PNG  IHDRaIDAT8}1HQ]z*F+Qx xur ""E . N"N!CI!C;i!݌hTl;r}}LUPY?s`҈`W(.D"a<\L=mtG8 *(`ߖ/TUFrd,φ.UR_EG* ѯÔ~y`3("k]f/]Ve5rI^jjf@ RZڛ,6ioq;0káCɖ{ލ> 4VYe:\I (9݆:= al}oGADʝWp5冗/{nrJIENDB`ethereal/textures/ethereal_snowygrass.png000066400000000000000000000004421411051537200213270ustar00rootroot00000000000000PNG  IHDRR pHYs  tIME9 vFtEXtCommentCreated with GIMPWPLTEcccpppX&6tRNS@fbKGDodIDAT EW tDĿ .0(2m봍8X$$w ;}a;V4Hx-NjcNwig'{ػ5݊}Iݫݽͽ:jݭKh۫ݝS՗IENDB`ethereal/textures/ethereal_sponge_wet.png000066400000000000000000000004201411051537200212560ustar00rootroot00000000000000PNG  IHDRR0PLTEsHXep!y#Ӂ&ٍ5ܕDޛObpz깅漆ɡKIDATo4\.#"aٻS:q.%#3<#q;B.6Uev(5h^(g̜n&~fEyye G0{oIENDB`ethereal/textures/ethereal_stone_ladder.png000066400000000000000000000002651411051537200215560ustar00rootroot00000000000000PNG  IHDRR!PLTE 76*:9.GF7WUEfcNfeOonXsp[u]RtRNS@fBIDATc`U3 NIP.͹jQ e6DF0)0s ָ@1 # M IENDB`ethereal/textures/ethereal_strawberry.png000066400000000000000000000005761411051537200213240ustar00rootroot00000000000000PNG  IHDR D3PLTE8aw L"Z (m ,z9r@"PtRNS@fIDAT8˽mo cb0ڞnn&R>{;G8\O7@tq޼ orq5}ŏ h!Fo%~Y hJ#@)>$ oZ LhPe9 U IT,&` 9.) .XXS¡䜒!l̙ ;|FʉAonx;!3_0zq b~/xs Z/IENDB`ethereal/textures/ethereal_strawberry_1.png000066400000000000000000000001641411051537200215350ustar00rootroot00000000000000PNG  IHDR IPLTE_8"0tRNS@fIDATc`0 y@`C#1IENDB`ethereal/textures/ethereal_strawberry_2.png000066400000000000000000000002111411051537200215270ustar00rootroot00000000000000PNG  IHDR g PLTE _8ƤtRNS@f.IDATc`52T$ e0`a 8`C?IENDB`ethereal/textures/ethereal_strawberry_3.png000066400000000000000000000002351411051537200215360ustar00rootroot00000000000000PNG  IHDR g PLTE_8ωstRNS@f?IDATc`` 2D# caQe0`c(@;܊@(Xj 8|IENDB`ethereal/textures/ethereal_strawberry_4.png000066400000000000000000000003211411051537200215330ustar00rootroot00000000000000PNG  IHDR TgPLTE_8mƕtRNS@fpIDAT(α 0 7؀ 3(,DA;_Į7i A˫C@e9d6j|EPN0>A `2ZeȐ+op%wIENDB`ethereal/textures/ethereal_strawberry_5.png000066400000000000000000000003521411051537200215400ustar00rootroot00000000000000PNG  IHDR TgPLTE_8ςI1tRNS@fIDAT( sE}VF?K!*u't|h R'ٳ9BFZhpEDaL:[H< n ;Vx-xO_sޕ9mt * G*IENDB`ethereal/textures/ethereal_strawberry_6.png000066400000000000000000000003601411051537200215400ustar00rootroot00000000000000PNG  IHDR TgPLTE_8mmItRNS@fIDAT(͐ ! DA"w֢D迖Rdr7f>.O``e]* &Ԙ] QLtPѮhsx@]#k>nyeUo򍾼v@ 0u`{> نIENDB`ethereal/textures/ethereal_strawberry_7.png000066400000000000000000000004021411051537200215360ustar00rootroot00000000000000PNG  IHDR TgPLTE_8A6ImmڪmtRNS@fIDAT(͐;1 m)F'XVIOQSGETȟy!o(سozuK^%Hk7*Ձ] tw3|fudy 4Z[awk ~inفzyZzHJ1LLNwSg@XIENDB`ethereal/textures/ethereal_strawberry_8.png000066400000000000000000000004021411051537200215370ustar00rootroot00000000000000PNG  IHDR TgPLTE_8I.ttRNS@fIDAT( P[*wjA٠;pGf_R;tDѿ,?)Z,Ϡ syGBYH IENDB`ethereal/textures/ethereal_sushi_kappa_maki.png000066400000000000000000000002711411051537200224200ustar00rootroot00000000000000PNG  IHDRRPLTE!&(%TVS8GI_litRNS@fLIDATc`D3 .@XEHHy"H$ŵ,՞QbW+ 0A d+{PߩIENDB`ethereal/textures/ethereal_sushi_nigiri.png000066400000000000000000000003021411051537200215770ustar00rootroot00000000000000PNG  IHDR>PLTE!v%y/oy .tRNS@fUIDATc` 0 BYB`6sppp)  A`VpD#PPp[G[{Pp PXGGFFHcFZZX `&#2IENDB`ethereal/textures/ethereal_sushi_tamago.png000066400000000000000000000003061411051537200215720ustar00rootroot00000000000000PNG  IHDRdPLTE!')&\zutVtRNS@fYIDATc`  if 2cFƎ4c rc$PcӐDqcV'FAc@E9L0HJ~IENDB`ethereal/textures/ethereal_teriyaki_beef.png000066400000000000000000000012241411051537200217110ustar00rootroot00000000000000PNG  IHDR22)xZPLTE1 2 !%$,.+y*v+ l.w/i6 mJ2KOd-e'j;qYl$WkBtRNS@fIDATHz0 k-*cL\#$N7ssaG $OO=#7??Jum쁊,USRXw>;c}LRYLǺB 3X aЪxBO08sRR˥Ŧx%Hi-0 \tL ~8j|CDDŽZD3M1hMxijG \VCE+d y'{|nN`[ag^lڄ̙hԨg~*M֦#k,e/s,ސ_*sg1Լ~lN~gyX`1]ZkкJ$&;8o˲2[%RT0ĜoDe2!WI-!=29?[w}7*XX{b}eR0&tgXyÝߋa5.eyA?IENDB`ethereal/textures/ethereal_teriyaki_chicken.png000066400000000000000000000002451411051537200224160ustar00rootroot00000000000000PNG  IHDRRPLTEormY8`<uO(W'c4{T%tRNS@f>IDATc`6(YA"`@SU Sa3f( Tj-m_IENDB`ethereal/textures/ethereal_tree_sapling.png000066400000000000000000000003211411051537200215600ustar00rootroot00000000000000PNG  IHDRR-PLTE=3,A2&A2&A2&6+#m!#.%6+#6,$=3,A2&P?3tRNSwKuMIDAT[c`@0Cq!Dp0dyx7\ ݻ9-L~nH5`9eЌk t1IENDB`ethereal/textures/ethereal_vine.png000066400000000000000000000003161411051537200200510ustar00rootroot00000000000000PNG  IHDRRPLTE&M._1d8sFstRNS@fjIDAT1 0 GBe6gp>-gw2Bho^~#.'x$H-S2cKU&DkOrŰY֩m/O4IENDB`ethereal/textures/ethereal_wild_onion.png000066400000000000000000000002561411051537200212540ustar00rootroot00000000000000PNG  IHDRRPLTEap?o;|Āڲ 8wtRNS@fDIDATc`  4!@4[y HqzyV^d@zZDST: <`IENDB`ethereal/textures/ethereal_wild_onion_1.png000066400000000000000000000003001411051537200214620ustar00rootroot00000000000000PNG  IHDR%=m"sRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.11GB7PLTE;|utRNS@fIDATc 002"x!CIENDB`ethereal/textures/ethereal_wild_onion_2.png000066400000000000000000000003031411051537200214660ustar00rootroot00000000000000PNG  IHDR%=m"sRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.11GB7PLTE;|utRNS@fIDATc 0020 qqgJIENDB`ethereal/textures/ethereal_wild_onion_3.png000066400000000000000000000003021411051537200214660ustar00rootroot00000000000000PNG  IHDR%=m"sRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.11GB7PLTE;|utRNS@fIDATc` 20z5IENDB`ethereal/textures/ethereal_wild_onion_4.png000066400000000000000000000003051411051537200214720ustar00rootroot00000000000000PNG  IHDR%=m"sRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.11GB7PLTE;|utRNS@fIDATc` 02020 JVK@IENDB`ethereal/textures/ethereal_wild_onion_5.png000066400000000000000000000002021411051537200214670ustar00rootroot00000000000000PNG  IHDRRPLTE;|^ëUtRNS@f!IDATc`)R0,b && %tIENDB`ethereal/textures/ethereal_willow_sapling.png000066400000000000000000000005431411051537200221440ustar00rootroot00000000000000PNG  IHDRa*IDAT8˵1KPK {J\Hl8#1CN}OBZQK4d0[.~w.B 0i(=a6e256qJIhmP PJ,L_jm`DgF\6ٸ7߳7}T8$@A46"M[V=&NABr z#(zeJu E$ȣ]˟ad9,jz^`;Qڇggg.7/Sx6ly}}?w&Y𮕗_IENDB`ethereal/textures/ethereal_willow_trunk.png000066400000000000000000000012201411051537200216430ustar00rootroot00000000000000PNG  IHDR Tg0PLTE]_\ac`cebfheikhmolrtqvxuz|y~}oIDAT( O`-i!c 9O0mm%zԵ{D>#t^p/h$,r5qo2^G~|@.wV&Vw7)i#gL0Z Ά`͕+ss!#?ue_ƫ5Q +pb@ up${~g.BM@,yf275!z36jAnZE/gza@zCo@nXWEn4T6$jG u; "w'DU,ǚV%[ޫkm쑹NMy ܙk}[K/#eg{ \QZIENDB`ethereal/textures/ethereal_willow_trunk_top.png000066400000000000000000000007541411051537200225400ustar00rootroot00000000000000PNG  IHDR Tg0PLTE`b_hjgmolrtqxzw~r|çƪǭ̱ϴӺЪwIDAT(MOn@ƟQֈto^@@&nKuopH'hݛt ~7 <ncÅ޺Mce0e]_TJD^eza$޺ϝ|A؋,{-w+s<H'v9;֥|đzyE s׈5fQ}Σ4rY yrZti1#ŋސ0OYC'(䄏D5N(( 4a */&`2YÃޥgJ&"mRpJl Ĭ* t7c:mv18 Ņhcd.$W8 %X8:pkikeߒ^kʘR ؍F0f2Ve@T7!@/n~H50\)_|FhhR_.EQ00W2&M&@̈́e~^$I[[2ޤ#^1y/jA*{kTDedAbN(i>YHIe/F!>#.46 B)]0+e!Pq r(((4ui'e9TE){01ăYBjJ(poǀ"[x"R%ZԒJG} H23vT Kj&qB osO2T U7d)(p'R & XX8E[qWŶ"OދW":W _6p4,TVRs; xOLe؃seRrWXIQ-]q4PT='ԗܱ$DRרKlrA\Ջ f8HUƃVܥIFЋihJ]2uSK>WLvzЈxi* {J4 .<9u0t5}dpLgn{D-#-s:٢a).@sz!GfxANF^cO )V8_ {]9QQjH_|GдhkAdʶLC_CxYNi4\on_aZ^X5[tSď /[nyxzr[GO/)163m!YFIENDB`ethereal/textures/ethereal_willow_wood.png000066400000000000000000000014621411051537200214600ustar00rootroot00000000000000PNG  IHDR IDATHǕV=@]zX6BV B_Iyu@MqI$Pd!l9ΚD)f 'a|3f{F}^;-ldP K2Lw~&w&rZ! A\8$V5ty`1L.6T'YN|>$v#JILu=Y1@d_ T`!>PV0KEI'zC>J_eSd1%s[pVah씼7捯0-E1& P>(ÖS=XSŃuY@1s)h7+kt8 D!7dV, e-`ĸh pe)N*x?I!iw}aDjC|!)Ly(+櫓wD.a>V&ySRr".ł3")Fmyp!9qq "uY)x$(R^ga;FF97D6%j{SD6A6b~VƘh;Y)IENDB`ethereal/textures/ethereal_worm.png000066400000000000000000000002441411051537200200740ustar00rootroot00000000000000PNG  IHDR g PLTEŽ櫨佻FٮItRNS@fFIDATc` a K fe9+1`Xb0ຘa V'̮%JLh~ IENDB`ethereal/textures/ethereal_yellow_leaves.png000066400000000000000000000004541411051537200217650ustar00rootroot00000000000000PNG  IHDRRsRGBgAMA a pHYs  ~tIME :OKtEXtSoftwarePaint.NET v3.5.11GB7PLTEc/T9_ﻢ4tRNS\_IDAT 1 E) xRnR ۹z-;e{B_#vK){ ';8xiSP!I}IENDB`ethereal/textures/ethereal_yellow_tree.png000066400000000000000000000012421411051537200214410ustar00rootroot00000000000000PNG  IHDRh6sRGBgAMA a pHYs  ~tIME +/tEXtSoftwarePaint.NET v3.5.11GB7IDATW@lB;P?}ynGqޕ-K ^kJ|\z\ !\/^R{dt.: BVXEzQD@!yTYeZc<lVqUw[]lvADYJ95~uʜ:MJv1`QtXE!);m_jdf"SaV U)|^)Uy^Fsxe|~sC5u~~{},1ۙSʬ@`B}ߋwȼ艬]y"br@DP__緣;yuu0~S#qnVs8Xu~-h<$R3&Yi4Υ8})D"j<;9deD:4|(,]`fHћom*6IENDB`ethereal/textures/ethereal_yellow_tree_sapling.png000066400000000000000000000002701411051537200231560ustar00rootroot00000000000000PNG  IHDRRPLTE$!.%6+#6,$A2&=3,P?3NHG tRNS@fHIDATc`@0F0ahQXA `pVWR.5~JҬ0)S  #z#IENDB`ethereal/textures/ethereal_yellow_tree_top.png000066400000000000000000000014401411051537200223230ustar00rootroot00000000000000PNG  IHDRh6sRGBgAMA a pHYs  ~tIME  -\,òtEXtSoftwarePaint.NET v3.5.11GB7|IDATnEvvwgm'[HE*p ' x • H q+*JRٱ;;;ǟ=0{W#FR7F$y5).}g'{{Ma_<_KsgS6#;Qp ;r.1}+ !ɂ#ۿU甍 <&;W)t<ْlOE^Tέ^+Ѝh-9Rxm/Gݲub,[cd=NʸMRj8/jxS]!g~ >h.6]ID.~oMCMp;\*kι( pC>C)f݃ xA[kvyH}mPh}EuK'(ݭ(g v}?ˏɵf\=ԡ]ۗ֒IlGR=V8?:H1I#* Q?~vpDOr,Y9.+}4K1Jd-9@դZ h$R7@&Pubx IENDB`ethereal/textures/ethereal_yellow_wood.png000066400000000000000000000004151411051537200214530ustar00rootroot00000000000000PNG  IHDRRgAMA a pHYs(JtIME2ztEXtSoftwarePaint.NET v3.5.11GB7PLTEP[)U`,u7DRs~G[IDAT 0 D`* 35DiLlFm{I)g2"q@Red*) ^ښ%Yuc#6;IENDB`ethereal/textures/farming_orange.png000066400000000000000000000003541411051537200202170ustar00rootroot00000000000000PNG  IHDR(-S3PLTE8FYl$Ye\Vx3d c~-nkd>u7q t~]tRNS@fgIDATӍK0D;1.ݼ }9Lst/(P)!555A96ty ܝ $7 ׽eYTR>IENDB`ethereal/textures/moretrees_acacia_leaves.png000066400000000000000000000005241411051537200220650ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIMEDIDAT8˭-0B*cr`ArLj5pL%#k7hr#.GQE=DoEpŸgY8MǏscSSe,e)x=jrQF-#PTuJ3lDktF8M6(*xڧT/4~w iï $ }BIanL[uw,LIENDB`ethereal/textures/moretrees_birch_leaves.png000066400000000000000000000007131411051537200217530ustar00rootroot00000000000000PNG  IHDR(-SPLTE6s/ 0.) :*H*S*v,4+#:"H/Q/.* 2..U/S/&B&o'E'mY_]t.P.'C')G)W1U1(F([*J*ak,N,,L,+K+eg-O-ci2:3tRNSqIDATaA AL_\fxm'Ui(o-j錐XAѹx:y=Z[_|ت#"HL8pg^maFv[%tY22*6shE\+`+73E ^?')7IENDB`ethereal/textures/moretrees_birch_sapling.png000066400000000000000000000003201411051537200221230ustar00rootroot00000000000000PNG  IHDRRPLTE&{  &{ 0ptRNSvdIDAT1@x `kAxlmOX)Ah P(ַޔrf#>GobԜՌؓأuP];Dž?ɑSƝ=IENDB`ethereal/textures/moretrees_birch_trunk.png000066400000000000000000000017171411051537200216440ustar00rootroot00000000000000PNG  IHDR(-SgAMA ajPLTEkVqҾqYnL9n\Ⱦ˾xbcIiVňwcfMnVCxkcLǺķ˵ŬV<%xf@!ӝci{VnMľwV}_Fȳٺw󺬘ʿͺǸkS@/nSķ򷤕bLǸźǷķı⚉}įܺžӳֵĵʿóDZȱŸǾͿĐn}qbͼȼtbqĸnǼ{kPf5/˳ȵóY9(Ⳡʿ}nЯqiYFIDATcؖiauN[jCz=+׮>|)îwnܰy뎳;~ zY qE ΚpZNuk)OdЖ~ hfj]>m9E,wop&>޳gt={0+0q x&pDMQT^S-8)aOYC3 2gl =asS|cs5b6gl{[k︊# G,Wg`峿a1JxsIENDB`ethereal/textures/moretrees_birch_trunk_top.png000066400000000000000000000014531411051537200225230ustar00rootroot00000000000000PNG  IHDR(-SPLTEϱ{ye˹ʸrD>1|^O[MhXp]t`k[p^äƫxѳŦpΰĢͿnîqSFDz̺r˰̰ŧɵtWIĪqo[ˮwȬε˸ĬưXMArXI{hȩo]ϸZD8ǬʱçĤotͺɰĩxҺ[H9Ѷq[G9t{fͽuį˸r^N~_KPF5Ȳ=6-tí¦ƱdhVxbȳRE7©~̹;[D34**ɷXH:ƭZH8Ȱé5,,mH91B60̬ҶA7/ӽ;ŮM>1ɬuͼ̹иɲũ***г˷οWI9H@1¤̻Ҹ=4-N?2B80 mIDATbCAm۶m۶mIOw#@s򁡭2-)%#u@-QWe\̭<QZCj ̲Z!RPTocY2EcABL|vAs:%?&./_ܺ`@MVgw?m,DG6On?;ܶ,[dAjWGcKӫqgak[ ёË7qD℈6jͼwIENDB`ethereal/textures/moretrees_birch_wood.png000066400000000000000000000020631411051537200214440ustar00rootroot00000000000000PNG  IHDR(-SPLTEں}k9ௐhŽʡXiʙ۵yͩpϫxཌྷi9i3ҩvfֱsͩv۱y຀a^U心ޱs†ō広㿈ݱsʖ~۫q㼈q<^ɣkֵ{͙̗Ŏvaq;۵}弊ʛeݸϬnŔf-ǎ‹y콁ʙ`kկuرxp/庅ɗu9u;D֞忐s<֯{ͣYɞạf潀i0u{v֬qݵ֯uիp۳ɧsϦpx*Ő彆Ic }濅֮yڷ~ɞhAݳ}xC^L ⺈լyfHm4“ر޼y3֮su@ཆݳyຆݳn…֩n㸊if c ϖ⼀kطyk əmɓ彊fţcձxĔf™aUX~֫e~6ğeu*9خf迅xرv漀m*uʛaəŠ⼍ֵf޷}֧u̐xKϬs{Hp9x/Nڱyә{3{@ɜ`̱~֮pϦfŞ^ĈϤe*֮qݱ}ҫia4}֯nݼ{ɞcU⺁ͦfرqňϦm—[u<؞̣eլu۷y~۱~ɟfدxˆ֫fx)ɟX֯s۳sӬmӫn^ʡfsA۳xʤiիqݵyɟe~޷өpҧqǜah/ɡnڱvϦuݵv<~v-q yDݵxNvA 3IDATWJA矝]v-H ,)f }i2D˺v8Κ+{^D%n9/␡%f(>F'@j廃u(>V6V?~uI <+6$e uCHσR}v!YO4;[2a5}W/?8Y)Ҙn[,kkIENDB`ethereal/textures/moretrees_coconut.png000066400000000000000000000017311411051537200210000ustar00rootroot00000000000000PNG  IHDR(-SgAMA aPLTEo+G"L$6DLC9M"N$B L&V.4N"@@+^*Z(k-I 2E# 1\#AE?Q=5@IAR=6U!<7k+9FR994E"\&3t.AN"?m1;;Z"Ag)E2k.X#g(A6](Z(p0R!U%%NM#T%4M$U""B; ?C' .+T >\'R!?&' 41& % (.T $3:/<;/M"F! 2:IJ!& 0A7'C@% 5'  =5 ;8835 ),L),*,01" !'!)"()[>(_L(^!R 8 90gQ!UF-d!Y3F)`!P?4%[JO> 4,EE 6-c 3+c$TP&Z;@)c 5!O8,b *3 /&UN!T6B4+/h+[ 7P&_!M&1'+#W:%SB/g@0&R,`= 3E 7:FFCO,cH 72$U$W7 T0([:J)0e+`LqStRNSE9QIDATb@_۶mm۶f߅;#p}hJ/涃|&#~ 15']Mث;0=f-yY/ryǐ%6TBitnxws!QɨqF1䧢䢨|82L!+}>sW:*ڰx92K+E:_읃Ph#-'g h)iʾ],1zI*f5FP/gOIENDB`ethereal/textures/moretrees_palm_sapling.png000066400000000000000000000004031411051537200217670ustar00rootroot00000000000000PNG  IHDRabKGD)#N pHYs  tIME 6&@geFtEXtCommentCreated with GIMPWkIDAT8c`hMP:?2ߌD!L蚑m׌` ad0pxFCXS忦 ^3kY &JI?pA )7iCMIENDB`ethereal/textures/moretrees_palm_trunk.png000066400000000000000000000004771411051537200215100ustar00rootroot00000000000000PNG  IHDR(-SgAMA aNPLTEgEqOdE^?nKjHT8 `&@(K.bDT7 ^@O2W9 [=Q5 yV["V9 P4rO`CX<hIA)ݫIDAT- Cٺ۪U.P P氦 04HJ+ *ɭ==rHe0=xlnd8z:w9Q袜LAW(3v.=|4Vƿ&ց\ d{IXIENDB`ethereal/textures/moretrees_palm_trunk_top.png000066400000000000000000000006461411051537200223700ustar00rootroot00000000000000PNG  IHDR(-SgAMA aPLTE>{9;x8s4Z*m1d/D1s5P$W=f.{W)mM$iJ#O8~Y)m3q5v7i1a-\Bk2aE ΊOy6v5w7֞mI4yV(S;ڧ{ӗbN7ʂC՛hܫώV˃Dأuѓ\ݮآs۩~C/uIDATUv1P9qSe<)H ];`l7f>8X;ׅ@ʼn m/zU+̒"\V[e GNER&Q˨# ǁ탤7/miShy $<廙yx<O`ه?[%mPIENDB`ethereal/textures/moretrees_palm_wood.png000066400000000000000000000011261411051537200213050ustar00rootroot00000000000000PNG  IHDR(-SgAMA aPLTEũ¢yJnDd>oDg*V#l/}MY6eO0D*_'I,T#]&I-jf)pkm1v¡`P1?'G+oB)tG@(UQ!j,zKT3<%W#Y7i{U#U#vIwAZ%^9r9qEq8zGn3_'bXxIyDTp6|I{LxCdu>lo5cK.PQg{H}Js:Lt=^OY[R2zEW_\SNnNIDATPv6mlԝ:U瓖(^@|wsڗ"a#qWxug"j+߿Ū׏az#Z$4H҂ކ0Kqoط~'aGq"eTYvfVvĜi%J~fr"*^w(dogc/TUԽIENDB`ethereal/water.lua000066400000000000000000000106461411051537200145020ustar00rootroot00000000000000 local S = ethereal.intllib -- Ice Brick minetest.register_node("ethereal:icebrick", { description = S("Ice Brick"), tiles = {"ethereal_brick_ice.png"}, paramtype = "light", freezemelt = "default:water_source", is_ground_content = false, groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1}, sounds = default.node_sound_glass_defaults() }) minetest.register_craft({ output = "ethereal:icebrick 4", recipe = { {"default:ice", "default:ice"}, {"default:ice", "default:ice"} } }) -- Snow Brick minetest.register_node("ethereal:snowbrick", { description = S("Snow Brick"), tiles = {"ethereal_brick_snow.png"}, paramtype = "light", freezemelt = "default:water_source", is_ground_content = false, groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1}, sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_snow_footstep", gain = 0.15}, dug = {name = "default_snow_footstep", gain = 0.2}, dig = {name = "default_snow_footstep", gain = 0.2} }) }) minetest.register_craft({ output = "ethereal:snowbrick 4", recipe = { {"default:snowblock", "default:snowblock"}, {"default:snowblock", "default:snowblock"} } }) -- If Crystal Spike, Crystal Dirt, Snow near Water, change Water to Ice minetest.register_abm({ label = "Ethereal freeze water", nodenames = { "ethereal:crystal_spike", "default:snow", "default:snowblock", "ethereal:snowbrick" }, neighbors = {"default:water_source", "default:river_water_source"}, interval = 15, chance = 4, catch_up = false, action = function(pos, node) local near = minetest.find_node_near(pos, 1, {"default:water_source", "default:river_water_source"}) if near then minetest.swap_node(near, {name = "default:ice"}) end end, }) -- If Heat Source near Ice or Snow then melt. minetest.register_abm({ label = "Ethereal melt snow/ice", nodenames = { "default:ice", "default:snowblock", "default:snow", "default:dirt_with_snow", "ethereal:snowbrick", "ethereal:icebrick" }, neighbors = { "fire:basic_fire", "default:lava_source", "default:lava_flowing", "default:furnace_active", "default:torch", "default:torch_wall", "default:torch_ceiling" }, interval = 5, chance = 4, catch_up = false, action = function(pos, node) local water_node = "default:water" if pos.y > 2 then water_node = "default:river_water" end if node.name == "default:ice" or node.name == "default:snowblock" or node.name == "ethereal:icebrick" or node.name == "ethereal:snowbrick" then minetest.swap_node(pos, {name = water_node.."_source"}) elseif node.name == "default:snow" then minetest.swap_node(pos, {name = water_node.."_flowing"}) elseif node.name == "default:dirt_with_snow" then minetest.swap_node(pos, {name = "default:dirt_with_grass"}) end ethereal.check_falling(pos) end, }) -- If Water Source near Dry Dirt, change to normal Dirt minetest.register_abm({ label = "Ethereal wet dry dirt", nodenames = { "ethereal:dry_dirt", "default:dirt_with_dry_grass", "default:dry_dirt", "default:dry_dirt_with_dry_grass" }, neighbors = {"group:water"}, interval = 15, chance = 2, catch_up = false, action = function(pos, node) if node.name == "ethereal:dry_dirt" or node.name == "default:dry_dirt" then minetest.swap_node(pos, {name = "default:dirt"}) else minetest.swap_node(pos, {name = "default:dirt_with_dry_grass"}) end end, }) -- when enabled, drop torches that are touching water if ethereal.torchdrop == true and not minetest.get_modpath("real_torch") then minetest.register_abm({ label = "Ethereal drop torch", nodenames = {"default:torch", "default:torch_wall", "default:torch_ceiling"}, neighbors = {"group:water"}, interval = 5, chance = 1, catch_up = false, action = function(pos, node) local num = #minetest.find_nodes_in_area( {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x + 1, y = pos.y, z = pos.z}, {"group:water"}) if num == 0 then num = num + #minetest.find_nodes_in_area( {x = pos.x, y = pos.y, z = pos.z - 1}, {x = pos.x, y = pos.y, z = pos.z + 1}, {"group:water"}) end if num == 0 then num = num + #minetest.find_nodes_in_area( {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {"group:water"}) end if num > 0 then minetest.set_node(pos, {name = "air"}) minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.2, max_hear_distance = 10}) minetest.add_item(pos, {name = "default:torch"}) end end }) end ethereal/wood.lua000066400000000000000000000225271411051537200143310ustar00rootroot00000000000000 local S = ethereal.intllib -- sakura trunk minetest.register_node("ethereal:sakura_trunk", { description = S("Sakura Trunk"), tiles = { "ethereal_sakura_trunk_top.png", "ethereal_sakura_trunk_top.png", "ethereal_sakura_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) -- sakura wood minetest.register_node("ethereal:sakura_wood", { description = S("Sakura Wood"), tiles = {"ethereal_sakura_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:sakura_wood 4", recipe = {{"ethereal:sakura_trunk"}} }) -- willow trunk minetest.register_node("ethereal:willow_trunk", { description = S("Willow Trunk"), tiles = { "ethereal_willow_trunk_top.png", "ethereal_willow_trunk_top.png", "ethereal_willow_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- willow wood minetest.register_node("ethereal:willow_wood", { description = S("Willow Wood"), tiles = {"ethereal_willow_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:willow_wood 4", recipe = {{"ethereal:willow_trunk"}} }) -- redwood trunk minetest.register_node("ethereal:redwood_trunk", { description = S("Redwood Trunk"), tiles = { "ethereal_redwood_trunk_top.png", "ethereal_redwood_trunk_top.png", "ethereal_redwood_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- redwood wood minetest.register_node("ethereal:redwood_wood", { description = S("Redwood Wood"), tiles = {"ethereal_redwood_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:redwood_wood 4", recipe = {{"ethereal:redwood_trunk"}} }) -- frost trunk minetest.register_node("ethereal:frost_tree", { description = S("Frost Tree"), tiles = { "ethereal_frost_tree_top.png", "ethereal_frost_tree_top.png", "ethereal_frost_tree.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- frost wood minetest.register_node("ethereal:frost_wood", { description = S("Frost Wood"), tiles = {"ethereal_frost_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:frost_wood 4", recipe = {{"ethereal:frost_tree"}} }) -- healing trunk minetest.register_node("ethereal:yellow_trunk", { description = S("Healing Tree Trunk"), tiles = { "ethereal_yellow_tree_top.png", "ethereal_yellow_tree_top.png", "ethereal_yellow_tree.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- healing wood minetest.register_node("ethereal:yellow_wood", { description = S("Healing Tree Wood"), tiles = {"ethereal_yellow_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:yellow_wood 4", recipe = {{"ethereal:yellow_trunk"}} }) -- palm trunk (thanks to VanessaE for palm textures) minetest.register_node("ethereal:palm_trunk", { description = S("Palm Trunk"), tiles = { "moretrees_palm_trunk_top.png", "moretrees_palm_trunk_top.png", "moretrees_palm_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- palm wood minetest.register_node("ethereal:palm_wood", { description = S("Palm Wood"), tiles = {"moretrees_palm_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:palm_wood 4", recipe = {{"ethereal:palm_trunk"}} }) -- banana trunk minetest.register_node("ethereal:banana_trunk", { description = S("Banana Trunk"), tiles = { "ethereal_banana_trunk_top.png", "ethereal_banana_trunk_top.png", "ethereal_banana_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- banana wood minetest.register_node("ethereal:banana_wood", { description = S("Banana Wood"), tiles = {"ethereal_banana_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:banana_wood 4", recipe = {{"ethereal:banana_trunk"}} }) -- scorched trunk minetest.register_node("ethereal:scorched_tree", { description = S("Scorched Tree"), tiles = { "ethereal_scorched_tree_top.png", "ethereal_scorched_tree_top.png", "ethereal_scorched_tree.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 1}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) minetest.register_craft({ output = "ethereal:scorched_tree 8", recipe = { {"group:tree", "group:tree", "group:tree"}, {"group:tree", "default:torch", "group:tree"}, {"group:tree", "group:tree", "group:tree"} } }) -- mushroom trunk minetest.register_node("ethereal:mushroom_trunk", { description = S("Mushroom"), tiles = { "ethereal_mushroom_trunk_top.png", "ethereal_mushroom_trunk_top.png", "ethereal_mushroom_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- birch trunk (thanks to VanessaE for birch textures) minetest.register_node("ethereal:birch_trunk", { description = S("Birch Trunk"), tiles = { "moretrees_birch_trunk_top.png", "moretrees_birch_trunk_top.png", "moretrees_birch_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- birch wood minetest.register_node("ethereal:birch_wood", { description = S("Birch Wood"), tiles = {"moretrees_birch_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:birch_wood 4", recipe = {{"ethereal:birch_trunk"}} }) -- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image) minetest.register_node("ethereal:bamboo", { description = S("Bamboo"), drawtype = "plantlike", tiles = {"ethereal_bamboo_trunk.png"}, inventory_image = "ethereal_bamboo_trunk.png", wield_image = "ethereal_bamboo_trunk.png", paramtype = "light", sunlight_propagates = true, walkable = true, selection_box = { type = "fixed", fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} }, groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_leaves_defaults(), after_dig_node = function(pos, node, metadata, digger) default.dig_up(pos, node, digger) end }) minetest.register_craft({ type = "fuel", recipe = "ethereal:bamboo", burntime = 2 }) -- olive trunk minetest.register_node("ethereal:olive_trunk", { description = S("Olive Trunk"), tiles = { "ethereal_olive_trunk_top.png", "ethereal_olive_trunk_top.png", "ethereal_olive_trunk.png" }, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node }) -- olive wood minetest.register_node("ethereal:olive_wood", { description = S("Olive Wood"), tiles = {"ethereal_olive_wood.png"}, is_ground_content = false, groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, sounds = default.node_sound_wood_defaults(), paramtype2 = "facedir", on_place = minetest.rotate_node, }) minetest.register_craft({ output = "ethereal:olive_wood 4", recipe = {{"ethereal:olive_trunk"}} })