From 8a181661a503103863420b835bf63db9ed13cd7c Mon Sep 17 00:00:00 2001 From: debiankaios Date: Fri, 29 Apr 2022 12:24:29 +0200 Subject: [PATCH 01/39] Add warped and crimson --- mods/ITEMS/mcl_mushroom/init.lua | 672 ++++++++++++++++++ .../mcl_mushroom/locale/mcl_mushrooms.de.tr | 14 + mods/ITEMS/mcl_mushroom/locale/template.txt | 14 + mods/ITEMS/mcl_mushroom/mod.conf | 2 + .../mcl_mushroom/textures/crimson_hyphae.png | Bin 0 -> 318 bytes .../textures/crimson_hyphae_side.png | Bin 0 -> 318 bytes .../textures/crimson_hyphae_wood.png | Bin 0 -> 289 bytes .../textures/crimson_nylium_side.png | Bin 0 -> 218 bytes .../textures/farming_crimson_fungus.png | Bin 0 -> 765 bytes .../textures/farming_warped_fungus.png | Bin 0 -> 172 bytes .../textures/nether_wart_block.png | Bin 0 -> 565 bytes .../mcl_mushroom/textures/shroomlight.png | Bin 0 -> 385 bytes .../mcl_mushroom/textures/warped_hyphae.png | Bin 0 -> 301 bytes .../textures/warped_hyphae_side.png | Bin 0 -> 322 bytes .../textures/warped_hyphae_wood.png | Bin 0 -> 290 bytes .../textures/warped_nylium_side.png | Bin 0 -> 223 bytes .../textures/warped_wart_block.png | Bin 0 -> 261 bytes 17 files changed, 702 insertions(+) create mode 100644 mods/ITEMS/mcl_mushroom/init.lua create mode 100644 mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr create mode 100644 mods/ITEMS/mcl_mushroom/locale/template.txt create mode 100644 mods/ITEMS/mcl_mushroom/mod.conf create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_wood.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/farming_crimson_fungus.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/farming_warped_fungus.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/nether_wart_block.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/shroomlight.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_wart_block.png diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua new file mode 100644 index 000000000..b970cf85d --- /dev/null +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -0,0 +1,672 @@ +local S = minetest.get_translator("mcl_mushroom") + +-- Warped fungus +-- Crimson fungus +--Functions and Biomes + +-- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german + +minetest.register_node("mcl_mushroom:warped_fungus", { + description = S("Warped Fungus Mushroom"), + drawtype = "plantlike", + tiles = { "farming_warped_fungus.png" }, + inventory_image = "farming_warped_fungus.png", + wield_image = "farming_warped_fungus.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, + + light_source = 1, + selection_box = { + type = "fixed", + fixed = { -3/16, -0.5, -3/16, 3/16, -2/16, 3/16 }, + }, + node_placement_prediction = "", + on_rightclick = function(pos, node, pointed_thing, player, itemstack) + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_warped_tree(pos) + end + end + end + end, + _mcl_blast_resistance = 0, + + stack_max = 64, +}) + +minetest.register_node("mcl_mushroom:warped_wart_block", { + description = S("Warped Wart Block"), + tiles = {"warped_wart_block.png"}, + groups = {handy=1,hoe=7,swordy=1, deco_block=1, }, + stack_max = 64, + _mcl_hardness = 2, +}) + +minetest.register_node("mcl_mushroom:shroomlight", { + description = S("Shroomlight"), + tiles = {"shroomlight.png"}, + groups = {handy=1,hoe=7,swordy=1, leafdecay=leafdecay_distance, leaves=1, deco_block=1, }, + stack_max = 64, + _mcl_hardness = 2, + light_source = 15 +}) + +minetest.register_node("mcl_mushroom:warped_hyphae", { + description = S("Warped Hyphae"), + tiles = {"warped_hyphae.png", + "warped_hyphae.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + }, + groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, +}) + +minetest.register_node("mcl_mushroom:warped_nylium", { + description = S("Warped Nylium"), + tiles = {"warped_wart_block.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, +}) + +minetest.register_node("mcl_mushroom:warped_checknode", { + description = S("Warped Checknode - only to check!"), + tiles = {"mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" +}) + +minetest.register_node("mcl_mushroom:warped_hyphae_wood", { + description = S("Warped Hyphae Wood"), + tiles = {"warped_hyphae_wood.png"}, + groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, +}) + +mcl_stairs.register_stair_and_slab_simple("Warped Wood", "mcl_mushroom:warped_hyphae_wood", "Warped Wood Stairs", "Warped Wood Slab", "Double Warped Wood Slab") + +minetest.register_craft({ + output = "mcl_mushroom:warped_hyphae_wood 4", + recipe = { + {"mcl_mushroom:warped_hyphae"}, + } +}) + +minetest.register_craft({ + output = "mcl_mushroom:warped_nyliumd 2", + recipe = { + {"mcl_mushroom:warped_wart_block"}, + {"mcl_nether:netherrack"}, + } +}) + +minetest.register_abm({ + label = "mcl_mushroom:warped_fungus", + nodenames = {"mcl_mushroom:warped_fungus"}, + interval = 11, + chance = 128, + action = function(pos) + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_warped_tree(pos) + end + end + end +}) + +minetest.register_abm({ + label = "mcl_mushroom:warped_checknode", + nodenames = {"mcl_mushroom:warped_checknode"}, + interval = 0.1, + chance = 1, + action = function(pos) + local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) + if nodepos.name == "air" then + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:warped_nylium" }) + local randomg = math.random(1, 40) + if randomg == 2 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + elseif randomg == 7 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_warped_tree(pos1) + end + else + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + end + end +}) + +mobs:spawn({ + name = "mobs_mc:enderman", + nodes = "mcl_mushroom:warped_nylium", + max_light = 15, + min_light = 0, + chance = 300, + active_object_count = 20, + max_height = -28940, +}) + + + +minetest.register_node("mcl_mushroom:crimson_fungus", { + description = S("Crimson Fungus Mushroom"), + drawtype = "plantlike", + tiles = { "farming_crimson_fungus.png" }, + inventory_image = "farming_crimson_fungus.png", + wield_image = "farming_crimson_fungus.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, + + light_source = 1, + selection_box = { + type = "fixed", + fixed = { -3/16, -0.5, -3/16, 3/16, -2/16, 3/16 }, + }, + node_placement_prediction = "", + on_rightclick = function(pos, node, pointed_thing, player) + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_crimson_tree(pos) + end + end + end + end, + _mcl_blast_resistance = 0, + + stack_max = 64, +}) + +minetest.register_node("mcl_mushroom:crimson_hyphae", { + description = S("Crimson Hyphae"), + tiles = {"crimson_hyphae.png", + "crimson_hyphae.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + }, + groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, +}) + +minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { + description = S("Crimson Hyphae Wood"), + tiles = {"crimson_hyphae_wood.png"}, + groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, +}) + +minetest.register_node("mcl_mushroom:crimson_nylium", { + description = S("Crimson Nylium"), + tiles = {"nether_wart_block.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, +}) + +minetest.register_node("mcl_mushroom:crimson_checknode", { + description = S("Crimson Checknode - only to check!"), + tiles = {"mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" +}) + +minetest.register_craft({ + output = "mcl_mushroom:crimson_hyphae_wood 4", + recipe = { + {"mcl_mushroom:crimson_hyphae"}, + } +}) + +minetest.register_craft({ + output = "mcl_mushroom:crimson_nyliumd 2", + recipe = { + {"mcl_nether:nether_wart"}, + {"mcl_nether:netherrack"}, + } +}) + +mcl_stairs.register_stair_and_slab_simple("Crimson Wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Wood Stairs", "Crimson Wood Slab", "Double Crimson Wood Slab") + +minetest.register_abm({ + label = "mcl_mushroom:crimson_fungus", + nodenames = {"mcl_mushroom:crimson_fungus"}, + interval = 11, + chance = 128, + action = function(pos) + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_crimson_tree(pos) + end + end + end +}) + +minetest.register_abm({ + label = "mcl_mushroom:crimson_checknode", + nodenames = {"mcl_mushroom:crimson_checknode"}, + interval = 0.1, + chance = 1, + action = function(pos) + local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) + if nodepos.name == "air" then + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:crimson_nylium" }) + local randomg = math.random(1, 40) + if randomg == 2 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) + elseif randomg == 7 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_crimson_tree(pos1) + end + else + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + end + end +}) + +function generate_warped_tree(pos) + -- Baumgenerator + -- Warzen + -- erste Etage + -- 2+ + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + --1+ + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + --0 + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + --1- + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + --2- + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + + + -- zweite etage + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) + --1+ + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + --0 + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + --1- + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + --2- + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + + + -- dritte etage + --1+ + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + --0 + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + --1- + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + + -- vierte Etage + --1+ + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) + --0 + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + --1- + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Holz + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) +end + + + + +function generate_crimson_tree(pos) + -- Baumgenerator + -- Warzen + -- erste Etage + -- 2+ + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + --1+ + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + --0 + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + --1- + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + --2- + minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + + + -- zweite etage + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) + --1+ + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + --0 + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + --1- + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + --2- + minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + + + -- dritte etage + --1+ + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + --0 + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + --1- + minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + + -- vierte Etage + --1+ + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) + --0 + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + --1- + minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + + -- Pilzlich + + + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + + local randomgenerate = math.random(1, 2) + if randomgenerate == 2 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Holz + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) +end + + +--[[ +FIXME: Biomes are to rare +FIXME: Decoration don't do generate +-- biomes in test! +minetest.register_biome({ + name = "WarpedForest", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_mushroom:warped_nylium", + node_water = "air", + node_river_water = "air", + y_min = -29065, + y_max = -28940, + heat_point = 100, + humidity_point = 0, + _mcl_biome_type = "hot", + _mcl_palette_index = 19, +}) +minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_mushroom:warped_nylium"}, + sidelen = 16, + noise_params = { + offset = 0.01, + scale = 0.0022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"WarpedForest"}, + y_min = -29065, + y_max = -28940 + 80, + decoration = "mcl_mushroom:warped_fungus", +}) +]] +minetest.register_ore({ + ore_type = "sheet", + ore = "mcl_mushroom:warped_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 14 * 14 * 14, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.1, + spread = {x = 8, y = 8, z = 8}, + seed = 4996, + octaves = 1, + persist = 0.0 + }, +}) + +minetest.register_ore({ + ore_type = "sheet", + ore = "mcl_mushroom:crimson_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 10 * 10 * 10, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 1, + scale = 0.5, + spread = {x = 12, y = 12, z = 12}, + seed = 12948, + octaves = 1, + persist = 0.0 + }, +}) + + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_mushroom:warped_nylium"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"Nether"}, + y_max = -28940, + y_min = -29065, + decoration = "mcl_mushroom:warped_fungus", +}) + + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_mushroom:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"Nether"}, + y_max = -28940, + y_min = -29065, + decoration = "mcl_mushroom:crimson_fungus", +}) diff --git a/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr b/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr new file mode 100644 index 000000000..44bc656ec --- /dev/null +++ b/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr @@ -0,0 +1,14 @@ +# textdomain: mcl_mushroom + +Warped Fungus Mushroom=Wirrpilz +Warped Wart Block=Wirrwarzenblock +Shroomlight=Pilzlicht +Warped Hyphae=Wirrhyphe +Warped Nylium=Wirr-Nezel +Warped Checknode - only to check!=Wirr Checkblock - Nur zum checken! +Warped Hyphae Wood= Wirrhyphen Holz +Crimson Fungus Mushroom=Karmesinpilz +Crimson Hyphae=Karmesinhyphe +Crimson Hyphae Wood=Karmesinhyphenholz +Crimson Nylium=Karmesin-Nezel +Crimson Checknode - only to check!=Karmesin Checkblock - Nur zum checken! diff --git a/mods/ITEMS/mcl_mushroom/locale/template.txt b/mods/ITEMS/mcl_mushroom/locale/template.txt new file mode 100644 index 000000000..c05d8922c --- /dev/null +++ b/mods/ITEMS/mcl_mushroom/locale/template.txt @@ -0,0 +1,14 @@ +# textdomain: mcl_mushroom + +Warped Fungus Mushroom= +Warped Wart Block= +Shroomlight= +Warped Hyphae= +Warped Nylium= +Warped Checknode - only to check!= +Warped Hyphae Wood= +Crimson Fungus Mushroom= +Crimson Hyphae= +Crimson Hyphae Wood= +Crimson Nylium= +Crimson Checknode - only to check!= diff --git a/mods/ITEMS/mcl_mushroom/mod.conf b/mods/ITEMS/mcl_mushroom/mod.conf new file mode 100644 index 000000000..46f65179c --- /dev/null +++ b/mods/ITEMS/mcl_mushroom/mod.conf @@ -0,0 +1,2 @@ +depends = mcl_stairs, mobs_mc +name = mcl_mushroom diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png b/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png new file mode 100644 index 0000000000000000000000000000000000000000..583aa964786f49db13477b203bf9bce57fdaf388 GIT binary patch literal 318 zcmV-E0m1%>P)Aj-Q8*kTm)R3=f!re}>?d9g)tOzD3Us=^`HA#W(M!e55sxZ{ zHVkd}h+yW3J0;8<(M!e9hF&UG2>VRf;7(}^y@46e9QR!>6*6lCpXlOkjoaHztOOmjriS&#Ws*P&fGnX$M2;=c+>0yuH7g5 zl7+E--F^bS)EDUP)Aj-Q8*kTm)R3=f!re}>?d9g)tOzD3Us=^`HA#W(M!e55sxZ{ zHVkd}h+yW3J0;8<(M!e9hF&UG2>VRf;7(}^y@46e9QR!>6*6lCpXlOkjoaHztOOmjriS&#Ws*P&fGnX$M2;=c+>0yuH7g5 zl7+E--F^bS)EDUS43Z!C~n<5NWZ|3aP+tD8zgdH%zHzqZ9>|6a+PzgIHrPguDF){ z75~mlNRV@`&?d)JP(nhB`DtqNx^FR~#SHNZb=4vb+oXg9DIsC&M{NCw5)yR3b_3RK zcyjv9=W93I60T)Oi}|I~p0Sh`GtRkwOVEU_%)?66dSQKhg97zHG8eI0Ed!gkHNtb| zTfEs@9xdj(!7qJwguE&v@#uQ9xB2GSwJ{H7;`!qP;oRGDzNuKL00000NkvXXu0mjfhWUc( literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..36984d69effd04929b03929dacff2bee93ca5247 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3q4&NLo9mlPB_SWM1hCpxuc*> ztkWev)eB6y0c^TU%k*yrX>X^&iR5t0_DW?tBPOoS6)rLJEOQDqamPoD(z{g;X6D zv3N{ju`_x0y} zITa!vGk53V^>*&R_U&{>wGU?GpUJbYUXGjjs=ad6f2-NQ54&AWSam*n?rw4MrGj5L znM4w%FtAFfIxxC%1~desa@TIX_U(7=lcTH}2UdJv`xR(g(B2n2)8B1)W*7f;o-nTr zUwh0CCXokayG0i;6f^o=R&ii_#&qXx8I#C@`;4qVJea>IM>O1P;rQ^8ZN@L@l5F1w zrkuAGHe3M>{a<1WuHIP~w*1$w#q;&|?r(Rw-xAWh@4?0M)9>APX3=o?m-dCVzi!`` ze`5LMFn;*U>+4si+U==}ob~1N1_O-ffCSI0%e&3@8r@&F&TDd=oR}N-5On#wXWzT2 zKR^ClX7ciRVj?IqVS$Sj!y%??vR2@g*OB*nq=TV*-u;IK1^UZ5KJ2;ny7YdI*}JDA ljPuT$_}0!^w(oA%<6-NVl_?v+v*Jvf zhr`GJ1xx?`KRi`HYC>VE86UI9!6OZCjg0>HXJ!a2myottw(w*9?jD|>Y&^W;3=FO+ WbyseRs4D`kXYh3Ob6Mw<&;$UW{6pdZ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/nether_wart_block.png b/mods/ITEMS/mcl_mushroom/textures/nether_wart_block.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d20b8d9def1b0652fa82b8e408230daaad6518 GIT binary patch literal 565 zcmV-50?Pe~P)Vl&|0005}NklvZ_zECO)P@L6&|0Me#Binvcq5)7;eM;HM!&0|A%$gHj{ zyi+<247Va`9TkcV_oV{$rKxIs*8{FGY70v1?jzto=%tp`n65AUA#U>_ZkMh~J2dPS zY#$9uqgv9vpy~m);nrioipwui>-U9S|F3*Zgn<75Vu#pVTts8x00000NkvXXu0mjf DY6u5} literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/shroomlight.png b/mods/ITEMS/mcl_mushroom/textures/shroomlight.png new file mode 100644 index 0000000000000000000000000000000000000000..9e18b21c7bd26620b917ec6b21f6d7e0664838cf GIT binary patch literal 385 zcmV-{0e=38P)OOAm zK5p$gZ0tI0%-7Gu+Mb7XUC*c8pYXfmUFOUFE06QP6ujeB=>#0$3YAnMuGmEovfI(@ zcKjJG=j(pK#|%NHk`NLm?!Gy>7kA#mw%YRVWt+PsX?2*}GQ08yh-LyN+vTt5VOAlg@t fQgu$9PbcsJ3%4c0<~RIw00000NkvXXu0mjfZ-1gU literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png b/mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png new file mode 100644 index 0000000000000000000000000000000000000000..6a8be80a7f083457b5af7eecb55edbab4b46e62c GIT binary patch literal 301 zcmV+|0n+}7P)DGU`73sD$4v1NjxjEt>65Y~}28?8GXKCM#i; z#_REfywfM|(zZ$?X|fXaGVfr#3um>hFx~~9M3a?BtkS5L8EM}k?K>1hi(+VzPh&VG z7_YYVQ-LI?wiVU3URFdDLyLNuzXZm+;AFX1sFxY}G{Shd??FC|fk4WTWs`t*=m8%w zOWJo)W*I+~aIAnnmdi7ea7RG%5$jP5Xvv-;M+=WUTY@6Iq>9!^<`HqX+A}`~c`^Axt&^+*k-5)s^*g z-9kQkK(RWqFBYPgTgY$}Gn$P^5aDb(!A>2SM#T!!Jrg_DtiwUNO=II1pWyiR+F`BT zI#Sr=XZtG&iP#(w-p6>+b>RH6EvzX_tj Uq#1GI=Q?-j^s&zLK$kl1pv<3)yjL%S{*_6_5C zJmTMZC>b*B8?;HgE(j$f)^sXg}Q2yhHVl`hJ=#wnJ0Ya387@@zUezO zeRt>do6noRyCjU~fmqW+r#)jSu_g@r_A5aXx-t(dRqKWI@eK;p1Ib*(YPAe(-qr}u znQ!rCZ+XO;t_E-V>PM&i-+W^eQN3s|G)1J1E0G(_iZS?CR(FSu6TJZ_(BZLT3) oX#WHDfyd`&V6`z1X5#td3$9o8AS}2J{Qv*}07*qoM6N<$f?vUXuK)l5 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png b/mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..6d974665f2835677ebbbb6af0a512af539af1567 GIT binary patch literal 223 zcmV<503iQ~P)%9e2=sEDw;&r7j?;Hx(o~c z*ygqDU<;_83N3907naVm86?c1wxKYhCzHp_1@I0EcVUl=-)u6%M{#_|vNTr(Pk&E7 zjsaYFK^~ib@+~{?DB5M(JuNbxZr=L`;yZQ#K52Ah1sD+HUiYIP>*5CaTA;H100000 LNkvXXu0mjfkiKou literal 0 HcmV?d00001 From 49cb60f2e5a4ab2ae1dc5724cc49c4fa41bf8862 Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 29 Apr 2022 12:26:49 +0200 Subject: [PATCH 02/39] comment out ore generation for now --- mods/ITEMS/mcl_mushroom/init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index b970cf85d..40d293b49 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -605,6 +605,7 @@ minetest.register_decoration({ decoration = "mcl_mushroom:warped_fungus", }) ]] +--[[ No Ore gen for now minetest.register_ore({ ore_type = "sheet", ore = "mcl_mushroom:warped_checknode", @@ -646,7 +647,7 @@ minetest.register_ore({ persist = 0.0 }, }) - +--]] minetest.register_decoration({ deco_type = "simple", From c1ee0228f00a205d03ac4379b99dc3cb2568ab0f Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Tue, 13 Apr 2021 08:49:57 +0200 Subject: [PATCH 03/39] Fix light_source warning in mcl_mushroom --- mods/ITEMS/mcl_mushroom/init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 40d293b49..b2281e271 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -53,7 +53,8 @@ minetest.register_node("mcl_mushroom:shroomlight", { groups = {handy=1,hoe=7,swordy=1, leafdecay=leafdecay_distance, leaves=1, deco_block=1, }, stack_max = 64, _mcl_hardness = 2, - light_source = 15 + -- this is 15 in Minecraft + light_source = 14, }) minetest.register_node("mcl_mushroom:warped_hyphae", { From 5b06af4fecd677c55f2da64a7169fcf6d340b968 Mon Sep 17 00:00:00 2001 From: debiankaios Date: Fri, 16 Jul 2021 14:54:36 +0000 Subject: [PATCH 04/39] Bufixes Fixed Bug that trees generating in other blocks. The slab and stairbug was fixed too. --- mods/ITEMS/mcl_mushroom/init.lua | 378 ++++++++++++------------------- 1 file changed, 150 insertions(+), 228 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index b2281e271..d9efea1dd 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -74,7 +74,7 @@ minetest.register_node("mcl_mushroom:warped_hyphae", { minetest.register_node("mcl_mushroom:warped_nylium", { description = S("Warped Nylium"), - tiles = {"warped_wart_block.png", + tiles = {"warped_nylium.png", "mcl_nether_netherrack.png", "mcl_nether_netherrack.png^warped_nylium_side.png", "mcl_nether_netherrack.png^warped_nylium_side.png", @@ -118,7 +118,7 @@ minetest.register_node("mcl_mushroom:warped_hyphae_wood", { _mcl_hardness = 2, }) -mcl_stairs.register_stair_and_slab_simple("Warped Wood", "mcl_mushroom:warped_hyphae_wood", "Warped Wood Stairs", "Warped Wood Slab", "Double Warped Wood Slab") +mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", "Warped Wood Stairs", "Warped Wood Slab", "Double Warped Wood Slab") minetest.register_craft({ output = "mcl_mushroom:warped_hyphae_wood 4", @@ -243,7 +243,7 @@ minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { minetest.register_node("mcl_mushroom:crimson_nylium", { description = S("Crimson Nylium"), - tiles = {"nether_wart_block.png", + tiles = {"crimson_nylium.png", "mcl_nether_netherrack.png", "mcl_nether_netherrack.png^crimson_nylium_side.png", "mcl_nether_netherrack.png^crimson_nylium_side.png", @@ -293,7 +293,7 @@ minetest.register_craft({ } }) -mcl_stairs.register_stair_and_slab_simple("Crimson Wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Wood Stairs", "Crimson Wood Slab", "Double Crimson Wood Slab") +mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Wood Stairs", "Crimson Wood Slab", "Double Crimson Wood Slab") minetest.register_abm({ label = "mcl_mushroom:crimson_fungus", @@ -333,246 +333,168 @@ minetest.register_abm({ }) function generate_warped_tree(pos) + breakgrow = false + breakgrow2 = false -- Baumgenerator - -- Warzen - -- erste Etage - -- 2+ - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - --1+ - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - --0 - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - --1- - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - --2- - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- fünfte Etage + if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end + -- Holz + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow = true end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow2 = true end + print(tostring(breakgrow)) + if breakgrow == false then + -- Warzen + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + end + end + end + + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - -- zweite etage - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_mushroom:warped_wart_block" }) - --1+ - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - --0 - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - --1- - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - --2- - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_mushroom:warped_wart_block" }) - - - -- dritte etage - --1+ - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - --0 - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - --1- - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - - -- vierte Etage - --1+ - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z + 1}, { name = "mcl_mushroom:warped_wart_block" }) - --0 - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - --1- - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z - 1}, { name = "mcl_mushroom:warped_wart_block" }) - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:warped_fungus" }) end end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - end - -- Holz - minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) end - - - function generate_crimson_tree(pos) + breakgrow = false + breakgrow2 = false -- Baumgenerator - -- Warzen - -- erste Etage - -- 2+ - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - --1+ - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - --0 - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - --1- - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - --2- - minetest.set_node({x = pos.x + 2, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 3, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- fünfte Etage + if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end + -- Holz + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow = true end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow2 = true end + print(tostring(breakgrow)) + if breakgrow == false then + -- Warzen + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end + + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - -- zweite etage - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 2}, { name = "mcl_nether:nether_wart_block" }) - --1+ - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - --0 - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - --1- - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - --2- - minetest.set_node({x = pos.x + 2, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x + 1, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 2 , y = pos.y + 4, z = pos.z - 2}, { name = "mcl_nether:nether_wart_block" }) - - - -- dritte etage - --1+ - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - --0 - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - --1- - minetest.set_node({x = pos.x + 1, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 5, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - - -- vierte Etage - --1+ - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z + 1}, { name = "mcl_nether:nether_wart_block" }) - --0 - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - --1- - minetest.set_node({x = pos.x + 1, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x, y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - minetest.set_node({x = pos.x - 1 , y = pos.y + 6, z = pos.z - 1}, { name = "mcl_nether:nether_wart_block" }) - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - - -- Pilzlich - - - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - - local randomgenerate = math.random(1, 2) - if randomgenerate == 2 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" }) end end - -- Holz - minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 2, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 3, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) - minetest.set_node({x = pos.x, y = pos.y + 4, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) end --[[ FIXME: Biomes are to rare FIXME: Decoration don't do generate +WARNING: Outdatet, the biomes gernerate now different, with Ores -- biomes in test! minetest.register_biome({ name = "WarpedForest", @@ -671,4 +593,4 @@ minetest.register_decoration({ y_max = -28940, y_min = -29065, decoration = "mcl_mushroom:crimson_fungus", -}) +}) \ No newline at end of file From 324aa159a70e653bb44eedc6bbefe89c98fc6103 Mon Sep 17 00:00:00 2001 From: debiankaios Date: Fri, 16 Jul 2021 14:56:38 +0000 Subject: [PATCH 05/39] New Textures New Textures New Textures New Textures New Textures New Textures New Textures --- .../mcl_mushroom/textures/crimson_hyphae.png | Bin 318 -> 6257 bytes .../textures/crimson_hyphae_old.png | Bin 0 -> 318 bytes .../textures/crimson_hyphae_side.png | Bin 318 -> 525 bytes .../textures/crimson_hyphae_side_old.png | Bin 0 -> 318 bytes .../textures/crimson_hyphae_wood.png | Bin 289 -> 446 bytes .../mcl_mushroom/textures/crimson_nylium.png | Bin 0 -> 6202 bytes .../textures/crimson_nylium_old.png | Bin 0 -> 565 bytes .../textures/crimson_nylium_side.png | Bin 218 -> 324 bytes .../textures/crimson_nylium_side_old.png | Bin 0 -> 218 bytes .../mcl_mushroom/textures/shroomlight.png | Bin 385 -> 428 bytes .../mcl_mushroom/textures/shroomlight_old.png | Bin 0 -> 385 bytes .../mcl_mushroom/textures/warped_hyphae.png | Bin 301 -> 6259 bytes .../textures/warped_hyphae_old.png | Bin 0 -> 301 bytes .../textures/warped_hyphae_side.png | Bin 322 -> 479 bytes .../textures/warped_hyphae_side_old.png | Bin 0 -> 322 bytes .../textures/warped_hyphae_wood.png | Bin 290 -> 461 bytes .../textures/warped_hyphae_wood_2nd.png | Bin 0 -> 434 bytes .../mcl_mushroom/textures/warped_nylium.png | Bin 0 -> 426 bytes .../textures/warped_nylium_side.png | Bin 223 -> 402 bytes .../textures/warped_nylium_side_old.png | Bin 0 -> 223 bytes .../textures/warped_wart_block.png | Bin 261 -> 6232 bytes .../textures/warped_wart_block_old.png | Bin 0 -> 261 bytes 22 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_side_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/shroomlight_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_side_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood_2nd.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_nylium.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_nylium_side_old.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_wart_block_old.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png b/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png index 583aa964786f49db13477b203bf9bce57fdaf388..bf921d408aa9dbeb5e236739970ef4e82358f0cd 100644 GIT binary patch literal 6257 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 LNkvXXu0mjf&#Hie diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba14eecb8069770876c9595f590c9a1b6bdecf3 GIT binary patch literal 6202 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 JR_+qE>E8zwXeIyv literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_old.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_old.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d20b8d9def1b0652fa82b8e408230daaad6518 GIT binary patch literal 565 zcmV-50?Pe~P)Vl&|0005}NklvZ_zECO)P@L6&|0Me#Binvcq5)7;eM;HM!&0|A%$gHj{ zyi+<247Va`9TkcV_oV{$rKxIs*8{FGY70v1?jzto=%tp`n65AUA#U>_ZkMh~J2dPS zY#$9uqgv9vpy~m);nrioipwui>-U9S|F3*Zgn<75Vu#pVTts8x00000NkvXXu0mjf DY6u5} literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png index 36984d69effd04929b03929dacff2bee93ca5247..22d6f872f7a8d5f88482c03ce9d8cac0c152710f 100644 GIT binary patch delta 297 zcmV+^0oMN70mK53B!2{RLP=Bz2nYy#2xN!=008?*L_t(IjqQ*zZi7G&Mc?dh3M541 z9@!GIMC*HnEBFq{8FHPpZm8&2mK+c%fK36j;KE7@m-!N6rT^#s(a3p!3QYJZfZCak80Zvzyer3md^ z4#4Q62radwaU0)t5tO-gU<;|gzA@Ly;%!3a=2g8-sAUOkfVHG#ZiQ(^7OR(a9gCc_&;pNf5^4aHaBP;j^jxA}8#Ck|W00000NkvXXu0mjftp|wT delta 190 zcmV;v073u60@?wPB!8hvL_t(IjopyJ4a6V}1m{5!JY7Q44kge6ZBPa+q&D9pGI2=4 zMY`WvvW)HB^$Kc?+C zJqz>$HczlSNN(t>?Q%H8lOrck0LI}R$V5-XG5lf#rf+0`GB;UHiDvN*WS{7TW`{21 sa%0;IPOZ&$PmW&;{04rCSGN8yJ{+*0k&Z7YQ~&?~07*qoM6N<$g41DCBLDyZ diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png new file mode 100644 index 0000000000000000000000000000000000000000..36984d69effd04929b03929dacff2bee93ca5247 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3q4&NLo9mlPB_SWM1hCpxuc*> ztkWev)eB6y0c^TU%Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jmD3 z3l$@OY0zrqyn{ODnt0dV_OOAm zK5p$gZ0tI0%-7Gu+Mb7XUC*c8pYXfmUFOUFE06QP6ujeB=>#0$3YAnMuGmEovfI(@ zcKjJG=j(pK#|%NHk`NLm?!Gy>7kA#mw%YRVWt+PsX?2*}GQ08yh-LyN+vTt5VOAlg@t fQgu$9PbcsJ3%4c0<~RIw00000NkvXXu0mjfZ-1gU diff --git a/mods/ITEMS/mcl_mushroom/textures/shroomlight_old.png b/mods/ITEMS/mcl_mushroom/textures/shroomlight_old.png new file mode 100644 index 0000000000000000000000000000000000000000..9e18b21c7bd26620b917ec6b21f6d7e0664838cf GIT binary patch literal 385 zcmV-{0e=38P)OOAm zK5p$gZ0tI0%-7Gu+Mb7XUC*c8pYXfmUFOUFE06QP6ujeB=>#0$3YAnMuGmEovfI(@ zcKjJG=j(pK#|%NHk`NLm?!Gy>7kA#mw%YRVWt+PsX?2*}GQ08yh-LyN+vTt5VOAlg@t fQgu$9PbcsJ3%4c0<~RIw00000NkvXXu0mjfZ-1gU literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png b/mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png index 6a8be80a7f083457b5af7eecb55edbab4b46e62c..08dacdf585500551028b08e6af285c527f82a8c6 100644 GIT binary patch literal 6259 zcmeHLdpy)>+n9+w+^D();YY&)etoKL3Sb?)&~;-|M=+_jO(O{3Lm= zch%M~(tyEW+U{=7KG0uX`D?B!^xJIwJphBL`0n%zkoW+R2%$*8=5RrTBuWS(Kq-d} zgGsy3`1@a2X{q%tc)m<|ncgA#>C7cJ#vbcZ?>#pz>K7j}woYhEQ{MEvCbsg8ni;#b zIlwGXvi>3SA4yqQ^_{!gVlr&Tt7C_lV^02$mExBz0^e!z$IT>dnDi9@TM*~er8yaH zo{6%rQtwV?1vDIPN3GyH)`xvxy1S&e4Xqj*Xg@yR=@9WrsQLW1i6XdN>u8@uzi&8 zj%U0xi6PNr?pXiUKIK%l?QLY_e!(c|WPi^Xdhy=Wis$YBY|i=~w{#F+MzJ#uN-59r zYA`UoPzK8`O1UZ3aA7#tWaO<)qF$sdu)^LJGJi@dKj*PU_f}eq18*Qy=zKbyu+dcvdal_O&##iW`-7TLw#*zufd!XZPCX-1FwKRqEIB zSdB(uXJq}V#yru3eX^UB(KX}iwpG3CST(xq#q9z_ow9M@3-gn@^kfs2*4t|q?$W|F z9mpj*it0y{e>i{-zWzP&ul;5kQ;iBTarc5K!aUVjf zO=pZIsBp=O=tK-q_Lk>SK_lduqa}qc;v3IV~^9G$8yB8TN zJ@^i>JK@pyM|4@bqlqt-r5<|Qv6=^26KxFVI`It!QSB*`4D>klhs^R4SRlC?&%u)r$yBQ*7a zR2y3hjnS$aqq{B$*(=x9YMt~YB_|pWUT4X4HvU{~x>eNkEt5eC+3X)rHK`g(@6K$r z;_7tVaj`EqIc*Bt-Jx^{O(`rtK`u!tUll|7$I=_wq(w)6{-(veMdz567g$gnaps`@ zJWk-DJL;pQ$MXW4iZWXO)FJlC!z9762hsP`yKoD`E{vM{m;6YdTxJs1GP+~1%H?sv zhJ#hs$HN4DbrFF^nA=;ODDl6xH6Pfdm%kJ-Y%!(wbQBSjbaqR?Hb7+oL5nQax%3R~ z|FiC)dvSAK1>WMTtnxQ0?d|-th(|VfmAt6lmR9?FEm{q!lX7vJlXLNgb(^pIS3G;J z^6rPyPUMs&99?{LL$vXhy!+wiEgc1gFY}Xn;C`{aM3V&mX6*Kr1^1376?ED9mL-MW zlOA}Ka^_Is@@KrqahAWs^LE~o{`L~J(H{Q7YVB6M{c-kqwAsz6{P@MAWpRUn)NF6= zvAb{bLPygo4nDd_r5^?Oe(;@j!2bG4!vP%<*!SNgJFYm5CVp?7D z%$mM9XYZADPQT1w`C~#ae=vQu#Z&>eZ5YvPvq{bHW^|uj&j|hWoAb2(9%T8MIhFU< zy3$(SZo>C`+bK*BLbmDaEzPmmk%gQadUj=tx9~CkjCZ5{WsY;@B~1J3;V6^7Lls9e z#|$TQ`rVyxDlFE4EMR?9B>uFTXzZ?Nmc)pL@X?8yr|iB}DLr@X!mO;oiD)%VJJ#i!nqJuNu80G+@0Kyj0qVEZ`Z z1Up7KvM%xRTYKfnc?Z#}p1*>@;0YW$-P@f`|Il8crkb@Yjpla6!K5+B*9C>riO}6} z%{$vVF`2w}e#-W|lKET0vE{EcGl|PA(fi}V>gs-KEQ(K&oz*!Thxh~jU~uU85YpmL zjAcpU%YjQ~qa(DDez;S9y`L;h$(z*T*2rYolv%y5LhjZ}7;w#L@Svq_yHP8S>AP~Z zvvS3)vDFig=UPT(z*nb9_dof;rOMGx#(9!8k#yzsGRua?4G&efrv8!k^g@duD@8}s zj=*L4j5h#`^Y`jRYO?e^eJ=x7!;Sed=1(uwN2SQN6rS&(O=`wR@hn=yGp{5v)zz1o zJFU?M{kEI0J+&q|$?*AAyD9p9dw2AaKoBdk&efQo{!s0G{QbVnJ%#SJmW$?81aaRo z4Tri^GQ)fRTwVJ7k@`Ta>e-Ugnr;}|-o3c&;x)ZrYqSFc%Sci4F7?7yb0pVOO|E=g?)w(ZAfiKhNr^3Lf0V-W@j%I0?aT_f?$Bb96k*>T3Lfca9A{? zKgkp8DWroT9Jie!(0Av0KjzLbCWVExU#(#$r9uQePy!&NJT6~MmC}$3UMlonK8-;l z6c9-m4H@9+ji3ueAcBY{qOm9!DJKGtT&;ny6S3G-ALlhQ6wru<43S8LR179EG7=q0 zKnp~{7#xK{!C>(iJRSuhP~s@Q1dyWm;-zwmX%1&l%oK5i5{`h6kaGeILAZp5L_+I` z8FFZq=^}+DXB^1K3VN}Gg>i=lL})({0E5S3$tWxyg{NR<+e53Ko*%9G;u#eoJuy;1 zh{2(;7#{C43$er{;*-C>v=IA2pE@u;pjZ$tVuCIaAYZa{wo@TDTs+%nxEPdADdOg` z*cd1%h3DBeuI`@RA8q6^26K2qg@qhF8_8mR#0kSiTm^>3#DH9o2L&RAm~o%sB^>sr z1Nv+~@|AxJ1akM0|12(EEs z9Y|V0UL6p#VjkKJl`aASi9qBh5O8Tod9(;QrJ|@1b~EKd^$;)>h6*sql2_bJ%{c+V z7{$;I^LOBXWAY6VMDqV{JfEN+SsX=@NP#HKOXS4}1(}k+=lLt}M@e~U`(d|s@*d>r zNu8~SoxDd;-Q|hs8!i-bIiTosoj&Bv|AL!kKa->X$$U0!+L|s9MnP2^BJqmk|E>GK z08TS_aF`%pEcm<7XG5lCnRO9CF;CAy7aVk7Vm@A&Gg%@pr2pdAO!oa3JwVi7oqUnL zU*-BL*B2@9Mc}X5^;NDfQs9fgU$g7~O)ia3kK7<1`rH=@Jy2I7y6DiuxGH0vt26Aq z{5!Y0AOo6F7rJd0!(f^Q@)sPInY9R-RFk-Sx~L6mEYU_TJ$|dU1Nx5($KBb{kKD2+ zqb{`GLHCCmW|O|+iGm>XyHK~4%DDk_M4R)R<*}`SF=#R zc?oQ9#b65#R-?6`uP5fpRIfI6(&28%-b`YUkUWy2RLXxcb`-O3dBtksVX|*(+QINL zC*JOKgL8j)zdW^2wT6A;GURR2>w zx9Ue5W8-tJw#r3KEUJ}We{2P;}e={DGU`73sD$4v1NjxjEt>65Y~}28?8GXKCM#i;#_REfywfM|(zZ$?X|fXaGVfr#3um>hFx~~9 zM3a?BtkS5L8EM}k?K>1hi(+VzPh&VG7_YYVQ-LI?wiVU3UVm0Z6hn)8nZE?ayWnKG zSE!d6`82|Kx9>qdje$VQkY$sAcIW{gF-zKaQDzxGm2j+pK9DGU`73sD$4v1NjxjEt>65Y~}28?8GXKCM#i; z#_REfywfM|(zZ$?X|fXaGVfr#3um>hFx~~9M3a?BtkS5L8EM}k?K>1hi(+VzPh&VG z7_YYVQ-LI?wiVU3URFdDLyLNuzXZm+;AFX1sFxY}G{Shd??FC|fk4WTWs`t*=m8%w zOWJo)W*I+~aIAnnmdi7ea7RGPx#32;bRa{vGizW@LZzX3P}QzQTY00(qQ zO+^Rf1O*lW9(dq(CIA2daY;l$R5;6ZlFM$}Fc3vg1Zps}A|g)H1jweVcF|@3|8u%& z5W^|eSj0$Bx{%09wmU06=6UAceE;_2!&QP81)#SCfEOjS4}SpsI{YM?7cD;HWK^8l zI2r$Y%SH12{ZEG*EP(*%CaAXr-75gD62{3;-2>32NS`9W+(E0M1hpDUrO-ZIN@;aZvTd?v>sW<7A}t@2^|h7pdn2$9UWX zOWk0@djaMuxqrHm!eC84SCYD+x5RqI*@k6}wJ0}Vp1*!Hw=Jy(dP^62_;mNk=@iSo zPZ7UB94DJcaFrB?LVpEtw+n@ZUu|HpgcGSZBIzv=u2A=)>~@a;9Nu1v4qSaUUj~&E z9^PIy1=h^W1}ay{X6Bq()uZY!n4C^=2D^+>t%I`DK0oZQj}$Vtb^ wHnP6Z0l%5$jO@I4_Y2S_nEo7|o@)KE| zRKv?P_M->uy!-&@Xdz5C0Nhvz9o3cfbKOEddO)!{vM&~*ms`ki6f>HQND$#{I>AmI znMTD5(mfM9)~v%px=mx_7oXtx_S#{s-8!=bY8^YSL!u3|{m`W28MS70`3KcmxxDYk uAXyh(|Es;mJ|V__{6-aVufJ5G`klWCqQRsgZ(@P~0000%5$jP5Xvv-;M+=WUTY@6Iq>9!^<`HqX+A}`~c`^Axt&^+*k-5)s^*g z-9kQkK(RWqFBYPgTgY$}Gn$P^5aDb(!A>2SM#T!!Jrg_DtiwUNO=II1pWyiR+F`BT zI#Sr=XZtG&iP#(w-p6>+b>RH6EvzX_tj Uq#3S!U5U=%#Oy7Y$4|E>ybRexD}hc2*sM$SbyspB+s~t6PvtXEd`}i zp-7jP5g-gIrNRvs^Yrl3zfW%fTqm~xyiadfdjufMZUC_MNS56!;?^EXKb2odjIclL zxLbc-@Vt!0RJ@FA?=Y=rvo5h?tizBKIVFz+%7awX#TP${l0w)@2nix6ny*m;jg!kF?mPpn%M{Sp$^=1 zS3MM}i|zn!u%wBR1^1ZWS&QWmn0?UZ%~FGZ`5?}zU*cT)@b#JfX-6s5LJOFk82dnd z5&w_0KGYaiAZKC1)rBxzW0RcC1aPIiTi4JHJ*89&BP?liH}s*-%NUlq-#+@-@0WVS dn#6xW@dvt(1|;3@P2T_j002ovPDHLkV1h0d)DZvx delta 262 zcmV+h0r~#T1EKPM&i-+W^eQN3s|G) z1J1E0G(_iZS?CR(FSu6TJZ_(BZLT3)X#WHDfyd`&V6`z1X5#td3$9o8AS}2J{Qv*} M07*qoM6N<$g0yCPSO5S3 diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood_2nd.png b/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood_2nd.png new file mode 100644 index 0000000000000000000000000000000000000000..e579559c151a68b75ae680f81d329a3785ddc356 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#c76d4lQ_;t`+=qydAc};Se&k% zyw~rrfk>;pO1R(+&&Z%vMpIiG1v}jnk{)?h_)2ISPFXlpLzAuZS^5Tv1dq9QRD92+ z+?D@*r+A&e-23_e7)la8%wRK2zF{3bU)159&Q6YHDhw^{-6`w1Sqo(EGbX5QzBs-6 zzW=t!OG&GX(j#v_YpvX(a(2?MH^*;UM;}*JHtnA_WgSC;psqIWqaDYO`J~0nl4iKq zef=5J{X3~fEdd;Bn1eGFgp2Gr{|9V$ds}Db8yG2?nOn6n`NFLQ=ll)_o{EyzJGZ_q zcTcR%6|s}5o|~6EJv8CytGB;*rgrChd1}NuzT_%Nh%)oKJB80jw<~`JTcLNZenLgc z(W!TSzmxw^ZOFEDoBrMhe=h70owBsFNaShv((_BTPt0|FmJ-*u$ZYr31<${|UYwpO a{y!nV%a^(H;U!>zGI+ZBxvXPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^Rf1O*l?5=duJqW}N_JV``BR5;6R zQ!9?cFc5ufMKZ__S*pTc6SeK#|qP1hubitwH*MIB7V1H#eS@a;tR>$JxYzys01PN zcB}w^TfS3i5RZ`in%+8`k}j-4v9-3tXdOW}OF%dh0IZtg|tnz+x?v{^JJ=f53a& UQ((#!9smFU07*qoM6N<$f??*b=l}o! literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png b/mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png index 6d974665f2835677ebbbb6af0a512af539af1567..70354cca043ed2a1f3fa887ee1c7e5ff97dff9ff 100644 GIT binary patch literal 402 zcmV;D0d4+?P)neg0 zoqmG{h_Q2&v2zxyDTz+$b^9z8#1_8gZIxyS~&&jz_a z!AxuK>e!@Be38@B8~`Zwm-B#pJpU0x_D-PjBL$E&cCoh?zx62**(KjK#v~&ASm;4T wlJ`DL0FiaLKNHc-XUbNQaIVzlsndSb7Xm1U&V+QnFaQ7m07*qoM6N<$f(37_UjP6A literal 223 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 delta 234 zcmVEDw;&r7j?;Hx(o~c*ygqDU<;_83N3907h{&rvl%4Jp|+tgq9>Eb z%mwfc3U^_TjNfcB!bfp@$Fek61y6rZK8^ugctIYUfATFm@F?14+C42Yo^Iaz2jV++ k06uASWCa)y<6ifpAM4@<`C6c|{Qv*}07*qoM6N<$f;!x5cK`qY diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_wart_block_old.png b/mods/ITEMS/mcl_mushroom/textures/warped_wart_block_old.png new file mode 100644 index 0000000000000000000000000000000000000000..34bfb5eb63cad59e1855f7c4e3ff3783f379c8af GIT binary patch literal 261 zcmV+g0s8)lP)EDw;&r7j?;Hx(o~c z*ygqDU<;_83N3907naVm86?c1wxKYhCzHp_1@I0EcVUl=-)u6%M{#_|vNTr(Pk&E7 zjsaYFK^~ib@+~{?DB5M(JuNbxZr=L`;yZQ#K52Ah1sD+HUiYIP>*5CaTA;H100000 LNkvXXu0mjfkiKou literal 0 HcmV?d00001 From 675567502103c1da65cbff34f72229ebc4178941 Mon Sep 17 00:00:00 2001 From: debiankaios Date: Sat, 17 Jul 2021 06:14:10 +0000 Subject: [PATCH 06/39] Fixed warnings Warnings because a var which not exist --- mods/ITEMS/mcl_mushroom/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index d9efea1dd..9fe4c658b 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -50,7 +50,7 @@ minetest.register_node("mcl_mushroom:warped_wart_block", { minetest.register_node("mcl_mushroom:shroomlight", { description = S("Shroomlight"), tiles = {"shroomlight.png"}, - groups = {handy=1,hoe=7,swordy=1, leafdecay=leafdecay_distance, leaves=1, deco_block=1, }, + groups = {handy=1,hoe=7,swordy=1, leafdecay=1, leafdecay_distance=1, leaves=1, deco_block=1, }, stack_max = 64, _mcl_hardness = 2, -- this is 15 in Minecraft From 4b976a663f9e0a153ab6d11165890bcdb5399d4a Mon Sep 17 00:00:00 2001 From: debiankaios Date: Sun, 18 Jul 2021 17:20:40 +0000 Subject: [PATCH 07/39] Add twisting_vines textures --- .../mcl_mushroom/textures/twisting_vines.png | Bin 0 -> 475 bytes .../textures/twisting_vines_plant.png | Bin 0 -> 581 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_mushroom/textures/twisting_vines.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/twisting_vines_plant.png diff --git a/mods/ITEMS/mcl_mushroom/textures/twisting_vines.png b/mods/ITEMS/mcl_mushroom/textures/twisting_vines.png new file mode 100644 index 0000000000000000000000000000000000000000..985d735bce4a49e53c39d26e729f412607f89bd2 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sBugD~Uq{1qucLG}_)Usv`g?7V`;s*4Zwp9Go`?djqeVsZNH zB>fDgK$+wA`K~TU6lJFKcxz7=6U)!c7K@ag9?rI1Va*BFNWn0+@H3mrVj}OHTEjd! z_Tki%&CcqN_k0oi!dI$w>)R#n_qBER?d^YrA1^-C{9ooR^T#;_+BVF0V(s(i8cBTr z7HlB#J)64%Dok43 z6m(9ZYv~8(aF>ls60{g{XKw3D>XbRhka6|4)mathk~sPBB|jUr@7eG65q7P=a+E)2 zV}OpB)<3Ne%+rhZP5P<-jAxqjJe4kuY1(2(qGD(M|CeF6cZTr>A8CcH+jp{_=j=@C zl;4q5dB`Nt#M)Hw=p@fYW!EFlg|i%ZdbHPX`Tp8H9LsMdOw!mm?=qLdTg$KYAGD@F zYs|EqQ3gb(zmbT^0P9NJ6;+w*3|NEQq#G-EI~_dUfxlw2jX$3<~`AoWO4$A OJcFmJpUXO@geCye48R5e literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/twisting_vines_plant.png b/mods/ITEMS/mcl_mushroom/textures/twisting_vines_plant.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd68c0cd1c2a66f0318b5808841ef8ad06a3822 GIT binary patch literal 581 zcmV-L0=oT)P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2jmA0 z5i=)E&hF&^00G5GL_t(I%XO1KXxl&-#eWw9s!?JGgHQXAY&a-22O^3Iil*!0yI%a~n9SS=Aio}vbb8v1a1>GIsRCj+>WVB+#8Rt`B5FTWJk0}6PtGwK_}-ov zj=F~B<`MeoSQnMF2Y()?7T|689zRsvPo%wX9B~=oLVj19JIXPg^>RMrsUZ$ TSSkz|00000NkvXXu0mjfd4&5z literal 0 HcmV?d00001 From c3e00a1c269786d9495b75d3720d708c2b3c6b76 Mon Sep 17 00:00:00 2001 From: debiankaios Date: Mon, 19 Jul 2021 08:11:16 +0000 Subject: [PATCH 08/39] Add more decoration blocks. Added the decorations lbocks, and chancheg generation of decoration a bit. --- mods/ITEMS/mcl_mushroom/init.lua | 139 ++++++++++++++++++++++++++++++- 1 file changed, 135 insertions(+), 4 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 9fe4c658b..fd37800eb 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -36,6 +36,102 @@ minetest.register_node("mcl_mushroom:warped_fungus", { end, _mcl_blast_resistance = 0, + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + itemstack:take_item() + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_warped_tree(pos) + end + end + end + end, + _mcl_blast_resistance = 0, + stack_max = 64, +}) + +minetest.register_node("mcl_mushroom:twisting_vines", { + description = S("Twisting Vines"), + drawtype = "plantlike", + tiles = { "twisting_vines_plant.png" }, + inventory_image = "twisting_vines.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + climbable = true, + buildable_to = true, + groups = {dig_immediate=3,vines=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, shearsy = 1}, + selection_box = { + type = "fixed", + fixed = { -3/16, -0.5, -3/16, 3/16, 0.5, 3/16 }, + }, + node_placement_prediction = "", + on_rightclick = function(pos, node, pointed_thing, itemstack) + + if pointed_thing:get_wielded_item():get_name() == "mcl_mushroom:twisting_vines" then + itemstack:take_item() + grow_twisting_vines(pos, 1) + elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + itemstack:take_item() + grow_twisting_vines(pos, math.random(1, 3)) + end + end, + drop = { + max_items = 1, + items = { + {items = {"mcl_mushroom:twisting_vines"}, rarity = 3}, + } + }, + _mcl_shears_drop = true, + _mcl_silk_touch_drop = true, + _mcl_fortune_drop = { items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 3},}, + items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 1.8181818181818181},}, + "mcl_mushroom:twisting_vines", + "mcl_mushroom:twisting_vines"}, + _mcl_blast_resistance = 0, + stack_max = 64, +}) + +minetest.register_node("mcl_mushroom:nether_sprouts", { + description = S("Nether Sprouts"), + drawtype = "plantlike", + tiles = { "nether_sprouts.png" }, + inventory_image = "nether_sprouts.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {dig_immediate=3,vines=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, shearsy = 1}, + selection_box = { + type = "fixed", + fixed = { -4/16, -0.5, -4/16, 4/16, 0, 4/16 }, + }, + node_placement_prediction = "", + drop = "", + _mcl_shears_drop = true, + _mcl_silk_touch_drop = false, + _mcl_blast_resistance = 0, + stack_max = 64, +}) + +minetest.register_node("mcl_mushroom:warped_roots", { + description = S("Warped Roots"), + drawtype = "plantlike", + tiles = { "warped_roots.png" }, + inventory_image = "warped_roots.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {dig_immediate=3,vines=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, shearsy = 1}, + selection_box = { + type = "fixed", + fixed = { -6/16, -0.5, -6/16, 6/16, -4/16, 6/16 }, + }, + node_placement_prediction = "", + _mcl_silk_touch_drop = false, + _mcl_blast_resistance = 0, stack_max = 64, }) @@ -165,6 +261,17 @@ minetest.register_abm({ elseif randomg == 7 then local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } generate_warped_tree(pos1) +<<<<<<< HEAD +======= + elseif randomg > 15 and randomg <= 45 then + grow_twisting_vines({ x = pos.x, y = pos.y, z = pos.z } ,math.random(1, 4)) + elseif randomg > 45 and randomg <= 50 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) + elseif randomg > 50 and randomg <= 150 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:nether_sprouts" }) + elseif randomg > 150 and randomg <= 250 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_roots" }) +>>>>>>> da0cb4853 (Add more decoration blocks.) end else minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) @@ -217,6 +324,26 @@ minetest.register_node("mcl_mushroom:crimson_fungus", { stack_max = 64, }) +minetest.register_node("mcl_mushroom:crimson_roots", { + description = S("Crimson Roots"), + drawtype = "plantlike", + tiles = { "crimson_roots.png" }, + inventory_image = "crimson_roots.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = {dig_immediate=3,vines=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, shearsy = 1}, + selection_box = { + type = "fixed", + fixed = { -6/16, -0.5, -6/16, 6/16, -4/16, 6/16 }, + }, + node_placement_prediction = "", + _mcl_silk_touch_drop = false, + _mcl_blast_resistance = 0, + stack_max = 64, +}) + minetest.register_node("mcl_mushroom:crimson_hyphae", { description = S("Crimson Hyphae"), tiles = {"crimson_hyphae.png", @@ -319,12 +446,16 @@ minetest.register_abm({ local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) if nodepos.name == "air" then minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:crimson_nylium" }) - local randomg = math.random(1, 40) - if randomg == 2 then + local randomg = math.random(1, 400) + if randomg <= 10 then minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) - elseif randomg == 7 then + elseif randomg > 10 and randomg <= 25 then local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } generate_crimson_tree(pos1) + elseif randomg > 25 and randomg <= 30 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + elseif randomg > 30 and randomg <= 130 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_roots" }) end else minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) @@ -593,4 +724,4 @@ minetest.register_decoration({ y_max = -28940, y_min = -29065, decoration = "mcl_mushroom:crimson_fungus", -}) \ No newline at end of file +}) From b2b86e4fcc90480298c1c0ba89609ef270ca7ab5 Mon Sep 17 00:00:00 2001 From: debiankaios Date: Mon, 19 Jul 2021 08:12:39 +0000 Subject: [PATCH 09/39] Added textures for the sprouts and roots. --- .../mcl_mushroom/textures/crimson_roots.png | Bin 0 -> 6202 bytes .../mcl_mushroom/textures/nether_sprouts.png | Bin 0 -> 314 bytes .../ITEMS/mcl_mushroom/textures/warped_roots.png | Bin 0 -> 462 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_roots.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/nether_sprouts.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_roots.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_roots.png b/mods/ITEMS/mcl_mushroom/textures/crimson_roots.png new file mode 100644 index 0000000000000000000000000000000000000000..f173bfb00df7d25a014ccae0e4f58c35f8946e58 GIT binary patch literal 6202 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 Hmah3X_W@fx literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/nether_sprouts.png b/mods/ITEMS/mcl_mushroom/textures/nether_sprouts.png new file mode 100644 index 0000000000000000000000000000000000000000..27f686d57abe78eff98911a4147a6c96300d9efb GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf#HWmSP-SF8z7=c2&JY5_^EKa|j zV90mKfXB67TjkgjzcaBnid+2FgtC3}lWE**{zCVLu|dE}p{~_#8o@JUR0Z6`j?CA2 z{k!(|f%yF^_Q^JfIsf2tS*`fx?ToLlg&K4mJsL$8T@`2%v6xd9DtKXg@)G&;zquG% zL~a^HR&jSTs1<9?4!wL-S7J_Es=9%TY3vUBbsOhjlR0qj*X7G6&NDP*8Y$n#D zYTq@*Mwg8tA#ZvPciYlid!+7^u`*cfKlHO`?kmo3FPkphId|S4=nDoPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jmA0 z5h*BbTnVoL00B-(L_t(I%e9ifYQj(y#=jd1p-7fO$W+%pK?^Q*sXloWgP|muZijHf%^!7Yrf}~0&hLERy}*Be!`@Wd16Q6q z*Di@W?XkSOy+_RwI5*_tfG`p8_71ooqh^Wg>)HcX4tvuasnzUDvQnjCs+j)2j~{TC z6V_>uB>=d~3A>s>%@PPA4sY*dhpNyXxRqgM1Gpb!wiq#0NE-k^5b??!N~^V+ec7mY zb5^MSU_Jpr1_FSa;((XOXZ#*hVwmKKTd~1vJ!d5gsz2_>@b*rQ0sw|?!qCl99@^XM zyCjda9yO}hs0OO$p%L+L+GVdVOwyM}S*T$Gz~Qt5_v3WHY%yZ1^_-DkA`zug?`AdX z2@{c7)Kr2>+KLT6zkU!zJXbIFvZ7Z*H%sYP)#*0=0Et<`;#UePasU7T07*qoM6N<$ Ef`Y`q;Q#;t literal 0 HcmV?d00001 From 4a727d79c7aeb3ba0369772c11b58e5e0ae7999c Mon Sep 17 00:00:00 2001 From: debiankaios Date: Mon, 19 Jul 2021 15:22:04 +0000 Subject: [PATCH 10/39] german translation german translation german translation --- mods/ITEMS/mcl_mushroom/init.lua | 4 ++-- mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr | 12 +++++++++++- mods/ITEMS/mcl_mushroom/locale/template.txt | 9 +++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index fd37800eb..438659fe4 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -214,7 +214,7 @@ minetest.register_node("mcl_mushroom:warped_hyphae_wood", { _mcl_hardness = 2, }) -mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", "Warped Wood Stairs", "Warped Wood Slab", "Double Warped Wood Slab") +mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) minetest.register_craft({ output = "mcl_mushroom:warped_hyphae_wood 4", @@ -420,7 +420,7 @@ minetest.register_craft({ } }) -mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Wood Stairs", "Crimson Wood Slab", "Double Crimson Wood Slab") +mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") minetest.register_abm({ label = "mcl_mushroom:crimson_fungus", diff --git a/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr b/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr index 44bc656ec..becde0256 100644 --- a/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr +++ b/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr @@ -1,14 +1,24 @@ # textdomain: mcl_mushroom Warped Fungus Mushroom=Wirrpilz +Twisting Vines=Zwirbelranken +Nether Sprouts=Nethersprossen +Warped Roots=Wirrwurzeln Warped Wart Block=Wirrwarzenblock Shroomlight=Pilzlicht Warped Hyphae=Wirrhyphe Warped Nylium=Wirr-Nezel Warped Checknode - only to check!=Wirr Checkblock - Nur zum checken! -Warped Hyphae Wood= Wirrhyphen Holz +Warped Hyphae Wood=Wirrhyphen Holz +Warped Stair=Wirrtreppe +Warped Slab=Wirrstufe +Double Warped Slab=Doppelte Wirrstufe Crimson Fungus Mushroom=Karmesinpilz +Crimson Roots=Karmesinwurzeln Crimson Hyphae=Karmesinhyphe Crimson Hyphae Wood=Karmesinhyphenholz +Crimson Stair=Karmesintreppe +Crimson Slab=Karmesinstufe +Double Crimson Slab=Doppelte Karmesinstufe Crimson Nylium=Karmesin-Nezel Crimson Checknode - only to check!=Karmesin Checkblock - Nur zum checken! diff --git a/mods/ITEMS/mcl_mushroom/locale/template.txt b/mods/ITEMS/mcl_mushroom/locale/template.txt index c05d8922c..67d53d790 100644 --- a/mods/ITEMS/mcl_mushroom/locale/template.txt +++ b/mods/ITEMS/mcl_mushroom/locale/template.txt @@ -1,14 +1,23 @@ # textdomain: mcl_mushroom Warped Fungus Mushroom= +Twisting Vines= +Nether Sprouts= +Warped Roots= Warped Wart Block= Shroomlight= Warped Hyphae= Warped Nylium= Warped Checknode - only to check!= Warped Hyphae Wood= +Warped Stair= +Warped Slab= Crimson Fungus Mushroom= +Crimson Roots= Crimson Hyphae= Crimson Hyphae Wood= +Crimson Stair= +Crimson Slab= +Double Crimson Slab= Crimson Nylium= Crimson Checknode - only to check!= From 352fd7562fcb935658622a272969a9041d7cef2d Mon Sep 17 00:00:00 2001 From: kay27 Date: Wed, 8 Dec 2021 18:59:00 +0400 Subject: [PATCH 11/39] #41 Remove proprietary textures, update game screenshot --- .../textures/crimson_hyphae_old.png | Bin 318 -> 0 bytes .../textures/crimson_hyphae_side_old.png | Bin 318 -> 0 bytes .../textures/crimson_nylium_old.png | Bin 565 -> 0 bytes .../textures/crimson_nylium_side_old.png | Bin 218 -> 0 bytes .../mcl_mushroom/textures/shroomlight_old.png | Bin 385 -> 0 bytes .../textures/warped_hyphae_old.png | Bin 301 -> 0 bytes .../textures/warped_hyphae_side_old.png | Bin 322 -> 0 bytes .../textures/warped_nylium_side_old.png | Bin 223 -> 0 bytes .../textures/warped_wart_block_old.png | Bin 261 -> 0 bytes screenshot.png | Bin 88675 -> 96071 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_side_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/shroomlight_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_hyphae_side_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_nylium_side_old.png delete mode 100644 mods/ITEMS/mcl_mushroom/textures/warped_wart_block_old.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_old.png b/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_old.png deleted file mode 100644 index 583aa964786f49db13477b203bf9bce57fdaf388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmV-E0m1%>P)Aj-Q8*kTm)R3=f!re}>?d9g)tOzD3Us=^`HA#W(M!e55sxZ{ zHVkd}h+yW3J0;8<(M!e9hF&UG2>VRf;7(}^y@46e9QR!>6*6lCpXlOkjoaHztOOmjriS&#Ws*P&fGnX$M2;=c+>0yuH7g5 zl7+E--F^bS)EDUP)Aj-Q8*kTm)R3=f!re}>?d9g)tOzD3Us=^`HA#W(M!e55sxZ{ zHVkd}h+yW3J0;8<(M!e9hF&UG2>VRf;7(}^y@46e9QR!>6*6lCpXlOkjoaHztOOmjriS&#Ws*P&fGnX$M2;=c+>0yuH7g5 zl7+E--F^bS)EDUVl&|0005}NklvZ_zECO)P@L6&|0Me#Binvcq5)7;eM;HM!&0|A%$gHj{ zyi+<247Va`9TkcV_oV{$rKxIs*8{FGY70v1?jzto=%tp`n65AUA#U>_ZkMh~J2dPS zY#$9uqgv9vpy~m);nrioipwui>-U9S|F3*Zgn<75Vu#pVTts8x00000NkvXXu0mjf DY6u5} diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png b/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side_old.png deleted file mode 100644 index 36984d69effd04929b03929dacff2bee93ca5247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3q4&NLo9mlPB_SWM1hCpxuc*> ztkWev)eB6y0c^TU%OOAm zK5p$gZ0tI0%-7Gu+Mb7XUC*c8pYXfmUFOUFE06QP6ujeB=>#0$3YAnMuGmEovfI(@ zcKjJG=j(pK#|%NHk`NLm?!Gy>7kA#mw%YRVWt+PsX?2*}GQ08yh-LyN+vTt5VOAlg@t fQgu$9PbcsJ3%4c0<~RIw00000NkvXXu0mjfZ-1gU diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_old.png b/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_old.png deleted file mode 100644 index 6a8be80a7f083457b5af7eecb55edbab4b46e62c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmV+|0n+}7P)DGU`73sD$4v1NjxjEt>65Y~}28?8GXKCM#i; z#_REfywfM|(zZ$?X|fXaGVfr#3um>hFx~~9M3a?BtkS5L8EM}k?K>1hi(+VzPh&VG z7_YYVQ-LI?wiVU3URFdDLyLNuzXZm+;AFX1sFxY}G{Shd??FC|fk4WTWs`t*=m8%w zOWJo)W*I+~aIAnnmdi7ea7RG%5$jP5Xvv-;M+=WUTY@6Iq>9!^<`HqX+A}`~c`^Axt&^+*k-5)s^*g z-9kQkK(RWqFBYPgTgY$}Gn$P^5aDb(!A>2SM#T!!Jrg_DtiwUNO=II1pWyiR+F`BT zI#Sr=XZtG&iP#(w-p6>+b>RH6EvzX_tj Uq#%9e2=sEDw;&r7j?;Hx(o~c z*ygqDU<;_83N3907naVm86?c1wxKYhCzHp_1@I0EcVUl=-)u6%M{#_|vNTr(Pk&E7 zjsaYFK^~ib@+~{?DB5M(JuNbxZr=L`;yZQ#K52Ah1sD+HUiYIP>*5CaTA;H100000 LNkvXXu0mjfkiKou diff --git a/screenshot.png b/screenshot.png index a92bd53e5e767697add40e8bdf0befcce6ceb620..12cc5db22bd96da3e3ebfc665dcfb363e170a9f2 100644 GIT binary patch literal 96071 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

bN4B$|z0wGct`6S69S0GG?iWs5@KrOWw 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 From b25c23f5fa595dff187cb1f02a7b56cec94165f7 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 19 Feb 2022 17:27:23 +0000 Subject: [PATCH 12/39] mcl_mushroom.fr.tr Translation --- .../mcl_mushroom/locale/mcl_mushroom.fr.tr | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr diff --git a/mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr b/mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr new file mode 100644 index 000000000..e301a8b8a --- /dev/null +++ b/mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr @@ -0,0 +1,23 @@ +# textdomain: mcl_mushroom + +Warped Fungus Mushroom=Champignon tordu +Twisting Vines=Liane tordue +Nether Sprouts=Racines du nether +Warped Roots=Racines tordues +Warped Wart Block=Bloc de verrues tordu +Shroomlight=Champilampe +Warped Hyphae=Tige tordue +Warped Nylium=Nylium tordu +Warped Checknode - only to check!=Bloc de vérification tordu - seulement pour vérifier ! +Warped Hyphae Wood=Planches tordues +Warped Stair=Escalier tordu +Warped Slab=Dalle tordue +Crimson Fungus Mushroom=Champignon écarlate +Crimson Roots=Racines écarlates +Crimson Hyphae=Tige écarlate +Crimson Hyphae Wood=Planches écarlates +Crimson Stair=Escalier écarlate +Crimson Slab=Dalle écarlate +Double Crimson Slab=Dalle double écarlate +Crimson Nylium=Nylium écarlate +Crimson Checknode - only to check!=Bloc de vérification écarlate - seulement pour vérifier ! \ No newline at end of file From 69da3ffc059d83df18d7e72b7632b03a74b01446 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sun, 6 Mar 2022 22:54:12 +0000 Subject: [PATCH 13/39] fix texture --- .../textures/farming_crimson_fungus.png | Bin 765 -> 307 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/textures/farming_crimson_fungus.png b/mods/ITEMS/mcl_mushroom/textures/farming_crimson_fungus.png index 86180a8dd35f66d2c0fa8f72936974fe8eb90172..ab1771b9538549a60d49fa9c8fe9b40a366597ea 100644 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}OMp*^E0A_)VDMmI$YWqDU|=s` z;3#5ZD`Ms-W@ay8=I{{}@RJY-kPrxz5C{U2k^%uzQj_>aCyIzq5|x-DA+bCCy?(!$KpYr7D_HZWc#$SlS$&TAiGZ7+D=LwmfQVb=1W2xT#fTQtmdKI;Vst0PZtcZ~y=R literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I4M=vMPuFE&U^?RI;uumf=k0C#tdKy7V-JIu zY}g{>k*yrX>X^&iR5t0_DW?tBPOoS6)rLJEOQDqamPoD(z{g;X6D zv3N{ju`_x0y} zITa!vGk53V^>*&R_U&{>wGU?GpUJbYUXGjjs=ad6f2-NQ54&AWSam*n?rw4MrGj5L znM4w%FtAFfIxxC%1~desa@TIX_U(7=lcTH}2UdJv`xR(g(B2n2)8B1)W*7f;o-nTr zUwh0CCXokayG0i;6f^o=R&ii_#&qXx8I#C@`;4qVJea>IM>O1P;rQ^8ZN@L@l5F1w zrkuAGHe3M>{a<1WuHIP~w*1$w#q;&|?r(Rw-xAWh@4?0M)9>APX3=o?m-dCVzi!`` ze`5LMFn;*U>+4si+U==}ob~1N1_O-ffCSI0%e&3@8r@&F&TDd=oR}N-5On#wXWzT2 zKR^ClX7ciRVj?IqVS$Sj!y%??vR2@g*OB*nq=TV*-u;IK1^UZ5KJ2;ny7YdI*}JDA ljPuT$_}0!^w(oA Date: Fri, 29 Apr 2022 12:37:45 +0200 Subject: [PATCH 14/39] Bump ABM intervals to 1 second --- mods/ITEMS/mcl_mushroom/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 438659fe4..59c693043 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -249,7 +249,7 @@ minetest.register_abm({ minetest.register_abm({ label = "mcl_mushroom:warped_checknode", nodenames = {"mcl_mushroom:warped_checknode"}, - interval = 0.1, + interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) @@ -440,7 +440,7 @@ minetest.register_abm({ minetest.register_abm({ label = "mcl_mushroom:crimson_checknode", nodenames = {"mcl_mushroom:crimson_checknode"}, - interval = 0.1, + interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) From 653020d2efe9255e77b07e728577d948d342b9ad Mon Sep 17 00:00:00 2001 From: 3raven Date: Tue, 19 Apr 2022 21:11:01 +0000 Subject: [PATCH 15/39] Add texture files for stripped stem Add texture files for stripped stem Add texture files for stripped stem Add warped hyphae stripped and bark Same for crimson hyphae --- mods/ITEMS/mcl_mushroom/init.lua | 132 ++++++++++++++++++ .../textures/stripped_crimson_stem_side.png | Bin 0 -> 193 bytes .../textures/stripped_crimson_stem_top.png | Bin 0 -> 231 bytes .../textures/stripped_warped_stem_side.png | Bin 0 -> 200 bytes .../textures/stripped_warped_stem_top.png | Bin 0 -> 239 bytes 5 files changed, 132 insertions(+) create mode 100644 mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_top.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_side.png create mode 100644 mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_top.png diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 59c693043..e08a2b060 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -205,6 +205,72 @@ minetest.register_node("mcl_mushroom:warped_checknode", { drop = "mcl_nether:netherrack" }) +--Stem bark, stripped stem and bark + +minetest.register_node("mcl_mushroom:warped_hyphae_bark", { + description = S("Warped Hyphae"), + _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), + tiles = {"warped_hyphae_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = "mcl_mushroom:stripped_warped_hyphae_bark", + }) + +minetest.register_craft({ + output = "mcl_mushroom:warped_hyphae_bark 3", + recipe = { + { "mcl_mushroom:warped_hyphae", "mcl_mushroom:warped_hyphae" }, + { "mcl_mushroom:warped_hyphae", "mcl_mushroom:warped_hyphae" }, + } + }) + +minetest.register_node("mcl_mushroom:stripped_warped_hyphae", { + description = description_stripped_trunk, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + +minetest.register_node("mcl_mushroom:stripped_warped_hyphae_bark", { + description = description_stripped_bark, + _doc_items_longdesc = longdesc_wood, + tiles = {tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + +minetest.register_craft({ + output = "mcl_mushroom:stripped_warped_hyphae_bark 3", + recipe = { + { "mcl_mushroom:stripped_warped_hyphae", "mcl_mushroom:stripped_warped_hyphae" }, + { "mcl_mushroom:stripped_warped_hyphae", "mcl_mushroom:stripped_warped_hyphae" }, + } + }) + +--Wood + minetest.register_node("mcl_mushroom:warped_hyphae_wood", { description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, @@ -359,6 +425,72 @@ minetest.register_node("mcl_mushroom:crimson_hyphae", { _mcl_hardness = 2, }) +--Stem bark, stripped stem and bark + +minetest.register_node("mcl_mushroom:crimson_hyphae_bark", { + description = S("Crimson Hyphae"), + _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), + tiles = {"crimson_hyphae_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = "mcl_mushroom:stripped_crimson_hyphae_bark", + }) + +minetest.register_craft({ + output = "mcl_mushroom:crimson_hyphae_bark 3", + recipe = { + { "mcl_mushroom:crimson_hyphae", "mcl_mushroom:crimson_hyphae" }, + { "mcl_mushroom:crimson_hyphae", "mcl_mushroom:crimson_hyphae" }, + } + }) + +minetest.register_node("mcl_mushroom:stripped_crimson_hyphae", { + description = S("Stripped Crimson Hyphae"), + _doc_items_longdesc = S("The stripped stem of a crimson hyphae"), + _doc_items_hidden = false, + tiles = {"stripped_crimson_stem_top.png", "stripped_crimson_stem_top.png", "stripped_crimson_stem_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + +minetest.register_node("mcl_mushroom:stripped_crimson_hyphae_bark", { + description = S("Stripped Crimson Hyphae Bark"), + _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), + tiles = {"stripped_crimson_stem_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + stack_max = 64, + groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + }) + +minetest.register_craft({ + output = "mcl_mushroom:stripped_crimson_hyphae_bark 3", + recipe = { + { "mcl_mushroom:stripped_crimson_hyphae", "mcl_mushroom:stripped_crimson_hyphae" }, + { "mcl_mushroom:stripped_crimson_hyphae", "mcl_mushroom:stripped_crimson_hyphae" }, + } + }) + +--Wood + minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { description = S("Crimson Hyphae Wood"), tiles = {"crimson_hyphae_wood.png"}, diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_side.png b/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6a41a2ed679bb4aeba43bb934944d4abb9606c GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bjnyzp(=aO1G^$e9Z_zZE z*!$=*P%78c#W95AI&bem!6OPhN6dV<6y&%Lw6XEsVfgkf{_@Am&dLv$R^AAjB4Ype z`o|o}i+-+_)ohy=$^J@W(w+H=eFC==>%K1%SGZcDXO&F(u;dnRk(%v3?rmrDFDxrK pdv)Qp9e3V&OHB>0vv8L9#s2-OsL-oROdvNgc)I$ztaD0e0sukTN5237 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_top.png b/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_top.png new file mode 100644 index 0000000000000000000000000000000000000000..21696b098b5138b428e35702de9a589d34010c68 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(aP17(c(ln}4*Kg4@=(BZM z>g2k|-Tg+4_lxS#?*=d9fXdoET^vI=uJfKTsO-HHwJNC*h4-GEOi&M* zIG5XMVd$b1v(Q$qhsWXJ8P3q c&DP|rudmSwXID!#0Xm7n)78&qol`;+0JS7o0{{R3 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_side.png b/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_side.png new file mode 100644 index 0000000000000000000000000000000000000000..db93c05cb449ae364df6f0653b72382c070aa62d GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWwJ`THv-GjD337CZa&=1d zaZ6wQ&%zrhTj=TH7{YO#_v}H@!wNhs7jqe{H4j{SoTqZx!GTvH_y5|K+jIUs@cz7E zp+#`b-u-RKr=&|`f2_ILT)9y1SAy7;lvV4QZYo}BvbK$T)hd*id8wdH{i@lCd0%#v x-!Qqqp!DI3#g1!>cD$V)qV@LRLAgT}|6&qk```DsaR4o6@O1TaS?83{1OR&;P*wl{ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_top.png b/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_top.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8f14800e6a14771a73a98efe5712a89a97963e GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnYwKVs(vkGvvi*U7%4suBi zaw`aS%a8S~$qAX56VX!_yDn|g>NcR_PEQxd5RU7-XKeYJ97J3np609g$D*sKwuy1+ zwXV31*9^(;Qmjm#?LDKnCM{*^rMb_nPb|3;v-Ff=w%V@s3v4b+)HNwjp7~W@L~-IR z{~Kqkl1rFh9huy3w!rjP%6z`H#`(YAZ74n6R_OBZar2zzt=Wt7I-_DYEKp8yJoTGv l)BMYuC0Qa>+q Date: Wed, 20 Apr 2022 00:29:44 +0000 Subject: [PATCH 16/39] Non flammable/modify by similiraty with trees --- mods/ITEMS/mcl_mushroom/init.lua | 76 ++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 18 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index e08a2b060..e03253abb 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -154,18 +154,26 @@ minetest.register_node("mcl_mushroom:shroomlight", { }) minetest.register_node("mcl_mushroom:warped_hyphae", { - description = S("Warped Hyphae"), - tiles = {"warped_hyphae.png", - "warped_hyphae.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - }, - groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Hyphae"), + _doc_items_longdesc = S("The stem of a warped hyphae"), + _doc_items_hidden = false, + tiles = { + "warped_hyphae.png", + "warped_hyphae.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + }, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + stack_max = 64, + _mcl_hardness = 2, + _mcl_stripped_variant = stripped_variant, }) minetest.register_node("mcl_mushroom:warped_nylium", { @@ -214,7 +222,7 @@ minetest.register_node("mcl_mushroom:warped_hyphae_bark", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1,axey=1, bark=1, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, on_rotate = on_rotate, @@ -239,7 +247,7 @@ minetest.register_node("mcl_mushroom:stripped_warped_hyphae", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1, axey=1, tree=1, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), on_rotate = on_rotate, _mcl_blast_resistance = 2, @@ -253,7 +261,7 @@ minetest.register_node("mcl_mushroom:stripped_warped_hyphae_bark", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1, axey=1, bark=1, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, on_rotate = on_rotate, @@ -272,12 +280,21 @@ minetest.register_craft({ --Wood minetest.register_node("mcl_mushroom:warped_hyphae_wood", { +<<<<<<< HEAD description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, paramtype2 = "facedir", stack_max = 64, _mcl_hardness = 2, +======= + description = S("Warped Hyphae Wood"), + tiles = {"warped_hyphae_wood.png"}, + groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1}, + --paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, +>>>>>>> 4850b914a (Non flammable/modify by similiraty with trees) }) mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) @@ -411,6 +428,7 @@ minetest.register_node("mcl_mushroom:crimson_roots", { }) minetest.register_node("mcl_mushroom:crimson_hyphae", { +<<<<<<< HEAD description = S("Crimson Hyphae"), tiles = {"crimson_hyphae.png", "crimson_hyphae.png", @@ -423,6 +441,28 @@ minetest.register_node("mcl_mushroom:crimson_hyphae", { paramtype2 = "facedir", stack_max = 64, _mcl_hardness = 2, +======= + description = S("Crimson Hyphae"), + _doc_items_longdesc = S("The stem of a crimson hyphae"), + _doc_items_hidden = false, + tiles = { + "crimson_hyphae.png", + "crimson_hyphae.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + }, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + stack_max = 64, + _mcl_hardness = 2, + _mcl_stripped_variant = stripped_variant, +>>>>>>> 4850b914a (Non flammable/modify by similiraty with trees) }) --Stem bark, stripped stem and bark @@ -434,7 +474,7 @@ minetest.register_node("mcl_mushroom:crimson_hyphae_bark", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1,axey=1, bark=1, building_block=1, material_wood=1,}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, on_rotate = on_rotate, @@ -459,7 +499,7 @@ minetest.register_node("mcl_mushroom:stripped_crimson_hyphae", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1, axey=1, tree=1, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), on_rotate = on_rotate, _mcl_blast_resistance = 2, @@ -473,7 +513,7 @@ minetest.register_node("mcl_mushroom:stripped_crimson_hyphae_bark", { paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1, axey=1, bark=1, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, on_rotate = on_rotate, From 686b62f6e3de7e8a88f32595949ce6143245c9b5 Mon Sep 17 00:00:00 2001 From: 3raven Date: Wed, 20 Apr 2022 04:32:13 +0000 Subject: [PATCH 17/39] fix fix --- mods/ITEMS/mcl_mushroom/init.lua | 50 +------------------------------- 1 file changed, 1 insertion(+), 49 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index e03253abb..7513ce4dc 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -35,19 +35,6 @@ minetest.register_node("mcl_mushroom:warped_fungus", { end end, _mcl_blast_resistance = 0, - - if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - itemstack:take_item() - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_warped_tree(pos) - end - end - end - end, - _mcl_blast_resistance = 0, stack_max = 64, }) @@ -173,7 +160,7 @@ minetest.register_node("mcl_mushroom:warped_hyphae", { _mcl_blast_resistance = 2, stack_max = 64, _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant, + _mcl_stripped_variant = "mcl_mushroom:stripped_warped_hyphae", }) minetest.register_node("mcl_mushroom:warped_nylium", { @@ -280,21 +267,12 @@ minetest.register_craft({ --Wood minetest.register_node("mcl_mushroom:warped_hyphae_wood", { -<<<<<<< HEAD description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, paramtype2 = "facedir", stack_max = 64, _mcl_hardness = 2, -======= - description = S("Warped Hyphae Wood"), - tiles = {"warped_hyphae_wood.png"}, - groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1}, - --paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, ->>>>>>> 4850b914a (Non flammable/modify by similiraty with trees) }) mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) @@ -344,17 +322,6 @@ minetest.register_abm({ elseif randomg == 7 then local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } generate_warped_tree(pos1) -<<<<<<< HEAD -======= - elseif randomg > 15 and randomg <= 45 then - grow_twisting_vines({ x = pos.x, y = pos.y, z = pos.z } ,math.random(1, 4)) - elseif randomg > 45 and randomg <= 50 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) - elseif randomg > 50 and randomg <= 150 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:nether_sprouts" }) - elseif randomg > 150 and randomg <= 250 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_roots" }) ->>>>>>> da0cb4853 (Add more decoration blocks.) end else minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) @@ -428,20 +395,6 @@ minetest.register_node("mcl_mushroom:crimson_roots", { }) minetest.register_node("mcl_mushroom:crimson_hyphae", { -<<<<<<< HEAD - description = S("Crimson Hyphae"), - tiles = {"crimson_hyphae.png", - "crimson_hyphae.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - }, - groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, -======= description = S("Crimson Hyphae"), _doc_items_longdesc = S("The stem of a crimson hyphae"), _doc_items_hidden = false, @@ -462,7 +415,6 @@ minetest.register_node("mcl_mushroom:crimson_hyphae", { stack_max = 64, _mcl_hardness = 2, _mcl_stripped_variant = stripped_variant, ->>>>>>> 4850b914a (Non flammable/modify by similiraty with trees) }) --Stem bark, stripped stem and bark From 9d5bbd7d22e038c0eaf649772fe8c9b0d91a321c Mon Sep 17 00:00:00 2001 From: 3raven Date: Sun, 24 Apr 2022 16:16:33 +0000 Subject: [PATCH 18/39] Correct name --- mods/ITEMS/mcl_mushroom/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 7513ce4dc..c63bede52 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -203,7 +203,7 @@ minetest.register_node("mcl_mushroom:warped_checknode", { --Stem bark, stripped stem and bark minetest.register_node("mcl_mushroom:warped_hyphae_bark", { - description = S("Warped Hyphae"), + description = S("Warped Hyphae Bark"), _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), tiles = {"warped_hyphae_side.png"}, paramtype2 = "facedir", @@ -420,7 +420,7 @@ minetest.register_node("mcl_mushroom:crimson_hyphae", { --Stem bark, stripped stem and bark minetest.register_node("mcl_mushroom:crimson_hyphae_bark", { - description = S("Crimson Hyphae"), + description = S("Crimson Hyphae Bark"), _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), tiles = {"crimson_hyphae_side.png"}, paramtype2 = "facedir", From 6af3fecacbac35d1a58af6e4966bc0ac048dad49 Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 4 May 2022 00:12:53 +0200 Subject: [PATCH 19/39] rename mcl_mushroom to mcl_crimson --- .../{mcl_mushroom => mcl_crimson}/init.lua | 190 +++++++++--------- .../locale/mcl_mushroom.fr.tr | 0 .../locale/mcl_mushrooms.de.tr | 0 .../locale/template.txt | 0 .../{mcl_mushroom => mcl_crimson}/mod.conf | 2 +- .../textures/crimson_hyphae.png | Bin .../textures/crimson_hyphae_side.png | Bin .../textures/crimson_hyphae_wood.png | Bin .../textures/crimson_nylium.png | Bin .../textures/crimson_nylium_side.png | Bin .../textures/crimson_roots.png | Bin .../textures/farming_crimson_fungus.png | Bin .../textures/farming_warped_fungus.png | Bin .../textures/nether_sprouts.png | Bin .../textures/nether_wart_block.png | Bin .../textures/shroomlight.png | Bin .../textures/stripped_crimson_stem_side.png | Bin .../textures/stripped_crimson_stem_top.png | Bin .../textures/stripped_warped_stem_side.png | Bin .../textures/stripped_warped_stem_top.png | Bin .../textures/twisting_vines.png | Bin .../textures/twisting_vines_plant.png | Bin .../textures/warped_hyphae.png | Bin .../textures/warped_hyphae_side.png | Bin .../textures/warped_hyphae_wood.png | Bin .../textures/warped_hyphae_wood_2nd.png | Bin .../textures/warped_nylium.png | Bin .../textures/warped_nylium_side.png | Bin .../textures/warped_roots.png | Bin .../textures/warped_wart_block.png | Bin 30 files changed, 96 insertions(+), 96 deletions(-) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/init.lua (81%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/locale/mcl_mushroom.fr.tr (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/locale/mcl_mushrooms.de.tr (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/locale/template.txt (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/mod.conf (60%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_hyphae.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_hyphae_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_hyphae_wood.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_nylium.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_nylium_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/crimson_roots.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/farming_crimson_fungus.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/farming_warped_fungus.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/nether_sprouts.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/nether_wart_block.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/shroomlight.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/stripped_crimson_stem_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/stripped_crimson_stem_top.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/stripped_warped_stem_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/stripped_warped_stem_top.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/twisting_vines.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/twisting_vines_plant.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_hyphae.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_hyphae_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_hyphae_wood.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_hyphae_wood_2nd.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_nylium.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_nylium_side.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_roots.png (100%) rename mods/ITEMS/{mcl_mushroom => mcl_crimson}/textures/warped_wart_block.png (100%) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_crimson/init.lua similarity index 81% rename from mods/ITEMS/mcl_mushroom/init.lua rename to mods/ITEMS/mcl_crimson/init.lua index c63bede52..567bae5a4 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -6,7 +6,7 @@ local S = minetest.get_translator("mcl_mushroom") -- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german -minetest.register_node("mcl_mushroom:warped_fungus", { +minetest.register_node("mcl_crimson:warped_fungus", { description = S("Warped Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_warped_fungus.png" }, @@ -26,7 +26,7 @@ minetest.register_node("mcl_mushroom:warped_fungus", { on_rightclick = function(pos, node, pointed_thing, player, itemstack) if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then local random = math.random(1, 5) if random == 1 then generate_warped_tree(pos) @@ -38,7 +38,7 @@ minetest.register_node("mcl_mushroom:warped_fungus", { stack_max = 64, }) -minetest.register_node("mcl_mushroom:twisting_vines", { +minetest.register_node("mcl_crimson:twisting_vines", { description = S("Twisting Vines"), drawtype = "plantlike", tiles = { "twisting_vines_plant.png" }, @@ -56,7 +56,7 @@ minetest.register_node("mcl_mushroom:twisting_vines", { node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, itemstack) - if pointed_thing:get_wielded_item():get_name() == "mcl_mushroom:twisting_vines" then + if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:twisting_vines" then itemstack:take_item() grow_twisting_vines(pos, 1) elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then @@ -67,20 +67,20 @@ minetest.register_node("mcl_mushroom:twisting_vines", { drop = { max_items = 1, items = { - {items = {"mcl_mushroom:twisting_vines"}, rarity = 3}, + {items = {"mcl_crimson:twisting_vines"}, rarity = 3}, } }, _mcl_shears_drop = true, _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 3},}, - items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 1.8181818181818181},}, - "mcl_mushroom:twisting_vines", - "mcl_mushroom:twisting_vines"}, + _mcl_fortune_drop = { items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 3},}, + items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 1.8181818181818181},}, + "mcl_crimson:twisting_vines", + "mcl_crimson:twisting_vines"}, _mcl_blast_resistance = 0, stack_max = 64, }) -minetest.register_node("mcl_mushroom:nether_sprouts", { +minetest.register_node("mcl_crimson:nether_sprouts", { description = S("Nether Sprouts"), drawtype = "plantlike", tiles = { "nether_sprouts.png" }, @@ -102,7 +102,7 @@ minetest.register_node("mcl_mushroom:nether_sprouts", { stack_max = 64, }) -minetest.register_node("mcl_mushroom:warped_roots", { +minetest.register_node("mcl_crimson:warped_roots", { description = S("Warped Roots"), drawtype = "plantlike", tiles = { "warped_roots.png" }, @@ -122,7 +122,7 @@ minetest.register_node("mcl_mushroom:warped_roots", { stack_max = 64, }) -minetest.register_node("mcl_mushroom:warped_wart_block", { +minetest.register_node("mcl_crimson:warped_wart_block", { description = S("Warped Wart Block"), tiles = {"warped_wart_block.png"}, groups = {handy=1,hoe=7,swordy=1, deco_block=1, }, @@ -130,7 +130,7 @@ minetest.register_node("mcl_mushroom:warped_wart_block", { _mcl_hardness = 2, }) -minetest.register_node("mcl_mushroom:shroomlight", { +minetest.register_node("mcl_crimson:shroomlight", { description = S("Shroomlight"), tiles = {"shroomlight.png"}, groups = {handy=1,hoe=7,swordy=1, leafdecay=1, leafdecay_distance=1, leaves=1, deco_block=1, }, @@ -140,7 +140,7 @@ minetest.register_node("mcl_mushroom:shroomlight", { light_source = 14, }) -minetest.register_node("mcl_mushroom:warped_hyphae", { +minetest.register_node("mcl_crimson:warped_hyphae", { description = S("Warped Hyphae"), _doc_items_longdesc = S("The stem of a warped hyphae"), _doc_items_hidden = false, @@ -160,10 +160,10 @@ minetest.register_node("mcl_mushroom:warped_hyphae", { _mcl_blast_resistance = 2, stack_max = 64, _mcl_hardness = 2, - _mcl_stripped_variant = "mcl_mushroom:stripped_warped_hyphae", + _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae", }) -minetest.register_node("mcl_mushroom:warped_nylium", { +minetest.register_node("mcl_crimson:warped_nylium", { description = S("Warped Nylium"), tiles = {"warped_nylium.png", "mcl_nether_netherrack.png", @@ -182,7 +182,7 @@ minetest.register_node("mcl_mushroom:warped_nylium", { _mcl_silk_touch_drop = true, }) -minetest.register_node("mcl_mushroom:warped_checknode", { +minetest.register_node("mcl_crimson:warped_checknode", { description = S("Warped Checknode - only to check!"), tiles = {"mcl_nether_netherrack.png", "mcl_nether_netherrack.png", @@ -202,7 +202,7 @@ minetest.register_node("mcl_mushroom:warped_checknode", { --Stem bark, stripped stem and bark -minetest.register_node("mcl_mushroom:warped_hyphae_bark", { +minetest.register_node("mcl_crimson:warped_hyphae_bark", { description = S("Warped Hyphae Bark"), _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), tiles = {"warped_hyphae_side.png"}, @@ -215,18 +215,18 @@ minetest.register_node("mcl_mushroom:warped_hyphae_bark", { on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, - _mcl_stripped_variant = "mcl_mushroom:stripped_warped_hyphae_bark", + _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae_bark", }) minetest.register_craft({ - output = "mcl_mushroom:warped_hyphae_bark 3", + output = "mcl_crimson:warped_hyphae_bark 3", recipe = { - { "mcl_mushroom:warped_hyphae", "mcl_mushroom:warped_hyphae" }, - { "mcl_mushroom:warped_hyphae", "mcl_mushroom:warped_hyphae" }, + { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, + { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, } }) -minetest.register_node("mcl_mushroom:stripped_warped_hyphae", { +minetest.register_node("mcl_crimson:stripped_warped_hyphae", { description = description_stripped_trunk, _doc_items_longdesc = longdesc, _doc_items_hidden = false, @@ -241,7 +241,7 @@ minetest.register_node("mcl_mushroom:stripped_warped_hyphae", { _mcl_hardness = 2, }) -minetest.register_node("mcl_mushroom:stripped_warped_hyphae_bark", { +minetest.register_node("mcl_crimson:stripped_warped_hyphae_bark", { description = description_stripped_bark, _doc_items_longdesc = longdesc_wood, tiles = {tile_stripped_bark}, @@ -257,16 +257,16 @@ minetest.register_node("mcl_mushroom:stripped_warped_hyphae_bark", { }) minetest.register_craft({ - output = "mcl_mushroom:stripped_warped_hyphae_bark 3", + output = "mcl_crimson:stripped_warped_hyphae_bark 3", recipe = { - { "mcl_mushroom:stripped_warped_hyphae", "mcl_mushroom:stripped_warped_hyphae" }, - { "mcl_mushroom:stripped_warped_hyphae", "mcl_mushroom:stripped_warped_hyphae" }, + { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, + { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, } }) --Wood -minetest.register_node("mcl_mushroom:warped_hyphae_wood", { +minetest.register_node("mcl_crimson:warped_hyphae_wood", { description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, @@ -275,31 +275,31 @@ minetest.register_node("mcl_mushroom:warped_hyphae_wood", { _mcl_hardness = 2, }) -mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) +mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_crimson:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) minetest.register_craft({ - output = "mcl_mushroom:warped_hyphae_wood 4", + output = "mcl_crimson:warped_hyphae_wood 4", recipe = { - {"mcl_mushroom:warped_hyphae"}, + {"mcl_crimson:warped_hyphae"}, } }) minetest.register_craft({ - output = "mcl_mushroom:warped_nyliumd 2", + output = "mcl_crimson:warped_nyliumd 2", recipe = { - {"mcl_mushroom:warped_wart_block"}, + {"mcl_crimson:warped_wart_block"}, {"mcl_nether:netherrack"}, } }) minetest.register_abm({ - label = "mcl_mushroom:warped_fungus", - nodenames = {"mcl_mushroom:warped_fungus"}, + label = "mcl_crimson:warped_fungus", + nodenames = {"mcl_crimson:warped_fungus"}, interval = 11, chance = 128, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then if pos.y < -28400 then generate_warped_tree(pos) end @@ -308,17 +308,17 @@ minetest.register_abm({ }) minetest.register_abm({ - label = "mcl_mushroom:warped_checknode", - nodenames = {"mcl_mushroom:warped_checknode"}, + label = "mcl_crimson:warped_checknode", + nodenames = {"mcl_crimson:warped_checknode"}, interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:warped_nylium" }) + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:warped_nylium" }) local randomg = math.random(1, 40) if randomg == 2 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) elseif randomg == 7 then local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } generate_warped_tree(pos1) @@ -331,7 +331,7 @@ minetest.register_abm({ mobs:spawn({ name = "mobs_mc:enderman", - nodes = "mcl_mushroom:warped_nylium", + nodes = "mcl_crimson:warped_nylium", max_light = 15, min_light = 0, chance = 300, @@ -341,7 +341,7 @@ mobs:spawn({ -minetest.register_node("mcl_mushroom:crimson_fungus", { +minetest.register_node("mcl_crimson:crimson_fungus", { description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_crimson_fungus.png" }, @@ -361,7 +361,7 @@ minetest.register_node("mcl_mushroom:crimson_fungus", { on_rightclick = function(pos, node, pointed_thing, player) if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then local random = math.random(1, 5) if random == 1 then generate_crimson_tree(pos) @@ -374,7 +374,7 @@ minetest.register_node("mcl_mushroom:crimson_fungus", { stack_max = 64, }) -minetest.register_node("mcl_mushroom:crimson_roots", { +minetest.register_node("mcl_crimson:crimson_roots", { description = S("Crimson Roots"), drawtype = "plantlike", tiles = { "crimson_roots.png" }, @@ -394,7 +394,7 @@ minetest.register_node("mcl_mushroom:crimson_roots", { stack_max = 64, }) -minetest.register_node("mcl_mushroom:crimson_hyphae", { +minetest.register_node("mcl_crimson:crimson_hyphae", { description = S("Crimson Hyphae"), _doc_items_longdesc = S("The stem of a crimson hyphae"), _doc_items_hidden = false, @@ -419,7 +419,7 @@ minetest.register_node("mcl_mushroom:crimson_hyphae", { --Stem bark, stripped stem and bark -minetest.register_node("mcl_mushroom:crimson_hyphae_bark", { +minetest.register_node("mcl_crimson:crimson_hyphae_bark", { description = S("Crimson Hyphae Bark"), _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), tiles = {"crimson_hyphae_side.png"}, @@ -432,18 +432,18 @@ minetest.register_node("mcl_mushroom:crimson_hyphae_bark", { on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, - _mcl_stripped_variant = "mcl_mushroom:stripped_crimson_hyphae_bark", + _mcl_stripped_variant = "mcl_crimson:stripped_crimson_hyphae_bark", }) minetest.register_craft({ - output = "mcl_mushroom:crimson_hyphae_bark 3", + output = "mcl_crimson:crimson_hyphae_bark 3", recipe = { - { "mcl_mushroom:crimson_hyphae", "mcl_mushroom:crimson_hyphae" }, - { "mcl_mushroom:crimson_hyphae", "mcl_mushroom:crimson_hyphae" }, + { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, + { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, } }) -minetest.register_node("mcl_mushroom:stripped_crimson_hyphae", { +minetest.register_node("mcl_crimson:stripped_crimson_hyphae", { description = S("Stripped Crimson Hyphae"), _doc_items_longdesc = S("The stripped stem of a crimson hyphae"), _doc_items_hidden = false, @@ -458,7 +458,7 @@ minetest.register_node("mcl_mushroom:stripped_crimson_hyphae", { _mcl_hardness = 2, }) -minetest.register_node("mcl_mushroom:stripped_crimson_hyphae_bark", { +minetest.register_node("mcl_crimson:stripped_crimson_hyphae_bark", { description = S("Stripped Crimson Hyphae Bark"), _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), tiles = {"stripped_crimson_stem_side.png"}, @@ -474,16 +474,16 @@ minetest.register_node("mcl_mushroom:stripped_crimson_hyphae_bark", { }) minetest.register_craft({ - output = "mcl_mushroom:stripped_crimson_hyphae_bark 3", + output = "mcl_crimson:stripped_crimson_hyphae_bark 3", recipe = { - { "mcl_mushroom:stripped_crimson_hyphae", "mcl_mushroom:stripped_crimson_hyphae" }, - { "mcl_mushroom:stripped_crimson_hyphae", "mcl_mushroom:stripped_crimson_hyphae" }, + { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, + { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, } }) --Wood -minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { +minetest.register_node("mcl_crimson:crimson_hyphae_wood", { description = S("Crimson Hyphae Wood"), tiles = {"crimson_hyphae_wood.png"}, groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, @@ -492,7 +492,7 @@ minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { _mcl_hardness = 2, }) -minetest.register_node("mcl_mushroom:crimson_nylium", { +minetest.register_node("mcl_crimson:crimson_nylium", { description = S("Crimson Nylium"), tiles = {"crimson_nylium.png", "mcl_nether_netherrack.png", @@ -511,7 +511,7 @@ minetest.register_node("mcl_mushroom:crimson_nylium", { _mcl_silk_touch_drop = true, }) -minetest.register_node("mcl_mushroom:crimson_checknode", { +minetest.register_node("mcl_crimson:crimson_checknode", { description = S("Crimson Checknode - only to check!"), tiles = {"mcl_nether_netherrack.png", "mcl_nether_netherrack.png", @@ -530,30 +530,30 @@ minetest.register_node("mcl_mushroom:crimson_checknode", { }) minetest.register_craft({ - output = "mcl_mushroom:crimson_hyphae_wood 4", + output = "mcl_crimson:crimson_hyphae_wood 4", recipe = { - {"mcl_mushroom:crimson_hyphae"}, + {"mcl_crimson:crimson_hyphae"}, } }) minetest.register_craft({ - output = "mcl_mushroom:crimson_nyliumd 2", + output = "mcl_crimson:crimson_nyliumd 2", recipe = { {"mcl_nether:nether_wart"}, {"mcl_nether:netherrack"}, } }) -mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") +mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_crimson:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") minetest.register_abm({ - label = "mcl_mushroom:crimson_fungus", - nodenames = {"mcl_mushroom:crimson_fungus"}, + label = "mcl_crimson:crimson_fungus", + nodenames = {"mcl_crimson:crimson_fungus"}, interval = 11, chance = 128, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then if pos.y < -28400 then generate_crimson_tree(pos) end @@ -562,24 +562,24 @@ minetest.register_abm({ }) minetest.register_abm({ - label = "mcl_mushroom:crimson_checknode", - nodenames = {"mcl_mushroom:crimson_checknode"}, + label = "mcl_crimson:crimson_checknode", + nodenames = {"mcl_crimson:crimson_checknode"}, interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:crimson_nylium" }) + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:crimson_nylium" }) local randomg = math.random(1, 400) if randomg <= 10 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_fungus" }) elseif randomg > 10 and randomg <= 25 then local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } generate_crimson_tree(pos1) elseif randomg > 25 and randomg <= 30 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) elseif randomg > 30 and randomg <= 130 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_roots" }) + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_roots" }) end else minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) @@ -613,12 +613,12 @@ function generate_warped_tree(pos) if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow = true end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow = true end for y = pos.y + 1, pos.y + 4 do if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow2 = true end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow2 = true end print(tostring(breakgrow)) if breakgrow == false then -- Warzen @@ -626,7 +626,7 @@ function generate_warped_tree(pos) for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) end end end @@ -635,34 +635,34 @@ function generate_warped_tree(pos) for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) end end end -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) -- Pilzlich local randomgenerate = math.random(1, 2) if randomgenerate == 1 then local randomx = math.random(-2, 2) local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) end local randomgenerate = math.random(1, 8) if randomgenerate == 4 then local randomx = math.random(-2, 2) local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) end -- Holz for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) --print("Placed at " .. x .. " " .. y .. " " .. z) end else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:warped_fungus" }) end + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:warped_fungus" }) end end end @@ -692,12 +692,12 @@ function generate_crimson_tree(pos) if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow = true end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow = true end for y = pos.y + 1, pos.y + 4 do if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow2 = true end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow2 = true end print(tostring(breakgrow)) if breakgrow == false then -- Warzen @@ -727,21 +727,21 @@ function generate_crimson_tree(pos) if randomgenerate == 1 then local randomx = math.random(-2, 2) local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) end local randomgenerate = math.random(1, 8) if randomgenerate == 4 then local randomx = math.random(-2, 2) local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) end -- Holz for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) --print("Placed at " .. x .. " " .. y .. " " .. z) end else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" }) end + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:crimson_fungus" }) end end end @@ -755,7 +755,7 @@ minetest.register_biome({ name = "WarpedForest", node_filler = "mcl_nether:netherrack", node_stone = "mcl_nether:netherrack", - node_top = "mcl_mushroom:warped_nylium", + node_top = "mcl_crimson:warped_nylium", node_water = "air", node_river_water = "air", y_min = -29065, @@ -767,7 +767,7 @@ minetest.register_biome({ }) minetest.register_decoration({ deco_type = "simple", - place_on = {"mcl_mushroom:warped_nylium"}, + place_on = {"mcl_crimson:warped_nylium"}, sidelen = 16, noise_params = { offset = 0.01, @@ -780,13 +780,13 @@ minetest.register_decoration({ biomes = {"WarpedForest"}, y_min = -29065, y_max = -28940 + 80, - decoration = "mcl_mushroom:warped_fungus", + decoration = "mcl_crimson:warped_fungus", }) ]] --[[ No Ore gen for now minetest.register_ore({ ore_type = "sheet", - ore = "mcl_mushroom:warped_checknode", + ore = "mcl_crimson:warped_checknode", -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally -- in v6, but instead set with the on_generated function in mcl_mapgen_core. wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, @@ -807,7 +807,7 @@ minetest.register_ore({ minetest.register_ore({ ore_type = "sheet", - ore = "mcl_mushroom:crimson_checknode", + ore = "mcl_crimson:crimson_checknode", -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally -- in v6, but instead set with the on_generated function in mcl_mapgen_core. wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, @@ -829,23 +829,23 @@ minetest.register_ore({ minetest.register_decoration({ deco_type = "simple", - place_on = {"mcl_mushroom:warped_nylium"}, + place_on = {"mcl_crimson:warped_nylium"}, sidelen = 16, fill_ratio = 0.1, biomes = {"Nether"}, y_max = -28940, y_min = -29065, - decoration = "mcl_mushroom:warped_fungus", + decoration = "mcl_crimson:warped_fungus", }) minetest.register_decoration({ deco_type = "simple", - place_on = {"mcl_mushroom:crimson_nylium"}, + place_on = {"mcl_crimson:crimson_nylium"}, sidelen = 16, fill_ratio = 0.1, biomes = {"Nether"}, y_max = -28940, y_min = -29065, - decoration = "mcl_mushroom:crimson_fungus", + decoration = "mcl_crimson:crimson_fungus", }) diff --git a/mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr b/mods/ITEMS/mcl_crimson/locale/mcl_mushroom.fr.tr similarity index 100% rename from mods/ITEMS/mcl_mushroom/locale/mcl_mushroom.fr.tr rename to mods/ITEMS/mcl_crimson/locale/mcl_mushroom.fr.tr diff --git a/mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr b/mods/ITEMS/mcl_crimson/locale/mcl_mushrooms.de.tr similarity index 100% rename from mods/ITEMS/mcl_mushroom/locale/mcl_mushrooms.de.tr rename to mods/ITEMS/mcl_crimson/locale/mcl_mushrooms.de.tr diff --git a/mods/ITEMS/mcl_mushroom/locale/template.txt b/mods/ITEMS/mcl_crimson/locale/template.txt similarity index 100% rename from mods/ITEMS/mcl_mushroom/locale/template.txt rename to mods/ITEMS/mcl_crimson/locale/template.txt diff --git a/mods/ITEMS/mcl_mushroom/mod.conf b/mods/ITEMS/mcl_crimson/mod.conf similarity index 60% rename from mods/ITEMS/mcl_mushroom/mod.conf rename to mods/ITEMS/mcl_crimson/mod.conf index 46f65179c..fa2afa590 100644 --- a/mods/ITEMS/mcl_mushroom/mod.conf +++ b/mods/ITEMS/mcl_crimson/mod.conf @@ -1,2 +1,2 @@ depends = mcl_stairs, mobs_mc -name = mcl_mushroom +name = mcl_crimson diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png b/mods/ITEMS/mcl_crimson/textures/crimson_hyphae.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_hyphae.png rename to mods/ITEMS/mcl_crimson/textures/crimson_hyphae.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_side.png b/mods/ITEMS/mcl_crimson/textures/crimson_hyphae_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_side.png rename to mods/ITEMS/mcl_crimson/textures/crimson_hyphae_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_wood.png b/mods/ITEMS/mcl_crimson/textures/crimson_hyphae_wood.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_hyphae_wood.png rename to mods/ITEMS/mcl_crimson/textures/crimson_hyphae_wood.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium.png b/mods/ITEMS/mcl_crimson/textures/crimson_nylium.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_nylium.png rename to mods/ITEMS/mcl_crimson/textures/crimson_nylium.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png b/mods/ITEMS/mcl_crimson/textures/crimson_nylium_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_nylium_side.png rename to mods/ITEMS/mcl_crimson/textures/crimson_nylium_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/crimson_roots.png b/mods/ITEMS/mcl_crimson/textures/crimson_roots.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/crimson_roots.png rename to mods/ITEMS/mcl_crimson/textures/crimson_roots.png diff --git a/mods/ITEMS/mcl_mushroom/textures/farming_crimson_fungus.png b/mods/ITEMS/mcl_crimson/textures/farming_crimson_fungus.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/farming_crimson_fungus.png rename to mods/ITEMS/mcl_crimson/textures/farming_crimson_fungus.png diff --git a/mods/ITEMS/mcl_mushroom/textures/farming_warped_fungus.png b/mods/ITEMS/mcl_crimson/textures/farming_warped_fungus.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/farming_warped_fungus.png rename to mods/ITEMS/mcl_crimson/textures/farming_warped_fungus.png diff --git a/mods/ITEMS/mcl_mushroom/textures/nether_sprouts.png b/mods/ITEMS/mcl_crimson/textures/nether_sprouts.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/nether_sprouts.png rename to mods/ITEMS/mcl_crimson/textures/nether_sprouts.png diff --git a/mods/ITEMS/mcl_mushroom/textures/nether_wart_block.png b/mods/ITEMS/mcl_crimson/textures/nether_wart_block.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/nether_wart_block.png rename to mods/ITEMS/mcl_crimson/textures/nether_wart_block.png diff --git a/mods/ITEMS/mcl_mushroom/textures/shroomlight.png b/mods/ITEMS/mcl_crimson/textures/shroomlight.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/shroomlight.png rename to mods/ITEMS/mcl_crimson/textures/shroomlight.png diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_side.png b/mods/ITEMS/mcl_crimson/textures/stripped_crimson_stem_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_side.png rename to mods/ITEMS/mcl_crimson/textures/stripped_crimson_stem_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_top.png b/mods/ITEMS/mcl_crimson/textures/stripped_crimson_stem_top.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/stripped_crimson_stem_top.png rename to mods/ITEMS/mcl_crimson/textures/stripped_crimson_stem_top.png diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_side.png b/mods/ITEMS/mcl_crimson/textures/stripped_warped_stem_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_side.png rename to mods/ITEMS/mcl_crimson/textures/stripped_warped_stem_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_top.png b/mods/ITEMS/mcl_crimson/textures/stripped_warped_stem_top.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/stripped_warped_stem_top.png rename to mods/ITEMS/mcl_crimson/textures/stripped_warped_stem_top.png diff --git a/mods/ITEMS/mcl_mushroom/textures/twisting_vines.png b/mods/ITEMS/mcl_crimson/textures/twisting_vines.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/twisting_vines.png rename to mods/ITEMS/mcl_crimson/textures/twisting_vines.png diff --git a/mods/ITEMS/mcl_mushroom/textures/twisting_vines_plant.png b/mods/ITEMS/mcl_crimson/textures/twisting_vines_plant.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/twisting_vines_plant.png rename to mods/ITEMS/mcl_crimson/textures/twisting_vines_plant.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png b/mods/ITEMS/mcl_crimson/textures/warped_hyphae.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_hyphae.png rename to mods/ITEMS/mcl_crimson/textures/warped_hyphae.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_side.png b/mods/ITEMS/mcl_crimson/textures/warped_hyphae_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_hyphae_side.png rename to mods/ITEMS/mcl_crimson/textures/warped_hyphae_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood.png b/mods/ITEMS/mcl_crimson/textures/warped_hyphae_wood.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood.png rename to mods/ITEMS/mcl_crimson/textures/warped_hyphae_wood.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood_2nd.png b/mods/ITEMS/mcl_crimson/textures/warped_hyphae_wood_2nd.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_hyphae_wood_2nd.png rename to mods/ITEMS/mcl_crimson/textures/warped_hyphae_wood_2nd.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_nylium.png b/mods/ITEMS/mcl_crimson/textures/warped_nylium.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_nylium.png rename to mods/ITEMS/mcl_crimson/textures/warped_nylium.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png b/mods/ITEMS/mcl_crimson/textures/warped_nylium_side.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_nylium_side.png rename to mods/ITEMS/mcl_crimson/textures/warped_nylium_side.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_roots.png b/mods/ITEMS/mcl_crimson/textures/warped_roots.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_roots.png rename to mods/ITEMS/mcl_crimson/textures/warped_roots.png diff --git a/mods/ITEMS/mcl_mushroom/textures/warped_wart_block.png b/mods/ITEMS/mcl_crimson/textures/warped_wart_block.png similarity index 100% rename from mods/ITEMS/mcl_mushroom/textures/warped_wart_block.png rename to mods/ITEMS/mcl_crimson/textures/warped_wart_block.png From 7d653011fce368ab66121465e65205bea04dff4a Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 4 May 2022 00:24:09 +0200 Subject: [PATCH 20/39] fix whitespace --- mods/ITEMS/mcl_crimson/init.lua | 842 ++++++++++++++++---------------- 1 file changed, 421 insertions(+), 421 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 567bae5a4..920665e39 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -7,7 +7,7 @@ local S = minetest.get_translator("mcl_mushroom") -- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german minetest.register_node("mcl_crimson:warped_fungus", { - description = S("Warped Fungus Mushroom"), + description = S("Warped Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_warped_fungus.png" }, inventory_image = "farming_warped_fungus.png", @@ -24,22 +24,22 @@ minetest.register_node("mcl_crimson:warped_fungus", { }, node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, player, itemstack) - if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_warped_tree(pos) - end - end - end - end, + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_warped_tree(pos) + end + end + end + end, _mcl_blast_resistance = 0, - stack_max = 64, + stack_max = 64, }) minetest.register_node("mcl_crimson:twisting_vines", { - description = S("Twisting Vines"), + description = S("Twisting Vines"), drawtype = "plantlike", tiles = { "twisting_vines_plant.png" }, inventory_image = "twisting_vines.png", @@ -57,11 +57,11 @@ minetest.register_node("mcl_crimson:twisting_vines", { on_rightclick = function(pos, node, pointed_thing, itemstack) if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:twisting_vines" then - itemstack:take_item() - grow_twisting_vines(pos, 1) + itemstack:take_item() + grow_twisting_vines(pos, 1) elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - itemstack:take_item() - grow_twisting_vines(pos, math.random(1, 3)) + itemstack:take_item() + grow_twisting_vines(pos, math.random(1, 3)) end end, drop = { @@ -73,15 +73,15 @@ minetest.register_node("mcl_crimson:twisting_vines", { _mcl_shears_drop = true, _mcl_silk_touch_drop = true, _mcl_fortune_drop = { items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 3},}, - items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 1.8181818181818181},}, + items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 1.8181818181818181},}, "mcl_crimson:twisting_vines", "mcl_crimson:twisting_vines"}, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_crimson:nether_sprouts", { - description = S("Nether Sprouts"), + description = S("Nether Sprouts"), drawtype = "plantlike", tiles = { "nether_sprouts.png" }, inventory_image = "nether_sprouts.png", @@ -98,12 +98,12 @@ minetest.register_node("mcl_crimson:nether_sprouts", { drop = "", _mcl_shears_drop = true, _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_crimson:warped_roots", { - description = S("Warped Roots"), + description = S("Warped Roots"), drawtype = "plantlike", tiles = { "warped_roots.png" }, inventory_image = "warped_roots.png", @@ -118,26 +118,26 @@ minetest.register_node("mcl_crimson:warped_roots", { }, node_placement_prediction = "", _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_crimson:warped_wart_block", { - description = S("Warped Wart Block"), - tiles = {"warped_wart_block.png"}, - groups = {handy=1,hoe=7,swordy=1, deco_block=1, }, - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Wart Block"), + tiles = {"warped_wart_block.png"}, + groups = {handy=1,hoe=7,swordy=1, deco_block=1, }, + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:shroomlight", { - description = S("Shroomlight"), - tiles = {"shroomlight.png"}, - groups = {handy=1,hoe=7,swordy=1, leafdecay=1, leafdecay_distance=1, leaves=1, deco_block=1, }, - stack_max = 64, - _mcl_hardness = 2, - -- this is 15 in Minecraft - light_source = 14, + description = S("Shroomlight"), + tiles = {"shroomlight.png"}, + groups = {handy=1,hoe=7,swordy=1, leafdecay=1, leafdecay_distance=1, leaves=1, deco_block=1, }, + stack_max = 64, + _mcl_hardness = 2, + -- this is 15 in Minecraft + light_source = 14, }) minetest.register_node("mcl_crimson:warped_hyphae", { @@ -146,12 +146,12 @@ minetest.register_node("mcl_crimson:warped_hyphae", { _doc_items_hidden = false, tiles = { "warped_hyphae.png", - "warped_hyphae.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - }, + "warped_hyphae.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + }, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, @@ -164,40 +164,40 @@ minetest.register_node("mcl_crimson:warped_hyphae", { }) minetest.register_node("mcl_crimson:warped_nylium", { - description = S("Warped Nylium"), - tiles = {"warped_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack", - _mcl_silk_touch_drop = true, + description = S("Warped Nylium"), + tiles = {"warped_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_crimson:warped_checknode", { - description = S("Warped Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" + description = S("Warped Checknode - only to check!"), + tiles = {"mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" }) --Stem bark, stripped stem and bark @@ -267,29 +267,29 @@ minetest.register_craft({ --Wood minetest.register_node("mcl_crimson:warped_hyphae_wood", { - description = S("Warped Hyphae Wood"), - tiles = {"warped_hyphae_wood.png"}, - groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Hyphae Wood"), + tiles = {"warped_hyphae_wood.png"}, + groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_crimson:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) minetest.register_craft({ - output = "mcl_crimson:warped_hyphae_wood 4", - recipe = { - {"mcl_crimson:warped_hyphae"}, - } + output = "mcl_crimson:warped_hyphae_wood 4", + recipe = { + {"mcl_crimson:warped_hyphae"}, + } }) minetest.register_craft({ - output = "mcl_crimson:warped_nyliumd 2", - recipe = { - {"mcl_crimson:warped_wart_block"}, - {"mcl_nether:netherrack"}, - } + output = "mcl_crimson:warped_nyliumd 2", + recipe = { + {"mcl_crimson:warped_wart_block"}, + {"mcl_nether:netherrack"}, + } }) minetest.register_abm({ @@ -298,13 +298,13 @@ minetest.register_abm({ interval = 11, chance = 128, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_warped_tree(pos) - end - end - end + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_warped_tree(pos) + end + end + end }) minetest.register_abm({ @@ -313,36 +313,36 @@ minetest.register_abm({ interval = 1, chance = 1, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) - if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:warped_nylium" }) - local randomg = math.random(1, 40) - if randomg == 2 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) - elseif randomg == 7 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_warped_tree(pos1) - end - else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) - end - end + local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) + if nodepos.name == "air" then + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:warped_nylium" }) + local randomg = math.random(1, 40) + if randomg == 2 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) + elseif randomg == 7 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_warped_tree(pos1) + end + else + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + end + end }) mobs:spawn({ - name = "mobs_mc:enderman", - nodes = "mcl_crimson:warped_nylium", - max_light = 15, - min_light = 0, - chance = 300, - active_object_count = 20, - max_height = -28940, + name = "mobs_mc:enderman", + nodes = "mcl_crimson:warped_nylium", + max_light = 15, + min_light = 0, + chance = 300, + active_object_count = 20, + max_height = -28940, }) minetest.register_node("mcl_crimson:crimson_fungus", { - description = S("Crimson Fungus Mushroom"), + description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_crimson_fungus.png" }, inventory_image = "farming_crimson_fungus.png", @@ -359,23 +359,23 @@ minetest.register_node("mcl_crimson:crimson_fungus", { }, node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, player) - if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_crimson_tree(pos) - end - end - end - end, + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_crimson_tree(pos) + end + end + end + end, _mcl_blast_resistance = 0, - stack_max = 64, + stack_max = 64, }) minetest.register_node("mcl_crimson:crimson_roots", { - description = S("Crimson Roots"), + description = S("Crimson Roots"), drawtype = "plantlike", tiles = { "crimson_roots.png" }, inventory_image = "crimson_roots.png", @@ -390,8 +390,8 @@ minetest.register_node("mcl_crimson:crimson_roots", { }, node_placement_prediction = "", _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_crimson:crimson_hyphae", { @@ -400,12 +400,12 @@ minetest.register_node("mcl_crimson:crimson_hyphae", { _doc_items_hidden = false, tiles = { "crimson_hyphae.png", - "crimson_hyphae.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - }, + "crimson_hyphae.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + }, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, @@ -459,7 +459,7 @@ minetest.register_node("mcl_crimson:stripped_crimson_hyphae", { }) minetest.register_node("mcl_crimson:stripped_crimson_hyphae_bark", { - description = S("Stripped Crimson Hyphae Bark"), + description = S("Stripped Crimson Hyphae Bark"), _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), tiles = {"stripped_crimson_stem_side.png"}, paramtype2 = "facedir", @@ -484,64 +484,64 @@ minetest.register_craft({ --Wood minetest.register_node("mcl_crimson:crimson_hyphae_wood", { - description = S("Crimson Hyphae Wood"), - tiles = {"crimson_hyphae_wood.png"}, - groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Crimson Hyphae Wood"), + tiles = {"crimson_hyphae_wood.png"}, + groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:crimson_nylium", { - description = S("Crimson Nylium"), - tiles = {"crimson_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack", - _mcl_silk_touch_drop = true, + description = S("Crimson Nylium"), + tiles = {"crimson_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_crimson:crimson_checknode", { - description = S("Crimson Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" + description = S("Crimson Checknode - only to check!"), + tiles = {"mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" }) minetest.register_craft({ - output = "mcl_crimson:crimson_hyphae_wood 4", - recipe = { - {"mcl_crimson:crimson_hyphae"}, - } + output = "mcl_crimson:crimson_hyphae_wood 4", + recipe = { + {"mcl_crimson:crimson_hyphae"}, + } }) minetest.register_craft({ - output = "mcl_crimson:crimson_nyliumd 2", - recipe = { - {"mcl_nether:nether_wart"}, - {"mcl_nether:netherrack"}, - } + output = "mcl_crimson:crimson_nyliumd 2", + recipe = { + {"mcl_nether:nether_wart"}, + {"mcl_nether:netherrack"}, + } }) mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_crimson:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") @@ -552,13 +552,13 @@ minetest.register_abm({ interval = 11, chance = 128, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_crimson_tree(pos) - end - end - end + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_crimson_tree(pos) + end + end + end }) minetest.register_abm({ @@ -567,182 +567,182 @@ minetest.register_abm({ interval = 1, chance = 1, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) - if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:crimson_nylium" }) + local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) + if nodepos.name == "air" then + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:crimson_nylium" }) local randomg = math.random(1, 400) - if randomg <= 10 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_fungus" }) - elseif randomg > 10 and randomg <= 25 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_crimson_tree(pos1) + if randomg <= 10 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_fungus" }) + elseif randomg > 10 and randomg <= 25 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_crimson_tree(pos1) elseif randomg > 25 and randomg <= 30 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) elseif randomg > 30 and randomg <= 130 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_roots" }) - end - else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) - end - end + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_roots" }) + end + else + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + end + end }) function generate_warped_tree(pos) - breakgrow = false - breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end + breakgrow = false + breakgrow2 = false + -- Baumgenerator + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end - -- fünfte Etage + -- fünfte Etage if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - -- Holz + -- Holz if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow2 = true end - print(tostring(breakgrow)) - if breakgrow == false then + print(tostring(breakgrow)) + if breakgrow == false then -- Warzen -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) - end - end - end + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) + end + end + end - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:warped_fungus" }) end - end + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:warped_fungus" }) end + end end function generate_crimson_tree(pos) - breakgrow = false - breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end + breakgrow = false + breakgrow2 = false + -- Baumgenerator + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end + end + end + end - -- fünfte Etage + -- fünfte Etage if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - -- Holz + -- Holz if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow2 = true end - print(tostring(breakgrow)) - if breakgrow == false then + print(tostring(breakgrow)) + if breakgrow == false then -- Warzen -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:crimson_fungus" }) end - end + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:crimson_fungus" }) end + end end @@ -752,100 +752,100 @@ FIXME: Decoration don't do generate WARNING: Outdatet, the biomes gernerate now different, with Ores -- biomes in test! minetest.register_biome({ - name = "WarpedForest", - node_filler = "mcl_nether:netherrack", - node_stone = "mcl_nether:netherrack", - node_top = "mcl_crimson:warped_nylium", - node_water = "air", - node_river_water = "air", - y_min = -29065, - y_max = -28940, - heat_point = 100, - humidity_point = 0, - _mcl_biome_type = "hot", - _mcl_palette_index = 19, + name = "WarpedForest", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_crimson:warped_nylium", + node_water = "air", + node_river_water = "air", + y_min = -29065, + y_max = -28940, + heat_point = 100, + humidity_point = 0, + _mcl_biome_type = "hot", + _mcl_palette_index = 19, }) minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:warped_nylium"}, - sidelen = 16, - noise_params = { - offset = 0.01, - scale = 0.0022, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"WarpedForest"}, - y_min = -29065, - y_max = -28940 + 80, - decoration = "mcl_crimson:warped_fungus", + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium"}, + sidelen = 16, + noise_params = { + offset = 0.01, + scale = 0.0022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"WarpedForest"}, + y_min = -29065, + y_max = -28940 + 80, + decoration = "mcl_crimson:warped_fungus", }) ]] --[[ No Ore gen for now minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_crimson:warped_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 14 * 14 * 14, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.1, - spread = {x = 8, y = 8, z = 8}, - seed = 4996, - octaves = 1, - persist = 0.0 - }, + ore_type = "sheet", + ore = "mcl_crimson:warped_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 14 * 14 * 14, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.1, + spread = {x = 8, y = 8, z = 8}, + seed = 4996, + octaves = 1, + persist = 0.0 + }, }) minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_crimson:crimson_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 10 * 10 * 10, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 1, - scale = 0.5, - spread = {x = 12, y = 12, z = 12}, - seed = 12948, - octaves = 1, - persist = 0.0 - }, + ore_type = "sheet", + ore = "mcl_crimson:crimson_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 10 * 10 * 10, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 1, + scale = 0.5, + spread = {x = 12, y = 12, z = 12}, + seed = 12948, + octaves = 1, + persist = 0.0 + }, }) --]] minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:warped_nylium"}, - sidelen = 16, - fill_ratio = 0.1, - biomes = {"Nether"}, - y_max = -28940, - y_min = -29065, - decoration = "mcl_crimson:warped_fungus", + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"Nether"}, + y_max = -28940, + y_min = -29065, + decoration = "mcl_crimson:warped_fungus", }) minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:crimson_nylium"}, - sidelen = 16, - fill_ratio = 0.1, - biomes = {"Nether"}, - y_max = -28940, - y_min = -29065, - decoration = "mcl_crimson:crimson_fungus", + deco_type = "simple", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"Nether"}, + y_max = -28940, + y_min = -29065, + decoration = "mcl_crimson:crimson_fungus", }) From f285e18d24431e6ee3366fbb6d396b7405aaf9e2 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 4 May 2022 12:23:08 +0200 Subject: [PATCH 21/39] Fix some codestyle issues with `mcl_crimson` --- mods/ITEMS/mcl_crimson/init.lua | 656 +++++++++--------- ...{mcl_mushrooms.de.tr => mcl_crimson.de.tr} | 2 +- .../{mcl_mushroom.fr.tr => mcl_crimson.fr.tr} | 2 +- mods/ITEMS/mcl_crimson/locale/template.txt | 2 +- mods/ITEMS/mcl_crimson/mod.conf | 4 +- 5 files changed, 320 insertions(+), 346 deletions(-) rename mods/ITEMS/mcl_crimson/locale/{mcl_mushrooms.de.tr => mcl_crimson.de.tr} (96%) rename mods/ITEMS/mcl_crimson/locale/{mcl_mushroom.fr.tr => mcl_crimson.fr.tr} (93%) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 920665e39..272adc113 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -1,4 +1,4 @@ -local S = minetest.get_translator("mcl_mushroom") +local S = minetest.get_translator("mcl_crimson") -- Warped fungus -- Crimson fungus @@ -16,7 +16,6 @@ minetest.register_node("mcl_crimson:warped_fungus", { paramtype = "light", walkable = false, groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, - light_source = 1, selection_box = { type = "fixed", @@ -24,18 +23,17 @@ minetest.register_node("mcl_crimson:warped_fungus", { }, node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, player, itemstack) - if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_warped_tree(pos) + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_warped_tree(pos) + end + end end - end - end end, _mcl_blast_resistance = 0, - stack_max = 64, }) minetest.register_node("mcl_crimson:twisting_vines", { @@ -55,29 +53,33 @@ minetest.register_node("mcl_crimson:twisting_vines", { }, node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, itemstack) - - if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:twisting_vines" then + if pointed_thing:get_wielded_item():get_name() == "mcl_crimson:twisting_vines" then itemstack:take_item() grow_twisting_vines(pos, 1) - elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + elseif pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then itemstack:take_item() grow_twisting_vines(pos, math.random(1, 3)) - end + end end, drop = { - max_items = 1, - items = { + max_items = 1, + items = { {items = {"mcl_crimson:twisting_vines"}, rarity = 3}, - } + }, }, _mcl_shears_drop = true, _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 3},}, - items = {{items = {"mcl_crimson:twisting_vines"}, rarity = 1.8181818181818181},}, - "mcl_crimson:twisting_vines", - "mcl_crimson:twisting_vines"}, + _mcl_fortune_drop = { + items = { + {items = {"mcl_crimson:twisting_vines"}, rarity = 3}, + }, + items = { + {items = {"mcl_crimson:twisting_vines"}, rarity = 1.8181818181818181}, + }, + "mcl_crimson:twisting_vines", + "mcl_crimson:twisting_vines", + }, _mcl_blast_resistance = 0, - stack_max = 64, }) minetest.register_node("mcl_crimson:nether_sprouts", { @@ -99,7 +101,6 @@ minetest.register_node("mcl_crimson:nether_sprouts", { _mcl_shears_drop = true, _mcl_silk_touch_drop = false, _mcl_blast_resistance = 0, - stack_max = 64, }) minetest.register_node("mcl_crimson:warped_roots", { @@ -119,25 +120,22 @@ minetest.register_node("mcl_crimson:warped_roots", { node_placement_prediction = "", _mcl_silk_touch_drop = false, _mcl_blast_resistance = 0, - stack_max = 64, }) minetest.register_node("mcl_crimson:warped_wart_block", { description = S("Warped Wart Block"), tiles = {"warped_wart_block.png"}, - groups = {handy=1,hoe=7,swordy=1, deco_block=1, }, - stack_max = 64, + groups = {handy = 1, hoe = 7, swordy = 1, deco_block = 1}, _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:shroomlight", { description = S("Shroomlight"), tiles = {"shroomlight.png"}, - groups = {handy=1,hoe=7,swordy=1, leafdecay=1, leafdecay_distance=1, leaves=1, deco_block=1, }, - stack_max = 64, - _mcl_hardness = 2, + groups = {handy = 1, hoe = 7, swordy = 1, leafdecay = 1, leafdecay_distance = 1, leaves = 1, deco_block = 1}, -- this is 15 in Minecraft light_source = 14, + _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:warped_hyphae", { @@ -154,46 +152,38 @@ minetest.register_node("mcl_crimson:warped_hyphae", { }, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, - groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, + groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), on_rotate = on_rotate, _mcl_blast_resistance = 2, - stack_max = 64, _mcl_hardness = 2, _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae", }) minetest.register_node("mcl_crimson:warped_nylium", { description = S("Warped Nylium"), - tiles = {"warped_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, + tiles = { + "warped_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + }, paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, is_ground_content = true, drop = "mcl_nether:netherrack", + groups = {pickaxey=1, building_block=1, material_stone=1}, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_crimson:warped_checknode", { description = S("Warped Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + tiles = {"mcl_nether_netherrack.png"}, + groups = {pickaxey = 1, building_block = 1, material_stone = 1, not_in_creative_inventory = 1}, paramtype2 = "facedir", - stack_max = 64, _mcl_hardness = 0.4, _mcl_blast_resistance = 0.4, is_ground_content = true, @@ -203,75 +193,71 @@ minetest.register_node("mcl_crimson:warped_checknode", { --Stem bark, stripped stem and bark minetest.register_node("mcl_crimson:warped_hyphae_bark", { - description = S("Warped Hyphae Bark"), - _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), - tiles = {"warped_hyphae_side.png"}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, bark=1, building_block=1, material_wood=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae_bark", - }) + description = S("Warped Hyphae Bark"), + _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), + tiles = {"warped_hyphae_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae_bark", +}) minetest.register_craft({ - output = "mcl_crimson:warped_hyphae_bark 3", - recipe = { - { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, - { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, - } - }) + output = "mcl_crimson:warped_hyphae_bark 3", + recipe = { + { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, + { "mcl_crimson:warped_hyphae", "mcl_crimson:warped_hyphae" }, + }, +}) minetest.register_node("mcl_crimson:stripped_warped_hyphae", { - description = description_stripped_trunk, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, tree=1, building_block=1, material_wood=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) + description = description_stripped_trunk, + _doc_items_longdesc = longdesc, + _doc_items_hidden = false, + tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, +}) minetest.register_node("mcl_crimson:stripped_warped_hyphae_bark", { - description = description_stripped_bark, - _doc_items_longdesc = longdesc_wood, - tiles = {tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, bark=1, building_block=1, material_wood=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) + description = description_stripped_bark, + _doc_items_longdesc = longdesc_wood, + tiles = {tile_stripped_bark}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, +}) minetest.register_craft({ - output = "mcl_crimson:stripped_warped_hyphae_bark 3", - recipe = { - { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, - { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, - } - }) + output = "mcl_crimson:stripped_warped_hyphae_bark 3", + recipe = { + { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, + { "mcl_crimson:stripped_warped_hyphae", "mcl_crimson:stripped_warped_hyphae" }, + }, +}) --Wood minetest.register_node("mcl_crimson:warped_hyphae_wood", { description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, - groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + groups = {handy = 5,axey = 1, flammable = 3, wood=1,building_block = 1, material_wood = 1, fire_encouragement = 5, fire_flammability = 20}, paramtype2 = "facedir", - stack_max = 64, _mcl_hardness = 2, }) @@ -280,16 +266,16 @@ mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_crimson:war minetest.register_craft({ output = "mcl_crimson:warped_hyphae_wood 4", recipe = { - {"mcl_crimson:warped_hyphae"}, - } + {"mcl_crimson:warped_hyphae"}, + }, }) minetest.register_craft({ output = "mcl_crimson:warped_nyliumd 2", recipe = { - {"mcl_crimson:warped_wart_block"}, - {"mcl_nether:netherrack"}, - } + {"mcl_crimson:warped_wart_block"}, + {"mcl_nether:netherrack"}, + }, }) minetest.register_abm({ @@ -298,13 +284,13 @@ minetest.register_abm({ interval = 11, chance = 128, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_warped_tree(pos) + local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0)) + if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_warped_tree(pos) + end end end - end }) minetest.register_abm({ @@ -313,20 +299,20 @@ minetest.register_abm({ interval = 1, chance = 1, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) - if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:warped_nylium" }) - local randomg = math.random(1, 40) - if randomg == 2 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) - elseif randomg == 7 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_warped_tree(pos1) + local pos1 = vector.offset(pos, 0, 1, 0) + local nodepos = minetest.get_node(pos1) + if nodepos.name == "air" then + minetest.swap_node(pos, { name = "mcl_crimson:warped_nylium" }) + local randomg = math.random(1, 40) + if randomg == 2 then + minetest.set_node(pos1, { name = "mcl_crimson:warped_fungus" }) + elseif randomg == 7 then + generate_warped_tree(pos1) + end + else + minetest.swap_node(pos, { name = "mcl_nether:netherrack" }) end - else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) - end - end + end, }) mobs:spawn({ @@ -339,8 +325,6 @@ mobs:spawn({ max_height = -28940, }) - - minetest.register_node("mcl_crimson:crimson_fungus", { description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", @@ -351,7 +335,6 @@ minetest.register_node("mcl_crimson:crimson_fungus", { paramtype = "light", walkable = false, groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, - light_source = 1, selection_box = { type = "fixed", @@ -359,19 +342,17 @@ minetest.register_node("mcl_crimson:crimson_fungus", { }, node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, player) - if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_crimson_tree(pos) + if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then + local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0)) + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_crimson_tree(pos) + end + end end - end - end end, _mcl_blast_resistance = 0, - - stack_max = 64, }) minetest.register_node("mcl_crimson:crimson_roots", { @@ -391,7 +372,6 @@ minetest.register_node("mcl_crimson:crimson_roots", { node_placement_prediction = "", _mcl_silk_touch_drop = false, _mcl_blast_resistance = 0, - stack_max = 64, }) minetest.register_node("mcl_crimson:crimson_hyphae", { @@ -408,11 +388,10 @@ minetest.register_node("mcl_crimson:crimson_hyphae", { }, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, - groups = {handy=1,axey=1, tree=1, building_block=1, material_wood=1}, + groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), on_rotate = on_rotate, _mcl_blast_resistance = 2, - stack_max = 64, _mcl_hardness = 2, _mcl_stripped_variant = stripped_variant, }) @@ -420,128 +399,117 @@ minetest.register_node("mcl_crimson:crimson_hyphae", { --Stem bark, stripped stem and bark minetest.register_node("mcl_crimson:crimson_hyphae_bark", { - description = S("Crimson Hyphae Bark"), - _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), - tiles = {"crimson_hyphae_side.png"}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, bark=1, building_block=1, material_wood=1,}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = "mcl_crimson:stripped_crimson_hyphae_bark", - }) + description = S("Crimson Hyphae Bark"), + _doc_items_longdesc = S("This is a decorative block surrounded by the bark of an hyphae."), + tiles = {"crimson_hyphae_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, + _mcl_stripped_variant = "mcl_crimson:stripped_crimson_hyphae_bark", +}) minetest.register_craft({ - output = "mcl_crimson:crimson_hyphae_bark 3", - recipe = { - { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, - { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, - } - }) + output = "mcl_crimson:crimson_hyphae_bark 3", + recipe = { + { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, + { "mcl_crimson:crimson_hyphae", "mcl_crimson:crimson_hyphae" }, + }, +}) minetest.register_node("mcl_crimson:stripped_crimson_hyphae", { - description = S("Stripped Crimson Hyphae"), - _doc_items_longdesc = S("The stripped stem of a crimson hyphae"), - _doc_items_hidden = false, - tiles = {"stripped_crimson_stem_top.png", "stripped_crimson_stem_top.png", "stripped_crimson_stem_side.png"}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, tree=1, building_block=1, material_wood=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) + description = S("Stripped Crimson Hyphae"), + _doc_items_longdesc = S("The stripped stem of a crimson hyphae"), + _doc_items_hidden = false, + tiles = {"stripped_crimson_stem_top.png", "stripped_crimson_stem_top.png", "stripped_crimson_stem_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, +}) minetest.register_node("mcl_crimson:stripped_crimson_hyphae_bark", { - description = S("Stripped Crimson Hyphae Bark"), - _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), - tiles = {"stripped_crimson_stem_side.png"}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, bark=1, building_block=1, material_wood=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) + description = S("Stripped Crimson Hyphae Bark"), + _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), + tiles = {"stripped_crimson_stem_side.png"}, + paramtype2 = "facedir", + on_place = mcl_util.rotate_axis, + groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, + sounds = mcl_sounds.node_sound_wood_defaults(), + is_ground_content = false, + on_rotate = on_rotate, + _mcl_blast_resistance = 2, + _mcl_hardness = 2, +}) minetest.register_craft({ - output = "mcl_crimson:stripped_crimson_hyphae_bark 3", - recipe = { - { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, - { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, - } - }) + output = "mcl_crimson:stripped_crimson_hyphae_bark 3", + recipe = { + { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, + { "mcl_crimson:stripped_crimson_hyphae", "mcl_crimson:stripped_crimson_hyphae" }, + }, +}) --Wood minetest.register_node("mcl_crimson:crimson_hyphae_wood", { description = S("Crimson Hyphae Wood"), tiles = {"crimson_hyphae_wood.png"}, - groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, + groups = {handy = 5, axey = 1, wood = 1, building_block = 1, material_wood = 1}, paramtype2 = "facedir", - stack_max = 64, _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:crimson_nylium", { description = S("Crimson Nylium"), - tiles = {"crimson_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, + tiles = { + "crimson_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + }, + groups = {pickaxey = 1, building_block = 1, material_stone = 1}, paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, is_ground_content = true, drop = "mcl_nether:netherrack", + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_crimson:crimson_checknode", { description = S("Crimson Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + tiles = {"mcl_nether_netherrack.png"}, + groups = {pickaxey = 1, building_block = 1, material_stone = 1, not_in_creative_inventory = 1}, paramtype2 = "facedir", - stack_max = 64, + is_ground_content = true, + drop = "mcl_nether:netherrack", _mcl_hardness = 0.4, _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" }) minetest.register_craft({ output = "mcl_crimson:crimson_hyphae_wood 4", recipe = { - {"mcl_crimson:crimson_hyphae"}, - } + {"mcl_crimson:crimson_hyphae"}, + }, }) minetest.register_craft({ output = "mcl_crimson:crimson_nyliumd 2", recipe = { - {"mcl_nether:nether_wart"}, - {"mcl_nether:netherrack"}, - } + {"mcl_nether:nether_wart"}, + {"mcl_nether:netherrack"}, + }, }) mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_crimson:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") @@ -552,13 +520,13 @@ minetest.register_abm({ interval = 11, chance = 128, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_crimson_tree(pos) + local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0)) + if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + if pos.y < -28400 then + generate_crimson_tree(pos) + end end end - end }) minetest.register_abm({ @@ -567,181 +535,183 @@ minetest.register_abm({ interval = 1, chance = 1, action = function(pos) - local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) - if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_crimson:crimson_nylium" }) + local pos1 = vector.offset(pos, 0, 1, 0) + local nodepos = minetest.get_node(pos1) + if nodepos.name == "air" then + minetest.swap_node(pos, { name = "mcl_crimson:crimson_nylium" }) + local randomg = math.random(1, 400) - if randomg <= 10 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_fungus" }) - elseif randomg > 10 and randomg <= 25 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_crimson_tree(pos1) + + if randomg <= 10 then + minetest.set_node(pos1, { name = "mcl_crimson:crimson_fungus" }) + elseif randomg > 10 and randomg <= 25 then + generate_crimson_tree(pos1) elseif randomg > 25 and randomg <= 30 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:warped_fungus" }) + minetest.set_node(pos1, { name = "mcl_crimson:warped_fungus" }) elseif randomg > 30 and randomg <= 130 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_crimson:crimson_roots" }) + minetest.set_node(pos1, { name = "mcl_crimson:crimson_roots" }) + end + else + minetest.swap_node(pos, { name = "mcl_nether:netherrack" }) end - else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) - end end }) -function generate_warped_tree(pos) - breakgrow = false - breakgrow2 = false +local function generate_warped_tree(pos) + local breakgrow = false + local breakgrow2 = false -- Baumgenerator -- erste und zweite Etage for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end end end - + end + -- dritte und vierte Etage for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end end end + end -- fünfte Etage if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow2 = true end - print(tostring(breakgrow)) + -- Holz + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow = true end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + --print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow2 = true end + --print(tostring(breakgrow)) if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do + -- Warzen + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) + minetest.set_node(vector.new(x, y, z), { name = "mcl_crimson:warped_wart_block" }) end end end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_crimson:warped_wart_block" }) + minetest.set_node(vector.new(x, y, z), { name = "mcl_crimson:warped_wart_block" }) end end end - - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) + + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:warped_fungus" }) end + if breakgrow2 == false then minetest.set_node(pos, { name = "mcl_crimson:warped_fungus" }) end end end function generate_crimson_tree(pos) - breakgrow = false - breakgrow2 = false + local breakgrow = false + local breakgrow2 = false -- Baumgenerator -- erste und zweite Etage for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end end end - + end + -- dritte und vierte Etage for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end end end - + end + -- fünfte Etage if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow2 = true end - print(tostring(breakgrow)) + -- Holz + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow = true end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end + --print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow2 = true end + --print(tostring(breakgrow)) if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do + -- Warzen + -- erste und zweite Etage + for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) end end end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do + + -- dritte und vierte Etage + for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) end end end - - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end + -- fünfte Etage + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + + -- Pilzlich + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) + end + -- Holz + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_crimson:crimson_fungus" }) end + if breakgrow2 == false then minetest.set_node(pos, { name = "mcl_crimson:crimson_fungus" }) end end end @@ -827,6 +797,7 @@ minetest.register_ore({ }) --]] +--[[ minetest.register_decoration({ deco_type = "simple", place_on = {"mcl_crimson:warped_nylium"}, @@ -849,3 +820,4 @@ minetest.register_decoration({ y_min = -29065, decoration = "mcl_crimson:crimson_fungus", }) +]] \ No newline at end of file diff --git a/mods/ITEMS/mcl_crimson/locale/mcl_mushrooms.de.tr b/mods/ITEMS/mcl_crimson/locale/mcl_crimson.de.tr similarity index 96% rename from mods/ITEMS/mcl_crimson/locale/mcl_mushrooms.de.tr rename to mods/ITEMS/mcl_crimson/locale/mcl_crimson.de.tr index becde0256..480094dbd 100644 --- a/mods/ITEMS/mcl_crimson/locale/mcl_mushrooms.de.tr +++ b/mods/ITEMS/mcl_crimson/locale/mcl_crimson.de.tr @@ -1,4 +1,4 @@ -# textdomain: mcl_mushroom +# textdomain: mcl_crimson Warped Fungus Mushroom=Wirrpilz Twisting Vines=Zwirbelranken diff --git a/mods/ITEMS/mcl_crimson/locale/mcl_mushroom.fr.tr b/mods/ITEMS/mcl_crimson/locale/mcl_crimson.fr.tr similarity index 93% rename from mods/ITEMS/mcl_crimson/locale/mcl_mushroom.fr.tr rename to mods/ITEMS/mcl_crimson/locale/mcl_crimson.fr.tr index e301a8b8a..41f151617 100644 --- a/mods/ITEMS/mcl_crimson/locale/mcl_mushroom.fr.tr +++ b/mods/ITEMS/mcl_crimson/locale/mcl_crimson.fr.tr @@ -1,4 +1,4 @@ -# textdomain: mcl_mushroom +# textdomain: mcl_crimson Warped Fungus Mushroom=Champignon tordu Twisting Vines=Liane tordue diff --git a/mods/ITEMS/mcl_crimson/locale/template.txt b/mods/ITEMS/mcl_crimson/locale/template.txt index 67d53d790..386bc5160 100644 --- a/mods/ITEMS/mcl_crimson/locale/template.txt +++ b/mods/ITEMS/mcl_crimson/locale/template.txt @@ -1,4 +1,4 @@ -# textdomain: mcl_mushroom +# textdomain: mcl_crimson Warped Fungus Mushroom= Twisting Vines= diff --git a/mods/ITEMS/mcl_crimson/mod.conf b/mods/ITEMS/mcl_crimson/mod.conf index fa2afa590..4dbf770c3 100644 --- a/mods/ITEMS/mcl_crimson/mod.conf +++ b/mods/ITEMS/mcl_crimson/mod.conf @@ -1,2 +1,4 @@ -depends = mcl_stairs, mobs_mc name = mcl_crimson +author = debiankaios +depends = mcl_stairs, mobs_mc, mcl_util + From 489ee80490f01bd8106fa2b12c832452a9612aa0 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 19:33:02 +0200 Subject: [PATCH 22/39] remove enderman spawning --- mods/ITEMS/mcl_crimson/init.lua | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 272adc113..eef765bb5 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -315,16 +315,6 @@ minetest.register_abm({ end, }) -mobs:spawn({ - name = "mobs_mc:enderman", - nodes = "mcl_crimson:warped_nylium", - max_light = 15, - min_light = 0, - chance = 300, - active_object_count = 20, - max_height = -28940, -}) - minetest.register_node("mcl_crimson:crimson_fungus", { description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", From 1c3a6f8a19dac0c3905e8da850e0b57700b15275 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 26 May 2022 19:47:35 +0200 Subject: [PATCH 23/39] replace algorithmic fungus gen by schematic it was always the same anyways (except for the shroomlight) --- mods/ITEMS/mcl_crimson/init.lua | 175 ++---------------- .../schematics/crimson_mushroom.mts | Bin 0 -> 169 bytes .../schematics/warped_mushroom.mts | Bin 0 -> 167 bytes 3 files changed, 12 insertions(+), 163 deletions(-) create mode 100644 mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/warped_mushroom.mts diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index eef765bb5..3853c88cd 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -1,10 +1,17 @@ -local S = minetest.get_translator("mcl_crimson") +local modname = minetest.get_current_modname() +local S = minetest.get_translator(modname) +local modpath = minetest.get_modpath(modname) +-- Warped and Crimson fungus +-- by debiankaios +-- adapted for mcl2 by cora --- Warped fungus --- Crimson fungus ---Functions and Biomes +local function generate_warped_tree(pos) + minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/warped_mushroom.mts") +end --- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german +function generate_crimson_tree(pos) + minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/crimson_mushroom.mts") +end minetest.register_node("mcl_crimson:warped_fungus", { description = S("Warped Fungus Mushroom"), @@ -547,164 +554,6 @@ minetest.register_abm({ end }) -local function generate_warped_tree(pos) - local breakgrow = false - local breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end - end - end - end - - -- fünfte Etage - if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - --print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:warped_fungus") then breakgrow2 = true end - --print(tostring(breakgrow)) - if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node(vector.new(x, y, z), { name = "mcl_crimson:warped_wart_block" }) - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node(vector.new(x, y, z), { name = "mcl_crimson:warped_wart_block" }) - end - end - end - - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_crimson:warped_wart_block" }) - - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:warped_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos, { name = "mcl_crimson:warped_fungus" }) end - end -end - -function generate_crimson_tree(pos) - local breakgrow = false - local breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node(vector.new(x, y, z)).name == "air") then breakgrow = true end - end - end - end - - -- fünfte Etage - if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end - - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - --print(minetest.get_node({x = pos.x, y = y, z = pos.z}).name) - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_crimson:crimson_fungus") then breakgrow2 = true end - --print(tostring(breakgrow)) - if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end - - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end - - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_crimson:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_crimson:crimson_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos, { name = "mcl_crimson:crimson_fungus" }) end - end -end - --[[ FIXME: Biomes are to rare diff --git a/mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts b/mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts new file mode 100644 index 0000000000000000000000000000000000000000..ff2ba058cbd97a106d1cba951d4918f4845a6b6d GIT binary patch literal 169 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w4CO0`JJ}V)4Gl+v^ zlZ!HQi}UlWiZhDx^K)}D(=$pKq>v?`3gR;=3o;T@E9N989N?B%IDzwA(vkIz3<*b= uBqy9Xn#XMHC+1;ld`Bg1&ojZtMW61tud1wY_-nwZ(sFSD8-w$<0wA9`F|&w4JU2NfKDj6}w>Uq~syL%4KR-7oGd-h(K^9q} zJh7-CH6 Date: Fri, 27 May 2022 02:06:55 +0200 Subject: [PATCH 24/39] make nether mushroom rotation random --- mods/ITEMS/mcl_crimson/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 3853c88cd..9e7be2b58 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -6,11 +6,11 @@ local modpath = minetest.get_modpath(modname) -- adapted for mcl2 by cora local function generate_warped_tree(pos) - minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/warped_mushroom.mts") + minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/warped_mushroom.mts","random") end function generate_crimson_tree(pos) - minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/crimson_mushroom.mts") + minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/crimson_mushroom.mts","random") end minetest.register_node("mcl_crimson:warped_fungus", { From 3c79685c484084280d3c1a3ea10a43bbc71e32d3 Mon Sep 17 00:00:00 2001 From: cora Date: Thu, 16 Jun 2022 22:17:11 +0200 Subject: [PATCH 25/39] Add main nether biomes Add nether forests Add soulsand valley decorations Add Basalt Delta basics --- .../mcl_blackstone_nether_fossil_1.mts | Bin 0 -> 78 bytes .../mcl_blackstone_nether_fossil_2.mts | Bin 0 -> 112 bytes .../mcl_blackstone_nether_fossil_3.mts | Bin 0 -> 116 bytes .../mcl_blackstone_nether_fossil_4.mts | Bin 0 -> 123 bytes mods/ITEMS/mcl_crimson/init.lua | 159 +---------- mods/MAPGEN/mcl_biomes/init.lua | 269 +++++++++++++++++- mods/MAPGEN/mcl_biomes/mod.conf | 2 +- 7 files changed, 269 insertions(+), 161 deletions(-) create mode 100644 mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_1.mts create mode 100644 mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_2.mts create mode 100644 mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_3.mts create mode 100644 mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_4.mts diff --git a/mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_1.mts b/mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..7ec39bacffc1ed9623caff7428926d9ff074ff89 GIT binary patch literal 78 zcmeYb3HD`RVPFPA-un7_1||mP#LOZF;oRh$_~iVeRI8-?ywv!loc!eMiaE&%4vako gXF85Zi)EcsTvH^#B5Yt8)#bn_9V^MuvQJ1308*D1J^%m! literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_2.mts b/mods/ITEMS/mcl_blackstone/schematics/mcl_blackstone_nether_fossil_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..bafc88993850e8a746706e8d181da94a5677ecca GIT binary patch literal 112 zcmeYb3HD`RVPFMf-g+QlU}9iS%q(IM&P~pVPtGq&wMxp*ON~#;$xqI%n3J5Kz#*|v zMR`g}OSkf7iNGgrXQi{AEo?4Q&|+Uy#Ad+kGR3*#aF{GxLUO``hm49A4<05uKjYIa O<#AcT%#atLcG1D%t literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 9e7be2b58..6963f4c35 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -139,7 +139,7 @@ minetest.register_node("mcl_crimson:warped_wart_block", { minetest.register_node("mcl_crimson:shroomlight", { description = S("Shroomlight"), tiles = {"shroomlight.png"}, - groups = {handy = 1, hoe = 7, swordy = 1, leafdecay = 1, leafdecay_distance = 1, leaves = 1, deco_block = 1}, + groups = {handy = 1, hoe = 7, swordy = 1, leafdecay = 5, leaves = 1, deco_block = 1}, -- this is 15 in Minecraft light_source = 14, _mcl_hardness = 2, @@ -300,28 +300,6 @@ minetest.register_abm({ end }) -minetest.register_abm({ - label = "mcl_crimson:warped_checknode", - nodenames = {"mcl_crimson:warped_checknode"}, - interval = 1, - chance = 1, - action = function(pos) - local pos1 = vector.offset(pos, 0, 1, 0) - local nodepos = minetest.get_node(pos1) - if nodepos.name == "air" then - minetest.swap_node(pos, { name = "mcl_crimson:warped_nylium" }) - local randomg = math.random(1, 40) - if randomg == 2 then - minetest.set_node(pos1, { name = "mcl_crimson:warped_fungus" }) - elseif randomg == 7 then - generate_warped_tree(pos1) - end - else - minetest.swap_node(pos, { name = "mcl_nether:netherrack" }) - end - end, -}) - minetest.register_node("mcl_crimson:crimson_fungus", { description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", @@ -525,138 +503,3 @@ minetest.register_abm({ end end }) - -minetest.register_abm({ - label = "mcl_crimson:crimson_checknode", - nodenames = {"mcl_crimson:crimson_checknode"}, - interval = 1, - chance = 1, - action = function(pos) - local pos1 = vector.offset(pos, 0, 1, 0) - local nodepos = minetest.get_node(pos1) - if nodepos.name == "air" then - minetest.swap_node(pos, { name = "mcl_crimson:crimson_nylium" }) - - local randomg = math.random(1, 400) - - if randomg <= 10 then - minetest.set_node(pos1, { name = "mcl_crimson:crimson_fungus" }) - elseif randomg > 10 and randomg <= 25 then - generate_crimson_tree(pos1) - elseif randomg > 25 and randomg <= 30 then - minetest.set_node(pos1, { name = "mcl_crimson:warped_fungus" }) - elseif randomg > 30 and randomg <= 130 then - minetest.set_node(pos1, { name = "mcl_crimson:crimson_roots" }) - end - else - minetest.swap_node(pos, { name = "mcl_nether:netherrack" }) - end - end -}) - - ---[[ -FIXME: Biomes are to rare -FIXME: Decoration don't do generate -WARNING: Outdatet, the biomes gernerate now different, with Ores --- biomes in test! -minetest.register_biome({ - name = "WarpedForest", - node_filler = "mcl_nether:netherrack", - node_stone = "mcl_nether:netherrack", - node_top = "mcl_crimson:warped_nylium", - node_water = "air", - node_river_water = "air", - y_min = -29065, - y_max = -28940, - heat_point = 100, - humidity_point = 0, - _mcl_biome_type = "hot", - _mcl_palette_index = 19, -}) -minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:warped_nylium"}, - sidelen = 16, - noise_params = { - offset = 0.01, - scale = 0.0022, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"WarpedForest"}, - y_min = -29065, - y_max = -28940 + 80, - decoration = "mcl_crimson:warped_fungus", -}) -]] ---[[ No Ore gen for now -minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_crimson:warped_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 14 * 14 * 14, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.1, - spread = {x = 8, y = 8, z = 8}, - seed = 4996, - octaves = 1, - persist = 0.0 - }, -}) - -minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_crimson:crimson_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 10 * 10 * 10, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 1, - scale = 0.5, - spread = {x = 12, y = 12, z = 12}, - seed = 12948, - octaves = 1, - persist = 0.0 - }, -}) ---]] - ---[[ -minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:warped_nylium"}, - sidelen = 16, - fill_ratio = 0.1, - biomes = {"Nether"}, - y_max = -28940, - y_min = -29065, - decoration = "mcl_crimson:warped_fungus", -}) - - -minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:crimson_nylium"}, - sidelen = 16, - fill_ratio = 0.1, - biomes = {"Nether"}, - y_max = -28940, - y_min = -29065, - decoration = "mcl_crimson:crimson_fungus", -}) -]] \ No newline at end of file diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index f198e09fa..9e52a5274 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -9,6 +9,8 @@ local generate_fallen_logs = minetest.settings:get_bool("mcl_generate_fallen_log local mod_mcl_structures = minetest.get_modpath("mcl_structures") local mod_mcl_core = minetest.get_modpath("mcl_core") local mod_mcl_mushrooms = minetest.get_modpath("mcl_mushrooms") +local mod_mcl_crimson = minetest.get_modpath("mcl_crimson") +local mod_mcl_blackstone = minetest.get_modpath("mcl_blackstone") -- Jungle bush schematic. In PC/Java Edition it's Jungle Wood + Oak Leaves local jungle_bush_schematic = mod_mcl_core.."/schematics/mcl_core_jungle_bush_oak_leaves.mts" @@ -1490,14 +1492,147 @@ local function register_dimension_biomes() node_river_water = "air", node_cave_liquid = "air", y_min = mcl_vars.mg_nether_min, - -- FIXME: For some reason the Nether stops generating early if this constant is not added. - -- Figure out why. + y_max = mcl_vars.mg_nether_max + 80, heat_point = 100, humidity_point = 0, _mcl_biome_type = "hot", _mcl_palette_index = 17, }) + minetest.register_biome({ + name = "SoulsandValley", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_blackstone:soul_soil", + node_water = "air", + node_river_water = "air", + node_cave_liquid = "air", + y_min = mcl_vars.mg_nether_min, + + y_max = mcl_vars.mg_nether_max + 80, + heat_point = 80, + humidity_point = 20, + _mcl_biome_type = "hot", + _mcl_palette_index = 17, + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone"}, + sidelen = 16, + fill_ratio = 10, + biomes = { "SoulsandValley" }, + y_min = -31000, + y_max = mcl_vars.mg_nether_max, + decoration = "mcl_blackstone:soul_soil", + flags = "all_floors, all_ceilings", + param2 = 0, + }) + minetest.register_biome({ + name = "CrimsonForest", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_crimson:crimson_nylium", + node_water = "air", + node_river_water = "air", + node_cave_liquid = "air", + y_min = mcl_vars.mg_nether_min, + + y_max = mcl_vars.mg_nether_max + 80, + heat_point = 60, + humidity_point = 40, + _mcl_biome_type = "hot", + _mcl_palette_index = 17, + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone"}, + sidelen = 16, + fill_ratio = 10, + biomes = { "CrimsonForest" }, + y_min = -31000, + y_max = mcl_vars.mg_nether_max, + decoration = "mcl_crimson:crimson_nylium", + flags = "all_floors, all_ceilings", + param2 = 0, + }) + minetest.register_biome({ + name = "WarpedForest", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_crimson:warped_nylium", + node_water = "air", + node_river_water = "air", + node_cave_liquid = "air", + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max + 80, + heat_point = 40, + humidity_point = 60, + _mcl_biome_type = "hot", + _mcl_palette_index = 17, + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone"}, + sidelen = 16, + fill_ratio = 10, + biomes = { "WarpedForest" }, + y_min = -31000, + y_max = mcl_vars.mg_nether_max, + decoration = "mcl_crimson:warped_nylium", + flags = "all_floors, all_ceilings", + param2 = 0, + }) + minetest.register_biome({ + name = "BasaltDelta", + node_filler = "mcl_nether:netherrack", + node_stone = "mcl_nether:netherrack", + node_top = "mcl_blackstone:basalt", + node_water = "air", + node_river_water = "air", + node_cave_liquid = "air", + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max + 80, + heat_point = 20, + humidity_point = 80, + _mcl_biome_type = "hot", + _mcl_palette_index = 17, + }) + + + minetest.register_ore({ + ore_type = "blob", + ore = "mcl_blackstone:blackstone", + wherein = { "mcl_nether:netherrack" }, + clust_scarcity = 100, + clust_num_ores = 100, + clust_size = 10, + biomes = { "BasaltDelta" }, + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max + 80, + noise_params = { + offset = 0, + scale = 1, + spread = { x = 250, y = 250, z = 250 }, + seed = 12345, + octaves = 3, + persist = 0.6, + lacunarity = 2, + flags = "defaults", + } + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:blackstone"}, + sidelen = 16, + fill_ratio = 10, + biomes = { "BasaltDelta" }, + y_min = -31000, + y_max = mcl_vars.mg_nether_max, + decoration = "mcl_blackstone:basalt", + flags = "all_floors, all_ceilings", + param2 = 0, + }) --[[ THE END ]] minetest.register_biome({ @@ -3913,6 +4048,136 @@ local function register_dimension_decorations() --[[ NETHER ]] -- TODO: Nether + -- WARPED FOREST + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium"}, + sidelen = 16, + fill_ratio = 0.02, + biomes = {"WarpedForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + decoration = "mcl_crimson:warped_fungus", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_crimson:warped_nylium"}, + sidelen = 16, + fill_ratio = 0.022, + biomes = {"WarpedForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_crimson.."/schematics/warped_mushroom.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium","mcl_crimson:twisting_vines"}, + sidelen = 16, + fill_ratio = 0.012, + biomes = {"WarpedForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + height = 3, + max_height = 5, + decoration = "mcl_crimson:twisting_vines", + }) + -- CRIMSON FOREST + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.02, + biomes = {"CrimsonForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + decoration = "mcl_crimson:crimson_fungus", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.022, + biomes = {"CrimsonForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_crimson.."/schematics/crimson_mushroom.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.012, + biomes = {"CrimsonForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + max_height = 5, + decoration = "mcl_crimson:crimson_roots", + }) + --SOULSAND VALLEY + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + sidelen = 16, + fill_ratio = 0.012, + biomes = {"SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + max_height = 5, + decoration = "mcl_blackstone:soul_fire", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + sidelen = 16, + fill_ratio = 0.000212, + biomes = {"SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_1.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + sidelen = 16, + fill_ratio = 0.0002233, + biomes = {"SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_2.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + sidelen = 16, + fill_ratio = 0.000225, + biomes = {"SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_3.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + sidelen = 16, + fill_ratio = 0.00022323, + biomes = {"SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors, place_center_x, place_center_z", + schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_4.mts", + size = {x = 5, y = 8, z = 5}, + rotation = "random", + }) + --[[ THE END ]] -- Chorus plant diff --git a/mods/MAPGEN/mcl_biomes/mod.conf b/mods/MAPGEN/mcl_biomes/mod.conf index 0c6095f3d..b02d78e05 100644 --- a/mods/MAPGEN/mcl_biomes/mod.conf +++ b/mods/MAPGEN/mcl_biomes/mod.conf @@ -1,4 +1,4 @@ name = mcl_biomes author = maikerumine description = Adds the various biomes and biome-related things for non-v6 map generators. -depends = mcl_init, mcl_mapgen_core, mcl_core, mcl_worlds, mcl_farming, mcl_flowers, mcl_end, mcl_ocean +depends = mcl_init, mcl_mapgen_core, mcl_core, mcl_worlds, mcl_farming, mcl_flowers, mcl_end, mcl_ocean, mcl_crimson, mcl_blackstone From 8efbd89b6a664e1ee854380d8667eaf099474920 Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 17 Jun 2022 03:09:40 +0200 Subject: [PATCH 26/39] Add basalt columns & lava pools --- mods/ENTITIES/mcl_mobs/spawning.lua | 3 + mods/ENTITIES/mobs_mc/enderman.lua | 2 + mods/ENTITIES/mobs_mc/skeleton+stray.lua | 2 + mods/MAPGEN/mcl_biomes/init.lua | 26 ++++++- mods/MAPGEN/mcl_surface_pools/init.lua | 87 ++++++++++++++++++++++-- 5 files changed, 113 insertions(+), 7 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/spawning.lua b/mods/ENTITIES/mcl_mobs/spawning.lua index 71f4ec859..8fa2e7a8a 100644 --- a/mods/ENTITIES/mcl_mobs/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/spawning.lua @@ -189,6 +189,9 @@ local list_of_all_biomes = { "MesaBryce", "JungleEdge", "SavannaM", + "Nether", + "WarpedForest", + "SoulsandValley" } -- count how many mobs are in an area diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua index 9ed59bb1f..2391c4b21 100644 --- a/mods/ENTITIES/mobs_mc/enderman.lua +++ b/mods/ENTITIES/mobs_mc/enderman.lua @@ -751,6 +751,8 @@ mcl_mobs:spawn_specific( "JungleM_underground", "ExtremeHillsM_underground", "JungleEdgeM_underground", +"Nether", +"WarpedForest" }, 0, 7, diff --git a/mods/ENTITIES/mobs_mc/skeleton+stray.lua b/mods/ENTITIES/mobs_mc/skeleton+stray.lua index aab719b1c..ccfae401a 100644 --- a/mods/ENTITIES/mobs_mc/skeleton+stray.lua +++ b/mods/ENTITIES/mobs_mc/skeleton+stray.lua @@ -286,6 +286,8 @@ mcl_mobs:spawn_specific( "JungleM_underground", "ExtremeHillsM_underground", "JungleEdgeM_underground", +"Nether", +"SoulsandValley" }, 0, 7, diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 9e52a5274..136780477 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -4083,6 +4083,17 @@ local function register_dimension_decorations() max_height = 5, decoration = "mcl_crimson:twisting_vines", }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:warped_nylium"}, + sidelen = 16, + fill_ratio = 0.0812, + biomes = {"WarpedForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + max_height = 5, + decoration = "mcl_crimson:warped_roots", + }) -- CRIMSON FOREST minetest.register_decoration({ deco_type = "simple", @@ -4110,19 +4121,30 @@ local function register_dimension_decorations() deco_type = "simple", place_on = {"mcl_crimson:crimson_nylium"}, sidelen = 16, - fill_ratio = 0.012, + fill_ratio = 0.082, biomes = {"CrimsonForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, flags = "all_floors", max_height = 5, decoration = "mcl_crimson:crimson_roots", }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.052, + biomes = {"CrimsonForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + decoration = "mcl_crimson:nether_sprouts", + }) --SOULSAND VALLEY minetest.register_decoration({ deco_type = "simple", place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, sidelen = 16, - fill_ratio = 0.012, + fill_ratio = 0.082, biomes = {"SoulsandValley"}, y_min = mcl_vars.mg_lava_nether_max + 1, flags = "all_floors", diff --git a/mods/MAPGEN/mcl_surface_pools/init.lua b/mods/MAPGEN/mcl_surface_pools/init.lua index ed42f52bb..2c5fa9254 100644 --- a/mods/MAPGEN/mcl_surface_pools/init.lua +++ b/mods/MAPGEN/mcl_surface_pools/init.lua @@ -22,13 +22,13 @@ local function airtower(pos) end end -local function makelake(pos,size,liquid,border,pr) +local function makelake(pos,size,liquid,placein,border,pr) local node_under = minetest.get_node(vector.offset(pos,0,1,0)) local p1 = vector.offset(pos,-size,-size,-size) local p2 = vector.offset(pos,size,size,size) - local nn = minetest.find_nodes_in_area(p1,p2,{"group:material_stone", "group:sand", "group:dirt"}) + local nn = minetest.find_nodes_in_area(p1,p2,placein) table.sort(nn,function(a, b) - return vector.distance(pos, a) < vector.distance(pos, b) + return vector.distance(vector.new(pos.x,0,pos.z), a) < vector.distance(vector.new(pos.x,0,pos.z), b) end) if not nn[1] then return end local y = pos.y + 1 @@ -82,7 +82,7 @@ mcl_structures.register_structure("lavapool",{ y_max = mcl_vars.mg_overworld_max, y_min = minetest.get_mapgen_setting("water_level"), place_func = function(pos,def,pr) - return makelake(pos,5,"mcl_core:lava_source","mcl_core:stone",pr) + return makelake(pos,5,"mcl_core:lava_source","mcl_core:stone",{"group:material_stone", "group:sand", "group:dirt"},pr) end }) @@ -101,6 +101,83 @@ mcl_structures.register_structure("water_lake",{ y_max = mcl_vars.mg_overworld_max, y_min = minetest.get_mapgen_setting("water_level"), place_func = function(pos,def,pr) - return makelake(pos,5,"mcl_core:water_source",nil,pr) + return makelake(pos,5,"mcl_core:water_source",{"group:material_stone", "group:sand", "group:dirt"},nil,pr) + end +}) + + +mcl_structures.register_structure("basalt_column",{ + place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, + spawn_by = {"air"}, + num_spawn_by = 2, + noise_params = { + offset = 0, + scale = 0.01, + spread = {x = 250, y = 250, z = 250}, + seed = 78375213, + octaves = 5, + persist = 0.1, + flags = "absvalue", + }, + flags = "all_floors", + y_max = mcl_vars.mg_nether_max, + y_min = mcl_vars.mg_lava_nether_max + 1, + biomes = { "BasaltDelta" }, + place_func = function(pos,def,pr) + local nn = minetest.find_nodes_in_area(vector.offset(pos,-5,-1,-5),vector.offset(pos,5,-1,5),{"air","mcl_blackstone:basalt","mcl_blackstone:blackstone"}) + table.sort(nn,function(a, b) + return vector.distance(vector.new(pos.x,0,pos.z), a) < vector.distance(vector.new(pos.x,0,pos.z), b) + end) + if #nn < 1 then return false end + for i=1,pr:next(1,#nn) do + local dst=vector.distance(pos,nn[i]) + for ii=0,pr:next(1,15)-dst do + set_node_no_bedrock(vector.new(nn[i].x,nn[i].y + ii,nn[i].z),{name="mcl_blackstone:basalt"}) + end + end + return true + end +}) + +mcl_structures.register_structure("netherlavapool",{ + place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, + spawn_by = {"mcl_blackstone:basalt","mcl_blackstone:blackstone"}, + num_spawn_by = 2, + noise_params = { + offset = 0, + scale = 0.01, + spread = {x = 250, y = 250, z = 250}, + seed = 78375213, + octaves = 5, + persist = 0.1, + flags = "absvalue", + }, + flags = "all_floors", + y_max = mcl_vars.mg_nether_max, + y_min = mcl_vars.mg_lava_nether_max + 1, + biomes = { "BasaltDelta" }, + place_func = function(pos,def,pr) + local nn = minetest.find_nodes_in_area(vector.offset(pos,-15,-1,-15),vector.offset(pos,15,-1,15),{"mcl_blackstone:basalt","mcl_blackstone:blackstone"}) + table.sort(nn,function(a, b) + return vector.distance(vector.new(pos.x,0,pos.z), a) < vector.distance(vector.new(pos.x,0,pos.z), b) + end) + if #nn < 1 then return false end + local lava = {} + for i=1,pr:next(1,#nn) do + set_node_no_bedrock(nn[i],{name="mcl_nether:nether_lava_source"}) + table.insert(lava,nn[i]) + end + for _,v in pairs(lava) do + for _,vv in pairs(adjacents) do + local p = vector.add(v,vv) + if minetest.get_node(p).name ~= "mcl_nether:nether_lava_source" then + set_node_no_bedrock(p,{name="mcl_blackstone:basalt"}) + end + end + if math.random(3) == 1 then + set_node_no_bedrock(v,{name="mcl_nether:magma"}) + end + end + return true end }) From db9fba70ddae0036631b6dbc6673924fa4339d8a Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 17 Jun 2022 15:54:36 +0200 Subject: [PATCH 27/39] some biome tweaks, add nether gold --- mods/ITEMS/mcl_blackstone/init.lua | 31 +------------ mods/ITEMS/mcl_crimson/init.lua | 3 +- mods/MAPGEN/mcl_biomes/init.lua | 70 ++++++++++++++++++++++++++---- 3 files changed, 64 insertions(+), 40 deletions(-) diff --git a/mods/ITEMS/mcl_blackstone/init.lua b/mods/ITEMS/mcl_blackstone/init.lua index 8c69b903d..cfdd87837 100644 --- a/mods/ITEMS/mcl_blackstone/init.lua +++ b/mods/ITEMS/mcl_blackstone/init.lua @@ -323,36 +323,7 @@ for s=1, #specialstones do end if minetest.settings:get_bool("mcl_generate_ores", true) then - minetest.register_ore({ - ore_type = "scatter", - ore = "mcl_blackstone:blackstone_gilded", - wherein = "mcl_blackstone:blackstone", - clust_scarcity = 4775, - clust_num_ores = 2, - clust_size = 2, - y_min = mcl_vars.mg_nether_min, - y_max = mcl_vars.mg_nether_max, - }) - minetest.register_ore({ - ore_type = "scatter", - ore = "mcl_blackstone:nether_gold", - wherein = "mcl_nether:netherrack", - clust_scarcity = 830, - clust_num_ores = 5, - clust_size = 3, - y_min = mcl_vars.mg_nether_min, - y_max = mcl_vars.mg_nether_max, - }) - minetest.register_ore({ - ore_type = "scatter", - ore = "mcl_blackstone:nether_gold", - wherein = "mcl_nether:netherrack", - clust_scarcity = 1660, - clust_num_ores = 4, - clust_size = 2, - y_min = mcl_vars.mg_nether_min, - y_max = mcl_vars.mg_nether_max, - }) + end --]] --soul torch diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 6963f4c35..18072982d 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -140,8 +140,7 @@ minetest.register_node("mcl_crimson:shroomlight", { description = S("Shroomlight"), tiles = {"shroomlight.png"}, groups = {handy = 1, hoe = 7, swordy = 1, leafdecay = 5, leaves = 1, deco_block = 1}, - -- this is 15 in Minecraft - light_source = 14, + light_source = minetest.LIGHT_MAX, _mcl_hardness = 2, }) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 136780477..f7ab76877 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -1527,6 +1527,28 @@ local function register_dimension_biomes() flags = "all_floors, all_ceilings", param2 = 0, }) + + minetest.register_ore({ + ore_type = "blob", + ore = "mcl_nether:soul_sand", + wherein = { "mcl_nether:netherrack", "mcl_blackstone:soul_soil" }, + clust_scarcity = 100, + clust_num_ores = 100, + clust_size = 10, + biomes = { "SoulsandValley" }, + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max + 80, + noise_params = { + offset = 0, + scale = 1, + spread = { x = 250, y = 250, z = 250 }, + seed = 12345, + octaves = 3, + persist = 0.6, + lacunarity = 2, + flags = "defaults", + } + }) minetest.register_biome({ name = "CrimsonForest", node_filler = "mcl_nether:netherrack", @@ -1552,7 +1574,7 @@ local function register_dimension_biomes() y_min = -31000, y_max = mcl_vars.mg_nether_max, decoration = "mcl_crimson:crimson_nylium", - flags = "all_floors, all_ceilings", + flags = "all_floors", param2 = 0, }) minetest.register_biome({ @@ -1579,7 +1601,7 @@ local function register_dimension_biomes() y_min = -31000, y_max = mcl_vars.mg_nether_max, decoration = "mcl_crimson:warped_nylium", - flags = "all_floors, all_ceilings", + flags = "all_floors", param2 = 0, }) minetest.register_biome({ @@ -1598,7 +1620,6 @@ local function register_dimension_biomes() _mcl_palette_index = 17, }) - minetest.register_ore({ ore_type = "blob", ore = "mcl_blackstone:blackstone", @@ -1621,7 +1642,7 @@ local function register_dimension_biomes() } }) - minetest.register_decoration({ + minetest.register_decoration({ deco_type = "simple", place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:blackstone"}, sidelen = 16, @@ -1716,6 +1737,39 @@ local function register_biome_ores() "MesaPlateauFM", "MesaPlateauFM_sandlevel", "MesaPlateauFM_ocean", }, }) end + --nether gold + if mg_name ~= "v6" then + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_blackstone:blackstone_gilded", + wherein = "mcl_blackstone:blackstone", + clust_scarcity = 4775, + clust_num_ores = 2, + clust_size = 2, + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max, + }) + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_blackstone:nether_gold", + wherein = "mcl_nether:netherrack", + clust_scarcity = 830, + clust_num_ores = 5, + clust_size = 3, + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max, + }) + minetest.register_ore({ + ore_type = "scatter", + ore = "mcl_blackstone:nether_gold", + wherein = "mcl_nether:netherrack", + clust_scarcity = 1660, + clust_num_ores = 4, + clust_size = 2, + y_min = mcl_vars.mg_nether_min, + y_max = mcl_vars.mg_nether_max, + }) + end end -- Register “fake” ores directly related to the biomes. These are mostly low-level landscape alternations @@ -4046,7 +4100,6 @@ end -- Decorations in non-Overworld dimensions local function register_dimension_decorations() --[[ NETHER ]] - -- TODO: Nether -- WARPED FOREST minetest.register_decoration({ @@ -4066,6 +4119,7 @@ local function register_dimension_decorations() fill_ratio = 0.022, biomes = {"WarpedForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 10, flags = "all_floors, place_center_x, place_center_z", schematic = mod_mcl_crimson.."/schematics/warped_mushroom.mts", size = {x = 5, y = 8, z = 5}, @@ -4112,6 +4166,7 @@ local function register_dimension_decorations() fill_ratio = 0.022, biomes = {"CrimsonForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 10, flags = "all_floors, place_center_x, place_center_z", schematic = mod_mcl_crimson.."/schematics/crimson_mushroom.mts", size = {x = 5, y = 8, z = 5}, @@ -4142,9 +4197,9 @@ local function register_dimension_decorations() --SOULSAND VALLEY minetest.register_decoration({ deco_type = "simple", - place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"}, + place_on = {"mcl_blackstone:soul_soil","mcl_nether:soul_sand"}, sidelen = 16, - fill_ratio = 0.082, + fill_ratio = 0.062, biomes = {"SoulsandValley"}, y_min = mcl_vars.mg_lava_nether_max + 1, flags = "all_floors", @@ -4281,4 +4336,3 @@ if mg_name ~= "singlenode" then end end - From 48189cb3a76fc385981d5b9bee8ccfb9e5c4a86a Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 17 Jun 2022 23:12:37 +0200 Subject: [PATCH 28/39] fix lighting issue for placed schematics warped and crimson shroomlight would not work correctly before because they're placed after light calculation is done apparently --- mods/MAPGEN/mcl_biomes/init.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index f7ab76877..ea2322a9a 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -4114,6 +4114,7 @@ local function register_dimension_decorations() }) minetest.register_decoration({ deco_type = "schematic", + name = "mcl_biomes:warped_tree", place_on = {"mcl_crimson:warped_nylium"}, sidelen = 16, fill_ratio = 0.022, @@ -4161,6 +4162,7 @@ local function register_dimension_decorations() }) minetest.register_decoration({ deco_type = "schematic", + name = "mcl_biomes:crimson_tree", place_on = {"mcl_crimson:crimson_nylium"}, sidelen = 16, fill_ratio = 0.022, @@ -4317,10 +4319,14 @@ if mg_name ~= "singlenode" then -- Overworld decorations for v6 are handled in mcl_mapgen_core - if deco_id_chorus_plant then + local deco_id_crimson_tree =minetest.get_decoration_id("mcl_biomes:crimson_tree") + local deco_id_warped_tree =minetest.get_decoration_id("mcl_biomes:warped_tree") + minetest.set_gen_notify({decoration=true}, { deco_id_crimson_tree }) + minetest.set_gen_notify({decoration=true}, { deco_id_warped_tree }) + if deco_id_chorus_plant or deco_id_crimson_tree or deco_id_warped_tree then mcl_mapgen_core.register_generator("chorus_grow", nil, function(minp, maxp, blockseed) + if minp.y > -26900 then return end local gennotify = minetest.get_mapgen_object("gennotify") - --local poslist = {} local pr = PseudoRandom(blockseed + 14) for _, pos in ipairs(gennotify["decoration#"..deco_id_chorus_plant] or {}) do local x, y, z = pos.x, pos.y, pos.z @@ -4332,6 +4338,13 @@ if mg_name ~= "singlenode" then end end end + if minp.y > mcl_vars.mg_nether_max then return end + for _, pos in ipairs(gennotify["decoration#"..deco_id_crimson_tree] or {}) do + minetest.fix_light(vector.offset(pos,-8,-8,-8),vector.offset(pos,8,8,8)) + end + for _, pos in ipairs(gennotify["decoration#"..deco_id_warped_tree] or {}) do + minetest.fix_light(vector.offset(pos,-8,-8,-8),vector.offset(pos,8,8,8)) + end end) end From a0264ed5e0503f8da27849bedd24301cce973c0b Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 17 Jun 2022 23:30:00 +0200 Subject: [PATCH 29/39] tweak biome distribution to be more like mc according to https://www.reddit.com/r/Minecraft/comments/gjeuww/how_the_nether_biomes_are_distributed/ --- mods/MAPGEN/mcl_biomes/init.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index ea2322a9a..ed4c1f14a 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -1510,8 +1510,8 @@ local function register_dimension_biomes() y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max + 80, - heat_point = 80, - humidity_point = 20, + heat_point = 77, + humidity_point = 33, _mcl_biome_type = "hot", _mcl_palette_index = 17, }) @@ -1561,7 +1561,7 @@ local function register_dimension_biomes() y_max = mcl_vars.mg_nether_max + 80, heat_point = 60, - humidity_point = 40, + humidity_point = 47, _mcl_biome_type = "hot", _mcl_palette_index = 17, }) @@ -1587,8 +1587,8 @@ local function register_dimension_biomes() node_cave_liquid = "air", y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max + 80, - heat_point = 40, - humidity_point = 60, + heat_point = 37, + humidity_point = 70, _mcl_biome_type = "hot", _mcl_palette_index = 17, }) @@ -1614,7 +1614,7 @@ local function register_dimension_biomes() node_cave_liquid = "air", y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max + 80, - heat_point = 20, + heat_point = 27, humidity_point = 80, _mcl_biome_type = "hot", _mcl_palette_index = 17, From d9a74ac18075aee27d922162eb2a926bbace3f93 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 01:46:31 +0200 Subject: [PATCH 30/39] rename mcl_surface_pools -> mcl_terrain_features --- .../textures/crimson_stem_stripped_side.png | Bin 0 -> 193 bytes .../textures/crimson_stem_stripped_top.png | Bin 0 -> 6699 bytes .../textures/stripped_crimson_stem.png | Bin 0 -> 6365 bytes .../textures/stripped_warped_stem.png | Bin 0 -> 6600 bytes .../textures/warped_stem_stripped_side.png | Bin 0 -> 200 bytes .../textures/warped_stem_stripped_top.png | Bin 0 -> 7039 bytes .../init.lua | 0 .../mod.conf | 2 +- 8 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_side.png create mode 100644 mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_top.png create mode 100644 mods/ITEMS/mcl_crimson/textures/stripped_crimson_stem.png create mode 100644 mods/ITEMS/mcl_crimson/textures/stripped_warped_stem.png create mode 100644 mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_side.png create mode 100644 mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_top.png rename mods/MAPGEN/{mcl_surface_pools => mcl_terrain_features}/init.lua (100%) rename mods/MAPGEN/{mcl_surface_pools => mcl_terrain_features}/mod.conf (63%) diff --git a/mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_side.png b/mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6a41a2ed679bb4aeba43bb934944d4abb9606c GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bjnyzp(=aO1G^$e9Z_zZE z*!$=*P%78c#W95AI&bem!6OPhN6dV<6y&%Lw6XEsVfgkf{_@Am&dLv$R^AAjB4Ype z`o|o}i+-+_)ohy=$^J@W(w+H=eFC==>%K1%SGZcDXO&F(u;dnRk(%v3?rmrDFDxrK pdv)Qp9e3V&OHB>0vv8L9#s2-OsL-oROdvNgc)I$ztaD0e0sukTN5237 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_top.png b/mods/ITEMS/mcl_crimson/textures/crimson_stem_stripped_top.png new file mode 100644 index 0000000000000000000000000000000000000000..313ae0f5aa60001f2f59a41a8d5eb4773f5145c5 GIT binary patch literal 6699 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/textures/stripped_warped_stem.png b/mods/ITEMS/mcl_crimson/textures/stripped_warped_stem.png new file mode 100644 index 0000000000000000000000000000000000000000..88a7a8d336829ed45885abbc68ca78d39bd2e208 GIT binary patch literal 6600 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 Oi{bbNvk!W&Nd6a;zRP?7 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_side.png b/mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_side.png new file mode 100644 index 0000000000000000000000000000000000000000..db93c05cb449ae364df6f0653b72382c070aa62d GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWwJ`THv-GjD337CZa&=1d zaZ6wQ&%zrhTj=TH7{YO#_v}H@!wNhs7jqe{H4j{SoTqZx!GTvH_y5|K+jIUs@cz7E zp+#`b-u-RKr=&|`f2_ILT)9y1SAy7;lvV4QZYo}BvbK$T)hd*id8wdH{i@lCd0%#v x-!Qqqp!DI3#g1!>cD$V)qV@LRLAgT}|6&qk```DsaR4o6@O1TaS?83{1OR&;P*wl{ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_top.png b/mods/ITEMS/mcl_crimson/textures/warped_stem_stripped_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2c35b7c460d17b630b75758b5ca853c8f301f4 GIT binary patch literal 7039 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 T^+{z=s$ev)g`P* Date: Sat, 18 Jun 2022 01:48:33 +0200 Subject: [PATCH 31/39] fix style details and mistakes in mcl_crimson --- mods/ITEMS/mcl_crimson/init.lua | 58 +++++++-------------------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 18072982d..9b2a33bb9 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -6,11 +6,11 @@ local modpath = minetest.get_modpath(modname) -- adapted for mcl2 by cora local function generate_warped_tree(pos) - minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/warped_mushroom.mts","random") + minetest.place_schematic(pos,modpath.."/schematics/warped_mushroom.mts","random",nil,false,"place_center_x,place_center_z") end function generate_crimson_tree(pos) - minetest.place_schematic(vector.offset(pos,-2,0,-2),modpath.."/schematics/crimson_mushroom.mts","random") + minetest.place_schematic(pos,modpath.."/schematics/crimson_mushroom.mts","random",nil,false,"place_center_x,place_center_z") end minetest.register_node("mcl_crimson:warped_fungus", { @@ -160,7 +160,6 @@ minetest.register_node("mcl_crimson:warped_hyphae", { on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae", @@ -185,17 +184,6 @@ minetest.register_node("mcl_crimson:warped_nylium", { _mcl_silk_touch_drop = true, }) -minetest.register_node("mcl_crimson:warped_checknode", { - description = S("Warped Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png"}, - groups = {pickaxey = 1, building_block = 1, material_stone = 1, not_in_creative_inventory = 1}, - paramtype2 = "facedir", - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" -}) - --Stem bark, stripped stem and bark minetest.register_node("mcl_crimson:warped_hyphae_bark", { @@ -207,7 +195,6 @@ minetest.register_node("mcl_crimson:warped_hyphae_bark", { groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_stripped_variant = "mcl_crimson:stripped_warped_hyphae_bark", @@ -222,29 +209,27 @@ minetest.register_craft({ }) minetest.register_node("mcl_crimson:stripped_warped_hyphae", { - description = description_stripped_trunk, - _doc_items_longdesc = longdesc, + description = S("Stripped warped hyphae"), + _doc_items_longdesc = S("The stripped hyphae of a warped fungus"), _doc_items_hidden = false, - tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, + tiles = {"warped_stem_stripped_top.png", "crimson_stem_warped_top.png", "warped_stem_stripped_side.png"}, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) minetest.register_node("mcl_crimson:stripped_warped_hyphae_bark", { - description = description_stripped_bark, - _doc_items_longdesc = longdesc_wood, - tiles = {tile_stripped_bark}, + description = S("Stripped warped hyphae bark"), + _doc_items_longdesc = S("The stripped hyphae bark of a warped fungus"), + tiles = {"crimson_stem_stripped_side.png"}, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) @@ -257,8 +242,6 @@ minetest.register_craft({ }, }) ---Wood - minetest.register_node("mcl_crimson:warped_hyphae_wood", { description = S("Warped Hyphae Wood"), tiles = {"warped_hyphae_wood.png"}, @@ -277,7 +260,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_crimson:warped_nyliumd 2", + output = "mcl_crimson:warped_nylium 2", recipe = { {"mcl_crimson:warped_wart_block"}, {"mcl_nether:netherrack"}, @@ -364,7 +347,6 @@ minetest.register_node("mcl_crimson:crimson_hyphae", { on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_stripped_variant = stripped_variant, @@ -381,7 +363,6 @@ minetest.register_node("mcl_crimson:crimson_hyphae_bark", { groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, _mcl_stripped_variant = "mcl_crimson:stripped_crimson_hyphae_bark", @@ -399,12 +380,11 @@ minetest.register_node("mcl_crimson:stripped_crimson_hyphae", { description = S("Stripped Crimson Hyphae"), _doc_items_longdesc = S("The stripped stem of a crimson hyphae"), _doc_items_hidden = false, - tiles = {"stripped_crimson_stem_top.png", "stripped_crimson_stem_top.png", "stripped_crimson_stem_side.png"}, + tiles = {"crimson_stem_stripped_top.png", "crimson_stem_stripped_top.png", "crimson_stem_stripped_side.png"}, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) @@ -412,13 +392,12 @@ minetest.register_node("mcl_crimson:stripped_crimson_hyphae", { minetest.register_node("mcl_crimson:stripped_crimson_hyphae_bark", { description = S("Stripped Crimson Hyphae Bark"), _doc_items_longdesc = S("The stripped wood of a crimson hyphae"), - tiles = {"stripped_crimson_stem_side.png"}, + tiles = {"crimson_stem_stripped_side.png"}, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, bark = 1, building_block = 1, material_wood = 1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, - on_rotate = on_rotate, _mcl_blast_resistance = 2, _mcl_hardness = 2, }) @@ -431,8 +410,6 @@ minetest.register_craft({ }, }) ---Wood - minetest.register_node("mcl_crimson:crimson_hyphae_wood", { description = S("Crimson Hyphae Wood"), tiles = {"crimson_hyphae_wood.png"}, @@ -460,17 +437,6 @@ minetest.register_node("mcl_crimson:crimson_nylium", { _mcl_silk_touch_drop = true, }) -minetest.register_node("mcl_crimson:crimson_checknode", { - description = S("Crimson Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png"}, - groups = {pickaxey = 1, building_block = 1, material_stone = 1, not_in_creative_inventory = 1}, - paramtype2 = "facedir", - is_ground_content = true, - drop = "mcl_nether:netherrack", - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, -}) - minetest.register_craft({ output = "mcl_crimson:crimson_hyphae_wood 4", recipe = { @@ -479,7 +445,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_crimson:crimson_nyliumd 2", + output = "mcl_crimson:crimson_nylium 2", recipe = { {"mcl_nether:nether_wart"}, {"mcl_nether:netherrack"}, From 01eea4ab8a4000774fc301a851623a6031875d47 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 01:49:18 +0200 Subject: [PATCH 32/39] prevent nether trees from growing through bedrock --- mods/MAPGEN/mcl_biomes/init.lua | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index ed4c1f14a..3d1653846 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -4109,6 +4109,7 @@ local function register_dimension_decorations() fill_ratio = 0.02, biomes = {"WarpedForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_lava_nether_max - 10, flags = "all_floors", decoration = "mcl_crimson:warped_fungus", }) @@ -4149,6 +4150,16 @@ local function register_dimension_decorations() max_height = 5, decoration = "mcl_crimson:warped_roots", }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_crimson:crimson_nylium"}, + sidelen = 16, + fill_ratio = 0.052, + biomes = {"WarpedForest"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + flags = "all_floors", + decoration = "mcl_crimson:nether_sprouts", + }) -- CRIMSON FOREST minetest.register_decoration({ deco_type = "simple", @@ -4157,6 +4168,7 @@ local function register_dimension_decorations() fill_ratio = 0.02, biomes = {"CrimsonForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_lava_nether_max - 10, flags = "all_floors", decoration = "mcl_crimson:crimson_fungus", }) @@ -4186,16 +4198,6 @@ local function register_dimension_decorations() decoration = "mcl_crimson:crimson_roots", }) - minetest.register_decoration({ - deco_type = "simple", - place_on = {"mcl_crimson:crimson_nylium"}, - sidelen = 16, - fill_ratio = 0.052, - biomes = {"CrimsonForest"}, - y_min = mcl_vars.mg_lava_nether_max + 1, - flags = "all_floors", - decoration = "mcl_crimson:nether_sprouts", - }) --SOULSAND VALLEY minetest.register_decoration({ deco_type = "simple", From fefb15f2a833b7a1e1e7576c4f82895fad8053f3 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 14:28:05 +0200 Subject: [PATCH 33/39] Add new fungus tree schematics --- mods/ITEMS/mcl_crimson/init.lua | 4 +- .../schematics/crimson_fungus_1.mts | Bin 0 -> 200 bytes .../schematics/crimson_fungus_2.mts | Bin 0 -> 208 bytes .../schematics/crimson_fungus_3.mts | Bin 0 -> 273 bytes .../schematics/crimson_mushroom.mts | Bin 169 -> 0 bytes .../schematics/warped_fungus_1.mts | Bin 0 -> 209 bytes .../schematics/warped_fungus_2.mts | Bin 0 -> 193 bytes .../schematics/warped_fungus_3.mts | Bin 0 -> 223 bytes .../schematics/warped_mushroom.mts | Bin 167 -> 0 bytes mods/MAPGEN/mcl_biomes/init.lua | 96 ++++++++++++++---- mods/MAPGEN/mcl_geodes/init.lua | 2 - 11 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 mods/ITEMS/mcl_crimson/schematics/crimson_fungus_1.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/crimson_fungus_2.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/crimson_fungus_3.mts delete mode 100644 mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/warped_fungus_1.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/warped_fungus_2.mts create mode 100644 mods/ITEMS/mcl_crimson/schematics/warped_fungus_3.mts delete mode 100644 mods/ITEMS/mcl_crimson/schematics/warped_mushroom.mts diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 9b2a33bb9..a7fe33f71 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -212,7 +212,7 @@ minetest.register_node("mcl_crimson:stripped_warped_hyphae", { description = S("Stripped warped hyphae"), _doc_items_longdesc = S("The stripped hyphae of a warped fungus"), _doc_items_hidden = false, - tiles = {"warped_stem_stripped_top.png", "crimson_stem_warped_top.png", "warped_stem_stripped_side.png"}, + tiles = {"warped_stem_stripped_top.png", "warped_stem_stripped_top.png", "warped_stem_stripped_side.png"}, paramtype2 = "facedir", on_place = mcl_util.rotate_axis, groups = {handy = 1, axey = 1, tree = 1, building_block = 1, material_wood = 1}, @@ -349,7 +349,7 @@ minetest.register_node("mcl_crimson:crimson_hyphae", { sounds = mcl_sounds.node_sound_wood_defaults(), _mcl_blast_resistance = 2, _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant, + _mcl_stripped_variant = "mcl_crimson:stripped_crimson_hyphae", }) --Stem bark, stripped stem and bark diff --git a/mods/ITEMS/mcl_crimson/schematics/crimson_fungus_1.mts b/mods/ITEMS/mcl_crimson/schematics/crimson_fungus_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..a61712fef3802fbc332eacdf57d548af07641d55 GIT binary patch literal 200 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w4CO0`JJ}V)4Gf07C zlZ!HQi}UlWpmcmjWkE(_DuXz(TyaKGetvFFW_m_R#hj}Fj(iOYJlS6#{@vB~V9lYH zmdUEOr7lfnQ(*Ppn$FtexqD~rZ~Yw2XD!v6UOBrLJ0wA9`F|&w4CO0`JJ}V)4Gf07C zlZ!HQi}UlWpmcmjWkE(_DuXz(TyaKGetvFFW_m_R#hkkn0=W(ta5$G*SFE#}^XO8h z_xIf*mmCf&honr{H|g2LJ(jgopWR(5`E!O^?~+`pO6%_5wbRZ&d296J`>ScD?1=_5 kyKk@RKfZ&<>`s2>#nlOqDz}Hs@%TOK9DfO8(l$9x05MouxBvhE literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/schematics/crimson_fungus_3.mts b/mods/ITEMS/mcl_crimson/schematics/crimson_fungus_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..84f8fa791e276979db2eb451e3e57b3d39f0d6db GIT binary patch literal 273 zcmeYb3HD`RVPI$AWniyI20%gP#LOZFncU=@_`KATjMO442o+zRSX2_9l#`#F%^(Gm zO)kpJEzZxgg3|FBl?54zsSM)Ca>W@%`T4mynduoN6?5K(yya_9;FwZX5V!Z{mC_%b zm;OB7T6#}m!R4YnrYoUS*3CPm{f6mal$Ma7kma7jO}&n`ZfGk)c-pcm{a@9NsB z_xMYZ{gdjf1%&Guz-TbEzi@apT6yk$l9b0;)2C)=cdwC@H0>@Il{ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts b/mods/ITEMS/mcl_crimson/schematics/crimson_mushroom.mts deleted file mode 100644 index ff2ba058cbd97a106d1cba951d4918f4845a6b6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w4CO0`JJ}V)4Gl+v^ zlZ!HQi}UlWiZhDx^K)}D(=$pKq>v?`3gR;=3o;T@E9N989N?B%IDzwA(vkIz3<*b= uBqy9Xn#XMHC+1;ld`Bg1&ojZtMW61tud1wY_-nwZ(sFSD8-w$<0wA9`F|&w4Ha9sZKDj6}w>Uq~sywl%AT=c(NR`AV<>V)4 zGe}~Q&ZsQNNK9oAN0utiD9X>z&B;v9D5;opHNcVYfC9(j+lPODP4!?|HsS4#SqaTs zLtMoaHrzcmEC0Y9L92`6((f0i7_=R+(UhC~>2=n&XV$Z8OuzmAeyll4=33^JD@xAZ f#}-GfXj-_-bc=W7)n89{&RZYwM@IbUMMVw(i1b?F literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/schematics/warped_fungus_2.mts b/mods/ITEMS/mcl_crimson/schematics/warped_fungus_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..564731158990f9d900c96f316339d095f18c9513 GIT binary patch literal 193 zcmeYb3HD`RVPIuoV_>ZZ10at%F|&w4Ha9sZKDj6}w>Uq~sywl%AT=c(NR`AV<>V)4 zGl(Ng7iSdZ=jY~Rre~BeNFqx>^<`8RWF)3m%sK1l$albiW75}$HMQPXv?8~cY)@=j z!nkTC!y*MP!&kQ%Z`q}_-<;8x-Wrhc`P*@?t6%T0Yco-K;i4YbvEBNG-=?HqBfqRg R8k<+Y()z3HCnPA$0|1@?P6Ge{ literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/schematics/warped_fungus_3.mts b/mods/ITEMS/mcl_crimson/schematics/warped_fungus_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..079631a20b410fd6061f69c6bdceea7384102ca6 GIT binary patch literal 223 zcmeYb3HD`RVPIw8VPLIC0zfh5#LOZF+1%uu_~fF@+~WK^tMbI6g4C3FAXO5dl#`#F z%^;2}U7S&rpP!qPnVwO?Ac-si)t6COkdc^LG3V`sK)wSC9L|Z>7UA)30g4=_{>1uv z*sod75g?$(_cMb1RBh-nmg5J{?T?wh@b`^{79vT?Xa7I&sk&Vee}3)$dDiDOE}!60 rn#5@HZSn=9FVB8!U-Y%^2o{p%-NvPICpCU+zQpgX7nrNAst5r9BnVpb literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_crimson/schematics/warped_mushroom.mts b/mods/ITEMS/mcl_crimson/schematics/warped_mushroom.mts deleted file mode 100644 index 76d59be0e899614f8677c054383fc31d78296928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeYb3HD`RVPIw8U|_9>0wA9`F|&w4JU2NfKDj6}w>Uq~syL%4KR-7oGd-h(K^9q} zJh7-CH6 -26900 then return end @@ -4341,11 +4404,10 @@ if mg_name ~= "singlenode" then end end if minp.y > mcl_vars.mg_nether_max then return end - for _, pos in ipairs(gennotify["decoration#"..deco_id_crimson_tree] or {}) do - minetest.fix_light(vector.offset(pos,-8,-8,-8),vector.offset(pos,8,8,8)) - end - for _, pos in ipairs(gennotify["decoration#"..deco_id_warped_tree] or {}) do - minetest.fix_light(vector.offset(pos,-8,-8,-8),vector.offset(pos,8,8,8)) + for _,f in pairs(deco_ids_fungus) do + for _, pos in ipairs(gennotify["decoration#"..f] or {}) do + minetest.fix_light(vector.offset(pos,-8,-8,-8),vector.offset(pos,8,8,8)) + end end end) end diff --git a/mods/MAPGEN/mcl_geodes/init.lua b/mods/MAPGEN/mcl_geodes/init.lua index 84acd973b..c03173367 100644 --- a/mods/MAPGEN/mcl_geodes/init.lua +++ b/mods/MAPGEN/mcl_geodes/init.lua @@ -76,10 +76,8 @@ mcl_structures.register_structure("geode",{ flags = "absvalue", }, flags = "place_center_x, place_center_z, force_placement", - biomes = ocean_biomes, y_max = -24, y_min = mcl_vars.mg_overworld_min, - filenames = schems, y_offset = function(pr) return pr:next(-4,-2) end, place_func = function(pos,def,pr) local p = vector.new(pos.x + pr:next(-30,30),pos.y,pos.z + pr:next(-30,30)) From 0890c719a3f7d925ec0a521127e194aadabe0585 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 16:01:25 +0200 Subject: [PATCH 34/39] Add basalt pillars --- mods/MAPGEN/mcl_biomes/init.lua | 18 +++---- mods/MAPGEN/mcl_terrain_features/init.lua | 57 +++++++++++++++++++---- 2 files changed, 58 insertions(+), 17 deletions(-) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 5be23e766..3f846b2b6 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -1533,8 +1533,8 @@ local function register_dimension_biomes() ore = "mcl_nether:soul_sand", wherein = { "mcl_nether:netherrack", "mcl_blackstone:soul_soil" }, clust_scarcity = 100, - clust_num_ores = 100, - clust_size = 10, + clust_num_ores = 225, + clust_size = 15, biomes = { "SoulsandValley" }, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max + 80, @@ -1623,10 +1623,10 @@ local function register_dimension_biomes() minetest.register_ore({ ore_type = "blob", ore = "mcl_blackstone:blackstone", - wherein = { "mcl_nether:netherrack" }, + wherein = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_core:gravel","mcl_nether:soul_sand"}, clust_scarcity = 100, - clust_num_ores = 100, - clust_size = 10, + clust_num_ores = 400, + clust_size = 20, biomes = { "BasaltDelta" }, y_min = mcl_vars.mg_nether_min, y_max = mcl_vars.mg_nether_max + 80, @@ -1644,14 +1644,14 @@ local function register_dimension_biomes() minetest.register_decoration({ deco_type = "simple", - place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:blackstone"}, + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand","mcl_blackstone:blackstone"}, sidelen = 16, fill_ratio = 10, biomes = { "BasaltDelta" }, y_min = -31000, y_max = mcl_vars.mg_nether_max, decoration = "mcl_blackstone:basalt", - flags = "all_floors, all_ceilings", + flags = "all_floors", param2 = 0, }) @@ -4163,8 +4163,8 @@ local function register_dimension_decorations() biomes = {"WarpedForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, flags = "all_floors", - height = 3, - max_height = 5, + height = 2, + height_max = 8, decoration = "mcl_crimson:twisting_vines", }) minetest.register_decoration({ diff --git a/mods/MAPGEN/mcl_terrain_features/init.lua b/mods/MAPGEN/mcl_terrain_features/init.lua index 2c5fa9254..4375e869d 100644 --- a/mods/MAPGEN/mcl_terrain_features/init.lua +++ b/mods/MAPGEN/mcl_terrain_features/init.lua @@ -10,6 +10,13 @@ local adjacents = { vector.new(0,-1,0) } +local plane_adjacents = { + vector.new(1,0,0), + vector.new(-1,0,0), + vector.new(0,0,1), + vector.new(0,0,-1), +} + local function set_node_no_bedrock(pos,node) local n = minetest.get_node(pos) if n.name == "mcl_core:bedrock" then return end @@ -92,7 +99,7 @@ mcl_structures.register_structure("water_lake",{ offset = 0, scale = 0.000032, spread = {x = 250, y = 250, z = 250}, - seed = 734341353, + seed = 756641353, octaves = 3, persist = 0.001, flags = "absvalue", @@ -112,9 +119,9 @@ mcl_structures.register_structure("basalt_column",{ num_spawn_by = 2, noise_params = { offset = 0, - scale = 0.01, + scale = 0.02, spread = {x = 250, y = 250, z = 250}, - seed = 78375213, + seed = 7225213, octaves = 5, persist = 0.1, flags = "absvalue", @@ -130,16 +137,50 @@ mcl_structures.register_structure("basalt_column",{ end) if #nn < 1 then return false end for i=1,pr:next(1,#nn) do - local dst=vector.distance(pos,nn[i]) - for ii=0,pr:next(1,15)-dst do - set_node_no_bedrock(vector.new(nn[i].x,nn[i].y + ii,nn[i].z),{name="mcl_blackstone:basalt"}) + if minetest.get_node(vector.offset(nn[i],0,-1,0)).name ~= "air" then + local dst=vector.distance(pos,nn[i]) + for ii=0,pr:next(2,14)-dst do + set_node_no_bedrock(vector.new(nn[i].x,nn[i].y + ii,nn[i].z),{name="mcl_blackstone:basalt"}) + end + end + end + return true + end +}) +mcl_structures.register_structure("basalt_pillar",{ + place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, + noise_params = { + offset = 0, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 783213, + octaves = 5, + persist = 0.1, + flags = "absvalue", + }, + flags = "all_floors", + y_max = mcl_vars.mg_nether_max, + y_min = mcl_vars.mg_lava_nether_max + 1, + biomes = { "BasaltDelta" }, + place_func = function(pos,def,pr) + local nn = minetest.find_nodes_in_area(vector.offset(pos,-2,-1,-2),vector.offset(pos,2,-1,2),{"air","mcl_blackstone:basalt","mcl_blackstone:blackstone"}) + table.sort(nn,function(a, b) + return vector.distance(vector.new(pos.x,0,pos.z), a) < vector.distance(vector.new(pos.x,0,pos.z), b) + end) + if #nn < 1 then return false end + for i=1,pr:next(1,#nn) do + if minetest.get_node(vector.offset(nn[i],0,-1,0)).name ~= "air" then + local dst=vector.distance(pos,nn[i]) + for ii=0,pr:next(19,34)-dst do + set_node_no_bedrock(vector.new(nn[i].x,nn[i].y + ii,nn[i].z),{name="mcl_blackstone:basalt"}) + end end end return true end }) -mcl_structures.register_structure("netherlavapool",{ +mcl_structures.register_structure("lavadelta",{ place_on = {"mcl_blackstone:blackstone","mcl_blackstone:basalt"}, spawn_by = {"mcl_blackstone:basalt","mcl_blackstone:blackstone"}, num_spawn_by = 2, @@ -157,7 +198,7 @@ mcl_structures.register_structure("netherlavapool",{ y_min = mcl_vars.mg_lava_nether_max + 1, biomes = { "BasaltDelta" }, place_func = function(pos,def,pr) - local nn = minetest.find_nodes_in_area(vector.offset(pos,-15,-1,-15),vector.offset(pos,15,-1,15),{"mcl_blackstone:basalt","mcl_blackstone:blackstone"}) + local nn = minetest.find_nodes_in_area_under_air(vector.offset(pos,-10,-1,-10),vector.offset(pos,10,-1,10),{"mcl_blackstone:basalt","mcl_blackstone:blackstone"}) table.sort(nn,function(a, b) return vector.distance(vector.new(pos.x,0,pos.z), a) < vector.distance(vector.new(pos.x,0,pos.z), b) end) From 5b366c692de4e178d4b698ca642a48c3c558b4ef Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 16:28:03 +0200 Subject: [PATCH 35/39] Enable mob spawning in new biomes lower ghast spawning chance --- mods/ENTITIES/mobs_mc/enderman.lua | 23 ++++++++++++++++++---- mods/ENTITIES/mobs_mc/ghast.lua | 8 +++++--- mods/ENTITIES/mobs_mc/skeleton+stray.lua | 6 ++---- mods/ENTITIES/mobs_mc/slime+magma_cube.lua | 9 ++++++--- mods/ENTITIES/mobs_mc/zombiepig.lua | 3 ++- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua index 2391c4b21..4dcd6693c 100644 --- a/mods/ENTITIES/mobs_mc/enderman.lua +++ b/mods/ENTITIES/mobs_mc/enderman.lua @@ -751,8 +751,6 @@ mcl_mobs:spawn_specific( "JungleM_underground", "ExtremeHillsM_underground", "JungleEdgeM_underground", -"Nether", -"WarpedForest" }, 0, 7, @@ -768,15 +766,32 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"SoulsandValley", }, 0, -7, +minetest.LIGHT_MAX+1, 30, 27500, 4, mcl_vars.mg_nether_min, mcl_vars.mg_nether_max) +-- Warped Forest spawn (common) +mcl_mobs:spawn_specific( +"mobs_mc:enderman", +"nether", +"ground", +{ +"WarpedForest" +}, +0, +minetest.LIGHT_MAX+1, +30, +5000, +4, +mcl_vars.mg_nether_min, +mcl_vars.mg_nether_max) + -- spawn eggs mcl_mobs:register_egg("mobs_mc:enderman", S("Enderman"), "mobs_mc_spawn_icon_enderman.png", 0) diff --git a/mods/ENTITIES/mobs_mc/ghast.lua b/mods/ENTITIES/mobs_mc/ghast.lua index fd77b9ed8..6e2ea927c 100644 --- a/mods/ENTITIES/mobs_mc/ghast.lua +++ b/mods/ENTITIES/mobs_mc/ghast.lua @@ -81,12 +81,14 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"SoulsandValley", +"BasaltDelta", }, 0, -minetest.LIGHT_MAX+1, +7, 30, -18000, +72000, 2, mcl_vars.mg_nether_min, mcl_vars.mg_nether_max) diff --git a/mods/ENTITIES/mobs_mc/skeleton+stray.lua b/mods/ENTITIES/mobs_mc/skeleton+stray.lua index ccfae401a..005bed66d 100644 --- a/mods/ENTITIES/mobs_mc/skeleton+stray.lua +++ b/mods/ENTITIES/mobs_mc/skeleton+stray.lua @@ -286,8 +286,6 @@ mcl_mobs:spawn_specific( "JungleM_underground", "ExtremeHillsM_underground", "JungleEdgeM_underground", -"Nether", -"SoulsandValley" }, 0, 7, @@ -304,10 +302,10 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"SoulsandValley", }, 0, -7, +minetest.LIGHT_MAX+1, 30, 10000, 3, diff --git a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua index 0c6c1ee1e..911ae15e8 100644 --- a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua +++ b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua @@ -402,7 +402,8 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"BasaltDelta", }, 0, minetest.LIGHT_MAX+1, @@ -418,7 +419,8 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"BasaltDelta", }, 0, minetest.LIGHT_MAX+1, @@ -433,7 +435,8 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"BasaltDelta", }, 0, minetest.LIGHT_MAX+1, diff --git a/mods/ENTITIES/mobs_mc/zombiepig.lua b/mods/ENTITIES/mobs_mc/zombiepig.lua index 3d0b4f183..b054734bc 100644 --- a/mods/ENTITIES/mobs_mc/zombiepig.lua +++ b/mods/ENTITIES/mobs_mc/zombiepig.lua @@ -118,7 +118,8 @@ mcl_mobs:spawn_specific( "nether", "ground", { -"Nether" +"Nether", +"CrimsonForest", }, 0, minetest.LIGHT_MAX+1, From 41f708e03e32b5ba99a6d61aa64b930433c0b248 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 18 Jun 2022 21:38:20 +0200 Subject: [PATCH 36/39] Regular decorations for legacy nether(except v6) minetest supports this now --- mods/MAPGEN/mcl_biomes/init.lua | 61 +++++++++++++++- mods/MAPGEN/mcl_mapgen_core/init.lua | 105 +++++++++++++-------------- 2 files changed, 112 insertions(+), 54 deletions(-) diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 3f846b2b6..392f79038 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -1499,6 +1499,20 @@ local function register_dimension_biomes() _mcl_biome_type = "hot", _mcl_palette_index = 17, }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand"}, + sidelen = 16, + fill_ratio = 10, + biomes = { "Nether" }, + y_min = -31000, + y_max = mcl_vars.mg_nether_max, + decoration = "mcl_nether:netherrack", + flags = "all_floors", + param2 = 0, + }) + minetest.register_biome({ name = "SoulsandValley", node_filler = "mcl_nether:netherrack", @@ -4100,6 +4114,51 @@ end -- Decorations in non-Overworld dimensions local function register_dimension_decorations() --[[ NETHER ]] + --NETHER WASTES (Nether) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack","mcl_nether:magma"}, + sidelen = 16, + fill_ratio = 0.04, + biomes = {"Nether"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 1, + flags = "all_floors", + decoration = "mcl_fire:eternal_fire", + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack"}, + sidelen = 16, + fill_ratio = 0.013, + biomes = {"Nether"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 1, + flags = "all_floors", + decoration = "mcl_mushrooms:mushroom_brown", + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:netherrack"}, + sidelen = 16, + fill_ratio = 0.012, + biomes = {"Nether"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 1, + flags = "all_floors", + decoration = "mcl_mushrooms:mushroom_red", + }) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"mcl_nether:soul_sand"}, + sidelen = 16, + fill_ratio = 0.0032, + biomes = {"Nether","SoulsandValley"}, + y_min = mcl_vars.mg_lava_nether_max + 1, + y_max = mcl_vars.mg_nether_max - 1, + flags = "all_floors", + decoration = "mcl_nether:nether_wart", + }) -- WARPED FOREST minetest.register_decoration({ @@ -4109,7 +4168,7 @@ local function register_dimension_decorations() fill_ratio = 0.02, biomes = {"WarpedForest"}, y_min = mcl_vars.mg_lava_nether_max + 1, - y_max = mcl_vars.mg_lava_nether_max - 10, + y_max = mcl_vars.mg_nether_max - 10, flags = "all_floors", decoration = "mcl_crimson:warped_fungus", }) diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index d9494d18b..2bbcab1cf 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -1754,70 +1754,69 @@ else nether_wart_chance = 170 end -- Generate Nether decorations manually: Eternal fire, mushrooms, nether wart --- Minetest's API does not support decorations in caves yet. :-( +-- (only v6) local function generate_nether_decorations(minp, maxp, seed) - local pr_nether = PseudoRandom(seed+667) + if mg_name == "v6" then + local pr_nether = PseudoRandom(seed+667) - if minp.y > mcl_vars.mg_nether_max or maxp.y < mcl_vars.mg_nether_min then - return - end - - minetest.log("action", "[mcl_mapgen_core] Nether decorations " .. minetest.pos_to_string(minp) .. " ... " .. minetest.pos_to_string(maxp)) - - -- TODO: Generate everything based on Perlin noise instead of PseudoRandom - - local bpos - local rack = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:netherrack"}) - local magma = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:magma"}) - local ssand = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:soul_sand"}) - - -- Helper function to spawn “fake” decoration - local function special_deco(nodes, spawn_func) - for n = 1, #nodes do - bpos = {x = nodes[n].x, y = nodes[n].y + 1, z = nodes[n].z } - - spawn_func(bpos) + if minp.y > mcl_vars.mg_nether_max or maxp.y < mcl_vars.mg_nether_min then + return end - end + minetest.log("action", "[mcl_mapgen_core] Nether decorations " .. minetest.pos_to_string(minp) .. " ... " .. minetest.pos_to_string(maxp)) - -- Eternal fire on netherrack - special_deco(rack, function(bpos) - -- Eternal fire on netherrack - if pr_nether:next(1,100) <= 3 then - minetest.set_node(bpos, {name = "mcl_fire:eternal_fire"}) - end - end) + -- TODO: Generate everything based on Perlin noise instead of PseudoRandom - -- Eternal fire on magma cubes - special_deco(magma, function(bpos) - if pr_nether:next(1,150) == 1 then - minetest.set_node(bpos, {name = "mcl_fire:eternal_fire"}) - end - end) + local bpos + local rack = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:netherrack"}) + local magma = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:magma"}) + local ssand = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:soul_sand"}) - -- Mushrooms on netherrack - -- Note: Spawned *after* the fire because of light level checks - special_deco(rack, function(bpos) - local l = minetest.get_node_light(bpos, 0.5) - if bpos.y > mcl_vars.mg_lava_nether_max + 6 and l and l <= 12 and pr_nether:next(1,1000) <= 4 then - -- TODO: Make mushrooms appear in groups, use Perlin noise - if pr_nether:next(1,2) == 1 then - minetest.set_node(bpos, {name = "mcl_mushrooms:mushroom_brown"}) - else - minetest.set_node(bpos, {name = "mcl_mushrooms:mushroom_red"}) + -- Helper function to spawn “fake” decoration + local function special_deco(nodes, spawn_func) + for n = 1, #nodes do + bpos = {x = nodes[n].x, y = nodes[n].y + 1, z = nodes[n].z } + + spawn_func(bpos) end end - end) + -- Eternal fire on netherrack + special_deco(rack, function(bpos) + -- Eternal fire on netherrack + if pr_nether:next(1,100) <= 3 then + minetest.set_node(bpos, {name = "mcl_fire:eternal_fire"}) + end + end) - -- Nether wart on soul sand - -- TODO: Spawn in Nether fortresses - special_deco(ssand, function(bpos) - if pr_nether:next(1, nether_wart_chance) == 1 then - minetest.set_node(bpos, {name = "mcl_nether:nether_wart"}) - end - end) + -- Eternal fire on magma cubes + special_deco(magma, function(bpos) + if pr_nether:next(1,150) == 1 then + minetest.set_node(bpos, {name = "mcl_fire:eternal_fire"}) + end + end) + -- Mushrooms on netherrack + -- Note: Spawned *after* the fire because of light level checks + special_deco(rack, function(bpos) + local l = minetest.get_node_light(bpos, 0.5) + if bpos.y > mcl_vars.mg_lava_nether_max + 6 and l and l <= 12 and pr_nether:next(1,1000) <= 4 then + -- TODO: Make mushrooms appear in groups, use Perlin noise + if pr_nether:next(1,2) == 1 then + minetest.set_node(bpos, {name = "mcl_mushrooms:mushroom_brown"}) + else + minetest.set_node(bpos, {name = "mcl_mushrooms:mushroom_red"}) + end + end + end) + + -- Nether wart on soul sand + -- TODO: Spawn in Nether fortresses + special_deco(ssand, function(bpos) + if pr_nether:next(1, nether_wart_chance) == 1 then + minetest.set_node(bpos, {name = "mcl_nether:nether_wart"}) + end + end) + end end minetest.register_on_generated(function(minp, maxp, blockseed) From ecf6236152160be3aa84194009d5bef234785d1a Mon Sep 17 00:00:00 2001 From: cora Date: Sun, 19 Jun 2022 00:05:47 +0200 Subject: [PATCH 37/39] Set fog color according to nether biome --- mods/ENVIRONMENT/mcl_weather/skycolor.lua | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/mods/ENVIRONMENT/mcl_weather/skycolor.lua b/mods/ENVIRONMENT/mcl_weather/skycolor.lua index 7b6183d44..54751007b 100644 --- a/mods/ENVIRONMENT/mcl_weather/skycolor.lua +++ b/mods/ENVIRONMENT/mcl_weather/skycolor.lua @@ -146,8 +146,25 @@ mcl_weather.skycolor = { player:set_stars({visible = false}) mcl_weather.skycolor.override_day_night_ratio(player, 0.5) elseif dim == "nether" then - player:set_sky({ type = "plain", - base_color = "#300808", + local nether_sky = { + Nether = "#300808", + BasaltDelta = "#685F70", + SoulsandValley = "#1B4745", + CrimsonForest = "#330303", + WarpedForest = "#1A051A" + } + local biometint = nether_sky[minetest.get_biome_name(minetest.get_biome_data(player:get_pos()).biome)] + + player:set_sky({ + type = "regular", + sky_color = { + day_sky = "#300808", + day_horizon = biometint, + dawn_sky = "#300808", + dawn_horizon = biometint, + night_sky = "#300808", + night_horizon = biometint, + }, clouds = false, }) player:set_sun({visible = false , sunrise_visible = false}) From 31b94f5b2266b4ed46d9585480a9d92289312fa9 Mon Sep 17 00:00:00 2001 From: cora Date: Sun, 19 Jun 2022 00:17:43 +0200 Subject: [PATCH 38/39] Add "nether outpost" As a temporary solution until large nether fortresses are there. This is just a little tower containing some warts and a blaze spawner. --- mods/ITEMS/mcl_crimson/init.lua | 4 +- mods/MAPGEN/mcl_nether_fortresses/init.lua | 36 ++++++++++++++++++ mods/MAPGEN/mcl_nether_fortresses/mod.conf | 3 ++ .../schematics/nether_outpost.mts | Bin 0 -> 1392 bytes mods/MAPGEN/mcl_structures/api.lua | 4 ++ 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 mods/MAPGEN/mcl_nether_fortresses/init.lua create mode 100644 mods/MAPGEN/mcl_nether_fortresses/mod.conf create mode 100644 mods/MAPGEN/mcl_nether_fortresses/schematics/nether_outpost.mts diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index a7fe33f71..73c7f787d 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -6,11 +6,11 @@ local modpath = minetest.get_modpath(modname) -- adapted for mcl2 by cora local function generate_warped_tree(pos) - minetest.place_schematic(pos,modpath.."/schematics/warped_mushroom.mts","random",nil,false,"place_center_x,place_center_z") + minetest.place_schematic(pos,modpath.."/schematics/warped_fungus_1.mts","random",nil,false,"place_center_x,place_center_z") end function generate_crimson_tree(pos) - minetest.place_schematic(pos,modpath.."/schematics/crimson_mushroom.mts","random",nil,false,"place_center_x,place_center_z") + minetest.place_schematic(pos,modpath.."/schematics/crimson_fungus_1.mts","random",nil,false,"place_center_x,place_center_z") end minetest.register_node("mcl_crimson:warped_fungus", { diff --git a/mods/MAPGEN/mcl_nether_fortresses/init.lua b/mods/MAPGEN/mcl_nether_fortresses/init.lua new file mode 100644 index 000000000..8910669cd --- /dev/null +++ b/mods/MAPGEN/mcl_nether_fortresses/init.lua @@ -0,0 +1,36 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) + +mcl_structures.register_structure("nether_outpost",{ + place_on = {"mcl_nether:netherrack","mcl_crimson:crimson_nylium","mcl_crimson:warped_nylium","mcl_blackstone:basalt","mcl_blackstone:soul_soil"}, + noise_params = { + offset = 0, + scale = 0.00022, + spread = {x = 250, y = 250, z = 250}, + seed = 333, + octaves = 1, + persist = 0.0001, + flags = "absvalue", + }, + flags = "all_floors", + biomes = {"Nether","SoulsandValley","WarpedForest","CrimsonForest","BasaltDelta"}, + on_place = function(pos,def,pr) + local sidelen = 15 + local node = minetest.get_node(vector.offset(pos,1,1,0)) + local solid = minetest.find_nodes_in_area(vector.offset(pos,-sidelen/2,-1,-sidelen/2),vector.offset(pos,sidelen/2,-1,sidelen/2),{"group:solid"}) + local air = minetest.find_nodes_in_area(vector.offset(pos,-sidelen/2,1,-sidelen/2),vector.offset(pos,sidelen/2,4,sidelen/2),{"air"}) + if #solid < ( sidelen * sidelen ) or + #air < (sidelen * sidelen ) then return false end + minetest.bulk_set_node(solid,node) + return true + end, + y_min = mcl_vars.mg_lava_nether_max, + y_max = mcl_vars.mg_nether_max - 30, + filenames = { modpath.."/schematics/nether_outpost.mts" }, + y_offset = 0, + after_place = function(pos) + local sp = minetest.find_nodes_in_area(pos,vector.offset(pos,0,20,0),{"mcl_mobspawners:spawner"}) + if not sp[1] then return end + mcl_mobspawners.setup_spawner(sp[1], "mobs_mc:blaze", 0, minetest.LIGHT_MAX+1, 10, 3, -1) + end +}) diff --git a/mods/MAPGEN/mcl_nether_fortresses/mod.conf b/mods/MAPGEN/mcl_nether_fortresses/mod.conf new file mode 100644 index 000000000..7d1565ff3 --- /dev/null +++ b/mods/MAPGEN/mcl_nether_fortresses/mod.conf @@ -0,0 +1,3 @@ +name = mcl_nether_fortresses +author = cora +depends = mcl_init, mcl_structures, mcl_mobspawners diff --git a/mods/MAPGEN/mcl_nether_fortresses/schematics/nether_outpost.mts b/mods/MAPGEN/mcl_nether_fortresses/schematics/nether_outpost.mts new file mode 100644 index 0000000000000000000000000000000000000000..7fba741bffc627745bed98dad8e688552a64664e GIT binary patch literal 1392 zcmeYb3HD`RVc=!pXW*?z1q@OQ%!!#r49dC5Iq}6MKxVNOn2OI!Ey+kNicc!aOwNwa zFD*$eVvxnFh(QV@U7nbeQ*2d~ngY=e(Qe2f4w8ciSs|N@N0TWYITMIm(o*x1Q;Sgy zj0cMm@=s=79?(Cy9c;uPjpSgUZ%~4RK?F%MJtx1sxFkO>l|cq13Jb%W#3WQbC?Sk4 z8=sP2nv|1@VsLSODbTpYyc7lrBK~+0%0(SVRt3OD2NMC(u5HtQDDkgGDw1qO3F!0&IX696*wqL@{5u) z@Wh!##hkYhy^|Iz@bq2T{cdgC_U*S{-Mjqh)p0E^j?SiAr|w9#@jYz*BP7FBaKTB- zVP^b(aoM6Kp}GnGio@bK(=Qb}iM%vC@mN>mL91ijnLql9r!M_j!1`e77bC%ylfGTi z`4oL8c+t7nJ3CHDH-~83$WB;4WBQS8ljgJ;oHLqheR4+J*%+y!)QQ@=pJ#0n@G9Oc z5jbz&z3`(7tDLW<{qqoGxU{%Q=F18B2cEOucb*QM$s085&4tg;K7770WhJ}kt>4T! zr#FgawS=VjZ~dfF^gQ=fPhK#0sFQBU{RLu&K3`K7m+qZcpj#slna{trmFsEawI&m` z9fC7Y`~8_#p3k?{LEGZ#?hDTsn7v)Wx>M|(^sO?}-v4?I-&t>e-n}7Q_kp?a+E%Lx zV&S(-6BzG4zRq;)+SNm!zBeUJ@N${^6sv6@bpW-C$^`1J# z7eA#}a;wg#Ot<+ui*|jJy??I0Rm1x;``U$T|GS@>x`plb7jfgD9ej+DhPRY+j6O1K zRdKU+OFp7iQk|0K=D&qoiZ=o%V7+9vM3U?Gj9$seFFKE9W}IP?TAN;QMWBD$%ZyC^ zlZUQs+VE@|Yutow!D4qdF52emnY^i?p3$2pX@gRSyVxDADXitGAN1DnPd)x4@<6=W z>Z*U6oI7^EQQIs~{ae`W)?*?2lP(_JdnX<^eZ^$){L?PGCm2qge4=u)_1(OL+qL%6 zIng_+zc9S}{ZrtAW@2vlvGc_XCES-^Y*9PP;KyKdnR#ARfA@K3yGRcsh21(|W>tH) zy^xQrF#F3NxnX{5?B)vzZl0?jy|}Wq!t12d Date: Sun, 19 Jun 2022 13:27:12 +0200 Subject: [PATCH 39/39] readd grow_twisting_vines func --- mods/ITEMS/mcl_crimson/init.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 73c7f787d..bb8736ae1 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -13,6 +13,21 @@ function generate_crimson_tree(pos) minetest.place_schematic(pos,modpath.."/schematics/crimson_fungus_1.mts","random",nil,false,"place_center_x,place_center_z") end +function grow_twisting_vines(pos, moreontop) + local y = pos.y + 1 + while not (moreontop == 0) do + if minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air" then + minetest.set_node({x = pos.x, y = y, z = pos.z}, {name="mcl_crimson:twisting_vines"}) + moreontop = moreontop - 1 + y = y + 1 + elseif minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "mcl_crimson:twisting_vines" then + y = y + 1 + else + moreontop = 0 + end + end +end + minetest.register_node("mcl_crimson:warped_fungus", { description = S("Warped Fungus Mushroom"), drawtype = "plantlike",