From 60d57b3d77bc27156a69026914d7bcd37428e82d Mon Sep 17 00:00:00 2001 From: N-Nachtigal Date: Mon, 26 May 2025 15:53:14 +0200 Subject: [PATCH] Fixed cloudlands and floatlands, changed their biome heights --- mods/.skyrealms/LICENSE.txt | 26 - mods/.skyrealms/README.md | 48 - mods/.skyrealms/config.lua | 54 -- mods/.skyrealms/crafting.lua | 181 ---- mods/.skyrealms/description.txt | 1 - .../docs/caverealms_lite_biomes.txt | 19 - mods/.skyrealms/dungeon_master.lua | 16 - mods/.skyrealms/functions.lua | 292 ------ mods/.skyrealms/hotsprings.lua | 481 ---------- mods/.skyrealms/init.lua | 868 ------------------ mods/.skyrealms/mod.conf | 5 - mods/.skyrealms/nodes.lua | 624 ------------- mods/.skyrealms/plants.lua | 277 ------ mods/.skyrealms/schematics/shroom.mts | Bin 220 -> 0 bytes mods/.skyrealms/screenshot.png | Bin 156799 -> 0 bytes mods/.skyrealms/textures/caverealms_algae.png | Bin 739 -> 0 bytes .../textures/caverealms_algae_side.png | Bin 446 -> 0 bytes .../textures/caverealms_angler_rod.png | Bin 252 -> 0 bytes .../textures/caverealms_angler_rod_baited.png | Bin 273 -> 0 bytes .../textures/caverealms_angler_rod_weild.png | Bin 260 -> 0 bytes .../caverealms_blue_flame_animated.png | Bin 2353 -> 0 bytes .../textures/caverealms_butterfly_blue.png | Bin 152 -> 0 bytes .../caverealms_butterfly_blue_animated.png | Bin 202 -> 0 bytes .../textures/caverealms_coal_dust.png | Bin 288 -> 0 bytes .../textures/caverealms_dm_stone.png | Bin 590 -> 0 bytes .../textures/caverealms_fire_vine.png | Bin 554 -> 0 bytes mods/.skyrealms/textures/caverealms_fungi.png | Bin 150 -> 0 bytes .../textures/caverealms_glow_amethyst.png | Bin 325 -> 0 bytes .../textures/caverealms_glow_amethyst_ore.png | Bin 329 -> 0 bytes .../textures/caverealms_glow_bait.png | Bin 168 -> 0 bytes .../textures/caverealms_glow_citrine.png | Bin 755 -> 0 bytes .../textures/caverealms_glow_citrine_ore.png | Bin 637 -> 0 bytes .../textures/caverealms_glow_crystal.png | Bin 330 -> 0 bytes .../textures/caverealms_glow_emerald.png | Bin 330 -> 0 bytes .../textures/caverealms_glow_emerald_ore.png | Bin 329 -> 0 bytes .../textures/caverealms_glow_gem.png | Bin 248 -> 0 bytes .../textures/caverealms_glow_mese.png | Bin 330 -> 0 bytes .../textures/caverealms_glow_obsidian.png | Bin 162 -> 0 bytes .../textures/caverealms_glow_obsidian2.png | Bin 245 -> 0 bytes .../caverealms_glow_obsidian_brick.png | Bin 2988 -> 0 bytes .../caverealms_glow_obsidian_brick_2.png | Bin 3058 -> 0 bytes .../caverealms_glow_obsidian_glass.png | Bin 2913 -> 0 bytes .../caverealms_glow_obsidian_shard.png | Bin 276 -> 0 bytes .../textures/caverealms_glow_ore.png | Bin 345 -> 0 bytes .../textures/caverealms_glow_ruby.png | Bin 330 -> 0 bytes .../textures/caverealms_glow_ruby_ore.png | Bin 329 -> 0 bytes .../textures/caverealms_glow_worm.png | Bin 406 -> 0 bytes .../textures/caverealms_glow_worm_green.png | Bin 351 -> 0 bytes .../textures/caverealms_glow_worm_red.png | Bin 574 -> 0 bytes .../textures/caverealms_hot_cobble.png | Bin 431 -> 0 bytes .../textures/caverealms_icicle_down.png | Bin 161 -> 0 bytes .../textures/caverealms_icicle_up.png | Bin 158 -> 0 bytes .../.skyrealms/textures/caverealms_lichen.png | Bin 925 -> 0 bytes .../textures/caverealms_lichen_side.png | Bin 437 -> 0 bytes mods/.skyrealms/textures/caverealms_moss.png | Bin 754 -> 0 bytes .../textures/caverealms_moss_side.png | Bin 457 -> 0 bytes .../textures/caverealms_mushroom_cap.png | Bin 172 -> 0 bytes .../caverealms_mushroom_cap_green.png | Bin 316 -> 0 bytes .../caverealms_mushroom_cap_spots.png | Bin 165 -> 0 bytes .../textures/caverealms_mushroom_gills.png | Bin 141 -> 0 bytes .../textures/caverealms_mushroom_sapling.png | Bin 3700 -> 0 bytes .../caverealms_mushroom_sapling_green.png | Bin 3274 -> 0 bytes .../textures/caverealms_mushroom_stem.png | Bin 402 -> 0 bytes .../.skyrealms/textures/caverealms_mycena.png | Bin 240 -> 0 bytes .../textures/caverealms_salt_crystal.png | Bin 402 -> 0 bytes .../textures/caverealms_salt_gem.png | Bin 243 -> 0 bytes .../.skyrealms/textures/caverealms_salty2.png | Bin 330 -> 0 bytes mods/.skyrealms/textures/caverealms_spike.png | Bin 248 -> 0 bytes .../textures/caverealms_stone_eyes.png | Bin 662 -> 0 bytes .../textures/caverealms_thin_ice.png | Bin 679 -> 0 bytes mods/.skyrealms/textures/fire_basic_flame.png | Bin 719 -> 0 bytes .../textures/fire_basic_flame_animated.png | Bin 1216 -> 0 bytes mods/asuna/asuna_core/biomes.lua | 150 ++- mods/cloudlands/cloudlands.lua | 3 +- mods/ethereal/decor.lua | 2 +- mods/ethereal/schems.lua | 9 +- mods/everness/mapgen.lua | 2 +- mods/livingfloatlands/coldgiantforest.lua | 16 +- mods/livingfloatlands/coldsteppe.lua | 36 +- mods/livingfloatlands/giantforest.lua | 24 +- mods/livingfloatlands/paleodesert.lua | 4 +- mods/livingfloatlands/paleojungle.lua | 6 +- 82 files changed, 164 insertions(+), 2980 deletions(-) delete mode 100644 mods/.skyrealms/LICENSE.txt delete mode 100644 mods/.skyrealms/README.md delete mode 100644 mods/.skyrealms/config.lua delete mode 100644 mods/.skyrealms/crafting.lua delete mode 100644 mods/.skyrealms/description.txt delete mode 100644 mods/.skyrealms/docs/caverealms_lite_biomes.txt delete mode 100644 mods/.skyrealms/dungeon_master.lua delete mode 100644 mods/.skyrealms/functions.lua delete mode 100644 mods/.skyrealms/hotsprings.lua delete mode 100644 mods/.skyrealms/init.lua delete mode 100644 mods/.skyrealms/mod.conf delete mode 100644 mods/.skyrealms/nodes.lua delete mode 100644 mods/.skyrealms/plants.lua delete mode 100644 mods/.skyrealms/schematics/shroom.mts delete mode 100644 mods/.skyrealms/screenshot.png delete mode 100644 mods/.skyrealms/textures/caverealms_algae.png delete mode 100644 mods/.skyrealms/textures/caverealms_algae_side.png delete mode 100644 mods/.skyrealms/textures/caverealms_angler_rod.png delete mode 100644 mods/.skyrealms/textures/caverealms_angler_rod_baited.png delete mode 100644 mods/.skyrealms/textures/caverealms_angler_rod_weild.png delete mode 100644 mods/.skyrealms/textures/caverealms_blue_flame_animated.png delete mode 100644 mods/.skyrealms/textures/caverealms_butterfly_blue.png delete mode 100644 mods/.skyrealms/textures/caverealms_butterfly_blue_animated.png delete mode 100644 mods/.skyrealms/textures/caverealms_coal_dust.png delete mode 100644 mods/.skyrealms/textures/caverealms_dm_stone.png delete mode 100644 mods/.skyrealms/textures/caverealms_fire_vine.png delete mode 100644 mods/.skyrealms/textures/caverealms_fungi.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_amethyst.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_amethyst_ore.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_bait.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_citrine.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_citrine_ore.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_crystal.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_emerald.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_emerald_ore.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_gem.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_mese.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian2.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian_brick.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian_brick_2.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian_glass.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_obsidian_shard.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_ore.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_ruby.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_ruby_ore.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_worm.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_worm_green.png delete mode 100644 mods/.skyrealms/textures/caverealms_glow_worm_red.png delete mode 100644 mods/.skyrealms/textures/caverealms_hot_cobble.png delete mode 100644 mods/.skyrealms/textures/caverealms_icicle_down.png delete mode 100644 mods/.skyrealms/textures/caverealms_icicle_up.png delete mode 100644 mods/.skyrealms/textures/caverealms_lichen.png delete mode 100644 mods/.skyrealms/textures/caverealms_lichen_side.png delete mode 100644 mods/.skyrealms/textures/caverealms_moss.png delete mode 100644 mods/.skyrealms/textures/caverealms_moss_side.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_cap.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_cap_green.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_cap_spots.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_gills.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_sapling.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_sapling_green.png delete mode 100644 mods/.skyrealms/textures/caverealms_mushroom_stem.png delete mode 100644 mods/.skyrealms/textures/caverealms_mycena.png delete mode 100644 mods/.skyrealms/textures/caverealms_salt_crystal.png delete mode 100644 mods/.skyrealms/textures/caverealms_salt_gem.png delete mode 100644 mods/.skyrealms/textures/caverealms_salty2.png delete mode 100644 mods/.skyrealms/textures/caverealms_spike.png delete mode 100644 mods/.skyrealms/textures/caverealms_stone_eyes.png delete mode 100644 mods/.skyrealms/textures/caverealms_thin_ice.png delete mode 100644 mods/.skyrealms/textures/fire_basic_flame.png delete mode 100644 mods/.skyrealms/textures/fire_basic_flame_animated.png diff --git a/mods/.skyrealms/LICENSE.txt b/mods/.skyrealms/LICENSE.txt deleted file mode 100644 index 6e9767ff..00000000 --- a/mods/.skyrealms/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -Copyright (c) 2017, Craig Robbins and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. diff --git a/mods/.skyrealms/README.md b/mods/.skyrealms/README.md deleted file mode 100644 index f33fb754..00000000 --- a/mods/.skyrealms/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# caverealms-lite-plus - -Based on Ezhh's cavereals-lite (https://github.com/Ezhh/caverealms_lite/), itself based on the original minetest-caverealms mod (https://github.com/HeroOfTheWinds/minetest-caverealms/). - -Adds underground realms to minetest. - -This mod may be used as a drop-in replacement for caverealms-lite. Newly generated blocks will show a sharp lurch in the biome type. - - -## Changes from caverealms-lite - -* Different biome algorithm based on independent Evil and Wonder noises, similar to heat and humidity above ground. -* Biomes are larger. -* Every biome has some sort of consistent light source -* New biome type: geothermal hotsprings. -* A few more node types similar to existing ones. -* Various bug fixes. -* Various new bugs ;) - - -## Changes by Ezhh from caverealms to caverealms-lite - -This caverealms fork provides all the biomes and decorations from the original caverealms, with several additions and without the overhead of generating caves. This lowers the server resources the mod requires, for example CPU and RAM. This also removes the large lava spills created by the original caverealms. - -It is specifically written to work with the mgvalleys mapgen, but will work using other mapgens as well. The mapgen used will determine the shape and size of individual caves. Mapgens that generate only smaller caves may be less suitable for use with this fork than mgvalleys. - -Note: For worlds where the original caverealms is already in use, this fork is not advised as a replacement. If used in this way, some unknown nodes and other minor issues should be expected. - - -## License and Contributors - -Source code: FreeBSD License (Simplified) -The original caverealms was licensed as WTFPL. - -Contributors: -- yzziizzy - current version -- Zeno, Shara RedCat - caverealms-lite -- HeroOfTheWinds, Zeno - Original caverealms mod - - -## Recommended Additions - -- VanessaE's HDX texturepacks provide alternative textures. For example, -https://gitlab.com/VanessaE/hdx-128. -- ethereal mod unlocks additional content (https://notabug.org/tenplus1/ethereal). -- mobs_monster mod allows Dungeon Masters to spawn in the Dungeon Master's Lair biome (https://notabug.org/tenplus1/mobs_monster). -- mobs_redo is required to run mobs_monster (https://notabug.org/tenplus1/mobs_redo). -- abritorch adds coloured torches made with caverealms items (https://github.com/Ezhh/abritorch). diff --git a/mods/.skyrealms/config.lua b/mods/.skyrealms/config.lua deleted file mode 100644 index db06aec4..00000000 --- a/mods/.skyrealms/config.lua +++ /dev/null @@ -1,54 +0,0 @@ -local CONFIG_FILE_PREFIX = "caverealms." - -caverealms.config = {} - --- This function based on kaeza/minetest-irc/config.lua and used under the --- terms of BSD 2-clause license. -local function setting(stype, name, default) - local value - if stype == "bool" then - value = minetest.settings:get_bool(CONFIG_FILE_PREFIX..name) - elseif stype == "string" then - value = minetest.settings:get(CONFIG_FILE_PREFIX..name) - elseif stype == "number" then - value = tonumber(minetest.settings:get(CONFIG_FILE_PREFIX..name)) - end - if value == nil then - value = default - end - caverealms.config[name] = value -end - ---generation settings -setting("number", "ymin", -15100) --bottom realm limit -setting("number", "ymax", -4096) --top realm limit -setting("number", "tcave", 0.75) --cave threshold - ---decoration chances -setting("number", "stagcha", 0.003) --chance of stalagmites 0.003 -setting("number", "stalcha", 0.003) --chance of stalactites 0.003 - -setting("number", "h_lag", 15) --max height for stalagmites -setting("number", "h_lac", 20) --...stalactites -setting("number", "crystal", 0.005) --chance of glow crystal formations (0.0004) -setting("number", "salt_crystal", 0.005) --chance of glow crystal formations -setting("number", "h_cry", 9) --max height of glow crystals -setting("number", "h_clac", 13) --max height of glow crystal stalactites - -setting("number", "gemcha", 0.03) --chance of small glow gems -setting("number", "mushcha", 0.04) --chance of mushrooms -setting("number", "myccha", 0.03) --chance of mycena mushrooms -setting("number", "wormcha", 0.02) --chance of glow worms -setting("number", "giantcha", 0.0015) --chance of giant mushrooms -setting("number", "icicha", 0.035) --chance of icicles -setting("number", "flacha", 0.04) --chance of constant flames - ---realm limits for Dungeon Masters' Lair -setting("number", "dm_top", -13000) --upper limit -setting("number", "dm_bot", -15100) --lower limit - ---should DMs spawn in DM Lair? -setting("bool", "dm_spawn", true) - ---Deep cave settings -setting("number", "deep_cave", -7000) -- upper limit diff --git a/mods/.skyrealms/crafting.lua b/mods/.skyrealms/crafting.lua deleted file mode 100644 index 955a83d9..00000000 --- a/mods/.skyrealms/crafting.lua +++ /dev/null @@ -1,181 +0,0 @@ ---thin ice to water -minetest.register_craft({ - output = "default:water_source", - type = "shapeless", - recipe = {"caverealms:thin_ice"} -}) - ---use for coal dust -minetest.register_craft({ - output = "default:coalblock", - recipe = { - {"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"}, - {"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"}, - {"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"} - } -}) - --- DM statue -minetest.register_craft({ - output = "caverealms:dm_statue", - recipe = { - {"caverealms:glow_ore","caverealms:hot_cobble","caverealms:glow_ore"}, - {"caverealms:hot_cobble","caverealms:hot_cobble","caverealms:hot_cobble"}, - {"caverealms:hot_cobble","caverealms:hot_cobble","caverealms:hot_cobble"} - } -}) - --- Glow obsidian brick -minetest.register_craft({ - output = "caverealms:glow_obsidian_brick 4", - recipe = { - {"caverealms:glow_obsidian", "caverealms:glow_obsidian"}, - {"caverealms:glow_obsidian", "caverealms:glow_obsidian"} - } -}) - -minetest.register_craft({ - output = "caverealms:glow_obsidian_brick_2 4", - recipe = { - {"caverealms:glow_obsidian_2", "caverealms:glow_obsidian_2"}, - {"caverealms:glow_obsidian_2", "caverealms:glow_obsidian_2"} - } -}) - --- Glow obsidian glass -minetest.register_craft({ - output = "caverealms:glow_obsidian_glass 5", - recipe = { - {"default:glass", "default:glass", "default:glass"}, - {"default:glass", "default:glass", "caverealms:glow_obsidian"} - } -}) - -minetest.register_craft({ - output = "caverealms:glow_obsidian_glass 5", - recipe = { - {"default:glass", "default:glass", "default:glass"}, - {"default:glass", "default:glass", "caverealms:glow_obsidian_2"} - } -}) - -minetest.register_craftitem("caverealms:glow_obsidian_shard", { - description = "Glow Obsidian Shard", - inventory_image = "caverealms_glow_obsidian_shard.png", -}) - -minetest.register_craft({ - output = "caverealms:glow_obsidian_shard 9", - type = "shapeless", - recipe = {"caverealms:glow_obsidian"}, -}) - -minetest.register_craft({ - output = "caverealms:glow_obsidian_shard 9", - type = "shapeless", - recipe = {"caverealms:glow_obsidian_2"}, -}) - - -minetest.register_craft({ - output = "caverealms:glow_obsidian", - recipe = { - {"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"}, - {"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"}, - {"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"}, - } -}) - - -minetest.register_craft({ - type = "cooking", - output = "caverealms:glow_obsidian_glass", - recipe = "caverealms:glow_obsidian_shard", -}) - - - --- Requires ethereal:fish_raw -if minetest.get_modpath("ethereal") then - - -- Professional Fishing Rod - minetest.register_craftitem("caverealms:angler_rod", { - description = "Pro Fishing Rod", - inventory_image = "caverealms_angler_rod.png", - wield_image = "caverealms_angler_rod.png" - }) - - minetest.register_craft({ - output = "caverealms:angler_rod", - recipe = { - {"","","default:steel_ingot"}, - {"", "default:steel_ingot", "caverealms:mushroom_gills"}, - {"default:steel_ingot", "", "caverealms:mushroom_gills"}, - } - }) - - -- Glow Bait - minetest.register_craftitem("caverealms:glow_bait", { - description = "Glow Bait", - inventory_image = "caverealms_glow_bait.png", - wield_image = "caverealms_glow_bait.png", - }) - - minetest.register_craft({ - output = "caverealms:glow_bait 9", - recipe = { - {"caverealms:glow_worm_green"}, - } - }) - - -- default ethereal fish - local fish = { - {"ethereal:fish_raw"}, - } - - -- Pro Fishing Rod (Baited) - minetest.register_craftitem("caverealms:angler_rod_baited", { - description = "Baited Pro Fishing Rod", - inventory_image = "caverealms_angler_rod_baited.png", - wield_image = "caverealms_angler_rod_weild.png", - stack_max = 1, - liquids_pointable = true, - - on_use = function (itemstack, user, pointed_thing) - - if pointed_thing.type ~= "node" then - return - end - - local node = minetest.get_node(pointed_thing.under).name - - if (node == "default:water_source" - or node == "default:river_water_source") - and math.random(1, 100) < 35 then - - local type = fish[math.random(1, #fish)][1] - local inv = user:get_inventory() - - if inv:room_for_item("main", {name = type}) then - - inv:add_item("main", {name = type}) - - if (math.random() < 0.6) then - return ItemStack("caverealms:angler_rod_baited") - else - return ItemStack("caverealms:angler_rod") - end - else - minetest.chat_send_player(user:get_player_name(), - "Inventory full, Fish Got Away!") - end - end - end, - }) - - minetest.register_craft({ - type = "shapeless", - output = "caverealms:angler_rod_baited", - recipe = {"caverealms:angler_rod", "caverealms:glow_bait"}, - }) -end diff --git a/mods/.skyrealms/description.txt b/mods/.skyrealms/description.txt deleted file mode 100644 index 23587508..00000000 --- a/mods/.skyrealms/description.txt +++ /dev/null @@ -1 +0,0 @@ -A mod for Minetest to add underground realms. diff --git a/mods/.skyrealms/docs/caverealms_lite_biomes.txt b/mods/.skyrealms/docs/caverealms_lite_biomes.txt deleted file mode 100644 index d1591eeb..00000000 --- a/mods/.skyrealms/docs/caverealms_lite_biomes.txt +++ /dev/null @@ -1,19 +0,0 @@ -Biome #, Biome name, "floor node" - - -0, None -1, Moss, "caverealms:stone_with_moss" -2, Fungal, "caverealms:stone_with_lichen" -3, Algae, "caverealms:stone_with_algae" -4, Glaciated, "caverealms:thin_ice" - -The following are "deep realms" - -5, Deep Glaciated, "default:ice" -6, DM, "caverealms:hot_cobble" -7, Salt Crystal, "caverealms:stone_with_salt" -8, Glow Obsidian, "caverealms:glow_obsidian" - OR "caverealms:glow_obsidian2" -9, Coal, "default:coalblock" - OR "caverealms:coal_dust" - OR "default:desert_sand" diff --git a/mods/.skyrealms/dungeon_master.lua b/mods/.skyrealms/dungeon_master.lua deleted file mode 100644 index e93ea8c2..00000000 --- a/mods/.skyrealms/dungeon_master.lua +++ /dev/null @@ -1,16 +0,0 @@ -mobs:spawn({ - name = "mobs_monster:dungeon_master", - nodes = {"caverealms:hot_cobble"}, - max_light = 12, - min_light = 0, - chance = 7000, - active_object_count = 2, - max_height = -8000, - on_spawn = function(self, pos) - self.hp_max = 70 - self.health = 70 - self.damage = 5 - self.shoot_interval = 1.5 - self.dogshoot_switch = 0 - end -}) diff --git a/mods/.skyrealms/functions.lua b/mods/.skyrealms/functions.lua deleted file mode 100644 index 24d124f0..00000000 --- a/mods/.skyrealms/functions.lua +++ /dev/null @@ -1,292 +0,0 @@ -local H_LAG = caverealms.config.h_lag --15 --max height for stalagmites -local H_LAC = caverealms.config.h_lac --20 --...stalactites -local H_CRY = caverealms.config.h_cry --9 --max height of glow crystals -local H_CLAC = caverealms.config.h_clac --13 --max height of glow crystal stalactites - -function caverealms:above_solid(x,y,z,area,data) - local c_air = minetest.get_content_id("air") - - local ai = area:index(x,y+1,z-3) - if data[ai] == c_air then - return false - else - return true - end -end - -function caverealms:below_solid(x,y,z,area,data) - local c_air = minetest.get_content_id("air") - - local ai = area:index(x,y-1,z-3) - if data[ai] == c_air then - return false - else - return true - end -end - ---stalagmite spawner -function caverealms:stalagmite(x,y,z, area, data) - - if not caverealms:below_solid(x,y,z,area,data) then - return - end - - --contest ids - local c_stone = minetest.get_content_id("default:stone") - - local top = math.random(6,H_LAG) --grab a random height for the stalagmite - for j = 0, top do --y - for k = -3, 3 do - for l = -3, 3 do - if j == 0 then - if k*k + l*l <= 9 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - elseif j <= top/5 then - if k*k + l*l <= 4 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - elseif j <= top/5 * 3 then - if k*k + l*l <= 1 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - else - local vi = area:index(x, y+j, z-3) - data[vi] = c_stone - end - end - end - end -end - ---stalactite spawner -function caverealms:stalactite(x,y,z, area, data) - - if not caverealms:above_solid(x,y,z,area,data) then - return - end - - --contest ids - local c_stone = minetest.get_content_id("default:stone")--("caverealms:limestone") - - local bot = math.random(-H_LAC, -6) --grab a random height for the stalagmite - for j = bot, 0 do --y - for k = -3, 3 do - for l = -3, 3 do - if j >= -1 then - if k*k + l*l <= 9 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - elseif j >= bot/5 then - if k*k + l*l <= 4 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - elseif j >= bot/5 * 3 then - if k*k + l*l <= 1 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = c_stone - end - else - local vi = area:index(x, y+j, z-3) - data[vi] = c_stone - end - end - end - end -end - ---glowing crystal stalagmite spawner -function caverealms:crystal_stalagmite(x,y,z, area, data, ore, crystal, base) - - if not caverealms:below_solid(x,y,z,area,data) then - return - end - - --contest ids - local c_stone = minetest.get_content_id("default:stone") - - local nid_a = ore -- ore - local nid_b = crystal -- crystal - local nid_s = base or c_stone --base --stone base, will be rewritten to ice in certain biomes - - local top = math.random(5,H_CRY) --grab a random height for the stalagmite - for j = 0, top do --y - for k = -3, 3 do - for l = -3, 3 do - if j == 0 then - if k*k + l*l <= 9 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_s - end - elseif j <= top/5 then - if k*k + l*l <= 4 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_a - end - elseif j <= top/5 * 3 then - if k*k + l*l <= 1 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_b - end - else - local vi = area:index(x, y+j, z-3) - data[vi] = nid_b - end - end - end - end -end - ---crystal stalactite spawner -function caverealms:crystal_stalactite(x,y,z, area, data, ore, cry, base) - - if not caverealms:above_solid(x,y,z,area,data) then - return - end - - --contest ids - local c_stone = minetest.get_content_id("default:stone") - - local nid_a = ore - local nid_b = cry - local nid_s = base or c_stone --stone base, will be rewritten to ice in certain biomes - - local bot = math.random(-H_CLAC, -6) --grab a random height for the stalagmite - for j = bot, 0 do --y - for k = -3, 3 do - for l = -3, 3 do - if j >= -1 then - if k*k + l*l <= 9 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_s - end - elseif j >= bot/5 then - if k*k + l*l <= 4 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_a - end - elseif j >= bot/5 * 3 then - if k*k + l*l <= 1 then - local vi = area:index(x+k, y+j, z+l-3) - data[vi] = nid_b - end - else - local vi = area:index(x, y+j, z-3) - data[vi] = nid_b - end - end - end - end -end - ---glowing crystal stalagmite spawner -function caverealms:salt_stalagmite(x,y,z, area, data) - - if not caverealms:below_solid(x,y,z,area,data) then - return - end - - --contest ids --- local c_stone = minetest.get_content_id("default:stone") - local c_salt = minetest.get_content_id("caverealms:salt_crystal") - local c_salt_stone = minetest.get_content_id("caverealms:stone_with_salt") - - local scale = math.random(2, 4) - if scale == 2 then - for j = -3, 3 do - for k = -3, 3 do - local vi = area:index(x+j, y, z+k) - data[vi] = c_salt_stone - if math.abs(j) ~= 3 and math.abs(k) ~= 3 then - local vi = area:index(x+j, y+1, z+k) - data[vi] = c_salt_stone - end - end - end - else - for j = -4, 4 do - for k = -4, 4 do - local vi = area:index(x+j, y, z+k) - data[vi] = c_salt_stone - if math.abs(j) ~= 4 and math.abs(k) ~= 4 then - local vi = area:index(x+j, y+1, z+k) - data[vi] = c_salt_stone - end - end - end - end - for j = 2, scale + 2 do --y - for k = -2, scale - 2 do - for l = -2, scale - 2 do - local vi = area:index(x+k, y+j, z+l) - data[vi] = c_salt -- make cube - end - end - end -end - ---function to create giant 'shrooms -function caverealms:giant_shroom(x, y, z, area, data) - - if not caverealms:below_solid(x,y,z,area,data) then - return - end - - local c_cap - local c_stem - - --as usual, grab the content ID's - if minetest.get_modpath("ethereal") then - c_stem = minetest.get_content_id("ethereal:mushroom_trunk") - c_cap = minetest.get_content_id("ethereal:mushroom") - else - c_stem = minetest.get_content_id("caverealms:mushroom_stem") - c_cap = minetest.get_content_id("caverealms:mushroom_cap") - end - - local c_gills = minetest.get_content_id("caverealms:mushroom_gills") - - z = z - 5 - --cap - for k = -5, 5 do - for l = -5, 5 do - if k*k + l*l <= 25 then - local vi = area:index(x+k, y+5, z+l) - data[vi] = c_cap - end - if k*k + l*l <= 16 then - local vi = area:index(x+k, y+6, z+l) - data[vi] = c_cap - vi = area:index(x+k, y+5, z+l) - data[vi] = c_gills - end - if k*k + l*l <= 9 then - local vi = area:index(x+k, y+7, z+l) - data[vi] = c_cap - end - if k*k + l*l <= 4 then - local vi = area:index(x+k, y+8, z+l) - data[vi] = c_cap - end - end - end - --stem - for j = 0, 5 do - for k = -1,1 do - local vi = area:index(x+k, y+j, z) - data[vi] = c_stem - if k == 0 then - local ai = area:index(x, y+j, z+1) - data[ai] = c_stem - ai = area:index(x, y+j, z-1) - data[ai] = c_stem - end - end - end -end diff --git a/mods/.skyrealms/hotsprings.lua b/mods/.skyrealms/hotsprings.lua deleted file mode 100644 index f8dfa38a..00000000 --- a/mods/.skyrealms/hotsprings.lua +++ /dev/null @@ -1,481 +0,0 @@ ---[[ -minetest.register_node("caverealms:hotspring_seed", { - description = "Hotspring seed", - drawtype = "node", - tiles = {"default_mese_block.png"}, - groups = {cracky=3,}, -}) -]] - -minetest.register_node("caverealms:sulphur_deposit_1", { - description = "Sulphur", - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - tiles = {"default_silver_sandstone.png^[colorize:yellow:140"}, --- drops = {}, - node_box = { - type = "fixed", - fixed = { - {-.3, -.5, -.3, -0.1, -.45, -0.1}, - {.3, -.5, .3, 0.1, -.45, 0.1,}, - {-.3, -.5, .3, -0.1, -.45, 0.1}, - }, - }, - groups = {cracky=3, geode_wall = 1 }, -}) - - -minetest.register_node("caverealms:fumarole", { - description = "Fumarole", - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - tiles = {"default_stone.png^[colorize:black:10"}, - drop = 'default:cobble', - damage_per_second = 3, - node_box = { - type = "fixed", - fixed = { - {-.4, -.5, -.4, 0.3, -.4, 0.3}, - {-.3+.05, -.4, -.3+.05, 0.2+.05, -.3, 0.2+.05}, - {-.2+.08, -.3, -.2+.08, 0.1+.08, -.2, 0.1+.08}, - }, - }, - groups = {cracky=3, }, -}) - - - -minetest.register_abm({ - nodenames = "caverealms:fumarole", - chance = 1, - interval = 20, - action = function(pos, node) - pos.y = pos.y + 0 - minetest.add_particlespawner({ - amount = 20, - time = 20, - minpos = pos, - maxpos = pos, - minvel = {x=-0.1, y=.6, z=-0.1}, - maxvel = {x=0.1, y=1.6, z=0.1}, - minacc = {x=-0.1, y=.1, z=-0.1}, - maxacc = {x=0.1, y=.1, z=0.1}, - minexptime = 2.5, - maxexptime = 4.5, - minsize = 4.2, - maxsize = 5.2, - texture = "tnt_smoke.png", - }) - end -}) - - - -minetest.register_node("caverealms:hotspring_water_source", { - description = "Hotspring Water Source", - drawtype = "liquid", - light_source = 7, - tiles = { - { - name = "default_river_water_source_animated.png^[colorize:yellow:50", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 2.0, - }, - }, - { - name = "default_river_water_source_animated.png^[colorize:yellow:50", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 2.0, - }, - }, - }, - alpha = 160, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "caverealms:hotspring_water_flowing", - liquid_alternative_source = "caverealms:hotspring_water_source", - liquid_viscosity = 1, - -- Not renewable to avoid horizontal spread of water sources in sloping - -- rivers that can cause water to overflow riverbanks and cause floods. - -- River water source is instead made renewable by the 'force renew' - -- option used in the 'bucket' mod by the river water bucket. - liquid_renewable = false, - liquid_range = 2, - damage_per_second = 1, - post_effect_color = {a = 103, r = 60, g = 96, b = 90}, - groups = {water = 3, liquid = 3, cools_lava = 1}, - sounds = default.node_sound_water_defaults(), -}) - -minetest.register_node("caverealms:hotspring_water_flowing", { - description = "Flowing Hotspring Water", - drawtype = "flowingliquid", - tiles = {"default_river_water.png^[colorize:yellow:50"}, - special_tiles = { - { - name = "default_river_water_flowing_animated.png^[colorize:yellow:50", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 0.8, - }, - }, - { - name = "default_river_water_flowing_animated.png^[colorize:yellow:50", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 0.8, - }, - }, - }, - alpha = 160, - paramtype = "light", - paramtype2 = "flowingliquid", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "caverealms:hotspring_water_flowing", - liquid_alternative_source = "caverealms:hotspring_water_source", - liquid_viscosity = 1, - liquid_renewable = false, - liquid_range = 2, - damage_per_second = 1, - post_effect_color = {a = 103, r = 60, g = 96, b = 90}, - groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, - cools_lava = 1}, - sounds = default.node_sound_water_defaults(), -}) - - - -minetest.register_node("caverealms:scalding_stone_1", { - description = "Scalding Stone", - tiles = {"default_stone.png^[colorize:orange:120"}, - groups = {cracky = 3, scalding_stone = 1}, - drop = 'default:cobble', - damage_per_second = 1, - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("caverealms:scalding_stone_2", { - description = "Scalding Stone", - tiles = {"default_stone.png^[colorize:yellow:80"}, - groups = {cracky = 3, scalding_stone = 1}, - drop = 'default:cobble', - damage_per_second = 1, - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("caverealms:scalding_stone_3", { - description = "Scalding Stone", - tiles = {"default_desert_stone.png^[colorize:orange:120"}, - groups = {cracky = 3, scalding_stone = 1}, - drop = 'default:cobble', - damage_per_second = 1, - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("caverealms:scalding_stone_4", { - description = "Scalding Stone", - tiles = {"default_desert_stone.png^[colorize:yellow:80"}, - groups = {cracky = 3, scalding_stone = 1}, - drop = 'default:cobble', - damage_per_second = 1, - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("caverealms:scalding_stone_5", { - description = "Scalding Stone", - tiles = {"default_stone.png^[colorize:red:80"}, - groups = {cracky = 3, scalding_stone = 1}, - drop = 'default:cobble', - damage_per_second = 1, - sounds = default.node_sound_stone_defaults(), -}) - - - -local scalding_stones = { - minetest.get_content_id("caverealms:scalding_stone_1"), - minetest.get_content_id("caverealms:scalding_stone_2"), - minetest.get_content_id("caverealms:scalding_stone_3"), - minetest.get_content_id("caverealms:scalding_stone_4"), - minetest.get_content_id("caverealms:scalding_stone_5"), -} - -local scalding_stone_names = { - "caverealms:scalding_stone_1", - "caverealms:scalding_stone_2", - "caverealms:scalding_stone_3", - "caverealms:scalding_stone_4", - "caverealms:scalding_stone_5", -} - - -local function dist3(a, b) - local x = a.x - b.x - local y = a.y - b.y - local z = a.z - b.z - return math.sqrt(x*x + y*y + z*z) -end - --- local function spawn_hotspring(pos, size) -function caverealms:spawn_hotspring(px,py,pz, area, data, size) - - local c_hotspring = minetest.get_content_id("caverealms:hotspring_water_source") - - - local r = size - - local r2 = math.ceil(r+1) - - for x = px-r2,px+r2,1 do - for y = -r2,r2,1 do - for z = pz-r2,pz+r2,1 do - local p = {x=x, y=py+y, z=z} - local p_squash = {x=x, y=py + (y*2), z=z} - local d = dist3(p_squash, {x=px, y=py, z=pz}) - - d = d + math.random() * .5 - - local dd = d - r - - local n = minetest.get_node(p) - if n.name ~= "air" then - if dd <= -.5 then - local vi = area:index(x, py+y, z) - data[vi] = c_hotspring - elseif dd < 1.5 then - local vi = area:index(x, py+y, z) - data[vi] = scalding_stones[math.random(#scalding_stones)] - end - end - end - end - end - - - -end - - - - - - - - - - - - -minetest.register_abm({ - nodenames = "caverealms:hotspring_water_source", - chance = 60, - interval = 5, - action = function(pos, node) - minetest.add_particlespawner({ - amount = 1, - time = 1, - minpos = pos, - maxpos = pos, - minvel = {x=-0.1, y=.6, z=-0.1}, - maxvel = {x=0.1, y=1.6, z=0.1}, - minacc = {x=-0.1, y=.1, z=-0.1}, - maxacc = {x=0.1, y=.1, z=0.1}, - minexptime = 3.5, - maxexptime = 6.5, - minsize = 10.2, - maxsize = 12.2, - texture = "tnt_smoke.png", - }) - end -}) - - -local function random_pos(pos, dist) - local p = { - x=pos.x + math.random(-dist, dist), - y=pos.y + dist, - z=pos.z + math.random(-dist, dist), - } - - while p.y > pos.y - dist do - local n = minetest.get_node(p) - if n.name ~= "air" and n.name ~= "ignore" then - if n.name == "default:water_source" or n.name == "default:water_flowing" then - return nil - end - - return p - end - - p.y = p.y - 1 - end - - return nil -end - - - --- life dies near hotsprings -minetest.register_abm({ - nodenames = "group:flora", - neighbors = {"group:scalding_stone"}, - chance = 10, - interval = 15, - action = function(pos, node) - minetest.set_node(pos, {name="air"}) - end -}) - --- life dies near hotsprings -minetest.register_abm({ - nodenames = "group:flora", - neighbors = {"group:scalding_stone"}, - chance = 80, - interval = 15, - action = function(pos, node) - local p = minetest.find_node_near(pos, 15, {"group:flora", "group:sapling", "group:leaves", "group:leafdecay"}) - if p then - minetest.set_node(p, {name="air"}) - end - end -}) - - --- minerals accumulate -minetest.register_abm({ - nodenames = "group:scalding_stone", - neighbors = {"air"}, - chance = 180, - interval = 30, - action = function(pos, node) - -- TODO: place sulphur on sides too - pos.y = pos.y + 1 - local n = minetest.get_node(pos) - if n.name == "air" then - minetest.set_node(pos, {name="caverealms:sulphur_deposit_1"}) - end - end -}) - - - --- water scalds stone -minetest.register_abm({ - nodenames = {"group:stone", "group:dirt"}, - neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"}, - chance = 80, - interval = 10, - action = function(pos, node) - minetest.set_node(pos, {name=scalding_stone_names[math.random(#scalding_stone_names)]}) - end -}) - --- stones scald dirt -minetest.register_abm({ - nodenames = "group:soil", - neighbors = {"group:scalding_stone"}, - chance = 80, - interval = 10, - action = function(pos, node) - minetest.set_node(pos, {name="default:stone"}) - end -}) - - - --- water melts snow -minetest.register_abm({ - nodenames = {"default:snow", "default:snowblock"}, - neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"}, - chance = 80, - interval = 10, - action = function(pos, node) - minetest.set_node(pos, {name="air"}) - end -}) - - - ---[[ add hotspring seeds to mapgen -minetest.register_decoration({ - name = "caverealms:hotspring_seed", - deco_type = "simple", - place_on = {"default:dirt_with_grass", "default:dirt_with_snow", "default:snowblock", - "default:silver_sand", "default:sand", "default:desert_sand" - }, - place_offset_y = 1, - sidelen = 16, - noise_params = { - offset = -0.010, - scale = 0.01, - spread = {x = 200, y = 200, z = 200}, - seed = 65645647, - octaves = 3, - persist = 0.7, - }, - biomes = {"grassland", "snowy_grassland", "tundra", "taiga", "desert", "cold_desert", "sandstone_desert"}, - y_max = 1000, - y_min = 5, - place_offset_y = 1, - decoration = "caverealms:hotspring_seed", - flags = "force_placement", -}) -]] - --- hotsprings boil rivers -minetest.register_abm({ - nodenames = {"default:river_water_source"}, - neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"}, - chance = 15, - interval = 5, - action = function(pos, node) - - -- only spread downhill - local hw = minetest.find_nodes_in_area( - {x=pos.x-1, y=pos.y, z=pos.z-1}, - {x=pos.x+1, y=pos.y+1, z=pos.z+1}, - {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"}) - - if not hw or #hw == 0 then - return - end - - -- don't spread under rivers - pos.y = pos.y + 1 - local n = minetest.get_node(pos) - if n.name == "default:river_water_source" or n.name == "default:river_water_flowing" then - return - end - - pos.y = pos.y - 1 - - minetest.set_node(pos, {name="caverealms:hotspring_water_source"}) - end -}) - diff --git a/mods/.skyrealms/init.lua b/mods/.skyrealms/init.lua deleted file mode 100644 index 1f871440..00000000 --- a/mods/.skyrealms/init.lua +++ /dev/null @@ -1,868 +0,0 @@ -caverealms = {} --create a container for functions and constants - -local function table_contains(tbl, val) - for _, v in pairs(tbl) do - if v == val then - return true - end - end - return false -end - ---grab a shorthand for the filepath of the mod -local modpath = minetest.get_modpath(minetest.get_current_modname()) ---[[ --- debug privileges -minetest.register_on_joinplayer(function(player) - local name = player:get_player_name() - - local privs = minetest.get_player_privs(name) - - privs.fly = true - privs.fast = true - privs.teleport = true - privs.noclip = true - minetest.set_player_privs(name, privs) - - local p = player:get_pos() - if p.y > -100 then - player:set_pos({x=0, y=-20000, z= 0}) - end -end) ---]] - ---load companion lua files -dofile(modpath .. "/config.lua") --configuration file; holds various constants -dofile(modpath .. "/crafting.lua") --crafting recipes -dofile(modpath .. "/nodes.lua") --node definitions -dofile(modpath .. "/functions.lua") --function definitions -dofile(modpath .. "/plants.lua") -dofile(modpath .. "/hotsprings.lua") - -if minetest.get_modpath("mobs_monster") then - if caverealms.config.dm_spawn == true then - dofile(modpath .. "/dungeon_master.lua") --special DMs for DM's Lair biome - end -end - --- Parameters - -local YMIN = caverealms.config.ymin -- Approximate realm limits. -local YMAX = caverealms.config.ymax -local TCAVE = caverealms.config.tcave --0.5 -- Cave threshold. 1 = small rare caves, 0.5 = 1/3rd ground volume, 0 = 1/2 ground volume -local BLEND = 128 -- Cave blend distance near YMIN, YMAX - -local STAGCHA = caverealms.config.stagcha --0.002 --chance of stalagmites -local STALCHA = caverealms.config.stalcha --0.003 --chance of stalactites -local CRYSTAL = caverealms.config.crystal --0.0004 --chance of glow crystal formations -local SALTCRYCHA = caverealms.config.salt_crystal --0.007 --chance of salt crystal cubes -local GEMCHA = caverealms.config.gemcha --0.03 --chance of small glow gems -local HOTSCHA = 0.009 --chance of hotsprings -local MUSHCHA = caverealms.config.mushcha --0.04 --chance of mushrooms -local MYCCHA = caverealms.config.myccha --0.03 --chance of mycena mushrooms -local WORMCHA = caverealms.config.wormcha --0.03 --chance of glow worms -local GIANTCHA = caverealms.config.giantcha --0.001 -- chance of giant mushrooms -local ICICHA = caverealms.config.icicha --0.035 -- chance of icicles -local FLACHA = caverealms.config.flacha --0.04 --chance of constant flames - -local DM_TOP = caverealms.config.dm_top -- -4000 --level at which Dungeon Master Realms start to appear -local DM_BOT = caverealms.config.dm_bot -- -5000 --level at which "" ends -local DEEP_CAVE = caverealms.config.deep_cave -- -7000 --level at which deep cave biomes take over - --- 3D noise for caves - -local np_cave = { - offset = 0, - scale = 1, - spread = { x = 512, y = 256, z = 512 }, -- squashed 2:1 - seed = 59033, - octaves = 6, - persist = 0.63, -} - --- 3D noise for wave - -local np_wave = { - offset = 0, - scale = 1, - spread = { x = 256, y = 256, z = 256 }, - seed = -400000000089, - octaves = 3, - persist = 0.67, -} - --- 2D noise for biome - -local np_biome = { - offset = 0, - scale = 1, - spread = { x = 250, y = 250, z = 250 }, - seed = 9130, - octaves = 3, - persist = 0.5, -} - --- 2D noise for biome - -local np_biome_evil = { - offset = 0, - scale = 1, - spread = { x = 200, y = 200, z = 200 }, - seed = 9130, - octaves = 3, - persist = 0.5, -} - -local np_biome_wonder = { - offset = 0, - scale = 1, - spread = { x = 400, y = 400, z = 400 }, - seed = 8943, - octaves = 2, - persist = 0.45, -} - --- Stuff - -subterrain = {} - -local yblmin = YMIN + BLEND * 1.5 -local yblmax = YMAX - BLEND * 1.5 - --- On generated function - -minetest.register_on_generated(function(minp, maxp, seed) - --if out of range of caverealms limits - if minp.y > YMAX or maxp.y < YMIN then - return --quit; otherwise, you'd have stalagmites all over the place - end - - --easy reference to commonly used values - local t1 = os.clock() - local x1 = maxp.x - local y1 = maxp.y - local z1 = maxp.z - local x0 = minp.x - local y0 = minp.y - local z0 = minp.z - - --print ("[caverealms] chunk minp ("..x0.." "..y0.." "..z0..")") --tell people you are generating a chunk - - local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") - local area = VoxelArea:new({ MinEdge = emin, MaxEdge = emax }) - local data = vm:get_data() - local vparam2 = vm:get_param2_data() - - --grab content IDs - local c_air = minetest.get_content_id("air") - local c_stone = minetest.get_content_id("default:stone") - local c_desertstone = minetest.get_content_id("default:desert_stone") - local c_sandstone = minetest.get_content_id("default:sandstone") - local c_obsidian = minetest.get_content_id("default:obsidian") - local c_sand = minetest.get_content_id("default:sand") - - local c_water = minetest.get_content_id("default:water_source") - local c_lava = minetest.get_content_id("default:lava_source") - local c_iced = minetest.get_content_id("default:ice") - local c_ssand = minetest.get_content_id("default:silver_sand") - local c_thinice = minetest.get_content_id("caverealms:thin_ice") - local c_crystal = minetest.get_content_id("caverealms:glow_crystal") - local c_gem = minetest.get_content_id("caverealms:glow_gem") - local c_saltgem = minetest.get_content_id("caverealms:salt_gem") - print(c_saltgem) - - local c_spike = minetest.get_content_id("caverealms:spike") - local c_moss = minetest.get_content_id("caverealms:stone_with_moss") - local c_lichen = minetest.get_content_id("caverealms:stone_with_lichen") - local c_algae = minetest.get_content_id("caverealms:stone_with_algae") - local c_salt = minetest.get_content_id("caverealms:stone_with_salt") - local c_hcobble = minetest.get_content_id("caverealms:hot_cobble") - local c_gobsidian = minetest.get_content_id("caverealms:glow_obsidian") - local c_gobsidian2 = minetest.get_content_id("caverealms:glow_obsidian_2") - local c_coalblock = minetest.get_content_id("default:coalblock") - local c_desand = minetest.get_content_id("default:desert_sand") - local c_coaldust = minetest.get_content_id("caverealms:coal_dust") - local c_fungus = minetest.get_content_id("caverealms:fungus") - local c_mycena = minetest.get_content_id("caverealms:mycena") - local c_worm_blue = minetest.get_content_id("caverealms:glow_worm") - local c_worm_green = minetest.get_content_id("caverealms:glow_worm_green") - local c_worm_red = minetest.get_content_id("caverealms:glow_worm_red") - local c_fire_vine = minetest.get_content_id("caverealms:fire_vine") - local c_iciu = minetest.get_content_id("caverealms:icicle_up") - local c_icid = minetest.get_content_id("caverealms:icicle_down") - local c_flame = minetest.get_content_id("caverealms:constant_flame") - local c_bflame = minetest.get_content_id("caverealms:constant_flame_blue") - local c_firefly = minetest.get_content_id("fireflies:firefly") - local c_bluefly = minetest.get_content_id("caverealms:butterfly_blue") - - -- ethereal - --if minetest.get_modpath("ethereal") then - local c_bluegrass = minetest.get_content_id("ethereal:crystalgrass") - local c_greemush = minetest.get_content_id("ethereal:illumishroom2") - local c_redmush = minetest.get_content_id("ethereal:illumishroom") - --else - --end - - --too_many_stones - --if minetest.get_modpath("too_many_stones") then - local c_torangecrys = minetest.get_content_id("too_many_stones:crocoite_crystal") - local c_tredcrys = minetest.get_content_id("too_many_stones:eudialite_crystal") - local c_fakesalt = minetest.get_content_id("too_many_stones:rose_quartz_crystal") -- - local c_tyellocrys = minetest.get_content_id("too_many_stones:citrine_crystal") - local c_tsmokecrys = minetest.get_content_id("too_many_stones:smokey_quartz_crystal") - local c_tyellowcrys = minetest.get_content_id("too_many_stones:heliodor_crystal") - local c_tgreen1crys = minetest.get_content_id("too_many_stones:tourmaline_green_crystal") - local c_tgreen2crys = minetest.get_content_id("too_many_stones:prasiolite_crystal") - local c_fakeice1 = minetest.get_content_id("too_many_stones:celestine_crystal") - local c_fakeice2 = minetest.get_content_id("too_many_stones:moonstone_crystal") - local c_fakeice3 = minetest.get_content_id("too_many_stones:quartz_crystal") - print(c_fakeice3) - - --else - --end - - --everness - --if minetest.get_modpath("everness") then - local c_bluetwist = minetest.get_content_id("everness:twisted_crystal_grass") - local c_icevine = minetest.get_content_id("everness:lumabus_vine_1") - local c_purplevine = minetest.get_content_id("everness:whispering_gourd_vine_1") - local c_icicles_c = minetest.get_content_id("everness:frosted_icicle") - local c_icicles_f = minetest.get_content_id("everness:frosted_icicle_floor") - local c_crystcyan = minetest.get_content_id("everness:crystal_cyan") -- - local c_crystorange = minetest.get_content_id("everness:crystal_orange") -- - local c_crystpurple = minetest.get_content_id("everness:crystal_purple") -- - local c_flamepurple = minetest.get_content_id("everness:flame_permanent_purple") - local c_frostedice = minetest.get_content_id("everness:frosted_ice") - local c_mosspurple = minetest.get_content_id("everness:ivis_moss") - local c_bluelant = minetest.get_content_id("everness:blue_vine_lantern") - local c_redlant = minetest.get_content_id("everness:glowing_pillar") - local c_redplant = minetest.get_content_id("everness:bloodspore_plant") - - --Kristalle, die um 180° gedreht werden per param2, wenn sie auf dem Boden sind - local erdkristall = { - c_torangecrys, - c_tredcrys, - c_fakesalt, - c_tyellocrys, - c_tsmokecrys, - c_tyellowcrys, - c_tgreen1crys, - c_tgreen2crys, - c_fakeice1, - c_fakeice2, - c_fakeice3, - c_crystcyan, - c_crystorange, - c_crystpurple, - } --else - --end - - --herbs - --if minetest.get_modpath("herbs") then - local c_amanita = minetest.get_content_id("herbs:mushroom_amanita_green") - --else - --end - - --riesenpilz - -- if minetest.get_modpath("riesenpilz") then - local c_blueglowshroom = minetest.get_content_id("riesenpilz:glowshroom") - --else - --end - - --Other Wolds - -- if minetest.get_modpath("other_worlds") then - local c_marsgrass = minetest.get_content_id("mars:grass_1") - local c_marsmoss = minetest.get_content_id("mars:moss") - --else - --end - - -- crystals - local c_crystore = minetest.get_content_id("caverealms:glow_ore") - local c_emerald = minetest.get_content_id("caverealms:glow_emerald") - local c_emore = minetest.get_content_id("caverealms:glow_emerald_ore") - local c_mesecry = minetest.get_content_id("caverealms:glow_mese") - local c_meseore = minetest.get_content_id("default:stone_with_mese") - local c_ruby = minetest.get_content_id("caverealms:glow_ruby") - local c_rubore = minetest.get_content_id("caverealms:glow_ruby_ore") - local c_citrine = minetest.get_content_id("caverealms:glow_citrine") - local c_citore = minetest.get_content_id("caverealms:glow_citrine_ore") - local c_ameth = minetest.get_content_id("caverealms:glow_amethyst") - local c_amethore = minetest.get_content_id("caverealms:glow_amethyst_ore") - local c_hotspring = minetest.get_content_id("caverealms:hotspring_water_source") - - local stone_nodes = { - [c_stone] = 1, - [c_desertstone] = 1, - [c_sandstone] = 1, - [c_coalblock] = 1, - [c_sand] = 1, - [c_desand] = 1, - [c_obsidian] = 1, - } - - if nil ~= minetest.get_modpath("geology") then - stone_nodes[minetest.get_content_id("geology:gneiss")] = 1 - stone_nodes[minetest.get_content_id("geology:slate")] = 1 - stone_nodes[minetest.get_content_id("geology:jade")] = 1 - stone_nodes[minetest.get_content_id("geology:granite")] = 1 - stone_nodes[minetest.get_content_id("geology:marble")] = 1 - stone_nodes[minetest.get_content_id("geology:basalt")] = 1 - stone_nodes[minetest.get_content_id("geology:chalk")] = 1 - stone_nodes[minetest.get_content_id("geology:ors")] = 1 - stone_nodes[minetest.get_content_id("geology:serpentine")] = 1 - stone_nodes[minetest.get_content_id("geology:shale")] = 1 - stone_nodes[minetest.get_content_id("geology:schist")] = 1 - stone_nodes[minetest.get_content_id("geology:anthracite")] = 1 - end - - --mandatory values - local sidelen = x1 - x0 + 1 --length of a mapblock - local chulens = { x = sidelen, y = sidelen, z = sidelen } --table of chunk edges - local chulens2D = { x = sidelen, y = sidelen, z = 1 } - local minposxyz = { x = x0, y = y0, z = z0 } --bottom corner - local minposxz = { x = x0, y = z0 } --2D bottom corner - - local nvals_biome_e = minetest.get_perlin_map(np_biome_evil, chulens2D):get2dMap_flat({ x = x0 + 150, y = z0 + 50 }) --2D noise for biomes (will be 3D humidity/temp later) - local nvals_biome_w = - minetest.get_perlin_map(np_biome_wonder, chulens2D):get2dMap_flat({ x = x0 + 150, y = z0 + 50 }) --2D noise for biomes (will be 3D humidity/temp later) - - local nixyz = 1 --3D node index - local nixz = 1 --2D node index - local nixyz2 = 1 --second 3D index for second loop - - for z = z0, z1 do -- for each xy plane progressing northwards - --increment indices - nixyz = nixyz + 1 - - --decoration loop - for y = y0, y1 do -- for each x row progressing upwards - local is_deep = false - if y < DEEP_CAVE then - is_deep = true - end - - local vi = area:index(x0, y, z) - for x = x0, x1 do -- for each node do - local ai = area:index(x, y + 1, z) --above index - local bi = area:index(x, y - 1, z) --below index - - local mode = 0 -- nothing, 1 = ground, 2 = ceiling - - if data[vi] == c_air then - if stone_nodes[data[bi]] ~= nil then --ground - mode = 1 - elseif stone_nodes[data[ai]] ~= nil and y < y1 then -- ceiling - mode = 2 - end - end - - if mode > 0 then - local a2i = area:index(x, y + 2, z) --above index - - --determine biome - local biome = 0 --preliminary declaration - local n_biome_e = nvals_biome_e[nixz] --make an easier reference to the noise - local n_biome_w = nvals_biome_w[nixz] --make an easier reference to the noise - local n_biome = (n_biome_e + n_biome_w) / 2 - - local floor = c_hcobble - local floor_depth = 1 - local worms = {} - local worm_max_len = 1 - local no_mites = false - local no_tites = false - local decos = {} - local decos2 = {} - local deco_mul = 1 - - local wiggle = (math.random() - 0.5) / 20 - n_biome_e = n_biome_e + wiggle - n_biome_w = n_biome_w + wiggle - - if n_biome_e < -0.33 then - if n_biome_w < -0.33 then -- algae - if is_deep then --deep algae deco - worms = { c_worm_green, c_tyellowcrys } - decos = { c_mycena, c_tyellowcrys, c_amanita } - else -- normal algae - worms = { c_worm_green } - decos = { c_mycena } - end - floor = c_algae - worm_max_len = 1 - if mode == 1 and data[ai] == c_air and math.random() < 0.03 then - data[ai] = c_firefly - end - elseif n_biome_w < 0.33 then -- moss - if is_deep then --deep moss deco - worms = { c_worm_green, c_tgreen1crys, c_tgreen2crys, c_worm_blue } - decos = { - c_mycena, - c_greemush, - c_mycena, - c_greemush, - c_tgreen1crys, - c_tgreen2crys, - } - deco_mul = 1. - worm_max_len = 1 - else -- normal moss - worms = { c_worm_green } - decos = { c_mycena } - worm_max_len = 3 - end - floor = c_moss - deco_mul = 2.0 - if mode == 1 and data[ai] == c_air and math.random() < 0.001 then - if math.random() < 0.5 then - local pos = { x = x, y = y, z = z } - riesenpilz.brown(pos, data, area) - else - caverealms:grow_green_mushroom(x, y - 1, z, area, data) - end - end - else -- lichen - if is_deep then --magical lichen deco - worms = { c_crystpurple, c_crystpurple, c_purplevine } - decos = { - c_mosspurple, - c_flamepurple, - c_crystpurple, - c_mosspurple, - c_flamepurple, - c_crystpurple, - c_bluetwist, - c_tyellowcrys, - } - deco_mul = 2 - worm_max_len = 1 - else -- normal lichen - worms = { c_worm_blue } - worm_max_len = 3 - decos = { c_mycena, c_fungus, c_fungus } - deco_mul = 3.3 - end - floor = c_lichen - - - if mode == 1 and data[ai] == c_air and math.random() < 0.003 then - data[ai] = c_bluefly - end - end - elseif n_biome_e < 0.33 then - if n_biome_w < -0.33 then -- desert - if math.random() < 0.05 then - floor = c_coalblock - elseif math.random() < 0.15 then - floor = c_coaldust - else - if is_deep then - floor = c_hcobble - else - floor = c_desand - end - end - if is_deep then --hot cobble - decos = { - c_redplant, - c_redlant, - c_flame, - c_torangecrys, - c_redplant, - c_flame, - c_torangecrys, - c_crystorange, - } - worms = { c_worm_red, c_torangecrys } - else --desert - decos = { - c_tyellocrys, - c_flame, - c_spike, - c_tsmokecrys, - c_crystorange, - } - worms = { c_tyellocrys, c_tsmokecrys } - end - deco_mul = 2 - floor_depth = 2 - worm_max_len = 1 - elseif n_biome_w < 0.33 then -- salt - floor = c_salt - floor_depth = 2 - worms = { c_fakesalt } - worm_max_len = 1 - no_mites = true - decos = { c_saltgem } - if is_deep then - decos = { c_saltgem, c_fakesalt } - end - else - if is_deep then --magic deep glacial - floor = c_frostedice - floor_depth = 2 - worms = { c_icevine, c_crystcyan, c_crystcyan, c_icicles_c, c_worm_blue } - worm_max_len = 1 - decos = { - c_crystcyan, - c_crystcyan, - c_blueglowshroom, - c_blueglowshroom, - c_bluetwist, - c_bflame, - c_bflame, - c_icicles_f, - c_bluelant, - c_iciu, - c_iciu, - c_icicles_f, - c_bluegrass, - c_iciu, - c_iciu, - c_icicles_f, - c_bluegrass, - } - deco_mul = 2 - else --glacial - floor = c_thinice - floor_depth = 2 - worms = { c_icid, c_worm_blue } - worm_max_len = 1 - decos = { c_gem, c_gem, c_iciu, c_fakeice2 } - deco_mul = 2 - end - end - else - if n_biome_w < -0.33 then -- hotspring - floor = c_hcobble - worms = { c_worm_red } - worm_max_len = 3 - if mode == 1 and math.random() < 0.005 then - caverealms:spawn_hotspring(x, y, z, area, data, math.random(4) + 2) - end - decos = { c_fire_vine, c_marsgrass, c_marsmoss } - deco_mul = 1 - elseif n_biome_w < 0.33 then -- dungeon - if math.random() < 0.5 then - floor = c_gobsidian - else - floor = c_gobsidian2 - end - worms = { c_worm_red, c_tredcrys } - worm_max_len = 1 - decos = { c_flame, c_flame, c_bflame, c_fire_vine, c_tredcrys } - else -- deep glacial - floor = c_iced - floor_depth = 3 - worms = { c_icid, c_icicles_c, c_icid, c_icicles_c, c_fakeice1, c_fakeice2, c_fakeice3 } - worm_max_len = 1 - - decos = { - c_bflame, - c_iciu, - c_icicles_f, - c_bflame, - c_iciu, - c_icicles_f, - c_fakeice1, - c_fakeice2, - c_fakeice3, - } - end - end - - -- place floor - if mode == 1 then --ground - for i = 1, floor_depth do - local ii = area:index(x, y - i, z) - if stone_nodes[data[bi]] ~= nil then - data[ii] = floor - end - end - -- minetest.set_node(pos + vector.new(x, y, z), {name = crystal, param2 = 1}) - -- decorations - if math.random() < ICICHA * deco_mul and data[bi] ~= c_hotspring then - local deco = decos[math.random(1, #decos)] - - if table_contains(erdkristall, deco) then - local paramzwei = minetest.dir_to_facedir((vector.new(2, 0, 0)), true) - vparam2[vi] = paramzwei - end - data[vi] = deco - end - - -- salt crystals - if floor == c_salt and math.random() < SALTCRYCHA then - caverealms:salt_stalagmite(x, y - 1, z, area, data) - end - - -- stone stalagmites - if math.random() < STAGCHA then - caverealms:stalagmite(x, y, z, area, data) - end - - -- crystal stalagmites - if not no_mites and math.random() < CRYSTAL then - local ore - local cry - - if n_biome_e < -0.33 then -- non-evil - if n_biome_w < -0.33 then --algae - if math.random(10) == 1 then --chance 1/10 for mese - ore = c_emore - cry = c_emerald - else - ore = c_meseore - cry = c_mesecry - end - elseif n_biome_w < 0.33 then --moss - if is_deep then --deep moss - if math.random(10) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_emore - cry = c_emerald - end - else --normal moss - ore = c_emore - cry = c_emerald - end - else --lichen - if is_deep then --magical lichen - local tschu = math.random(8) - if tschu == 1 then --chance 1/10 for mese - ore = c_meseore - cry = c_mesecry - elseif tschu == 2 then - ore = c_crystore - cry = c_crystal - else - ore = c_amethore - cry = c_ameth - end - else --lichen - ore = c_amethore - cry = c_ameth - end - end - elseif n_biome_e < 0.33 then -- moderately evil - if n_biome_w < -0.33 then - if is_deep then --hot cobble - if math.random(3) == 1 then - ore = c_citore - cry = c_citrine - else - ore = c_rubore - cry = c_ruby - end - else - if math.random(3) == 1 then --desert / sand - ore = c_meseore - cry = c_mesecry - else - ore = c_citore - cry = c_citrine - end - end - elseif n_biome_w < 0.33 then --salt - ore = c_meseore - cry = c_mesecry - else - if is_deep then --magic deep glacial - if math.random(3) == 1 then - ore = c_iced - cry = c_thinice - else - ore = c_crystore - cry = c_crystal - end - else --glacial - if math.random(5) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_iced - cry = c_thinice - end - end - end - else -- very evil - if n_biome_w < -0.33 then --hotcobble-hotsprings - if math.random(3) == 1 then - ore = c_citore - cry = c_citrine - else - ore = c_rubore - cry = c_ruby - end - elseif n_biome_w < 0.33 then --obsidian-dungeon - if math.random(10) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_rubore - cry = c_ruby - end - else --deep_glacial - if math.random(3) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_iced - cry = c_thinice - end - end - end - - local base = floor - caverealms:crystal_stalagmite(x, y - 1, z, area, data, ore, cry, base) - end - - if n_biome_w > 0.5 and n_biome_e < -0.33 and math.random() < GIANTCHA then --giant mushrooms - caverealms:giant_shroom(x, y, z, area, data) - end - elseif mode == 2 then -- place ceiling - if math.random() < ICICHA then - local worm = worms[math.random(1, #worms)] - local wdepth = math.random(1, worm_max_len) - for i = 0, wdepth - 1 do - local ii = area:index(x, y - i, z) - if data[ii] == c_air then - data[ii] = worm - end - end - end - - -- stalactites - if not no_tites and math.random() < CRYSTAL then - local ore - local cry - - if n_biome_e < -0.33 then -- non-evil - if n_biome_w < -0.33 then --algae - if math.random(10) == 1 then --chance 1/10 for mese - ore = c_emore - cry = c_emerald - else - ore = c_meseore - cry = c_mesecry - end - elseif n_biome_w < 0.33 then --moss - ore = c_emore - cry = c_emerald - else --lichen - if is_deep then --magical lichen - local tschu = math.random(6) - if tschu == 1 then --chance 1/10 for mese - ore = c_meseore - cry = c_mesecry - elseif tschu == 2 then - ore = c_crystore - cry = c_crystal - else - ore = c_amethore - cry = c_ameth - end - else --lichen - ore = c_amethore - cry = c_ameth - end - end - elseif n_biome_e < 0.33 then -- moderately evil - if n_biome_w < -0.33 then - if is_deep then --hot cobble - if math.random(3) == 1 then - ore = c_citore - cry = c_citrine - else - ore = c_rubore - cry = c_ruby - end - else - if math.random(3) == 1 then --desert / sand - ore = c_meseore - cry = c_mesecry - else - ore = c_citore - cry = c_citrine - end - end - elseif n_biome_w < 0.33 then --salt - ore = c_meseore - cry = c_mesecry - else - if is_deep then --magic deep glacial - if math.random(3) == 1 then - ore = c_iced - cry = c_thinice - else - ore = c_crystore - cry = c_crystal - end - else --glacial - if math.random(5) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_iced - cry = c_thinice - end - end - end - else -- very evil - if n_biome_w < -0.33 then --hotcobble-hotsprings - if math.random(3) == 1 then - ore = c_citore - cry = c_citrine - else - ore = c_rubore - cry = c_ruby - end - elseif n_biome_w < 0.33 then --obsidian-dungeon - if math.random(20) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_rubore - cry = c_ruby - end - else --deep_glacial - if math.random(3) == 1 then - ore = c_crystore - cry = c_crystal - else - ore = c_iced - cry = c_thinice - end - end - end - - local base = c_stone - caverealms:crystal_stalactite(x, y, z, area, data, ore, cry, base) - end - end - end - - nixyz2 = nixyz2 + 1 - nixz = nixz + 1 - vi = vi + 1 - end - nixz = nixz - sidelen --shift the 2D index back - end - nixz = nixz + sidelen --shift the 2D index up a layer - end - - --send data back to voxelmanip - vm:set_data(data) - vm:set_param2_data(vparam2) - --calc lighting - vm:set_lighting({ day = 0, night = 0 }) - vm:calc_lighting() - --write it to world - vm:write_to_map(data) - - --local chugent = math.ceil((os.clock() - t1) * 1000) --grab how long it took - --print ("[caverealms] "..chugent.." ms") --tell people how long -end) -print("[caverealms] loaded!") diff --git a/mods/.skyrealms/mod.conf b/mods/.skyrealms/mod.conf deleted file mode 100644 index e6887cac..00000000 --- a/mods/.skyrealms/mod.conf +++ /dev/null @@ -1,5 +0,0 @@ -name = caverealms -depends = default, stairs, fireflies -optional_depends = ethereal, mobs, geology -description = Drop-in improvement of Caverealms Lite - diff --git a/mods/.skyrealms/nodes.lua b/mods/.skyrealms/nodes.lua deleted file mode 100644 index c091378e..00000000 --- a/mods/.skyrealms/nodes.lua +++ /dev/null @@ -1,624 +0,0 @@ ---glowing crystal -minetest.register_node("caverealms:glow_crystal", { - description = "Glow Sapphire", - tiles = {"caverealms_glow_crystal.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing emerald -minetest.register_node("caverealms:glow_emerald", { - description = "Glow Emerald", - tiles = {"caverealms_glow_emerald.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing mese crystal blocks -minetest.register_node("caverealms:glow_mese", { - description = "Glow Mese Crystal", - tiles = {"caverealms_glow_mese.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing ruby -minetest.register_node("caverealms:glow_ruby", { - description = "Glow Ruby", - tiles = {"caverealms_glow_ruby.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing citrine -minetest.register_node("caverealms:glow_citrine", { - description = "Glow Citrine", - tiles = {"caverealms_glow_citrine.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing amethyst -minetest.register_node("caverealms:glow_amethyst", { - description = "Glow Amethyst", - tiles = {"caverealms_glow_amethyst.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - light_source = 13, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---embedded crystal -minetest.register_node("caverealms:glow_ore", { - description = "Glow Crystal Ore", - tiles = {"caverealms_glow_ore.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 10, - paramtype = "light", -}) - ---embedded emerald -minetest.register_node("caverealms:glow_emerald_ore", { - description = "Glow Emerald Ore", - tiles = {"caverealms_glow_emerald_ore.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 10, - paramtype = "light", -}) - ---embedded ruby -minetest.register_node("caverealms:glow_ruby_ore", { - description = "Glow Ruby Ore", - tiles = {"caverealms_glow_ruby_ore.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 10, - paramtype = "light", -}) - ---embedded citrine -minetest.register_node("caverealms:glow_citrine_ore", { - description = "Glow Citrine Ore", - tiles = {"caverealms_glow_citrine_ore.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 10, - paramtype = "light", -}) - ---embedded amethyst -minetest.register_node("caverealms:glow_amethyst_ore", { - description = "Glow Amethyst Ore", - tiles = {"caverealms_glow_amethyst_ore.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 10, - paramtype = "light", -}) - ---thin (transparent) ice -minetest.register_node("caverealms:thin_ice", { - description = "Thin Ice", - tiles = {"caverealms_thin_ice.png"}, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, - freezemelt = "default:water_source", - paramtype = "light", -}) - ---salt crystal -minetest.register_node("caverealms:salt_crystal", { - description = "Salt Crystal", - tiles = {"caverealms_salt_crystal.png"}, - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_glass_defaults(), - light_source = 11, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, -}) - ---glowing crystal gem -minetest.register_node("caverealms:glow_gem", { - description = "Glow Gem", - tiles = {"caverealms_glow_gem.png"}, - inventory_image = "caverealms_glow_gem.png", - wield_image = "caverealms_glow_gem.png", - is_ground_content = true, - groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1}, - sounds = default.node_sound_glass_defaults(), - light_source = 11, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 0.75, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - } -}) - ---glowing salt gem -minetest.register_node("caverealms:salt_gem", { - description = "Salt Gem", - tiles = {"caverealms_salt_gem.png"}, - inventory_image = "caverealms_salt_gem.png", - wield_image = "caverealms_salt_gem.png", - is_ground_content = true, - groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1}, - sounds = default.node_sound_glass_defaults(), - light_source = 11, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 0.75, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - } -}) - ---stone spike -minetest.register_node("caverealms:spike", { - description = "Stone Spike", - tiles = {"caverealms_spike.png"}, - inventory_image = "caverealms_spike.png", - wield_image = "caverealms_spike.png", - is_ground_content = true, - groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1}, - sounds = default.node_sound_stone_defaults(), - light_source = 3, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 0.75, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - } -}) - - ---upward pointing icicle -minetest.register_node("caverealms:icicle_up", { - description = "Icicle", - tiles = {"caverealms_icicle_up.png"}, - inventory_image = "caverealms_icicle_up.png", - wield_image = "caverealms_icicle_up.png", - is_ground_content = true, - groups = {cracky=3, oddly_breakable_by_hand=1, attached_node = 1}, - sounds = default.node_sound_glass_defaults(), - light_source = 8, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -7/16, 0.5}, - }, -}) - ---downward pointing icicle -minetest.register_node("caverealms:icicle_down", { - description = "Icicle", - tiles = {"caverealms_icicle_down.png"}, - inventory_image = "caverealms_icicle_down.png", - wield_image = "caverealms_icicle_down.png", - is_ground_content = true, - groups = {cracky=3, oddly_breakable_by_hand=1, attached_node = 1}, - sounds = default.node_sound_glass_defaults(), - light_source = 8, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-0.5, 7/16, -0.5, 0.5, 0.5, 0.5}, - }, -}) - ---cave mossy cobble - bluish? -minetest.register_node("caverealms:stone_with_moss", { - description = "Cave Stone with Moss", - tiles = {"default_cobble.png^caverealms_moss.png", "default_cobble.png", "default_cobble.png^caverealms_moss_side.png"}, - is_ground_content = true, - groups = {crumbly=1, cracky=3}, --- drop = 'default:cobble', - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.25}, - }), -}) - ---cave lichen-covered cobble - purple-ish -minetest.register_node("caverealms:stone_with_lichen", { - description = "Cave Stone with Lichen", - tiles = {"default_cobble.png^caverealms_lichen.png", "default_cobble.png", "default_cobble.png^caverealms_lichen_side.png"}, - is_ground_content = true, - groups = {crumbly=1, cracky=3}, --- drop = 'default:cobble', - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.25}, - }), -}) - ---cave algae-covered cobble - yellow-ish -minetest.register_node("caverealms:stone_with_algae", { - description = "Cave Stone with Algae", - tiles = {"default_cobble.png^caverealms_algae.png", "default_cobble.png", "default_cobble.png^caverealms_algae_side.png"}, - is_ground_content = true, - groups = {crumbly=1, cracky=3}, --- drop = 'default:cobble', - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.25}, - }), -}) - ---tiny-salt-crystal-covered cobble - pink-ish -minetest.register_node("caverealms:stone_with_salt", { - description = "Salt Crystal", - tiles = {"caverealms_salty2.png"}, - light_source = 9, - paramtype = "light", - use_texture_alpha = true, - drawtype = "glasslike", - sunlight_propagates = true, - is_ground_content = true, - groups = {cracky=3}, - sounds = default.node_sound_glass_defaults(), -}) - ---Hot Cobble - cobble with lava instead of mortar XD -minetest.register_node("caverealms:hot_cobble", { - description = "Hot Cobble", - tiles = {"caverealms_hot_cobble.png"}, - is_ground_content = true, - groups = {cracky=1, hot=1, cobble = 1, stone = 1}, - damage_per_second = 1, - light_source = 3, - paramtype = "light", - sounds = default.node_sound_stone_defaults({ - footstep = {name="default_stone_footstep", gain=0.25}, - }), -}) - ---Glow Obsidian -minetest.register_node("caverealms:glow_obsidian", { - description = "Glowing Obsidian", - tiles = {"caverealms_glow_obsidian.png"}, - is_ground_content = true, - groups = {cracky=1, level=2}, - light_source = 7, - paramtype = "light", - sounds = default.node_sound_stone_defaults({ - footstep = {name="default_stone_footstep", gain=0.25}, - }), -}) - ---Glow Obsidian 2 - has traces of lava -minetest.register_node("caverealms:glow_obsidian_2", { - description = "Hot Glowing Obsidian", - tiles = {"caverealms_glow_obsidian2.png"}, - is_ground_content = true, - groups = {cracky=1, hot=1, level=2}, - light_source = 9, - paramtype = "light", - sounds = default.node_sound_stone_defaults({ - footstep = {name="default_stone_footstep", gain=0.25}, - }), -}) - ---Glow Obsidian Bricks -minetest.register_node("caverealms:glow_obsidian_brick", { - description = "Glow Obsidian Brick", - tiles = {"caverealms_glow_obsidian_brick.png"}, - light_source = 7, - groups = {cracky = 1, level = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("caverealms:glow_obsidian_brick_2", { - description = "Glow Obsidian Brick", - tiles = {"caverealms_glow_obsidian_brick_2.png"}, - light_source = 9, - groups = {cracky = 1, level = 2}, - sounds = default.node_sound_stone_defaults(), -}) - ---Glow Obsidian Stairs/Slabs -stairs.register_stair_and_slab( - "glow_obsidian_brick", - "caverealms:glow_obsidian_brick", - {cracky = 1, level = 2}, - {"caverealms_glow_obsidian_brick.png"}, - "Glow Obsidian Brick Stair", - "Glow Obsidian Brick Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab( - "glow_obsidian_brick_2", - "caverealms:glow_obsidian_brick_2", - {cracky = 1, level = 2}, - {"caverealms_glow_obsidian_brick_2.png"}, - "Glow Obsidian Brick Stair", - "Glow Obsidian Brick Slab", - default.node_sound_stone_defaults()) - ---Glow Obsidian Glass -minetest.register_node("caverealms:glow_obsidian_glass", { - description = "Glow Obsidian Glass", - drawtype = "glasslike_framed_optional", - tiles = {"caverealms_glow_obsidian_glass.png", "default_obsidian_glass_detail.png"}, - paramtype = "light", - light_source = 13, - sunlight_propagates = true, - groups = {cracky = 3}, - sounds = default.node_sound_glass_defaults(), -}) - ---Coal Dust -minetest.register_node("caverealms:coal_dust", { - description = "Coal Dust", - tiles = {"caverealms_coal_dust.png"}, - is_ground_content = true, - groups = {crumbly=3, falling_node=1, sand=1}, - sounds = default.node_sound_sand_defaults(), -}) - ---glow worms -minetest.register_node("caverealms:glow_worm", { - description = "Blue Glow Worms", - tiles = {"caverealms_glow_worm.png"}, - inventory_image = "caverealms_glow_worm.png", - wield_image = "caverealms_glow_worm.png", - is_ground_content = true, - groups = {oddly_breakable_by_hand=3, }, - light_source = 9, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6}, - }, -}) - -minetest.register_node("caverealms:glow_worm_green", { - description = "Green Glow Worms", - tiles = {"caverealms_glow_worm_green.png"}, - inventory_image = "caverealms_glow_worm_green.png", - wield_image = "caverealms_glow_worm_green.png", - is_ground_content = true, - groups = {oddly_breakable_by_hand=3, }, - light_source = 9, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6}, - }, -}) - -minetest.register_node("caverealms:glow_worm_red", { - description = "Red Glow Worms", - tiles = {"caverealms_glow_worm_red.png"}, - inventory_image = "caverealms_glow_worm_red.png", - wield_image = "caverealms_glow_worm_red.png", - is_ground_content = true, - groups = {oddly_breakable_by_hand=3, }, - light_source = 9, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6}, - }, -}) - -minetest.register_node("caverealms:fire_vine", { - description = "Fire Vine", - tiles = {"caverealms_fire_vine.png"}, - inventory_image = "caverealms_fire_vine.png", - wield_image = "caverealms_fire_vine.png", - is_ground_content = true, - damage_per_second = 1, - groups = {oddly_breakable_by_hand=3, }, - light_source = 9, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6}, - }, -}) - - ---define special flame so that it does not expire -minetest.register_node("caverealms:constant_flame", { - description = "Fire", - drawtype = "plantlike", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - groups = {igniter=2, dig_immediate=3, hot=3, not_in_creative_inventory=1}, - paramtype = "light", - drop = '', - walkable = false, - buildable_to = true, - damage_per_second = 4, -}) - -minetest.register_node("caverealms:constant_flame_blue", { - description = "Blue Fire", - drawtype = "plantlike", - tiles = {{ - name="caverealms_blue_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - groups = {dig_immediate=3, not_in_creative_inventory=1}, - paramtype = "light", - drop = '', - walkable = false, - buildable_to = true, - damage_per_second = 4, -}) - ---dungeon master statue (nodebox) -minetest.register_node("caverealms:dm_statue", { - description = "Dungeon Master Statue", - tiles = { - "caverealms_dm_stone.png", - "caverealms_dm_stone.png", - "caverealms_dm_stone.png", - "caverealms_dm_stone.png", - "caverealms_dm_stone.png", - "caverealms_stone_eyes.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky=2}, - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.4375, 0.4375, -0.3125, 0.4375}, -- NodeBox1 - {-0.25, -0.125, -0.1875, 0.25, 0.5, 0.1875}, -- NodeBox2 - {-0.375, 0, -0.125, -0.25, 0.4375, 0.125}, -- NodeBox3 - {0.25, 0.125, -0.4375, 0.375, 0.375, 0.1875}, -- NodeBox4 - {-0.25, -0.5, -0.125, -0.125, -0.125, 0.125}, -- NodeBox5 - {0.125, -0.3125, -0.125, 0.25, 0, 0.125}, -- NodeBox6 - } - }, - selection_box = { - type = "regular" - } -}) - - -minetest.register_node("caverealms:butterfly_blue", { - description = desc, - drawtype = "plantlike", - tiles = {{ - name = "caverealms_butterfly_blue_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 3 - }, - }}, - inventory_image = "caverealms_butterfly_blue.png", - wield_image = "caverealms_butterfly_blue.png", - waving = 1, - paramtype = "light", - sunlight_propagates = true, - buildable_to = true, - walkable = false, - groups = {catchable = 1}, - light_source = 6, - selection_box = { - type = "fixed", - fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, - }, - floodable = true, - on_place = function(itemstack, placer, pointed_thing) - local player_name = placer:get_player_name() - local pos = pointed_thing.above - - if not minetest.is_protected(pos, player_name) and - not minetest.is_protected(pointed_thing.under, player_name) and - minetest.get_node(pos).name == "air" then - minetest.set_node(pos, {name = "caverealms:butterfly_blue"}) - itemstack:take_item() - end - return itemstack - end, -}) - - --- Compatibility -minetest.register_alias("caverealms:hanging_thin_ice", "caverealms:thin_ice") - -minetest.register_alias("caverealms:spike_2", "caverealms:spike") -minetest.register_alias("caverealms:spike_3", "caverealms:spike") -minetest.register_alias("caverealms:spike_4", "caverealms:spike") -minetest.register_alias("caverealms:spike_5", "caverealms:spike") - -minetest.register_alias("caverealms:salt_gem_2", "caverealms:salt_gem") -minetest.register_alias("caverealms:salt_gem_3", "caverealms:salt_gem") -minetest.register_alias("caverealms:salt_gem_4", "caverealms:salt_gem") -minetest.register_alias("caverealms:salt_gem_5", "caverealms:salt_gem") - -minetest.register_alias("caverealms:glow_gem_2", "caverealms:glow_gem") -minetest.register_alias("caverealms:glow_gem_3", "caverealms:glow_gem") -minetest.register_alias("caverealms:glow_gem_4", "caverealms:glow_gem") -minetest.register_alias("caverealms:glow_gem_5", "caverealms:glow_gem") diff --git a/mods/.skyrealms/plants.lua b/mods/.skyrealms/plants.lua deleted file mode 100644 index bc0e1131..00000000 --- a/mods/.skyrealms/plants.lua +++ /dev/null @@ -1,277 +0,0 @@ --- Lichen biome - --- glowing fungi -minetest.register_node("caverealms:fungus", { - description = "Glowing Fungus", - tiles = {"caverealms_fungi.png"}, - inventory_image = "caverealms_fungi.png", - wield_image = "caverealms_fungi.png", - is_ground_content = true, - groups = {oddly_breakable_by_hand = 3, attached_node = 1}, - light_source = 5, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, -}) - --- mycena mushroom -minetest.register_node("caverealms:mycena", { - description = "Mycena Mushroom", - tiles = {"caverealms_mycena.png"}, - inventory_image = "caverealms_mycena.png", - wield_image = "caverealms_mycena.png", - is_ground_content = true, - groups = {oddly_breakable_by_hand = 3, attached_node = 1}, - light_source = 6, - paramtype = "light", - drawtype = "plantlike", - walkable = false, - buildable_to = true, - visual_scale = 1.0, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, -}) - --- giant mushroom -if minetest.get_modpath("ethereal") then - minetest.register_alias("caverealms:mushroom_cap", "ethereal:mushroom") - minetest.register_alias("caverealms:mushroom_stem", "ethereal:mushroom_trunk") -else - -- stem - minetest.register_node("caverealms:mushroom_stem", { - description = "Giant Mushroom Stem", - tiles = {"caverealms_mushroom_stem.png"}, - is_ground_content = true, - groups = {choppy=2, oddly_breakable_by_hand=1}, - }) - - -- cap - minetest.register_node("caverealms:mushroom_cap", { - description = "Giant Mushroom Cap", - tiles = {"caverealms_mushroom_cap.png"}, - is_ground_content = true, - groups = {choppy=2, oddly_breakable_by_hand=1,}, - light_source = 3, - drop = { - max_items = 1, - items = { - {items = {"caverealms:mushroom_sapling"}, rarity = 20}, - {items = {"caverealms:mushroom_cap"}} - } - }, - }) - - -- sapling - minetest.register_node("caverealms:mushroom_sapling", { - description = "Mushroom Tree Sapling", - drawtype = "plantlike", - tiles = {"caverealms_mushroom_sapling.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}, - sounds = default.node_sound_leaves_defaults(), - }) -end - --- green mushroom --- cap -minetest.register_node("caverealms:mushroom_cap_green", { - description = "Giant Mushroom Cap, Green", - tiles = {"caverealms_mushroom_cap_green.png"}, - is_ground_content = true, - groups = {choppy=2, oddly_breakable_by_hand=1,}, - light_source = 3, - drop = { - max_items = 1, - items = { - {items = {"caverealms:mushroom_sapling_green"}, rarity = 20}, - {items = {"caverealms:mushroom_cap_green"}} - } - }, -}) -minetest.register_node("caverealms:mushroom_cap_green_spots", { - description = "Giant Mushroom Cap, Green", - tiles = {"caverealms_mushroom_cap_green.png^caverealms_mushroom_cap_spots.png"}, - is_ground_content = true, - groups = {choppy=2, oddly_breakable_by_hand=1,}, - light_source = 3, - drop = { - max_items = 1, - items = { - {items = {"caverealms:mushroom_sapling_green_spots"}, rarity = 20}, - {items = {"caverealms:mushroom_cap_green"}} - } - }, -}) - --- sapling -minetest.register_node("caverealms:mushroom_sapling_green", { - description = "Mushroom Tree Sapling, Green", - drawtype = "plantlike", - tiles = {"caverealms_mushroom_sapling_green.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}, - sounds = default.node_sound_leaves_defaults(), -}) - - --- gills -minetest.register_node("caverealms:mushroom_gills", { - description = "Giant Mushroom Gills", - tiles = {"caverealms_mushroom_gills.png"}, - is_ground_content = true, - light_source = 10, - groups = {choppy=2, oddly_breakable_by_hand=1}, - drawtype = "plantlike", - paramtype = "light", -}) - - --- Saplings - --- grow trees -local add_tree = function (pos, ofx, ofy, ofz, schem) - if not schem then - print ("Schematic not found") - return - end - minetest.swap_node(pos, {name = "air"}) - minetest.place_schematic( - {x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz}, - schem, 0, nil, false) -end - -local path = minetest.get_modpath("caverealms").."/schematics/" - --- giant mushrooms -function grow_caverealms_mushroom(pos) - add_tree(pos, 5, 0, 5, path .. "shroom.mts") -end - --- height check -local function enough_height(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 - else - return true - end -end - -minetest.register_abm({ - label = "Caverealms grow sapling", - nodenames = {"ethereal:mushroom_sapling", "caverealms:mushroom_sapling"}, - interval = 10, - chance = 50, - catch_up = false, - action = function(pos, node) - local light_level = minetest.get_node_light(pos) - -- check light level - if not light_level or light_level > 10 then - return - end - -- get node under sapling - local under = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name - -- check if registered - if not minetest.registered_nodes[node.name] then - return - end - -- ethereal sapling on lichen stone - if node.name == "ethereal:mushroom_sapling" - and under == "caverealms:stone_with_lichen" - and enough_height(pos, 10) then - grow_caverealms_mushroom(pos) - -- caverealms sapling on lichen stone - elseif node.name == "caverealms:mushroom_sapling" - and under == "caverealms:stone_with_lichen" - and enough_height(pos, 10) then - grow_caverealms_mushroom(pos) - end - end, -}) - - --- green mushroom growth -function caverealms:grow_green_mushroom(x,y,z, area, data) - local c_stem = minetest.get_content_id("caverealms:mushroom_stem") - local c_gills = minetest.get_content_id("caverealms:mushroom_gills") - local c_cap = minetest.get_content_id("caverealms:mushroom_cap_green") - local c_caps = minetest.get_content_id("caverealms:mushroom_cap_green_spots") - - -- stem - local stop = {x=x,y=y+3,z=z}--{x = x+math.random(-1,1), y = y+3, z = z+math.random(-1,1)} - - for i = 1,3 do --- local vi = area:index(x+((stop.x-x) / i), y+i, z+((stop.z-z) / i)) - local vi = area:index(x, y+i, z) - data[vi] = c_stem - end - - data[area:index(stop.x+1, y+3, stop.z)] = c_gills - data[area:index(stop.x-1, y+3, stop.z)] = c_gills - data[area:index(stop.x, y+3, stop.z+1)] = c_gills - data[area:index(stop.x, y+3, stop.z-1)] = c_gills - - data[area:index(stop.x+1, y+3, stop.z+1)] = c_cap - data[area:index(stop.x-1, y+3, stop.z+1)] = c_cap - data[area:index(stop.x+1, y+3, stop.z-1)] = c_cap - data[area:index(stop.x-1, y+3, stop.z-1)] = c_caps - data[area:index(stop.x+2, y+3, stop.z)] = c_cap - data[area:index(stop.x-2, y+3, stop.z)] = c_cap - data[area:index(stop.x, y+3, stop.z+2)] = c_caps - data[area:index(stop.x, y+3, stop.z-2)] = c_cap - data[area:index(stop.x+1, y+4, stop.z)] = c_caps - data[area:index(stop.x-1, y+4, stop.z)] = c_cap - data[area:index(stop.x, y+4, stop.z+1)] = c_caps - data[area:index(stop.x, y+4, stop.z-1)] = c_cap - data[area:index(stop.x, y+4, stop.z)] = c_cap - - -end - - --- spread moss/lichen/algae to nearby cobblestone -minetest.register_abm({ - label = "Caverealms stone spread", - nodenames = { - "caverealms:stone_with_moss", - "caverealms:stone_with_lichen", - "caverealms:stone_with_algae", - }, - neighbors = {"air"}, - interval = 16, - chance = 50, - catch_up = false, - action = function(pos, node) - local num = minetest.find_nodes_in_area_under_air( - {x = pos.x - 1, y = pos.y - 2, z = pos.z - 1}, - {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, - "default:cobble") - if #num > 0 then - minetest.set_node(num[math.random(#num)], {name = node.name}) - end - end, -}) diff --git a/mods/.skyrealms/schematics/shroom.mts b/mods/.skyrealms/schematics/shroom.mts deleted file mode 100644 index 07e49668b178220736ca9e8d43ce8abe0b9c164e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeYb3HD`RVc=%qWZCzs{%$A#q^<&`QdNBTANAh6 i_^WqpgIj;pP)t-s0|EjG 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 WboG(KcE~LN0000cwK zUc6eDzx#N*Jr?oWyyX=ek2ah0eYK^W>$f)l!9I>odXv_vt_`t!v6d{3>9|lWb1ASx z;cbCCkD3Dj*yOl_qgz}69pVo0x14)v;g+WfMkYlH~FrOG*(lzpQdqg z-c$G4g7Q38An5u7_0I5kQ*mTs>uh&_U63>L1i&JvD*z=F z=$s~LY#`LwezvD(5Al^yzYK#SZ+VK7>>y0e1eS$~(cUZ^m!e;sLB^@1a0SV$=)Q(c zholnSq)w5dMftEW;ioM|aSIxHlvM9dpWArMcc!Wlx%L4#$PVTJRHr4_!~u=7$R${r z$>*)AGnNvVT{4O0cY+CG-wqt9$VnA75CFT0^DY2^8GM7k3?Kz$1RNP4i|l2dfKB+9>qW`6lCOY=i8^ z`meDoBOog;h-3k2+Xaf!0Ds^Q{02<(FE3HQi4kN%R7V5VGJvGi9RMli0H_9K@PFoW VBo;NX1Xut7002ovPDHLkV1n#1UXB0& diff --git a/mods/.skyrealms/textures/caverealms_algae_side.png b/mods/.skyrealms/textures/caverealms_algae_side.png deleted file mode 100644 index b9bd4ed020b34ff782a47d6c2fc6fba96f311f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfnE;;@=Rj3vkEypjw>gXmeAjAeF^UBoct+en9kqHc!35k@8h?9>@ zPym{imaCGUuL@M3U91LFQ&OW@TBliFuT|NkUEQox)2dU~uG`S1*V?DwKGC3avO(7r z!=7n|eKU2Vt$+We`?19X)i!#%IEF|_o;{e( z)TF?`c0s?hY+KHI4{tADr2y~DJOBOuzUJA>KL6=Vfw~gTlEiuK;t>^LLD`aMnp=;`X`vd$@?2>=o?jNJeL diff --git a/mods/.skyrealms/textures/caverealms_angler_rod.png b/mods/.skyrealms/textures/caverealms_angler_rod.png deleted file mode 100644 index 799abec46811dbed674ffa875661a691951f9651..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*t3?v(r4=o2$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#A(Jqd9^0|t2a!M_(Ey(iS0L@~?j9N%nx3BC*Vp&*<;(y7|CekP4FF0omIV0) zGdMiEkp|)qBpR%3nX3@Rx>?v|HABo|?>{#=6Akv?EWROhM(o_1XGb3P ot-GkoSNFVdQ&MBb@04ar37ytkO diff --git a/mods/.skyrealms/textures/caverealms_angler_rod_baited.png b/mods/.skyrealms/textures/caverealms_angler_rod_baited.png deleted file mode 100644 index 98c9f3baef015d9f70b83dddea588c7b6aba5d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*t3?v(r4=o2$oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#A(JqdxmucSW+zZcI>0By6-X=2GSb*?Sr8XB6Op5E8j_wwb-|Ns9N#hU5? zr5Q_t{DK)Ap4~_Tagw~I@O1Ta JS?83{1OP@uS58+A z`uh4bw%fdX`EvfG$MHZlj3q&S!3+-1Zlr-YN#5=*3>~bp9zYIffk$L90|U1(2s1Lw znj--eWH0gbb!C6ZB+4x#+xp%^A1IXS>Eak7aXC35A(^4MNP#0XA)$bI)6LVT8&y_s zWMcMa3RuLjM&ZVU#zxh>GK-`%G!Gm&5XSJdQPr_4F@{m#W!oCDgRHAtix*Df;nbM4 w!b(!YV_J(9V|!GX$<~lfQ?e$lX*yxU(D7fWQ1FskHPAu^Pgg&ebxsLQ0M0T`bpQYW diff --git a/mods/.skyrealms/textures/caverealms_blue_flame_animated.png b/mods/.skyrealms/textures/caverealms_blue_flame_animated.png deleted file mode 100644 index 2d4527f2fd25b52cde30d09445728b627d8d7b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2353 zcmV-13C{M3P)uwT+#OlZH z`F7s(KF@jH_dL(6^F6DUA-+O?s}(dT!gK0rR3|+;Q~7Nn`mx zUoQ(bJ|O}8*O~yBz4J8*pnC0jlincxT^O-ZyluPG`@6Zc{V&4#&%Gk{ym`wn1b|^i zL3E((*cn;;+uuomInO>L%k~|R>pp0cvue)8qbNOmT>iNBBWa}dTDi0Of}D*CfFoky7K?*1w-;Sw5P-p+ zFuv0s`uu+4>sogBV_7()$C_bg?6Q}B>oBuYvk6(DO?ohU6l@&^gjrA>cCn@}oh#u! zl$ZmXsxg)?2)Bp%sA-f!EsK}$&lWU;#U%+{8ba6vVZWaZY9`j~2pK5`l#1$$65y@! z5+OVi&7dRywlF&$$`Jsq&K^uY6IMqm*9M)8`GZ*f3T>ZvlN`~ZXo|+B6YUaUaLmg< z#7E7OWddN`p*CsHvhn`u9%_UAWSKL`&|9c%Yo&H(7dm?~s>5YL?~Jabc1?6cSM544 zQw>Qt`ZYqq2y#qEqqdZS(sK{i$?MDce_}zbq$fGKo(Fdv{ZJO{+I>?V z#I6_*6t6vxvSVlB4?9~vMHsRv-nKnHrX(3@-Tik_^o7wx9*DAIXXMcPhxq)(7sQ-r zpOMK6Z|BzRC7c@Wqg2(gf5n0+H%=)DCC6_r|8cuGx3)q^)l0gj&>=HC&g=^YV|x3=hNMY6=<|;;nl8w1G9k>->0Qn~^0f@Eg!{h0 zPHaazH2HKGF>+0DvNkva6c|vWt5@>|(x_aOD*(2>*(ph~#Ut9V_p&sNnRxHS z5Z>?hQ*O?r>S{Xxq1oN6j?9TJ;i;V+GFU3H4CvTVQ6yr<_908$S)|*Ix*&(;vs1_q zr%>f~!%`ngXaughTF4#HXt4wU*t(}hmIQ4CiXl)83+`61CZ8ds1<>pDJi9Jac)b@m zSXYB6cgc9V)*mFNq%q5wk88;??l{sQ z_m|(82NzfWNC2oMp=3UqzypAJC$GqKEt+YiHK*k5*;ZWr(NApAQh4LuB5}`=^YXp& zMMC_n_S1Oy*YiMc3IT949spDGK&LaH$jD83FmTp0H4pYJE1r@ElOmXo2Q#{o;*M|1 z1AuV*jd>v55~Hfn($~w<>v?cs)qGLlvM>?@HQ1S-S*mR;@?szCi^mzt(^o?dYkq7oH8%Jt;Ij$cj%N*T{%C=VCPQ4sWBmnI~ z^ree4@+QG#Ivyl138Kb$@ce-u`CLWxNZ-1rMcRWVI*X%upbH;`upp!rMtSf+rYPB2 zDG%0pzRZK?DjabZd@UY))pmc{BmOHxB4#|Xqzm^Rp4LGu0;TEs-wS}T5aUzeEhc{ z1{7uftR?a0;@sK_QMT`ZZ1VJzl$?eq=;L(P2&x)2zQ3+P0<5cVmh)0)Mjga@gGJw4 z&x+axd2VfmI90w-NYzV{W@Mf*o!CDEz~=WlnA4GgdCn0ideAoz*3U(M+6~UWj@P(o$3&IqH-0UA0+gHgnsaUr62qk XH-E-AS*GjW00000NkvXXu0mjf$1-z7 diff --git a/mods/.skyrealms/textures/caverealms_butterfly_blue.png b/mods/.skyrealms/textures/caverealms_butterfly_blue.png deleted file mode 100644 index 00616ad73558fe9612ac7fa72546e86c3d1e71bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)^mS!_!Xhp#Df2?_(i)(Us;7%%h{fsT1PRu|azFn5KfmGe rv-(Y6i;WHbq<{GRzurWp-IjsjQVfUjj2^R}Kn)C@u6{1-oD!MG*81~vo&qVJ0G|+7Ak7WLe*YPE+>Fg+ z2PtGM3GxeOaCmkj4a7`sf6Bcn{ z31#=-a~FU@=AJH&As)w*6Bg({Xg9o($YUna+?^`sfJstrzQ{~c2i^PFK`#oJ8LnI_w4?bMRV#vdG!RAnEul4_H60)Wtp|6D%l?1cT z{aqd3U@FBHH)5Jl2VH-D+pUw{6!ZdU^XJ1bV~>+|Es zAJZTl*Y2by!gbwDbe>bAsGHYHog$*4c>H`6*E{?Wh*34M*tBC^*Ym$i&Fp%8f{?Yp zzUMI|yvVFF@8}_P4x>4{Sxw(m+I!hlBkcP&{l3@oYI?u&zJh4$QP0=c*Oz^rT|~tC zm};QxRvho^?W;&Mi|%zZB#A-%@B8y}%;+3ClnIZaOmsELasK`LDL^r&h(QzzCJd`g zVMz-0a28Z{5-aO4`@C+C)y?S%gp6rolqIL_Roa=)a3&=5`TL)$BJKinS9VKgy1%lf z8QgW43gmkp@7skc_O*6)rs`}NU7k_RPU$q}eO*MNEI5WO_eh?GYFZhU+m6#InV1O- zsd5Nswnj#HD6rO==b5zk4zA9%1wu?rfPxvhHrv#$>Z%SG6J#F7acFpT5feHI3Ta_c z=AD(QUX@&m3IG5A07*qoM6N<$f@G)=VgLXD diff --git a/mods/.skyrealms/textures/caverealms_fire_vine.png b/mods/.skyrealms/textures/caverealms_fire_vine.png deleted file mode 100644 index 6f2c2a340275c0a8ef36a71f2ee86b719f0587fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)OubZ0(_EoG&7}B?oPsmk~gdvTih|Jk@ zTlVzz)q^hpnUrkywck?m>cbyf2h&O$llL1odsoRgis<6gbLv|5+{3^88IFpAb*;E6 zx$nbG;<+rhzk2}is8~ks&-1<=I-9_iY=B$)WsBV;DVqjLYs~8!U-s4s0GQc}ed+ccof8kP1O%)4m0tP! sgSxYk3PEn0AGN7l{Z;Gi78U^R0a(8QPen#N9{>OV07*qoM6N<$fEVlpv diff --git a/mods/.skyrealms/textures/caverealms_glow_amethyst.png b/mods/.skyrealms/textures/caverealms_glow_amethyst.png deleted file mode 100644 index 7daa61bb33df8ecbc299fbd0d560e9b965f7ee97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!cYsfbtE+TSh+;~-T4AH{EC?f6 zy{y4#=3Kkog}Uw2Y&HidBml*uRdRu9@^qRj4JHD`Ct9vs;eVvfbOBHqkX-0^V13-l zi+>aYfX0fI1o;K;1%k66aO>7RFnIUw-S6MGVo$3ARZRADaSV}=WIf2~bl5=Pz=5gP z*nK@V+!gx#f4Y&d1J{e!e{UYOa51_1$#%X_$X5^1Q?}(cWgAyzNE<&(p7C6KMw;Zt zYi4`TF)h-KOSa>9V5)`Ctq5s8OT{-1yRSFf zoyK{*krRaq+j!!EYNn6+;4rkUcZy|=PmtB3P9&Ec)I$ztaD0e F0sz$Ig#rKo diff --git a/mods/.skyrealms/textures/caverealms_glow_amethyst_ore.png b/mods/.skyrealms/textures/caverealms_glow_amethyst_ore.png deleted file mode 100644 index 403d907bb198f28a74c6a28b2429e7b35cad14e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)RaI0|R#H}1Q&(41SXWh7S5{S6R9IhIUtn5aU|e8fTVP>b zVPafjVqRinUt?uoWoTq*Z)%7NS@-`SSFdX2{*V?d#fji+wGfSt7krR93jJyU% zg^4|mXP;^aFJr#%xs!LM#1qj@)5YR1<0@914Uvj6e|SrCTE|3rrV<{8gH!k~0!?M` MboFyt=akR{03)_CoB#j- diff --git a/mods/.skyrealms/textures/caverealms_glow_citrine.png b/mods/.skyrealms/textures/caverealms_glow_citrine.png deleted file mode 100644 index afc6eb3af0c3eb3135ed73618d2e18784f9488e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmVi6G0R`GrMh?P1DSlq^*^0*)937z6la4s1O8EMEnCH{sI4jzeMnNh>G}@ zhvwCOBwf;JZ82$PnvYG|WOjY9v#dHV12gxYd(OS*lJD>GUvP8Er6PjP5x7wL365<5 z0Md)LGw(ji&pLZqgE{72{ZnH-MzoS($2OpE0I&)kg3eJ4_VY4iDva!s zlV@~s#Xj8s(J)?YT)fJqDa)nl1ORerimY38%(+xQnaqVk6k%def;7D%CPJ)kKlEtj z&UOue%;Yzj4jlM(9(0Zv{yC0qU_D1=$|M5jf}Ec03K|Z7iOgELHtM$Jx8^k*+kjQ@ z(Cp0YZ1FMULdCMIf(HOFY*)70rvm1JB%Ke>dH_JJWxK!k`K#7FzK-0}ONEq41OTZS zBzu%H38Sj#cUAvPPEU44X02S?KR5&cbVs3|GKt^1P_k0=m}48rx>YC1Gx<%Xi*TVpt%8TEStL^?5t_+TZ z^u>a;8nahQe06+(Ros&q#GuI%)iH{ucBe97dpQ7#lJMNcP6 z0IYSP{sm4y0F1X)>rJ;OCY7ScrorU|z{DVbmWm67UJy=Xe*l&y1csSi l*(hx-ThyP+*q8r3l|(CKKV;80006UNkl$DyK7T%6#mXHkNap# z6G0jyHUY;D;)6`mxVR`{tJo-5leGUpH5#3oN9|w?hF#rNd7Gfp( zvmh;IUUpvxgTWHss_r7cua0~!)4RL-zDX%or;OU8$K}vhnmK<4z{Aj&yqzF&tA{&o zV-rJBq-g*vv7Owy2EfnEhGB?sq=F9s+y-v-jshT}im?X3wz~jsZup5@$8jh%cS&s` zask}aKLHToh-@|ScPJ>@t}X(Iq@GcA64yk|2Tkt zzYjpuw2HBow~v|TC~c)r1T{9_f-uGPCdbksV9K3)0HliC2SzrvnY{cZlf5hQ7Po^)diX@zxu0 zh!(QfO5>aAB=1=zkpxhlY%kYC0D8TSVT|k7RFnIUw-S6LPW7`UVN~U>or~hSCvCGzTf$H{t(F)9#ckIaJMA*JS!o1RX0zJJ zVXK+T0n1(15xzi^#Y=+xg7*T!SunVD>mC@qd-v}5@3paQ1wbWJJY5_^BqUi6ayqpb z2rwLcDObEhAxCKHkN^Eqq7GayUjI%Pe=Kk@dL-)h7b|;*El0D@uq*CrUzxc3y4dB@eJ;0--O;#yyKmvPjoUb)I+YjpZhbgG z_z>TgYTFy1_wcOskj%~wbzb4L^ZDY83meg=yiiY@>E diff --git a/mods/.skyrealms/textures/caverealms_glow_emerald_ore.png b/mods/.skyrealms/textures/caverealms_glow_emerald_ore.png deleted file mode 100644 index 9f601aa42146d779c18fc6b847d2dec31fdf5d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)eXk}z?Y-?|BZE$UDaja;4vUGv9d6K<}|Ns9ynt4zF005y$ zL_t&-87091Lc%Z%K+#wfn<(4Jvae`pd;e2f@ICQ3j@XuUeOs36b$7WFe6y}VZhfSb zg6W+H_hu$9n!x#7L8p_LnJOet?$Z0->McCI18B&Zky@RL&KMn+{aTS`y?3GKPUkCpCR8 zkk0pXaSW-r6?-<2?~nlx^99HD=i6?a{Oiwsnk8sDzjx)PNo(&ulWFlRrfqAOXHR0Eak7A<24>)2YQk zfZ^avx#ArPIYLu^{O^wvb>MpO`ggkcV}Xkyr?1y|1zc4Q)%bqrh%deG9j3+{O{rsl2dv>%$4c zhxoQs+ur!Rhi9#aWOjC_^9rY(&lhK0*x0sh<39)HT}o3v?l%6*o)pLysl=$Y3Ftls MPgg&ebxsLQ06DLYpa1{> diff --git a/mods/.skyrealms/textures/caverealms_glow_obsidian.png b/mods/.skyrealms/textures/caverealms_glow_obsidian.png deleted file mode 100644 index a157738249ff0635f2c7b2d6cefd04960552664f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUWt7)pRMcZMaA7j_X0i@u za*AaRDPxYP`JkpO1ytke>Eal|F*7+qAfI#~wX;z@Zc*lMo}eBQwXrae?g$Ge!o>K8}PbQ=;2}1~PcM`njxg HN@xNA<>4&= diff --git a/mods/.skyrealms/textures/caverealms_glow_obsidian2.png b/mods/.skyrealms/textures/caverealms_glow_obsidian2.png deleted file mode 100644 index 7d1dcf38ba2670f71b45a1693c597bc761859064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHVEbxddW?h_dcLT#w2fd7ry+x2L3>fpQnps2!|}|!HuGffg-F21O@K+ zXx$Q;vOzV|z07&udiITrHH;gKFF*hL?S%qs3?s+vihAw_=FN4%`nop`3hK>dN=bd? iVyya_xzRR=p}y#)=!%S<{wqL}89ZJ6T-G@yGywpvsX=o9 diff --git a/mods/.skyrealms/textures/caverealms_glow_obsidian_brick.png b/mods/.skyrealms/textures/caverealms_glow_obsidian_brick.png deleted file mode 100644 index a5c6db8208dca54f5bf0e916f9350ed3e748e193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2988 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 A?f?J) diff --git a/mods/.skyrealms/textures/caverealms_glow_obsidian_glass.png b/mods/.skyrealms/textures/caverealms_glow_obsidian_glass.png deleted file mode 100644 index afd0fa7ecb4d54c934ed99d6cdcb7c5058add603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2913 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 LNkvXXu0mjf84YKz diff --git a/mods/.skyrealms/textures/caverealms_glow_obsidian_shard.png b/mods/.skyrealms/textures/caverealms_glow_obsidian_shard.png deleted file mode 100644 index b49e6ce19806c70c1b8e7c7305a4b243bdd88646..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPV3%`J@^4jyi_W*?!db&78?(|9fZ$-NgZ+A;!|A4GZT;)t8Q1*y(75Hm<&7Wy z>aS1hFuibr@tVPpKkqo5e|)xHa+_!KT#4C*yB>Vrt^VYuO$j5z5e}R1w~ITifsSSH MboFyt=akR{0Lr9rz5oCK diff --git a/mods/.skyrealms/textures/caverealms_glow_ore.png b/mods/.skyrealms/textures/caverealms_glow_ore.png deleted file mode 100644 index 19179a9cf3256afef695d378d2a44084dd05bed3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}et=JitCyRrpSPF4k9PnN`T7L- z`Gy1rgaieK0#R^KXh?8aNN_j^g@lKOM1+JygoeaNN5#iPCje1wOd=4)#U{naB`3tE zB*bT=B*R{>N{rklP-vuxz+`M1N6u_|I);Ga_d^@&Zdufy4^ycN9 z8i`F($6qqME8Lj+a_!FfZ+`DPJpC(E(VsW(_zDd*8>Noxi)bo$Hgs_`T-~%lp*Uri jO7%Y;&r>}d)0fq&>=FC0qO~as=wJptuPE&1y>LbkuKqxd9p5 z)RlqkE4rGuJzXB8B;K$#zaJO1MpY3gbyQ0YD0SV!df2WH-7PuI4`g)C5z*Xf?jqi6p-Z;8yQSO-;{fYDD zC(KGc5_S8FmA%83quFQJ6?e6-Ox%54?DFY8ms`i~Xk5SDw{Y9WZ5&aZ$_sn9KAa$Y zh;K`^?TycSc-DGIW@m>wuW;J=d~wEwjcwaD{&Qg7r8MQ^ZsWh~Nr7yUN{m{YfbL`P MboFyt=akR{02UIFmjD0& diff --git a/mods/.skyrealms/textures/caverealms_glow_ruby_ore.png b/mods/.skyrealms/textures/caverealms_glow_ruby_ore.png deleted file mode 100644 index 31ecb63b8ae91edf1889ef9936b582e70608f681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)~T6581c-C}_|NsBB9)c18005y$ zL_t&-87091Lc%Z%K+#wfn<(4JGDUxAd;e2f@ICQ3j@XuUeOs36b$7WFe6y}VZhfSb zg6W+H_hu$9n!x#7L8p_LnJOet?$Z0%Kha(PTW0_BS@W-G@js8v|Md6%PucLVY|TIY zL;rP;{V&`6FJ||@u)Y6mkNr>B`>$ljKjSn1)As*MI`}Vd|G$Wn|J<(rt2z2F-IGV!X&* znyytnBvMI9iIr0j*3hFKD z>TT*8?HZb0nwmYDnthsD{aV^nv~{NH=+4m9ou#WcTTgGUp8f)T{YCl)iwz8x8W=7! zG+be5w9?3AgNeyT6VolGrrS*Ij@sEDvv)e~RJka0JJ2G=k|4ie28U-i(mfsKLUB*S<^s|Mz)+g7Ga&qK^9s!}5Q@{%#3YC*Rxsf51EMgQ3-?2WzZt zCg#3dQqOyiE4zK;1Rw2p3w#nwJQ_=Ov~SZ@?7y=>ZjH5EDf{%f(i|5S9M<^2_w<&> n&VPYY83t)N;t>bce>`J7yNi7@x2p&X&>0M#u6{1-oD!MS->P)^?p>>a03cSHEl`Ma zJP##5tSv$xekx4+Y+)EUGX@JnOvz7bi=|P&tTjrt7op@>Y2KA}cJ_IFLpkJReUrB% z#XGaa3S-exn!gzXX2z^*dfvwp37i^(coJA{y!ZQ8VJ4d0gbcw63X?pp3W3W+*qRA8 zJ@4bYwRj^}836vKVA&Dp*w02dV_Tf8*-c0QXm~yzr6*JvNZ&^*l%-wo1eeh8eCIk_ z-GqMHsVTK(od?VqFhl#k^9KPDGG=_ZxWMBdr_O}ik>WKkfOwD|lObS12&Yp(grjkW zp0y=00PGEi_-f7MVV0tQzH1fQ^XJ{IxOc2HS7q~TdD>6_Kr58IGaNXs9i@3c8{u=7 z;r+_ZqTUK6Z}`D~j5L|xRk-5R-$twaw07O)=1(z?m&?`Jyqn?w0kc@(^b diff --git a/mods/.skyrealms/textures/caverealms_hot_cobble.png b/mods/.skyrealms/textures/caverealms_hot_cobble.png deleted file mode 100644 index 2e873e845d6fd8c845faa44286a9905eccfb71c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)4_KtMo2K|w-7LPJACL_|bIMMX$RNJ&Xa zOG`^kOiWHrPESuyP!bYQP*7A_~T3T9LTU%UQTwN6vWfvE3K>&Fh8;l?zq9i1_ z${3FT007HLL_t&-83n|PqSkzY{2oe>lE*! zc@;Aw2x9lHzy>l6S7TmRHZxOI>FR01OjQp9)Q#l(O8KtGv2FT<^eiuNjt`4d-PL6Y znSh$D-mhi+8tg#yR~6vTtC`s-?RByHFe*UV)fY+9tg!s6>7h84E|w?)W>>ZLcHHlx Z=pXNMAwp|7a`pfK002ovPDHLkV1mVTmd5}9 diff --git a/mods/.skyrealms/textures/caverealms_icicle_down.png b/mods/.skyrealms/textures/caverealms_icicle_down.png deleted file mode 100644 index adcc340b1b4c2fcb3701e1982e70dab0254ce2bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJe}GSjE0C^FoY<8)_w>L2K;X7H z)CefVToU95Qu3?p$UPus=jq}YQgN&G^hGWP1rFzn(ZBxRpYzb5<-pz(e8R^02btw& zIS8pIwsJ76=G1c#ICPf3tohGrD~D93PGg6!%xU3_A0+1O2mqSI;OXk;vd$@?2>@x} BGw}cb diff --git a/mods/.skyrealms/textures/caverealms_icicle_up.png b/mods/.skyrealms/textures/caverealms_icicle_up.png deleted file mode 100644 index fcd5e2a217d6eb5de45915801b8ffacb80172116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJe}GSjE0C^FoY<8)_w>L2K;X7H z)CefVToU95Qu3?p$UPus?djqeQo*?PgrQJ_g22%Wtxx`?mlfM!LFz!;LT)yR%mX3?+|w|Gv)vQ diff --git a/mods/.skyrealms/textures/caverealms_lichen.png b/mods/.skyrealms/textures/caverealms_lichen.png deleted file mode 100644 index f38fe7673a44a635c4ba86c6d5d121d829e9f0d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iG%P)G zK~y-)JeHcN;lpTQ3)w?X@5x*itV5{A5c#R(uUgy2aeB%$loeQ=Kx$`A6{S=Y3WoIi^_cGhX9gddwEg=0Q?Z34yP?_sg14l zcHNX)IT!nV>sJqF)3wsn#roC?0KoMO{~taAN4TCLgn$BooHK^b8>Qu@5Mr~eP0)5S zmx`pZT9Xt~5Vrf)r<4-04{$vrh6E~W(@8}?6eDvhrS$u#v3_!T>9_Gp`F@J|*Q5P5 zAKYEQSUp?YYQ7|*Tl>4mC-d0?IcKQ8^}jTe>fM}?0X!^(cqxYTBN2T>Qe1F7pI2J` zy?f{2M%|R3nL<4#6}`z`Up$;02n7HsW(X1}Dua`SBLG*lQEw|PFBg?T-};+<-+mA{ zc12~*XrrQ%a9C%S+ElMYq|9tHnq^ z(6?C>MFDaB+9%l$A>We*AZ)1-Lqg6O>>{eMhYCS0L?V5RL~G22BOZ#=F!4 z$#DB3h)N&xlvK|aAluI(9U@W@J}=jQf|qGhibpeqtcqATxqM5ePj|LoZ;oGoUckis zfXP79%0lOqhs_15uZ)-vR8t$hq%LM@eeAM^_+^a=%bOBcw4|(TOIzKZvAQF3O=s5H zuIzQ)x$AoJ*7xRb=r7thp?K58lFgIKHczS8I-_R$?1r67diF1C$qxnkM4=?eFPMRm ziH$=*L`_}C*51=EF)1xQucWfBt+#){k~N#R{{5Hk#}*G%Tj%NG7$PBg_MkUklYs!k zg_(81(vF>mN0wT@ua}M4F~!7bORLzaD|6F7*zVEQb?x9fp>ZVrbhfl5N3Uv#s_M_A z8QE!Dr2A*7ZU1R&tj+w;|6yM6d~H+ihiug^rx%qOJ-bn|hmq^BweS4w@NLKQjxqmi l;!xlSW9a;#tomoNe*ZG_Icq$=iU3{0;OXk;vd$@?2>|2rrVRi9 diff --git a/mods/.skyrealms/textures/caverealms_moss.png b/mods/.skyrealms/textures/caverealms_moss.png deleted file mode 100644 index fd23ec3729ff27f0d70c012dd1094cde89eb1481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcmVil6-G*haHnM183}!F8d(ZgI)lf{%J#+v0=b!nHIdG=gtGXDH%JZ#K9&Yl_ zveS)j(^Q|+c&EqVpR2jxM6c{0ZSXNQuz*8bc_IqG~DWT zI5XVi73W&!P@I7DHJA`JVN*I%KLJ|;X?EYqfG@G-{(uW;kx^2RXCO({UhN1UywqMm zQ8!JaVBS&p$sl=!$da@bXIs3$wIjK}_0FZTvEVdks(pIc@|}Wktm;DB4oJ4qeFnlD z1Xc+YkVRS&(6j2xhek?I)wPk|i1bMmK{fGnux*sd6qE*!64u%UfB{IXPCQ?`z(%l0KapNv(#NgpE{ySc7{s)5#~wy1k5#s zBM!05!sa;BS3$5w-chTe6t0$7QJ!YoBeh~M)DenIBXuNcFu!U!75s2v5V{)UwR kg+34h%jsdUHdrVB3j{XPW~aKLKmY&$07*qoM6N<$f`BVu0{{R3 diff --git a/mods/.skyrealms/textures/caverealms_moss_side.png b/mods/.skyrealms/textures/caverealms_moss_side.png deleted file mode 100644 index a16d64ab188f7696b6fdadd0adc8ddec096c0d4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf)c~ImS0IfaX!)7}6-enT0!d*d z36Nq&1}PUdst<9T4#CL z=K0#?``H)x+ZP2m6bCw%1Ui-lIh6-HSA@7!hq=~-yVXXx)knHFM0vKv_;e=t^(KeT z%Gq>j&o-c&6iR~pf*BZ@*f<14)YNrs?LGYxlhV@jN-FExdixhFS+jZT-+$?TZ1F&~ z&7LlfAr-gIp18@>=)k~wVfDn=ZEtoj%vfQP;^W%;^uK+l`uztsau%;m9^U!bzwXSH z#)Y2N=b=S0Se7$J0WsVz%<|`|Py$$p8|4imDS|Z>z_f_CuP+P7 zxPGZ=21-SEx;TbNTsA$ok@0{7PqPE(p8sbwKV@a^Sn)h^eW33`r|jmv98*IyllU6K zZf_G8JSu+1Gtl5{%RWYZd9iZB-{&X)eNOpbx#_{XE z)7O>#35&R}p~5T~hDM;!ZBG}+5RLPt6F26uDDt?-AG@wta!boqYPvQn|^VXAo zMFGqX^JmX3X=4m7sNp=K*1O-YOz83+x7Ruo%T-So?zgOdosrNv?Tp02#!E*(-#+bb zvwv^Rmp9)J9Dlmui?`jYpMU%FBQGe-yB`N+*ZRC(`S{n{r=OWQeR_7^IiNZd=uHMs LS3j3^P6*Gh8fXFENeHBoIu_VYZ zn8D%MjWi&~)YHW=ghMv@&-nu!F83`ZE~^_{OK-Rkt9NW>VNdxKiFzaBf2k>V^v}^M7=|0UE&I>FVdQ&MBb@0M}P88UO$Q diff --git a/mods/.skyrealms/textures/caverealms_mushroom_sapling.png b/mods/.skyrealms/textures/caverealms_mushroom_sapling.png deleted file mode 100644 index 262c69009e63723494ba3f8c83d55a7ac2869b18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3700 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 IM6N<$f~E#ME&u=k diff --git a/mods/.skyrealms/textures/caverealms_mushroom_stem.png b/mods/.skyrealms/textures/caverealms_mushroom_stem.png deleted file mode 100644 index d329ef1297fc592b28633f29ee07a23e9fd6f438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmZvYUnoOS0LB;Aq!#6YB+8H%YbE7@2ijs`hDDQ_J$P3nDW#=MYH^)=?lBL<6N>Vu zm69eewtMfnXWO~=o@;yYqCCihge2Fy`hDM5-`n@C`F*|ivYIlB#bWpNxkt>b_)}@I z=`F40qh=)h0|5_7ZDdniF3r&tpede8fJ&xADhX6VROTs$YMN8iKox;1neeK-sS=>c zye2~pLyaIU!|Niai$E8lE(tp3bqsYJ*A;<@n@mDX1`Ka83>ijD0nF?b#0X%7X9O}L zFoIYHF^UWs7z!|m$+khk1A+PMPCh5(b0|-R0zm}|3KR*0u|{(O^t!tP3r4#FWNmR?q3>>Q$dJ9DK`hbm`!u zDKT?#96eLvi_2D7h-JGzPi)!8l~*=D)3JMx!*wNX*7|i{e513OoCl-H$-BeFs?gzc ct(YkP4_qHp9fQkz*MDDIydIzXq-QGf3#}*O!2kdN diff --git a/mods/.skyrealms/textures/caverealms_mycena.png b/mods/.skyrealms/textures/caverealms_mycena.png deleted file mode 100644 index 50ea65ba42946f10ab7fd77bba8b9cad1703d9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}V1Q4ED?<~5_I786^%@Kd)ft)@ z7#0E%FT-*LhJ}0#bA=g}@iEL~VpwNjy4{UofjYwq28IPZ3@r?Dn{60oGMJt7GXaXv zX3*N{tbf*9af|K$|NotMnwA0$mo5qN3kGs=00wmvZd0H#V^0^y5Q)pl6P%cNm^BZa zR6KC>SigXPu=vyDXQ@f8+#H`hx;!{G7AwzIJkgY!-%XFVm-gTfY3;%9Y<% zul}}n?YH&ozi-&^ebc7zTef`Pw(a|l9p88D`muZWkG*?;?BD<6;K3h<5C1%Jw|?Kb^ZVYt-wz)AdHC?p zEVB1&{OZCD+0vn#Bpz)L`WCJpaG)uaW7gCB3WX^-PeOIpm)$S$ zf3?TR=E1>}452OUE;Band*PY&wtbJ&6e$l=@nvkBDOwsuy{&QIjgI?y=4ah5`y}+P zQ#)Hk=gryzc9H0->%_iAtWDe~7i>0X?qiPbjvH69RBQL1ue&&3xarY5_bP+SHq6W4 Z$a_Rb|GdL^BMInu22WQ%mvv4FO#mwb+#>)0 diff --git a/mods/.skyrealms/textures/caverealms_salt_gem.png b/mods/.skyrealms/textures/caverealms_salt_gem.png deleted file mode 100644 index 0419e2efcbe0ada5a77023520d010340c995234a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!L4Z$)Yhe84nE(Gv4*ds$#}*dP zBO+cG6}_pfd{bThwx#85Tib`}(?2a;`f2&{ulx3WJA7C*a^69pUe=NzKad#=OggFQ zbAfcOr;B4q#jV)0fqaJyc$hCZwOd=8?);y-aHhknPl=lTVV8d8{+n=KcFrxuQf6-J zjK;T3s~be^H!zBb*{GzXyk%u;k`&yt;9;uKNz2zO?(-Pha&qjQyZq1+o>>|WS{^PP luTNhzJjM`kv0wiSuievyZ00_zPuqiB;OXk;vd$@?2>_;ID{$v_`2Ui@_K+^6&B zKV7)+>Bf!E7cP8z`t-;B`#&B&%<8!H2xz!aNswQ#le3Gfo4bdnm$y$^dPZhecFymQ zDds@gX`U{QArg|T2RWS%8}Kk33{ASeMcbP(YTbYPDUu9~K&Lv03Nko^y0Cn3clZ~= zczL?iFCmq(w3^mc^$LX{sY|6Ax!#=$4pk01WK%ZRy~QnT;qKMDgG^tm6xDpYI`^l^ zqOQQ=y7TX9e=Lk#vwHo%y>iB9)1M@)%`Uw!e|Yn;dFrpHOZ6n#Iyzp6S5i z-#2@&^`3klxpn*Q*iDp>Xh!<*xm{hq{!v$A^ler^0noPX2(YeQJfRB52O;U6-+Km+v=G)$MTQK#}v>jsD>4oA>U13c@kxoqL}Zz?(OJ zL+@26Do04EIkbxc&3*ss{uj4zee&ZE4<0^xobEsW^zAPXA0Lm~+qeJdwY3reP)@oi zK~xDXPfp(*4x2}vKL2BG?<3>%?Bd0X-wWX5*1e)h69hVGf&g0qFYDRsKS|{5)y3iX zKeD_!|4T)vX+|(|fQz{yQ$_`#pfuH|Pku8WRru`bui6{8uB;HrtIm;95tnWV6eO4b z{+F46m4sLsRU8p!hsdrl!fUbj*q|nHUfdh=dR+#zgH>nUz^? ztV|J$qA%i>m4HAMKtf!MEQm8QL-0Bcif!&0tN+5i9m07*qoM6N<$g6fMX`2YX_ diff --git a/mods/.skyrealms/textures/caverealms_thin_ice.png b/mods/.skyrealms/textures/caverealms_thin_ice.png deleted file mode 100644 index b16036d9f81eef29b248be25e39a2c3fb39c868b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)y2jhcm!MXENX6;v)5a8Vc6MX8V0NAB;0au?&w zH#28)=Am(UnXPU6w7R{`mdFD6gKt);d`)j|vZ-yKXIEFbZ-Ko;uZXRYPh@NG^MNys zt~Lg;{Tx7-)eR9X$VYkicSE>@9)_FJ0zj! zdB+~U&@}h*#S}}>VwFBUWgjqH8&nZ^jE+d?V|M`f?e^J&g?D|O`Fx-Qt3JR8mScSo zHYsdYVjy~v?`K^A0q@puxN%8tNJw&DUcOuS1K4!Y5iAp8bL^$T7vdy2^r0hglc0mo z#>GExeHtR$NPCUNKC;m}fU zt+pS)I?;9vRv1#zzq{MHu+W#w6uEeO%!=qD?+f`TX2Z;7Rz5n^cIx%RObmLX(M|(v zR4N;b0hVZ^$h$zF1>!{pSOR1zhqpHzZhJ7$nx_Uvk1u;X8c?%dUyn*I(yzb;6+@R` zYQd<%mpx%rK*uHqA(ef!OVDOL^k7{-tEA@4a-Q#LPYHf)ku4Vky{(u%x=p>(lSEXe4h5q(fJC`|~VK9o=ylo^T< zMkGNAWtR6qqbrsrWm6K=>E@Q!FZUlfh6WvYIPZDh^Zw5B;fViPCEo6mmhf3*rZ@@y z1!@X*w8*}H$jjBvs9!61u35F<#mF2jLMwBk%y+q%7iZ)yVqVre6+RAjfJ)gi+GFJu z1vs-$=CLTv)j&7Vutt)#*P-?x-^)rn;NwAUs3)8Zp=YBN+^ll9h}Sy;rStt@ndsi= zXd@1#crJQnDqG3OZUt`=R`4Rym7kd#EVY=g#e6OF2mCE!qCkn@TsY$eK};X?V<_DQ z)90;QsQcpFn9L4Bm*FFM<{~8@v@4+~6fwF-A(_7ll?-Gkm?*YJeZAR9+GkFz=4-k) zQ@L{Hio+z2i?J9=BQVy*+tLrFx??yW2HlZ-+U3SXzFca~R>wiPhHp7u7~0lb0oRp` zK2b7xA;bn4$#O$q6Am}GU~J#SaH#?wB}2_N%t!q&SB1m-1nAPzpDDnQ%vht34KRIJ zjxjHQxwbg^YFzl!nj|%OtHp3FobL}*@H7cyMI}ksMmm z-O(M|ir}4w-YfplodqAYP@!U`GYQ7`!>uTIrG?&HMlXkAx}?E$H=f2w2TFWhIqvO@ zxE(LxSsKPl72HcjR~wAEX{TMHV!0Qmy&VxttiRk$lS~JSPO|_2002ovPDHLkV1hsR BPGA54 diff --git a/mods/.skyrealms/textures/fire_basic_flame_animated.png b/mods/.skyrealms/textures/fire_basic_flame_animated.png deleted file mode 100644 index 3b312e53316dfd96b90148fb00f2e3cc48457c14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmV;x1V8(UP)3uP4yZWao09}0FB2znb8dln9R84P|I2Y(w2g%|;c5d)$r z6r(`^rzHTVCIF};4XQT*uOkSxD-O3@0K88Q!Z{bjHw?x-8^<*e$WQ>uZ~)6Q0n3&O z%#|L{J`K>E3(%?w(NzG_KMB%GAk;z+*hUlEQXJe<4c<)--iILG$2;Ip7U4`3;ZGFd zei-9l738uj<$WCGgc;^z6X#MG=Ve9bq9f>s2!BY8>pU z81HE!@M9bBX(#Y{An>&{@mwPDiY4)#EAgZ{@?IYDVJh-;AM%_p^2|f?TqpBj8}qs~ z^kg0MXdCo#BlUeT^@c3q(Sz^H1@|s_irKhwLAC7MEH<7_@yiO zt3mj*Ir(fI`Ee)tj4%1GQ2EEKdlq7}TSPBtX zk$@NkSz2UD59KqODPodF6DLk#>;bm1$sfCm`&LA^V=wla^X2*O{2bTy<62$=pbjNE zfJUIR8+b)U8?VC~facxiSCR83^fXZ4zWW}${Sk780e*0q^&Wu9uld*a(+GSA#&4Xg z4gAAb{5|OBL*_sEF-CIscfc}tTbf{V&-M%dyMw@&QwM+8k8VWQ3t7|II56|;_6IxM zk9?Z`^U+2CFZ_IBg)eR`424S{PxE~O$1?o4^?vVa(V#sg^APwfbT8iDb@=V$cSgzg zlb*~47+aIP@`!#>}LUwC*Fk4eBX=$9ro=Z&^lEIAvLJtW}~RXpVRb7hZ6w2;lZ z6_2TH`wm3b!=_T%BjH%KB0Lt-L&ef*fDD{0LujkNchz9fPLs(eauAAFd+Z}TQe!Pk zE65%>(WFwS)o^vb3UpkFs`5TG&vxD-;JY*pwjAbYf^FFi;M1m6*