diff --git a/mods/default/aliases.lua b/mods/default/aliases.lua index 7247751..1f67336 100644 --- a/mods/default/aliases.lua +++ b/mods/default/aliases.lua @@ -41,7 +41,6 @@ minetest.register_alias("mossycobble", "default:mossycobble") minetest.register_alias("steelblock", "default:steelblock") minetest.register_alias("nyancat", "default:nyancat") minetest.register_alias("nyancat_rainbow", "default:nyancat_rainbow") -minetest.register_alias("sapling", "default:sapling") minetest.register_alias("apple", "default:apple") minetest.register_alias("WPick", "default:pick_wood") diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua index 6ea13bb..5dbdee8 100644 --- a/mods/default/crafting.lua +++ b/mods/default/crafting.lua @@ -776,12 +776,6 @@ minetest.register_craft({ burntime = 1, }) -minetest.register_craft({ - type = "fuel", - recipe = "default:sapling", - burntime = 10, -}) - minetest.register_craft({ type = "fuel", recipe = "default:apple", @@ -800,20 +794,8 @@ minetest.register_craft({ burntime = 370, }) -minetest.register_craft({ - type = "fuel", - recipe = "default:junglesapling", - burntime = 10, -}) - minetest.register_craft({ type = "fuel", recipe = "default:grass_1", burntime = 2, }) - -minetest.register_craft({ - type = "fuel", - recipe = "default:pine_sapling", - burntime = 10, -}) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 426e27c..f075558 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -170,27 +170,6 @@ function default.grow_papyrus(pos, node) return true end -minetest.register_abm({ - nodenames = {"default:cactus"}, - neighbors = {"group:sand"}, - interval = 50, - chance = 20, - action = function(...) - default.grow_cactus(...) - end -}) - -minetest.register_abm({ - nodenames = {"default:papyrus"}, - neighbors = {"default:dirt", "default:dirt_with_grass"}, - interval = 50, - chance = 20, - action = function(...) - default.grow_papyrus(...) - end -}) - - -- -- dig upwards -- @@ -342,4 +321,3 @@ minetest.register_abm({ end end }) - diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 4865341..f813c99 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -43,7 +43,7 @@ minetest.register_alias("mapgen_stair_sandstonebrick", "stairs:stair_sandstonebr -- Blob ore first to avoid other ores inside blobs function default.register_ores() - minetest.register_ore({ + minetest.register_ore({ ore_type = "blob", ore = "default:clay", wherein = {"default:sand"}, @@ -62,7 +62,7 @@ function default.register_ores() }, }) - minetest.register_ore({ + minetest.register_ore({ ore_type = "blob", ore = "default:sand", wherein = {"default:stone"}, @@ -449,7 +449,7 @@ function default.register_decorations() y_max = 31000, decoration = "flowers:rose", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -467,7 +467,7 @@ function default.register_decorations() y_max = 31000, decoration = "flowers:tulip", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -485,7 +485,7 @@ function default.register_decorations() y_max = 31000, decoration = "flowers:dandelion_yellow", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -503,7 +503,7 @@ function default.register_decorations() y_max = 31000, decoration = "flowers:geranium", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -521,7 +521,7 @@ function default.register_decorations() y_max = 31000, decoration = "flowers:viola", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -559,7 +559,7 @@ function default.register_decorations() y_max = 31000, decoration = "default:grass_1", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -577,7 +577,7 @@ function default.register_decorations() y_max = 31000, decoration = "default:grass_2", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -595,7 +595,7 @@ function default.register_decorations() y_max = 31000, decoration = "default:grass_3", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, @@ -613,7 +613,7 @@ function default.register_decorations() y_max = 31000, decoration = "default:grass_4", }) - + minetest.register_decoration({ deco_type = "simple", place_on = {"default:dirt_with_grass"}, diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 74c8642..292f8bc 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -388,24 +388,6 @@ minetest.register_node("default:wood", { sounds = default.node_sound_wood_defaults(), }) -minetest.register_node("default:sapling", { - description = "Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"default_sapling.png"}, - inventory_image = "default_sapling.png", - wield_image = "default_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}, - sounds = default.node_sound_leaves_defaults(), -}) - minetest.register_node("default:leaves", { description = "Leaves", drawtype = "allfaces_optional", @@ -418,11 +400,6 @@ minetest.register_node("default:leaves", { drop = { max_items = 1, items = { - { - -- player will get sapling with 1/20 chance - items = {'default:sapling'}, - rarity = 20, - }, { -- player will get leaves only if he get no saplings, -- this is because max_items is 1 @@ -493,11 +470,6 @@ minetest.register_node("default:jungleleaves", { drop = { max_items = 1, items = { - { - -- player will get sapling with 1/20 chance - items = {'default:junglesapling'}, - rarity = 20, - }, { -- player will get leaves only if he get no saplings, -- this is because max_items is 1 @@ -510,25 +482,6 @@ minetest.register_node("default:jungleleaves", { after_place_node = default.after_place_leaves, }) -minetest.register_node("default:junglesapling", { - description = "Jungle Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"default_junglesapling.png"}, - inventory_image = "default_junglesapling.png", - wield_image = "default_junglesapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}, - sounds = default.node_sound_leaves_defaults(), -}) - - minetest.register_node("default:pinetree", { description = "Pine Tree", @@ -561,11 +514,6 @@ minetest.register_node("default:pine_needles",{ drop = { max_items = 1, items = { - { - -- player will get sapling with 1/20 chance - items = {"default:pine_sapling"}, - rarity = 20, - }, { -- player will get leaves only if he get no saplings, -- this is because max_items is 1 @@ -578,23 +526,6 @@ minetest.register_node("default:pine_needles",{ after_place_node = default.after_place_leaves, }) -minetest.register_node("default:pine_sapling", { - description = "Pine Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"default_pine_sapling.png"}, - inventory_image = "default_pine_sapling.png", - wield_image = "default_pine_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,dig_immediate=3,flammable=2,attached_node=1,sapling=1}, - sounds = default.node_sound_leaves_defaults(), -}) - -- -- Ores -- diff --git a/mods/default/trees.lua b/mods/default/trees.lua index 8e50355..9c2fa90 100644 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -17,53 +17,6 @@ local function can_grow(pos) return true end --- Sapling ABMs - -minetest.register_abm({ - nodenames = {"default:sapling"}, - interval = 10, - chance = 50, - action = function(pos, node) - if not can_grow(pos) then - return - end - - minetest.log("action", "A sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_tree(pos, random(1, 4) == 1) - end -}) - -minetest.register_abm({ - nodenames = {"default:junglesapling"}, - interval = 11, - chance = 50, - action = function(pos, node) - if not can_grow(pos) then - return - end - - minetest.log("action", "A jungle sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_jungle_tree(pos) - end -}) - -minetest.register_abm({ - nodenames = {"default:pine_sapling"}, - interval = 12, - chance = 50, - action = function(pos, node) - if not can_grow(pos) then - return - end - - minetest.log("action", "A pine sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_pine_tree(pos) - end -}) - -- Appletree, jungletree function local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, @@ -345,4 +298,3 @@ function default.grow_pine_tree(pos) vm:write_to_map() vm:update_map() end - diff --git a/mods/doors/README.txt b/mods/doors/README.txt deleted file mode 100644 index 146af8e..0000000 --- a/mods/doors/README.txt +++ /dev/null @@ -1,46 +0,0 @@ -Minetest 0.4 mod: doors -======================= -version: 1.3 - -License of source code: ------------------------ -Copyright (C) 2012 PilzAdam -modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) - -This program is free software. It comes without any warranty, to -the extent permitted by applicable law. You can redistribute it -and/or modify it under the terms of the Do What The Fuck You Want -To Public License, Version 2, as published by Sam Hocevar. See -http://sam.zoy.org/wtfpl/COPYING for more details. - -License of textures --------------------------------------- -following Textures created by Fernando Zapata (CC BY-SA 3.0): - door_wood.png - door_wood_a.png - door_wood_a_r.png - door_wood_b.png - door_wood_b_r.png - -following Textures created by BlockMen (WTFPL): - door_trapdoor.png - door_obsidian_glass_side.png - -following textures created by celeron55 (CC BY-SA 3.0): - door_trapdoor_side.png - door_glass_a.png - door_glass_b.png - -following Textures created by PenguinDad (CC BY-SA 4.0): - door_glass.png - door_obsidian_glass.png - -All other textures (created by PilzAdam): WTFPL - - -License of sounds --------------------------------------- -Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen - door_open.ogg -Closing-Sound created by bennstir (CC BY 3.0) - door_close.ogg diff --git a/mods/doors/depends.txt b/mods/doors/depends.txt deleted file mode 100644 index 5e28bee..0000000 --- a/mods/doors/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -screwdriver? diff --git a/mods/doors/init.lua b/mods/doors/init.lua deleted file mode 100644 index a553565..0000000 --- a/mods/doors/init.lua +++ /dev/null @@ -1,502 +0,0 @@ -doors = {} - --- Registers a door -function doors.register_door(name, def) - def.groups.not_in_creative_inventory = 1 - - local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} - - if not def.node_box_bottom then - def.node_box_bottom = box - end - if not def.node_box_top then - def.node_box_top = box - end - if not def.selection_box_bottom then - def.selection_box_bottom= box - end - if not def.selection_box_top then - def.selection_box_top = box - end - - if not def.sound_close_door then - def.sound_close_door = "doors_door_close" - end - if not def.sound_open_door then - def.sound_open_door = "doors_door_open" - end - - - minetest.register_craftitem(name, { - description = def.description, - inventory_image = def.inventory_image, - - on_place = function(itemstack, placer, pointed_thing) - if not pointed_thing.type == "node" then - return itemstack - end - - local ptu = pointed_thing.under - local nu = minetest.get_node(ptu) - if minetest.registered_nodes[nu.name].on_rightclick then - return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack) - end - - local pt = pointed_thing.above - local pt2 = {x=pt.x, y=pt.y, z=pt.z} - pt2.y = pt2.y+1 - if - not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or - not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or - not placer or - not placer:is_player() - then - return itemstack - end - - if minetest.is_protected(pt, placer:get_player_name()) or - minetest.is_protected(pt2, placer:get_player_name()) then - minetest.record_protection_violation(pt, placer:get_player_name()) - return itemstack - end - - local p2 = minetest.dir_to_facedir(placer:get_look_dir()) - local pt3 = {x=pt.x, y=pt.y, z=pt.z} - if p2 == 0 then - pt3.x = pt3.x-1 - elseif p2 == 1 then - pt3.z = pt3.z+1 - elseif p2 == 2 then - pt3.x = pt3.x+1 - elseif p2 == 3 then - pt3.z = pt3.z-1 - end - if minetest.get_item_group(minetest.get_node(pt3).name, "door") == 0 then - minetest.set_node(pt, {name=name.."_b_1", param2=p2}) - minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) - else - minetest.set_node(pt, {name=name.."_b_2", param2=p2}) - minetest.set_node(pt2, {name=name.."_t_2", param2=p2}) - minetest.get_meta(pt):set_int("right", 1) - minetest.get_meta(pt2):set_int("right", 1) - end - - if def.only_placer_can_open then - local pn = placer:get_player_name() - local meta = minetest.get_meta(pt) - meta:set_string("doors_owner", pn) - meta:set_string("infotext", "Owned by "..pn) - meta = minetest.get_meta(pt2) - meta:set_string("doors_owner", pn) - meta:set_string("infotext", "Owned by "..pn) - end - - if not minetest.setting_getbool("creative_mode") then - itemstack:take_item() - end - return itemstack - end, - }) - - local tt = def.tiles_top - local tb = def.tiles_bottom - - local function after_dig_node(pos, name, digger) - local node = minetest.get_node(pos) - if node.name == name then - minetest.node_dig(pos, node, digger) - end - end - - local function check_and_blast(pos, name) - local node = minetest.get_node(pos) - if node.name == name then - minetest.remove_node(pos) - end - end - - local function make_on_blast(base_name, dir, door_type, other_door_type) - if def.only_placer_can_open then - return function() end - else - return function(pos, intensity) - check_and_blast(pos, base_name .. door_type) - pos.y = pos.y + dir - check_and_blast(pos, base_name .. other_door_type) - end - end - end - - local function on_rightclick(pos, dir, check_name, replace, replace_dir, params) - pos.y = pos.y+dir - if not minetest.get_node(pos).name == check_name then - return - end - local p2 = minetest.get_node(pos).param2 - p2 = params[p2+1] - - minetest.swap_node(pos, {name=replace_dir, param2=p2}) - - pos.y = pos.y-dir - minetest.swap_node(pos, {name=replace, param2=p2}) - - local snd_1 = def.sound_close_door - local snd_2 = def.sound_open_door - if params[1] == 3 then - snd_1 = def.sound_open_door - snd_2 = def.sound_close_door - end - - if minetest.get_meta(pos):get_int("right") ~= 0 then - minetest.sound_play(snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) - else - minetest.sound_play(snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) - end - end - - local function check_player_priv(pos, player) - if not def.only_placer_can_open then - return true - end - local meta = minetest.get_meta(pos) - local pn = player:get_player_name() - return meta:get_string("doors_owner") == pn - end - - local function on_rotate(pos, node, dir, user, check_name, mode, new_param2) - if not check_player_priv(pos, user) then - return false - end - if mode ~= screwdriver.ROTATE_FACE then - return false - end - - pos.y = pos.y + dir - if not minetest.get_node(pos).name == check_name then - return false - end - if minetest.is_protected(pos, user:get_player_name()) then - minetest.record_protection_violation(pos, user:get_player_name()) - return false - end - - local node2 = minetest.get_node(pos) - node2.param2 = (node2.param2 + 1) % 4 - minetest.swap_node(pos, node2) - - pos.y = pos.y - dir - node.param2 = (node.param2 + 1) % 4 - minetest.swap_node(pos, node) - return true - end - - minetest.register_node(name.."_b_1", { - tiles = {tb[2], tb[2], tb[2], tb[2], tb[1], tb[1].."^[transformfx"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = name, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_bottom - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_bottom - }, - groups = def.groups, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - pos.y = pos.y+1 - after_dig_node(pos, name.."_t_1", digger) - end, - - on_rightclick = function(pos, node, clicker) - if check_player_priv(pos, clicker) then - on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) - end - end, - - on_rotate = function(pos, node, user, mode, new_param2) - return on_rotate(pos, node, 1, user, name.."_t_1", mode) - end, - - can_dig = check_player_priv, - sounds = def.sounds, - sunlight_propagates = def.sunlight, - on_blast = make_on_blast(name, 1, "_b_1", "_t_1") - }) - - minetest.register_node(name.."_t_1", { - tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1].."^[transformfx"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = "", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_top - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_top - }, - groups = def.groups, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - pos.y = pos.y-1 - after_dig_node(pos, name.."_b_1", digger) - end, - - on_rightclick = function(pos, node, clicker) - if check_player_priv(pos, clicker) then - on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0}) - end - end, - - on_rotate = function(pos, node, user, mode, new_param2) - return on_rotate(pos, node, -1, user, name.."_b_1", mode) - end, - - can_dig = check_player_priv, - sounds = def.sounds, - sunlight_propagates = def.sunlight, - on_blast = make_on_blast(name, -1, "_t_1", "_b_1") - }) - - minetest.register_node(name.."_b_2", { - tiles = {tb[2], tb[2], tb[2], tb[2], tb[1].."^[transformfx", tb[1]}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = name, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_bottom - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_bottom - }, - groups = def.groups, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - pos.y = pos.y+1 - after_dig_node(pos, name.."_t_2", digger) - end, - - on_rightclick = function(pos, node, clicker) - if check_player_priv(pos, clicker) then - on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) - end - end, - - on_rotate = function(pos, node, user, mode, new_param2) - return on_rotate(pos, node, 1, user, name.."_t_2", mode) - end, - - can_dig = check_player_priv, - sounds = def.sounds, - sunlight_propagates = def.sunlight, - on_blast = make_on_blast(name, 1, "_b_2", "_t_2") - }) - - minetest.register_node(name.."_t_2", { - tiles = {tt[2], tt[2], tt[2], tt[2], tt[1].."^[transformfx", tt[1]}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = "", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_top - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_top - }, - groups = def.groups, - - after_dig_node = function(pos, oldnode, oldmetadata, digger) - pos.y = pos.y-1 - after_dig_node(pos, name.."_b_2", digger) - end, - - on_rightclick = function(pos, node, clicker) - if check_player_priv(pos, clicker) then - on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) - end - end, - - on_rotate = function(pos, node, user, mode, new_param2) - return on_rotate(pos, node, -1, user, name.."_b_2", mode) - end, - - can_dig = check_player_priv, - sounds = def.sounds, - sunlight_propagates = def.sunlight, - on_blast = make_on_blast(name, -1, "_t_2", "_b_2") - }) - -end - -doors.register_door("doors:door_wood", { - description = "Wooden Door", - inventory_image = "doors_wood.png", - groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, - tiles_bottom = {"doors_wood_b.png", "doors_brown.png"}, - tiles_top = {"doors_wood_a.png", "doors_brown.png"}, - sounds = default.node_sound_wood_defaults(), - sunlight = false, -}) - -minetest.register_craft({ - output = "doors:door_wood", - recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"} - } -}) - -doors.register_door("doors:door_steel", { - description = "Steel Door", - inventory_image = "doors_steel.png", - groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, - tiles_bottom = {"doors_steel_b.png", "doors_grey.png"}, - tiles_top = {"doors_steel_a.png", "doors_grey.png"}, - only_placer_can_open = true, - sounds = default.node_sound_wood_defaults(), - sunlight = false, -}) - -minetest.register_craft({ - output = "doors:door_steel", - recipe = { - {"default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot"} - } -}) - -doors.register_door("doors:door_glass", { - description = "Glass Door", - inventory_image = "doors_glass.png", - groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, - tiles_bottom = {"doors_glass_b.png", "doors_glass_side.png"}, - tiles_top = {"doors_glass_a.png", "doors_glass_side.png"}, - sounds = default.node_sound_glass_defaults(), - sunlight = true, -}) - -minetest.register_craft({ - output = "doors:door_glass", - recipe = { - {"default:glass", "default:glass"}, - {"default:glass", "default:glass"}, - {"default:glass", "default:glass"} - } -}) - -doors.register_door("doors:door_obsidian_glass", { - description = "Obsidian Glass Door", - inventory_image = "doors_obsidian_glass.png", - groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, - tiles_bottom = {"doors_obsidian_glass_b.png", "doors_obsidian_glass_side.png"}, - tiles_top = {"doors_obsidian_glass_a.png", "doors_obsidian_glass_side.png"}, - sounds = default.node_sound_glass_defaults(), - sunlight = true, -}) - -minetest.register_craft({ - output = "doors:door_obsidian_glass", - recipe = { - {"default:obsidian_glass", "default:obsidian_glass"}, - {"default:obsidian_glass", "default:obsidian_glass"}, - {"default:obsidian_glass", "default:obsidian_glass"} - } -}) - - -----trapdoor---- - -function doors.register_trapdoor(name, def) - local name_closed = name - local name_opened = name.."_open" - - def.on_rightclick = function (pos, node) - local newname = node.name == name_closed and name_opened or name_closed - local sound = false - if node.name == name_closed then sound = def.sound_open end - if node.name == name_opened then sound = def.sound_close end - if sound then - minetest.sound_play(sound, {pos = pos, gain = 0.3, max_hear_distance = 10}) - end - minetest.set_node(pos, {name = newname, param1 = node.param1, param2 = node.param2}) - end - - def.on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple - - -- Common trapdoor configuration - def.drawtype = "nodebox" - def.paramtype = "light" - def.paramtype2 = "facedir" - def.is_ground_content = false - - local def_opened = table.copy(def) - local def_closed = table.copy(def) - - def_closed.node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} - } - def_closed.selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} - } - def_closed.tiles = { def.tile_front, def.tile_front, def.tile_side, def.tile_side, - def.tile_side, def.tile_side } - - def_opened.node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} - } - def_opened.selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} - } - def_opened.tiles = { def.tile_side, def.tile_side, def.tile_side, def.tile_side, - def.tile_front, def.tile_front } - def_opened.drop = name_closed - def_opened.groups.not_in_creative_inventory = 1 - - minetest.register_node(name_opened, def_opened) - minetest.register_node(name_closed, def_closed) -end - - - -doors.register_trapdoor("doors:trapdoor", { - description = "Trapdoor", - inventory_image = "doors_trapdoor.png", - wield_image = "doors_trapdoor.png", - tile_front = "doors_trapdoor.png", - tile_side = "doors_trapdoor_side.png", - groups = {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=2, door=1}, - sounds = default.node_sound_wood_defaults(), - sound_open = "doors_door_open", - sound_close = "doors_door_close" -}) - -minetest.register_craft({ - output = 'doors:trapdoor 2', - recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, - {'', '', ''}, - } -}) diff --git a/mods/doors/sounds/doors_door_close.ogg b/mods/doors/sounds/doors_door_close.ogg deleted file mode 100644 index a39452b..0000000 Binary files a/mods/doors/sounds/doors_door_close.ogg and /dev/null differ diff --git a/mods/doors/sounds/doors_door_open.ogg b/mods/doors/sounds/doors_door_open.ogg deleted file mode 100644 index 7ec7f48..0000000 Binary files a/mods/doors/sounds/doors_door_open.ogg and /dev/null differ diff --git a/mods/doors/textures/doors_brown.png b/mods/doors/textures/doors_brown.png deleted file mode 100644 index 8c8e3d8..0000000 Binary files a/mods/doors/textures/doors_brown.png and /dev/null differ diff --git a/mods/doors/textures/doors_glass.png b/mods/doors/textures/doors_glass.png deleted file mode 100644 index 49ec245..0000000 Binary files a/mods/doors/textures/doors_glass.png and /dev/null differ diff --git a/mods/doors/textures/doors_glass_a.png b/mods/doors/textures/doors_glass_a.png deleted file mode 100644 index da25402..0000000 Binary files a/mods/doors/textures/doors_glass_a.png and /dev/null differ diff --git a/mods/doors/textures/doors_glass_b.png b/mods/doors/textures/doors_glass_b.png deleted file mode 100644 index da25402..0000000 Binary files a/mods/doors/textures/doors_glass_b.png and /dev/null differ diff --git a/mods/doors/textures/doors_glass_side.png b/mods/doors/textures/doors_glass_side.png deleted file mode 100644 index 755672b..0000000 Binary files a/mods/doors/textures/doors_glass_side.png and /dev/null differ diff --git a/mods/doors/textures/doors_grey.png b/mods/doors/textures/doors_grey.png deleted file mode 100644 index ad110c7..0000000 Binary files a/mods/doors/textures/doors_grey.png and /dev/null differ diff --git a/mods/doors/textures/doors_obsidian_glass.png b/mods/doors/textures/doors_obsidian_glass.png deleted file mode 100644 index c327720..0000000 Binary files a/mods/doors/textures/doors_obsidian_glass.png and /dev/null differ diff --git a/mods/doors/textures/doors_obsidian_glass_a.png b/mods/doors/textures/doors_obsidian_glass_a.png deleted file mode 100644 index d5ac83d..0000000 Binary files a/mods/doors/textures/doors_obsidian_glass_a.png and /dev/null differ diff --git a/mods/doors/textures/doors_obsidian_glass_b.png b/mods/doors/textures/doors_obsidian_glass_b.png deleted file mode 100644 index d5ac83d..0000000 Binary files a/mods/doors/textures/doors_obsidian_glass_b.png and /dev/null differ diff --git a/mods/doors/textures/doors_obsidian_glass_side.png b/mods/doors/textures/doors_obsidian_glass_side.png deleted file mode 100644 index aa4c63a..0000000 Binary files a/mods/doors/textures/doors_obsidian_glass_side.png and /dev/null differ diff --git a/mods/doors/textures/doors_steel.png b/mods/doors/textures/doors_steel.png deleted file mode 100644 index 042a1bc..0000000 Binary files a/mods/doors/textures/doors_steel.png and /dev/null differ diff --git a/mods/doors/textures/doors_steel_a.png b/mods/doors/textures/doors_steel_a.png deleted file mode 100644 index 84ff11d..0000000 Binary files a/mods/doors/textures/doors_steel_a.png and /dev/null differ diff --git a/mods/doors/textures/doors_steel_b.png b/mods/doors/textures/doors_steel_b.png deleted file mode 100644 index 77ffbe3..0000000 Binary files a/mods/doors/textures/doors_steel_b.png and /dev/null differ diff --git a/mods/doors/textures/doors_trapdoor.png b/mods/doors/textures/doors_trapdoor.png deleted file mode 100644 index e92c8b2..0000000 Binary files a/mods/doors/textures/doors_trapdoor.png and /dev/null differ diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png deleted file mode 100644 index c860523..0000000 Binary files a/mods/doors/textures/doors_trapdoor_side.png and /dev/null differ diff --git a/mods/doors/textures/doors_wood.png b/mods/doors/textures/doors_wood.png deleted file mode 100644 index d3a62ab..0000000 Binary files a/mods/doors/textures/doors_wood.png and /dev/null differ diff --git a/mods/doors/textures/doors_wood_a.png b/mods/doors/textures/doors_wood_a.png deleted file mode 100644 index 86a747a..0000000 Binary files a/mods/doors/textures/doors_wood_a.png and /dev/null differ diff --git a/mods/doors/textures/doors_wood_b.png b/mods/doors/textures/doors_wood_b.png deleted file mode 100644 index 9665098..0000000 Binary files a/mods/doors/textures/doors_wood_b.png and /dev/null differ diff --git a/mods/stairs/README.txt b/mods/stairs/README.txt deleted file mode 100644 index 716a677..0000000 --- a/mods/stairs/README.txt +++ /dev/null @@ -1,26 +0,0 @@ -Minetest 0.4 mod: stairs -========================= - -License of source code: ------------------------ -Copyright (C) 2011-2012 Kahrl -Copyright (C) 2011-2012 celeron55, Perttu Ahola - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -http://www.gnu.org/licenses/lgpl-2.1.html - -License of media (textures and sounds) --------------------------------------- -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -http://creativecommons.org/licenses/by-sa/3.0/ - -Authors of media files ------------------------ -Everything not listed in here: -Copyright (C) 2010-2012 celeron55, Perttu Ahola - - diff --git a/mods/stairs/depends.txt b/mods/stairs/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/stairs/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua deleted file mode 100644 index 7f84b4c..0000000 --- a/mods/stairs/init.lua +++ /dev/null @@ -1,319 +0,0 @@ --- Minetest 0.4 mod: stairs --- See README.txt for licensing and other information. - -stairs = {} - --- Node will be called stairs:stair_ -function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) - minetest.register_node(":stairs:stair_" .. subname, { - description = description, - drawtype = "mesh", - mesh = "stairs_stair.obj", - tiles = images, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - groups = groups, - sounds = sounds, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - {-0.5, 0, 0, 0.5, 0.5, 0.5}, - }, - }, - collision_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - {-0.5, 0, 0, 0.5, 0.5, 0.5}, - }, - }, - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - return itemstack - end - - local p0 = pointed_thing.under - local p1 = pointed_thing.above - local param2 = 0 - - local placer_pos = placer:getpos() - if placer_pos then - local dir = { - x = p1.x - placer_pos.x, - y = p1.y - placer_pos.y, - z = p1.z - placer_pos.z - } - param2 = minetest.dir_to_facedir(dir) - end - - if p0.y-1 == p1.y then - param2 = param2 + 20 - if param2 == 21 then - param2 = 23 - elseif param2 == 23 then - param2 = 21 - end - end - - return minetest.item_place(itemstack, placer, pointed_thing, param2) - end, - }) - - -- for replace ABM - minetest.register_node(":stairs:stair_" .. subname.."upside_down", { - replace_name = "stairs:stair_" .. subname, - groups = {slabs_replace=1}, - }) - - minetest.register_craft({ - output = 'stairs:stair_' .. subname .. ' 6', - recipe = { - {recipeitem, "", ""}, - {recipeitem, recipeitem, ""}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - -- Flipped recipe for the silly minecrafters - minetest.register_craft({ - output = 'stairs:stair_' .. subname .. ' 6', - recipe = { - {"", "", recipeitem}, - {"", recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) -end - --- Node will be called stairs:slab_ -function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) - minetest.register_node(":stairs:slab_" .. subname, { - description = description, - drawtype = "nodebox", - tiles = images, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - groups = groups, - sounds = sounds, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, - }, - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - return itemstack - end - - -- If it's being placed on an another similar one, replace it with - -- a full block - local slabpos = nil - local slabnode = nil - local p0 = pointed_thing.under - local p1 = pointed_thing.above - local n0 = minetest.get_node(p0) - local n1 = minetest.get_node(p1) - local param2 = 0 - - local n0_is_upside_down = (n0.name == "stairs:slab_" .. subname and - n0.param2 >= 20) - - if n0.name == "stairs:slab_" .. subname and not n0_is_upside_down and p0.y+1 == p1.y then - slabpos = p0 - slabnode = n0 - elseif n1.name == "stairs:slab_" .. subname then - slabpos = p1 - slabnode = n1 - end - if slabpos then - -- Remove the slab at slabpos - minetest.remove_node(slabpos) - -- Make a fake stack of a single item and try to place it - local fakestack = ItemStack(recipeitem) - fakestack:set_count(itemstack:get_count()) - - pointed_thing.above = slabpos - local success - fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) - -- If the item was taken from the fake stack, decrement original - if success then - itemstack:set_count(fakestack:get_count()) - -- Else put old node back - else - minetest.set_node(slabpos, slabnode) - end - return itemstack - end - - -- Upside down slabs - if p0.y-1 == p1.y then - -- Turn into full block if pointing at a existing slab - if n0_is_upside_down then - -- Remove the slab at the position of the slab - minetest.remove_node(p0) - -- Make a fake stack of a single item and try to place it - local fakestack = ItemStack(recipeitem) - fakestack:set_count(itemstack:get_count()) - - pointed_thing.above = p0 - local success - fakestack, success = minetest.item_place(fakestack, placer, pointed_thing) - -- If the item was taken from the fake stack, decrement original - if success then - itemstack:set_count(fakestack:get_count()) - -- Else put old node back - else - minetest.set_node(p0, n0) - end - return itemstack - end - - -- Place upside down slab - param2 = 20 - end - - -- If pointing at the side of a upside down slab - if n0_is_upside_down and p0.y+1 ~= p1.y then - param2 = 20 - end - - return minetest.item_place(itemstack, placer, pointed_thing, param2) - end, - }) - - -- for replace ABM - minetest.register_node(":stairs:slab_" .. subname.."upside_down", { - replace_name = "stairs:slab_"..subname, - groups = {slabs_replace=1}, - }) - - minetest.register_craft({ - output = 'stairs:slab_' .. subname .. ' 6', - recipe = { - {recipeitem, recipeitem, recipeitem}, - }, - }) -end - --- Replace old "upside_down" nodes with new param2 versions -minetest.register_abm({ - nodenames = {"group:slabs_replace"}, - interval = 1, - chance = 1, - action = function(pos, node) - node.name = minetest.registered_nodes[node.name].replace_name - node.param2 = node.param2 + 20 - if node.param2 == 21 then - node.param2 = 23 - elseif node.param2 == 23 then - node.param2 = 21 - end - minetest.set_node(pos, node) - end, -}) - --- Nodes will be called stairs:{stair,slab}_ -function stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds) - stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) - stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) -end - -stairs.register_stair_and_slab("wood", "default:wood", - {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, - {"default_wood.png"}, - "Wooden Stair", - "Wooden Slab", - default.node_sound_wood_defaults()) - -stairs.register_stair_and_slab("stone", "default:stone", - {cracky=3}, - {"default_stone.png"}, - "Stone Stair", - "Stone Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("cobble", "default:cobble", - {cracky=3}, - {"default_cobble.png"}, - "Cobblestone Stair", - "Cobblestone Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("desert_stone", "default:desert_stone", - {cracky=3}, - {"default_desert_stone.png"}, - "Desertstone Stair", - "Desertstone Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("desert_cobble", "default:desert_cobble", - {cracky=3}, - {"default_desert_cobble.png"}, - "Desert Cobblestone Stair", - "Desert Cobblestone Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("desert_stonebrick", "default:desert_stonebrick", - {cracky=3}, - {"default_desert_stone_brick.png"}, - "Desert Stone Brick Stair", - "Desert Stone Brick Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("brick", "default:brick", - {cracky=3}, - {"default_brick.png"}, - "Brick Stair", - "Brick Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("sandstone", "default:sandstone", - {crumbly=2,cracky=2}, - {"default_sandstone.png"}, - "Sandstone Stair", - "Sandstone Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("sandstonebrick", "default:sandstonebrick", - {crumbly=2,cracky=2}, - {"default_sandstone_brick.png"}, - "Sandstone Brick Stair", - "Sandstone Brick Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("junglewood", "default:junglewood", - {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, - {"default_junglewood.png"}, - "Junglewood Stair", - "Junglewood Slab", - default.node_sound_wood_defaults()) - -stairs.register_stair_and_slab("stonebrick", "default:stonebrick", - {cracky=3}, - {"default_stone_brick.png"}, - "Stone Brick Stair", - "Stone Brick Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("pinewood", "default:pinewood", - {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, - {"default_pinewood.png"}, - "Pinewood Stair", - "Pinewood Slab", - default.node_sound_wood_defaults()) - -stairs.register_stair_and_slab("obsidian", "default:obsidian", - {cracky=1,level=2}, - {"default_obsidian.png"}, - "Obsidian Stair", - "Obsidian Slab", - default.node_sound_stone_defaults()) - -stairs.register_stair_and_slab("obsidianbrick", "default:obsidianbrick", - {cracky=1,level=2}, - {"default_obsidian_brick.png"}, - "Obsidian Brick Stair", - "Obsidian Brick Slab", - default.node_sound_stone_defaults()) diff --git a/mods/stairs/models/stairs_stair.obj b/mods/stairs/models/stairs_stair.obj deleted file mode 100644 index 929c733..0000000 --- a/mods/stairs/models/stairs_stair.obj +++ /dev/null @@ -1,43 +0,0 @@ -v -.5 0 -.5 -v -.5 -.5 -.5 -v -.5 0 0 -v .5 0 0 -v .5 -.5 -.5 -v .5 0 -.5 -v -.5 -.5 .5 -v .5 -.5 .5 -v -.5 .5 0 -v .5 .5 0 -v -.5 .5 .5 -v .5 .5 .5 -vt 0 .5 -vt 0 0 -vt .5 .5 -vt 1 0 -vt 1 .5 -vt 1 1 -vt 0 1 -vt .5 1 -vt 1 0 -vt 1 1 -vt 0 1 -vt 0 0 -vn -1 0 0 -vn 1 0 0 -vn 0 0 -1 -vn 0 -1 0 -vn 0 1 0 -vn 0 0 1 -s off -f 1/1/1 2/2/1 3/3/1 -f 4/3/2 5/4/2 6/5/2 -f 2/4/3 1/5/3 6/1/3 5/2/3 -f 7/4/4 2/6/4 5/7/4 8/2/4 -f 6/2/5 1/4/5 3/5/5 4/1/5 -f 3/5/3 9/6/3 10/7/3 4/1/3 -f 11/6/5 12/7/5 10/1/5 9/5/5 -f 4/3/2 10/8/2 12/7/2 -f 8/9/6 12/10/6 11/11/6 7/12/6 -f 3/3/1 11/6/1 9/8/1 -f 2/2/1 7/4/1 11/6/1 -f 5/4/2 12/7/2 8/2/2 diff --git a/mods/tnt/README.txt b/mods/tnt/README.txt deleted file mode 100644 index 90a3467..0000000 --- a/mods/tnt/README.txt +++ /dev/null @@ -1,36 +0,0 @@ -=== TNT mod for Minetest === -by PilzAdam and ShadowNinja - -Introduction: -This mod adds TNT to Minetest. TNT is a tool to help the player -in mining. - -How to use the mod: -Craft gunpowder by placing coal and gravel in the crafting area. The -gunpowder can be used to craft TNT or as fuze for TNT. To craft TNT -surround gunpowder with 4 wood in a + shape. -There are different ways to blow up TNT: - 1. Hit it with a torch. - 2. Hit a gunpowder fuze that leads to a TNT block with a torch. - 3. Activate it with mesecons (fastest way) -Be aware of the damage radius of 7 blocks! - -License: -WTFPL (see below) - -See also: -http://minetest.net/ - - 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/tnt/depends.txt b/mods/tnt/depends.txt deleted file mode 100644 index 5ff216f..0000000 --- a/mods/tnt/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -fire - diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua deleted file mode 100644 index 8ce018b..0000000 --- a/mods/tnt/init.lua +++ /dev/null @@ -1,390 +0,0 @@ - --- Default to enabled in singleplayer and disabled in multiplayer -local singleplayer = minetest.is_singleplayer() -local setting = minetest.setting_getbool("enable_tnt") -if (not singleplayer and setting ~= true) or - (singleplayer and setting == false) then - return -end - --- loss probabilities array (one in X will be lost) -local loss_prob = {} - -loss_prob["default:cobble"] = 3 -loss_prob["default:dirt"] = 4 - -local radius = tonumber(minetest.setting_get("tnt_radius") or 3) - --- Fill a list with data for content IDs, after all nodes are registered -local cid_data = {} -minetest.after(0, function() - for name, def in pairs(minetest.registered_nodes) do - cid_data[minetest.get_content_id(name)] = { - name = name, - drops = def.drops, - flammable = def.groups.flammable, - on_blast = def.on_blast, - } - end -end) - -local function rand_pos(center, pos, radius) - pos.x = center.x + math.random(-radius, radius) - pos.z = center.z + math.random(-radius, radius) -end - -local function eject_drops(drops, pos, radius) - local drop_pos = vector.new(pos) - for _, item in pairs(drops) do - local count = item:get_count() - local max = item:get_stack_max() - if count > max then - item:set_count(max) - end - while count > 0 do - if count < max then - item:set_count(count) - end - rand_pos(pos, drop_pos, radius) - local obj = minetest.add_item(drop_pos, item) - if obj then - obj:get_luaentity().collect = true - obj:setacceleration({x=0, y=-10, z=0}) - obj:setvelocity({x=math.random(-3, 3), y=10, - z=math.random(-3, 3)}) - end - count = count - max - end - end -end - -local function add_drop(drops, item) - item = ItemStack(item) - local name = item:get_name() - if loss_prob[name] ~= nil and math.random(1, loss_prob[name]) == 1 then - return - end - - local drop = drops[name] - if drop == nil then - drops[name] = item - else - drop:set_count(drop:get_count() + item:get_count()) - end -end - -local fire_node = {name="fire:basic_flame"} - -local function destroy(drops, pos, cid) - if minetest.is_protected(pos, "") then - return - end - local def = cid_data[cid] - if def and def.on_blast then - def.on_blast(vector.new(pos), 1) - return - end - if def and def.flammable then - minetest.set_node(pos, fire_node) - else - minetest.remove_node(pos) - if def then - local node_drops = minetest.get_node_drops(def.name, "") - for _, item in ipairs(node_drops) do - add_drop(drops, item) - end - end - end -end - - -local function calc_velocity(pos1, pos2, old_vel, power) - local vel = vector.direction(pos1, pos2) - vel = vector.normalize(vel) - vel = vector.multiply(vel, power) - - -- Divide by distance - local dist = vector.distance(pos1, pos2) - dist = math.max(dist, 1) - vel = vector.divide(vel, dist) - - -- Add old velocity - vel = vector.add(vel, old_vel) - return vel -end - -local function entity_physics(pos, radius) - -- Make the damage radius larger than the destruction radius - radius = radius * 2 - local objs = minetest.get_objects_inside_radius(pos, radius) - for _, obj in pairs(objs) do - local obj_pos = obj:getpos() - local obj_vel = obj:getvelocity() - local dist = math.max(1, vector.distance(pos, obj_pos)) - - if obj_vel ~= nil then - obj:setvelocity(calc_velocity(pos, obj_pos, - obj_vel, radius * 10)) - end - - local damage = (4 / dist) * radius - obj:set_hp(obj:get_hp() - damage) - end -end - -local function add_effects(pos, radius) - minetest.add_particlespawner({ - amount = 128, - time = 1, - minpos = vector.subtract(pos, radius / 2), - maxpos = vector.add(pos, radius / 2), - minvel = {x=-20, y=-20, z=-20}, - maxvel = {x=20, y=20, z=20}, - minacc = vector.new(), - maxacc = vector.new(), - minexptime = 1, - maxexptime = 3, - minsize = 8, - maxsize = 16, - texture = "tnt_smoke.png", - }) -end - -local function burn(pos) - local name = minetest.get_node(pos).name - if name == "tnt:tnt" then - minetest.sound_play("tnt_ignite", {pos=pos}) - minetest.set_node(pos, {name="tnt:tnt_burning"}) - minetest.get_node_timer(pos):start(1) - elseif name == "tnt:gunpowder" then - minetest.sound_play("tnt_gunpowder_burning", {pos=pos, gain=2}) - minetest.set_node(pos, {name="tnt:gunpowder_burning"}) - minetest.get_node_timer(pos):start(1) - end -end - -local function explode(pos, radius) - local pos = vector.round(pos) - local vm = VoxelManip() - local pr = PseudoRandom(os.time()) - local p1 = vector.subtract(pos, radius) - local p2 = vector.add(pos, radius) - local minp, maxp = vm:read_from_map(p1, p2) - local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) - local data = vm:get_data() - - local drops = {} - local p = {} - - local c_air = minetest.get_content_id("air") - - for z = -radius, radius do - for y = -radius, radius do - local vi = a:index(pos.x + (-radius), pos.y + y, pos.z + z) - for x = -radius, radius do - if (x * x) + (y * y) + (z * z) <= - (radius * radius) + pr:next(-radius, radius) then - local cid = data[vi] - p.x = pos.x + x - p.y = pos.y + y - p.z = pos.z + z - if cid ~= c_air then - destroy(drops, p, cid) - end - end - vi = vi + 1 - end - end - end - - return drops -end - - -local function boom(pos) - minetest.sound_play("tnt_explode", {pos=pos, gain=1.5, max_hear_distance=2*64}) - minetest.set_node(pos, {name="tnt:boom"}) - minetest.get_node_timer(pos):start(0.5) - - local drops = explode(pos, radius) - entity_physics(pos, radius) - eject_drops(drops, pos, radius) - add_effects(pos, radius) -end - -minetest.register_node("tnt:tnt", { - description = "TNT", - tiles = {"tnt_top.png", "tnt_bottom.png", "tnt_side.png"}, - is_ground_content = false, - groups = {dig_immediate=2, mesecon=2}, - sounds = default.node_sound_wood_defaults(), - on_punch = function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "default:torch" then - minetest.sound_play("tnt_ignite", {pos=pos}) - minetest.set_node(pos, {name="tnt:tnt_burning"}) - minetest.get_node_timer(pos):start(4) - end - end, - on_blast = function(pos, intensity) - burn(pos) - end, - mesecons = {effector = {action_on = boom}}, -}) - -minetest.register_node("tnt:tnt_burning", { - tiles = { - { - name = "tnt_top_burning_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1, - } - }, - "tnt_bottom.png", "tnt_side.png"}, - light_source = 5, - drop = "", - sounds = default.node_sound_wood_defaults(), - on_timer = boom, - -- unaffected by explosions - on_blast = function() end, -}) - -minetest.register_node("tnt:boom", { - drawtype = "plantlike", - tiles = {"tnt_boom.png"}, - light_source = default.LIGHT_MAX, - walkable = false, - drop = "", - groups = {dig_immediate=3}, - on_timer = function(pos, elapsed) - minetest.remove_node(pos) - end, - -- unaffected by explosions - on_blast = function() end, -}) - -minetest.register_node("tnt:gunpowder", { - description = "Gun Powder", - drawtype = "raillike", - paramtype = "light", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - tiles = {"tnt_gunpowder_straight.png", "tnt_gunpowder_curved.png", "tnt_gunpowder_t_junction.png", "tnt_gunpowder_crossing.png"}, - inventory_image = "tnt_gunpowder_inventory.png", - wield_image = "tnt_gunpowder_inventory.png", - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - groups = {dig_immediate=2,attached_node=1,connect_to_raillike=minetest.raillike_group("gunpowder")}, - sounds = default.node_sound_leaves_defaults(), - - on_punch = function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "default:torch" then - burn(pos) - end - end, - on_blast = function(pos, intensity) - burn(pos) - end, -}) - -minetest.register_node("tnt:gunpowder_burning", { - drawtype = "raillike", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - light_source = 5, - tiles = {{ - name = "tnt_gunpowder_burning_straight_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1, - } - }, - { - name = "tnt_gunpowder_burning_curved_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1, - } - }, - { - name = "tnt_gunpowder_burning_t_junction_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1, - } - }, - { - name = "tnt_gunpowder_burning_crossing_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1, - } - }}, - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - drop = "", - groups = {dig_immediate=2,attached_node=1,connect_to_raillike=minetest.raillike_group("gunpowder")}, - sounds = default.node_sound_leaves_defaults(), - on_timer = function(pos, elapsed) - for dx = -1, 1 do - for dz = -1, 1 do - for dy = -1, 1 do - if not (dx == 0 and dz == 0) then - burn({ - x = pos.x + dx, - y = pos.y + dy, - z = pos.z + dz, - }) - end - end - end - end - minetest.remove_node(pos) - end, - -- unaffected by explosions - on_blast = function() end, -}) - -minetest.register_abm({ - nodenames = {"tnt:tnt", "tnt:gunpowder"}, - neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"}, - interval = 1, - chance = 1, - action = burn, -}) - -minetest.register_craft({ - output = "tnt:gunpowder", - type = "shapeless", - recipe = {"default:coal_lump", "default:gravel"} -}) - -minetest.register_craft({ - output = "tnt:tnt", - recipe = { - {"", "group:wood", ""}, - {"group:wood", "tnt:gunpowder", "group:wood"}, - {"", "group:wood", ""} - } -}) - -if minetest.setting_get("log_mods") then - minetest.debug("[TNT] Loaded!") -end - diff --git a/mods/tnt/sounds/tnt_explode.ogg b/mods/tnt/sounds/tnt_explode.ogg deleted file mode 100644 index a414ea0..0000000 Binary files a/mods/tnt/sounds/tnt_explode.ogg and /dev/null differ diff --git a/mods/tnt/sounds/tnt_gunpowder_burning.ogg b/mods/tnt/sounds/tnt_gunpowder_burning.ogg deleted file mode 100644 index 5c5bfaf..0000000 Binary files a/mods/tnt/sounds/tnt_gunpowder_burning.ogg and /dev/null differ diff --git a/mods/tnt/sounds/tnt_ignite.ogg b/mods/tnt/sounds/tnt_ignite.ogg deleted file mode 100644 index 199f206..0000000 Binary files a/mods/tnt/sounds/tnt_ignite.ogg and /dev/null differ diff --git a/mods/tnt/textures/tnt_boom.png b/mods/tnt/textures/tnt_boom.png deleted file mode 100644 index c848bfc..0000000 Binary files a/mods/tnt/textures/tnt_boom.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_bottom.png b/mods/tnt/textures/tnt_bottom.png deleted file mode 100644 index 95f66cb..0000000 Binary files a/mods/tnt/textures/tnt_bottom.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png deleted file mode 100644 index a901f7b..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png deleted file mode 100644 index bc01806..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png deleted file mode 100644 index c860ace..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png deleted file mode 100644 index a556072..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_crossing.png b/mods/tnt/textures/tnt_gunpowder_crossing.png deleted file mode 100644 index 916c84e..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_crossing.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_curved.png b/mods/tnt/textures/tnt_gunpowder_curved.png deleted file mode 100644 index cb8b4ea..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_curved.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_inventory.png b/mods/tnt/textures/tnt_gunpowder_inventory.png deleted file mode 100644 index 105a2d2..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_inventory.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_straight.png b/mods/tnt/textures/tnt_gunpowder_straight.png deleted file mode 100644 index 8ab0e3c..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_straight.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_gunpowder_t_junction.png b/mods/tnt/textures/tnt_gunpowder_t_junction.png deleted file mode 100644 index ac997a7..0000000 Binary files a/mods/tnt/textures/tnt_gunpowder_t_junction.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_side.png b/mods/tnt/textures/tnt_side.png deleted file mode 100644 index d303473..0000000 Binary files a/mods/tnt/textures/tnt_side.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_smoke.png b/mods/tnt/textures/tnt_smoke.png deleted file mode 100644 index 488b50f..0000000 Binary files a/mods/tnt/textures/tnt_smoke.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top.png b/mods/tnt/textures/tnt_top.png deleted file mode 100644 index 31b807c..0000000 Binary files a/mods/tnt/textures/tnt_top.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top_burning.png b/mods/tnt/textures/tnt_top_burning.png deleted file mode 100644 index fc0d490..0000000 Binary files a/mods/tnt/textures/tnt_top_burning.png and /dev/null differ diff --git a/mods/tnt/textures/tnt_top_burning_animated.png b/mods/tnt/textures/tnt_top_burning_animated.png deleted file mode 100644 index 18a270f..0000000 Binary files a/mods/tnt/textures/tnt_top_burning_animated.png and /dev/null differ