From e4ef41d7af5e33fc5d06ad5fb3fb5067b29f3a8e Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 10 Jun 2015 16:57:31 +0200 Subject: [PATCH] Replace Carbone's bedrock by Wuzzy's one - See #87 --- mods/bedrock/COPYING | 14 ++++ mods/bedrock/LICENSE.txt | 13 ---- mods/bedrock/README.txt | 10 +++ mods/bedrock/depends.txt | 2 +- mods/bedrock/description.txt | 1 + mods/bedrock/init.lua | 72 +++++++++++--------- mods/bedrock/sounds/bedrock_step.1.ogg | Bin 0 -> 8413 bytes mods/bedrock/sounds/bedrock_step.2.ogg | Bin 0 -> 7478 bytes mods/bedrock/sounds/bedrock_step.3.ogg | Bin 0 -> 8272 bytes mods/bedrock/textures/bedrock_deepstone.png | Bin 373 -> 0 bytes 10 files changed, 65 insertions(+), 47 deletions(-) create mode 100644 mods/bedrock/COPYING delete mode 100755 mods/bedrock/LICENSE.txt create mode 100644 mods/bedrock/README.txt create mode 100644 mods/bedrock/description.txt create mode 100644 mods/bedrock/sounds/bedrock_step.1.ogg create mode 100644 mods/bedrock/sounds/bedrock_step.2.ogg create mode 100644 mods/bedrock/sounds/bedrock_step.3.ogg delete mode 100755 mods/bedrock/textures/bedrock_deepstone.png diff --git a/mods/bedrock/COPYING b/mods/bedrock/COPYING new file mode 100644 index 00000000..5a8e3325 --- /dev/null +++ b/mods/bedrock/COPYING @@ -0,0 +1,14 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + diff --git a/mods/bedrock/LICENSE.txt b/mods/bedrock/LICENSE.txt deleted file mode 100755 index 726257de..00000000 --- a/mods/bedrock/LICENSE.txt +++ /dev/null @@ -1,13 +0,0 @@ -+---- zlib/libpng license ----+ - -Copyright (c) 2013-2014 Calinou and contributors - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. diff --git a/mods/bedrock/README.txt b/mods/bedrock/README.txt new file mode 100644 index 00000000..6b108627 --- /dev/null +++ b/mods/bedrock/README.txt @@ -0,0 +1,10 @@ +Bedrock mod. + +Version 0.2.0 + +This mod adds an indestructible bedrock layer at the bottom of the world. + + +This mod recognizes the following minetest.conf setting: + +* `bedrock2_y`: Sets the Y coordinate on which the bedrock layer will be created (default: -30912). diff --git a/mods/bedrock/depends.txt b/mods/bedrock/depends.txt index 4ad96d51..59619ab3 100755 --- a/mods/bedrock/depends.txt +++ b/mods/bedrock/depends.txt @@ -1 +1 @@ -default +mesecons_mvps? diff --git a/mods/bedrock/description.txt b/mods/bedrock/description.txt new file mode 100644 index 00000000..0de789f6 --- /dev/null +++ b/mods/bedrock/description.txt @@ -0,0 +1 @@ +Adds an indestructable bedrock layer at the bottom of the world. diff --git a/mods/bedrock/init.lua b/mods/bedrock/init.lua index e4a5a189..3d098465 100755 --- a/mods/bedrock/init.lua +++ b/mods/bedrock/init.lua @@ -1,41 +1,47 @@ -minetest.register_ore({ - ore_type = "scatter", - ore = "bedrock:bedrock", - wherein = "default:stone", - clust_scarcity = 1 * 1 * 1, - clust_num_ores = 5, - clust_size = 2, - height_min = -30912, -- Engine changes can modify this value. - height_max = -30656, -- This ensures the bottom of the world is not even loaded. -}) +local bedrock = {} -minetest.register_ore({ - ore_type = "scatter", - ore = "bedrock:deepstone", - wherein = "default:stone", - clust_scarcity = 1 * 1 * 1, - clust_num_ores = 5, - clust_size = 2, - height_min = -30656, - height_max = -30000, -}) +bedrock.layer = -30912 -- determined as appropriate by experiment +bedrock.node = {name = "bedrock:bedrock"} + +local depth = tonumber(minetest.setting_get("bedrock_y")) +if depth ~= nil then + bedrock.layer = depth +end + +minetest.register_on_generated(function(minp, maxp) + if maxp.y >= bedrock.layer and minp.y <= bedrock.layer then + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local data = vm:get_data() + local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax}) + local c_bedrock = minetest.get_content_id("bedrock:bedrock") + + for x = minp.x, maxp.x do + for z = minp.z, maxp.z do + local p_pos = area:index(x, bedrock.layer, z) + data[p_pos] = c_bedrock + end + end + + vm:set_data(data) + vm:calc_lighting() + vm:update_liquids() + vm:write_to_map() + end +end) minetest.register_node("bedrock:bedrock", { description = "Bedrock", - tile_images = {"bedrock_bedrock.png"}, + tiles = {"bedrock_bedrock.png"}, + groups = {immortal=1, not_in_creative_inventory=1, unbreakable = 1}, + sounds = { footstep = { name = "bedrock_step", gain = 1 } }, + is_ground_content = false, + on_blast = function() end, + on_destruct = function () end, + can_dig = function() return false end, + diggable = false, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = 1}, -- For Map Tools' admin pickaxe. - sounds = default.node_sound_stone_defaults(), }) -minetest.register_node("bedrock:deepstone", { - description = "Deepstone", - tile_images = {"bedrock_deepstone.png"}, - drop = "default:stone", -- Intended. - groups = {cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -if minetest.setting_getbool("log_mods") then - minetest.log("action", "Carbone: [bedrock] loaded.") +if minetest.get_modpath("mesecons_mvps") ~= nil then + mesecon:register_mvps_stopper("bedrock2:bedrock") end diff --git a/mods/bedrock/sounds/bedrock_step.1.ogg b/mods/bedrock/sounds/bedrock_step.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..63f364dfd78d56d69f426b96ea51916e2a70144c GIT binary patch literal 8413 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 TmA~~I00000NkvXXu0mjfoUoVb