From 7c75dafcdb14ccb01baca6f90802b7e36563d197 Mon Sep 17 00:00:00 2001 From: HybridDog Date: Wed, 18 Feb 2015 18:34:03 +0100 Subject: [PATCH] at least a bit history --- .gitignore | 4 + README.txt | 11 +- nether/crafting.lua | 243 +++ nether/depends.txt | 3 +- nether/furnace.lua | 346 ++++ nether/guide.lua | 383 ++++ nether/init.lua | 1614 ++++++++--------- nether/items.lua | 990 ++++++++++ nether/pearl.lua | 114 ++ nether/portal.lua | 544 ++++++ nether/{ => rest}/Nicht Leere Datei.lua | 166 ++ nether/rest/nether_fruit_leaves.png | Bin 0 -> 1228 bytes nether/{ => rest}/nether_glowstone.png | Bin nether/rest/nether_leaves.png | Bin 0 -> 319 bytes .../nether_leaves_decision/nether_leaves.png | Bin 0 -> 452 bytes .../nether_leaves_high_cont.png | Bin 0 -> 572 bytes nether/{ => rest}/nether_netherrack.png1 | Bin .../nether_portal_creator.png | Bin nether/rest/nether_tree.png | Bin 0 -> 574 bytes nether/rest/nether_tree_top.png | Bin 0 -> 612 bytes nether/{ => rest}/temp.txt | 0 nether/sounds/nether_dig.1.ogg | Bin 0 -> 10577 bytes nether/sounds/nether_dig.2.ogg | Bin 0 -> 8112 bytes nether/sounds/nether_dug.1.ogg | Bin 0 -> 11184 bytes nether/sounds/nether_dug.2.ogg | Bin 0 -> 11114 bytes nether/sounds/nether_extract_blood.1.ogg | Bin 0 -> 12062 bytes nether/sounds/nether_extract_blood.2.ogg | Bin 0 -> 18052 bytes nether/sounds/nether_extract_blood.3.ogg | Bin 0 -> 20292 bytes nether/sounds/nether_extract_blood.4.ogg | Bin 0 -> 16244 bytes nether/sounds/nether_extract_blood.5.ogg | Bin 0 -> 28787 bytes nether/sounds/nether_extract_blood.6.ogg | Bin 0 -> 19968 bytes nether/sounds/nether_extract_blood.7.ogg | Bin 0 -> 22552 bytes nether/sounds/nether_footstep.1.ogg | Bin 0 -> 5420 bytes nether/sounds/nether_footstep.2.ogg | Bin 0 -> 5301 bytes nether/sounds/nether_footstep.3.ogg | Bin 0 -> 5044 bytes nether/sounds/nether_pearl.ogg | Bin 0 -> 8969 bytes nether/sounds/nether_portal_usual.ogg | Bin 0 -> 19702 bytes nether/sounds/nether_remove_leaf.1.ogg | Bin 0 -> 4780 bytes nether/sounds/nether_remove_leaf.2.ogg | Bin 0 -> 4822 bytes nether/sounds/nether_remove_leaf.3.ogg | Bin 0 -> 4909 bytes nether/sounds/nether_teleporter.1.ogg | Bin 0 -> 9698 bytes nether/sounds/nether_teleporter.2.ogg | Bin 0 -> 10599 bytes nether/sounds/nether_teleporter.3.ogg | Bin 0 -> 13627 bytes nether/textures/nether_apple.png | Bin 222 -> 0 bytes nether/textures/nether_axe_netherrack.png | Bin 0 -> 198 bytes .../textures/nether_axe_netherrack_blue.png | Bin 0 -> 220 bytes nether/textures/nether_axe_white.png | Bin 0 -> 289 bytes nether/textures/nether_bark.png | Bin 0 -> 440 bytes nether/textures/nether_blood_cooked.png | Bin 0 -> 541 bytes nether/textures/nether_blood_empty.png | Bin 0 -> 474 bytes nether/textures/nether_blood_extracted.png | Bin 0 -> 303 bytes nether/textures/nether_blood_extractor.png | Bin 0 -> 726 bytes nether/textures/nether_blood_side.png | Bin 525 -> 478 bytes nether/textures/nether_blood_side_cooked.png | Bin 0 -> 493 bytes nether/textures/nether_blood_side_empty.png | Bin 0 -> 401 bytes nether/textures/nether_blood_stem_cooked.png | Bin 0 -> 607 bytes nether/textures/nether_blood_stem_empty.png | Bin 0 -> 532 bytes .../textures/nether_blood_stem_top_cooked.png | Bin 0 -> 764 bytes .../textures/nether_blood_stem_top_empty.png | Bin 0 -> 544 bytes nether/textures/nether_blood_top_cooked.png | Bin 0 -> 709 bytes nether/textures/nether_blood_top_empty.png | Bin 0 -> 471 bytes nether/textures/nether_brick_shadow.png | Bin 196 -> 0 bytes nether/textures/nether_dirt.png | Bin 0 -> 673 bytes nether/textures/nether_dirt_normal.png | Bin 0 -> 449 bytes nether/textures/nether_dirt_top.png | Bin 0 -> 699 bytes nether/textures/nether_dirt_top_normal.png | Bin 0 -> 481 bytes nether/textures/nether_dirt_top_side.png | Bin 0 -> 807 bytes .../textures/nether_dirt_top_side_normal.png | Bin 0 -> 669 bytes nether/textures/nether_dirt_transition.png | Bin 0 -> 670 bytes .../nether_dirt_transition_normal.png | Bin 0 -> 528 bytes nether/textures/nether_fim.png | Bin 0 -> 222 bytes nether/textures/nether_forest_planks.png | Bin 0 -> 488 bytes nether/textures/nether_forest_wood.png | Bin 0 -> 775 bytes nether/textures/nether_forest_wood_normal.png | Bin 0 -> 550 bytes nether/textures/nether_fruit.png | Bin 0 -> 244 bytes nether/textures/nether_fruit_bottom.png | Bin 0 -> 211 bytes nether/textures/nether_fruit_leaf.png | Bin 0 -> 359 bytes nether/textures/nether_fruit_leaves.png | Bin 0 -> 519 bytes nether/textures/nether_fruit_no_leaf.png | Bin 0 -> 529 bytes nether/textures/nether_fruit_top.png | Bin 0 -> 214 bytes nether/textures/nether_glowflower.png | Bin 0 -> 516 bytes nether/textures/nether_grass.png | Bin 0 -> 184 bytes nether/textures/nether_grass_big.png | Bin 0 -> 352 bytes nether/textures/nether_grass_dried.png | Bin 0 -> 218 bytes nether/textures/nether_grass_middle.png | Bin 0 -> 232 bytes nether/textures/nether_grass_small.png | Bin 0 -> 186 bytes nether/textures/nether_hotbed.png | Bin 0 -> 280 bytes nether/textures/nether_leaves.png | Bin 319 -> 427 bytes nether/textures/nether_netherrack.png | Bin 660 -> 603 bytes nether/textures/nether_netherrack_black.png | Bin 0 -> 582 bytes .../nether_netherrack_black_normal.png | Bin 0 -> 490 bytes nether/textures/nether_netherrack_blue.png | Bin 0 -> 831 bytes .../nether_netherrack_blue_normal.png | Bin 0 -> 693 bytes nether/textures/nether_netherrack_brick.png | Bin 0 -> 682 bytes .../nether_netherrack_brick_black.png | Bin 0 -> 547 bytes .../textures/nether_netherrack_brick_blue.png | Bin 0 -> 726 bytes nether/textures/nether_netherrack_normal.png | Bin 0 -> 533 bytes nether/textures/nether_netherrack_soil.png | Bin 0 -> 397 bytes .../nether_netherrack_soil_normal.png | Bin 0 -> 491 bytes nether/textures/nether_netherrack_tiled.png | Bin 0 -> 724 bytes .../nether_netherrack_tiled_normal.png | Bin 0 -> 521 bytes nether/textures/nether_pearl.png | Bin 319 -> 216 bytes nether/textures/nether_pick_mushroom.png | Bin 0 -> 375 bytes nether/textures/nether_pick_netherrack.png | Bin 0 -> 262 bytes .../textures/nether_pick_netherrack_blue.png | Bin 0 -> 309 bytes nether/textures/nether_pick_white.png | Bin 0 -> 358 bytes nether/textures/nether_pick_wood.png | Bin 0 -> 282 bytes nether/textures/nether_portal_particle.png | Bin 368 -> 340 bytes nether/textures/nether_portal_stuff.png | Bin 678 -> 676 bytes .../textures/nether_portal_stuff_normal.png | Bin 0 -> 503 bytes nether/textures/nether_sapling.png | Bin 0 -> 331 bytes nether/textures/nether_shovel_netherrack.png | Bin 0 -> 268 bytes .../nether_shovel_netherrack_blue.png | Bin 0 -> 288 bytes nether/textures/nether_shovel_white.png | Bin 0 -> 416 bytes nether/textures/nether_shroom_stem.png | Bin 0 -> 147 bytes nether/textures/nether_shroom_top.png | Bin 0 -> 127 bytes nether/textures/nether_stick.png | Bin 0 -> 231 bytes nether/textures/nether_sword_netherrack.png | Bin 0 -> 280 bytes .../textures/nether_sword_netherrack_blue.png | Bin 0 -> 326 bytes nether/textures/nether_sword_white.png | Bin 0 -> 315 bytes nether/textures/nether_teleporter.png | Bin 0 -> 11273 bytes nether/textures/nether_torch.png | Bin 230 -> 1083 bytes nether/textures/nether_torch_on_ceiling.png | Bin 210 -> 137 bytes nether/textures/nether_torch_on_floor.png | Bin 206 -> 132 bytes nether/textures/nether_transparent.png | Bin 0 -> 67 bytes nether/textures/nether_tree.png | Bin 574 -> 788 bytes nether/textures/nether_tree_corner.png | Bin 0 -> 777 bytes nether/textures/nether_tree_sapling.png | Bin 0 -> 337 bytes nether/textures/nether_tree_top.png | Bin 612 -> 762 bytes nether/textures/nether_vine.png | Bin 188 -> 173 bytes nether/textures/nether_white.png | Bin 0 -> 616 bytes nether/textures/nether_wood.png | Bin 0 -> 453 bytes nether/textures/nether_wood_cooked.png | Bin 0 -> 791 bytes nether/textures/nether_wood_empty.png | Bin 0 -> 660 bytes nether/textures/nether_wood_empty_normal.png | Bin 0 -> 501 bytes nether/weird_mapgen_noise.lua | 16 +- 136 files changed, 3573 insertions(+), 861 deletions(-) create mode 100644 .gitignore create mode 100644 nether/crafting.lua create mode 100644 nether/furnace.lua create mode 100644 nether/guide.lua create mode 100644 nether/items.lua create mode 100644 nether/pearl.lua create mode 100644 nether/portal.lua rename nether/{ => rest}/Nicht Leere Datei.lua (64%) create mode 100644 nether/rest/nether_fruit_leaves.png rename nether/{ => rest}/nether_glowstone.png (100%) create mode 100644 nether/rest/nether_leaves.png create mode 100644 nether/rest/nether_leaves_decision/nether_leaves.png create mode 100644 nether/rest/nether_leaves_decision/nether_leaves_high_cont.png rename nether/{ => rest}/nether_netherrack.png1 (100%) rename nether/{textures => rest}/nether_portal_creator.png (100%) create mode 100644 nether/rest/nether_tree.png create mode 100644 nether/rest/nether_tree_top.png rename nether/{ => rest}/temp.txt (100%) create mode 100644 nether/sounds/nether_dig.1.ogg create mode 100644 nether/sounds/nether_dig.2.ogg create mode 100644 nether/sounds/nether_dug.1.ogg create mode 100644 nether/sounds/nether_dug.2.ogg create mode 100644 nether/sounds/nether_extract_blood.1.ogg create mode 100644 nether/sounds/nether_extract_blood.2.ogg create mode 100644 nether/sounds/nether_extract_blood.3.ogg create mode 100644 nether/sounds/nether_extract_blood.4.ogg create mode 100644 nether/sounds/nether_extract_blood.5.ogg create mode 100644 nether/sounds/nether_extract_blood.6.ogg create mode 100644 nether/sounds/nether_extract_blood.7.ogg create mode 100644 nether/sounds/nether_footstep.1.ogg create mode 100644 nether/sounds/nether_footstep.2.ogg create mode 100644 nether/sounds/nether_footstep.3.ogg create mode 100644 nether/sounds/nether_pearl.ogg create mode 100644 nether/sounds/nether_portal_usual.ogg create mode 100644 nether/sounds/nether_remove_leaf.1.ogg create mode 100644 nether/sounds/nether_remove_leaf.2.ogg create mode 100644 nether/sounds/nether_remove_leaf.3.ogg create mode 100644 nether/sounds/nether_teleporter.1.ogg create mode 100644 nether/sounds/nether_teleporter.2.ogg create mode 100644 nether/sounds/nether_teleporter.3.ogg delete mode 100644 nether/textures/nether_apple.png create mode 100644 nether/textures/nether_axe_netherrack.png create mode 100644 nether/textures/nether_axe_netherrack_blue.png create mode 100644 nether/textures/nether_axe_white.png create mode 100644 nether/textures/nether_bark.png create mode 100644 nether/textures/nether_blood_cooked.png create mode 100644 nether/textures/nether_blood_empty.png create mode 100644 nether/textures/nether_blood_extracted.png create mode 100644 nether/textures/nether_blood_extractor.png create mode 100644 nether/textures/nether_blood_side_cooked.png create mode 100644 nether/textures/nether_blood_side_empty.png create mode 100644 nether/textures/nether_blood_stem_cooked.png create mode 100644 nether/textures/nether_blood_stem_empty.png create mode 100644 nether/textures/nether_blood_stem_top_cooked.png create mode 100644 nether/textures/nether_blood_stem_top_empty.png create mode 100644 nether/textures/nether_blood_top_cooked.png create mode 100644 nether/textures/nether_blood_top_empty.png delete mode 100644 nether/textures/nether_brick_shadow.png create mode 100644 nether/textures/nether_dirt.png create mode 100644 nether/textures/nether_dirt_normal.png create mode 100644 nether/textures/nether_dirt_top.png create mode 100644 nether/textures/nether_dirt_top_normal.png create mode 100644 nether/textures/nether_dirt_top_side.png create mode 100644 nether/textures/nether_dirt_top_side_normal.png create mode 100644 nether/textures/nether_dirt_transition.png create mode 100644 nether/textures/nether_dirt_transition_normal.png create mode 100644 nether/textures/nether_fim.png create mode 100644 nether/textures/nether_forest_planks.png create mode 100644 nether/textures/nether_forest_wood.png create mode 100644 nether/textures/nether_forest_wood_normal.png create mode 100644 nether/textures/nether_fruit.png create mode 100644 nether/textures/nether_fruit_bottom.png create mode 100644 nether/textures/nether_fruit_leaf.png create mode 100644 nether/textures/nether_fruit_leaves.png create mode 100644 nether/textures/nether_fruit_no_leaf.png create mode 100644 nether/textures/nether_fruit_top.png create mode 100644 nether/textures/nether_glowflower.png create mode 100644 nether/textures/nether_grass.png create mode 100644 nether/textures/nether_grass_big.png create mode 100644 nether/textures/nether_grass_dried.png create mode 100644 nether/textures/nether_grass_middle.png create mode 100644 nether/textures/nether_grass_small.png create mode 100644 nether/textures/nether_hotbed.png create mode 100644 nether/textures/nether_netherrack_black.png create mode 100644 nether/textures/nether_netherrack_black_normal.png create mode 100644 nether/textures/nether_netherrack_blue.png create mode 100644 nether/textures/nether_netherrack_blue_normal.png create mode 100644 nether/textures/nether_netherrack_brick.png create mode 100644 nether/textures/nether_netherrack_brick_black.png create mode 100644 nether/textures/nether_netherrack_brick_blue.png create mode 100644 nether/textures/nether_netherrack_normal.png create mode 100644 nether/textures/nether_netherrack_soil.png create mode 100644 nether/textures/nether_netherrack_soil_normal.png create mode 100644 nether/textures/nether_netherrack_tiled.png create mode 100644 nether/textures/nether_netherrack_tiled_normal.png create mode 100644 nether/textures/nether_pick_mushroom.png create mode 100644 nether/textures/nether_pick_netherrack.png create mode 100644 nether/textures/nether_pick_netherrack_blue.png create mode 100644 nether/textures/nether_pick_white.png create mode 100644 nether/textures/nether_pick_wood.png create mode 100644 nether/textures/nether_portal_stuff_normal.png create mode 100644 nether/textures/nether_sapling.png create mode 100644 nether/textures/nether_shovel_netherrack.png create mode 100644 nether/textures/nether_shovel_netherrack_blue.png create mode 100644 nether/textures/nether_shovel_white.png create mode 100644 nether/textures/nether_shroom_stem.png create mode 100644 nether/textures/nether_shroom_top.png create mode 100644 nether/textures/nether_stick.png create mode 100644 nether/textures/nether_sword_netherrack.png create mode 100644 nether/textures/nether_sword_netherrack_blue.png create mode 100644 nether/textures/nether_sword_white.png create mode 100644 nether/textures/nether_teleporter.png create mode 100644 nether/textures/nether_transparent.png create mode 100644 nether/textures/nether_tree_corner.png create mode 100644 nether/textures/nether_tree_sapling.png create mode 100644 nether/textures/nether_white.png create mode 100644 nether/textures/nether_wood.png create mode 100644 nether/textures/nether_wood_cooked.png create mode 100644 nether/textures/nether_wood_empty.png create mode 100644 nether/textures/nether_wood_empty_normal.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9c069a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/README.txt b/README.txt index aefc4da..570b021 100644 --- a/README.txt +++ b/README.txt @@ -1,3 +1,10 @@ +This is a modified version of lkjoel's nether mod. +Look here if you want to see the differences: +https://github.com/HybridDog/minetest-nether/compare/lkjoel:master...master + +this happens really selden to me +http://i.imgur.com/pMZYqt9.png + + TODO: -— change the portal -— add a teleportation ball +— finish nether forest diff --git a/nether/crafting.lua b/nether/crafting.lua new file mode 100644 index 0000000..8490551 --- /dev/null +++ b/nether/crafting.lua @@ -0,0 +1,243 @@ +minetest.register_craft({ + output = "nether:fim", + recipe = { + {"nether:shroom_head"}, + {"nether:fruit_no_leaf"}, + {"nether:shroom_head"}, + } +}) + +minetest.register_craft({ + output = "nether:fruit_leaves", + recipe = { + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + {"nether:fruit_leaf", "nether:fruit_leaf", "nether:fruit_leaf"}, + } +}) + +minetest.register_craft({ + output = "nether:pick_mushroom", + recipe = { + {"nether:shroom_head", "nether:shroom_head", "nether:shroom_head"}, + {"", "nether:shroom_stem", ""}, + {"", "nether:shroom_stem", ""}, + } +}) + +minetest.register_craft({ + output = "nether:pick_wood", + recipe = { + {"nether:wood_cooked", "nether:wood_cooked", "nether:wood_cooked"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } +}) + +for _,m in pairs({"netherrack", "netherrack_blue", "white"}) do + local input = "nether:"..m + + minetest.register_craft({ + output = "nether:pick_"..m, + recipe = { + {input, input, input}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, + } + }) + + minetest.register_craft({ + output = "nether:axe_"..m, + recipe = { + {input, input}, + {input, "group:stick"}, + {"", "group:stick"}, + } + }) + + minetest.register_craft({ + output = "nether:sword_"..m, + recipe = { + {input}, + {input}, + {"group:stick"}, + } + }) + + minetest.register_craft({ + output = "nether:shovel_"..m, + recipe = { + {input}, + {"group:stick"}, + {"group:stick"}, + } + }) +end + +minetest.register_craft({ + output = "nether:netherrack_brick 4", + recipe = { + {"nether:netherrack", "nether:netherrack"}, + {"nether:netherrack", "nether:netherrack"}, + } +}) + +minetest.register_craft({ + output = "nether:netherrack_brick_black 4", + recipe = { + {"nether:netherrack_black", "nether:netherrack_black"}, + {"nether:netherrack_black", "nether:netherrack_black"}, + } +}) + +minetest.register_craft({ + output = "nether:netherrack_brick_blue 4", + recipe = { + {"nether:netherrack_blue", "nether:netherrack_blue"}, + {"nether:netherrack_blue", "nether:netherrack_blue"}, + } +}) + +minetest.register_craft({ + output = "default:furnace", + recipe = { + {"nether:netherrack_brick", "nether:netherrack_brick", "nether:netherrack_brick"}, + {"nether:netherrack_brick", "", "nether:netherrack_brick"}, + {"nether:netherrack_brick", "nether:netherrack_brick", "nether:netherrack_brick"}, + } +}) + +minetest.register_craft({ + output = "nether:extractor", + recipe = { + {"nether:netherrack_brick", "nether:blood_top_cooked", "nether:netherrack_brick"}, + {"nether:blood_cooked", "nether:shroom_stem", "nether:blood_cooked"}, + {"nether:netherrack_brick", "nether:blood_stem_cooked", "nether:netherrack_brick"}, + } +}) + +minetest.register_craft({ + output = "nether:wood 4", + recipe = { + {"nether:blood_stem"}, + } +}) + +minetest.register_craft({ + output = "nether:wood_empty 4", + recipe = { + {"nether:blood_stem_empty"}, + } +}) + +minetest.register_craft({ + output = "nether:stick 4", + recipe = { + {"nether:wood_empty"}, + } +}) + +minetest.register_craft({ + output = "nether:forest_wood", + recipe = { + {"nether:forest_planks", "nether:forest_planks", "nether:forest_planks"}, + {"nether:forest_planks", "", "nether:forest_planks"}, + {"nether:forest_planks", "nether:forest_planks", "nether:forest_planks"}, + } +}) + +minetest.register_craft({ + output = "nether:forest_planks 8", + recipe = { + {"nether:forest_wood"}, + } +}) + +minetest.register_craft({ + output = "nether:forest_planks 7", + recipe = { + {"nether:tree"}, + }, +}) + +local sound_allowed = true +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack:get_name() == "nether:forest_planks" + and itemstack:get_count() == 7 then + local tree + for i = 1,9 do + if old_craft_grid[i]:get_name() == "nether:tree" then + tree = i + break + end + end + if not tree then -- do nth if theres no tree + return + end + local rdif = math.random(-1,1) -- add a bit randomness + local barkstack = ItemStack("nether:bark "..4-rdif) + local inv = player:get_inventory() + if not inv:room_for_item("main", barkstack) then -- disallow crafting if there's not enough free space + craft_inv:set_list("craft", old_craft_grid) + itemstack:set_name("") + return + end + itemstack:set_count(7+rdif) + inv:add_item("main", barkstack) + if sound_allowed then + minetest.sound_play("default_wood_footstep", {pos=player:getpos(), gain=0.25}) + sound_allowed = false + minetest.after(0, function() + sound_allowed = true + end) + end + end +end) + +minetest.register_craft({ + output = "default:paper", + recipe = { + {"nether:grass_dried", "nether:grass_dried", "nether:grass_dried"}, + } +}) + + +minetest.register_craft({ + type = "cooking", + output = "default:coal", + recipe = "nether:tree", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:grass_dried", + recipe = "nether:grass", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:pearl", + recipe = "nether:fim", +}) + +minetest.register_craft({ + type = "cooking", + output = "nether:hotbed", + recipe = "nether:blood_extracted", +}) + +for _,i in ipairs({"nether:blood", "nether:blood_top", "nether:blood_stem", "nether:wood"}) do + local cooked = i.."_cooked" + + minetest.register_craft({ + type = "cooking", + output = cooked, + recipe = i, + }) + + minetest.register_craft({ + type = "fuel", + recipe = cooked, + burntime = 30, + }) +end diff --git a/nether/depends.txt b/nether/depends.txt index 55c207a..06355e5 100644 --- a/nether/depends.txt +++ b/nether/depends.txt @@ -1,3 +1,4 @@ default -riesenpilz glow +riesenpilz +stairs diff --git a/nether/furnace.lua b/nether/furnace.lua new file mode 100644 index 0000000..ee293cd --- /dev/null +++ b/nether/furnace.lua @@ -0,0 +1,346 @@ +-- minetest time speed +local time_speed = tonumber(minetest.setting_get("time_speed")) +if not time_speed then + time_speed = 1 +else + time_speed = time_speed/72 +end + +local function get_date() + return os.date("%y %d %H %M %S") +end + +-- returns the time difference in seconds +local function get_timediff(d1, d2) + local d = string.split(d1, " ") + for n,i in pairs(string.split(d2, " ")) do + d[n] = i-d[n] + end + local secs = 0 + local y,d,h,m,s = unpack(d) + if s ~= 0 then + secs = secs+s + end + if m ~= 0 then + secs = secs+m*60 + end + if h ~= 0 then + secs = secs+h*3600 -- 60*60 + end + if d ~= 0 then + secs = secs+d*86400 -- 60*60*24 + end + if y ~= 0 then + secs = secs+y*31557600 -- 60*60*24*365.25 + end + --secs = math.floor(secs+0.5) + if secs < 0 then + minetest.log("action", "play warzone2100?") + end + return secs*time_speed +end + +-- copied from older default furnace code and edited a bit + +function nether.get_furnace_active_formspec(pos, percent) + local formspec = + "size[8,9]".. + "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-percent)..":default_furnace_fire_fg.png]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;1,1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]" + return formspec +end + +nether.furnace_inactive_formspec = + "size[8,9]".. + "image[2,2;1,1;default_furnace_fire_bg.png]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;1,1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]" + +minetest.register_node("nether:furnace", { + description = "Furnace", + tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nether.furnace_inactive_formspec) + meta:set_string("infotext", "Furnace") + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + meta:set_string("last_active", get_date()) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + meta:set_string("last_active", get_date()) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + if to_list == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, +}) + +minetest.register_node("nether:furnace_active", { + description = "Furnace", + tiles = { + "default_furnace_top.png", + "default_furnace_bottom.png", + "default_furnace_side.png", + "default_furnace_side.png", + "default_furnace_side.png", + { + image = "default_furnace_front_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + } + }, + paramtype2 = "facedir", + light_source = 8, + drop = "nether:furnace", + groups = {cracky=2, not_in_creative_inventory=1,hot=1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nether.furnace_inactive_formspec) + meta:set_string("infotext", "Furnace"); + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + meta:set_string("last_active", get_date()) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + meta:set_string("last_active", get_date()) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + if to_list == "fuel" then + if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext","Furnace is empty") + end + return count + else + return 0 + end + elseif to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, +}) + +local function swap_node(pos,name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + node.name = name + minetest.swap_node(pos,node) +end + +minetest.register_abm({ + nodenames = {"nether:furnace","nether:furnace_active"}, + interval = 1.0, + chance = 1, + action = function(pos) + local meta = minetest.get_meta(pos) + if meta:get_string("timedif") == "" then + meta:set_float("timedif", 0.0) + end + + -- lag shouldn't control the furnace speed + local current_time = get_date() + local last_time = meta:get_string("last_active") + if last_time == "" then + meta:set_string("last_active", current_time) + return + end + if last_time == current_time then + return + end + + local timediff = get_timediff(last_time, current_time)+meta:get_string("timedif") + local times = math.floor(timediff) + meta:set_string("last_active", current_time) + meta:set_float("timedif", timediff-times) + + + for i = 1,times do + for _,name in pairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time", + }) do + if meta:get_string(name) == "" then + meta:set_float(name, 0.0) + end + end + local inv = meta:get_inventory() + local srclist = inv:get_list("src") + local cooked = nil + local aftercooked + + if srclist then + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) + meta:set_float("src_time", meta:get_float("src_time") + 1) + if cooked + and cooked.item + and meta:get_float("src_time") >= cooked.time then + -- check if there's room for output in "dst" list + if inv:room_for_item("dst",cooked.item) then + -- Put result in "dst" list + inv:add_item("dst", cooked.item) + -- take stuff from "src" list + inv:set_stack("src", 1, aftercooked.items[1]) + else + --print("Could not insert '"..cooked.item:to_string().."'") + end + meta:set_string("src_time", 0) + end + end + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + local percent = math.floor(meta:get_float("fuel_time") / + meta:get_float("fuel_totaltime") * 100) + meta:set_string("infotext","Furnace active: "..percent.."%") + swap_node(pos,"nether:furnace_active") + meta:set_string("formspec",nether.get_furnace_active_formspec(pos, percent)) + return + end + + local fuel = nil + local afterfuel + local cooked = nil + local fuellist = inv:get_list("fuel") + local srclist = inv:get_list("src") + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + if fuellist then + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if not fuel or fuel.time <= 0 then + meta:set_string("infotext","Furnace out of fuel") + swap_node(pos,"nether:furnace") + meta:set_string("formspec", nether.furnace_inactive_formspec) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext","Furnace is empty") + swap_node(pos,"nether:furnace") + meta:set_string("formspec", nether.furnace_inactive_formspec) + end + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + inv:set_stack("fuel", 1, afterfuel.items[1]) + end + end, +}) diff --git a/nether/guide.lua b/nether/guide.lua new file mode 100644 index 0000000..4bb9322 --- /dev/null +++ b/nether/guide.lua @@ -0,0 +1,383 @@ +local cube = minetest.inventorycube + +-- the content of the guide +local guide_infos = { + { + description = "mushroom", + {"text", "You can find the nether mushroom on the ground of the nether and on netherrack soil, it can be dug by hand."}, + {"y", -0.3}, + {"image", {1, 1, "riesenpilz_nether_shroom_side.png"}}, + {"y", 0.2}, + {"text", "If you drop it without holding aux1 (the fast key), you can split it into its stem and head:"}, + {"image", {1, 1, "nether_shroom_top.png", 1}}, + {"image", {1, 1, "nether_shroom_stem.png"}}, + {"y", 0.2}, + {"text", "You can get more mushrooms by using a netherrack soil:\n".. + "1. search a dark place and, if necessary, place netherrack with air about it\n".. + "2. right click with cooked blood onto the netherrack to make it soiled\n".. + "3. right click onto the netherrack soil with a nether mushroom head to add some spores\n".. + "4. dig the mushroom which grew after some time to make place for another one"}, + {"image", {1, 1, "riesenpilz_nether_shroom_side.png", 6, 0.12}}, + {"y", 1}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 1.8}}, + {"image", {1, 1, "nether_hotbed.png", 1.3, -0.4}}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 3.6}}, + {"image", {1, 1, "nether_shroom_top.png", 3.1, -0.5}}, + {"image", {1, 1, "nether_netherrack.png^nether_netherrack_soil.png", 6}}, + {"image", {1, 1, "nether_netherrack.png"}}, + }, + { + description = "tools", + {"text", "You can craft 5 types of tools in the nether, which (except the mushroom pick) require sticks to be crafted:"}, + {"y", 0.4}, + {"image", {1, 1, "nether_pick_mushroom.png"}}, + {"text", "strength: 1\n".. + "The mushroom pick needs mushroom stems and heads to be crafted."}, + {"y", 0.2}, + {"image", {1, 1, "nether_pick_wood.png"}}, + {"text", "strength: 2\n".. + "The nether wood pick can be crafted with cooked nether blood wood."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_netherrack.png", 1}}, + {"image", {1, 1, "nether_shovel_netherrack.png", 2}}, + {"image", {1, 1, "nether_sword_netherrack.png", 3}}, + {"image", {1, 1, "nether_pick_netherrack.png"}}, + {"text", "strength: 3\n".. + "The red netherrack tools can be crafted with usual netherrack."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_netherrack_blue.png", 1}}, + {"image", {1, 1, "nether_shovel_netherrack_blue.png", 2}}, + {"image", {1, 1, "nether_sword_netherrack_blue.png", 3}}, + {"image", {1, 1, "nether_pick_netherrack_blue.png"}}, + {"text", "strength: 3\n".. + "The blue netherrack tools can be crafted with blue netherrack."}, + {"y", 0.2}, + {"image", {1, 1, "nether_axe_white.png", 1}}, + {"image", {1, 1, "nether_shovel_white.png", 2}}, + {"image", {1, 1, "nether_sword_white.png", 3}}, + {"image", {1, 1, "nether_pick_white.png"}}, + {"text", "strength: 3\n".. + "The siwtonic tools can be crafted with the siwtonic ore."}, + }, + { + description = "blood structures", + {"text", "You can find blood structures on the ground and dig their nodes even with the bare hand."}, + {"y", 0.2}, + {"text", "One contains 4 kinds of blocks:"}, + {"image", {1, 1, cube("nether_blood.png"), 1}}, + {"image", {1, 1, + cube("nether_blood_top.png", "nether_blood.png^nether_blood_side.png", "nether_blood.png^nether_blood_side.png"), + 2}}, + {"image", {1, 1, "nether_fruit.png", 3}}, + {"image", {1, 1, cube("nether_blood_stem_top.png", "nether_blood_stem.png", "nether_blood_stem.png")}}, + {"text", "the blood stem, blood, blood head and nether fruit"}, + {"y", 0.2}, + {"text", "You can craft the stem to 4 blood wood:"}, + {"image", {1, 1, cube("nether_wood.png")}}, + {"y", 0.2}, + {"text", "The 4 blood nodes can be cooked and, except blood wood, their blood can be extracted."}, + }, + { + description = "fruit", + {"text", "You can find the nether fruit at blood structures and dig it even with the bare hand."}, + {"y", 0.05}, + {"image", {1, 1, "nether_fruit.png"}}, + {"text", "You can eat it to get a bit blood because of its acid effect:"}, + {"image", {1, 1, "nether_blood_extracted.png"}}, + {"y", 0.2}, + {"text", "If you eat it at the right place inside a portal, you teleport instead of getting blood."}, + {"y", 0.2}, + {"text", "If you drop it without holding aux1 (the fast key), you can split it into its fruit and leaf:"}, + {"image", {1, 1, "nether_fruit_leaf.png", 1}}, + {"image", {1, 1, "nether_fruit_no_leaf.png"}}, + {"y", 0.2}, + {"text", "9 fruit leaves can be crafted to a fruit leaves block and the fruit without leaf can be used for crafting a nether pearl."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_fruit_leaves.png")}}, + {"text", "fruit leaves block"}, + }, + { + description = "cooking", + {"text", "To get a furnace you need to dig at least 8 netherrack bricks.\n".. + "They can be found at pyramid like constructions and require at least a strength 1 nether pick to be dug.\n".. + "For crafting the furnace, use the netherrack bricks like cobble:"}, + {"y", 0.2}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "To begin cooking stuff, you can use a mushroom or fruit.\n".. + "After that it's recommended to use cooked blood nodes."}, + {"y", 0.2}, + {"text", "Some nether items can be cooked:"}, + {"y", 0.1}, + {"image", {1, 1, cube("nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png", "nether_blood_stem_cooked.png"), 0.35}}, + {"image", {1, 1, cube("nether_blood_cooked.png"), 1.6}}, + {"image", {1, 1, + cube("nether_blood_top_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"), + 2.9}}, + {"image", {1, 1, cube("nether_wood_cooked.png"), 4.3}}, + {"y", 1}, + {"text", "cooked blood stem, cooked blood, cooked blood head, cooked blood wood,"}, + {"y", 0.2}, + {"image", {1, 1, "nether_hotbed.png", 0.3}}, + {"image", {1, 1, "nether_pearl.png", 2}}, + {"y", 1}, + {"text", "cooked extracted blood and nether pearl"}, + }, + { + description = "extractor", + {"text", "Here you can find out information about the nether extractor."}, + {"y", 0.4}, + {"text", "Here you can see its craft recipe:"}, + {"y", 0.2}, + {"image", {0.5, 0.5, cube("nether_blood_top_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"image", {0.5, 0.5, cube("nether_blood_extractor.png"), 2.5}}, + {"image", {0.5, 0.5, "nether_shroom_stem.png", 0.5}}, + {"image", {0.5, 0.5, cube("nether_blood_cooked.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_blood_cooked.png")}}, + {"image", {0.5, 0.5, cube("nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png", "nether_blood_stem_cooked.png"), 0.5}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png"), 1}}, + {"image", {0.5, 0.5, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "You can extract blood from the blood nodes you get from the blood structure.\n".. + "You can also get blood with a nether fruit."}, + {"y", 0.2}, + {"text", "So you can use it:\n".. + "1. place it somewhere\n".. + "2. place blood blocks next to it (4 or less)\n".. + "3. right click with extracted blood onto it to power it\n".. + "4. take the new extracted blood and dig the extracted nodes"}, + {"y", 0.2}, + {"text", "Example (view from the top):"}, + {"y", 0.88}, + {"image", {1, 1, "nether_blood_stem_top.png", 0.82, -0.88}}, + {"image", {1, 1, "nether_blood.png", 1.63}}, + {"image", {1, 1, "nether_blood_extractor.png", 0.82}}, + {"image", {1, 1, "nether_blood_stem_top_empty.png", 3.82, -0.88}}, + {"image", {1, 1, "nether_blood_empty.png", 4.63}}, + {"image", {1, 1, "nether_blood_empty.png", 3.001}}, + {"image", {1, 1, "nether_blood_extractor.png", 3.82}}, + {"image", {1, 1, "nether_blood.png"}}, + {"image", {1, 1, "nether_blood.png", 0.82, -0.12}}, + {"image", {1, 1, "nether_blood_empty.png", 3.82, -0.12}}, + {"y", 1.2}, + {"text", "The empty blood stem can be crafted to empty nether wood, which can be crafted to nether sticks."}, + }, + { + description = "ores", + {"text", "You can find 5 types of ores:"}, + {"y", 0.4}, + {"image", {1, 1, cube("nether_netherrack_black.png"), 4}}, + {"image", {1, 1, cube("nether_netherrack.png")}}, + {"text", "The red netherrack is generated like stone and the black netherrack is generated like gravel.\n".. + "Both require at least a strength 2 nether pick to be dug."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_white.png"), 4}}, + {"image", {1, 1, cube("nether_netherrack_blue.png")}}, + {"text", "The blue netherrack is generated like diamond ore and the siwtonic ore is generated like mese blocks.\n".. + "Both require at least a strength 3 nether pick to be dug."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_netherrack_tiled.png"), 4}}, + {"image", {1, 1, cube("glow_stone.png")}}, + {"text", "The glow stone can be used for lighting and the tiled netherrack is generated like coal ore.\n".. + "Glow stone requires at least a strength 1 pick to be dug.\n".. + "Tiled netherrack requires at least a strength 2 nether pick to be dug."}, + }, + { + description = "vines", + {"text", "The nether vines can be fed with blood.\n".. + "They can be dug by hand and drop nether children."}, + {"image", {1, 1, "nether_vine.png"}}, + {"y", 0.2}, + {"text", "To let a nether child grow to a blood structure, place it at a dark place onto a blood structure head node."}, + {"image", {1, 1, "nether_sapling.png"}}, + {"y", -0.11}, + {"image", {1, 1, "nether_blood.png^nether_blood_side.png"}}, + }, + { + description = "pearl", + {"text", "The nether pearl can be thrown for teleporting.\n".. + "So cou can get one:"}, + {"y", 0.4}, + {"text", "At first you need to craft 2 mushroom heads and 1 nether fruit without leaf together:"}, + {"image", {1, 1, "nether_shroom_top.png"}}, + {"image", {1, 1, "nether_fim.png", 3}}, + {"image", {1, 1, "nether_fruit_no_leaf.png"}}, + {"image", {1, 1, "nether_shroom_top.png"}}, + {"y", 0.2}, + {"text", "Then you need to put the result into the furnance to cook it to a nether pearl:"}, + {"image", {1, 1, "nether_pearl.png"}}, + }, + { + description = "bricks", + {"text", "You can craft bricks of red, black and blue netherrack."}, + {"y", 0.4}, + {"image", {1, 1, cube("nether_netherrack_brick_black.png"), 1}}, + {"image", {1, 1, cube("nether_netherrack_brick_blue.png"), 2}}, + {"image", {1, 1, cube("nether_netherrack_brick.png")}}, + {"y", 0.2}, + {"text", "These bricks require at least a strength 1 nether pick to be dug."}, + {"y", 0.2}, + {"text", "Because the crafing recipe of bricks is well known, it's not shown here."}, + }, + { + description = "portal", + {"text", "Here you can find out how to built the nether portal."}, + {"y", 0.4}, + {"text", "A nether portal requires following nodes:"}, + {"y", 0.05}, + {"text", "21 empty nether wooden planks\n".. + "12 blue netherrack bricks\n".. + "12 black netherrack\n".. + "8 red netherrack\n".. + "8 cooked nether wood\n".. + "4 nether fruits\n".. + "2 siwtonic blocks"}, + {"y", 0.2}, + {"text", "It should look approximately like this one:"}, + {"image", {5.625, 6, "nether_teleporter.png", 0, -1.5}}, + {"y", 5.5}, + {"text", "You can activate it by standing in the middle on a siwtonic block and eating a nether fruit.\n".. + "Don't forget to take enough stuff with you to be able to build a portal back."}, + }, + { + description = "nether forest", + {"text", "The nether forest is generated in caves above the usual nether."}, + {"y", 0.2}, + {"text", "There you can find some plants:"}, + {"y", 0.2}, + {"image", {1, 1, "nether_grass_middle.png", 1}}, + {"image", {1, 1, "nether_grass_big.png", 2}}, + {"image", {1, 1, "nether_grass_small.png"}}, + {"y", 0.2}, + {"text", "The nether forest grass can be used to get paper.\n".. + "Just dig it, put the grass into the furnace and craft paper out of the dried grass.\n".. + "The recipe is similar to the one of crafting paper with papyrus."}, + {"y", 0.2}, + {"image", {1, 1, cube("nether_tree_top.png", "nether_tree.png", "nether_tree.png")}}, + {"text", "Nether trunks can be found at nether trees, you can craft nether wood out of them."}, + {"y", 0.2}, + {"image", {1, 1, "nether_glowflower.png"}}, + {"text", "Currently this flower can be used for lighting and decoration."}, + }, +} + +-- the size of guide pages +local guide_size = {x=15, y=10, cx=0.1, cy=-0.2} + +-- informations about settings and ... +local formspec_offset = {x=0.25, y=0.55} +local font_size +if minetest.is_singleplayer() then + font_size = tonumber(minetest.setting_get("font_size")) or 13 +else + font_size = 13 +end +guide_size.fx = math.floor((guide_size.x-2*(guide_size.cx+formspec_offset.x))*font_size) +guide_size.fy = font_size/65 + +-- the default guide formspecs +local guide_forms = { + contents = "size[3,"..(#guide_infos+1)*0.5 ..";]label["..guide_size.cx+0.8 ..","..guide_size.cy..";Contents:]", +} + +-- change the infos to formspecs +for n,data in ipairs(guide_infos) do + local form = "" + local y = 0 + local x = guide_size.cx + for _,i in ipairs(data) do + local typ, content = unpack(i) + if typ == "y" then + y = y+content + elseif typ == "x" then + x = math.max(x, content) + elseif typ == "text" then + local tab = minetest.splittext(content, guide_size.fx) + local l = guide_size.cx + for _,str in ipairs(tab) do + form = form.."label["..guide_size.cx..","..guide_size.cy+y..";"..str.."]" + y = y+guide_size.fy + l = math.max(l, #str) + end + x = math.max(x, l/font_size) + elseif typ == "image" then + local w, h, texture_name, px, py = unpack(content) + if not px then + form = form.."image["..guide_size.cx..","..guide_size.cy+y+h*0.3 ..";"..w..","..h..";"..texture_name.."]" + y = y+h + else + px = guide_size.cx+px + py = py or 0 + form = form.."image["..px..",".. + guide_size.cy+y+h*0.3+py ..";"..w..","..h..";"..texture_name.."]" + x = math.max(x, px+w) + end + end + end + form = "size["..x..","..y+1 ..";]"..form.."button["..x/2-0.5 ..","..y ..";1,2;quit;back]" + guide_forms[n] = {data.description, form} +end + +local desc_tab = {} +for n,i in ipairs(guide_forms) do + desc_tab[i[1]] = n +end + +-- creates contents formspec +local y = 0 +for y,i in ipairs(guide_forms) do + local desc, form = unpack(i) + local s = #desc*1.3/font_size+0.3 + guide_forms.contents = guide_forms.contents.."button["..guide_size.cx+math.random()..","..guide_size.cy+y/2 ..";"..s..",1;name;"..desc.."]" +end + +-- shows the contents of the formspec +local function show_guide(pname) + minetest.show_formspec(pname, "nether_guide_contents", guide_forms["contents"]) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "nether_guide_contents" then + local fname = fields.name + local pname = player:get_player_name() + if fname + and pname then + minetest.show_formspec(pname, "nether_guide", guide_forms[desc_tab[fname]][2]) + end + elseif formname == "nether_guide" then + local fname = fields.quit + local pname = player:get_player_name() + if fname + and pname then + minetest.show_formspec(pname, "nether_guide_contents", guide_forms["contents"]) + end + end +end) + +minetest.register_chatcommand("nether_help", { + params = "", + description = "Shows a nether guide", + func = function(name) + local player = minetest.get_player_by_name(name) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + if player:getpos().y > nether.start then + minetest.chat_send_player(name, "Usually you don't neet this guide here. You can view it in the nether.") + return false + end + minetest.chat_send_player(name, "Showing guide...") + show_guide(name) + return true + end +}) diff --git a/nether/init.lua b/nether/init.lua index 31f751c..bcc730d 100644 --- a/nether/init.lua +++ b/nether/init.lua @@ -11,95 +11,119 @@ -- godkiller447 (ideas) -- If I didn't list you, please let me know! +if not rawget(_G, "nether") then + nether = {} +end + --== EDITABLE OPTIONS ==-- +--says some information. +nether.info = true + +-- tell everyone about the generation +nether.inform_all = minetest.is_singleplayer() + +--1: 2: 3: +nether.max_spam = 2 + -- Depth of the nether -NETHER_DEPTH = -20000 --- Height of the nether (bottom of the nether is NETHER_DEPTH - NETHER_HEIGHT) -NETHER_HEIGHT = 30 +local nether_middle = -20000 + +-- forest bottom perlin multiplication +local f_bottom_scale = 4 + +-- forest bottom height +local f_h_min = nether_middle+10 + +-- forest top height +local f_h_max = f_h_min+250 + +-- Frequency of trees in the nether forest (higher is less frequent) +local tree_rarity = 200 + +-- Frequency of glowflowers in the nether forest (higher is less frequent) +local glowflower_rarity = 120 + +-- Frequency of nether grass in the nether forest (higher is less frequent) +local grass_rarity = 2 + +-- Frequency of nether mushrooms in the nether forest (higher is less frequent) +local mushroom_rarity = 80 + +-- Frequency of trees in the nether forest (higher is less frequent) +local tree_rarity = 200 + +-- height of the nether generation's end +nether.start = f_h_max+100 + +-- Height of the nether (bottom of the nether is nether_middle - NETHER_HEIGHT) +local NETHER_HEIGHT = 30 + -- Maximum amount of randomness in the map generation NETHER_RANDOM = 2 + -- Frequency of Glowstone on the "roof" of the Nether (higher is less frequent) -GLOWSTONE_FREQ_ROOF = 500 --- Frequency of Glowstone on lava (higher is less frequent) -GLOWSTONE_FREQ_LAVA = 2 +local GLOWSTONE_FREQ_ROOF = 500 + -- Frequency of lava (higher is less frequent) -LAVA_FREQ = 100 +local LAVA_FREQ = 100 + +local nether_structure_freq = 350 +local NETHER_SHROOM_FREQ = 100 + -- Maximum height of lava -LAVA_HEIGHT = 2 -NETHER_TREE_FREQ = 350 -NETHER_SHROOM_FREQ = 100 --- Height of nether trees -NETHER_TREESIZE = 2 --- Frequency of apples in a nether tree (higher is less frequent) -NETHER_APPLE_FREQ = 5 --- Frequency of healing apples in a nether tree (higher is less frequent) -NETHER_HEAL_APPLE_FREQ = 10 +--LAVA_HEIGHT = 2 +-- Frequency of Glowstone on lava (higher is less frequent) +--GLOWSTONE_FREQ_LAVA = 2 +-- Height of nether structures +--NETHER_TREESIZE = 2 +-- Frequency of apples in a nether structure (higher is less frequent) +--NETHER_APPLE_FREQ = 5 +-- Frequency of healing apples in a nether structure (higher is less frequent) +--NETHER_HEAL_APPLE_FREQ = 10 -- Start position for the Throne of Hades (y is relative to the bottom of the nether) -HADES_THRONE_STARTPOS = {x=0, y=1, z=0} +--HADES_THRONE_STARTPOS = {x=0, y=1, z=0} -- Spawn pos for when the nether hasn't been loaded yet (i.e. no portal in the nether) (y is relative to the bottom of the nether) -NETHER_SPAWNPOS = {x=0, y=5, z=0} +--NETHER_SPAWNPOS = {x=0, y=5, z=0} -- Structure of the nether portal (all is relative to the nether portal creator block) -NETHER_PORTAL = { - -- Floor 1 - {pos={x=0,y=0,z=0}, block="default:obsidian"}, - {pos={x=1,y=0,z=0}, block="default:obsidian"}, - {pos={x=2,y=0,z=0}, block="default:obsidian"}, - {pos={x=3,y=0,z=0}, block="default:obsidian"}, - {pos={x=0,y=0,z=1}, block="default:obsidian"}, - {pos={x=1,y=0,z=1}, block="default:obsidian"}, - {pos={x=2,y=0,z=1}, block="default:obsidian"}, - {pos={x=3,y=0,z=1}, block="default:obsidian"}, - {pos={x=0,y=0,z=-1}, block="default:obsidian"}, - {pos={x=1,y=0,z=-1}, block="default:obsidian"}, - {pos={x=2,y=0,z=-1}, block="default:obsidian"}, - {pos={x=3,y=0,z=-1}, block="default:obsidian"}, - -- Floor 2 - {pos={x=0,y=1,z=0}, block="default:obsidian"}, - {pos={x=1,y=1,z=0}, block="nether:portal"}, - {pos={x=2,y=1,z=0}, block="nether:portal"}, - {pos={x=3,y=1,z=0}, block="default:obsidian"}, - {pos={x=0,y=1,z=1}, block="default:obsidian"}, - {pos={x=3,y=1,z=1}, block="default:obsidian"}, - {pos={x=0,y=1,z=-1}, block="default:obsidian"}, - {pos={x=3,y=1,z=-1}, block="default:obsidian"}, - -- Floor 3 - {pos={x=0,y=2,z=0}, block="default:obsidian"}, - {pos={x=1,y=2,z=0}, block="nether:portal"}, - {pos={x=2,y=2,z=0}, block="nether:portal"}, - {pos={x=3,y=2,z=0}, block="default:obsidian"}, - {pos={x=0,y=2,z=1}, block="default:obsidian"}, - {pos={x=3,y=2,z=1}, block="default:obsidian"}, - {pos={x=0,y=2,z=-1}, block="default:obsidian"}, - {pos={x=3,y=2,z=-1}, block="default:obsidian"}, - -- Floor 4 - {pos={x=0,y=3,z=0}, block="default:obsidian"}, - {pos={x=1,y=3,z=0}, block="nether:portal"}, - {pos={x=2,y=3,z=0}, block="nether:portal"}, - {pos={x=3,y=3,z=0}, block="default:obsidian"}, - {pos={x=0,y=3,z=1}, block="default:obsidian"}, - {pos={x=3,y=3,z=1}, block="default:obsidian"}, - {pos={x=0,y=3,z=-1}, block="default:obsidian"}, - {pos={x=3,y=3,z=-1}, block="default:obsidian"}, - -- Floor 5 - {pos={x=0,y=4,z=0}, block="default:obsidian"}, - {pos={x=1,y=4,z=0}, block="default:obsidian"}, - {pos={x=2,y=4,z=0}, block="default:obsidian"}, - {pos={x=3,y=4,z=0}, block="default:obsidian"}, - {pos={x=0,y=4,z=1}, block="default:obsidian"}, - {pos={x=1,y=4,z=1}, block="default:obsidian"}, - {pos={x=2,y=4,z=1}, block="default:obsidian"}, - {pos={x=3,y=4,z=1}, block="default:obsidian"}, - {pos={x=0,y=4,z=-1}, block="default:obsidian"}, - {pos={x=1,y=4,z=-1}, block="default:obsidian"}, - {pos={x=2,y=4,z=-1}, block="default:obsidian"}, - {pos={x=3,y=4,z=-1}, block="default:obsidian"}, -} --== END OF EDITABLE OPTIONS ==-- +if nether.info then + function nether:inform(msg, spam, t) + if spam <= self.max_spam then + local info + if t then + info = string.format("[nether] "..msg.." after ca. %.2fs", os.clock() - t) + else + info = "[nether] "..msg + end + print(info) + if self.inform_all then + minetest.chat_send_all(info) + end + end + end +else + function nether:inform() + end +end + + local path = minetest.get_modpath("nether") dofile(path.."/weird_mapgen_noise.lua") +dofile(path.."/items.lua") +dofile(path.."/furnace.lua") +dofile(path.."/pearl.lua") + +local function table_contains(t, v) + for _,i in pairs(t) do + if i == v then + return true + end + end + return false +end local function dif(z1, z2) if z1 < 0 @@ -121,24 +145,44 @@ local function r_area(manip, width, height, pos) return VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) end -local function set_vm_data(manip, nodes, pos, t1, name) +local function set_vm_data(manip, nodes, pos, t1, name, generated) + manip:set_data(nodes) + manip:write_to_map() + local spam = 2 + if generated then + spam = 3 + end + nether:inform(name.." grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", spam, t1) + if not generated then + local t1 = os.clock() + manip:update_map() + nether:inform("map updated", spam, t1) + end +end + +local function fix_light(minp, maxp) + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(minp, maxp) + area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + nodes = manip:get_data() + manip:set_data(nodes) manip:write_to_map() - print(string.format("[nether] "..name.." grew at ("..pos.x.."|"..pos.y.."|"..pos.z..") after ca. %.2fs", os.clock() - t1)) - local t1 = os.clock() manip:update_map() - print(string.format("[nether] map updated after ca. %.2fs", os.clock() - t1)) end -- Generated variables -NETHER_BOTTOM = (NETHER_DEPTH - NETHER_HEIGHT) -NETHER_ROOF_ABS = (NETHER_DEPTH - NETHER_RANDOM) +local NETHER_BOTTOM = (nether_middle - NETHER_HEIGHT) +nether.buildings = NETHER_BOTTOM+12 +local NETHER_ROOF_ABS = (nether_middle - NETHER_RANDOM) +local f_yscale_top = (f_h_max-f_h_min)/2 +local f_yscale_bottom = f_yscale_top/2 --HADES_THRONE_STARTPOS_ABS = {x=HADES_THRONE_STARTPOS.x, y=(NETHER_BOTTOM + HADES_THRONE_STARTPOS.y), z=HADES_THRONE_STARTPOS.z} -LAVA_Y = (NETHER_BOTTOM + LAVA_HEIGHT) +--LAVA_Y = (NETHER_BOTTOM + LAVA_HEIGHT) --HADES_THRONE_ABS = {} --HADES_THRONE_ENDPOS_ABS = {} --HADES_THRONE_GENERATED = minetest.get_worldpath() .. "/netherhadesthrone.txt" -NETHER_SPAWNPOS_ABS = {x=NETHER_SPAWNPOS.x, y=(NETHER_BOTTOM + NETHER_SPAWNPOS.y), z=NETHER_SPAWNPOS.z} +--NETHER_SPAWNPOS_ABS = {x=NETHER_SPAWNPOS.x, y=(NETHER_BOTTOM + NETHER_SPAWNPOS.y), z=NETHER_SPAWNPOS.z} --[[for i,v in ipairs(HADES_THRONE) do v.pos.x = v.pos.x + HADES_THRONE_STARTPOS_ABS.x v.pos.y = v.pos.y + HADES_THRONE_STARTPOS_ABS.y @@ -160,250 +204,144 @@ for i,v in ipairs(HADES_THRONE_ABS) do end end HADES_THRONE_ENDPOS_ABS = {x=htx, y=hty, z=htz}]] -local nether = {} --- == General Utility Functions == +local c +local function define_contents() + c = { + air = minetest.get_content_id("air"), + lava = minetest.get_content_id("default:lava_source"), + gravel = minetest.get_content_id("default:gravel"), + coal = minetest.get_content_id("default:stone_with_coal"), + diamond = minetest.get_content_id("default:stone_with_diamond"), + mese = minetest.get_content_id("default:mese"), --- Check if file exists -function nether:fileexists(file) - file = io.open(file, "r") - if file ~= nil then - file:close() - return true - else - return false - end + glowstone = minetest.get_content_id("glow:stone"), --https://github.com/Zeg9/minetest-glow + + nether_shroom = minetest.get_content_id("riesenpilz:nether_shroom"), + + netherrack = minetest.get_content_id("nether:netherrack"), + netherrack_tiled = minetest.get_content_id("nether:netherrack_tiled"), + netherrack_black = minetest.get_content_id("nether:netherrack_black"), + netherrack_blue = minetest.get_content_id("nether:netherrack_blue"), + netherrack_brick = minetest.get_content_id("nether:netherrack_brick"), + white = minetest.get_content_id("nether:white"), + + nether_vine = minetest.get_content_id("nether:vine"), + blood = minetest.get_content_id("nether:blood"), + blood_top = minetest.get_content_id("nether:blood_top"), + blood_stem = minetest.get_content_id("nether:blood_stem"), + nether_apple = minetest.get_content_id("nether:apple"), + + nether_tree = minetest.get_content_id("nether:tree"), + nether_tree_corner = minetest.get_content_id("nether:tree_corner"), + nether_leaves = minetest.get_content_id("nether:leaves"), + nether_grass = { + minetest.get_content_id("nether:grass_small"), + minetest.get_content_id("nether:grass_middle"), + minetest.get_content_id("nether:grass_big") + }, + glowflower = minetest.get_content_id("nether:glowflower"), + nether_dirt = minetest.get_content_id("nether:dirt"), + nether_dirt_top = minetest.get_content_id("nether:dirt_top"), + nether_dirt_bottom = minetest.get_content_id("nether:dirt_bottom"), + } end --- Simple "touch" function -function nether:touch(file) - if nether:fileexists(file) ~= true then - file = io.open(file, "w") - if file ~= nil then - file:write("") - file:close() - end - end -end +local pr, contents_defined --- Print a message -function nether:printm(message) - print("[Nether] " .. message) -end - --- Print an error message -function nether:printerror(message) - nether:printm("Error! " .. message) -end - --- == Nether related stuff == - --- Find if a position is inside the Nether -function nether:inside_nether(pos) - if pos.y >= NETHER_BOTTOM and pos.y <= NETHER_DEPTH then - return true - end - return false -end - ---[[ Nether Lava -minetest.register_node("nether:lava_flowing", { - description = "Nether Lava (flowing)", - inventory_image = minetest.inventorycube("default_lava.png"), - drawtype = "flowingliquid", - tiles = {"default_lava.png"}, - paramtype = "light", - light_source = LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - liquidtype = "flowing", - liquid_alternative_flowing = "nether:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = LAVA_VISC, - damage_per_second = 4*2, - post_effect_color = {a=192, r=255, g=64, b=0}, - special_materials = { - {image="default_lava.png", backface_culling=false}, - {image="default_lava.png", backface_culling=true}, - }, - groups = {lava=3, liquid=2, hot=3}, -}) - -minetest.register_node("nether:lava_source", { - description = "Nether Lava", - inventory_image = minetest.inventorycube("default_lava.png"), - drawtype = "liquid", - tiles = {"default_lava.png"}, - paramtype = "light", - light_source = LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - liquidtype = "source", - liquid_alternative_flowing = "nether:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = LAVA_VISC, - damage_per_second = 4*2, - post_effect_color = {a=192, r=255, g=64, b=0}, - special_materials = { - -- New-style lava source material (mostly unused) - {image="default_lava.png", backface_culling=false}, - }, - groups = {lava=3, liquid=2, hot=3}, -})]] - --- Netherrack -minetest.register_node("nether:netherrack", { - description = "Netherrack", - tiles = {"nether_netherrack.png"}, - groups = {cracky=3, oddly_breakable_by_hand=3}, - sounds = default.node_sound_stone_defaults(), -}) - --- Netherbrick -minetest.register_node("nether:netherrack_brick", { - description = "Netherrack Brick", - tiles = {"nether_netherrack.png^nether_brick_shadow.png"}, - groups = {cracky=3, oddly_breakable_by_hand=3}, - sounds = default.node_sound_stone_defaults(), -}) - --- Nether tree -minetest.register_node("nether:blood", { - description = "Nether Blood", - tiles = {"nether_blood.png"}, - groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("nether:blood_top", { - description = "Nether Blood", - tiles = {"nether_blood_top.png", "nether_blood.png", "nether_blood.png^nether_blood_side.png"}, - groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("nether:blood_stem", { - description = "Nether Blood Stem", - tiles = {"nether_blood_stem_top.png", "nether_blood_stem_top.png", "nether_blood_stem.png"}, - groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), -}) - ---[[ Nether leaves -minetest.register_node("nether:leaves", { - description = "Nether Leaves", - drawtype = "allfaces_optional", --- visual_scale = 1.189, --scale^2=sqrt(2) - tiles = {"nether_leaves.png"}, - paramtype = "light", - groups = {snappy=3, leafdecay=2}, - sounds = default.node_sound_leaves_defaults(), -})]] - --- Nether apple -minetest.register_node("nether:apple", { - description = "Nether Apple", - drawtype = "plantlike", - tiles = {"nether_apple.png"}, - inventory_image = "nether_apple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = {fleshy=3, dig_immediate=3}, - on_use = minetest.item_eat(-4), - sounds = default.node_sound_defaults(), -}) - --- Nether vine -minetest.register_node("nether:vine", { - description = "Nether vine", - walkable = false, - drop = '', - sunlight_propagates = true, - paramtype = "light", - tiles = { "nether_vine.png" }, - drawtype = "plantlike", - inventory_image = "nether_vine.png", - groups = { snappy = 3,flammable=2 }, - sounds = default.node_sound_leaves_defaults(), - after_dig_node = function(pos) - local p = {x=pos.x, y=pos.y-1, z=pos.z} - local vine = "nether:vine" - while minetest.get_node(p).name == vine do - minetest.remove_node(p) - p.y = p.y-1 - end - end -}) - --- Nether torch -minetest.register_node("nether:torch", { - description = "Nether Torch", - drawtype = "torchlike", - tiles = {"nether_torch_on_floor.png", "nether_torch_on_ceiling.png", "nether_torch.png"}, - inventory_image = "nether_torch_on_floor.png", - wield_image = "nether_torch_on_floor.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - light_source = LIGHT_MAX - 1, - selection_box = { - type = "wallmounted", - wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, - wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, - wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, - }, - groups = {choppy=2, dig_immediate=3}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), -}) - --- Nether Pearl -minetest.register_craftitem("nether:pearl", { - description = "Nether Pearl", - wield_image = "nether_pearl.png", - inventory_image = "nether_pearl.png", - visual = "sprite", - physical = true, - textures = {"nether_pearl.png"}, -}) - -local c_air = minetest.get_content_id("air") -local c_netherrack = minetest.get_content_id("nether:netherrack") -local c_netherrack_brick = minetest.get_content_id("nether:netherrack_brick") -local c_glowstone = minetest.get_content_id("glow:stone") --https://github.com/Zeg9/minetest-glow -local c_lava = minetest.get_content_id("default:lava_source") -local c_nether_shroom = minetest.get_content_id("riesenpilz:nether_shroom") -local c_nether_vine = minetest.get_content_id("nether:vine") - -local function return_nether_ore(glowstone) +local function return_nether_ore(id, glowstone) if glowstone and pr:next(0,GLOWSTONE_FREQ_ROOF) == 1 then - return c_glowstone + return c.glowstone end - return c_netherrack + if id == c.coal then + return c.netherrack_tiled + end + if id == c.gravel then + return c.netherrack_black + end + if id == c.diamond then + return c.netherrack_blue + end + if id == c.mese then + return c.white + end + return c.netherrack end +local f_perlins = {} + +--local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin +-- local perlin2 = minetest.get_perlin(133,3, 0.5, 10) +-- local perlin3 = minetest.get_perlin(112,3, 0.5, 5) +local tmp = f_yscale_top*4 +local tmp2 = tmp/f_bottom_scale +local perlins = { + { + seed = 13, + octaves = 3, + persist = 0.5, + spread = {x=50, y=50, z=50}, + scale = 1, + offset = 0, + }, + { + seed = 133, + octaves = 3, + persist = 0.5, + spread = {x=10, y=10, z=10}, + scale = 1, + offset = 0, + }, + { + seed = 112, + octaves = 3, + persist = 0.5, + spread = {x=5, y=5, z=5}, + scale = 1, + offset = 0, + }, + --[[forest_bottom = { + seed = 11, + octaves = 3, + persist = 0.8, + spread = {x=tmp2, y=tmp2, z=tmp2}, + scale = 1, + offset = 0, + },]] + forest_top = { + seed = 21, + octaves = 3, + persist = 0.8, + spread = {x=tmp, y=tmp, z=tmp}, + scale = 1, + offset = 0, + }, +} + local info = true -local trees_enabled = true +local structures_enabled = true local vine_maxlength = math.floor(NETHER_HEIGHT/4+0.5) -- Create the Nether minetest.register_on_generated(function(minp, maxp, seed) - if not (maxp.y >= NETHER_BOTTOM-100 and minp.y <= NETHER_DEPTH+100) then --avoid big map generation + if not (maxp.y >= NETHER_BOTTOM-100 and minp.y <= nether.start) then --avoid big map generation return end local addpos = {} - if info then - t1 = os.clock() - local geninfo = "[nether] generates at: x=["..minp.x.."; "..maxp.x.."]; y=["..minp.y.."; "..maxp.y.."]; z=["..minp.z.."; "..maxp.z.."]" - print(geninfo) - minetest.chat_send_all(geninfo) + local t1 = os.clock() + nether:inform("generates at: x=["..minp.x.."; "..maxp.x.."]; y=["..minp.y.."; "..maxp.y.."]; z=["..minp.z.."; "..maxp.z.."]", 2) + + if not contents_defined then + define_contents() + contents_defined = true + end + + local buildings = 0 + if maxp.y <= NETHER_BOTTOM then + buildings = 1 + elseif minp.y <= nether.buildings then + buildings = 2 end local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") @@ -412,24 +350,43 @@ minetest.register_on_generated(function(minp, maxp, seed) pr = PseudoRandom(seed+33) local tab,num = {},1 - local num2 = 1 + local trees,num_trees = {},1 - local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin - local perlin2 = minetest.get_perlin(133,3, 0.5, 10) - local perlin3 = minetest.get_perlin(112,3, 0.5, 5) - local tab2 = nether_weird_noise(minp, pymg, 20, 8) + --local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin + --local perlin2 = minetest.get_perlin(133,3, 0.5, 10) + --local perlin3 = minetest.get_perlin(112,3, 0.5, 5) + local side_length = maxp.x - minp.x - 1 -- maybe mistake here + local map_lengths_xyz = {x=side_length, y=side_length, z=side_length} + + local pmap1 = minetest.get_perlin_map(perlins[1], map_lengths_xyz):get2dMap_flat(minp) + local pmap2 = minetest.get_perlin_map(perlins[2], map_lengths_xyz):get2dMap_flat(minp) + local pmap3 = minetest.get_perlin_map(perlins[3], map_lengths_xyz):get2dMap_flat(minp) + + local forest_possible = maxp.y > f_h_min and minp.y < f_h_max + + --local pmap_f_bottom = minetest.get_perlin_map(perlins.forest_bottom, map_lengths_xyz):get2dMap_flat(minp) + local perlin_f_bottom, pmap_f_top + if forest_possible then + perlin_f_bottom = minetest.get_perlin(11, 3, 0.8, tmp2) + pmap_f_top = minetest.get_perlin_map(perlins.forest_top, map_lengths_xyz):get2dMap_flat(minp) + end + + local num2, tab2 + if buildings >= 1 then + num2 = 1 + tab2 = nether_weird_noise({x=minp.x, y=nether.buildings-79, z=minp.z}, pymg, 200, 8, 10, 79) + end + + local count = 0 for z=minp.z, maxp.z do for x=minp.x, maxp.x do - local r_tree = pr:next(1,NETHER_TREE_FREQ) - local r_shroom = pr:next(1,NETHER_SHROOM_FREQ) - local r_glowstone = pr:next(0,GLOWSTONE_FREQ_ROOF) - local r_vine_length = pr:next(1,vine_maxlength) + count = count+1 - local test = perlin1:get2d({x=x, y=z})+1 - local test2 = perlin2:get2d({x=x, y=z}) - local test3 = math.abs(perlin3:get2d({x=x, y=z})) + local test = pmap1[count]+1 + local test2 = pmap2[count] + local test3 = math.abs(pmap3[count]) local t = math.floor(test*3+0.5) @@ -446,197 +403,206 @@ minetest.register_on_generated(function(minp, maxp, seed) end local bottom = NETHER_BOTTOM+h - local top = NETHER_DEPTH-pr:next(0,NETHER_RANDOM)+t + local top = nether_middle-pr:next(0,NETHER_RANDOM)+t - local py_h = tab2[num2].y - num2 = num2+1 + local py_h = 0 + local difn, noisp, py_h_g + if buildings >= 1 then + py_h = tab2[num2].y + num2 = num2+1 - for y=minp.y, maxp.y, 1 do - local p_addpos = area:index(x, y, z) - --if py_h >= maxp.y-4 then - if y == py_h then - data[p_addpos] = c_netherrack_brick - --[[else - data[p_addpos] = c_air - end]] - elseif data[p_addpos] ~= c_air then - if y <= NETHER_BOTTOM then - if y <= bottom then - data[p_addpos] = return_nether_ore(1) - else - data[p_addpos] = c_lava - end - elseif r_tree == 1 - and y == bottom then - tab[num] = {x=x, y=y-1, z=z} - num = num+1 - elseif y <= bottom then - if pr:next(1,LAVA_FREQ) == 1 then - data[p_addpos] = c_lava - else - data[p_addpos] = return_nether_ore(0) - end - elseif r_shroom == 1 - and r_tree ~= 1 - and y == bottom+1 then - data[p_addpos] = c_nether_shroom - elseif (y == top and r_glowstone == 1) then - data[p_addpos] = c_glowstone - elseif y >= top then - data[p_addpos] = return_nether_ore(1) - elseif y <= top-1 - and generate_vine - and y >= top-r_vine_length then - data[p_addpos] = c_nether_vine - else - data[p_addpos] = c_air + difn = nether.buildings-py_h + if difn == 5 then + noisp = 1 + elseif difn < 5 then + noisp = 2 + end + py_h_g = nether.buildings-7 + end + + if buildings == 1 + and noisp then + if noisp == 1 then + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + data[p_addpos] = c.netherrack_brick + end + else + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + data[p_addpos] = c.lava + end + end + else + + local r_structure = pr:next(1,nether_structure_freq) + local r_shroom = pr:next(1,NETHER_SHROOM_FREQ) + local r_glowstone = pr:next(0,GLOWSTONE_FREQ_ROOF) + local r_vine_length = pr:next(1,vine_maxlength) + + local f_bottom, f_top, is_forest, f_h_dirt + if forest_possible then + local p = {x=math.floor(x/f_bottom_scale), z=math.floor(z/f_bottom_scale)} + local pstr = p.x.." "..p.z + if not f_perlins[pstr] then + f_perlins[pstr] = math.floor(f_h_min+(math.abs(perlin_f_bottom:get2d({x=p.x, y=p.z})+1))*f_yscale_bottom+0.5) + end + f_bottom = f_perlins[pstr]+math.random(0,f_bottom_scale-1) + f_top = math.floor(f_h_max-(pmap_f_top[count]+1)*f_yscale_top+0.5) + is_forest = f_bottom < f_top + f_h_dirt = f_bottom-pr:next(0,1) + end + + for y=minp.y, maxp.y do + local p_addpos = area:index(x, y, z) + local d_p_addp = data[p_addpos] + --if py_h >= maxp.y-4 then + if y <= py_h + and noisp then + if noisp == 1 then + data[p_addpos] = c.netherrack_brick + elseif noisp == 2 then + if y == py_h then + data[p_addpos] = c.netherrack_brick + elseif y == py_h_g + and pr:next(1,3) <= 2 then + data[p_addpos] = c.netherrack + elseif y <= py_h_g then + data[p_addpos] = c.lava + else + data[p_addpos] = c.air + end + end + elseif d_p_addp ~= c.air then + + if is_forest + and y == f_bottom then + data[p_addpos] = c.nether_dirt_top + elseif is_forest + and y < f_bottom + and y >= f_h_dirt then + data[p_addpos] = c.nether_dirt + elseif is_forest + and y == f_h_dirt-1 then + data[p_addpos] = c.nether_dirt_bottom + elseif is_forest + and y == f_h_dirt+1 then + if pr:next(1,tree_rarity) == 1 then + trees[num_trees] = {x=x, y=y, z=z} + num_trees = num_trees+1 + elseif pr:next(1,mushroom_rarity) == 1 then + data[p_addpos] = c.nether_shroom + elseif pr:next(1,glowflower_rarity) == 1 then + data[p_addpos] = c.glowflower + elseif pr:next(1,grass_rarity) == 1 then + data[p_addpos] = c.nether_grass[pr:next(1,3)] + else + data[p_addpos] = c.air + end + elseif is_forest + and y > f_bottom + and y < f_top then + if not table_contains( + {c.nether_tree, c.nether_tree_corner, c.nether_leaves, c.nether_fruit}, + d_p_addp + ) then + data[p_addpos] = c.air + end + + elseif y <= NETHER_BOTTOM then + if y <= bottom then + data[p_addpos] = return_nether_ore(d_p_addp, true) + else + data[p_addpos] = c.lava + end + elseif r_structure == 1 + and y == bottom then + tab[num] = {x=x, y=y-1, z=z} + num = num+1 + elseif y <= bottom then + if pr:next(1,LAVA_FREQ) == 1 then + data[p_addpos] = c.lava + else + data[p_addpos] = return_nether_ore(d_p_addp, false) + end + elseif r_shroom == 1 + and r_structure ~= 1 + and y == bottom+1 then + data[p_addpos] = c.nether_shroom + elseif (y == top and r_glowstone == 1) then + data[p_addpos] = c.glowstone + elseif y >= top then + data[p_addpos] = return_nether_ore(d_p_addp, true) + elseif y <= top-1 + and generate_vine + and y >= top-r_vine_length then + data[p_addpos] = c.nether_vine + else + data[p_addpos] = c.air + end end end --- d_p_addpos = data[p_addpos] end end end vm:set_data(data) -- vm:set_lighting(12) - vm:calc_lighting() - vm:update_liquids() +-- vm:calc_lighting() +-- vm:update_liquids() vm:write_to_map() - if trees_enabled then --Trees: + + nether:inform("nodes set", 2, t1) + + local t2 = os.clock() + + if structures_enabled then --Trees: for _,v in ipairs(tab) do - nether:grow_nethertree(v) + nether.grow_netherstructure(v, true) end end - --[[ We don't want the Throne of Hades to get regenerated (especially since it will screw up portals) - if (minp.x <= HADES_THRONE_STARTPOS_ABS.x) - and (maxp.x >= HADES_THRONE_STARTPOS_ABS.x) - and (minp.y <= HADES_THRONE_STARTPOS_ABS.y) - and (maxp.y >= HADES_THRONE_STARTPOS_ABS.y) - and (minp.z <= HADES_THRONE_STARTPOS_ABS.z) - and (maxp.z >= HADES_THRONE_STARTPOS_ABS.z) - and (nether:fileexists(HADES_THRONE_GENERATED) == false) then - -- Pass 3: Make way for the Throne of Hades! - for x=(HADES_THRONE_STARTPOS_ABS.x - 1), (HADES_THRONE_ENDPOS_ABS.x + 1), 1 do - for z=(HADES_THRONE_STARTPOS_ABS.z - 1), (HADES_THRONE_ENDPOS_ABS.z + 1), 1 do - -- Notice I did not put a -1 for the beginning. This is because we don't want the throne to float - for y=HADES_THRONE_STARTPOS_ABS.y, (HADES_THRONE_ENDPOS_ABS.y + 1), 1 do - addpos = {x=x, y=y, z=z} - minetest.add_node(addpos, {name="air"}) - end - end + + if forest_possible then --Trees: + for _,v in ipairs(trees) do + nether.grow_tree(v, true) end - -- Pass 4: Throne of Hades - for i,v in ipairs(HADES_THRONE_ABS) do - if v.portalblock == true then - NETHER_PORTALS_FROM_NETHER[table.getn(NETHER_PORTALS_FROM_NETHER)+1] = v.pos - nether:save_portal_from_nether(v.pos) - nether:createportal(v.pos) - else - minetest.add_node(v.pos, {name=v.block}) - end - end - nether:touch(HADES_THRONE_GENERATED) - end]] - if info then - local geninfo = string.format("[nether] done after: %.2fs", os.clock() - t1) - print(geninfo) - minetest.chat_send_all(geninfo) end + + nether:inform("trees set", 2, t2) + + t2 = os.clock() + fix_light(minp, maxp) + + nether:inform("map updated", 2, t2) + + nether:inform("done", 1, t1) end) ---[[minetest.register_on_generated(function(minp, maxp, seed) - if minp.y <= 99 then + +function nether.grow_netherstructure(pos, generated) + local t1 = os.clock() + + if not contents_defined then + define_contents() + contents_defined = true + end + + if not pos.x then print(dump(pos)) + nether:inform("Error: "..dump(pos), 1) return end - local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") - local data = vm:get_data() - local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} - local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin - local perlin2 = minetest.get_perlin(133,3, 0.5, 10) - for x=minp.x, maxp.x, 1 do - for z=minp.z, maxp.z, 1 do - local test = perlin1:get2d({x=x, y=z})+1 - local test2 = perlin2:get2d({x=x, y=z}) --- print(test) - if test2 < 0 then - h = 200+math.floor(test2*3+0.5) - else - h = 203+math.floor(test*3+0.5) - end - for y=minp.y, maxp.y, 1 do - p_addpos = area:index(x, y, z) - if y <= h then - data[p_addpos] = c_netherrack - elseif y <= 201 then - data[p_addpos] = c_lava - end - end - end - end - - vm:set_data(data) - --vm:set_lighting({day=0, night=0}) - vm:calc_lighting() - vm:update_liquids() - vm:write_to_map() -end)]] - - --- Return the name of the node below a position -function nether:nodebelow(pos) - return minetest.get_node({x=pos.x, y=(pos.y-1), z=pos.z}).name -end - --- Check if we can add a "sticky" node (i.e. it has to stick to something else, or else it won't be added) --- This is largely based on Gilli's code -function nether:can_add_sticky_node(pos) - local objname - for x = -1, 1 do - for y = -1, 1 do - for z = -1, 1 do - local p = {x=pos.x+x, y=pos.y+y, z=pos.z+z} - local n = minetest.get_node(p) - objname = n.name - if minetest.registered_nodes[objname].walkable == true then - return true - end - end - end - end - return false -end - --- Add a "sticky" node -function nether:add_sticky_node(pos, opts) - if nether:can_add_sticky_node(pos) == true then - minetest.add_node(pos, opts) - return true - else - return false - end -end - - -local nether_c_blood = minetest.get_content_id("nether:blood") -local nether_c_blood_top = minetest.get_content_id("nether:blood_top") -local nether_c_blood_stem = minetest.get_content_id("nether:blood_stem") -local nether_c_apple = minetest.get_content_id("default:apple") -local nether_c_nether_apple = minetest.get_content_id("nether:apple") - -function nether:grow_nethertree(pos) - local t1 = os.clock() local height = 6 local manip = minetest.get_voxel_manip() local area = r_area(manip, 2, height, pos) local nodes = manip:get_data() for i = 0, height-1 do - nodes[area:index(pos.x, pos.y+i, pos.z)] = nether_c_blood_stem + nodes[area:index(pos.x, pos.y+i, pos.z)] = c.blood_stem end for i = -1,1 do for j = -1,1 do - nodes[area:index(pos.x+i, pos.y+height, pos.z+j)] = nether_c_blood_top + nodes[area:index(pos.x+i, pos.y+height, pos.z+j)] = c.blood_top end end @@ -644,11 +610,11 @@ function nether:grow_nethertree(pos) for l = -2+1, 2 do local p1 = {pos.x+2*k, pos.y+height, pos.z-l*k} local p2 = {pos.x+l*k, pos.y+height, pos.z+2*k} - local udat = nether_c_blood_top + local udat = c.blood_top if math.random(2) == 1 then - nodes[area:index(p1[1], p1[2], p1[3])] = nether_c_blood_top - nodes[area:index(p2[1], p2[2], p2[3])] = nether_c_blood_top - udat = nether_c_blood + nodes[area:index(p1[1], p1[2], p1[3])] = c.blood_top + nodes[area:index(p2[1], p2[2], p2[3])] = c.blood_top + udat = c.blood end nodes[area:index(p1[1], p1[2]-1, p1[3])] = udat nodes[area:index(p2[1], p2[2]-1, p2[3])] = udat @@ -659,400 +625,352 @@ function nether:grow_nethertree(pos) {pos.x+l*k, pos.y+height-1, pos.z+k}, }) do if math.random(2) == 1 then - nodes[area:index(p[1], p[2], p[3])] = nether_c_nether_apple - elseif math.random(10) == 1 then - nodes[area:index(p[1], p[2], p[3])] = nether_c_apple + nodes[area:index(p[1], p[2], p[3])] = c.nether_apple + --elseif math.random(10) == 1 then + -- nodes[area:index(p[1], p[2], p[3])] = c.apple end end end end - set_vm_data(manip, nodes, pos, t1, "blood") + set_vm_data(manip, nodes, pos, t1, "blood", generated) end ---[[ Create a nether tree -function nether:grow_nethertree(pos) - --TRUNK - pos.y=pos.y+1 - local trunkpos={x=pos.x, z=pos.z} - for y=pos.y, pos.y+4+math.random(2) do - trunkpos.y=y - minetest.add_node(trunkpos, {name="nether:tree"}) + + +local function update_minmax(min, max, p) + min.x = math.min(min.x, p.x) + max.x = math.max(max.x, p.x) + min.z = math.min(min.z, p.z) + max.z = math.max(max.z, p.z) + return min, max +end + +local fruit_chances = {} +for y = -2,1 do --like a hyperbola + fruit_chances[y] = math.floor(-4/(y-2)+0.5) +end + +local dirs = { + {-1, 0, 12, 19}, + {1, 0, 12, 13}, + {0, 1, 4}, + {0, -1, 4, 10}, +} + +local h_max = 26 +local h_stem_min = 3 +local h_stem_max = 7 +local h_arm_min = 2 +local h_arm_max = 6 +local r_arm_min = 1 +local r_arm_max = 5 +local fruit_rarity = 25 --a bigger number results in less fruits +local leaf_thickness = 3 --a bigger number results in more blank trees + +local h_trunk_max = h_max-h_arm_max + +function nether.grow_tree(pos, generated) + local t1 = os.clock() + + if not contents_defined then + define_contents() + contents_defined = true end - --LEAVES - local leafpos={} - for x=(trunkpos.x-NETHER_TREESIZE), (trunkpos.x+NETHER_TREESIZE), 1 do - for y=(trunkpos.y-NETHER_TREESIZE), (trunkpos.y+NETHER_TREESIZE), 1 do - for z=(trunkpos.z-NETHER_TREESIZE), (trunkpos.z+NETHER_TREESIZE), 1 do - if (x-trunkpos.x)*(x-trunkpos.x) - +(y-trunkpos.y)*(y-trunkpos.y) - +(z-trunkpos.z)*(z-trunkpos.z) - <= NETHER_TREESIZE*NETHER_TREESIZE + NETHER_TREESIZE then - leafpos={x=x, y=y, z=z} - if minetest.get_node(leafpos).name=="air" then - if math.random(NETHER_APPLE_FREQ) == 1 then - if math.random(NETHER_HEAL_APPLE_FREQ) == 1 then - minetest.add_node(leafpos, {name="default:apple"}) - else - minetest.add_node(leafpos, {name="nether:apple"}) + + local min = vector.new(pos) + local max = vector.new(pos) + min.y = min.y-1 + max.y = max.y+h_max + + local trunks = {} + local trunk_corners = {} + local h_stem = math.random(h_stem_min, h_stem_max) + local stems = {{x=pos.x, y=pos.y+h_stem, z=pos.z}} + local fi + while not fi do + for n,p in pairs(stems) do + local used_dirs = {} + for _,dir in pairs(dirs) do + if math.random(1,2) == 1 then + table.insert(used_dirs, dir) + end + end + if not used_dirs[1] then + local dir1 = math.random(4) + local dir2 = math.random(3) + if dir1 <= dir2 then + dir2 = dir2+1 + end + used_dirs[1] = dirs[dir1] + used_dirs[2] = dirs[dir2] + end + for _,dir in pairs(used_dirs) do + local p = vector.new(p) + local r = math.random(r_arm_min, r_arm_max) + for j = 1,r do + local x = p.x+j*dir[1] + local z = p.z+j*dir[2] + trunks[x.." "..p.y.." "..z] = dir[3] + end + r = r+1 + p.x = p.x+r*dir[1] + p.z = p.z+r*dir[2] + trunk_corners[p.x.." "..p.y.." "..p.z] = dir[4] or dir[3] + local h = math.random(h_arm_min, h_arm_max) + for i = 1,h do + trunks[p.x.." "..p.y+i.." "..p.z] = true + end + p.y = p.y+h + table.insert(stems, p) + end + if p.y > pos.y+h_trunk_max then + fi = true + break + end + stems[n] = nil + end + end + local leaves = {} + local fruits = {} + local trunk_ps = {} + local count = 0 + for n,par in pairs(trunks) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + if par ~= true then + p.par = par + end + table.insert(trunk_ps, p) + count = count+1 + if count > leaf_thickness then + count = 0 + for y = -2,2 do + local fruit_chance = fruit_chances[y] + for z = -2,2 do + for x = -2,2 do + local dist = math.sqrt(x*x+y*y+z*z) + if math.floor(dist) ~= 0 + and math.random(1, dist) == 1 then + local pstr = p.x+x.." "..p.y+y.." "..p.z+z + if not trunks[pstr] then + if math.random(1, fruit_rarity) == 1 + and fruit_chance + and math.random(1, fruit_chance) == 1 then + fruits[pstr] = true + else + leaves[pstr] = true + end end - else - minetest.add_node(leafpos, {name="nether:leaves"}) - end - end + end + end end end end end -end]] --- == PORTAL RELATED STUFF == -NETHER_PORTALS_TO_NETHER = {} -NETHER_PORTALS_FROM_NETHER = {} -NETHER_PORTALS_TO_NETHER_FILE = minetest.get_worldpath() .. "/portalstonether.txt" -NETHER_PORTALS_FROM_NETHER_FILE = minetest.get_worldpath() .. "/portalsfromnether.txt" + local leaf_ps = {} + for n,_ in pairs(leaves) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + table.insert(leaf_ps, p) + min, max = update_minmax(min, max, p) + end --- Count the number of times a position appears in a table -function table_count(tt, item) - local count - count = 0 - for ii,xx in pairs(tt) do - if (item.x == xx.x) and (item.y == xx.y) and (item.z == xx.z) then - count = count + 1 + for n,_ in pairs(trunks) do + local p = {} + p.x, _, p.z = unpack(string.split(n, " ")) + min, max = update_minmax(min, max, p) + end + + for i = -1,h_stem+1 do + table.insert(trunk_ps, {x=pos.x, y=pos.y+i, z=pos.z, par=0}) + end + + local trunk_corner_ps = {} + for n,par in pairs(trunk_corners) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + p.par = par + table.insert(trunk_corner_ps, p) + end + + local fruit_ps = {} + for n,_ in pairs(fruits) do + local p = {} + p.x, p.y, p.z = unpack(string.split(n, " ")) + table.insert(fruit_ps, p) + end + + local manip = minetest.get_voxel_manip() + local emerged_pos1, emerged_pos2 = manip:read_from_map(min, max) + local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2}) + local nodes = manip:get_data() + local param2s = manip:get_param2_data() + + for _,p in pairs(leaf_ps) do + p = area:indexp(p) + if nodes[p] == c.air then + nodes[p] = c.nether_leaves + param2s[p] = math.random(0,44) end end - return count + + for _,p in pairs(fruit_ps) do + p = area:indexp(p) + if nodes[p] == c.air then + nodes[p] = c.nether_apple + --param2s[p] = math.random(0,44) + end + end + + for _,p in pairs(trunk_ps) do + local par = p.par + p = area:indexp(p) + if par then + param2s[p] = par + end + nodes[p] = c.nether_tree + end + + for _,p in pairs(trunk_corner_ps) do + local par = p.par + p = area:indexp(p) + nodes[p] = c.nether_tree_corner + param2s[p] = par + end + + --calculating took ca. 0.07 - 0.18 [s] + manip:set_data(nodes) + manip:set_param2_data(param2s) + manip:write_to_map() + local spam = 2 + if generated then + spam = 3 + end + nether:inform("a nether tree grew at ("..pos.x.."|"..pos.y.."|"..pos.z..")", spam, t1) + if not generated then + local t1 = os.clock() + manip:update_map() + nether:inform("map updated", spam, t1) + end end --- Remove duplicate positions from table -function table_unique(tt) - local newtable - newtable = {} - for ii,xx in ipairs(tt) do - if(table_count(newtable, xx) == 0) then - newtable[#newtable+1] = xx - end - end - return newtable -end - --- Copied from neko259 with a few minor edits from lkjoel -function split(pString, pPattern) - local Table = {} - local fpat = "(.-)" .. pPattern - local last_end = 1 - local s, e, cap = pString:find(fpat, 1) - while s do - if s ~= 1 or cap ~= "" then - table.insert(Table,cap) - end - last_end = e+1 - s, e, cap = pString:find(fpat, last_end) - end - if last_end <= #pString then - cap = pString:sub(last_end) - table.insert(Table, cap) - end - return Table -end - --- Save a portal to nether -function nether:save_portal_to_nether(pos) - local file = io.open(NETHER_PORTALS_TO_NETHER_FILE, "a") - if file ~= nil then - file:write("x" .. pos.x .. "\ny" .. pos.y .. "\nz" .. pos.z .. "\np", "\n") - file:close() - else - nether:printerror("Cannot write portal to file!") - end -end - --- Save all nether portals -function nether:save_portals_to_nether() - local array2 = NETHER_PORTALS_TO_NETHER - NETHER_PORTALS_TO_NETHER = table_unique(array2) - file = io.open(NETHER_PORTALS_TO_NETHER_FILE, "w") - if file ~= nil then - file:write("") - file:close() - for i,v in ipairs(NETHER_PORTALS_TO_NETHER) do - nether:save_portal_to_nether(v) - end - else - nether:printerror("Cannot create portal file!") - end -end - --- Save a portal from nether -function nether:save_portal_from_nether(pos) - local file = io.open(NETHER_PORTALS_FROM_NETHER_FILE, "a") - if file ~= nil then - file:write("x" .. pos.x .. "\ny" .. pos.y .. "\nz" .. pos.z .. "\np", "\n") - file:close() - else - nether:printerror("Cannot write portal to file!") - end -end - --- Save all portals from nether -function nether:save_portals_from_nether() - local array2 = NETHER_PORTALS_FROM_NETHER - NETHER_PORTALS_FROM_NETHER = table_unique(array2) - file = io.open(NETHER_PORTALS_FROM_NETHER_FILE, "w") - if file ~= nil then - file:write("") - file:close() - for i,v in ipairs(NETHER_PORTALS_FROM_NETHER) do - nether:save_portal_from_nether(v) - end - else - nether:printerror("Cannot create portal file!") - end -end - --- Read portals to nether -function nether:read_portals_to_nether() - local array = {} - local array2 = {} - local file = io.open(NETHER_PORTALS_TO_NETHER_FILE, "r") - if file ~= nil then - for line in io.lines(NETHER_PORTALS_TO_NETHER_FILE) do - if not (line == "" or line == nil) then - if line:sub(1, 1) == "p" then - array2[table.getn(array2)+1] = array - elseif line:sub(1, 1) == "x" then - array.x = tonumber(split(line, "x")[1]) - elseif line:sub(1, 1) == "y" then - array.y = tonumber(split(line, "y")[1]) - elseif line:sub(1, 1) == "z" then - array.z = tonumber(split(line, "z")[1]) - end - end - end - else - file = io.open(NETHER_PORTALS_TO_NETHER_FILE, "w") - if file ~= nil then - file:write("") - file:close() - else - nether:printerror("Cannot create portal file!") - end - end - NETHER_PORTALS_TO_NETHER = table_unique(array2) -end - --- Read portals from nether -function nether:read_portals_from_nether() - local array = {} - local array2 = {} - local file = io.open(NETHER_PORTALS_FROM_NETHER_FILE, "r") - if file ~= nil then - for line in io.lines(NETHER_PORTALS_FROM_NETHER_FILE) do - if not (line == "" or line == nil) then - if line:sub(1, 1) == "p" then - array2[table.getn(array2)+1] = array - elseif line:sub(1, 1) == "x" then - array.x = tonumber(split(line, "x")[1]) - elseif line:sub(1, 1) == "y" then - array.y = tonumber(split(line, "y")[1]) - elseif line:sub(1, 1) == "z" then - array.z = tonumber(split(line, "z")[1]) - end - end - end - else - file = io.open(NETHER_PORTALS_FROM_NETHER_FILE, "w") - if file ~= nil then - file:write("") - file:close() - else - nether:printerror("Cannot create portal file!") - end - end - NETHER_PORTALS_FROM_NETHER = table_unique(array2) -end - -nether:read_portals_to_nether() -nether:read_portals_from_nether() - --- Teleport the player -function nether:teleport_player(from_nether, player) - local randomportal = 1 - local coin = math.floor(math.random(0, 1)) - if coin == 0 then - coin = -1 - else - coin = 1 - end - local coin2 = math.floor(math.random(1, 2)) - local num = 1 - local forgetit = false - if from_nether == true then - num = table.getn(NETHER_PORTALS_TO_NETHER) - if num == 1 then - randomportal = 1 - elseif num < 1 then - forgetit = true - teleportpos = NETHER_SPAWNPOS_ABS - else - randomportal = math.floor(math.random(1, num)) - end - if forgetit == false then - portalpos = NETHER_PORTALS_TO_NETHER[randomportal] - end - else - num = table.getn(NETHER_PORTALS_FROM_NETHER) - if num == 1 then - randomportal = 1 - elseif num < 1 then - forgetit = true - teleportpos = NETHER_SPAWNPOS_ABS - else - randomportal = math.floor(math.random(1, num)) - end - if forgetit == false then - portalpos = NETHER_PORTALS_FROM_NETHER[randomportal] - end - end - if forgetit == false then - teleportpos = {x=portalpos.x + coin2, y=portalpos.y + 1, z=portalpos.z + coin} - end - player:setpos(teleportpos) -end - --- Creates a portal -function nether:createportal(pos) - local currx - local curry - local currz - local currpos = {} - for i,v in ipairs(NETHER_PORTAL) do - currx = v.pos.x + pos.x - curry = v.pos.y + pos.y - currz = v.pos.z + pos.z - currpos = {x=currx, y=curry, z=currz} - minetest.add_node(currpos, {name=v.block}) - end -end - --- Portal Creator -minetest.register_node("nether:portal_creator", { - tiles = {"nether_portal_creator.png"}, - description = "Nether Portal Creator", -}) - -minetest.register_on_placenode(function(pos, node) - if node.name == "nether:portal_creator" then - if nether:inside_nether(pos) then - NETHER_PORTALS_FROM_NETHER[table.getn(NETHER_PORTALS_FROM_NETHER)+1] = pos - nether:save_portal_from_nether(pos) - else - NETHER_PORTALS_TO_NETHER[table.getn(NETHER_PORTALS_TO_NETHER)+1] = pos - nether:save_portal_to_nether(pos) - end - nether:createportal(pos) - end - nodeupdate(pos) -end) +--abms minetest.register_abm({ - nodenames = "nether:portal_creator", - interval = 1, - chance = 1, + nodenames = {"nether:sapling"}, + neighbors = {"nether:blood_top"}, + interval = 20, + chance = 8, action = function(pos) - nether:createportal(pos) + local under = {x=pos.x, y=pos.y-1, z=pos.z} + if minetest.get_node_light(pos) < 4 + and minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" + and minetest.get_node(under).name == "nether:blood_top" then + nether.grow_netherstructure(under) + end end }) --- Portal Stuff -minetest.register_node("nether:portal", { - description = "Nether Portal", - drawtype = "glasslike", - tiles = {"nether_portal_stuff.png"}, - inventory_image = "nether_portal_stuff.png", - wield_image = "nether_portal_stuff.png", - light_source = LIGHT_MAX - 2, - paramtype = "light", - sunlight_propagates = true, - use_texture_alpha = true, - walkable = false, - digable = false, - pointable = false, - legacy_wallmounted = false, --- buildable_to = true, - drop = "", - groups = {not_in_creative_inventory=1}, - post_effect_color = {a=200, r=50, g=0, b=60}, - metadata_name = "generic" +minetest.register_abm({ + nodenames = {"nether:tree_sapling"}, + neighbors = {"group:nether_dirt"}, + interval = 864, + chance = 100, + action = function(pos) + if minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}).name == "air" + and minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + local udata = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name] + if udata + and udata.groups + and udata.groups.nether_dirt then + nether.grow_tree(pos) + end + end + end }) minetest.register_abm({ - nodenames = {"nether:portal"}, - interval = 1, - chance = 1, + nodenames = {"nether:netherrack_soil"}, + neighbors = {"air"}, + interval = 20, + chance = 20, action = function(pos, node) - minetest.add_particlespawner( - 32, --amount - 4, --time - {x=pos.x-0.47, y=pos.y-0.5, z=pos.z-1}, --minpos - {x=pos.x+0.47, y=pos.y+0.34, z=pos.z+1}, --maxpos - {x=0, y=1, z=0}, --minvel - {x=0, y=2, z=0}, --maxvel - {x=-0.5,y=-3,z=-0.3}, --minacc - {x=0.5,y=-0.4,z=0.3}, --maxacc - 1, --minexptime - 2, --maxexptime - 0.4, --minsize - 3, --maxsize - true, --collisiondetection - "nether_portal_particle.png" --texture - ) - local objs = minetest.get_objects_inside_radius(pos, 1) - if objs[1] ~= nil then - local nodemeta = minetest.get_meta(pos) - for _,obj in pairs(objs) do - local objpos = obj:getpos() - local objmeta = minetest.get_meta(objpos) - local objplayername = obj:get_player_name() - if objpos.y > pos.y-1 - and objpos.y < pos.y - and objplayername ~= nil - and objplayername ~= "" then - local innether = nether:inside_nether(obj:getpos()) - local objstring1 = objmeta:get_string("teleportingfromnether") - if innether - and ( - objstring1 == "" - or objstring1 == nil - ) then - objmeta:set_string("teleportingfromnether", "true") - objmeta:set_string("teleportingtonether", "") - nether:teleport_player(innether, obj) - return - end - local objstring2 = objmeta:get_string("teleportingtonether") - if not innether - and ( - objstring2 == "" - or objstring2 == nil - ) then - objmeta:set_string("teleportingtonether", "true") - objmeta:set_string("teleportingfromnether", "") - nether:teleport_player(innether, obj) - end - end - end + local par2 = node.param2 + if par2 == 0 then + return end - end, + pos.y = pos.y+1 + if (minetest.get_node_light(pos) or 16) > 7 then --mushrooms grow at dark places + return + end + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name="riesenpilz:nether_shroom"}) + pos.y = pos.y-1 + minetest.set_node(pos, {name="nether:netherrack_soil", param2=par2-1}) + end + end }) --- CRAFTING DEFINITIONS -minetest.register_craft({ - output = "nether:portal_creator", - recipe = { - {"default:obsidian", "default:obsidian", "default:obsidian"}, - {"default:obsidian", "nether:pearl", "default:obsidian"}, - {"default:obsidian", "default:obsidian", "default:obsidian"}, - } +local function grass_allowed(pos) + local nd = minetest.get_node(pos).name + if nd == "air" then + return true + end + if nd == "ignore" then + return 0 + end + local data = minetest.registered_nodes[nd] + local drawtype = data.drawtype + if drawtype + and drawtype ~= "normal" + and drawtype ~= "liquid" + and drawtype ~= "flowingliquid" then + return true + end + local light = data.light_source + if light + and light > 0 then + return true + end + return false +end + +minetest.register_abm({ + nodenames = {"nether:dirt"}, + interval = 20, + chance = 9, + action = function(pos) + local allowed = grass_allowed({x=pos.x, y=pos.y+1, z=pos.z}) + if allowed == 0 then + return + end + if allowed then + minetest.set_node(pos, {name="nether:dirt_top"}) + end + end }) -print("Nether mod loaded!") +minetest.register_abm({ + nodenames = {"nether:dirt_top"}, + interval = 30, + chance = 9, + action = function(pos) + local allowed = grass_allowed({x=pos.x, y=pos.y+1, z=pos.z}) + if allowed == 0 then + return + end + if not allowed then + minetest.set_node(pos, {name="nether:dirt"}) + end + end +}) + + +minetest.register_privilege("nether", "Allows sending players to nether and extracting them") + +dofile(path.."/crafting.lua") +dofile(path.."/portal.lua") +dofile(path.."/guide.lua") + +nether:inform("loaded!", 1) diff --git a/nether/items.lua b/nether/items.lua new file mode 100644 index 0000000..427d1f1 --- /dev/null +++ b/nether/items.lua @@ -0,0 +1,990 @@ +local nether_sound = default.node_sound_stone_defaults({ + dig = {name="nether_dig", gain=0.7}, + dug = {name="nether_dug", gain=1}, + footstep = {name="nether_footstep", gain=0.4} +}) + +local function add_stair_and_slab(name) + local nd = "nether:"..name + if not string.find(name, "nether") then + name = "nether_"..name + end + local data = minetest.registered_nodes[nd] + stairs.register_stair_and_slab(name, nd, + data.groups, + data.tiles, + data.description.." Stair", + data.description.." Slab", + data.sounds + ) +end + +local function digging_allowed(player, v) + if not player then + return false + end + local tool = minetest.registered_tools[player:get_wielded_item():get_name()] + if not tool then + return false + end + local capabilities = tool.tool_capabilities + if not capabilities then + return false + end + local groups = capabilities.groupcaps + if not groups then + return false + end + local nether = groups.nether + if not nether then + return false + end + if nether.times[v] then + return true + end + return false +end + +-- Netherrack +minetest.register_node("nether:netherrack", { + description = "Netherrack", + tiles = {"nether_netherrack.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack") + +minetest.register_node("nether:netherrack_tiled", { + description = "Tiled Netherrack", + tiles = {"nether_netherrack_tiled.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack_tiled") + +minetest.register_node("nether:netherrack_soil", { + description = "Dirty Netherrack", + tiles = {"nether_netherrack.png^nether_netherrack_soil.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) + +minetest.register_node("nether:netherrack_black", { + description = "Black Netherrack", + tiles = {"nether_netherrack_black.png"}, + groups = {nether=2}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) +add_stair_and_slab("netherrack_black") + +minetest.register_node("nether:netherrack_blue", { + description = "Blue Netherrack", + tiles = {"nether_netherrack_blue.png"}, + groups = {nether=1}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 1) + end, +}) +add_stair_and_slab("netherrack_blue") + +-- Netherbrick +minetest.register_node("nether:netherrack_brick", { + description = "Netherrack Brick", + tiles = {"nether_netherrack_brick.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick") + +minetest.register_node("nether:netherrack_brick_blue", { + description = "Blue Netherrack Brick", + tiles = {"nether_netherrack_brick_blue.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick_blue") + +minetest.register_node("nether:netherrack_brick_black", { + description = "Black Netherrack Brick", + tiles = {"nether_netherrack_brick_black.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("netherrack_brick_black") + +minetest.register_node("nether:white", { + description = "Siwtonic block", + tiles = {"nether_white.png"}, + groups = {nether=1}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 1) + end, +}) +add_stair_and_slab("white") + + +-- Nether blood +minetest.register_node("nether:sapling", { + description = "Nether Blood Child", + drawtype = "plantlike", + tiles = {"nether_sapling.png"}, + inventory_image = "nether_sapling.png", + wield_image = "nether_sapling.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy=2, oddly_breakable_by_hand=2, attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:blood", { + description = "Nether Blood", + tiles = {"nether_blood.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood") + +minetest.register_node("nether:blood_cooked", { + description = "Cooked Nether Blood", + tiles = {"nether_blood_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 10, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_cooked") + +minetest.register_node("nether:blood_empty", { + description = "Nether Blood Extracted", + tiles = {"nether_blood_empty.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_empty") + + +minetest.register_node("nether:blood_top", { + description = "Nether Blood Head", + tiles = {"nether_blood_top.png", "nether_blood.png", "nether_blood.png^nether_blood_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_top") + +minetest.register_node("nether:blood_top_cooked", { + description = "Cooked Nether Blood Head", + tiles = {"nether_blood_top_cooked.png", "nether_blood_cooked.png", "nether_blood_cooked.png^nether_blood_side_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 10, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_top_cooked") + +minetest.register_node("nether:blood_top_empty", { + description = "Nether Blood Head Extracted", + tiles = {"nether_blood_top_empty.png", "nether_blood_empty.png", "nether_blood_empty.png^nether_blood_side_empty.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_top_empty") + + +minetest.register_node("nether:blood_stem", { + description = "Nether Blood Stem", + tiles = {"nether_blood_stem_top.png", "nether_blood_stem_top.png", "nether_blood_stem.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_stem") + +minetest.register_node("nether:blood_stem_cooked", { + description = "Cooked Nether Blood Stem", + tiles = {"nether_blood_stem_top_cooked.png", "nether_blood_stem_top_cooked.png", "nether_blood_stem_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 30, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("blood_stem_cooked") + +minetest.register_node("nether:blood_stem_empty", { + description = "Nether Blood Stem Extracted", + tiles = {"nether_blood_stem_top_empty.png", "nether_blood_stem_top_empty.png", "nether_blood_stem_empty.png"}, + groups = {tree=1, choppy=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("blood_stem_empty") + + +minetest.register_node("nether:wood", { + description = "Nether Blood Wood", + tiles = {"nether_wood.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("wood") + +minetest.register_node("nether:wood_cooked", { + description = "Cooked Nether Blood Wood", + tiles = {"nether_wood_cooked.png"}, + groups = {nether=3}, + sounds = nether_sound, + furnace_burntime = 8, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) +add_stair_and_slab("wood_cooked") + +minetest.register_node("nether:wood_empty", { + description = "Nether Wood", + tiles = {"nether_wood_empty.png"}, + groups = {choppy=2, oddly_breakable_by_hand=2, wood=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("wood_empty") + +minetest.register_node("nether:extractor", { + description = "Nether Blood Extractor", + tiles = {"nether_blood_extractor.png"}, + groups = {nether=3}, + sounds = nether_sound, + can_dig = function(_, player) + return digging_allowed(player, 3) + end, +}) + +-- Nether fruit +minetest.register_node("nether:fruit_leaves", { + description = "Nether Fruit Leaves", + tiles = {"nether_fruit_leaves.png"}, + groups = {fleshy=3, dig_immediate=2}, + sounds = default.node_sound_defaults(), + furnace_burntime = 18, +}) +add_stair_and_slab("fruit_leaves") + +local function room_for_items(inv) + local free_slots = 0 + for _,i in ipairs(inv:get_list("main")) do + if i:get_count() == 0 then + free_slots = free_slots+1 + end + end + if free_slots < 2 then + return false + end + return true +end + +local drop_mushroom = minetest.registered_nodes["riesenpilz:nether_shroom"].on_drop +minetest.override_item("riesenpilz:nether_shroom", { + on_drop = function(itemstack, dropper, pos) + if dropper:get_player_control().aux1 then + return drop_mushroom(itemstack, dropper, pos) + end + local inv = dropper:get_inventory() + if not inv then + return + end + if not room_for_items(inv) then + return + end + minetest.sound_play("nether_remove_leaf", {pos = pos, gain = 0.25}) + itemstack:take_item() + inv:add_item("main", "nether:shroom_head") + inv:add_item("main", "nether:shroom_stem") + return itemstack + end, +}) + +minetest.register_node("nether:apple", { + description = "Nether Fruit", + drawtype = "nodebox", + tiles = {"nether_fruit_top.png", "nether_fruit_bottom.png", "nether_fruit.png", "nether_fruit.png^[transformFX", "nether_fruit.png^[transformFX", "nether_fruit.png"}, + node_box = { + type = "fixed", + fixed = { + {-1/6, -1/4, -1/6, 1/6, -1/6, 1/6}, + + {-1/6, -1/6, -1/4, 1/6, 1/6, 1/4}, + {-1/4, -1/6, -1/6, 1/4, 1/6, 1/6}, + + {-1/4, 1/6, -1/12, 1/4, 1/4, 1/12}, + {-1/12, 1/6, -1/4, 1/12, 1/4, 1/4}, + + {-1/6, 1/6, -1/6, 1/6, 1/3, 1/6}, + + {-1/12, 1/3, -1/12, 0, 5/12, 0}, + + {-1/12, 5/12, -1/6, 0, 0.5, 1/12}, + {-1/6, 5/12, -1/12, 1/12, 0.5, 0}, + } + }, + paramtype = "light", + groups = {fleshy=3, dig_immediate=3}, + on_use = function(itemstack, user) + local inv = user:get_inventory() + if not inv then + return + end + itemstack:take_item() + if nether_port(user, vector.round(user:getpos())) then + return itemstack + end + local amount = math.random(4, 6) + inv:add_item("main", {name="nether:blood_extracted", count=math.floor(amount/3)}) + user:set_hp(user:get_hp()-amount) + return itemstack + end, + sounds = default.node_sound_defaults(), + furnace_burntime = 6, +}) + +local drop_fruit = minetest.registered_nodes["nether:apple"].on_drop +minetest.override_item("nether:apple", { + on_drop = function(itemstack, dropper, pos) + if dropper:get_player_control().aux1 then + return drop_fruit(itemstack, dropper, pos) + end + local inv = dropper:get_inventory() + if not inv then + return + end + if not room_for_items(inv) then + return + end + minetest.sound_play("nether_remove_leaf", {pos = pos, gain = 0.25}) + itemstack:take_item() + inv:add_item("main", "nether:fruit_leaf") + inv:add_item("main", "nether:fruit_no_leaf") + return itemstack + end, +}) + +-- Nether vine +minetest.register_node("nether:vine", { + description = "Nether vine", + walkable = false, + drop = "nether:sapling", + sunlight_propagates = true, + paramtype = "light", + tiles = { "nether_vine.png" }, + drawtype = "plantlike", + inventory_image = "nether_vine.png", + groups = { snappy = 3,flammable=2 }, + sounds = default.node_sound_leaves_defaults(), + after_dig_node = function(pos, _, _, digger) + if digger then + local p = {x=pos.x, y=pos.y-1, z=pos.z} + local nn = minetest.get_node(p) + if nn.name == "nether:vine" then + minetest.node_dig(p, nn, digger) + end + end + end +}) + + +-- forest stuff + +for n,i in pairs({"small", "middle", "big"}) do + minetest.register_node("nether:grass_"..i, { + description = "Nether Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"nether_grass_"..i..".png"}, + inventory_image = "nether_grass_"..i..".png", + wield_image = "nether_grass_"..i..".png", + paramtype = "light", + walkable = false, + buildable_to = true, + drop = "nether:grass "..n, + groups = {snappy=3,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + }) +end + +minetest.register_node("nether:glowflower", { + description = "Glowing Flower", + drawtype = "plantlike", + tiles = {"nether_glowflower.png"}, + inventory_image = "nether_glowflower.png", + wield_image = "nether_glowflower.png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + light_source = 10, + groups = {snappy=3,flammable=2,flower=1,flora=1,attached_node=1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }, + }, +}) + +minetest.register_node("nether:tree_sapling", { + description = "Nether Tree Sapling", + drawtype = "plantlike", + tiles = {"nether_tree_sapling.png"}, + inventory_image = "nether_tree_sapling.png", + wield_image = "nether_tree_sapling.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy=2, oddly_breakable_by_hand=2, attached_node=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:tree", { + description = "Nether Trunk", + tiles = {"nether_tree_top.png", "nether_tree_top.png", "nether_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("nether:tree_corner", { + description = "Nether Trunk Corner", + tiles = {"nether_tree.png^[transformR180", "nether_tree_top.png", "nether_tree_corner.png^[transformFY", + "nether_tree_corner.png^[transformR180", "nether_tree.png", "nether_tree_top.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,not_in_creative_inventory=1}, + drop = "nether:tree", + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node +}) + +minetest.register_node("nether:forest_wood", { + description = "Nether Wood Block", + tiles = {"nether_forest_wood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) +add_stair_and_slab("forest_wood") + +minetest.register_node("nether:leaves", { + description = "Nether Leaves", + drawtype = "plantlike", + waving = 1, + visual_scale = math.sqrt(math.sqrt(2)), + tiles = {"nether_leaves.png"}, + inventory_image = "nether_leaves.png", + wield_image = "nether_leaves.png", + paramtype = "light", + is_ground_content = false, + groups = {snappy=3, leafdecay=3, leaves=1}, + drop = { + max_items = 1, + items = { + { + items = {"nether:tree_sapling"}, + rarity = 30, + }, + { + items = {"nether:leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("nether:dirt", { + description = "Nether Dirt", + tiles = {"nether_dirt.png"}, + groups = {crumbly=3,soil=1,nether_dirt=1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("nether:dirt_top", { + description = "Nether Dirt Top", + tiles = {"nether_dirt_top.png", "nether_dirt.png", "nether_dirt.png^nether_dirt_top_side.png"}, + groups = {crumbly=3,soil=1,nether_dirt=1}, + drop = "nether:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.25}, + }), +}) + +minetest.register_node("nether:dirt_bottom", { + description = "Netherrack Dirt Transition", + tiles = {"nether_dirt.png", "nether_netherrack.png", "nether_netherrack.png^nether_dirt_transition.png"}, + groups = {nether=2}, + drop = "nether:netherrack", + sounds = default.node_sound_dirt_defaults({ + dig = {name="nether_dig", gain=0.7}, + dug = {name="nether_dug", gain=1}, + }), + can_dig = function(_, player) + return digging_allowed(player, 2) + end, +}) + + +-- Nether torch +minetest.register_node("nether:torch", { + description = "Nether Torch", + drawtype = "torchlike", + tiles = {"nether_torch_on_floor.png", "nether_torch_on_ceiling.png", + { + name = "nether_torch.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + inventory_image = "nether_torch_on_floor.png", + wield_image = "nether_torch_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 13, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2, dig_immediate=3, attached_node=1, hot=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +local invisible = "nether_transparent.png" +minetest.register_node("nether:portal", { + description = "Nether Portal Essence", + tiles = {invisible, invisible, invisible, invisible, "nether_portal_stuff.png"}, + inventory_image = "nether_portal_stuff.png", + wield_image = "nether_portal_stuff.png", + light_source = 12, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + walkable = false, + digable = false, + pointable = false, + buildable_to = false, + drop = "", + can_dig = function() return false end, + groups = {not_in_creative_inventory=1}, + post_effect_color = {a=200, r=50, g=0, b=60},--{a=180, r=128, g=0, b=128} + drawtype = "nodebox", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.1, 0.5, 0.5, 0.1}, + }, + }, +}) + + +minetest.register_craftitem("nether:grass", { + description = "Nether Grass", + inventory_image = "nether_grass.png", +}) + +minetest.register_craftitem("nether:grass_dried", { + description = "Dried Nether Grass", + inventory_image = "nether_grass_dried.png", + furnace_burntime = 1, +}) + +minetest.register_craftitem("nether:forest_planks", { + description = "Nether Wooden Planks", + inventory_image = "nether_forest_planks.png", + stack_max = 990, +}) + +minetest.register_craftitem("nether:bark", { + description = "Nether Trunk Bark", + inventory_image = "nether_bark.png", + furnace_burntime = 5, +}) + +-- Nether Pearl +minetest.register_craftitem("nether:pearl", { + description = "Nether Pearl", + inventory_image = "nether_pearl.png", +}) + +minetest.register_craftitem("nether:stick", { + description = "Nether Stick", + inventory_image = "nether_stick.png", + groups = {stick=1}, +}) + +local tmp = {} +minetest.register_craftitem("nether:shroom_head", { + description = "Nether Mushroom Head", + inventory_image = "nether_shroom_top.png", + furnace_burntime = 3, + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + + if pointed_thing.type ~= "node" then + return + end + + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node(pos) + local pstr = pos.x.." "..pos.y.." "..pos.z + + if node.name == "nether:netherrack_soil" + and not tmp[pstr] then + minetest.sound_play("default_grass_footstep", {pos=pos}) + minetest.set_node(pos, {name="nether:netherrack_soil", param2=math.max(node.param2, math.random(3, 10))}) + tmp[pstr] = true + minetest.after(3, function() tmp[pos.x.." "..pos.y.." "..pos.z] = nil end) + end + end +}) + +minetest.register_craftitem("nether:shroom_stem", { + description = "Nether Mushroom Stem", + inventory_image = "nether_shroom_stem.png", + furnace_burntime = 3, +}) + +minetest.register_craftitem("nether:fruit_leaf", { + description = "Nether Fruit Leaf", + inventory_image = "nether_fruit_leaf.png", + furnace_burntime = 2, +}) + +minetest.register_craftitem("nether:fruit_no_leaf", { + description = "Nether Fruit Without Leaf", + inventory_image = "nether_fruit_no_leaf.png", + furnace_burntime = 4, +}) + +minetest.register_craftitem("nether:fim", { + description = "Nether FIM", --fruit in mushroom + inventory_image = "nether_fim.png", + furnace_burntime = 10, +}) + +local blood_exno = {} +for _,i in ipairs({"nether:blood", "nether:blood_top", "nether:blood_stem"}) do + blood_exno[i] = i.."_empty" +end + +minetest.register_craftitem("nether:blood_extracted", { + description = "Blood", + inventory_image = "nether_blood_extracted.png", + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + + if pointed_thing.type ~= "node" then + return + end + + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node_or_nil(pos) + + if not node then + return + end + + if node.name == "nether:vine" then + pos = {x=pos.x, y=pos.y-1, z=pos.z} + if minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "nether:vine"}) + end + itemstack:take_item() + return itemstack + end + + if node.name ~= "nether:extractor" then + return + end + itemstack:take_item() + minetest.after(1, function(pos) + for i = -1,1,2 do + for _,p in ipairs({ + {x=pos.x+i, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+i}, + }) do + local nodename = blood_exno[minetest.get_node(p).name] + if nodename then + minetest.set_node(p, {name=nodename}) + p = vector.add(p, {x=math.random()-0.5, y=math.random()+0.5, z=math.random()-0.5}) + minetest.sound_play("nether_extract_blood", {pos = p, gain = 1}) + minetest.add_item(p, "nether:blood_extracted") + end + end + end + end, pos) + + return itemstack + end +}) + +minetest.register_craftitem("nether:hotbed", { + description = "Cooked Blood", + inventory_image = "nether_hotbed.png", + on_place = function(itemstack, _, pointed_thing) + if not pointed_thing then + return + end + if pointed_thing.type ~= "node" then + return + end + local pos = minetest.get_pointed_thing_position(pointed_thing) + local node = minetest.get_node(pos) + + if node.name ~= "nether:netherrack" then + return + end + + minetest.sound_play("default_place_node", {pos=pos}) + minetest.set_node(pos, {name = "nether:netherrack_soil"}) + + itemstack:take_item() + return itemstack + end +}) + + +minetest.register_tool("nether:pick_mushroom", { + description = "Nether Mushroom Pickaxe", + inventory_image = "nether_pick_mushroom.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=3}, uses=1, maxlevel=1}, + nether = {times={[3]=3}, uses=1, maxlevel=1}, + }, + }, +}) + +minetest.register_tool("nether:pick_wood", { + description = "Nether Wood Pickaxe", + inventory_image = "nether_pick_wood.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.6}, uses=10, maxlevel=1}, + nether = {times={[2]=6, [3]=1.6}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +minetest.register_tool("nether:pick_netherrack", { + description = "Netherrack Pickaxe", + inventory_image = "nether_pick_netherrack.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1}, + nether = {times={[1]=16, [2]=2, [3]=1.20}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, +}) + +minetest.register_tool("nether:pick_netherrack_blue", { + description = "Blue Netherrack Pickaxe", + inventory_image = "nether_pick_netherrack_blue.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + nether = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:pick_white", { + description = "Siwtonic Pickaxe", + inventory_image = "nether_pick_white.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=1, [2]=0.8, [3]=0.3}, uses=180, maxlevel=3}, + nether = {times={[1]=1, [2]=0.5, [3]=0.3}, uses=180, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, +}) + +minetest.register_tool("nether:axe_netherrack", { + description = "Netherrack Axe", + inventory_image = "nether_axe_netherrack.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=2.9, [2]=1.9, [3]=1.4}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:axe_netherrack_blue", { + description = "Blue Netherrack Axe", + inventory_image = "nether_axe_netherrack_blue.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.5, [2]=1.5, [3]=1}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, +}) + +minetest.register_tool("nether:axe_white", { + description = "Siwtonic Axe", + inventory_image = "nether_axe_white.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.2, [2]=0.5, [3]=0.3}, uses=180, maxlevel=2}, + }, + damage_groups = {fleshy=8}, + }, +}) + +minetest.register_tool("nether:shovel_netherrack", { + description = "Netherrack Shovel", + inventory_image = "nether_shovel_netherrack.png", + wield_image = "nether_shovel_netherrack.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.7, [2]=1.1, [3]=0.45}, uses=22, maxlevel=2}, + }, + damage_groups = {fleshy=2}, + }, +}) + +minetest.register_tool("nether:shovel_netherrack_blue", { + description = "Blue Netherrack Shovel", + inventory_image = "nether_shovel_netherrack_blue.png", + wield_image = "nether_shovel_netherrack_blue.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.4, [2]=0.8, [3]=0.35}, uses=50, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, +}) + +minetest.register_tool("nether:shovel_white", { + description = "Siwtonic Shovel", + inventory_image = "nether_shovel_white.png", + wield_image = "nether_shovel_white.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=0.95, [2]=0.45, [3]=0.1}, uses=151, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_tool("nether:sword_netherrack", { + description = "Netherrack Sword", + inventory_image = "nether_sword_netherrack.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.3, [3]=0.38}, uses=40, maxlevel=1}, + }, + damage_groups = {fleshy=5}, + }, +}) + +minetest.register_tool("nether:sword_netherrack_blue", { + description = "Blue Netherrack Sword", + inventory_image = "nether_sword_netherrack_blue.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.1, [3]=0.33}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, +}) + +minetest.register_tool("nether:sword_white", { + description = "Siwtonic Sword", + inventory_image = "nether_sword_white.png", + wield_image = "nether_sword_white.png^[transformR90", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.7, [2]=0.8, [3]=0.2}, uses=100, maxlevel=3}, + }, + damage_groups = {fleshy=11}, + }, +}) + diff --git a/nether/pearl.lua b/nether/pearl.lua new file mode 100644 index 0000000..25dfac2 --- /dev/null +++ b/nether/pearl.lua @@ -0,0 +1,114 @@ +local function table_contains(t, v) + for _,i in pairs(t) do + if v == i then + return true + end + end + return false +end + +local teleportball_player +local function throw_pearl(item, player) + local playerpos = player:getpos() + local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.625,z=playerpos.z}, "nether:pearl_entity") + local dir = player:get_look_dir() + obj:setvelocity({x=dir.x*30, y=dir.y*30, z=dir.z*30}) + obj:setacceleration({x=dir.x*-3, y=-dir.y^8*80-10, z=dir.z*-3}) + if not minetest.setting_getbool("creative_mode") then + item:take_item() + end + teleportball_player = player + return item +end + +local ENTITY = { + timer=0, + collisionbox = {0,0,0,0,0,0}, --not pointable + physical = false, -- Collides with things + textures = {"nether_pearl.png"}, + lastpos={}, + player = "", +} + +local allowed_nodes = {"air", "default:water_source"} +local function teleport_player(pos, player) + local nd2 = minetest.get_node(pos).name + pos.y = pos.y+1 + local nd3 = minetest.get_node(pos).name + if table_contains(allowed_nodes, nd2) + and table_contains(allowed_nodes, nd3) then + pos.y = pos.y-1.4 + player:moveto(pos) + pos.y = pos.y-0.6 + return true + end + return false +end + +ENTITY.on_step = function(self, dtime) + self.timer=self.timer+dtime + +--[[ local delay = self.delay + if delay < 0.1 then + self.delay = delay+dtime + return + end + self.delay = 0]] + local pos = self.object:getpos() + local lastpos = self.lastpos + if lastpos.x + and vector.equals(vector.round(lastpos), vector.round(pos)) then + return + end + local player = self.player + if not player + or player == "" then + self.player = teleportball_player + player = teleportball_player + end + if not player then + self.object:remove() + return + end + if lastpos.x then --If there is no lastpos for some reason. + local free, p = minetest.line_of_sight(lastpos, pos) + if not free then + local nd1 = minetest.get_node(p).name + if not table_contains(allowed_nodes, nd1) + and nd1 ~= "ignore" then + self.object:remove() + minetest.after(0, function(p) --minetest.after us used that the sound is played after the teleportation + minetest.sound_play("nether_pearl", {pos=p, max_hear_distance=10}) + end, p) + p.y = p.y+1 + if teleport_player(p, player) then + return + end + p.y = p.y-2 + for i = -1,1,2 do + for _,j in pairs({{i, 0}, {0, i}}) do + if teleport_player({x=p.x+j[1], y=p.y, z=p.z+j[2]}, player) then + return + end + end + end + for i = -1,1,2 do + for j = -1,1,2 do + if teleport_player({x=p.x+j, y=p.y, z=p.z+i}, player) then + return + end + end + end + end + end + end + if self.timer > 20 then + self.object:remove() + return + end + self.lastpos = vector.new(pos) +end + +minetest.register_entity("nether:pearl_entity", ENTITY) + +minetest.override_item("nether:pearl", {on_use = throw_pearl}) diff --git a/nether/portal.lua b/nether/portal.lua new file mode 100644 index 0000000..0677639 --- /dev/null +++ b/nether/portal.lua @@ -0,0 +1,544 @@ +--code copied from Pilzadam's nether mod and edited +local portal_target = nether.buildings+1 +local damage_enabled = minetest.setting_getbool("enable_damage") + +local abm_allowed +minetest.after(5, function() + abm_allowed = true +end) + +table.icontains = table.icontains or function(t, v) + for _,i in ipairs(t) do + if i == v then + return true + end + end + return false +end + +local players_in_nether = {} +local file = io.open(minetest.get_worldpath()..'/nether_players', "r") +if file then + local contents = file:read('*all') + io.close(file) + if contents then + players_in_nether = string.split(contents, " ") + end +end + +local function save_nether_players() + local output = '' + for _,name in ipairs(players_in_nether) do + output = output..name..' ' + end + local f = io.open(minetest.get_worldpath()..'/nether_players', "w") + f:write(output) + io.close(f) +end + +local update_background +if damage_enabled then + function update_background(player, down) + if down then + player:set_sky({r=15, g=0, b=0}, "plain") + else + player:set_sky(nil, "regular") + end + end +else + function update_background()end +end + +local function player_to_nether(player, safe) + local pname = player:get_player_name() + if table.icontains(players_in_nether, pname) then + return + end + table.insert(players_in_nether, pname) + save_nether_players() + if not safe then + minetest.chat_send_player(pname, "For any reason you arrived here. Type /nether_help to find out things like craft recipes.") + player:set_hp(0) + end + update_background(player, true) +end + +local function player_from_nether(player) + local pname = player:get_player_name() + local changes + for n,i in ipairs(players_in_nether) do + if i == pname then + table.remove(players_in_nether, n) + changes = true + end + end + if changes then + save_nether_players() + end + update_background(player) +end + + +if damage_enabled then +local function player_exists(name) + for _,player in pairs(minetest.get_connected_players()) do + if player:get_player_name() == name then + return true + end + end + return false +end + +-- Chatcommands (edited) written by sss +minetest.register_chatcommand("to_hell", { + params = "", + description = "Send someone to hell", + func = function(name, pname) + if not minetest.check_player_privs(name, {nether=true}) then + local self_player = minetest.get_player_by_name(name) + if self_player then + minetest.chat_send_player(name, "You can't send anyone to hell, go to hell instead") + player_to_nether(self_player) + else + minetest.chat_send_player(name, "Something went wrong.") + end + return false + end + if not player_exists(pname) then + pname = name + end + local player = minetest.get_player_by_name(pname) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + minetest.chat_send_player(pname, "Go to hell !!!") + player_to_nether(player) + return true + end +}) + +minetest.register_chatcommand("from_hell", { + params = "", + description = "Extract from hell", + func = function(name, pname) + if not minetest.check_player_privs(name, {nether=true}) then + local self_player = minetest.get_player_by_name(name) + if self_player then + minetest.chat_send_player(name, "You can't send anyone to hell, go to hell instead") + player_to_nether(self_player) + else + minetest.chat_send_player(name, "Something went wrong.") + end + return false + end + if not player_exists(pname) then + pname = name + end + local player = minetest.get_player_by_name(pname) + if not player then + minetest.chat_send_player(name, "Something went wrong.") + return false + end + minetest.chat_send_player(pname, "You are free now") + player_from_nether(player) + local pos = player:getpos() + player:moveto({x=pos.x, y=100, z=pos.z}) + return true + end +}) + +minetest.register_on_respawnplayer(function(player) + local pname = player:get_player_name() + if not table.icontains(players_in_nether, pname) then + return + end + local target = vector.add(player:getpos(), {x=math.random(-100,100), y=0, z=math.random(-100,100)}) + target.y = portal_target + math.random(4) + player:moveto(target) + minetest.after(0, function(pname, target) + local player = minetest.get_player_by_name(pname) + if player then + player:moveto(target) + end + end, pname, target) + return true +end) + +local function update_players() + for _,player in ipairs(minetest.get_connected_players()) do + local pname = player:get_player_name() + local ppos = player:getpos() + if table.icontains(players_in_nether, pname) then + if ppos.y > nether.start then + player:moveto({x=ppos.x, y=portal_target, z=ppos.z}) + update_background(player, true) + --[[minetest.kick_player(pname, "\n1. Maybe you were not allowed to teleport out of the nether.".. + "\n2. Maybe the server lagged.".. + "\n3. please rejoin")]] + end + elseif ppos.y < nether.start then + update_background(player) + player:moveto({x=ppos.x, y=20, z=ppos.z}) + --[[minetest.kick_player(pname, "\n1. Maybe you were not allowed to teleport to the nether.".. + "\n2. Maybe the server lagged.".. + "\n3. please rejoin")]] + end + end +end + +local timer = 0 --doesn't work if the server lags +minetest.register_globalstep(function(dtime) + timer = timer + dtime; + if timer >= 2 then + --minetest.after(1, update_players) + update_players() + timer = 0 + end +end) + +minetest.register_on_joinplayer(function(player) + minetest.after(0, function(player) + if player:getpos().y < nether.start then + update_background(player, true) + end + end, player) +end) + +local function remove_portal_essence(pos) + for z = -1,1 do + for y = -2,2 do + for x = -1,1 do + local p = {x=pos.x+x, y=pos.y+y, z=pos.z+z} + if minetest.get_node(p).name == "nether:portal" then + minetest.remove_node(p) + end + end + end + end +end + +minetest.register_abm({ + nodenames = {"nether:portal"}, + interval = 1, + chance = 2, + action = function(pos, node) + if not abm_allowed then + return + end + minetest.add_particlespawner({ + amount = 32, + time = 4, + minpos = {x=pos.x-0.25, y=pos.y-0.5, z=pos.z-0.25}, + maxpos = {x=pos.x+0.25, y=pos.y+0.34, z=pos.z+0.25}, + minvel = {x=0, y=1, z=0}, + maxvel = {x=0, y=2, z=0}, + minacc = {x=-0.5,y=-3,z=-0.3}, + maxacc = {x=0.5,y=-0.4,z=0.3}, + minexptime = 1, + maxexptime = 1, + minsize = 0.4, + maxsize = 3, + collisiondetection = true, + texture = "nether_portal_particle.png^[transform"..math.random(0,7), + }) + for _,obj in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if obj:is_player() then + local meta = minetest.get_meta(pos) + local target = minetest.string_to_pos(meta:get_string("target")) + if target then + minetest.after(3, function(obj, pos, target) + local pname = obj:get_player_name() + if table.icontains(players_in_nether, pname) then + return + end + local objpos = obj:getpos() + objpos.y = objpos.y+0.1 -- Fix some glitches at -8000 + if minetest.get_node(vector.round(objpos)).name ~= "nether:portal" then + return + end + + remove_portal_essence(pos) + + minetest.sound_play("nether_portal_usual", {to_player=pname, gain=1}) + player_to_nether(obj) + --obj:setpos(target) + + end, obj, pos, target) + end + end + end + end, +}) + +local function move_check(p1, max, dir) + local p = {x=p1.x, y=p1.y, z=p1.z} + local d = math.abs(max-p1[dir]) / (max-p1[dir]) + while p[dir] ~= max do + p[dir] = p[dir] + d + if minetest.get_node(p).name ~= "default:obsidian" then + return false + end + end + return true +end + +local function check_portal(p1, p2) + if p1.x ~= p2.x then + if not move_check(p1, p2.x, "x") then + return false + end + if not move_check(p2, p1.x, "x") then + return false + end + elseif p1.z ~= p2.z then + if not move_check(p1, p2.z, "z") then + return false + end + if not move_check(p2, p1.z, "z") then + return false + end + else + return false + end + + if not move_check(p1, p2.y, "y") then + return false + end + if not move_check(p2, p1.y, "y") then + return false + end + + return true +end + +local function is_portal(pos) + for d=-3,3 do + for y=-4,4 do + local px = {x=pos.x+d, y=pos.y+y, z=pos.z} + local pz = {x=pos.x, y=pos.y+y, z=pos.z+d} + if check_portal(px, {x=px.x+3, y=px.y+4, z=px.z}) then + return px, {x=px.x+3, y=px.y+4, z=px.z} + end + if check_portal(pz, {x=pz.x, y=pz.y+4, z=pz.z+3}) then + return pz, {x=pz.x, y=pz.y+4, z=pz.z+3} + end + end + end +end + +local function make_portal(pos) + local p1, p2 = is_portal(pos) + if not p1 + or not p2 then + print("[nether] something failed.") + return false + end + + if p1.y < nether.start then + print("[nether] aborted, obsidian portals can't be used to get out") + return + end + + for d=1,2 do + for y=p1.y+1,p2.y-1 do + local p + if p1.z == p2.z then + p = {x=p1.x+d, y=y, z=p1.z} + else + p = {x=p1.x, y=y, z=p1.z+d} + end + if minetest.get_node(p).name ~= "air" then + return false + end + end + end + + local param2 + if p1.z == p2.z then + param2 = 0 + else + param2 = 1 + end + + local target = {x=p1.x, y=p1.y, z=p1.z} + target.x = target.x + 1 + target.y = portal_target + math.random(4) + + for d=0,3 do + for y=p1.y,p2.y do + local p = {} + if param2 == 0 then + p = {x=p1.x+d, y=y, z=p1.z} + else + p = {x=p1.x, y=y, z=p1.z+d} + end + if minetest.get_node(p).name == "air" then + minetest.set_node(p, {name="nether:portal", param2=param2}) + end + local meta = minetest.get_meta(p) + meta:set_string("p1", minetest.pos_to_string(p1)) + meta:set_string("p2", minetest.pos_to_string(p2)) + meta:set_string("target", minetest.pos_to_string(target)) + end + end + print("[nether] construction accepted.") + return true +end + +minetest.override_item("default:obsidian", { + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local p1 = minetest.string_to_pos(meta:get_string("p1")) + local p2 = minetest.string_to_pos(meta:get_string("p2")) + local target = minetest.string_to_pos(meta:get_string("target")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + meta = minetest.get_meta(target) + if not meta then + return + end + p1 = minetest.string_to_pos(meta:get_string("p1")) + p2 = minetest.string_to_pos(meta:get_string("p2")) + if not p1 or not p2 then + return + end + for x=p1.x,p2.x do + for y=p1.y,p2.y do + for z=p1.z,p2.z do + local nn = minetest.get_node({x=x,y=y,z=z}).name + if nn == "default:obsidian" or nn == "nether:portal" then + if nn == "nether:portal" then + minetest.remove_node({x=x,y=y,z=z}) + end + local m = minetest.get_meta({x=x,y=y,z=z}) + m:set_string("p1", "") + m:set_string("p2", "") + m:set_string("target", "") + end + end + end + end + end +}) + +minetest.after(0.1, function() + minetest.override_item("default:mese_crystal_fragment", { + on_place = function(stack, player, pt) + if pt.under + and minetest.get_node(pt.under).name == "default:obsidian" then + print("[nether] tries to enable a portal") + local done = make_portal(pt.under) + if done then + minetest.chat_send_player( + player:get_player_name(), + "Warning: If you are in the nether you may not be able to find the way out!" + ) + if not minetest.setting_getbool("creative_mode") then + stack:take_item() + end + end + end + return stack + end + }) +end) +end + + +vector.square = vector.square or +function(r) + local tab, n = {}, 1 + for i = -r+1, r do + for j = -1, 1, 2 do + local a, b = r*j, i*j + tab[n] = {a, b} + tab[n+1] = {b, a} + n=n+2 + end + end + return tab +end + +local function netherport(pos) + local x, y, z = pos.x, pos.y, pos.z + for _,i in ipairs({-1, 3}) do + if minetest.get_node({x=x, y=y+i, z=z}).name ~= "nether:white" then + return + end + end + for _,sn in ipairs(vector.square(1)) do + if minetest.get_node({x=x+sn[1], y=y-1, z=z+sn[2]}).name ~= "nether:netherrack" + or minetest.get_node({x=x+sn[1], y=y+3, z=z+sn[2]}).name ~= "nether:blood_cooked" then + return + end + end + for _,sn in ipairs(vector.square(2)) do + if minetest.get_node({x=x+sn[1], y=y-1, z=z+sn[2]}).name ~= "nether:netherrack_black" + or minetest.get_node({x=x+sn[1], y=y+3, z=z+sn[2]}).name ~= "nether:wood_empty" then + return + end + end + for i = -1,1,2 do + for j = -1,1,2 do + if minetest.get_node({x=x+i, y=y+2, z=z+j}).name ~= "nether:apple" then + return + end + end + end + for i = -2,2,4 do + for j = 0,2 do + for k = -2,2,4 do + if minetest.get_node({x=x+i, y=y+j, z=z+k}).name ~= "nether:netherrack_brick_blue" then + return + end + end + end + end + for i = -1,1 do + for j = -1,1 do + if minetest.get_node({x=x+i, y=y+4, z=z+j}).name ~= "nether:wood_empty" then + return + end + end + end + return true +end + +function nether_port(player, pos) + if not player + or not pos + or not pos.x then + print("[nether] something failed.") + return + end + if not netherport(pos) then + return + end + minetest.sound_play("nether_teleporter", {pos=pos}) + if pos.y < nether.start then + player_from_nether(player) + player:moveto({x=pos.x, y=100, z=pos.z}) + else + player:moveto({x=pos.x, y=portal_target+math.random(4), z=pos.z}) + player_to_nether(player, true) + end + return true +end diff --git a/nether/Nicht Leere Datei.lua b/nether/rest/Nicht Leere Datei.lua similarity index 64% rename from nether/Nicht Leere Datei.lua rename to nether/rest/Nicht Leere Datei.lua index 2cc5a64..ed3353f 100644 --- a/nether/Nicht Leere Datei.lua +++ b/nether/rest/Nicht Leere Datei.lua @@ -1,3 +1,63 @@ +--[[ Nether leaves +minetest.register_node("nether:leaves", { + description = "Nether Leaves", + drawtype = "allfaces_optional", +-- visual_scale = 1.189, --scale^2=sqrt(2) + tiles = {"nether_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=2}, + sounds = default.node_sound_leaves_defaults(), +})]] + +--[[ Nether Lava +minetest.register_node("nether:lava_flowing", { + description = "Nether Lava (flowing)", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + paramtype = "light", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + liquidtype = "flowing", + liquid_alternative_flowing = "nether:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + special_materials = { + {image="default_lava.png", backface_culling=false}, + {image="default_lava.png", backface_culling=true}, + }, + groups = {lava=3, liquid=2, hot=3}, +}) + +minetest.register_node("nether:lava_source", { + description = "Nether Lava", + inventory_image = minetest.inventorycube("default_lava.png"), + drawtype = "liquid", + tiles = {"default_lava.png"}, + paramtype = "light", + light_source = LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + liquidtype = "source", + liquid_alternative_flowing = "nether:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = LAVA_VISC, + damage_per_second = 4*2, + post_effect_color = {a=192, r=255, g=64, b=0}, + special_materials = { + -- New-style lava source material (mostly unused) + {image="default_lava.png", backface_culling=false}, + }, + groups = {lava=3, liquid=2, hot=3}, +})]] + -- Throne of Hades HADES_THRONE = { -- Lava Moat @@ -197,3 +257,109 @@ HADES_THRONE = { {pos={x=1,y=5,z=6}, portalblock=true}, } + +minetest.register_on_generated(function(minp, maxp, seed) + if minp.y <= 99 then + return + end + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + + local perlin1 = minetest.get_perlin(13,3, 0.5, 50) --Get map specific perlin + local perlin2 = minetest.get_perlin(133,3, 0.5, 10) + for x=minp.x, maxp.x, 1 do + for z=minp.z, maxp.z, 1 do + local test = perlin1:get2d({x=x, y=z})+1 + local test2 = perlin2:get2d({x=x, y=z}) +-- print(test) + if test2 < 0 then + h = 200+math.floor(test2*3+0.5) + else + h = 203+math.floor(test*3+0.5) + end + for y=minp.y, maxp.y, 1 do + p_addpos = area:index(x, y, z) + if y <= h then + data[p_addpos] = c_netherrack + elseif y <= 201 then + data[p_addpos] = c_lava + end + end + end + end + + vm:set_data(data) + --vm:set_lighting({day=0, night=0}) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() +end) + + +We don't want the Throne of Hades to get regenerated (especially since it will screw up portals) + if (minp.x <= HADES_THRONE_STARTPOS_ABS.x) + and (maxp.x >= HADES_THRONE_STARTPOS_ABS.x) + and (minp.y <= HADES_THRONE_STARTPOS_ABS.y) + and (maxp.y >= HADES_THRONE_STARTPOS_ABS.y) + and (minp.z <= HADES_THRONE_STARTPOS_ABS.z) + and (maxp.z >= HADES_THRONE_STARTPOS_ABS.z) + and (nether:fileexists(HADES_THRONE_GENERATED) == false) then + -- Pass 3: Make way for the Throne of Hades! + for x=(HADES_THRONE_STARTPOS_ABS.x - 1), (HADES_THRONE_ENDPOS_ABS.x + 1), 1 do + for z=(HADES_THRONE_STARTPOS_ABS.z - 1), (HADES_THRONE_ENDPOS_ABS.z + 1), 1 do + -- Notice I did not put a -1 for the beginning. This is because we don't want the throne to float + for y=HADES_THRONE_STARTPOS_ABS.y, (HADES_THRONE_ENDPOS_ABS.y + 1), 1 do + addpos = {x=x, y=y, z=z} + minetest.add_node(addpos, {name="air"}) + end + end + end + -- Pass 4: Throne of Hades + for i,v in ipairs(HADES_THRONE_ABS) do + if v.portalblock == true then + NETHER_PORTALS_FROM_NETHER[table.getn(NETHER_PORTALS_FROM_NETHER)+1] = v.pos + nether:save_portal_from_nether(v.pos) + nether:createportal(v.pos) + else + minetest.add_node(v.pos, {name=v.block}) + end + end + nether:touch(HADES_THRONE_GENERATED) + end + +--[[ Create a nether tree +function nether:grow_nethertree(pos) + --TRUNK + pos.y=pos.y+1 + local trunkpos={x=pos.x, z=pos.z} + for y=pos.y, pos.y+4+math.random(2) do + trunkpos.y=y + minetest.add_node(trunkpos, {name="nether:tree"}) + end + --LEAVES + local leafpos={} + for x=(trunkpos.x-NETHER_TREESIZE), (trunkpos.x+NETHER_TREESIZE), 1 do + for y=(trunkpos.y-NETHER_TREESIZE), (trunkpos.y+NETHER_TREESIZE), 1 do + for z=(trunkpos.z-NETHER_TREESIZE), (trunkpos.z+NETHER_TREESIZE), 1 do + if (x-trunkpos.x)*(x-trunkpos.x) + +(y-trunkpos.y)*(y-trunkpos.y) + +(z-trunkpos.z)*(z-trunkpos.z) + <= NETHER_TREESIZE*NETHER_TREESIZE + NETHER_TREESIZE then + leafpos={x=x, y=y, z=z} + if minetest.get_node(leafpos).name=="air" then + if math.random(NETHER_APPLE_FREQ) == 1 then + if math.random(NETHER_HEAL_APPLE_FREQ) == 1 then + minetest.add_node(leafpos, {name="default:apple"}) + else + minetest.add_node(leafpos, {name="nether:apple"}) + end + else + minetest.add_node(leafpos, {name="nether:leaves"}) + end + end + end + end + end + end +end]] diff --git a/nether/rest/nether_fruit_leaves.png b/nether/rest/nether_fruit_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..c230ae51bdb780cd159adbe8f2b2175a1ca82725 GIT binary patch literal 1228 zcmV;-1T*`IP)P001Zm0ssI2gssLr000D&NklB5jdvH{JFDx-HsA$fNWX`m^Xdi|zsx z-lPk&XalQ-6h~vnq(o^*kzH`CU)mXHK~RTtXU;wM+-p4kfzky5?_ny8l4*l!lg0?6 zq%fIYKnW#=fV;P0th50m+GBV_X^?JHGyoKk;YdWuq(R}*P&ChP!wA}VV{(VAh06Rw zq1QPiq&76LOK`|G-+?iXpRu^Ct`AU>@5kJ*Zo-JxHr`3-wQ;rp^1Yan+|?lG2=64E z{oKPEO!cjI5}Nl9DSeq5*e^oWk${M8F|ms+1+<=r<&((Rm(%xUek`ruYB0?g;b=>$ zjx={ZCm;LMrc(Q|ic_FOZWkL0XdufAQiCjGI;7fY1*3dP6F{gf^1ax)@V%2z-#de; zel+^wBH6VVFAA-$Z=LzZM?W(92f#Y>^Zl3$XhI4Cwr?PN4P%}8xf=`dvkujgy8s@H zVFwy8)CZZ7tUP!osmH5eHjcGodW3msU;*{)B zBt&n4f&l~oUN>X_kc2u?z7b;q8lzt8kWL?QPWF~bj?kelpamsJ0R0lYXpQXPIs@mx zQel{fcS6;XSTKYg$RWr3Gi+XMo1e*%Ep;TD!cdICp~y4w)-LWTTxgNI1BcqEMnQVeOnsEOqMdoT`qxYtw;@J>V3kU~??083NQ?qR;9{EN{gGqTy3 zlRXalR^rbT=Y9;}e1fPbSkdQ_9}J*?1Wc-g%<}-{lSsUw_#!HzYOjmx+A$IWlE=}k z7_6>ujePFH9lTd{h4FisTvDDQ&a1uFwC5bv_yM~S!E#_o?ng5V6Sdkie+m~Rs-OFH zqW>@C4s4MISgYF0p=7i-m#7u{OHMc|j9@{DLueytEg0^#_S|j_H9Gy(UjYoTUiphw zVLbZwW>a4AgA7MPN!ro-T4O(dpue)te6dO}cs=U<;ANQFnEh}bY`WlU2FCF-tgg?L z{4lQG&We!%R_f_Ji zx^r2~R%@_34*KghmmEa2Fpj^kCwS7J2=w8tc+Rn|DzqlFII`-Fbp+oei|T?_>dysy zEjq6o8pq$=Oz;}V&JpR~ODAm~F#LncD#SX$&XI1{>m2LaTCD9~!{$Sb0pbm2@RX_# z7Y$X}TkCl^HDz&EPEEMP$;l^F9$7lFNS8cTb>wtNrck3Qk5%1`H3ie%sOkj_K#2kr2(T zVxj)b;3+jtsJ~rIGWXSi>d4mfkR564OVxus$|F%RN}EH=)}{ouxr+8TmhMH_@o)Gc*_g0000%? literal 0 HcmV?d00001 diff --git a/nether/nether_glowstone.png b/nether/rest/nether_glowstone.png similarity index 100% rename from nether/nether_glowstone.png rename to nether/rest/nether_glowstone.png diff --git a/nether/rest/nether_leaves.png b/nether/rest/nether_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d304d90f00683a08750242b055deaaae705b2b GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^LM& zEQYm@mRbTS&H|6fVg?3oVGw3ym^DWND9B#o>FdgVhed!vMRB7+Sujv&zo(01h{fsN z$$@-_6?mMB8@{f-bw6aS{NBTPMsNQezu|5j&>N>SqpO80uRw-fsqS&<{PMG#?k|gu zeeM0`Z%v4e3D<|n>Fb#!b%bP-CN)jHDaN(xf#)KhU+!y;2CWkI5WG5J!K#l{kzDNF zo-A?Oy{9Qj%?QbIzRB~YCusIA2cdjz&WLsA+SoUyY6iQfDi_?m*Lu&Y^k8<1oBF$% za>`6q4_Vf&;pUkuA3G^fEPU#TKL`I9Psv|4@mKVYB$>Td498jT{5Sc#tP|)J22WQ% Jmvv4FO#r-4bG`ro literal 0 HcmV?d00001 diff --git a/nether/rest/nether_leaves_decision/nether_leaves.png b/nether/rest/nether_leaves_decision/nether_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..bed616249fa48afcab314a559da6a2c71777f18c GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMffdHQn*LO>*+%qg3bM%~Y^c?dH z-0}=u3JlzejGT)NU5gEUfQ&LAGI1?4axXLTDl>AcGV!P~ajP|TuQm0oHFc{ub#FBH zY&7?3H1}yV_XDz<&3&8A{hG}^+AO@%bnH;2s;le%p|KTfa$m0h8>4CfWH71sj-fLhLuNTe z&vFW%?;NwpC2px}%nFax_1;=bw`T+W!dMdI7tG-B>_!@pv&qxNF+}3BsXw=Lql19V z`V-MhmwY)8*wJ$0^Z) zL?$@p`lM*jIX_aDd-NU^%hZ#Z>J>b_#=7P?TWq?L4xgA{ZG2+n^M^Yh>F?hexNF9= zyEzopr0ARSN<^TWy literal 0 HcmV?d00001 diff --git a/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png b/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad8059142b22062b49b6cc13c7e7d76d072f36f GIT binary patch literal 572 zcmV-C0>k}@P)~NGT#kLPAb~6gs{Q1$3cLfkc;z0*Q|h zVvrMrz>t56F?MY4-cVd}@yYR&JNstly?Fz`{nfkxR2~OoNe(|9sjEcg5(IGY;Y0!S_Ih}wRHC>GU^)i>wv$L4UV_F$v}XVHPX)02q9onc z;Ii9V)NN^NP8PT31fc%%o-DnZzmXC^y%9|2s_R9mJ}XWIl~-~T8o0IRcg1xyU$)!I zEx33oMXeD?coAaH4BvOpVk$c4f(a8v6+rDtUUbnRyOhQL8PfeRp!Gh|puCb3zn&rN zTl6Tz4LnTGVonULog)>A=z;^Bd_2cr@M184d&kAQ<^t zG4Ylgfjr!Zc-Pk_^-%!zjiM-DBTCWSZmY^#L9oeHE;a(0t$3V&?Gp~6wG(+p1K5sb zw&H<}1X42^(=mzdWb!Enrv}Erv5}nlG{>L+#)``j(xr4PaUvF&ioNDFHPae$e!M|ZDxePtO3{)PCt z6upCs*z(~(Q0cJ(p@pz-!3BMBJ#F(%bTnjj{OAQ~_TTS->P)Px#24YJ`L;y4Z00023;-xtN000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb@ z01`DK_A^@m00F*9L_t(IPgT=vE5u>g$WOfq^(09gWlR@wlCyj@P-lc%Ge&&rT-}^Zu>fj`N9$cx<)G zy|}YHZwwAb1HjJkaBK|?#qro!+)Pcy-ONlpW$^F9Lag-n$ItwHT<85u0{ehoOiq@< zjpYQ8xYul!)pwPT4+$Vq0ZH%40_bJF0T5RJR6y?_FVXVg4CE^%tS3!-)U7H5@D+g7 z{Hax~yU7Gyp6~)FcJ|(#PtpUDyAo>B{>Vu21J%t8V5q%&`|Z3VO$-ASFA~u4089|g zRxEUaJPd#`SY`XJ2PmPom;fHM%~|4i8i@f=X8>{}cO{@tld43L)(242?AG!c8R6&!WdM-c`MwJ0Z02y0Z6c1G6gEj#}zv>4F zKvJCnE7o$$DBGBGKG5iqA0!A?nLGvp2O_St5kRN6w*=^bp^>1n)?s9P-Pi7rhiw7S zI$D@Rmqc_)_{bShNn&j!7XSVW_3tbIx@rJaHbm|WnFKNc0CncgA1DZGlmUs@6#xJL M07*qoM6N<$f^6~XzW@LL literal 0 HcmV?d00001 diff --git a/nether/rest/nether_tree_top.png b/nether/rest/nether_tree_top.png new file mode 100644 index 0000000000000000000000000000000000000000..eb82f0623721ada9904dba6eb05480a103e8c266 GIT binary patch literal 612 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 j6(A;%a;(+VH) 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 E0G-DmO8@`> literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_extract_blood.1.ogg b/nether/sounds/nether_extract_blood.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c69d4866a1c8b193b3340072907de14eceb42999 GIT binary patch literal 12062 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 G@P7blsvk@M literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_extract_blood.2.ogg b/nether/sounds/nether_extract_blood.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bf418211ef21e4f3791244107b648d4d1c894ff1 GIT binary patch literal 18052 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 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_extract_blood.4.ogg b/nether/sounds/nether_extract_blood.4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2ac349555d0fd22480b27c209a4a409128c8a8b6 GIT binary patch literal 16244 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 KIID3woWH)gX3w5AGi&a-b7tAj)N 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 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_extract_blood.6.ogg b/nether/sounds/nether_extract_blood.6.ogg new file mode 100644 index 0000000000000000000000000000000000000000..618d6d6e117412efbd793dc7a357e440fcec7b16 GIT binary patch literal 19968 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 N0|NlSO!ND|NdT#<>%ag2 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_extract_blood.7.ogg b/nether/sounds/nether_extract_blood.7.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fd0a7fec6d81c6c46cadf6d33bde3922cd42e99c GIT binary patch literal 22552 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 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_footstep.2.ogg b/nether/sounds/nether_footstep.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fbc200a54d9bf4709aa34dc06145e65d449fb1a6 GIT binary patch literal 5301 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 QhjfbzQdFayHWoww0hye}E&u=k literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_footstep.3.ogg b/nether/sounds/nether_footstep.3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1648043317f62d9b4d78d772c14a64eaf4673fd5 GIT binary patch literal 5044 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 G8vY01{6rl9 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_pearl.ogg b/nether/sounds/nether_pearl.ogg new file mode 100644 index 0000000000000000000000000000000000000000..90dde6ae3d41bcbc082ff6033bf949ee32f3c2b3 GIT binary patch literal 8969 zcmaiZcU)6Tu<%LfJyH||DN;jGLJv(k7j=u0y+Ypk!%9mACO(1|00Py%Q3u+Yl zoR5TER54&#WK$V*-(XSEId_juOvkd1*C&zdS)NLarNG?}i5TEi;l6SJV`Qu{IaegF zf?09|zXFKGAVHezDGjFbZ>NrQ0lCWLmm(KMWvC;*%KT)DR7aY@K-vmtB%R93tcY?X zD9j_NWe`D%Tw#lRD=ZLuuS4|Z`AA|(fk*egh<1-fP^rXZMO>Hsc`?#iIpF-?F?f`< z5+g{JyO|?3l))L0B408__9>TKj1)wYb3}4VI4}W;0FYN85L+NX3AJqC9j*(vp;l#n10vlJRbI+$eG-klfm^W z!J^}AXW`@{%PyQ6=j<+uttua^h*DgPz^kkcuedx*l_lp*^FpKe|2iBBD3NnTF`~8p z?d)Q>qM5yW;l+9PP=ci;1&_q~gzNgxI@yi#I$AkuLnCl&VZGQkZ6JQ+35;_Z4ZkM;=9z=*K^u7o~=f+3^&s03!1$;wa~YbfP7DrsdT zWrZ=pnxMD?^D_|ub}Dk(Vv7P|O9Ns{0^(OutdN7I`}6V0QJ29Y!GhEtzaKL<$W#*0X~cjbm{*8yLy-ab_n=U5s+|D z2VnfbM^8506bW5MUR?%teMYMZ2KDhYi2(^oLt~6Cqwcsd#{9f4CY@JTTvwM7W5l42 zVZs=t>tY%lha|95#+bSDnDItO%l#13bljY{?$qfc$i;z=R*l%XjQ>nwCX6vNQXp5- z(AUZk<7f_A_Omjdz?c$3K+EGsx>HOTOgd(2+!2$Gv-ZWznOIFtV9W_2GlVE>Lde^a z=gl6ym6c_+FP!}&`O9k&T(o& zZ5XGHNpn0MGR@J--_i61sDj1#g)I15S!Lj?%$zI_qDFBzt2D<2Q%CayN2~V)+`@s* zXru1LIBpb!TOi=RKE}@c1l4eu^eAgkZX)VapvT;WTtf_QF4f8!RJ-6|Ej``pAzy{H zpHZx>;-=PYtroVLk!o($&BV>Eu&RENj+Pj$$Ab3ee66fAaC0u}%?8F8D^tg*1B~f@ z2snvP`ymU=n27_><YQ}PHtl8kd?;mQH1Am@c+Zo8Y0C>FQUW%fY<=J54J9yBe!@MwYQqv>W?ed? zfZ2!b`%A&$=FVg=I4i3IHA6`-fWZJ)0JT7h`F_Z#@foEt%31y?OiS?T*}g0Qg2s2IN6mO*CcT7pa8LW(5{*;NB{0 zaYewutF#b?MuBG|vnN=Vh~`r>UaX}DV!&7>PXe#VxYW~o@)RpfrT?!s`=2W9|6nA* zPkkBS=e5Z^c#VuwK9>+A95mX_T$t%iElUBHe1s&;PfZ0qW%~$0UifUxLOaa|hPqzb zFlkqgk1#-^DmpLPgE2+0D6b)8$$@cu-n|?-$%b+j=`!;fe0`9Jc1I8_e70X_5bVk& zmuDkjZ|fQDE1UK|-r0sXTDT7={N#)@s2R8L`F2`NK13YMMtlPc%o~r8%j}Wg-jLY> zfPVxLpmr}#yqqV8DW3Gg>1xR-08W@4xWRZZ55Z-F(rn=6EWnFCqtU96^E&)XD@=X# zSB|1EHTfSou#OO0&I5Hp8X9$`OMZ&2{zrqKR<>tcIPZU0VI&MCa4HA-7N!Dr|9JUd zTJnE1H2Pl}xK;nirJ}EcB`BK=7^=+5{4ALBwofT8u!o<;uMz+-c9@Z@09CU%Gl7T1@Kurr%Bva;B@~j7| zTNQ_BEeT=b`($arIRq2H!zb_ssub0!KHW*;%kuHwl`UDA3hW-N<1;|1)&7P;T7D;* zfA%ABP63+i?5)HG0O$bVJqhgGFq=kn7pdm`_hedNH4L_wKsy=G&IMIdlenLhU-M@8 z(+-3lEK>ey#KgpB7#N2DG4bD5n|9;B%+pt!Q+gkQChoF;fB^r?hML#4+}xb}@Y>p% znyRLnrk1M4SDaj2{P2>h;vZW3i*_&gps6WMLVJ=(S;4~~nZRIGumqHUv3*Tmw0&J6 zd1U3>bY@bJSCPY|hiBH`))Us!EX zM{p=u*=pE+gZ1#^X6y8eI-xvdO zSug^0XkO`Z&fCa3xgp*7!G1O-z>nyITID^lR-^+(#7=OUA`}JBX?gdZtL-?9g9F>p zB&}DJMH;vlp*ubk7eEy6Err%hvRX74?elOfSpvq<&Y_UUn4t3VM$@TPtD5Fl=eV+~ zb8H{;nrtr<2W-EgZcp*u>YVBGAn?#n(}(6}pUd~7ZFXjRwRIMGV4HlO&04SjghSf$lT|`0i5$k7ioUA5sb(;d|5k!|=+SEgsSTpDEHJyn?Vwpu>rE5t|dBecR%8NILOjW$oSnlFWrZ+j^jRm%h`HN7OYVz3`^Bk&m%a*nF7(P+x68yOVTjcfn29rrI>- zlSOv%82@oR!u9$VH<3Q{J=CnBU_R!17g>u_vyKs@ZF5AD_o+*Kh5cM(Z5xbFN>^JG zMK*1TCp;Okm1(PgtBesX$rrDmvz1opHPJ(??g83bUo!HU;Hyd@H^e5rTfzCfwhfc2anQ2vvfzm@3fd1*RK-pb;4F09LsPE=4Q*R1dQ zFr`Rg;w~PW#aB7gE>5-zZLQQ8Pn=riVc*mcIr#ZoRX1 z0+dTAZfCs5$Jltm#3r!vpU1WB{1}d$nh_a|bKXxxfH71<(u!Emd@GHLg8@;+pAl9C znVp8vllfO4AHhClSa#V=dDVej6iNuY-Q(3`>p)E1`>-?PIKZe;sk zo6{(pc)a{^=fytTG}F+l&Ca2U7BfcE&tQuiaws{?%ANv6*$=EacPo?i*!kC%J782~A8rjhK3t%_x zhmsfok3RNn!9sktB(k5W$3^koVTh3YDk!ih-pAhf`>4$^$wn>i<+HU0t7+-USNDrV z$lgeG?$?X>=Py19Yn88xQm2<2ZE{4L8BW^UMhjV@om_?^KR8$6L#YOhxa6`>f=5x2 zPt!i%-c(Vt3f;Ou>E#SrLXnCz+J5;GzMrJQr8Wr5#AtTFQREi4FU*^-kN; zHBHP?EU~rnPfdHTqm2G(mwR!q^4lDtc`ByL>_o7z5) z-Xn(ukH0;EFZ;dx!}{9iz;E>!nQlolA=wmESxuvUEiB!gCjX&y73(-Y;3_KdS8PcE zX2^=d;Y}b6pK`O4@i((UDlC*X;y7Q|`r@LWoPM2k72|CUrBzv)5oz^vfo2c>=nOe@ z8zoT_7rkJT98~E^m4U3f|XJ3nb3Wouw zZc;ObjIA+B)fL+dn=tkJ5ADkTD&l!Xc?<86laQcKSnP6p8k*uGbne4tsYimZ+j1uD zFJGY9)TmrI`4s%CLcp2ij%u{D<`_EL&4pE(9DGQD3Lkm~t`rq>wQjJFk@xC~YJ8p)NCv{}vSB>dwPI{??;= z!b|()Q#F_RMayP3dPfFcT2lbx`IA=MEh&PM0sWeV)s~rqK{&9tS;3<89qN)O;the` zi@<*3G8Xvo2eCK_-PQfw=Y^|pwe!5HzAMgXZ4n;0-IkKtP%7U3?!U*$-KvsRsm~_S zTya1WCA!B#UN3p*B=)%6bso{E3(%CTd{ODyNVfQCNe;}X*F)%tI`iJgw2=A5yvuu< zO)aHtM{{v<{!!#dVjGB!bJjD&fY0C_-|-Vct3l6t61ik{7*JoIL;G!S*F8%Nou!A7 z&*bcsH*dAPkoma8LNea;AnZZDa@cVUX$Sh%bq+3k?XMJ?l37);0#+Bn;~5fnU)>8r zOx7Pl!Uo9IdxPSX(%-H7eY0>%t%TeQs4xHd+uuXxb}`)V zl&`_#x5w&=RK&cTfq5rt2pJEN+Rqw(vY5Djrl3o8@ABd#GhOG3n^j*MIL>d&HGCx^ zsi59u_sK|++mgepBgMdk|Bs4Y;cjK0GcSci1?}gL1=x^_gV8@B&SZ2P_VPdpS^6QG zcEvHT5plyuX~_dx)|mjudo`t%;k-zQq zUKmE7qdl|{n#T5-7}f%q(ciJ8O;dM&eD&&d#+rD1QndaOJE~(w5BFRUHL5hAA%uC| z;uOk<;(9zWun#1(-t?#1Fo4?F*IXAAs(KucF zmChp~k7|NykXV>idw=-J2J`VQ>lF9 zv%FM2QU)5-mVWvYzMicJ+%d6LTex33KdQ#H5jVwd zCy|y+)Xp=fmHVdR!j@S~aw6_TL2yNsO?IYaRGNinodC%ef1bwQ1+Z_~b2op6d2I6QUL1BnJLbL+)u3p(Oxnxpo304bW6y_m8-^AQK zblD11U@9HwolX!Cy?(pZ*wjlMS#ijo$OBulCNMS?YBUGgp=z%i@>G}Y-m-|2$=cvn z-?-ZMOe&!s5FxNjkcRm-^_~bqMDO}WkC(sW{&5(%V}!$TLVHJ+5-H*+0r<@=Z>N>? z1~xUKei7X$3Lv-Z3k4KLruOi`ffyOKai*I_$R8VVv-Sb|gjs}ld5&zh)!>&)N4esP zG_}I5ZNWvI`8@;A*^wkq%W5Aye>c?U{64^eF0=Kadr6LaD>I+t-ETHRD(LpaWQp^8 z$_+PXID^Ip4=dXrPqc~_91QaXaIld6F@5CrmVRgSs$#X*l}3Oz+&0QDA+uQ+qO_rR zFJi#x_eoimsr8*@cHxJYH@CH!r~sGpV*^OyWIl&^wcCM%2}G)~9w?v-G9u4p+P|H! zNcf@Hb9=jZ@1=&Os;cVk+O4d60N_Jhcr@pFFDHNNVC~iFs^T@<#^Ow+(bScXobego zM^^8qK9a}lglaxF`(*?BBQq@?G>5W$N<5##@)I%wk%iHeFX}u=b zn4zjt-R_^85)|W=As>ZD(~C0IYheaT8isB<01)=AjGJ`7bChrf@l@;9@u8*e%dEhw zj#3GB&Q~+`!Z9~TEC5J-MuYS8@MaP<7)UI+{ucm3hgSU(9hyLRz!3denWmQ*Z5Y}mgCstAh@PSWvtLx-KQ8J z40-jH-km-z*U37nE5;F#u5%srS}GmV z3Ws(XBktSrCDt5Y^>^y|)xAMIy+2L7#!euSa$uZ%q;?XKRvG z{~#l4XLg?ymT8un^v&!;g9!FLzoe;a{y{T+GvU1`RTXyg64p>+NA!wp&Ee4?b-TfY zD>B%F4)vweG4pKuilsE7R3gS%;KG1V)QhT!OFi}~L zO2|ivy$_PIz*?W)Dr3ujt-@rk&&AK5rHS7r^|)fM&xQ4fHCe7b5S={YpyTv4vF?z z7lr@OWmgVZ{`#l48^%lB}N{Mqfl1WfNymAskq zk*F{Na6Q=maepV_uMv%7c}HaR8ku&qZ*yUB5U4@JoYC!P#GVZ1!DalA#*?=sc;J-^ z8{Z*7IjL)7{^e*_?81n%UP1oLiRDY=ZgnISDT|E?^;i{Heq2})|R=}{m5PomQv5ZYO{Nz^@G|VIk+e!WVu}?@EY=pPT+`43>F+h? z`Dz#rGk~_Elmf0)x3RJ|s!^o+i3E)(RsL9-dqPyNF?A>R4Vi!$bUrquIVol;mxs!# z$Z_e<1^Sx1KJhXk3iTb8tb%iNLoFY|f$-yNkrHuQ$nMN z_zoxBDJTbxvGE07%VU{uUj5>Z$e14pyem|%(O`}}{Ox-u>AB7^K_W9+QGGf%_+&S$ z1L62tpW~^UGR_Zx5c_9rgM>_MFnCDSJmwBU(KvKfrZuk0FUhw?mCh zGh-wdO+mdvA0F-}9Q=6c^%j#$0GSjnzPVVbwVo9ySIe|Bvr@^ncnc9!hLWymU8}?6 zB%^hxyq@2wI_A{qEdJ9ry7{|Vvh0-x+U>3Dv_By!Q8{mM_s8y+=}Lnw6S*eKJB0Bo z7O5O3bT@b{x^~Q~px~leF&cDv#xw$wK2JY=o{z-_1zk(Xy%iDEw40|o#eB`?QfXcI zJJNo&Zb7#N|F&?>MBtF4IZk_5OBlWu?dXu)z7pv74fuu(xKq?$D)ITW%7r)`W_{`X85t6TU!DlMoh^2S(V*q$#fRSYDd|_U zVnaGKL+7_Gi?OaXKisudqv#w_At{c21SJT2Rn52c*9&tbtZg~+l??=9if}Ht`i$-F zP*;(W(mB)35-TE42|<3q*ZH{NhEbBJSVzPUxiLoRA6ndd%&O-v_96mcZ(@I6>ER1l zJG?X>c9LGS{$p-Nwp?!fP;Fh^#|4LL2-&}!;kv*t;b@iDT)(&RM1LJODv*CTJNj+x zX8K2azkXNu=Evf($Ad2Lo;ByC#}m}S!hwp4^nTD?zeb`qO}pGr#M9r!Xxrs>YZr*W eL2L%n$1$JA>#AyD&&!4&?Ku(f@JmDn!2bh;U(U1u literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_portal_usual.ogg b/nether/sounds/nether_portal_usual.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cf1f84af1053069107a4a987972846b5cd3dbc40 GIT binary patch literal 19702 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

YA>oX6+Z@3@qGSbgc-29nm zJ!g0sL4zn_oPP>UOPs3(a7Qo(#Ju92ellQTnE*~3(Kiu5=+fnnh%-iw;+s2|nC5WL z(s~cUha){9cTu3LX})=@Ul?^FaGf#h{%F5k?SdQiCYcU*HqGdtgQw#+;o)v$vFP*} z^V##BtQi$jg4W3z=FNDjg1Y@XJh#=3t-P@jGxfgcWw+TnBh5N z=FFK38G3^COWuNGPrmti+U?wpS?4-^Htg`$dLMuBvHP9gMbzUlWFP(UeayNwJ+D3< z-jMWE_h#R++uJ)ntUq<+Rq8;@sp7*8M%HBCDH$*dp3yt%%992Agk1X-zkN5( zo7Z1>W%8dNF3W=c*kQ8p{B+TzzM4zh-W=%t?bZah_qT*Ci<{OwUejHfcQCB@ar^jJ zm2Wp*R^4!07G*OEyf8U2DddLe?DK|st%2_n-UfEbZtLvJN_F+K&EKS~Aq`A^{Mhuc z?&ie7AKfCqO+Wkg#r>DkCxf!CGh-Jn%I%!Gx9>{N3iWO?K>A?uZc@OMYjzw}==vp7 zXZ5_z^2@91r9>y!*ZjWzHjvxNuTSn4*ABEatxeu*HJ+gkw~;?xR`Z%vebIDtQyo|` zI=>_1KzMZ8smtD@zGBVY%a8unK4+|FP5o=<_iN%zfU(|U%vgfA{Y~#bPc$0a9dyEH z4dzAcuXh*t95>p3>4#~9E>jQ9jQQQ`m+}Q20pM~6(>Kdg`E|r|-=PJY9z>1S^!HC* z5nO+K9lzU{EUuy0`VzV6W;Uf;kpJ{8GnsVi+Z&0}wHhjrJUx;aS6=N^ zb*#KgGS}vt$=>*{=V~ADcH~k;`uEob&nthARmZJ8wY76&t8+T*nWw%*^|`&(hK=7j zjG?^tecJL(y7@Br`L3aE$4SF4MY3aFQ_D9{VyH`G#vyU4Huikc5a;09zh3kj_~{ID zQ=gXiH&6et0hX*i!66|bvyDJd(8l*r^$#1S9{=^X-%f4r%mn0_$U1(b;K1mcW#G?S Q1K)fL%jmviU1PyN0ien6{r~^~ literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_remove_leaf.3.ogg b/nether/sounds/nether_remove_leaf.3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c5b79baa3c70d9ec6052889a036f9414b8db8ee7 GIT binary patch literal 4909 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 Ix!xB13($WHN&o-= literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_teleporter.1.ogg b/nether/sounds/nether_teleporter.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..65e480306afc67ea9fb5bad79b5a8484f7a5b06d GIT binary patch literal 9698 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 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_teleporter.2.ogg b/nether/sounds/nether_teleporter.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eaafec9e7d8572296bd5b7eff7fd3a32a75372a4 GIT binary patch literal 10599 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 literal 0 HcmV?d00001 diff --git a/nether/sounds/nether_teleporter.3.ogg b/nether/sounds/nether_teleporter.3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..949dd934c602d4235b0f0dc135a74bf65b1516bf GIT binary patch literal 13627 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 diff --git a/nether/textures/nether_axe_netherrack.png b/nether/textures/nether_axe_netherrack.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9076cfa4747fa87a70f6a2c2d7b35b55584594 GIT binary patch literal 198 zcmV;%06G7OP)01_&-@1XQ;{i@6p%(-@(c9-!0|1k#Iq#44_$nYP88$9g(+bAjgCo4?K&5c2t{_Dz$ zldd_}&*XocyV-v;W(M*#dmGBpSo5f61RzH<03uXNl+kZh`~Uy|07*qoM6N<$fHj5Vjs9;t^`A6DlC!J-Yw276 zXJ;4uuVw1{-^#)Be`aA5X@;0N`2TnF3H$Hl5%J&D!sb7_fZG4CsASR%VPog{55ff{ z4gZ~7z5bh6*pnU}so7;fO^p9dOsz@Roa<-uKhE9kzl@3r`I@~AHcbYVw_ZcvPTW2&ElzP6Rc#iYx|qRPpo$;zY8&Z^JQtI^P?*VC@m)UDRl ztk~DE*VnV$+^pQ(u;AaY-`~#T;=kqOzUAe-<>kQV=F95ozU%6`>*~Yo>%Hym((v!a z?(fg?@yhe_(e?Di_4LsA_}qKkZiN5<00DGTPE!Ct=GbNc002=*L_t(|0d>el5`;h$ z1kswo-Q6ATe?hjtI)dE2#Ak!zeLTr`wI!<@g+GT~El+f{eelS$0A(gegWQwGF*#%- nPRW|9v+W<-Qfw;zvjOr8THFI}TRqX;00000NkvXXu0mjf#+8-g literal 0 HcmV?d00001 diff --git a/nether/textures/nether_bark.png b/nether/textures/nether_bark.png new file mode 100644 index 0000000000000000000000000000000000000000..69e079af06a28ba23924d15613af747554cb5561 GIT binary patch literal 440 zcmV;p0Z0CcP)k`E!F^Ef?$mCNJ@g^zpsBClW8$6F3dRdwNR+ZTGTso%c z1l=&o^4Sh{-PN%R{byHTE@A93ESa5;aMlR<;ig30%O zhhKYLem>dfv|PG+P?1RMF59gN&up9b4-%dh4Zfu@Upg(m-fQ#ue$4sC2Aag16Sr?z z3|1@-+iQ$hZ7xSWJ~U&->j6hMqse1G8@tL57IQRm1~o&xGfmFyWkz0!Q5>RagvK1o z)E2~1y~)e1RZ>TswPW@}7foy3&T-g`NQ?6*vr{mpAG;D;p~G=E;Ki+&J5HW$PiR&T iW1Ga9Bgq@+U-=E_t(tDe&xhv#0000nW)s%3tZT+L-R@v8K!hp^bR1GaX+T{a z9Z^cF_^!kvO;f{I+jhxQRG{5%gSs}&l@Nbsvnmd7&I?`N2=SA<(P+RiO%p{diK@<$ z^O2@OgT~0qbo$)yYnq0-zVD-NDB%SCe!X6=a=|98RuBZ_m9bCH!$YlBLweh`f93hV z=`@KVkWd6q!@WH?ApG9nC-0o2LR$iFSjF}6F*IF5z$l~)$a=k^C=ek}L2!|#U@wJG ztE^`Ie^ef9%O;aa+-jkv(P(svR5EdLa-yh?T>lm43rb;ozFEs)FmfV3*TxC2t@BM+kAABxptzsaAZNBv?!-xR;*{hu{*(ja7gRrTS4y f0Oy>sJ4(L*$aH@h*dS}j00000NkvXXu0mjf8=m!H literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_empty.png b/nether/textures/nether_blood_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d8dda0cad59dacfedbd5f4164f945bd0aafa70 GIT binary patch literal 474 zcmV<00VV#4P)zZoucgJVrHy=bc4b~^SyPI4aENwpsFaMss-fP*y7Se^wx5==o06A< zdwgqTdud^TaA}KrbElGtu$hqR&BEBdvYUs0xuKVEVO)iDZK95b=*z&?yReplc+0V; zgmP+{g?y@(j^@d})48v`rJJ6Lf}xCq+P}24os@ZIUy^-vyQ7)EsGojqX3w>&Yg<+D z)5z}8#%5Pi&9kY|x2=t~KtdEdH;R)(DzlS9IA0vDuPB1A^ycRR;qqO$B{#^b zOwigQH00jK9Trk*uh)vgIUGiwNB7B}lgvIA2uUk=VCY)UYi}0-vRO5n%j#(6&yQsT zLIRq*#mv&Df8*u|@Ux8EjOFy4Zj4g{ufaL#Hn8n)l6bv97@7fVi| Q$N&HU07*qoM6N<$f^xI$mH+?% literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_extracted.png b/nether/textures/nether_blood_extracted.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2ca0ff0eaf6ded0360e4e56bb8dd53d515c9fb GIT binary patch literal 303 zcmV+~0nq-5P)(xOF@B%@VIMn;PyX_1ViMT?|X=^1*bI+HV8H^oqg&vpNE z=Fa`i$WL_@d3^Hj@NU+(+97ZTkqIu)U%&wzt#5;Cnjz{K1SY&eKlrvun`Rv9gHZJ? z&;(sOAP)6_-ee0ltSfrSpcy?$6!A?Fudrf&1SbY3tXpPYz11FvJ22v^jW2g?X)lk) z1tmVX00mGt1Ip^m)n0s90W}WEfE)vMfKXZOduVjX@hi49|qx~YAHtLiEsye`x z`J#9EGy;BO&)nbV^(2jk{Nv_eL?o5?&6h;}r6&;?mEzZ*+|2+0002ovPDHLkV1m9` BfKUJc literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_extractor.png b/nether/textures/nether_blood_extractor.png new file mode 100644 index 0000000000000000000000000000000000000000..49897f6a849095e8406fea656a7c818191ab0f0d GIT binary patch literal 726 zcmV;{0xA88P)m0s>O~5qnSlJh_+Y@CMom*eJq;NO#@kk(8r=Jl(djVp}Rsi z?XLfz^p~{9nLa-596rwd?z!KYdvH1AA1(&`3|1$FNh|+MmOpdcQMY>%2)r#8Uv@fe zj;XqAC+a3CUvLcMsUW3V5&IFx+{~uxm5RKw5*9_P)moF~`1JIInbm+dtw!AC?9C^T z#|ULTUIo^dmxt}P+wD#y5(}x+ek?|L8^GuS2YoA(!XPvEAv^0fn{J7|Q%R~+D)iY&N(c2vj(t@Ai5<-0ODxs%oe!HrtMp8$>aT;hcvz_)aMFNHvcQ@zAWMlMr(82@~)n(y0FUr z=b9i;xwd}hzM|lJJh&ARL%<=&$YOx@R8{@T^Gi!h(P%WE&le^J=MBNs7>^)lrn$JAPPQVV6<}G`2 z%!c2);Iv^2Ad3>vVlfSn??52%4JegLySuwHGc#nRs0$4I2I*Il?(jZ)+5i9m07*qo IM6N<$g6p45VgLXD literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_side.png b/nether/textures/nether_blood_side.png index 468a8dc26fbd27fc18c7db3071bf285eaa78dd53..086b645ffe1ec347cb84623c6e701c82e1a75ee0 100644 GIT binary patch delta 453 zcmV;$0XqJT1l|LXBYy#ZEw%HRg!{{Q3IqY5716wcw zE_Szw6w! v)>0?Z*uY1vr6z_izep--oBtL^{!!im9TCh`4p6D|00000NkvXXu0mjfAnVQw delta 500 zcmVPx#8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kW zXdp*PO;A^X4i^9b0isDnK~y*q1;M>e6j2xe(DU87yGvMHwJ^~_JD8yzAVHaDP1vHX_Vwb=8{0*qV&6 z6`_95^rSV5akS2~%oGt?YfejX9AT1a(f8oCHTO%=NB9w;9*m=-ar8981e-X?v}(!FwRy2H8lbcxi0Jy~%{<(o#IN zwqmQh8+TSK?uv_XOa3)^BIozxoFX?xMYv?+nBP;9w-X8E$H%eB{!x8BPI`Nhk3?`l zkxPpO7p&b_3?j_NdLV%Px;pH2bl}Wp!_Md^B7E4^(t_B?2y&?uHj+skl6yt*HLn-5 z{ryO=Cqe@Qn9?-N4h><@<3Z5nLV$#-%1Sg)bUGTvTs#gz0&Q7@7+u>+xf`~Kcawelh7H4ME#HgmJ z>1AA=wYF9lpj&mX;G$hlrxH>QWKl>b`ntO0ne`dcQH|LQgTWw$lz<|$S-(B$G0hvMqjs+`(!#tDG>BPUK?MZdR6-J_h`T)a0c4 j3*s-3cE8>K@gv>=MPKG}#5l>900000NkvXXu0mjfLcZxZ literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_side_empty.png b/nether/textures/nether_blood_side_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..9df720b51524f0e4ba77040875a1f6f6bdebd17d GIT binary patch literal 401 zcmV;C0dD?@P)-sRSx#wOQEgsQZedn&V_0%yS9E4scW7LBYhHY8UVLp~eQsibabt#d zXoz@gjC*X3eQuF}agu>@n1*(pi+iV&gshl}vYm~yo{qGllC`0cxTBM~qmsO)l)R^x zzp0qQteV8Fn#8W1$FH5rv!Tqjq|LRX(7LJ9x~J2b=FYn5 z(7o!?zU|b&@Yllg*~IqU$oSsL`rypCMMrZ00004WQchC zITpe&3IO~3^p5)I`nwp$? zorlI|`zYH>hpv3v`+zF7!nl2Ay}F@;DTIUS?N zDJv^0EiElCFE24MF*7qWHa0dmI5;{wIy^i)K0ZD`KtMu5LPSJFMn*B_)48K7=hTg+4xpH8qMz zNQ*5kj6Ob(9UYJW0FgdEk^lgc005L79h5#kmH+^k005f+0Gt2-o&o}&005-`0I2`~ zssI402neeH0JZ=CyB!_9006%P1k?Zk)c^q4007?r0ObGxr$VZ-0002)Nklbu*Gc@S=CRi0uQHc|tA@eS;^zG9xjC)q!$=3?9L%mz_ZtkA zn->DDy82?f%PqI{?7aX<7D>~bQ*8nWfvHidEkVAy8J3&q3Mx&d+uvg4Uk);ZL`8Dq tyZ!o)=^SFZ%s2_a*nifs5vH9w_y?gfg|JsKy)6I$002ovPDHLkV1n)~%cuYV literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_stem_empty.png b/nether/textures/nether_blood_stem_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..008d49d3f7d76cd57fe75fac41ebdce4c7e1b9dc GIT binary patch literal 532 zcmV+v0_**WP)21k%V@@ted{7nbf|jeQ{)?k%F|LkzZC! zoQ!{-j)36FwB5(FnTdOwihXTkSnk%q!>^vwy{f92iey_-xTd?Omg&;Hab{aYJ~yY9hvCY#KsqzMsh5g< zZ)ROoXkS*uv7h0fo|ymu0P#sgK~#9!1;L9#f-n>S(93uY*4T1$h>A9JB}NpJutcpa zwf_HyItRc($o2dn#8FJV8wv?^2;;ZmK**s=M;VOSWU7LEHowzFN)iVaOKf<2zkFDk zTq}$rDc3woAFHRJ4u@aT)MZ82bB-`?YJmshJ{ zsn8a(G2?z{cI}|&UDgYr`_#yS9F8BUDTV%o?N{8NWZ&{{!%}y%2Jxe8e7^X>L0d$< z1;E~t%aNUVp;6&qAY-^dFu7 zJ4fsLKBW`@U>SGOavX$ES(dk)vpiocm)nB@uj@bO=M744lLYNx0Xwz zC?Fv@=Rp*ityU{drvN-g$QNQoNbEQ_)}2kXsH&jTF@)#_L9O%%-S2cv03K9TFN&_p z^0d)Vu7IuwS>`wnyq?cxp1+lHP!v09`r0tC@1wi4G zeL}7{zlKm&l{)7T9wh z+rswZ$nf36=G45|$gthaw9~__rI?4Jl!M8-rPRf)_vFdx*T3S>x8KjV<3h{o-)4W8JBli_2AJ#6bnz%dd3g*U)9{p zotNQBd!ZcC@!?0kGzn@0of~<-LadISR_i0NZ#{_UXRyRMzb=K14XZzzR_0r;r`W2N i2~&%p+}jx*UxokGn_sJbJPy(T00001;* zurvge3`0vpN~IygkV}K5#S%JFQc@I$rKP2^VPP-^_O&=B8;E7TZ0tpGOg0?s#UTv# zJlNy*wAcLyJDRb}M^Gq4J?ak8vcP+ z4C9Gmye4|jakWe)NWhg{EaJQEIAz12pSs?+EXW|cp{j3r{xi{;Z5Ko_8H*uiXJ+6G z!hORyab241>?9)*K&eDxTb93a-09+?7z#%9?_f9$+kT+yKV+F80Bv+)=W-W}eI$Al ziQJi*`p-r&mz^vbou}?dUCILz2GB@^ek=Iu2R_g0Wx&!IbU_!n!EZpXupe zn&znLd^DPfMB0oE>UDc{6+HBcJzyK#w}`X6{5uw-Z$x7ZK@iXeWMB;jS`2tWF>pH= z4kw;>4b$uSc`us{$_*X@3cyal?zrw_-ygTz8Bqj&&}?4K&eAi_%cj#oxn@3}Pp4f~ z-N@%N>2z;>{jgMe#aL6AX}r@Vu9*`a+ibaI4i| zh)49u_bGU7ER`B*+GRL=NpzaYocR8Pu@6MYq0pXfqleL85Nz;9yS}pWC7DF`?}(6K r&dmYbQB~~ZifB}=VgPuB0I|-$;^ej8z`o9&00000NkvXXu0mjfsqafO literal 0 HcmV?d00001 diff --git a/nether/textures/nether_blood_top_empty.png b/nether/textures/nether_blood_top_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..815d998a50175f4a6ee7431df57d55f757db6757 GIT binary patch literal 471 zcmV;|0Vw{7P)0(k%XRS zwN`7b{r`vc9sr>ci<6W;J!iRikx-PCQlxIUruiXj85k*%bfP@6s?YQ20NA0dZ6Sza zyhzyqW^_}pd13Xy6zwUzo;*%`esfMmN(uvK2yB)N@5CH}j z=~eCK<1^cWmT>v13Cq9R{n~DkmOpTtmoCvXv)Rs+tyfr9A!=%?^tVORI}f+gxP+qJ zG*zf4g!?%lnM@#q&DC*@;qMa4ar80ak52e-2QoINadB5Ayz%_u{s9%f7uPLEN{0Xd N002ovPDHLkV1jy{>C6BC literal 0 HcmV?d00001 diff --git a/nether/textures/nether_brick_shadow.png b/nether/textures/nether_brick_shadow.png deleted file mode 100644 index 1d4ba10b99f6b1b52af1e47c92fd6d914d7a7a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|>O5T>Lo7}& zon*+>93a5TuI;TYc>WWALheuQ_x0VLizm!z*{;ZanUDK(!0(fRDdFMkg3U_$KeotYr^0E;ahSnp5Tk!A9zi-Az+g pZkVj$VZE~a-=@hIEZ;m~TyQKh>t*Bfr9hW3c)I$ztaD0e0s!^@Oxyqf diff --git a/nether/textures/nether_dirt.png b/nether/textures/nether_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..8eea86e0c96cd0fa03bb001c3d1b2ed1c36b9c46 GIT binary patch literal 673 zcmV;S0$%-zP)2QU007Xt`fm1}aV82G5)|61LLedDpz2#cp`Xy7?o%lfh$e)L?eTgS--UDFKYxGh z#|itSYaLd5^RjGz`2P>5QnR=F7e?jg*wQSIcD%W+ce)}KAgRWoL*3B#qc1tTkn|uS zXP9kZ#Yxg?SfZTsdbY=DApyE;ts>1+9~fK?j~xY&LkbakdL9&KizQ0s?L|GD(|I%` zWVmCp%cf?+Jop$^#34!)K{|OnC0`&UiIj{2H4s9`X@P3cWm*^Cc>mn}D6TM?A(+YawhS>f&L2+$<`Dn& zZoiUHtV%+F0@4~MoSW9@LZT(Yocm>3M)L3BJ3?7IMrzHsLYkAsH4QV0fJlaHoSJsp zYGxy{Q*LnsAvAL&Zy5gL(`)9yx6#Rnk%PlHtsz2`VFBC5MC(64HLF=)-c+N{W?1ou z*ZUCoiY(QH12V&mD2^F!it?Ac-Q#es#kRiWessH1Rto(DX}DrdISwN700000NkvXX Hu0mjf<)=Db literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_normal.png b/nether/textures/nether_dirt_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..5e117c1b62ec80c3647a5a33bd1b5e2b7804b709 GIT binary patch literal 449 zcmV;y0Y3hTP)p(ySjD={+X$b>T>5GdMK4Bko}y6H z&@NG|OAP&oNO|kmt-gFx4VenHc&eOQnyFV`U3S+JP5q?Lm#ev(lIp2Vkz&ZIee~}X zaa)H-b$eUOO{U*fHt(1T8dzm+ngIu;p`%hhBxM@XA(e*;1b{-GqQktyJu1%Uz^d&bNS@cC6wrZZ{rVXu& zmpy0}*HkatkX@eY7JBt>m|>q9+fs*FWtw3&^~?5^tGl{dmimu+QpA#}Kl&x`7|ULb z;a=sKa;mG+)J`>uI+S6%<+8fg^lF9pWrl0h%dR0j^pNQ)gx5u?FM0SGw(i?)?rIhf rGvp$b$&$@c)W?|a%jed*3#b19l-Kelzv?!o00000NkvXXu0mjfWI5eo literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_top.png b/nether/textures/nether_dirt_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb0fbafe4dcacf150b4121454de159897ec35b9 GIT binary patch literal 699 zcmV;s0!00ZP)_R_MT_C2p@`tCRo2Y}veHW70z zq~L6yhljiZdGYJZ76TIcOiGi!PPD5Xh?vCr_2J^hnp!kC5Ad_M4=hOcSw$qUEo#RU zGOH`bI%{|uTz}7pc1SkC^}m8fwA=NBaz0I?8&NbMM08*DUDZ3x-5<*C=4d+>qx^WB z?xnGWh9ZQL^T74P@Fb{}#G~{A9M*a*M=@K_qoV^S)^n7)17`oZ(CzsI?KDB#YQ?OJRU2>mxNhI^(7h*|!>d zR=98`0^?<KVf2!m>VwQz58}nikiU?tZo@Qz-Q=dRw zi@^?<1<5{ZdCc!AQkm&^c{pgfxW-q%Z}IxsYPF650zgO<*?hvqzK=ZC*Q&W2YBe)s h+MN(ZH!4#U-G7AUYqhwqLdXCB002ovPDHLkV1iReJg5Kw literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_top_normal.png b/nether/textures/nether_dirt_top_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..885f03d544b51c3e4b322e08677565ec5a610d90 GIT binary patch literal 481 zcmV<70UrK|P)BW}Bd-C^BNHQCe9D!B{P>S$fvBJ-T-ibzm;b~PNn1s(jCtA`$)yau|a&_((wKAJd<~zPBDg1D^}jbz;AR$8z$Tx zy?MZ~Fy6F-@kO4@6?V)TVpJ!U<0gPW1#{|)ccZSXom+SZlBh0tr5k;RiDKkRnaM;> zmYZ1EolHu=FEj;*y|NUxffr0TmDeC=HjslXsIV-o6%_>~jPKuMvKZm`pv}~kvqB>l zsxbxr!SWyr4Xn~1_?vFb6Pk>Z$%(;f92a&_8de5&QXZ6@k6@i2Gu_z_%+UlVHP7Vh zMjg8i3yRTiv@w4XC;J=wWLZTkE@;p!r_J literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_top_side.png b/nether/textures/nether_dirt_top_side.png new file mode 100644 index 0000000000000000000000000000000000000000..577367af93032ab587a9963f29f43da001a85d0d GIT binary patch literal 807 zcmV+?1K9kDP)w@z_or;-*Px38Dyj0UN}IUjQo*8&>=!mI$eT03p#z6;M@GRS6*_ zZIzOg(j?BqbrQ$P*dF`Nc;?Q7jgeR!>FDUZwC}$EqG&W75@itNpyvr^f1Ts3RB+1% z(Mf=mkXOO=OzMpV&i49vOAh`pM5J0ld83BkA4C6&!|fhA2DPe%QaP=5lg!OkjFi45-#D4i0-H z<(%+RVwko~lFV@HCL$6DBO|;Dk>e1@a=G?L$g?43r-WtN42KCTtp-ZVF@-=hH$2>G zjoPwDkSg?;%&>Nv4WH=Nh5G&H56$<=~VBf?W9RE#5N3~k2UoyGcjJTQmbGA1hSLd|rjx}n@>-tmJUsZ3oXhn)t3=o`E7qUPxA-BmJW>NFih>W>Zi??ry07=pgUHtpB~-Kv*MmnHpcI_SH7N3A`x6q zikA-$|EAz4;2y9ofR|~UJ&C%(SSjco59s`PvYp1+BcQXmRvoOg>tsby96mpL1N;o! z2VMb30+<3vz1LSyvRRs+zv#;-NPY$OfM{{8R`FJ=g_7yhsUO`1egXCY2`CK^Koj^1 z_!c+@egL+B6xam51iHX8;4KgVIe<1t8MqC60$cz)fDaUaGarz^7)a(i{}nKQVF48& l2EzGzG56?mp8r1#@Gt#$cDr<0#f1O>002ovPDHLkV1i0Wdj|jj literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_top_side_normal.png b/nether/textures/nether_dirt_top_side_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa7c9ab275c7135a155db7d69e01e7f10394e51 GIT binary patch literal 669 zcmV;O0%HA%P)7JgUbtWMfVQ$1r5<%ulgsftOfVh!Bz>uZ75u>1xghV97Nto{G z&-3xVE_znhuArWJ{tr~e7hmNPE#nguCKLJ%>w%MsYRjRaMGod;Ea@7mj?~rE6J{go zMBlUQNN7joDNRdEj?1?L`-V}Wt4L{}Oz8F;I@%lRn#qi5W_L=Sb6VJB(!i*qkKY07nwztrmUtM3e}`oeh9k}iz$l(hcU*?rYuIqXqvT&svB%pH%@xl zot#YP?79#QXLs|9O&7WQC+^Ru^d0>PX;OyfI=wwa^ws`-`X(u#pVe`%WVRh+e6q-I zw)=Q+b#Si<_XBm|yvg~{$8W1`JXKdKiKho%?)JmKlN`VMxBB=6e`9xf85yeM4_eCcqpMiq-7Ve$#dUh) zIz75|T%x_ajN-P^ZPVg4p5P~3Bj37g@D?BbFNXgB+HpO~wog~T00000NkvXXu0mjf Dw3bn7 literal 0 HcmV?d00001 diff --git a/nether/textures/nether_dirt_transition.png b/nether/textures/nether_dirt_transition.png new file mode 100644 index 0000000000000000000000000000000000000000..9937ff36c7df1fb888cdfb03221db47a8468ce5b GIT binary patch literal 670 zcmV;P0%84$P)+b(*G9-&w6x^?8nkrHd*OpFA2k$xZg^N-(B zH;h1BgsQF}cmwZ$D&Y3!;Q4TYqT=vr_W)WYxE^o7QVvHm!28DW`G?Zz&=<7h4q zr>0?m-UMPD!kGOy_ZuZR%!Xp65?*g=)wgkJ2OVfg=)C3msY$x2xxCY_?%fjnf(1I` z$Xbk;7#(TH=%x(gnA1GZIjceS1*MeH%P>Fx{_BUYoC(s7j$%IDONMJ$(07N7CyEyW zMZg5>)uwPmi`Fk+zW0M&_Jw2_{jjZ1|2ExUI@pU)a=l{mX(D!I5-i5MamC0IVpirH z?Sl!^WX%^BmY->gouHJE&mZ@@)2(Zt@)b_nvzRSBDhuX@+R1Yw0`d z{a_sdAolK|j6N763lRv3Hr$Z&nN1P-wBOV*nFtmPrG5P;FIy1IMDb^;C%BqZRdEI1+ufQU#K5~Mi9&P@MRvEUlK^^?z^%w<4PAb|yl z1}_S%0!Kg{E*$_&p~}CX_22!f9i0Yy1YZKa%=B4!mKAeBEs@-jIGDtkV*@t0W@>DK zn<1Pgcqc2@Tjg>j9*S}|0*@JzBwh`HQ3<^glCj%1Mj!MzlzZS{!b23^B;|Tt87AB# z9D^}y;b_8n6wDIaxaZ283$LVDDqq9Q?bgv?M0ef_Tm|803pDRss6%&_7^oMKy+{6( z!FyA3+&YJF!I$#P?K)K6sFo(j(Fn^JMJDh97<9G&MwwDqH5| z#7_(#fzlUlQX+>6v3KswdEO0NXP$cHK;vpU22IwIy5!T9lQ%VNB8W|Or$m8KllqoI3El6 SFC4!B0000iS6Hbtkh*6S`Qjsk+lxQ^(o@d9iGM3?88^fn* z44I1-oCli1SQ6wH%;50sMjDXg?&;zf!Xe9gu$}Rc0S|*gYp6^?8~2}jEg^=0>@?OR zGn2nx3=GUp%dxOKfBY@OTj}rK%x}Nf#Y(?9u~Uny_KWQ&o{m#HyX+_bWBRppwI|32 N44$rjF6*2UngB=-L5ctX literal 0 HcmV?d00001 diff --git a/nether/textures/nether_forest_planks.png b/nether/textures/nether_forest_planks.png new file mode 100644 index 0000000000000000000000000000000000000000..20010029d97f68e1cbfe8691f8f2c97af5f1b6e0 GIT binary patch literal 488 zcmVP)~=dUINSb7OvV zUxayNihE^HfNP6{Vv&bwmxgMWiEf&SW|@m{n~QFijcJ#ScbkoK zm5+j-k8Ycfe4CGemym**kba+#aGsKBr;l)+l7OX^ccYhko|uH8nS8C5ccPetq?&%H znSQ66ai^MyrksVQoQs-lyxqKdGijIgALu%nW+ri8Jk zl(46fx22P^r;xX(gR-iRwyTW2t$DVro4l@ryswbMv!BAbrpLRh$i17)yr#;%snNu= z(8agf$*}F*$V!RmdH?_b0d!JMQvg8b*k%9#0EJ0JK~#7FW55c0?NIrKW^$s)d?6)y z1sP)m-$<65Q&d&V0WP4UC(OdG?5+|D7csTb7c@3-Q1^g~NNOo+`bAiVM#4qRZJAu6 z!oxhB;UeB9JZ`~(76Gnskq~<}4#yxL0YQq26~$PTvF7U4qm elD`*Lp928rMiAW$M;{mf0000yk%fK8RCCc4t3q@zjGG;N&N&wkGzkKYe|{l(o*xMUD`(C;(DaJVy_oM2)Q!*Q58 zn+TsfaaJ*EK#VcA@Hh89esAY?)2ei(YJlE<_x7{BK~ccB-`X%KUJh+PXo)1H%;XJn z<&_YB`r%H)WR~4X)7UZH;b^%1X24lKy$}W=4!0|*d~W$mQIk^*6 zcF3|4N{Kf&Zi(cAb4QlNe@L_~2T?kj&wvK#B0l}&Y5&oar-Y$g3-0mf`@P;_FHhAt zj(`4r;CR$>8wP^9ut06XFF*Tak!67wOlR>*ClDfEh!j8+xZGkalTu{DFfEzJJP7Kd zgumYZZhC&%?g@WTC@_iu3f)AO)>z{XtFq;&H+JbCJR}GO%Lz9vy&^QRx<#ZEa@VZi4a>iZmvel z2okSh(H@chM5JLF!YQK_u$+n8Aoe|f-|R%Q9){Rg=$ zb0Og8cRyf^Nm+QV6{p&F=qyPHCXQ`Zpo$lTMIdD~%_K!gBTYWKvt4VjcQ{^ayGxz$ z<>^taTaM+gwxVadyHVRNt1^l_Ku<4^F-8Wyv;CToqUm`RGJAg?Hp4Cil>07ob=2D2 zx^ZQmF1leb=nY@r>aMJ{h~4TIl`iTrrQnTQH;+c+qNvoE)=~}6#^y^C!};+9G+P}= zU#(Sw!lmeHxAX9E|KQ-f(1mT-5E+ktdmd@4x-( z_~bP390TilnloxtRpGkcWgHWoNQo=00Yo*Tb*URR2 literal 0 HcmV?d00001 diff --git a/nether/textures/nether_forest_wood_normal.png b/nether/textures/nether_forest_wood_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..521289445b9f19767eebb2492bc083c8279f0b9a GIT binary patch literal 550 zcmV+>0@?kEP)3d3?Lm@f|0)s(D7Z;>Tx*srsD#9WY^&9+?vHcy_g~ExJN7cqGty7yK9n8y zpo_GX=5ZYrFjQ~}Be1P)D7GvXb{emBdfD9LgjELU5|+pd#R$=>UYKY3h4aE|PkFm9 zFXoZ=LX51D^@U*Qpd*|kbz^Bj-_-{C2l;okC(3wFf22I9fx)AW0%7>AS{D&|$cSB+%!W-HkFMHpVg=;It zuz)+zoe6=P=ekp$tZS@0Vn&YlSwPFuzEovAZyuOgm>ty6GMJk(#A7B>H}*^`8g7N2q*^TymP zdP@(*5BZr;M=o6}SzjIP4^ByEv!9b5gZ+}_v#KYrDqBlKTR#*wk)MOo4}I>i&XQwp o@;A;=*Hq)$07*qoM6N<$g3i4GqyPW_ literal 0 HcmV?d00001 diff --git a/nether/textures/nether_fruit.png b/nether/textures/nether_fruit.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb46af684f6af362ffc5efc39c8d6d235267b65 GIT binary patch literal 244 zcmVLBkjE}; zEWV%q@aVt2Hn4FbwkxsI$Z3wv#-q7iYvk*-9Bi;hY%&00001KRAHKGL{7S1v5B2y8$$p!OYXeF{FYqS%I;@qoe5XjYn^CoRV|` z`WQ9~tmlxQqI}}KhSDkKryGhs7JdA5*u;>tyJ%8^JVRS1;|3}JI1``=44$rjF6*2U FngAUqJaGU3 literal 0 HcmV?d00001 diff --git a/nether/textures/nether_fruit_leaf.png b/nether/textures/nether_fruit_leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..784c2f79d3079e0ac387d86d84ee198ee71c7357 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf#8Pu{E4AU8m(i!wK7z{EP)Up}Wau_sn7}RnZ^nvU=27MqqpFt;|L9LKM zyMRF-$S7jaEnrY9VNfe$P^)6lsAABoWY7hYRSde-40_cJx-|@XH4JL?3`SiHhTRMX zy$t&O40;n8bfz*G&Sfx|$6zp@L4N@QW6cV2pz|0@g8YIR9G=}s19F-?T^vIsBwG)@ z^INv9(p#&ee&6|jwbRS(QGfB5`K<{LCEtCkh~N<0GCQB|y3+nTU4Lrs z_Yxnf&ss!pa8Crc7B8$sJlV vl!ER{FF0{RhC9EjplE@<`pK8=!7o{FUgG^JuW51;=o$u3S3j3^P67;DfvEXz2S*)001;Zj8GB71Hj@?L>o~}5j`r(u9FL#mO z-hM9WLPIToQP$jvlhveoarudp_C?YgKfczP#97s|Fi4C12S>|M9GRp^*-9yy?_77q zD+e=@ajUFF%~ku9)7I*dophF*)s6B&`;Ta~M=`j)lP==GEGEOG%5{Y3q*#d)7iGgm z^{9O?-H4<7AK$$FSZ?m+2t^Z8cM>~ntwN3q%gjdCyM!3mk&#tIY_A^QOPH< zGVRsh*oa;}DQlAcd+pz1YxB8ISMr~xTN>7)D0|+R32NO_HCM`xLEl8K8_k1taXred zoHZBIV4>Nm8uQ1c-AI!>Shh>9m}>o1^%t{YZy8nSlv?!4S^8{zudZ~Jq?SgumK*hj zTg|_@glZILX%_G4xwU>#y-LfIc!n62Bd;RMXLV=X^R@OWzT=B&@%A9i8<9n?ekW?V zsBTLfRgW<2=0qN(hDEHTxe+aEtKV8#%;vSoh669^A|~m^=BxUKS(2rJP@2(3w@6!E zuiP`KuC&a`oia(!lAUg(R}MUzPlk&rG0O*KN2{Bf;a*It!T%K$?8}C~sYn0-002ov JPDHLkV1kBJ0N4Nk literal 0 HcmV?d00001 diff --git a/nether/textures/nether_fruit_no_leaf.png b/nether/textures/nether_fruit_no_leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..19d6c998c639227d9dd04d71e9f5ccf58e414963 GIT binary patch literal 529 zcmV+s0`C2ZP);KJYFPQ;(#&v5PDt^NW*)QyVZM{O&m z=EF>ynR|1OizHP{-1V-`g>#E&pXY9@+yojx0kpQZb)|BeHWbhR^m+q*@u;i^4+Gu5Q`P6!ntB7&APQ)` z-qa-rgMJSKTmc?jZLzrr>xU(h9@q~@+}o&gky%}@cXT2wi=erlYIoS@@y;2}6=VF! zVn-krtU?w=yjS6wE7&hr7#?Q=5H0}aB&O|Pr;}4YuzcQykq1Aw8QCcn6OaI5cvAKU zAOa?Z(uE22jfl6qmcdvkP!uphzz-k;yy`Ll0b&RnAd!-VFaRci0~F;@VGMZn%K%ko z(-!a|A%lP1pKYL>K z#HtDekzF1+(VRa?7BRULEH*|1s+~|G4q_EqoXhMQKLo*xW_5(U!bATo=c)I$z JtaD0e0ssyZJN5to literal 0 HcmV?d00001 diff --git a/nether/textures/nether_glowflower.png b/nether/textures/nether_glowflower.png new file mode 100644 index 0000000000000000000000000000000000000000..5784ce5120143963f82017b0ed466a8daf40ed16 GIT binary patch literal 516 zcmV+f0{i`mP)B<)-So^gJ6n@#XO;=8l}zVoGb$aHs0sZzxh<=?9abGMIZCkeBSh>whx*TT^Ib`QJ{_1ON*>xRXG|!*EoJb;tD4{u^v$gdlP44$N_G;_yZtEPvZXl{GE<_nz z2M1AF=4lDeBKK)!Gxarj#J_0lQE_*lKvaqxOW+;stxT{j8>GEI&HlK7k_&B2;=39m zqGn09J!K@gK=hQ(_A5d260Z@aYh)5FyiBHJnNa^I-du+{!H%g;y5bi|`k!%Az+~Mw zPVZYH8XrS3I{z=(c_Tu2C{1M8AQ5?i>R;qQ@-l%~f~JW*2s6w)Ji?h~vk#7P_Fm80Tv$BMtH literal 0 HcmV?d00001 diff --git a/nether/textures/nether_grass.png b/nether/textures/nether_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..2e11a1f9b1de1ab82ee06844d831464d2c652b0c GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^`0({Ar-gYUi9WV6d>So@s-#9 zwMY2#TmzK)RqBMy7j*3SSM=bHW25nVCcdjC|7!c4Io!F*eqZ^t^;5$f4IkIH$!{40 zHS>Zc9x%S$E1I=prQU~_6=y{z&=xUpC(UqH`QqBs25RHxP(!7naH7@9kY iH%a?HHU58nFXO)y?e2fow%S0aFnGH9xvX$gP_YMo84ri2E2LjEO>}H1RuK`7|AA!A<=x$u+vL* z)%0M45rtC-e}#>S#Q_8ChVpv|hr)v5HHB?7Ce$4xp4qD5LldVabnxd)$X&REY_a~o zf>?UnSRkG^9lSK*&g3s9{Di$h-dW%(#Z#s*Oy9N)TL#RbP*P#gIYTwX)$QyA?b#?Q1fkb3c?%pExZ0000LsV{p1<2a6;1m)zcFGKRh!T=!!7X4Vh5w{l7KG?*D{Z zKk{6#ZeHR4u42dk6b0gxI^X|YC2r&y(p&EJKg3e%e@C$^c?MKxSp7e>wdVi!d5Qn0 zH3gGqNNJ+c|7Gog|0maY{4b0)`(K@AMY=1NPe}ORoKHa@&hH5O-%;-IpXSLO07za+ UJsJ}YIRF3v07*qoM6N<$f*`|Wng9R* literal 0 HcmV?d00001 diff --git a/nether/textures/nether_grass_middle.png b/nether/textures/nether_grass_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c82faac890981c6da9fc6cee7a7585e25a4bfb GIT binary patch literal 232 zcmVP)$|emfb6d52nhSkSELyvOVd)!t5IY>;Aa32pNzCvI^rmWQQ~x%UT}; i-jT_MIMlcc`N0>}AVU*w-df540000l2O>s>2xi6zW`;-xhDb){CmdKI;Vst0OJQK4*&oF literal 0 HcmV?d00001 diff --git a/nether/textures/nether_hotbed.png b/nether/textures/nether_hotbed.png new file mode 100644 index 0000000000000000000000000000000000000000..96b906349cc85246d090b2c8e2b70190c7e03749 GIT binary patch literal 280 zcmV+z0q6dSP)a%8Gi!+001a04^sdD0Kia8R7LKjdPitDL2NEUY%W1=Fh*`LL~t-h zaxz16F-3DROmZ?qb}~bDG(~nYM|Ltwb}~kKG)Q_hMtwC$eKkpaHAa6mM}ap&zWv@#rrMGJU0004WQchC|5u&Exjk^D3m|_)1_vu}(gGavlF;|oiJ!m&7*#+L;Omf<3=bP6Y7gf@t_$j9~!19ab)C9O`76uub?JS4O?Y(lJ(f7v~v?-w= zeU8U~GnhaHFO>_ z%)r1c48n{Iv*t(u1=&kHeO=k_um~`yC~h<;3kC}9_jGX#u{hm3IgszL0*`ZX!`Icf z?uV?E-+MUE=hkm(xj%TH^sPCJ@8!Q^UHnB(V$hr9)edVELioiDw2!c+mj`3yZ1CDsTmLJUzHQYRN zz)55f0uOvJ;UJX>gTe~DWM4f_*QfG diff --git a/nether/textures/nether_netherrack.png b/nether/textures/nether_netherrack.png index 91372f231c00038ac6b3ab5e69da68d911df71fa..e30280cd5ae66cdaefcf973a7f71f6bf15041716 100644 GIT binary patch delta 589 zcmV-T0!&Q6U{63=1I*3v@3kLKzlR1^^BP1cLL`A)B^dw!0PsmfK~xwS1;K|xgD?~Y&>I_huSP)VP-=_=jap3w z+;!AlTle1U|9`@B05MRKgC22tNXcOZ_yGmsNW^hasejh$qhs*>q%mI7iJBlX<;f{b z&oHI4bFrOYShUThWjKynE1AwRnR8)-RUoVL+WLl4n_GgBoLzrf{Ha*cj+ z6Oy@QCPp83x`?Ee_g+OO>f!MTj&-m0Z0rkO!Ef&$aL#-dU9B~VI4Rfx`1<}4M5ay> bzklu@-c=r^LmB?n00000NkvXXu0mjf1s=Dh delta 646 zcmV;10(t%01e67k8Gix*005AYXf^-<00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlK=n!32;bRa{vGmbN~PnbOGLGA9w%&00(qQO+^RX1Q7)s6*+91lK=n$6iGxuR4C6q zlHF<(Q51!@nVC2x&EJ^D$^4|5&`BpV(;1zh_CnAmMa4oJv47}AL5)I$-Y8lGMS3H6 zCEn<@;2Zb?zJU+rH#s6~4(FV`*IsL{bL4wAdRy!~Nuyg{@3!yw=EadF*E(&_tnTXa zAn=3r8uvlH#)e`!%j0RUO9kt3RT_r=$q=erhR)4>Ln2KUdGC1GAFP>Svt9y-b3;B~ zjnAedcuwMNj(_y~6*@E`4mUm6PQoB+tjpoRo32`t$Xbo%#M^gm+Aj^c-m#{>^Cgei zpBCARJPGSHd7Z~pBO`3o-%PSamcYPDAibkk$j%J`gTm)m9AOS}NF=cshmWGIk41_e z;_JciVc>I5&3Tc&pM{0hDh)v&8YWhAnT&o18&nWjhksqDCoHYPkxDS4#_ClKWgnx@ z`Ysy+8DLPKUuy4fdX&A&#-a?R0qCw)!AIs{dP4a_D9542V!6?2Baxuf)15I1s1z*> zSb_(%fRLtON|ofex;yXzU;&6Ptyo0 zC27z8XMY1nVDd8EhIGD?t_Ee@wYxAd&;M8dkqkc+X~Ne~4@Uxa{>(w&r7JLR%`E@r zUdT$p%(?7p7am7p2_PuSIu<;P0ayhZ7?dZ1WWM@7REo0brehy%1%IBI>VcGco}Ud0 gDfk%&cU&95Uynb1+-JJt!T_}jKCj;F+vys#sqc!;JBVBN``4|@~x)p=>B*?a$H|gHOKMlrUOqm zj4Y6>GuQQ=d0CeGs{laT?=P46dc7fzJB-u&_0|u2mT^A69mdm=T~-xaEDQr00=Rwu z#Dsi({o#3jNkAM%K@g1NNl_G@7gS9*Esv$%KET4N9EUG&Ga&?%M-4n+Oz$mO3y!R4 zM8g=i7ex8t#FDI*bz4;}GHvG(;9#O*`{Qwn{Ngws)4XA#)jQL)0TkP^ENfAcX|zT~Q96!mTDId+h)u7Tt{eLOk=>P$yCj0= zuK+Yn%Vvs_+O|F1xY@Pqb;e=5Kd_4e-9<{vvOvRPTl+pcD1!a^VPHyQ0&{HJ1sa;B ze|-M@@$0t&>$+aLDaYxXtZ1wTI6Ua#1sH|}_UVt4^z}T?*N>`cp%D^g7Vv{;39Gt^ zFk>&vnk@gT8Bf!FGLd8jMbR2)xt^bwI~JQR?86{VR@rxi^MQqLH^1MC`X$TDzZD}g U39DSa^8f$<07*qoM6N<$f-PGP%>V!Z literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_black_normal.png b/nether/textures/nether_netherrack_black_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..aebf5fe00f2cca66ba9c4b44a24a287a3dd9a752 GIT binary patch literal 490 zcmV*tfD}k`y?T}excT-O;heSN6;w>c3gl;B7|9-b&37gQwkPGg_ z3f)k_2{%%Anx|CEqnl(*j%7lQp#+*?9W4YgirCpYYax3|rVE#t3bxWVhURD)7m;TZ zYN(;gvXTp1Cx6hJ)JZEPGi-&Ph>6-+#gd65`%D!|d=hVQI<^T{NP$6y5=9gtV;p}= zcBejx55=9ixxDg6pQAF|#YoKHnW1R>>6JL>pL@dbT g#nUJs`h+?D1MtcGD9k!nivR!s07*qoM6N<$g6(b67XSbN literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_blue.png b/nether/textures/nether_netherrack_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..03f4bf5c6b646d14290c2f16480bb646a3e3ef76 GIT binary patch literal 831 zcmV-F1Hk-=P)Qo##Af-{sh27k9EVO{6vqh+!xZ&~e4(1; z<)|85a#bspnw6261Lk6DZp zx=eC-zKMmjw2bKDy2~3h+xoiPLxBmlQO}@xP*qf=Yi@I^G>pSJ0zRI6i@c1vJ$?wu zf#Gnk_xbwvF_$Mmvui4~Z0t%Quy%R3bDmma+=z%K9!qTctub99jrZt>Ta)sj6dNC-V!6^9o84YfHNWEv4F6S<7%J z0YPPf;_~Xwfn@*0yY8oxW}BB*Fewxdy@G%$o4Vu4jln>;KNwSM4Bnwx)B_OXyyD7Q z^JKloWOMq9Bzj141MD8j&&|lbjnZR~1QgzJ7Ib8&g~`Ri4k)-*a5{}1(L*IC@%A36X4002ov JPDHLkV1i7bj0gY# literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_blue_normal.png b/nether/textures/nether_netherrack_blue_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6a573cabbac60273d74c33111540bd855a1c96 GIT binary patch literal 693 zcmV;m0!safP)U}LVPO(>*EMw+)i&JP<^O|Z}2pSqTk zMp!L)k#iz2_mO)T+>$#*Bycz6AVuiG^^h5S=9T9!zm+29hY<+@yUTNpdpdi!^i7kx zi{W{h&R|(E1TqKHJ9b|y#m$jU5GJq!EGHZ`xu0R@ai>dGfFEWxx~KvVW)GstO93Sl z*gTbv1?!RY5zIb{h;4zv7ZQ*3B_R=G=EKl!D!P0?!0+<~~Ip@TTb z{-(?=7|&IwDQyk5hM@%|EoeRF!~SHC&=6#tm&HcD>`v#svb~^J_0(K1A}U zmP+&_X9d|ix^Sz%lHX7D(|@b~|JF~gj&&hhTUlI|+MyckXmFGl^>@V+n3{-dva8aE z!!P&e+w;|XXu^B0@*#HuHhru#c6Z!Lxc={(VhgnIsdFRuYPE6r`k%LO#Sbw#F?s_1 z&s7v-(&o%Z+F|ddQo3VqM=Vk#3r*kE9+I))WX)O5qRsOje-orknl%1O zW`wbYNW<3SmO-w82Z#I#!W`ZlSC1zx=i{oH*Q9d1uaXvDN3w5V9dj|}VGm-xm?%fYg~SvkaDzT zARtTxYrYFO>9DV3*`>=y`Pr}LCVp(oLY3Y@4)(HHuaw9^R+F10C2ekKq%|o@AY!aK zWPF#?2gGFM{ b^L>avUQ7A7y!JJO00000NkvXXu0mjfF`-5! literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_brick.png b/nether/textures/nether_netherrack_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..b9199b7d45397808f11de25842a0402d0095abab GIT binary patch literal 682 zcmV;b0#*HqP)p#dNSEV$TG}AKq`|ENHP!*M39h>n9amQS!4;DfC>tQ#^6CYn8FKOlqxMf zc+!I>5B@)2y2|C%H($Tk{l4k0??EGf`{dSCd#S!%EH>}elB(QivtIW1{Aw(I*<8D5 zthDaeP8aGM`P^=5=D1RVfWYTv@h&9^j_l|?S*KMp8bku`>*azX-t>3l=>wkl1@k*f z2CM>Hv)g`#r0d=;L?x(b0EB@IH zL1MtjFs}Q7!oQdV`1ZH30F1I^g0YqH902)GfIW)Q6L;Nk4dCq42}j~tJW?CQfSX2YP{H7$A(hrFRV z8rzCR+q@xR;g5#HP82kAnJIrax{>cwH)De}N_?F0Dz1f1L~}aaoC!@d)-6R0;Eg;m86{a01n!k`{gFuK zi4-Zpqc@cF+ih2(^Z8InMk|hD5xi&K-Z7x$={Pn{pvKH;cL^Js85#2sb15tOpk{;$ zt1&cYdGZf8P`7>2*kKDOhZxNeiQahs;4B&4DfEtL>Zv6nl@(5+&iTmVAc4_gr|g|!G+7*L5& z03p&Jr;1ZIu}_Ze_>ZAdg~R|%Jkzth!~5X&gNKSNCUHC*4g^8m+k0hM#{kf5Hf2Rk z;y6j-38Uz_148(+IZIx?c&=$$7zUCkNjcfFju)32KfbpWRo&lzcSF23IL4xVGy{UJL*~hP^~Tka(%l8hT=6(2u zot;Ow?`$91pvo!07dEz>$PhL zzoBRbj~E0riX!+A;NvGx4?7)>C?ZMOh-O(AKCf$swVAU8Kx34>&J_gOGb*vKQF zTb~YE?a-%DG>+ql2;y?1aqjvjhu^MTt@V4h=e;hLrYU8vJKzPG==wxFW*+r;BAq+V z>e{+(_mK#W;|zu$(j*ZCf%&1&==}V`(NTx5RH^`wW|^*QvaEdh+Af=B>)_+`%q(Lp z%hG&4&mkr$Hx9!n8pGDs_VtyO%S(v-h22=axwd`_063m#dci1E01$u!Rn`7jMvxRS lm)DJ{zi-L?dwyQJke}F|(%Cme?e72p002ovPDHLkV1h*V|6l+B literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_brick_blue.png b/nether/textures/nether_netherrack_brick_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..9db6250e9785f4012632000b68a314585a75b868 GIT binary patch literal 726 zcmV;{0xA88P)!RUA<&dIl#f^%4k2Sk(Fo!I!@+Pe3=C*O<{?fEQ$v_8(`1AQ*a_NM*7`6^^epUYN{0Nz!HuYwR~qP0c_auw$8A$%%&4 zYJwm%tR3-AH_Hjg<$e3%GpV7&u|f}{tJPOa7xhE6cgCdq-z5m6vw^-zi!P$morL5L=P; z+wKd%YUAC23h$g=v^yWa{`!4+bz7;#zxN{kfCafHaB#H=0p1`Oi$(&t)we$}Pfk)xtaE7Aj>SAkUeN*Xs{do)2 zcHRj%Xc1_dp|v{Rf#4d77DVwO;N9Gnp?iIPSPBB~Zcr^$*fc%h{*4}os=5SuM&#fWaCjzv0d$^`?+?!>RR91007*qo IM6N<$g1=K-@&Et; literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_normal.png b/nether/textures/nether_netherrack_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2eafd2d8aada266afaed7872d94805746bf349 GIT binary patch literal 533 zcmV+w0_y#VP)mo7=TfK?k1aNXBxRu^LJ2fyE-37!X6& zJOj_W4@aa4k`P6m*;d@dv9WsWlaf#y%JUYg!ru&%sR@@*krv2LeBcbIl`V2v?1R1F zEdIqI3`IC@oUq-fh+X*z!C)rb$&`tSn9!Chan20)LYZ+2otPK)9a->>oVXvoILsGj zX7gyv>KIa^daeWKm?PHG-rQIJ%XMA&M|HjM%y`8+avO&IO+Ijq(KBW)!}rmj1~HTm zOQVf_y;u*no0nn``JF8L13mJ*yWBL5Y=k$(vItfv8h^4T)OR18Fi%Xs`q!&}49goS zq==6g!H&d8vXnrYk(*(%Op#bgjW%)$a&>l6lm=6u!=Wj12$UeruiyC6r8an1%h#Ay|)laV!*vb&MKi8A7Fbl4biM zCPWZVsl>!IVHetr62_G~bL|YbCpx0VC)7?_iI!t!o_Kg<_xG{+1bkxXC)6I|n|8xDU*oxUnhIle9C`Eg*uV~>9 X(9HYPUph2700000NkvXXu0mjfpP%-o literal 0 HcmV?d00001 diff --git a/nether/textures/nether_netherrack_soil.png b/nether/textures/nether_netherrack_soil.png new file mode 100644 index 0000000000000000000000000000000000000000..dedab0ef0065e47b5498560a5091158355942233 GIT binary patch literal 397 zcmV;80doF{P)YXa|y z`&IGoKT3}Cc6^vTiK*YMfKyS%wAjVy`WFORI1Hjm6#Al?&u!-_0zMJ=+&KUZJ3Ef5 z!x_X}M+CohnI8yffMu*`okmn;3BWt7pSGrlLhnhT3doDn`YBW&+Y68ZzNKM6Hcvqq zoHwxlcC{a!8h603Y6cR>EU?1ry@fp67AaH{Dh0v|3%bk2Dc3?mpA)fmBXDrwf;9TO9RMEv8<_RX%{C~9CxX5PHVo7wE> z{~>aZWOyuZr04aAnB1#NVu&Y1>?-1^#K~L26b+4ZAHw zBhm1*AoM799q)&XnxIz zUlm*(2+cxTA;hH!H9Ux(8U*ywtVWhKP_3zInbPUJ~*n1$S|YaanuJTYJ?f z+JXcTA|KB_HuydU^61{NoNYMua3j0;VYe%>i&e0GSERtkA>b5wvO8qIX;JW^ z+_3}ZS{WlA^|gbfpkTkV{E>CMENoa}*YOLrz>aWM4x0%2 z`%lwQ7_GM3%DPv#()GQzTeq&;x-rs$C=;h5YG9DeNF?%pDaZ&+7MYI#0TL6%DEd49 zkAIYBCSRJ~d(XMwch0%QwVOSxmKKZleMOv5C6x|jNy6h;h4zn9#GIiTAqM+Kn86Rg zM5pXD1m0sa4UumVg@}(j^ASM55;^R6G-Z>-idb)HV>-=Q(Qu#8ah*2X*!R+1tNFT; zGMItq0diGIe&#|ZL(iAw^{Rnx3zlI=Ld1-&Gou*dJOQV{msTqh z0UbC))3utmH)3tqtTG$9%!}6*`ACh_IJP}*eyLl%yY`2NRy7{$8-n>_KFW!P%kfwx z9E9R?Tlgj?t}Bun94N8T7)55IVIaZj6EN#GAKMiZ$A)w<do6vYi$`Mok0Tw3j25JS7WETT{%t9}l+g0`y@tia2**MO z>TT6sD&=ti0RrvsNFj89B@0dt$sjvi3Jx*zznA7Chj~s51+$?bN8P@#g`H&ZG$TeS z5=#`~no=c}B8gv3V~`?yR$|L|eCV00L%K|nSGLh%gYQ)yq8D9tny?DrSk@oFZ!X~Lri2?K*%eql%p7}4Q}j;j)^W91z|+8#m~1EeY;w@uOHHi}>3qQd zBbEHB3lNr#GYA14mb3}^R^+8^^$DmMrRH++jl}r7(Hz8FrKOIRJjtjKy5gz5#M4>4 zNIwf?KWWrGNoZz_zsocbFd79jTBe2{_yfR=V@%2d2>$?nr;mV@ZXv?}0000QlpG*L56;;o0H z`4%Lw3G8&jn$Zyon{mn@%q!I~^t^2BN73Dp6x+!SNjMi9JN69@s3!z+u$w1l_QWuw zZ6YeE!4Jfia*`78;3BCbDSDFVh>_!sX2sVXzv6oG3ZRZ;MCBal99yM0EYkPPk<{b4 zB9+o05%pjYs6uVA4e4Q^Ow__LAOUZR1}GG00()W!@YT{T{TFWUEP}NJ$IsDp5x*_y zN|R6_Hnht3XpbPSXI=R$c3GsIX(ni;{4j428_dx;M$bAi&vLHZ1Iaj#Vhzra%J?7; z;&X-rU58fGkb=M2dY3k%6VJ)6LM*cU;pjL$@#m-c7xr07#WFtf?;CEl@hqnqH!#og zDRe!L0twCJo}%~#>F5jR6OV!44|F#CY?p?*l0Iw~1iA?? z%p)?<_qc?6WBp6*QJ^_WNxW5SD>t>FK_OPUf*yEe-W@e^6k5lBV4DZ}6mOZD00000 LNkvXXu0mjfYQXQ? literal 0 HcmV?d00001 diff --git a/nether/textures/nether_pearl.png b/nether/textures/nether_pearl.png index 830333f66f088feda39e45124220ba92c43bf882..e3a1b7067550aa403b99180ecd9ea5604449dc85 100644 GIT binary patch delta 200 zcmV;(05|`?0@wkN7=Hu<00016WKsP90016POjJb$0su4>2~8jlYAh3gH5aKy9=T2; z*j+2*jcW7Hz=ujb#Q*>R0d!JMQvg8b*k%9#0BA`>K~xx5b delta 304 zcmcb?xSwf)L_G%^0|UcKFQ0Qjim^Dz-HBn{IhmJ04qKA9y9>igAd8`;#BBzU;weW*GQx(?mEhxFSv`dgl%yxk>O9~Uv~Y6Z&ZabHlDpMI1%U9jp?tLBl^#!d}&F12fi8n<^$VBMkP zWS;&&rzzFKOV{bV+?VYfwv~r4{TuCmcTC3HNr wc7kS%{KY#;F`zopr0CX;GHUIzs diff --git a/nether/textures/nether_pick_mushroom.png b/nether/textures/nether_pick_mushroom.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e3029aff9b72152b2a32fbce536272071f54ad GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf>Hwb**NoJn8U}_OcJ?ARwmdGb zd@inBZmxW8?i@beWFdi6QQEja5c#^C5aSeaW`El4_&DSIj%HSF>hUIe;pZ5J*gON z2_FL)Z$r684Zd(w@e)0W5`FP9eaR97@lqf%l!&pEZZQ^WF%fDt5uR?$Sz#|a&yL5j zA^AJd*^DJYe!&b5&u*jvIaQu6jv*3~tOwbd8iCvcr@3y%qy=M7(Uj_V018&Ze1$PaMDQBgsI`f7TXP4ZVazK2~R!E zQSfh@ynzJs$#+~wt}3g{7MW0cuVwjPMh2Zz{tN~GuE{eT5M}tm{H&VOXF)ZS4$xW# MPgg&ebxsLQ08oEu(EtDd literal 0 HcmV?d00001 diff --git a/nether/textures/nether_pick_netherrack.png b/nether/textures/nether_pick_netherrack.png new file mode 100644 index 0000000000000000000000000000000000000000..922a0970cf26730f4cb8acfc0ede2f4212ee2227 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}a)3{WtHz52A!a5K7A65!78wpU zMIP<|R)!EZ27O_{G*$*v5kWH%p*mKEW>y9b1$lcJNe5XeCs`>ESt%1`MHhLQG)0+k zHOXi#b#FttFeCk9Bi%Y9oeio|J^C6`^wi?q&2s%rN~LGU1Fd5$3GxeOaCmkj4af=f zba4!+xK(??U8uo8fZ35zE#gU!@1OtLJKycncy_IM{hd2kk{>uF&1CUO>YcJYD@<);T3K F0RX4^OQ!$; literal 0 HcmV?d00001 diff --git a/nether/textures/nether_pick_netherrack_blue.png b/nether/textures/nether_pick_netherrack_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..e8757fbac247c8d0e194557b604b7b6e9a4d63ab GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}Z-7sTD+7ZdBM>k#GcvI-F)=eS zv9Pjnv9fcsaqx0-@yjWy$SLb6sOTuF=qRgct7~YhYw4@&*=rlS=$g0~nmTwJ%6S{g z8=E^BS-6>6I$2sf>DxruIC$7OxL7zxI=Ohpxtj%fdb|3@_y>mP`k54kJBKD$#--#( zq%|gG)pqpFY@e{acgDt<^H$GZdFs@`_t$_9V=M{s3ubV5b|VeQ3G;Mu45?u3J-$`+ zu!DfZ!ThuhN6+y5oxZ%}{X8aLvo(hQkAK@zEU;(UzO(1qgZ}WgGiX}Pskd~R8hgxh zkI&nr`}Ie3cc|w-O^CVrxct?@tLMC}qxo)$e{x}Gy6krFEzkxAPgg&ebxsLQ0Pa9w A*8l(j literal 0 HcmV?d00001 diff --git a/nether/textures/nether_pick_white.png b/nether/textures/nether_pick_white.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd46cb68ac7e9f19c68bb4cca630b08b0774d3f GIT binary patch literal 358 zcmV-s0h#`ZP)&Hh5e>eQQ*KZ&H(dU6zMzqn3ECql2!agt)Jc!?>5iyO+Yj zsl~*p$Htq<$)C^4qtDN#($S*S)2r0euGiG9)z+%m*Qwmvwcg&c-rc_4-n-%9wBzEs zP=ECRa!0G3~>gvJl>$>dgz3uG6?d-+w?!@oz$?xyO@9)R)@XYe@#`pEed3m3^ z00001bW%=J06^y0W&i*Hcu7P-RCobx&Q}h?Fc5^{p_tx#!N7tIrWfD;ZXg&Xt0?pK z{o02`&f<61$1AEdwzBuzr%Dna16iqZ0EY9;>6n&)-f}AH#5E?J#q4%YLbYE9MzRK1 z>6U^6cAhrvB7lptce+*JL+`(vG!TET(F~?cbIM%CAN)ZGu+{<0FaQ7m07*qoM6N<$ Eg5!|7>Hq)$ literal 0 HcmV?d00001 diff --git a/nether/textures/nether_pick_wood.png b/nether/textures/nether_pick_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..0973dfe0971852aa8b963768e3dac2215d61d786 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}QGic~t44B*04qxf1A_w_iw!qt zGz&`_D}$+sU>y@fGb=*_H+vH=+YEO0A|d|CT7$))YW=l)X;p1Jz#~ZFDxmJL0 zy#Q~tmb$m0+!9IAMiuELvXUE>prWurRqCRmLY%u!@&kx=D%e2qy zdq$yGRfznx=mjq)xvig`vfO*woVl9~lU-|hl=Nz{D%S2;$@nns%=^GQ0mk2}bsqOK ap5`xUV@vqw*z*f$1B0ilpUXO@geCyG(pB96 literal 0 HcmV?d00001 diff --git a/nether/textures/nether_portal_particle.png b/nether/textures/nether_portal_particle.png index f598e7a872589b5fac10283aaa14d2019da963a4..e619dc81e40219e004b901b20c419f8f3da35c65 100644 GIT binary patch delta 314 zcmV-A0mc6C0@MPKBYy!KNkl@6YQ6j71pbMWma#87sUX2#CVpKk6@@{87Vlmut_J8{|56Z>NlxhxwY}lS> z@eir!RmTmiujkP? z2ZMU$fQ6@Y;#F^a`Ttv<;^Q1AgPK;wlaOevg|BuM&*{(3$xti*yyK|&KbIVwJnU3E zlS+)K12`DA{WJ7+$!`K|2x#UU+-ex{ogvHOtAHVxI!-VQjiDp@2Gf|4eTe81N&o-= M07*qoM6N<$g6312-~a#s delta 342 zcmV-c0jd7f0`LNmBYyw^b5ch_0Itp)=>Px$DoI2^R5;6xQo(A&FbsVdOd$k%k@AW6LB$I|R%6{NKm{3aRe(^`a~y+S zZekY9rAI@r=_;(`-)T5n{DIy7dbp%RJxTOaz-52|AM%MGoxj6tO7@8v*NEd(Q3qKR zkt8L4?Ka)btWUGaTkEHPJSK!WYmQ;H+kst!CbmpH07PN>ar=VuZ34D;C>KW9OJ4DV og47Y{K0p?x8X4rJ*%ym{0n?a~ee>Wi6#xJL07*qoM6N<$f|VehtpET3 diff --git a/nether/textures/nether_portal_stuff.png b/nether/textures/nether_portal_stuff.png index 5f47e7e58591afc43b3d92d7757f14d14a1d9560..9a91adb73dfb632e652f433d67dcea2441a5f0e9 100644 GIT binary patch delta 638 zcmV-^0)hRe1*8R#F@Ii3L_t&-83n=FjvG}FfZ@ODRJXf5i#-cVqzJ(aaK$z6f6EI* zBAEy#vk{N&?z2_#ef9@`{^j(Sjt>w9u{F{J=>T!6)Eh;wjA8EdbEh4HzEkYGlEfPM z_m2M!JSXgwNUz2?D9Ip>8|G?QHip|w-k&+9KnF$dfh()D3V+OsUMFNXv0X=|C6PqX zFzl?Ptmry14;#k!OdbmPrqh}U@&#f{SedxInwW2Z=yY3n{|xaxVRd2(CA|c!3B3qn zar|h&Q5o*`+;(GlZM4(Eajet}Cmehy=zoQrjbT)D*J-L~0jeqK>m}D*vu~Y#tQ;06 zEbxyIw;(-;seiDhO3{JwVqz*YXnsU z*%^j_RO*{0(r=x_od*l}W>8`THK&yD)2)5P&Rb9!miOMgX7kqJZ;#z2z5zfOCoRG-=Y z>bN%AQ>D1m_km~YxObK__?j5S%P=~eh7N$_$KgUK(@e7j{lQk zoY68e-YMcrITcEV*gHNJ@=1^g;uoL+UjQ}7@4%-|T4x`{Zho2o6MZO7X1>O`jK{SXW$V(7I5Dkd` Y0W#}zA(2=D^#A|>07*qoM6N<$g2=!utpET3 delta 640 zcmV-`0)PFa1*Qd%F@Io5L_t(I5e329ZrfH6K+!#Oh7>7T7u#vk07lXNK%e^D|9|Zd z1W4jEX>8ezEQ#c~%ycdJlfV9U+Ogpsgh8y0G(b8*Tngn@(XG*qjdpF+bI|sR{ZNuv zW%;AwAA#qDT@vZV=sP7D#CgS73|oxuZeclGIj2B7Mc)BiD}U4ijEe3OvL9H_J;Rhp zB4`+PRnns9JTP`E`nQFp%PhBzT1}A85Pib(z|D4Gyal4sY~t+`#E*oPfgzN1444zT z31V{mY`|IR?ho8GqkE~;%fz`al#LS(z8Cbr%(56=ujsx}RnZI-Q_`0kcI-IRMmrZy zlM@#B1H>Ij3x8tB%&CyIqu&gyrIH^L>5FxAbu|nQ8>dI+3h>egQI_&IlU6>;% zBFNq_1f)=2HIaUAw8O;IFU;$S>rJ6-oOlJF14bjgDe{k?HSoF7J{Iy*;6EFPSK0yc zZejY~sLzfM5EJkr5!JBsz&KWlcl4hsEeJm6o zS^ws^R_aqByVDMVFV=8xOjqzZ(JcdVD9lr({R?qwv=!tjh)3Y3pyh_I0zU^V7Wl>S zuM6}entS?tMO?|3OkN-kj`x}6B1i=BD^P*YfSTj?;6tTIVf7?<2zpTLeFra<{4R(j z$a4^L;CUYKpvW2`o8y2hXjfQ7;i%}C&@I@?@%N4Dfm;wKK!FZ)lhA5{5Xec8XtaK2 z8kMv%%z-4ZRkS)j3sQr)C>%lFoXDnV5p;6s1>ZaT; aApQpjp>q<+zz=T#0000Pv$S+?G>!G~}r_R36Lijz^jKH352P~&a)Q^G3A#Mkrv2IN! z3zJc8%BCzZSKF{2Ti=SrZWt`FQlq-U2lXRyfW0!5W0i1?Z)4es-7pw&iv6-}9ha-H zOueDV6bm5)Ph;XwafGcH)C?Ou;j(d{ms%~5N{rp8-YPi(?jSha2vFKS<` zGPrL2j4k%n5}OgPsec>u#ugW;DZHvp<197DD~jLM4qq{hxWEBY?h?hB`iRGHS@zUD z)|haGBWy>&pk|4b2XTm#u#b tjuqxusNaxs8`k9sBL-~ofEjkA{{u^O^1xL4zGeUb002ovPDHLkV1kkd=NB_5k8YUmM&81iBc)B|!md3w3T+kuO|4Hz@+Q0d^Kf2!%k+u=vl2bOq8RfX&bV zD@gDG(>^XXq!}O#)Fc7KaUninjRHWnC^5-c7O2Pqs!$P0gF2Kgjn5DlG)WUAzC98< d9F|(4003PdeH}gRDpCLd002ovPDHLkV1h-ub+rHh literal 0 HcmV?d00001 diff --git a/nether/textures/nether_shovel_netherrack.png b/nether/textures/nether_shovel_netherrack.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb91b63743265f7b07ce4446b4309d05151cbc7 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}QGic~E06{PW=2LXW@dgC7Ex9f z9YzLmb~Zz9PF+4813sQ)W`=Yoh8!jaS6)sBK|X(eE)O9=ClSG99+oB+20sx&FEJrs zF(E%O;b1YrIAMNwDY2O>3}t+r8(0~VrA334d7_l$yba~z+|3qPndbVL+;z8}0ko2_ zB*-tA!Qt7BG$6;r)5S5Qf-(63drH90O_M$)DS6abI+pRpWvVcWswFa7%7t0PPlwfitbA*qK&+7G&tzopr E0M^|(*8l(j literal 0 HcmV?d00001 diff --git a/nether/textures/nether_shovel_netherrack_blue.png b/nether/textures/nether_shovel_netherrack_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..03caa1c67e52217daff9fc3868d98e93e87d3843 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}V}MVHE06{Pb`DNnL2(gLNm(FJ zP*PUa&@r$!H8#~ZvGX>RGqUlscJ#G(bhUN%w{;G1aPhNojka}*a&il>agVd}h;i}o zar5wV@d&Z^jCc3+@%HqNb2oGFO?UB6$n`Vv3rPtGP4W-Rh>wYnODRrFFO14;t81Cq z)G?{CV}{esa~ePwFqQ=Q1v5B2yO9Ru_mVB9)mpU>FVdQ&MBb@0Cb#HTmS$7 literal 0 HcmV?d00001 diff --git a/nether/textures/nether_shovel_white.png b/nether/textures/nether_shovel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..989e29ea92850196c154af5302240fb5792e65af GIT binary patch literal 416 zcmV;R0bl-!P)HcZCFKmXHtc9UXOrin2T|slzFF}fUvKQyu6^w$*0cEqRq{)&(5RJ&#TkY zrqt83)YG-q)UDRlvewnK*w?Pw*}2-Nr z;NQIA;Irc4y5ixy;^D#MFC4i z>A>pg#p>$6?d-nn?8NQt$nWmR@b1U&@6Pe?$@B8T^76*=^2_t`&h_-n^z_g7_R#tF z$u_I!{r~^~0d!JMQvg8b*k%9#0C`D7K~#7FV}Jo$V+{sm;OL|;ZQy|5yBJ!l@mb27 zzy+L@6_mKu#f>Ck0f4MR~e7hEy;nD@Y%C?fr*8cFVdQ&MBb@090Z)C;$Ke literal 0 HcmV?d00001 diff --git a/nether/textures/nether_shroom_top.png b/nether/textures/nether_shroom_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd58c7e97c1c6373f86af9e6c2e81ba2034f62d GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4xp}%chEy;nOL#4~>hhz0O4pnJ z5~?r%XC@u`@AyZGt?j=?mjl!1Hx&oCgi=)gO_%cebN=}=woM03oD6-;SFKDi+^~%C bn+}6Pr1Ca3?m1~d6B#^R{an^LB{Ts5+wLrc literal 0 HcmV?d00001 diff --git a/nether/textures/nether_stick.png b/nether/textures/nether_stick.png new file mode 100644 index 0000000000000000000000000000000000000000..c287e166a0b03825fea4ac61f5f2cfe4b37b0a95 GIT binary patch literal 231 zcmV;$pQr*Z2Jkm(IUgx!ZlePH^&` z%_$x)-aPHNzG&^oRbH$maka-=^JmId#7}n84iu_r(>Qkj`oVp{=kgvrkNYde;^Y3? Q+Z5zMPgg&ebxsLQ04(T9IsgCw literal 0 HcmV?d00001 diff --git a/nether/textures/nether_sword_netherrack_blue.png b/nether/textures/nether_sword_netherrack_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..90a26ee79aebb4298bdabfeefc5964c5ea49b338 GIT binary patch literal 326 zcmV-M0lEH(P)kr~M~c^U_rt|Ib;n>%VVY>;ICviKH2@eAT-Dj7+TmS=qV&tLfVR zckziK-hiT_(*N7HU;m$&RrH^QmGgh^^o_)8&dSRAzxVLT{|rnV|HC5V{s)9c5wCgM zwr&4o^d^8!g~HMShDedQO(5v%7(uGnOHdf=T^@pExO8Ly#7yH zcKW}zvCDrMlQhya=lYrak8?Ns?`v)FU)w5-Jk8#Qa$t@2&ffo>JwpDIu9+MF*E|pa Y0Id#yZLtZhvj6}907*qoM6N<$g4g@8WB>pF literal 0 HcmV?d00001 diff --git a/nether/textures/nether_sword_white.png b/nether/textures/nether_sword_white.png new file mode 100644 index 0000000000000000000000000000000000000000..73f41f7d4aee361c7ba260782528607220dfd3d4 GIT binary patch literal 315 zcmV-B0mS}^P) zF&<4jFkVMCZB8_HTuO|5W2&El!NHl#%&5)GuGQ44*Ve$<*s9vuuG`wL-rcj`-ml@{ zx#Qul;^MdE%!~n$?WXK?Ci(y?#1u!$?)&S z@$kp-@yPP=%kuHk^z_E{^u+b_#q{*d_4La2^~U)3&;I?;Tmwj>00001bW%=J06^y0 zW&i*HSxH1eRCob>$29^2Aru9`M_iJ1cXzq}?Y4st#ZEUk)7Frg%DWdZlLu?`k9YB6 zgKI;W5?DI&0|Yo`-LKiox$65YAz(T)&A z?}P-=zkECM&d%)YzB@a+?>z53voU(FG-#`MBsnt83pk_i$prs z_MdvBr){M6PyZ8k5T_P5hmeq@jf{+ns!r@P0l>uc?{_52q=`wdGQ@{EQAGg-!Tkwh(R^s<0xmqGFJ zU&`6B!1uXDEv`E2H+A*WoiS+#H_px_X@^>PZ+*yp>)dwy*_G+wi7o~kSyA zYO1)g*lv?B)>l2}NW}iN2>2-KOMpN0hHfXQBTTI(Vd{t)jf!L$6N^_Hffq(hAHT`0 z!{l{nOF5Ro`zEUH{*XFF&=1*_;P;`QiA7xHGQeL1}R!e_o9g#&2uTxcM)%^FK!bcCWT-@T)_kn z1X>-h+8e|`PZB)!&M#6npKBu-?(e+&_Fn-!d0sBD_e(t1(g5cN>S4@~rv>V1%EJJ) z@54J{C_F&nDF0+~Pel;h@@E3?=InUIN7u)?b^0qihYrfW5Fm!>^%6?xaAK=}Otv~G ztz*Rm>3BK^)D3AziSp;)BaYCebvvY)#BO|mkj^3)IN zn*fDQCnOXY)|Fdm;~ni0*wvu&@sd~OsjOQt{?`rt>?q2_3%ePs}#VDpqqa{4BZFC!L}|a&|X-L2rU=` zIYeV>Is)^@_&v+x=`ss1MX4kq+*o#Cg*Sr5{NUT9ntcd4J z($K+I1rj#B^vkt9u-1YMQkotS|0S2<_B$Sf*jHNHY@%Cj5$cGgbM3@-7GT(k*32hx2ybkDwNI@K|p1~ zrw5fPP_Yd0zwpLfy4|?x0DE&%w5UT-vPX3T0O5r)#{=T|e|nre^?O)T-QV_Zo2@*L ztiX|gz9V@bGt(3tSYDnQi56jB;`v~2@!qzKgG1}w_vzi6td&W3Aa=vpX!LV>2xKX( zk&*<;VElC<{P_6z#vA>rcfiSv2E2>toK5VOs%29zeR#%nlGc?XV%BG{hCZh(pB=dm zlh_#QodE9-XncBj6ML1E>97Be3txE4EaV#n(%#S46zWd9ei42UUqdK#HUNbajOji zaNj9^2-!otS(0Q(dZ|r@&i9_2o4otv;+iZF0VfLTfTkZtP4AY>Sm8gz#J=v?>6mrm{sFN?SvmPd> zr9UyDKDm6I)KPh@NlM2_@}0${71Cxquui4z`3HpB#M8}51U?^F>1o!Tr@je7FTJN6 zOvQk&H~lVCa+=t88XK&i+%mOA+kK*f>RNjCkPV)%IXDyE$v9*02!50!Y%?12SSl7V z-`oQE7U7G-W%55z4#qu&xeTr}xV5XCf6;rS$A zV>4A@YXXCr4$pgdMe4#M>b?jlIKQHwR#BLgwQLzJj)=8EdQ;edfB4xO^i< zxb8y)w2<>4$p(#g?q&~m6T*m&@X zuC2%IW30{Bp#9Efbhyo91oPIkwMvmrHpBq9XSibd z*0Et&>QBS>aMGS;(>ZzBk2^+S=Uy_@*PjNL`@#*0IwrjYr48_2l^N69?`O#?z)yGZ zs2CXMKR#y!RzY+Amv7}@89klXy;fqaPqTQOqYM0S<>=keosiHJK(z;hVd8w@@{p_uWaI|jkNjwrdWF0 zJT+k45oI34eu(*2$c?1s>M%o6wtk!SN^uiw@Xq{?S$ zJ;3Y{N*J@|2VW?uDbedy{w#w}L$&EhT1NhyoqfOY)s3+c-*yuoW5KwVy!S$h+^sep z-=vXl;A}cg;ZMZ9;Oo@N2=`Qgn!|i|{(z`uZ6?3yh6hY7Z;H;iUP=n}#%9jw#xA6m zUuV#$KWW`3(+;bE9oKjI*@}Zk{A1RtimF919+k;8o=~VckrdYjr_ahJ#pK-0B)vz{ zaoW9d9@Mq(dBI&)B`XYvc@P~n1jqn%G;Z&7F13}lBA z%F<0`yv5Bm|Ivtib1&w{^rvN93h_6ad9LyzOSx_Yb;DsJ20m&6uEb$1Z=CB7jc3#MA@nb)`zQSyhgMw3CCGhQrJ* zl;`Jl>}h+$g$@lwEz6}IS(yKUE;zX$M!&QHI-GK%DJVe$)wHrSX9 z)kIug2yEg+KL6Q`*f*St6&%pK^gFqW`%VmOah=58FP@6(iXOU}I=7s2T7x(7Ae6`1h%!MJ>3e|B0JeUFyD8t{ za|}7(nrc{BOtzbr%a-wF$Hx5BR2C2Neo$3J+r#(@AXGjC8(1@;ULzt#SWpzz*e_#= zdr;Yp*xaPc?Cb{pl6c`F53v`yfVYUkYm9nMI@W_8<#%ySiUK52)5ac1CsD$fBclFo zSyIk%I7>eEK9XoCE(fkAdhDA7ml1h-Djz)vT#v~*G=!(yG$DNT9h4#?WJnx?m;pQk zApO=GeIbAA@%qfQEviSuDb`08UhEBjcXEgxUM7?eZ9hR4ZobXh0b?nedyiP{&0g&T z_)huyhq5Ndj+dZ*soj;%%WQQgjv%i2sSH2?q?`rU?^@jJ6wt!Z1Tc2Q$MTYWCMUwqrfYfp*c)$+`=1J zo8tSTH4&*$Tqd*d0F{9J#`)kAv*Rqi;KvPQ>T1eVSgK9`7HwKp34BY8HF|+;?$eJT zbWZ*m8T9S9zNW7Fa(55#VqG{}^6>8gX>nS%mR$*f=at+$1)*!yBbJyieG>3eXJ9tL z7QG&qK8LAC_?lJ${WM!|jy6}wa&o`8thf~1oc;Q?$UAL7Tfg!jvAf2R{?}AIM=Kzz zQ>~A`V=z8Z9(=++C>;!nYmbl-W10IPh=5RUE8Y50RIInI4~Y>IvG2>SxIHLm)Q^#d zC!82PM$TXEw6i#JCpTMPHSQQ`(pQhI{5lIMe59k_;AWGe{-CJwb@YW4;f2j-GM3oU z7@LCXMSAdJGW`3o)x%>+1@#xs*#9Q_UPS~jh**u(sZ19<9U)Rq$4z8P%{^l-ZnnzB z9@!fI_*AM@0D!;2@bdnX7x7a!Zv}yegn6vrxHqtffNwH~@h!fb{Qb#h^0E&tPUQ@v zh47;mJ7{-S{!*Y54-Q@?1uKBq$<-P5NJaYY%wh7Oq*Vb5@&;J+ohtYs7)){_j-7DK9iV{*%eQK!u@|n5ne>=5*^JcFpCt)~Ag0eIPG797=p z5E{3cQdwxX)72x@;;TwZA*KJ$S=9iEzMJ_OFm<;9R>B^C;(xME>1ge;4_x^tt>ri; zAHdg!Y=i`&Qeg+&-+n4F1GAa`S?8GiY@udSjOM_6!F}R<*`1;TRBw>R38To#NkO#W zNF4Sz&5IRQ`jzELj3BA(G$$>I2<`84ARdZ8lV$3gX{nM=6QT$1>SN` z8A$|6%(h%G4bElfv!Lvlj5&Z_f^D;2mr7YXy@=GyWlZYDZEB{?8*&kTjGw&(Zx5p@ zSRl(hmkhifs>Uv&gI{xojZvdUV_DAJ(GKZ@{8eT;TEO4pFWrb9Mlz@_juFPkiCGud z2&Nv)$h=}W+VqA%Z3ojcXAp`~s3BmelM&Vo{fLk_=*t#Y>ws-BiZsQJ{R4YjgDsL! zHPrQtN1>tKHO(ME1^w^J27JTy8siZF@#^T9?{g!Qe`$qp+NwAUG*R|+m2}eKKV;} zg%G$e{$vh0FfAxm^{oa+>Zy%?b?@K>vM; z2=(kx3c-z{vE#X@&5mvkn6LF3t?Usu7Z)p@@woNH%rmj}V`PG-<1pq&PlwDmVZzAp zywPn2p&m3pG^Zh8Xwx@IR_U~9(G(M(k9~0^tk=beH&|nji*~U(u7yoO!kJKp!jdfw z=O+ip0%&#cM{epHP*P}$5a-Dygv*$8b6 zErbL(HYX0g8#fJzBJCklzjT#51x@G?6w*DPCJfaq!l&b>GW~on?z*2Aua;Ma6a9EM z8#z8Xe;PdJ|6kHmJEmf!?Wux40iKd4*}+E>{okEssh9rfPdg^f*2Fa%*xgLvZSa;d zfg{yY_rslV(@ZJGxCj*y?o+574BVtGXlFz{WhutVB-sTjz@u%Dg zjb>ciqI!TV>1Ggdvqqn&|BY?9W+c@3*Ovy+Qx|iF;sUy3^1s%;Z=nUrIE8XOT3{4?+~8P#A7Z^0rk~w`$FRO#p(Ml_ z6SIiSuLkbD@`3T!d~bfT{wOwL>S;(xXf!Q&hjADseew4mDo!tEAPXP@iak#|!ui2l zpB(es#HGe7GQK0#P{y2KgK@;ifdFc1^>WJt%w(_1?%J3xg5mcpTtA8*fml-ak%tkz z7W+X-54QSp`2=;z0#1X9FF6Vq3d_>4D0zUTuk9f22GlyRF} z5E*pmtT^_Ltu)h)A3L?dyOV_{&MvfIf~k%Ddv)U-`j+Taa`#jg2oj#~bwock8d zkI&AFDIv<;R16~0z&vAIe2E4+Bgt~a91!Cjh8(?5k5F^Q{H23h24MqYag0WXJCFw! z$tm)I&Tt9C{CI&_z@X)ZvLaV@fp)=PdTAZw0y$^IO%_B=5mh;`DagO>F|hDB!?Fay7r$7_KLLXnvAlZWsx|{4LG7$BZ z{M&^_;Xs(06>gj!`(Bb0=xd{EvN)p!C1DI8^`;*b(i7QKFPeLg+bC{y;r4o<*+_FR ze(T~huvO9L_ykdS*q2jnHwlL;wy>)y$~Jn${)fGYVApI8X~;F>EgCw&q?L}f&1)mk zEjdsvBRfaq8g)bNtrzUm^a1Tr4Pb{2QF9yKWqGChCx5Oy!DLVgm8s{YjXpm0X7hd7 zVhEkPu%*19#Pkz2^u|=p!q_1PHOyCf<8X5&*zhS>F`jXwWUlzu&i;2Z?uF(J`ce?K)I#I+UnoC%Nu+Cj9AXC#o9@mm+A~GjmEb}`?eP5$+TURf(fcM3mQrcCZy$_LZb_gn zTY>gJpj+K@a5r;@X-BI7&`tx`(>3y^9sXUN+#|ydLn5KMiBl#CB)e&limwdYd1`at zdt34nRr;Vv+DevKLBlvTR_xbaM$KTv@}X4^W6_VsVu!UAlAI%QHN`DD5LzAZxrr%q zv+#XNR`g-us*&y^VsYn@J{#iD9BjmHlBd8nX$fR?9u6g{?E z20cUjmD?xjzTYoTn!II;02Sf)D^g%3gpL3zI^>iObl5Ug8FZe%yLF+Nsd~qF00K_a zOr$nY`P|3H<3Ju%fe&X%ih3>`tBQWdqp@?(Q`V2`Pi+WG($N!?I+)-1j0bg_TFlcZ zY%wyru5Z$AWRI4+UdytxyCZ{*+nv2&@TCf4bY}UkA4AeW-ybEHEf6Y9FJpFe;5mct zKDOJ=ibWY`=5g2FU{(7wS)3TMp^D7Q`=#rMAMl@~`SW21{I@{=gZyqYqgTb6kUoG? zI9Gddv9EH}PQVrAM*)XlPQfQF8^Ls7!+wac@l z^pz#+s{hI`-~4!0(aZu0irq!;l(gFJzaD>|<^mwc61_e|lC`(}3=uYIXWM)3es|DF zRm6*+5O{UQk3N}S+peEpHC#saWu7a8VntEyRmQD-T3!n`ab4APDsXS)%Ne)c_q>L& z3AlgQ!2DLLdYjV+c_-l$iihRB{5^}&u5b02KFu_L{*OUy(KQ2HMuMh9ai)`*?XsAm z(PXlW-yVQoVL>3*Lp5&VkSTJQ(Uf{^-^Ba6OL*g=AV4!K)g{jKiCuszq zH}u4ekr6siyuwG&nAkr1qIB&n`JI(ZPXJ~ydsT!>d2_q@-t#O4FoR9a8$QE=r-$l) zkL5u%Z3hCrr2$<;u{9!0Zk&UG*=MQfq2x#mJbF6{@EyG&BDf}y%GAjp$3?H@q#oCx zGMtga)5}-cHC~bNxMS_3Ho9S&!(ET42%N%SX?E_~g+i~!B0_EdXOlNBzGQnh7U=a0 zsUxDqyBiI-i(BX~@aWJ8tL-hkJuv-2dm8(?*QG=ir}^&FJJ)Bq#pd=jZ>h|Y@yx{F zc)HMtApiL;R9o;=a1NFY0tRt9cHC2oxpk)^+x-@F>-90~y`Xp*zpICcsEv<&F4?rI z!XT~ogcJ%{Kuhbm*n85fjTpU7Lxbjm@s1*&R~f|Lv+6@S)Mhz5`^W1lz^X;Y*ipAc z0w)xUr|Ua@{x^8|>><1J*0Zk_F{1VY2(=ns)E)g(RTZ4pSS*ePtQh+<=fqcs(#{)C zEKprB2gNN2lT<(j2&5_JA7oq}^6@&-$Hy86(>xA$#<1OJttz1`x*i%8ogA1QoB$4p zgwGvv@9*VN(5t*OsmC_;P2ZxvRRAxk@p#fdf>0R?QaZ&NHS{2)ic9I1?ngr4){~Bh z=1?KP=R;3-ZbXA0UOlUFIC+oRvEGDY$%if7RQ%UH$<5(zyZpgvjn(}LdMkU?zd(M=XS`VFj_*K=NbR3zw6;}y7ZS`j5q@nV>M zvO|BV<*%vOvpL{Q)1NDjrXp}Dg`NG&-DX9UZdjAaVC%-*VE48`*^R7w6eMxG1%%(y zma5s-S-ZM>y5QCO>E=+fTVcb9J230Pe>9hT)LGB`!KtPkAp?rZS9wU+Xo(ij=og&S zzoZXaf4+wA#}6|Qrelt;ntIO}p}S^JJ6Fded52%2YX_gQ9O)*iRiCy6F3>pO>nCV6 z1LDp<&wpV8JVQ}^OISSBd)~TBBNXt-44+N=L1_vRltpyL$h_+4dg0f)vg%T17>Qe; zB;_$Jv3WxHs5_qXgRM6;u%l}=te}4=?%9poz+|>HmSw{^h6L?$P`BjJM z(HeebsbuO&GVh)ARE)BTcKlf&{t1)!LReiN*|p!Q#BXYI5=lokY>1r_ z%b8Rt+hUA6k+(Nmo+1}dt2MCPaKL@^#;16Rowi24V_wO4nBBsIy?##%z!*>g&(e`P z*H8-V$xW1Rp6c$0G|I^;Ga2WTwsfm`9rJB^A%E}30;M|?7JRj)B%tkAWxx_uTv>N3 z-0qNhS9t%bsNL+n-tN47NPwt)Sem5!<)dNqU!RhKg{#DntEgJfb(8SR?*mVt~u`@CAU? zwr<7PzIcKf@8q74mgjlxW(&4@iRBRi{)LYUP7emBo4OhOWa~)8HJSbTwRfU}{(Z=g zVlD-?opmENuZp+>2^8o+adHGh-1M1_$)$P%A%EgYmqGo&TWsZX>me>k%$vGnWp)Icl=qyU2cHm*XegE)Te|IiKew>V;ah#z%6&H^Ug zxS@+H(|-pOGG_!2edb0rb|Bhr{fsQ=-lhB-O%n$-^SK)*Y8N@>*K)uNVVCL}C*;y= zv17fAYmpN@gzj3ntKfXE8?{7z2yPq&TOy5;SrryLCxSlP;tJ3XuuF#v$x5euOhyVx zf^jk+XeLtV9a5;Tj_&qvU?}InAMnXX3hBCm_iwl$2s(%^Il7?Wla$9%tr<&XqYd}q z(lEB=V!|D~cSZ_|0fRc!UyFmm{24_QI}LhJE1Ed9P#Lg9a2epY#~8P@jIF1?kE%~Z zIs?uK^TTBLT7qI-o{A7Ofth*<%htOrKv{Lo!H2#+y84Q4@0%{81g)r|F&xw5ObA~} z@67hj^Oo*&mLouMnrn2OS%`2-g&JmzQoEN_5|9Oh`@T0;1&&LyO?5p==7%2P$4x8V z+4{uT1bu~In0exActp54+~P|Mbsxgh&3>L*7>w1mV@k6kT&=M`2(d1a5ikF_K{#dc z%PNSha-gKt?2*vtaGQ=Jnz+H3J&XW_tR){vhz3eJYZ+&Ss*MXxx*z>+>O1E{ zRWwsVvn7&P(5nM)?l#7JqX2)S%1YR99#QFdk8}4H0wo4^YPryWp64!=WZ=$e;oKTq zM@}M#s!KIY1K!yBxhE*Tu4M%jR?#da#>WAp6%~;RyqU1U7%@qLU&NNY#PGyAf|Zf} z>x-eOlWTOS>}t6%`7N$%a%{@0*p9+AKuy$sty2DQmsKQl2IV%vh(6o5ieKk~EMWuw zqNoA0pID=D()%riof&?_|Eg{3GxN`)=0dK^;8Xf9saZfqG^q2x@>Ck=<^*TXzmISO zQg2Fzb|Usg$WWte`%ud`&p%~v9J>5KVQL(4>Gd=V{DH2KCCM^f27GSyQ<+G(C19xG zRy(wfQiO~>iQLz5?O%6S+)xDe)CQoj)5!Xgs!&2WSG$ zcV+5f9Kvd3JLOr%hFWLou)rCWNBzoO%W;jCw;}8e@t$0vQx?cZ!0-V0m)W-fNTYx+ymeV6g+ZB3!gyQ52 z=^}c%Q*VSpCig+YkFlVnZoddX!yd?eQIIuN8qRB<7%YV9Mt-0AVUSev2r$b8RKNyyk6__oMN{J4uIL4Y>94R9NbvDU7l0|d2|~>oq<*S z98iDYjpYHwdG{+hPA+*lu%X?fx6A)(V*+j$R$0j%kMLI#GRQgys(&>%g*UGC8v?Cq zyxM{A-;3^Oo10se`?o1b;F^@c^Vxa(Lm`kSa{*Gq_K7@V zjNE9ul8+4S#Tc~s`8O<+^>2fSFNGS|=q_Sj|46pT3{9|~_E}b*j16J!8>-|5XO=<> zkoLK9;2@VooX%}Rj2^j3YwQYISDd>feVGFy5+@g?#TmBxYXgIty+uI}d>J)jVp3z! zyXSHcGldgJDVzL_1Ke2^>i~zF41a+*+9sY6n%>hKedp!N zEpn5-%)JBixae;)Y@wknUE#|yO6c#L-6|i773}nTbZH#S3dqK;=`lwKFiteaEg_OsrekA?~{TBb+GmLPiB1xTkIQ^RME=V zZfPotDLdL%GIutFum8GSTa5Y`VE@5lq-~fQfxPmx3=sBtt0?3pty8%oIJ%qj#|ilM z$skp=bottEk5w#JdszMvzt#L3m_;>yty5Sa;E0R3eD6V%o-e=Xi3Oro9Dir>CJ7$h zw{muMfJu>J=yj<5Op=-RPI9aCvfDULaN(OuU037KlEX_$eH5$g}dm zgj4u7EwA0MpEgU))HmEb*ES0^X1({s&)l>J;pzT*k9H2Cxod!k-g!H5JlJYa?L)ov zSG3b;hZY!8$^Br8GqBpiVB7_te%+03TXavgiVeyd=yS#7B@V zAg~@EK7+l=BuI3)60$^F4nD2YYdJBdwq9%%RXZKbo7z%|M9C0l%{)i$F=79sE82=} z z4+}l`VTm>lE_1qqO{na}N}2~tpPNOd6;i!;BOOW)Y=_(&@+^*^-|{}>kf4;`+3D%& z%rePd*5~i#Ots!6E-aVsQ6g3-*RV&}v(VfW3jX=d4LH2wB1pW|RR=2_St(2#hEuUl z=p}gsK|E}UXMK2%6uTd`M0T7iW3PM5hz7Yw=Xh83*b*41VkBo_PQRNvXSi+eKUe6Q z6*PU9Mp)Tz>T2JzSJIaoGR$1x)S-E5DfLulsgMCaQ~aBK@V3p99}S|a2fkHe zy@Q!`LO$OpIjBls z``>f&9BfPDBnnR9o}AT$Z$e*}(+JWIa7B?)PfKwOS7A9Mbs6MHDw%ICe zqRBV1)CIuZ~t6%sTQ6E+kNH53#&6A>~N4l@=H zHx&>&6cRTU5i=JRI2RH*7ZW`e6gn6bI~f!}7#2Mn7GEJ9TYn=QTqGT0BN|~NA6+FL zVs6?I5L_#Fq%3wmOL+&JT##> zGn+dxn>#j_J%2EkJvE{_G@U#$oIE#}J~5X*HlsT=o;@?2Jvf;^GMGO%pFT65J~^2{ zIG{f?pFcXAK{J~{IiWx`pg=pELNu5}GonE@q(U;KLpY&EIKp0A$6{Z@WLU&yS;}Nv z#b#Q@XIso>UB_r#$Z1{5YF^K2X3J||(Q0ALY+%xBVt>tTVajo0*qM;onvvU_li{0` z*`1l(os`<1n%$n2)}Wf(pPSyFme--1-JqP`pqJR9oZg|G*`uA`qMq8Mp5mjK;G>`2 zrJ38MpW~#O;iRD6rkdQQpyH*W-=~}2r=jJhoa3gV;;EhBsiWtpp5v;X;i{zKtEJ*6 zEhGQ{0Dl2=QchCrWF=5XG+u*pPxYt^wkfR1naHmnf~k zVyS>zplX+rQl;e)pQy;o`a%&kWlKe1(IE0r{#3u-bDG$Y<$gQA+}xQtJ2NZ9|IU5V z{)6!-lCi`}Le{Zgdt2R-?o#^9j-Y(w_UfVXO@9UxJLf8b_^P{t0>AdYCsKHsz>8YW z{sebOI$xbjx7!lP%;8wBgL|G99 zp7zf2$8RR^%A1odg95wt50DOvM?PvPb8HP;$`^tb5<%;e20Ll;Z{;>TdR|dAd{yPq zUub&AwKWn*<@5&+op9Rqqla|B9Ps0X_J7z9EPvnp5(W_4n79h%dvs+<2HA(@m4g`P zLK!cIni<}W+#jjNy!+#fT|aJ+HWtNGBtyf8*8%Kg?|?!5yGD3X(w*f`K32g1jbs%U zda8N&OU^YLtp_(dXoA|z5pZmE-IUko&Eo#F(FXI9(QuzWNGvG) tBXpGzm~UV|)Qj974V-;Z-iFCN{{VaxT~&oZOZxx-002ovPDHLkV1m~_+7ti) delta 215 zcmdnZ@r-eTc)b7z8v_G_{OA9PK#H+A$lZxy-8q?;Kn`1yx4R3236RCG_R&&HAjMhW z5n0T@z;_sg8IR|$NC676mw5WRvfp755a89SYnto;6iV}SaSX9Iot&`1d`4>WpZQ8> zzl)v!%fINP8OJioG=WIHhQvuc44P)bqQ3(CCz?-)WiaA#nVibtVSL6kg>^~mj1Tq9 zij1EYe@>~o^FPJ3^}oWb9A^hT21%!l+8SQhL|U0cc@}UnFl0JKgw2}~bq;7HgQu&X J%Q~loCID7MMNt3% diff --git a/nether/textures/nether_torch_on_ceiling.png b/nether/textures/nether_torch_on_ceiling.png index aa54c199102e0899f0f8ace59ad2621b6dfaf6d4..43cb69a4762be0325986f6e66c7edda710342aa6 100644 GIT binary patch delta 108 zcmV-y0F(dH0f_;SBxO)ZL_t(|0b{@ioTbG6EAVjt$ESui24ra}|G&~!|9_3M<$s_d zAU0WsfD8a*n1Lj_K$VZ@zX}k8*dQ@dT>#SzqRBIWux7%B5T$t(i~<1LTsj$Wss%6r O0000&`rJk`k$lZxy-8q?;3=9lxN#5=*3?@Jp!`eqnErAqgfk$L90|Vb-5N14{ zzaj-F$X?><>&kwIML>XGEcte?D^MuN)5S5w;&gJt0p>YNkNngAQ1CxpL3~24!?b0e z{%hxc{eRse`X9R_Q_|#AjuQ+5ZIT|FxI=zc{L^2}VA#PcqE4!NhPo#!B*tgGM6Icm_{bKbLh*2~7Y1FFw)$ diff --git a/nether/textures/nether_torch_on_floor.png b/nether/textures/nether_torch_on_floor.png index 18753144313c157539ddb8cda1cfcff7937053b7..c5d5da010e6d2e246231c42a8786b2b42a81fb18 100644 GIT binary patch delta 103 zcmX@d*upqLCBfU%#WAFUF<>&kwIML>X`^WEi!4L~73PZ!4!i_^&o609r-b)+Bv7s)ge7X9TvO;IGX zO_Jfzcd_%TcLip=RXA(lGfh#UH>Hv}a&zkp1MQz1C#+fa;eSfiodB}~4jvEePYBGC aVqowzaldlZvDO!8G=rzBpUXO@geCx7{XDe* diff --git a/nether/textures/nether_transparent.png b/nether/textures/nether_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ff224445c97605c8277061eb4a72e1fa378389 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blE>9Q7kP60RkPIsWquGUyyFgI} MPgg&ebxsLQ083~K+W-In literal 0 HcmV?d00001 diff --git a/nether/textures/nether_tree.png b/nether/textures/nether_tree.png index 0c4cd89a4b251f1750e030f3fbb9bb63a7047d5e..99101b3598e2f6c090edd405e38950d5485eed27 100644 GIT binary patch delta 776 zcmV+j1NZ#C1e6Al8Gix*005AYXf^-<0^3PMK~yNu1;I^k+hhO$;McFe6FZJ+KAfhq zOBY%%ZPPXt8JsqdKn(4~g$w_JAHk6yfVi>?+~A5pLZX1Cu3}BqZKO$?FS~Z)Z~OHp z&x1Wvwv^4?@-p~UKYOem8>6|Y0AxfW@gXkn3f{?UBiJ*lIjW_fIIXd zZ_F-CV`ZPe+3PC=DD|drJ>LfFVNs?C2bOS}>^_8*I)59xykL>UrR3~)%MN(<^nEJg zPCCc?qCDJtvF7{J0Ma7sWNx;>!;ltB@v4x-GvQKA3#F|jfQTrRJLt9Cd~enJgM6H94bK?N{T)T}hCD$%B%8w<_kZs^NIm6~ihAKp567gP{V zzFdxb9)FQdjQ~>niX6OsJ<(R`m*0H--S?mE)sjlvWSxbDk|f1DtxA|AB5w5LLD3Vr zV1nmmo2Ny-{M(N|Nt+vw4nJ6qb&tVTmQRsBT-sVd&MUQpf{yXq{{Y{-vo!MdFV9+D zIMzo;gDm2x?Yf;81x(qzg)<4m+VSbpjvz!X-G9){kfiMcZt&;5K{GQxu-8;_x;F4 zfjAl+jnnb*xSgJk*SWcPo}G=)PA3lY{;l1P^NERgY_-b0xU)QO3=T#Ez|Qb+Yz+;? z@z_}0Oijhz%uGCG@bAJxtn~NC&-{E`=lx3p`+#0dPL{%rB{>Vu21J%t8V5q%&`|Z3VO$-ASFA~u4089|gRxEUaJPd#`SY`XJ2PmPo zm;fHM%~|4i8i@f=X8>{}cO{@tld4)-2OqisE>uC2p?WSr5=NB)MgSRGSriXci7fT59~vesc_eBIaXkcVvn&^lU}LzhH!N%+VaP)TBK yB^Lkw3n}&QEC9M{08}!~-upASA@oCh?>ABRsGhuu0oA zDWI*aYqQcNP2$)|?D%$UAKQoT13z?4z)}S+MZWS)B!FAJn+HT|VJdj~$Dii0r-$d^ zXW#ZtJ=@!Yz;hU)@FwUkg_~lSG@o+otBUU zBE!&vNFzR&F3ujGOj+{j*P8Csk87E(wGEj>YX6g0zrV1`DzlSQf?)<+CJCH|pxSM3 z7wF!ApUs{y?7&oMvbxACy^GLe`?S8nP`)I9&19`G7_ljnkCwAbu->_{;hTCzj)O_j zzgAf@@9dX=n2I35Uw`_s>o1>f))9_(jMBA&@4o+KZjE#g!+LW(%jxlayITHTg0`$t zUI`x@;lsn*8o$n`;p5Yjq1lyZzug{uktoUs`vg$3_<8?h=yYKO&jONKX2?^ zeB=J%ov$)xDCwbelofT5X1!)lAUV65tlStVpjebx5E!l@#V$3+^U?c_GAYOH@xgF+ z;m^0pwkW{bo(Fp4$ltduCuZwHx`e&dOE?G<9A~1}(oX?3`s=u6NQmUmM`PB|s@9yC z#FlbGVaM^ILCX_k!#)2{UY99S!2*ssvRwpa%A|ZXD@wI0WYZ*2)VHe>H=*IZ{i}EP z_QX4P38XZ*h^aZ(`5*GAyuYw8zsaH&fRG(Rs zl=tlv#eS_O_ytGc!Tz;4h#P~lfDwYnG5MXKu(_UngE#eg;Wh7`o zoV7I+ML2~*Ba9-pNHVCU8?6>6dEw+KQ!HHHk0q#p%=P{U&F+o>2sV<-00000NkvXX Hu0mjfO51*L literal 0 HcmV?d00001 diff --git a/nether/textures/nether_tree_sapling.png b/nether/textures/nether_tree_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..14686be59531d8f3177b999b2ff67c3da1bc0112 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfv;dzF*A<*h?tE;OEDWw<{DH#U zB^)vtydqh`4A~+aQBsWIGD5|otTED3{t9B5(&8C1(ls*jS*mjB>WYQhW{x>}E(Hc| zMMkd0hHh0R?zN`wjpm+>=3b5FK8@zS&E_6$7G7-@K5Z6$K(gC9pxZjQ$Hs4xUBD!} zphMc{K~yLeC6ez;T2UCs54{OyU~Gsbmo%`H zxfHU7mBXgkT7>grndnGFi&cuXL~hAe7d55zgX=W%&PY^Djed=}imjs6B2%c?i!pk) z*ZUu~X9yp-oWt`u=RV)(AOoMHkyHyRtK?P4D5|%xF^h;}QhzoNwb%96KWN9Qx)GzV zQD|-B*(72EpNDJ;>11mQI3_t0aCJ2V`&#B?%^tZLgnq?;VX##;tAA+Z*Xacu1S$xA zO;;|bwswd?$VYu3*qemANhh#Qje_ugtyA-eg*WmLTnB{LI)NnRjr**t3ziV+Ogqep z$XMaP4+2!fiGMOa8-5#gGZ}Iw3wC{PjD@WKGD{|w2x_L^PqYC(!saK2>ELjB&SDVr zbT!oo+A0eZR&D8sq=SyaZltvD`<56#+IF1e1I5iiY-tdLmtwB70-2ZkEdDB6r1| zjflN;K)xR9&3?e2HQpzlD-c8unS?!NAQhVep^&FR`1|K4u(PrF>w1R{Dpyrcfhm;) zS!9B8@btXCbhsF&Jh$hm%`Nb1c};45Z)%P~kc)lL2i(6jLe$k$a>PcLjpy(8I04 fF-*_rSXu0UV^*f8Gi-<001BJ|6u?C00DDSM?wIu&K&6g000JJOGiWiGynhq0IlMs zIRF3v32;bRa{vGf6951U69E94oEQKA00(qQO+^RX1P}lg7UcbhEdT%k5t2e8N-jikL5YY6iHJxpxPS65kNKV5^LleJ@0oMn zGtcwPoEcBq@0ZNjnB>RDrJ#nN9vw9+#+fzy&;G9l0^%WXAsUsMZe}JXWF?W1Rkgir zR<_b<*;ZSQ$E6(%8Y?Pc)aP>uJRlQzQY^|_t0hm(rrg)-^4Ms|tL~q5&-&hO%V)PM zKmER3RjZP91Ak0~!}8JTn4q&#Np5O2W9Q|vTvRH?zf}X6dtbetOol=O08&5!45u25 z0(=ZbuoCb+G(h;bmQ0$u7zG{8jmxm30*UM&)F%ZDV8A#7U?~>+1L&$8@;u1rO)x+J zz>E=aH)Mu@G$_1NgSkk=Ad@dltgzbEsv?jSAlpo(27ds2W)I96Z4idX4id%MP-DR8K8OgmQ|z%w kr1F1kS>5C89%YQ!U(S(*sZ404EdT%j07*qoM6N<$f`Ih_UjP6A diff --git a/nether/textures/nether_vine.png b/nether/textures/nether_vine.png index bc7101d829335f1a313c6e2092d809e2c2dbd659..a8a6632a20b203247fb05b9236e5e2dd34f3e6c6 100644 GIT binary patch delta 120 zcmV-;0Ehp)0j&X$7zqdi0000eEe}(XE+}MANklkdR+k>nUyV;C1ouqe4{CY;}29UcSJL%7YlWeeCkM>x=gH^bLxq^^9I7kX{Z!%A=Y auQ44;832dK>?tPz00000%& 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 literal 0 HcmV?d00001 diff --git a/nether/weird_mapgen_noise.lua b/nether/weird_mapgen_noise.lua index 42540e3..4fa9bed 100644 --- a/nether/weird_mapgen_noise.lua +++ b/nether/weird_mapgen_noise.lua @@ -5,19 +5,20 @@ end local r_chs = {} -function nether_weird_noise(minp, fct, s, seed, range) +function nether_weird_noise(minp, fct, s, seed, range, scale) if not r_chs[s] then r_chs[s] = math.floor(s/3+0.5) end + scale = scale or 15 local r_ch = r_chs[s] - local maxp = vector.add(minp, 16) + local maxp = vector.add(minp, scale) local tab,n = {},1 local sm = range or (s+r_ch)*2 - for z = -sm, 16+sm do + for z = -sm, scale+sm do local pz = z+minp.z if pz%s == 0 then - for x = -sm, 16+sm do + for x = -sm, scale+sm do local px = x+minp.x if px%s == 0 then local pr = get_random(px, pz, seed) @@ -33,7 +34,6 @@ function nether_weird_noise(minp, fct, s, seed, range) for x = minp.x, maxp.x do local h = sm for _,i in ipairs(tab) do - --local dist = vector.distance(i, {x=x, y=0, z=z}) h = math.min(h, fct(x, i.x, z, i.z)) end tab2[n] = {x=x, y=maxp.y-h, z=z} @@ -45,10 +45,6 @@ end --[[ local function dif(z1, z2) - if z1 < 0 - and z2 < 0 then - z1,z2 = -z1,-z2 - end return math.abs(z1-z2) end @@ -68,7 +64,7 @@ minetest.register_node("ac:wmg", { description = "wmg", tiles = {"ac_block.png"}, groups = {snappy=1,bendy=2,cracky=1}, - sounds = default_stone_sounds, + sounds = default.node_sound_stone_defaults(), on_construct = function(pos) local minp = vector.chunkcorner(pos) for _,p in ipairs(weird_noise(minp, pymg, 20, 8, 4)) do