diff --git a/new_api/obsidian_rtmmp/depends.txt b/new_api/obsidian_rtmmp/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/new_api/obsidian_rtmmp/depends.txt @@ -0,0 +1 @@ +default diff --git a/new_api/obsidian_rtmmp/init.lua b/new_api/obsidian_rtmmp/init.lua new file mode 100644 index 0000000..36137a0 --- /dev/null +++ b/new_api/obsidian_rtmmp/init.lua @@ -0,0 +1,73 @@ +-- Obsidian mod, originally made by +-- modifed by rtmmp-team + +minetest.register_node("obsidian_rtmmp:obsidian_block", { + description="Obsidian", + tile_images = {"obsidian_rtmmp_block.png"}, + inventory_image = minetest.inventorycube("obsidian_rtmmp_block.png"), + is_ground_content = true, + is_ground_content = true, + groups = {fastness = 1, level = 3}, + sounds = default.node_sound_stone_defaults(), + drop = { + max_items = 1, + items = { + { + items = {"obsidian_rtmmp:obsidian_block"}, + tools = {"default:pick_mese"}, + } + } + } +}) + +local function check_water(pos, dx, dy, dz) + local n = minetest.env:get_node({x = pos.x + dx, y = pos.y + dy, z = pos.z + dz}) + return n.name == "default:water_flowing" or n.name == "default:water_source" +end + +local function find_water(pos) + return check_water(pos, -1, 0, 0) or check_water(pos, 1, 0, 0) + or check_water(pos, 0, -1, 0) or check_water(pos, 0, 1, 0) + or check_water(pos, 0, 0, -1) or check_water(pos, 0, 0, 1) +end + +local function replace(pos, dx, dy, dz) + if check_water(pos, dx, dy, dz) then + minetest.env:remove_node({x = pos.x + dx, y = pos.y + dy, z = pos.z + dz}) + end +end + +local function replace_water(pos) + replace(pos, -1, 0, 0) + replace(pos, 1, 0, 0) + replace(pos, 0, -1, 0) + replace(pos, 0, 1, 0) + replace(pos, 0, 0, -1) + replace(pos, 0, 0, 1) +end + +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + neighbors = {"default:water_source", "default:water_flowing"}, + interval = 1, + chance = 1, + action = function(pos, node) + if find_water(pos) then + replace_water(pos) + minetest.env:add_node(pos, {name="default:cobble"}) + end + end +}) + +minetest.register_abm({ + nodenames = {"default:lava_source"}, + neighbors = {"default:water_source", "default:water_flowing"}, + interval = 1, + chance = 1, + action = function(pos, node) + if find_water(pos) then + replace_water(pos) + minetest.env:add_node(pos, {name="obsidian_rtmmp:obsidian_block"}) + end + end +}) diff --git a/new_api/obsidian_rtmmp/textures/obsidian_rtmmp_block.png b/new_api/obsidian_rtmmp/textures/obsidian_rtmmp_block.png new file mode 100644 index 0000000..8587821 Binary files /dev/null and b/new_api/obsidian_rtmmp/textures/obsidian_rtmmp_block.png differ