From 2e13a0d7ba627487243bc6155987448defd2679b Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 30 Dec 2015 17:54:04 +0100 Subject: [PATCH] [nether] Update - For #351 --- LICENSE.txt | 2 + README.md | 21 ++++ README.txt | 11 -- nether/crafting.lua | 66 +++++++----- nether/depends.txt | 1 + nether/furnace.lua | 14 +-- nether/init.lua | 11 +- nether/items.lua | 98 ++++++++++-------- nether/portal.lua | 69 ++++++------ nether/rest/Nicht Leere Datei.lua | 0 nether/rest/nether_fruit_leaves.png | Bin 621 -> 1228 bytes nether/rest/nether_glowstone.png | Bin 6035 -> 6096 bytes nether/rest/nether_leaves.png | Bin 197 -> 319 bytes .../nether_leaves_decision/nether_leaves.png | Bin 427 -> 452 bytes .../nether_leaves_high_cont.png | Bin 423 -> 572 bytes nether/rest/nether_netherrack.png1 | Bin 1879 -> 2331 bytes nether/rest/nether_portal_creator.png | Bin 687 -> 762 bytes nether/rest/nether_tree.png | Bin 408 -> 574 bytes nether/rest/nether_tree_top.png | Bin 468 -> 612 bytes nether/rest/temp.txt | 0 20 files changed, 171 insertions(+), 122 deletions(-) create mode 100644 LICENSE.txt create mode 100644 README.md delete mode 100755 README.txt mode change 100755 => 100644 nether/rest/Nicht Leere Datei.lua mode change 100755 => 100644 nether/rest/nether_fruit_leaves.png mode change 100755 => 100644 nether/rest/nether_glowstone.png mode change 100755 => 100644 nether/rest/nether_leaves.png mode change 100755 => 100644 nether/rest/nether_leaves_decision/nether_leaves.png mode change 100755 => 100644 nether/rest/nether_leaves_decision/nether_leaves_high_cont.png mode change 100755 => 100644 nether/rest/nether_netherrack.png1 mode change 100755 => 100644 nether/rest/nether_portal_creator.png mode change 100755 => 100644 nether/rest/nether_tree.png mode change 100755 => 100644 nether/rest/nether_tree_top.png mode change 100755 => 100644 nether/rest/temp.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..d04c782 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,2 @@ +GPLv3 (lkloel's version) +WTFPL for the changes diff --git a/README.md b/README.md new file mode 100644 index 0000000..0714078 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +[Mod] nether-pack [nether-pack] + +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 +Sadly lkjoel's one disappeared… + +**Depends:** see [depends.txt](https://raw.githubusercontent.com/HybridDog/nether-pack/master/nether/depends.txt) +**License:** see [LICENSE.txt](https://raw.githubusercontent.com/HybridDog/nether-pack/master/LICENSE.txt) +**Download:** [zip](https://github.com/HybridDog/nether-pack/archive/master.zip), [tar.gz](https://github.com/HybridDog/nether-pack/tarball/master) + +this happens really selden to me +![I'm a screenshot!](http://i.imgur.com/pMZYqt9.png) + +If you got ideas or found bugs, please tell them to me. + +[How to install a mod?](http://wiki.minetest.net/Installing_Mods) + + +TODO: +— find a way to get the perlin noise inside [-1; 1] or use another noise diff --git a/README.txt b/README.txt deleted file mode 100755 index 1098524..0000000 --- a/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -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: -— care about nether torches -— find a way to get the perlin noise inside [-1; 1] or use another noise diff --git a/nether/crafting.lua b/nether/crafting.lua index 8490551..78dfc35 100755 --- a/nether/crafting.lua +++ b/nether/crafting.lua @@ -137,6 +137,14 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "nether:torch", + recipe = { + {"nether:bark"}, + {"group:stick"}, + } +}) + minetest.register_craft({ output = "nether:forest_wood", recipe = { @@ -162,36 +170,38 @@ minetest.register_craft({ 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) + if itemstack:get_name() ~= "nether:forest_planks" + or itemstack:get_count() ~= 7 then + return + end + 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 not sound_allowed then -- avoid playing the sound multiple times, e.g. when middle mouse click + return + end + minetest.sound_play("default_wood_footstep", {pos=player:getpos(), gain=0.25}) + sound_allowed = false + minetest.after(0, function() + sound_allowed = true + end) end) minetest.register_craft({ diff --git a/nether/depends.txt b/nether/depends.txt index 098d7a3..2f29bdb 100755 --- a/nether/depends.txt +++ b/nether/depends.txt @@ -2,4 +2,5 @@ default glow riesenpilz stairs +fence_registration? watershed? diff --git a/nether/furnace.lua b/nether/furnace.lua index ee293cd..44d4b44 100755 --- a/nether/furnace.lua +++ b/nether/furnace.lua @@ -250,7 +250,7 @@ minetest.register_abm({ 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) @@ -272,13 +272,13 @@ minetest.register_abm({ 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) @@ -298,7 +298,7 @@ minetest.register_abm({ 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) @@ -313,7 +313,7 @@ minetest.register_abm({ 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 @@ -339,7 +339,7 @@ minetest.register_abm({ 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/init.lua b/nether/init.lua index 9c4aea8..cd6ead1 100755 --- a/nether/init.lua +++ b/nether/init.lua @@ -11,6 +11,8 @@ -- godkiller447 (ideas) -- If I didn't list you, please let me know! +local load_time_start = os.clock() + if not rawget(_G, "nether") then nether = {} end @@ -1029,4 +1031,11 @@ dofile(path.."/crafting.lua") dofile(path.."/portal.lua") dofile(path.."/guide.lua") -nether:inform("loaded!", 1) + +local time = math.floor(tonumber(os.clock()-load_time_start)*100+0.5)/100 +local msg = "[nether] loaded after ca. "..time +if time > 0.05 then + minetest.log("warning", msg) +else + minetest.log("info", msg) +end diff --git a/nether/items.lua b/nether/items.lua index 27abf64..6bc156d 100755 --- a/nether/items.lua +++ b/nether/items.lua @@ -4,42 +4,52 @@ local nether_sound = default.node_sound_stone_defaults({ footstep = {name="nether_footstep", gain=0.4} }) -local function add_stair_and_slab(name) +local add_fence = minetest.register_fence +local function add_more_nodes(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 + data.groups, + data.tiles, + data.description.." Stair", + data.description.." Slab", + data.sounds ) + if add_fence then + add_fence({fence_of = nd}) + end end +--[[ +local function add_fence(name) + local def = minetest.registered_nodes[name] + local fencedef = {} + for _,i in pairs({"walkable", "sunlike_propagates"}) do + if def[i] ~= nil then + fencedef[i] = def[i] + end + end +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 + if not tool + or not tool.tool_capabilities then return false end - local capabilities = tool.tool_capabilities - if not capabilities then - return false - end - local groups = capabilities.groupcaps + local groups = tool.tool_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 + if groups.nether + and groups.nether.times[v] then return true end return false @@ -55,7 +65,7 @@ minetest.register_node("nether:netherrack", { return digging_allowed(player, 2) end, }) -add_stair_and_slab("netherrack") +add_more_nodes("netherrack") minetest.register_node("nether:netherrack_tiled", { description = "Tiled Netherrack", @@ -66,7 +76,7 @@ minetest.register_node("nether:netherrack_tiled", { return digging_allowed(player, 2) end, }) -add_stair_and_slab("netherrack_tiled") +add_more_nodes("netherrack_tiled") minetest.register_node("nether:netherrack_soil", { description = "Dirty Netherrack", @@ -87,7 +97,7 @@ minetest.register_node("nether:netherrack_black", { return digging_allowed(player, 2) end, }) -add_stair_and_slab("netherrack_black") +add_more_nodes("netherrack_black") minetest.register_node("nether:netherrack_blue", { description = "Blue Netherrack", @@ -98,7 +108,7 @@ minetest.register_node("nether:netherrack_blue", { return digging_allowed(player, 1) end, }) -add_stair_and_slab("netherrack_blue") +add_more_nodes("netherrack_blue") -- Netherbrick minetest.register_node("nether:netherrack_brick", { @@ -110,7 +120,7 @@ minetest.register_node("nether:netherrack_brick", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("netherrack_brick") +add_more_nodes("netherrack_brick") minetest.register_node("nether:netherrack_brick_blue", { description = "Blue Netherrack Brick", @@ -121,7 +131,7 @@ minetest.register_node("nether:netherrack_brick_blue", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("netherrack_brick_blue") +add_more_nodes("netherrack_brick_blue") minetest.register_node("nether:netherrack_brick_black", { description = "Black Netherrack Brick", @@ -132,7 +142,7 @@ minetest.register_node("nether:netherrack_brick_black", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("netherrack_brick_black") +add_more_nodes("netherrack_brick_black") minetest.register_node("nether:white", { description = "Siwtonic block", @@ -143,7 +153,7 @@ minetest.register_node("nether:white", { return digging_allowed(player, 1) end, }) -add_stair_and_slab("white") +add_more_nodes("white") -- Nether blood @@ -169,7 +179,7 @@ minetest.register_node("nether:blood", { groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood") +add_more_nodes("blood") minetest.register_node("nether:blood_cooked", { description = "Cooked Nether Blood", @@ -181,7 +191,7 @@ minetest.register_node("nether:blood_cooked", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("blood_cooked") +add_more_nodes("blood_cooked") minetest.register_node("nether:blood_empty", { description = "Nether Blood Extracted", @@ -189,7 +199,7 @@ minetest.register_node("nether:blood_empty", { groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood_empty") +add_more_nodes("blood_empty") minetest.register_node("nether:blood_top", { @@ -198,7 +208,7 @@ minetest.register_node("nether:blood_top", { groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood_top") +add_more_nodes("blood_top") minetest.register_node("nether:blood_top_cooked", { description = "Cooked Nether Blood Head", @@ -210,7 +220,7 @@ minetest.register_node("nether:blood_top_cooked", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("blood_top_cooked") +add_more_nodes("blood_top_cooked") minetest.register_node("nether:blood_top_empty", { description = "Nether Blood Head Extracted", @@ -218,7 +228,7 @@ minetest.register_node("nether:blood_top_empty", { groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood_top_empty") +add_more_nodes("blood_top_empty") minetest.register_node("nether:blood_stem", { @@ -227,7 +237,7 @@ minetest.register_node("nether:blood_stem", { groups = {snappy=2, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood_stem") +add_more_nodes("blood_stem") minetest.register_node("nether:blood_stem_cooked", { description = "Cooked Nether Blood Stem", @@ -239,7 +249,7 @@ minetest.register_node("nether:blood_stem_cooked", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("blood_stem_cooked") +add_more_nodes("blood_stem_cooked") minetest.register_node("nether:blood_stem_empty", { description = "Nether Blood Stem Extracted", @@ -247,7 +257,7 @@ minetest.register_node("nether:blood_stem_empty", { groups = {tree=1, choppy=2, oddly_breakable_by_hand=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("blood_stem_empty") +add_more_nodes("blood_stem_empty") minetest.register_node("nether:wood", { @@ -256,7 +266,7 @@ minetest.register_node("nether:wood", { groups = {choppy=2, oddly_breakable_by_hand=2}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("wood") +add_more_nodes("wood") minetest.register_node("nether:wood_cooked", { description = "Cooked Nether Blood Wood", @@ -268,7 +278,7 @@ minetest.register_node("nether:wood_cooked", { return digging_allowed(player, 3) end, }) -add_stair_and_slab("wood_cooked") +add_more_nodes("wood_cooked") minetest.register_node("nether:wood_empty", { description = "Nether Wood", @@ -276,7 +286,7 @@ minetest.register_node("nether:wood_empty", { groups = {choppy=2, oddly_breakable_by_hand=2, wood=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("wood_empty") +add_more_nodes("wood_empty") minetest.register_node("nether:extractor", { description = "Nether Blood Extractor", @@ -296,7 +306,7 @@ minetest.register_node("nether:fruit_leaves", { sounds = default.node_sound_defaults(), furnace_burntime = 18, }) -add_stair_and_slab("fruit_leaves") +add_more_nodes("fruit_leaves") local function room_for_items(inv) local free_slots = 0 @@ -518,7 +528,7 @@ minetest.register_node("nether:forest_wood", { groups = {choppy=2,oddly_breakable_by_hand=2,wood=1}, sounds = default.node_sound_wood_defaults(), }) -add_stair_and_slab("forest_wood") +add_more_nodes("forest_wood") minetest.register_node("nether:leaves", { description = "Nether Leaves", @@ -555,7 +565,9 @@ minetest.register_node("nether:dirt", { 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"}, + tiles = {"nether_dirt_top.png", "nether_dirt.png", + {name="nether_dirt.png^nether_dirt_top_side.png", tileable_vertical = false} + }, groups = {crumbly=3,soil=1,nether_dirt=1}, drop = "nether:dirt", sounds = default.node_sound_dirt_defaults({ @@ -565,7 +577,9 @@ minetest.register_node("nether:dirt_top", { minetest.register_node("nether:dirt_bottom", { description = "Netherrack Dirt Transition", - tiles = {"nether_dirt.png", "nether_netherrack.png", "nether_netherrack.png^nether_dirt_transition.png"}, + tiles = {"nether_dirt.png", "nether_netherrack.png", + {name="nether_netherrack.png^nether_dirt_transition.png", tileable_vertical = false} + }, groups = {nether=2}, drop = "nether:netherrack", sounds = default.node_sound_dirt_defaults({ @@ -606,7 +620,7 @@ minetest.register_node("nether:torch", { 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}, + groups = {choppy=2, dig_immediate=3, attached_node=1, hot=3, igniter=1}, legacy_wallmounted = true, sounds = default.node_sound_defaults(), }) diff --git a/nether/portal.lua b/nether/portal.lua index 6d0bfec..857402c 100755 --- a/nether/portal.lua +++ b/nether/portal.lua @@ -37,7 +37,7 @@ local function save_nether_players() end local update_background -if damage_enabled then +--if damage_enabled then function update_background(player, down) if down then player:set_sky({r=15, g=0, b=0}, "plain") @@ -45,11 +45,11 @@ if damage_enabled then player:set_sky(nil, "regular") end end -else - function update_background()end -end +--else +-- function update_background()end +--end -local function player_to_nether(player, safe) +function nether.player_to_nether(player, safe) local pname = player:get_player_name() if table.icontains(players_in_nether, pname) then return @@ -63,7 +63,7 @@ local function player_to_nether(player, safe) update_background(player, true) end -local function player_from_nether(player) +function nether.player_from_nether(player) local pname = player:get_player_name() local changes for n,i in ipairs(players_in_nether) do @@ -79,7 +79,7 @@ local function player_from_nether(player) end -if damage_enabled then +--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 @@ -93,50 +93,38 @@ end -- Chatcommands removed --[[ Chatcommands (edited) written by sss minetest.register_chatcommand("to_hell", { - params = "", + params = "[]", description = "Send someone to hell", func = function(name, pname) - if not minetest.get_player_privs(name).nether then - local self_player = minetest.get_player_by_name(name) - if self_player then - return false, "You can't send anyone to hell." - else - return false, "Something went wrong." - end + if not minetest.check_player_privs(name, {nether=true}) then + return false, "You need the nether priv to execute this chatcommand." 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 + return false, "Something went wrong." end minetest.chat_send_player(pname, "Go to hell !!!") player_to_nether(player) - return true + return true, pname.." is now in the nether." end }) minetest.register_chatcommand("from_hell", { - params = "", + params = "[]", description = "Extract from hell", func = function(name, pname) - if not minetest.get_player_privs(name).nether then - local self_player = minetest.get_player_by_name(name) - if self_player then - return false, "You can't extract anyone from hell" - else - return false, "Something went wrong." - end + if not minetest.check_player_privs(name, {nether=true}) then + return false, "You need the nether priv to execute this chatcommand." 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 + return false, "Something went wrong." end minetest.chat_send_player(pname, "You are free now") player_from_nether(player) @@ -220,6 +208,7 @@ minetest.register_abm({ nodenames = {"nether:portal"}, interval = 1, chance = 2, + catch_up = false, action = function(pos, node) if not abm_allowed then return @@ -259,7 +248,7 @@ minetest.register_abm({ remove_portal_essence(pos) minetest.sound_play("nether_portal_usual", {to_player=pname, gain=1}) - player_to_nether(obj) + nether.player_to_nether(obj) --obj:setpos(target) end, obj, pos, target) @@ -458,7 +447,7 @@ minetest.after(0.1, function() end }) end) -end +--end vector.square = vector.square or @@ -520,11 +509,22 @@ local function netherport(pos) return true end +-- cache known portals +local known_portals_d = {} +local known_portals_u = {} +local function get_portal(t, z,x) + return t[z] and t[z][x] +end +local function set_portal(t, z,x, y) + t[z] = t[z] or {} + t[z][x] = y +end + function nether_port(player, pos) if not player or not pos or not pos.x then - print("[nether] something failed.") + minetest.log("error", "[nether] nether_port: something failed.") return end if not netherport(pos) then @@ -533,7 +533,7 @@ function nether_port(player, pos) minetest.sound_play("nether_teleporter", {to_player=player:get_player_name()}) --MFF crabman (5/09/2015) fix positional sound don't work to player minetest.sound_play("nether_teleporter", {pos=pos}) if pos.y < nether.start then - player_from_nether(player) + nether.player_from_nether(player) local pos_togo = {x = 0, y = 35, z = -7} if minetest.setting_getbool("static_spawnpoint") ~= nil then local stsp_conf = minetest.setting_get("static_spawnpoint") @@ -541,8 +541,11 @@ function nether_port(player, pos) end player:moveto(pos_togo) else - player:moveto({x=pos.x, y=portal_target+math.random(4), z=pos.z}) + set_portal(known_portals_u, pos.z,pos.x, pos.y) + pos.y = get_portal(known_portals_d, pos.z,pos.x) or portal_target+math.random(4) + player:moveto(pos) player_to_nether(player, true) end + minetest.sound_play("nether_teleporter", {pos=pos}) return true end diff --git a/nether/rest/Nicht Leere Datei.lua b/nether/rest/Nicht Leere Datei.lua old mode 100755 new mode 100644 diff --git a/nether/rest/nether_fruit_leaves.png b/nether/rest/nether_fruit_leaves.png old mode 100755 new mode 100644 index 1fbf6132c2c3a7c6111cc01f75de3f3ed0b9269b..c230ae51bdb780cd159adbe8f2b2175a1ca82725 GIT binary patch delta 1219 zcmV;!1U&og1k4GL8Gix*004xo#ykK31d~ZbK~zY`g_g~3+eQ?HKMpBTq)6K_omxr! z0~f4;1O-wQ1&ShVk!?5K_5r#r+DFKv^cDKE=sJt;0u zaI9b28E8RJhjVAnJ@?#eJpO^w1p)72DvXk8gK3k-2&1GhnSWkD2_=SrySHJiv;ia9 zV|YVpkZw~n02GknNJPn`LE+L+G|z9t2-Ry_k~R)gb2x?$jx={ZCm;LMrc(Q|ic_FO zZWkL0XdufAQiCjGI;7fY1*3dP6F{gf^1ax)@V%2z-#de;el+^wBH6VVFAA-$Z=LzZ zM?W(92f#Y>^Zl3$XhI4Cwr?PN4P%}8xf=`dvkujgyMF*4j9~{FFw_T`k*&|QhG~2m zd)-hJov7L?If?+TAbyS<#aZdJ@NsiE=E}#V^NC5p3yl9Q=;5q~6z*1qDhj&8NkytQ<9mpZa z`!j4_ZGW4e$&oE}B%8uejKQJEGx63g?kQYok-OwBfa!lD0WPr;znChvpow@SjR#T; zX}+k5yjOLF z@q3tDQl28ttG(8==N#4e0lN{wa$rdAM>7i(wc0a(3Ku1+pZj&9|1abYY>@_7tJ=$< zWVAPzs1^H5PB<%!U_psPXd`GX81A+9+-?muI{npO0SvHS`HNOzJo@%#Q(p0d3`asq z+JDjeT4O(dpue)te6dO}cs=U<;ANQFnEh}bY`WlU2FCF-tgg?L{4lQG&We!%R_f_Jix^r2~R%@_34*Kgh zmmEa2Fpj^kCwS7J2=w8tc+Rn|DzqlFIDfM0j&%gzB#Y{TR_f0Md@VY!8yd&o-AwQr z$IcPy-%BTLA29rb$|}SBZ?taH8J)G=Gg3J#5L9kb~OUr9NyGR#+`?Nvgw3lZe7RS(6D*?J$c`QZ7mLm`Sg& zx5AutN5=&ZZ7`_EErh3?`giF;@o9xA_Tvbb8`EY7)U-(zb^$j{aXV0jWr7ppcAyID zFvgS}AZ00}d0a73PX!b&o_@*p9gv|Ylw#BPNcb13*Pi^P6#1fIYt?l4inj*lBJVfTN>~=`-Fcdj6?Kxls-`|-> zCa%i*1y~YnH$u!`VP#^55xfbM1e|df+U5+lSE}zW(6u>Tsy_xXv`BQ0xH|1II4Hjm tSEoG&Lyt2fuTFam)6B^K+GCjR!at0aJCn+%Lh}Fs002ovPDHLkV1m|y?neLs diff --git a/nether/rest/nether_glowstone.png b/nether/rest/nether_glowstone.png old mode 100755 new mode 100644 index b5c75cd7c82fceece82b06565f021bfcb6639463..6a6a7a4bd42eec6b406e6777fc14b29668f3b491 GIT binary patch delta 6049 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 blm2r6H+wK^C^gl300000NkvXXu0mjfKy9wy delta 5987 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 A7XSbN delta 181 zcmdnbbd+&|L_G^L0|Ud`yN`l^lu&?Ah%1neRFqTY{K%3mEPSIy;QGV-*!3ZCHMa+eCLnf z-dUx)LdrU|ui9xw^Xs|s9LiG9So<%Rd28Nes(#X^$N6lAy0t~cJUJGYOy(zz!2zok gcX>`_yY!QB@e-jG^12zkK+70BUHx3vIVCg!0GGl(&;S4c diff --git a/nether/rest/nether_leaves_decision/nether_leaves.png b/nether/rest/nether_leaves_decision/nether_leaves.png old mode 100755 new mode 100644 index a5ef80861620ec96a0570e450cb915f9f1c0dd2a..bed616249fa48afcab314a559da6a2c71777f18c GIT binary patch delta 207 zcmV;=05Jcn1H=Q6{eQAaL_t&-(=|^E8-YL&9Iwb*rKI%0QHX@d^Z)-VyBGU?JGVQx zH#-OPPyxpXsVNI5Q)JhYTS=VwWv57u#TIEU9FX z=LTJ8A}kIT5q)1_S?A%o;xE6sQM#Cx-7JcsvybQ%@CyuHOGtQC+I7F!aw4GxrUR(E ztof7ZGDrbwC^N@^aGo(cp)^iKhgkbFht~1mT^axY delta 182 zcmV;n07?JE1FHj&{ePKBL_t&-83ny!8Jg`Zhs*7~a-Y%n#~8FJp&)&Z$AB}KKraO`TvHdn3j_?`H$CF` k|5m?OB5PJhP|tL*1L7JEL4J)+!vFvP07*qoM6N<$f~Yf5H2?qr diff --git a/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png b/nether/rest/nether_leaves_decision/nether_leaves_high_cont.png old mode 100755 new mode 100644 index 5d817cb6326223b9b15a15c3f8186f8fd952adbe..7ad8059142b22062b49b6cc13c7e7d76d072f36f GIT binary patch delta 558 zcmV+}0@3}a1H1%~8Gi-<001BJ|6u?C0s~1zK~y-)b(24D6G0Hgf4g_~o#RMg8*>hk zF|l!!@D=DHiWEpGB1J+%PJt9Uz6}L*p-+KCmx=<3j}T&z6NJE!e~K}7Z13JsTypWr z@svCJX6C(l1Hk>&yZ}@l7lj+*!P9~OEN;z7Wj*;v12|cS>VIZQ4nG~Kt3>4z1aR=- zL;>{ndU&N&qPPoSItKr?lSmw1g2qF%X8-k11+e_0B;D5FvfEnJZE0&x7PsaEp#Jin zEWMh)krF_?5lrT)>qV(PD^3NKS8@{?xV7hZ#dS1aw%f`rxOgc=tr19g5n|5_-*?Yq zDmv$a2@^#XK!5E?UUbnRyOhQL8PfeRp!Gh|puCb3zn&rNTl6Tz4LnTGVonULog)>A z=z;^Bd_2cr@M184d&kAQ<^tG4Ylgfjr!Zc-Pk_^-%!z zjiM-DBTCWSZmY^#L9oeHE;a(0t$3V&?Gp~6wG(+p1Ao|#WwzphjRaCN8q+a}?PT&P z2B!wbz_F2>`83C$|Hg{T5YnY|T)=b;gEI%~Ys|TwN}uv-VS?jLyvM!bUb${~Jc96g z$5&p+)_m%lC24NAWIZzj1A~Sxe=v~R8{iY-3Z$j&_@x~LW$gH6odjiF1!X;iWIcrCTm|Jk zgygM7WB6U8@+7YMt@Q^6H`56$J8G}xCrwp)@*wTscF9Rw z3is9N6vnCZu6my&#TYh!&9bxuvD+u4zt}ceXx+B&UAAua@yQpKv~+!0YRfEhkS8nS zFzd!&u?h)4w#i-S`#=9lGgIVtn^ud9hxy9-c?C0OSGnE+x{|@u)z4*}Q$iB}b`pX0 diff --git a/nether/rest/nether_netherrack.png1 b/nether/rest/nether_netherrack.png1 old mode 100755 new mode 100644 index 7587977548b2c758ee3bfeb14f5dcbd364b25a80..66cccbe1aae02abd1ce6c0bdb99282f06f5c16ad GIT binary patch literal 2331 zcmV+$3FP*PP)Px#24YJ`L;y4Z00023;-xtN000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb? z0TM6PEa%?<000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000PfNkl#XX^thwZb0EfG9vR%HFsC*NowH%UW+&2?Hh&-LF&0{xK($^h#=`7r4qn@hX~dQt7^zdLWT5XN+C3PB9IV5l^ZeA8;^D3V>Uho z{2CLzI4({};gZ5P5A-qM!i}iO%7kq?NCgV}Y%G(riJ%(XrEzM31*iuktjuXy_^1=N zB$os&I}NyxU^R?Wz-M(%Bl*&m;mQAKFcavN&ODK@69|qfR2h63jT4oUa4+y|unOUeD0jddg`)-UNlpeEU@}E_W-JzTEtCu_l-iS) z!gYnJhNp4L@K=tx|^VjwGH)rCz2 zp>GRqEO|t@1U4$HG$|jWpczO7>&a^lZbT`jTxal@Mw%mT6d!yVNfFRgev!dYBORzg z5kowAZ_fV?sF_@+;bZWZCN-41R8E!@oYw(*R-uYg2Rs8ev++c5Ciy#sItynt?uv6i zU|^h6ILyh9R6gOjz-3R|6^-D>P;Ol5DtG~?+(>e(u+xcSCX)zP#n4+De9z>ZuoVFZ zNufw`L81v)-SBQW%0)FUiqS@5CHW&K{+)%tO>k|zs<9@a4Avf0cU&tqk~^uKWns2J zhtWLI*Oq81Lkr)5mxK=mrfFht!byaK4gRjeS%sRN%w#u`N|L4XSvoh7c*1NmhYBML zhZN2vLl@S-b1Y;yTQ{&ZPbuh83Tqui2|mPxByXN*(4h2?A@IwuW zU?;&lRThT}alR+qcPCR>mLLME2^)up2ySxls)2>^Jr=GtXhV6lWEIIFlV379MX+e1 znaUrk%th%Qcn|&(!}IO9!rrQP)XMjKyNSP2xurs>OeXYNDB1ZP;in{5^Gr7-|H<=8 zmEz88tt5jls{B;gXP{W{)jCh{HgKl!YYKs~uEr%3qX<~xoI%&%PK*~C@3XV=pbg{6 zl#US?`=!&mqbht?VVLtt2DdHgAsk6IOk9Lf3dY8jjK+lWs>u&^HW=xFrt=fwA_pmz zNd_k!ylUaxJ5!nY)tpZmNCVZG!ossCTX(t$=QQ3Cv=ZD(VaZNtWAB1SIz(e8Ih6^| zWTV0$Xd*mVa;?HooQ(w2s4SUWk6=rI0e`k22P{lDXPn9}UWlSx8%#N93J)VV_f9x0 zO}GGb1-z(G%ESp_O6XE4n#2%(?ZT@WmE_>TH)&jzLel^Z_PQXMoKtwV#$@1h_Trca z;mMT?dj~U+$vCDkfNqA8M#&(eQ{se8GZT#%1+(B(mG#oOC~y?mh~P~)y0S>}n}Ctr z5Qr!1T%oC4%HVSpBno11I|&70(}H(WnIySLM>Ufd1h2-V%4RvU%{8mZaSA1z2N8}v z`PYCaJ~=_!frU)Izy5b6B~g`3>3bP;47Wq zN-{ZYCqVt}tpUo7Q-AWu0K7b3pjbz@+e1lEYS6 zlQezP(u*4xJuwxwRoElEqLi-aPJ_Erxt-ua0}sO_sFJu;HfqoZ3-BYIn=<%@^G5`M z@Q|?9VEkjoGAXkUdIUv;UY$)gCQ(i)Y`n0H!Hp%)-YL(nG;ch1aNw#an=~HMnWZ!S zsb4Kg8}Q)48ZfDt!lWHlg(74RaCjPtmcllI9>J=>$RHz06LJWBI879#CL1&UW$<1E zymRtFjlfcvRk$gFjo@I$Bs1?Rd^7L?Wk6|xq@yKyFUGbionWQP1;$^g6hISl1UnNR zNoGK|BheUSfkCjV%7pQNaiPMu2u>&=unlO^`7?#>T$$-iI*|xVH=bPh(>u+D%P?L? zu%vUR!gD0ArmPGuieReDqHiMFrEwncB=CJ01>p|ofgnX#OJS1*l|ql?%7Vw^LN73D z;|ZgSa*@fZ6pkd%bS71<5x#ckpp_l)P>in)?4SPVIhAiBgb4SwGTGp#G}7LbycOd| zUqFRNY3$5+aHkaE5W+DFvpSn_0;3J*V^pqGXuzj@qu7-Xwkn)^uvTZ5!AQ_a1Y@v| zMBCsx;ob`CNLp4#2KQBXnUddR;zV#&g*y%2rLy%TA}PR&5AL(lS+D_pa!_L>Lbs&K z#J>d!#$_mz24$VeSqm2lU7h^^m%&PfT9V?GlRMKGv|5NJm;!!~nLUG?GA3#qk&@$yt?aOV(+WNZbXT;WAf<3a4@Air^qd zBJ3^sfbr9mMc_dOmrJT}N^S(7iLO>f8YrBSDkw z7S&-zcZB@l2mOQp{|EdaM<^&Y2?8MQcurO3_FDWOLvfpjpOJ9f4=v1z(rDUErUh9?0s_%Ji||dh zQA#lJFR*|o*3c+W6q@uBBT*aj!SKcKnEpg=kgj&|aVN|LjkYEIzsq#A4wR}vxrY{5 zt7zm%J0ovcSAWba_bR?oa2DZK=E#H=w*P>RiZpiPt??;!2W=ha!M*5ieFs>^Ss3)B zzbbBNJ!5S~us1#+_c=DEL;7Q&Q%C1WEksJ1d=l5nwW)()c`-WKU^g!R4W%YZMM=!c zd!oACNnHkykP-1Z1YjfIGQw@7vZ|U>eDC=sF-uk6Gk^aemApxxNg)m)|GWDJ^wf9Y zVe+@gPQHnoi6`=%#ns?5d;qq>kHHtq3A|3tDwc6d+sclPl@aM~c}4CxJ!9+)8+ZS$ z>TA%ULRPRR%&`^Rxay98KvkcNJ(GqHY9D3)TT~fmlpAH%WN0IGo2dTI+7UfH*Q0dE ze@YA$bAS7WH1LC~x3-sHwjiF|8c2>1w~=XRoO zqIx?ZXB!R0|3U22GjQ#pikl^$%tNZwqp_uK9e)?)`-l)mW)D{|x_R)}0nHq*r(#M5bdGdb4^)n)oa}qMoZ)q-tqn+>tNDZZ&n_ zoViKDY?azKM~=POk-A9!x!_>2PpzTG@+iI%+v;l-TF%zy>@eJ;9MSJBG4hOdrW$O9 z&3_RJg>es>=d-0gtzUeHV@{QWvNJE7rwLmXjHaxpWaOi&V-wGcvc1AQq`OFMo+C^+xlb zD<=AbX#zuWNj0j-iecx7p*Qy(+k^PUi2=)8h2*NnD>xiy=$1B#e}H$ulCVT|?xjNd ze+g37$~m;H7U3_(kK`X2%{-+dON-~U?YerO&6+7M@-z69qsTV$Ia0{A+bQzsc4t@> zyNHeEKRK_{&(I5S$+8mHHh<2*8F**42D_E6xHf!W!i(07mn<^7L5|{cYDVnnx6tpA z>GcXa7T+(Z@QU=0^b=SN*QF%Kt727Z$pFh~^o{wy+3($7MtJo(MHFYOB+~a8pR>_( z$bKldhD~Zy>~-kMvOz=iU(Bg-00m-`eV}&u^CgGb=O-xi&v@Jh(h4qZ^o* ztF41u<4L;7zIRw@MY$1*(8-fDSNSwS0l1LACl+NA zSLPubBf{(yQCSa_&C2M(%)L;F3j8Rxg%70ULJs9sGavS~ssT&H{{u>FE>>yJ`zHVZ N002ovPDHLkV1g1duuT8} diff --git a/nether/rest/nether_portal_creator.png b/nether/rest/nether_portal_creator.png old mode 100755 new mode 100644 index 2fd7778af751ea62cee7b805e07d4c97d91ccf49..e3f8e805ce7317e790c771e63e849b36a13ffac5 GIT binary patch delta 749 zcmVhs*Y% z_;A_XJL{b@=gb^gsg};QR(h_Fizir5^-t)SQ~PsO~?Z;tS~-09GC&;Z)W-mwUaDkGho4x{`0YmhXBiUjSr{citLEf(Z5j zCg*B_2_8I?J6i-n7Wy)C`x^lIVEZF5K}pC&un#bK6MxAkva+ft@*at2R$U7TT9Ad{ z*ee7?FqDSCxF75T)PI0OH=uYWUv(_EX=5@$0wQ)zm-NRFJuv_nHfgXA@Q^tuzmp%j zfaXJh;U1H-$yjL*NjW9#6E|viQ1^WOG<$hNm%|@NMG7!Gv$T5;k1OGRI zeSnEQfQGBg&wt_p6O(6~_QV|%qYCx`PirHkH=&rFP6OhV{m^mE=a=t=U?13h7wo?00000NkvXXu0mjfX4YYx literal 687 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V3ZB;32_x*mloob6XKE+=28>| zAtg~BAW{(nAyqLRbqOAINgfSJULewv=GB(w)sg1cmf_Wr;n$NFFp?KAQ4}zBVF++x z2yz3VV0RD-b!Q0kWC-;Hk>OqpVO}6I(uX132Si5sGDP}<$QXZyD1Q(c8^90~03zdq zKqw)IAt{I{M=p${uH?Le?^Gq>A1a5o!^$6 z?)6HDU!L9VSk)f0ry}%`Lc8lMq4$$tMZ|P|{yjPqBZ^5&%y#LC)0C0FAh01I6wPf z&r=X`E%fr;dC_yz&Lk={eOz?ke&3$@J@>Yxo|0)$9Xo&u`Crj;!%%`+sH=_xK8{bN$ixf-T`nk%_(Mzj~S(drjVMBM`#AX*2C6;Fl zLVV$Gb-D!u6*Zq32qZq5oi?%NC^`jn8#SoQi%OmJ7P3IGLALuG*^h>+Of{ bkEE~O@lL%SnKKQT5E(pO{an^LB{Ts5q#f^k diff --git a/nether/rest/nether_tree.png b/nether/rest/nether_tree.png old mode 100755 new mode 100644 index c80bde726dec804f1f1e8a92808346ba486e7bfb..0c4cd89a4b251f1750e030f3fbb9bb63a7047d5e GIT binary patch delta 560 zcmV-00?+-J1HJ^18Gi-<001BJ|6u?C00DDSM?wIu&K&6g000JJOGiWiGynhq0IlMs zIRF3v32;bRa{vGf6951U69E94oEQKA00(qQO+^RX1P}lcH6r#iTL1t7zDYzuR5(vn z(`zflVGsrIeeG`DS$2g8iHH&*5fKp~5s~u!KfsvZQ_q$c|9^dMGiS~@Guv3|>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}O3Lpy$Bn%8C3=Ag>3@8l^Dh>`S z4h}324=xW6Fc1(i5D+sE5HtV)G!YRt5)wBO5;_wTJQNf?6cj%c6hIXfK^7K678XSp z7e*HsNEjGN7#K?!7)%)%P8k_b8X8d>8&Vq^R2&>t92{319Di6H9a$b8TOJ-=A0J*H zA7CILVIUx5ARuHRA!Z>VX(J=la@%zP006^DL_t&-R|Ub#cEcbH1;8r_40dqSP5b|! z*IiEH2f_xaGbCY^oNfC1c`y8-HzQT^=HW91q0YvXB5F4`Eq34rQ((ckES_B*2ByA@ zE9m{bb2Cw}U4PU)omxoiqUKB?ZpM5h%4Us-A*UG^WA_XjU{Bl95Yn!x)F;58qX^FD z){(A90)ytSnR=Gx4V6LlqZSjYQ nu4Fla0s$dmCAz{uF#ZQ5U2!35t2e8N-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+L3kHvj+t delta 453 zcmV;$0XqKV1k?kN8Gi!+001a04^sdD0MAfNR7DH~1P}!U69xtu2nZVq2^3@Q!|D-I4U4-YO64=@lAGY}9o001-*5jGMMHxd#!6B9ZU z6Fd|YKNJ)|6%|1i7DE;mMHd%F7Z*qv7)clyOc@zY85vR=8-G+B990|~SREZ%9v)pE zA6_3HVIUx5ARuHRA!Z>VXCfkLBO_`fBWxrjZ6qXbB_(hrC2=Mub0#KrCnt6%CwM3* zc_=7*C@6d>DSjy_e<~`0D=UL6EQc*Eh%GISFE1A8f{XwF0KiE^K~xx51;L9=12GT; z(3$n#*-ipN5q}NPe>s$ah?F0fv%MbPW9`Nek$@1may{Q`VI6$k(3`