diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..e42d305
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,10 @@
+{
+ "Lua.diagnostics.globals": [
+ "minetest",
+ "ItemStack",
+ "vector",
+ "VoxelManip",
+ "VoxelArea",
+ "PseudoRandom"
+ ]
+}
\ No newline at end of file
diff --git a/README.txt b/README.txt
index df244fe..1ad0547 100644
--- a/README.txt
+++ b/README.txt
@@ -2,73 +2,4 @@ Minetest Game mod: tnt
======================
See license.txt for license information.
-Authors of source code
-----------------------
-PilzAdam (MIT)
-ShadowNinja (MIT)
-sofar (sofar@foo-projects.org) (MIT)
-Various Minetest developers and contributors (MIT)
-
-Authors of media
-----------------
-BlockMen (CC BY-SA 3.0):
-All textures not mentioned below.
-
-ShadowNinja (CC BY-SA 3.0):
-tnt_smoke.png
-
-Wuzzy (CC BY-SA 3.0):
-All gunpowder textures except tnt_gunpowder_inventory.png.
-
-sofar (sofar@foo-projects.org) (CC BY-SA 3.0):
-tnt_blast.png
-
-paramat (CC BY-SA 3.0)
-tnt_tnt_stick.png - Derived from a texture by benrob0329.
-
-TumeniNodes (CC0 1.0)
-tnt_explode.ogg
-renamed, edited, and converted to .ogg from Explosion2.wav
-by steveygos93 (CC0 1.0)
-
-
-tnt_ignite.ogg
-renamed, edited, and converted to .ogg from sparkler_fuse_nm.wav
-by theneedle.tv (CC0 1.0)
-
-
-tnt_gunpowder_burning.ogg
-renamed, edited, and converted to .ogg from road flare ignite burns.wav
-by frankelmedico (CC0 1.0)
-
-
-
-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 sticks or as a fuse trail for TNT.
-
-To craft 2 TNT sticks:
-G_G
-GPG
-G_G
-G = gunpowder
-P = paper
-The sticks are not usable as an explosive.
-
-Craft TNT from 9 TNT sticks.
-
-There are different ways to ignite TNT:
- 1. Hit it with a torch.
- 2. Hit a gunpowder fuse trail that leads to TNT with a torch or
- flint-and-steel.
- 3. Activate it with mesecons (fastest way).
-
-For 1 TNT:
-Node destruction radius is 3 nodes.
-Player and object damage radius is 6 nodes.
+This is just tnt logic extracted
\ No newline at end of file
diff --git a/init.lua b/init.lua
index ae28191..6bd1172 100644
--- a/init.lua
+++ b/init.lua
@@ -2,23 +2,6 @@
tnt = {}
--- Load support for MT game translation.
-local S = minetest.get_translator("tnt")
-
-
--- Default to enabled when in singleplayer
-local enable_tnt = minetest.settings:get_bool("enable_tnt")
-if enable_tnt == nil then
- enable_tnt = minetest.is_singleplayer()
-end
-
--- loss probabilities array (one in X will be lost)
-local loss_prob = {}
-
-loss_prob["default:cobble"] = 3
-loss_prob["default:dirt"] = 4
-
-local tnt_radius = tonumber(minetest.settings:get("tnt_radius") or 3)
-- Fill a list with data for content IDs, after all nodes are registered
local cid_data = {}
@@ -77,7 +60,7 @@ 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
+ if math.random(1, 4) > 1 then
return
end
@@ -91,11 +74,7 @@ end
local basic_flame_on_construct -- cached value
local function destroy(drops, npos, cid, c_air, c_fire,
- on_blast_queue, on_construct_queue,
- ignore_protection, ignore_on_blast, owner)
- if not ignore_protection and minetest.is_protected(npos, owner) then
- return cid
- end
+ on_blast_queue, on_construct_queue, ignore_on_blast, owner)
local def = cid_data[cid]
@@ -203,89 +182,11 @@ local function entity_physics(pos, radius, drops)
end
end
-local function add_effects(pos, radius, drops)
- minetest.add_particle({
- pos = pos,
- velocity = vector.new(),
- acceleration = vector.new(),
- expirationtime = 0.4,
- size = radius * 10,
- collisiondetection = false,
- vertical = false,
- texture = "tnt_boom.png",
- glow = 15,
- })
- minetest.add_particlespawner({
- amount = 64,
- time = 0.5,
- minpos = vector.subtract(pos, radius / 2),
- maxpos = vector.add(pos, radius / 2),
- minvel = {x = -10, y = -10, z = -10},
- maxvel = {x = 10, y = 10, z = 10},
- minacc = vector.new(),
- maxacc = vector.new(),
- minexptime = 1,
- maxexptime = 2.5,
- minsize = radius * 3,
- maxsize = radius * 5,
- texture = "tnt_smoke.png",
- })
-
- -- we just dropped some items. Look at the items entities and pick
- -- one of them to use as texture
- local texture = "tnt_blast.png" --fallback texture
- local node
- local most = 0
- for name, stack in pairs(drops) do
- local count = stack:get_count()
- if count > most then
- most = count
- local def = minetest.registered_nodes[name]
- if def then
- node = { name = name }
- end
- if def and def.tiles and def.tiles[1] then
- texture = def.tiles[1]
- end
- end
- end
-
- minetest.add_particlespawner({
- amount = 64,
- time = 0.1,
- minpos = vector.subtract(pos, radius / 2),
- maxpos = vector.add(pos, radius / 2),
- minvel = {x = -3, y = 0, z = -3},
- maxvel = {x = 3, y = 5, z = 3},
- minacc = {x = 0, y = -10, z = 0},
- maxacc = {x = 0, y = -10, z = 0},
- minexptime = 0.8,
- maxexptime = 2.0,
- minsize = radius * 0.33,
- maxsize = radius,
- texture = texture,
- -- ^ only as fallback for clients without support for `node` parameter
- node = node,
- collisiondetection = true,
- })
-end
-
-function tnt.burn(pos, nodename)
- local name = nodename or minetest.get_node(pos).name
- local def = minetest.registered_nodes[name]
- if not def then
- return
- elseif def.on_ignite then
- def.on_ignite(pos)
- elseif minetest.get_item_group(name, "tnt") > 0 then
- minetest.swap_node(pos, {name = name .. "_burning"})
- minetest.sound_play("tnt_ignite", {pos = pos}, true)
- minetest.get_node_timer(pos):start(1)
- end
-end
-
-local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owner, explode_center)
+local function tnt_explode(pos, radius, ignore_on_blast, owner, explode_center)
pos = vector.round(pos)
+ if radius < 1 then
+ return
+ end
-- scan for adjacent TNT nodes first, and enlarge the explosion
local vm1 = VoxelManip()
local p1 = vector.subtract(pos, 2)
@@ -295,14 +196,8 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne
local data = vm1:get_data()
local count = 0
local c_tnt
- local c_tnt_burning = minetest.get_content_id("tnt:tnt_burning")
- local c_tnt_boom = minetest.get_content_id("tnt:boom")
+ local c_tnt_boom = minetest.get_content_id("tnt:boom_center")
local c_air = minetest.get_content_id("air")
- if enable_tnt then
- c_tnt = minetest.get_content_id("tnt:tnt")
- else
- c_tnt = c_tnt_burning -- tnt is not registered if disabled
- end
-- make sure we still have explosion even when centre node isnt tnt related
if explode_center then
count = 1
@@ -313,7 +208,7 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne
local vi = a:index(pos.x - 2, y, z)
for x = pos.x - 2, pos.x + 2 do
local cid = data[vi]
- if cid == c_tnt or cid == c_tnt_boom or cid == c_tnt_burning then
+ if cid == c_tnt or cid == c_tnt_boom then
count = count + 1
data[vi] = c_air
end
@@ -326,7 +221,7 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne
vm1:write_to_map()
-- recalculate new radius
- radius = math.floor(radius * math.pow(count, 1/3))
+ radius = math.floor(radius * count^1/3)
-- perform the explosion
local vm = VoxelManip()
@@ -340,9 +235,16 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne
local drops = {}
local on_blast_queue = {}
local on_construct_queue = {}
- basic_flame_on_construct = minetest.registered_nodes["fire:basic_flame"].on_construct
-
- local c_fire = minetest.get_content_id("fire:basic_flame")
+ --check if mod fire is active
+ local fire_mod = minetest.get_modpath("fire")
+ if fire_mod ~= nil then
+ basic_flame_on_construct = minetest.registered_nodes["fire:basic_flame"].on_construct
+ c_fire = minetest.get_content_id("fire:basic_flame")
+ else
+ basic_flame_on_construct = function() end
+ c_fire = c_air
+ end
+
for z = -radius, radius do
for y = -radius, radius do
local vi = a:index(pos.x + (-radius), pos.y + y, pos.z + z)
@@ -353,8 +255,7 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne
local p = {x = pos.x + x, y = pos.y + y, z = pos.z + z}
if cid ~= c_air then
data[vi] = destroy(drops, p, cid, c_air, c_fire,
- on_blast_queue, on_construct_queue,
- ignore_protection, ignore_on_blast, owner)
+ on_blast_queue, on_construct_queue, ignore_on_blast, owner)
end
end
vi = vi + 1
@@ -405,16 +306,19 @@ end
function tnt.boom(pos, def)
def = def or {}
def.radius = def.radius or 1
+ def.sound = def.sound or 1
def.damage_radius = def.damage_radius or def.radius * 2
local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner")
- if not def.explode_center and def.ignore_protection ~= true then
- minetest.set_node(pos, {name = "tnt:boom"})
+ if not def.explode_center then
+ minetest.set_node(pos, {name = "tnt:boom_center"})
end
local sound = def.sound or "tnt_explode"
- minetest.sound_play(sound, {pos = pos, gain = 2.5,
- max_hear_distance = math.min(def.radius * 20, 128)}, true)
- local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection,
+ if def.sound then
+ minetest.sound_play(sound, {pos = pos, gain = 2.5,
+ max_hear_distance = math.min(def.radius * 20, 128)}, true)
+ end
+ local drops, radius = tnt_explode(pos, def.radius,
def.ignore_on_blast, owner, def.explode_center)
-- append entity drops
local damage_radius = (radius / math.max(1, def.radius)) * def.damage_radius
@@ -422,276 +326,41 @@ function tnt.boom(pos, def)
if not def.disable_drops then
eject_drops(drops, pos, radius)
end
- add_effects(pos, radius, drops)
minetest.log("action", "A TNT explosion occurred at " .. minetest.pos_to_string(pos) ..
" with radius " .. radius)
end
-minetest.register_node("tnt:boom", {
+minetest.register_node("tnt:boom_center", {
drawtype = "airlike",
- light_source = default.LIGHT_MAX,
+ light_source = 14,
walkable = false,
drop = "",
groups = {dig_immediate = 3},
-- unaffected by explosions
on_blast = function() end,
-})
-
-minetest.register_node("tnt:gunpowder", {
- description = S("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, flammable = 5,
- 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
- minetest.set_node(pos, {name = "tnt:gunpowder_burning"})
- minetest.log("action", puncher:get_player_name() ..
- " ignites tnt:gunpowder at " ..
- minetest.pos_to_string(pos))
- end
- end,
- on_blast = function(pos, intensity)
- minetest.set_node(pos, {name = "tnt:gunpowder_burning"})
- end,
- on_burn = function(pos)
- minetest.set_node(pos, {name = "tnt:gunpowder_burning"})
- end,
- on_ignite = function(pos, igniter)
- minetest.set_node(pos, {name = "tnt:gunpowder_burning"})
- 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(),
+ --remove the tnt node after a while
on_timer = function(pos, elapsed)
- for dx = -1, 1 do
- for dz = -1, 1 do
- if math.abs(dx) + math.abs(dz) == 1 then
- for dy = -1, 1 do
- tnt.burn({
- x = pos.x + dx,
- y = pos.y + dy,
- z = pos.z + dz,
- })
- end
- end
- end
- end
minetest.remove_node(pos)
+ minetest.check_for_falling(pos)
end,
- -- unaffected by explosions
- on_blast = function() end,
+ -- countdown timer
on_construct = function(pos)
- minetest.sound_play("tnt_gunpowder_burning", {pos = pos,
- gain = 2}, true)
- minetest.get_node_timer(pos):start(1)
+ minetest.get_node_timer(pos):start(3)
end,
})
-minetest.register_craft({
- output = "tnt:gunpowder 5",
- type = "shapeless",
- recipe = {"default:coal_lump", "default:gravel"}
-})
-
-minetest.register_craftitem("tnt:tnt_stick", {
- description = S("TNT Stick"),
- inventory_image = "tnt_tnt_stick.png",
- groups = {flammable = 5},
-})
-
-if enable_tnt then
- minetest.register_craft({
- output = "tnt:tnt_stick 2",
- recipe = {
- {"tnt:gunpowder", "", "tnt:gunpowder"},
- {"tnt:gunpowder", "default:paper", "tnt:gunpowder"},
- {"tnt:gunpowder", "", "tnt:gunpowder"},
- }
- })
-
- minetest.register_craft({
- output = "tnt:tnt",
- recipe = {
- {"tnt:tnt_stick", "tnt:tnt_stick", "tnt:tnt_stick"},
- {"tnt:tnt_stick", "tnt:tnt_stick", "tnt:tnt_stick"},
- {"tnt:tnt_stick", "tnt:tnt_stick", "tnt:tnt_stick"}
- }
- })
-
- minetest.register_abm({
- label = "TNT ignition",
- nodenames = {"group:tnt", "tnt:gunpowder"},
- neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"},
- interval = 4,
- chance = 1,
- action = function(pos, node)
- tnt.burn(pos, node.name)
- end,
- })
-end
-
-function tnt.register_tnt(def)
- local name
- if not def.name:find(':') then
- name = "tnt:" .. def.name
- else
- name = def.name
- def.name = def.name:match(":([%w_]+)")
- end
- if not def.tiles then def.tiles = {} end
- local tnt_top = def.tiles.top or def.name .. "_top.png"
- local tnt_bottom = def.tiles.bottom or def.name .. "_bottom.png"
- local tnt_side = def.tiles.side or def.name .. "_side.png"
- local tnt_burning = def.tiles.burning or def.name .. "_top_burning_animated.png"
- if not def.damage_radius then def.damage_radius = def.radius * 2 end
-
- if enable_tnt then
- minetest.register_node(":" .. name, {
- description = def.description,
- tiles = {tnt_top, tnt_bottom, tnt_side},
- is_ground_content = false,
- groups = {dig_immediate = 2, mesecon = 2, tnt = 1, flammable = 5},
- sounds = default.node_sound_wood_defaults(),
- after_place_node = function(pos, placer)
- if placer:is_player() then
- local meta = minetest.get_meta(pos)
- meta:set_string("owner", placer:get_player_name())
- end
- end,
- on_punch = function(pos, node, puncher)
- if puncher:get_wielded_item():get_name() == "default:torch" then
- minetest.swap_node(pos, {name = name .. "_burning"})
- minetest.registered_nodes[name .. "_burning"].on_construct(pos)
- minetest.log("action", puncher:get_player_name() ..
- " ignites " .. node.name .. " at " ..
- minetest.pos_to_string(pos))
- end
- end,
- on_blast = function(pos, intensity)
- minetest.after(0.1, function()
- tnt.boom(pos, def)
- end)
- end,
- mesecons = {effector =
- {action_on =
- function(pos)
- tnt.boom(pos, def)
- end
- }
- },
- on_burn = function(pos)
- minetest.swap_node(pos, {name = name .. "_burning"})
- minetest.registered_nodes[name .. "_burning"].on_construct(pos)
- end,
- on_ignite = function(pos, igniter)
- minetest.swap_node(pos, {name = name .. "_burning"})
- minetest.registered_nodes[name .. "_burning"].on_construct(pos)
- end,
+minetest.register_node("tnt:instaboom", {
+ drawtype = "airlike",
+ light_source = 14,
+ walkable = false,
+ drop = "",
+ on_construct = function(pos)
+ tnt.boom(pos, {
+ radius = 12,
+ damage_radius = 0,
+ disable_drops = true,
+ ignore_on_blast = true,
+ explode_center = true,
})
- end
-
- minetest.register_node(":" .. name .. "_burning", {
- tiles = {
- {
- name = tnt_burning,
- animation = {
- type = "vertical_frames",
- aspect_w = 16,
- aspect_h = 16,
- length = 1,
- }
- },
- tnt_bottom, tnt_side
- },
- light_source = 5,
- drop = "",
- sounds = default.node_sound_wood_defaults(),
- groups = {falling_node = 1},
- on_timer = function(pos, elapsed)
- tnt.boom(pos, def)
- end,
- -- unaffected by explosions
- on_blast = function() end,
- on_construct = function(pos)
- minetest.sound_play("tnt_ignite", {pos = pos}, true)
- minetest.get_node_timer(pos):start(4)
- minetest.check_for_falling(pos)
- end,
- })
-end
-
-tnt.register_tnt({
- name = "tnt:tnt",
- description = S("TNT"),
- radius = tnt_radius,
-})
+ end,
+})
\ No newline at end of file
diff --git a/license.txt b/license.txt
index e59ec6e..6b992e8 100644
--- a/license.txt
+++ b/license.txt
@@ -26,47 +26,6 @@ DEALINGS IN THE SOFTWARE.
For more details:
https://opensource.org/licenses/MIT
-===================================
-
-Licenses of media
------------------
-
-Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
-Copyright (C) 2014-2016 BlockMen
-Copyright (C) 2014-2016 ShadowNinja
-Copyright (C) 2015-2016 Wuzzy
-Copyright (C) 2016 sofar (sofar@foo-projects.org)
-Copyright (C) 2018 paramat
-
-You are free to:
-Share — copy and redistribute the material in any medium or format.
-Adapt — remix, transform, and build upon the material for any purpose, even commercially.
-The licensor cannot revoke these freedoms as long as you follow the license terms.
-
-Under the following terms:
-
-Attribution — You must give appropriate credit, provide a link to the license, and
-indicate if changes were made. You may do so in any reasonable manner, but not in any way
-that suggests the licensor endorses you or your use.
-
-ShareAlike — If you remix, transform, or build upon the material, you must distribute
-your contributions under the same license as the original.
-
-No additional restrictions — You may not apply legal terms or technological measures that
-legally restrict others from doing anything the license permits.
-
-Notices:
-
-You do not have to comply with the license for elements of the material in the public
-domain or where your use is permitted by an applicable exception or limitation.
-No warranties are given. The license may not give you all of the permissions necessary
-for your intended use. For example, other rights such as publicity, privacy, or moral
-rights may limit how you use the material.
-
-For more details:
-http://creativecommons.org/licenses/by-sa/3.0/
-
-====================================================
CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
for audio files (found in sounds folder)
diff --git a/locale/template.txt b/locale/template.txt
deleted file mode 100644
index 62bcb15..0000000
--- a/locale/template.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=
-TNT Stick=
-TNT=
diff --git a/locale/tnt.de.tr b/locale/tnt.de.tr
deleted file mode 100644
index 09d2ac2..0000000
--- a/locale/tnt.de.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Schießpulver
-TNT Stick=TNT-Stange
-TNT=TNT
diff --git a/locale/tnt.es.tr b/locale/tnt.es.tr
deleted file mode 100644
index d9f3f20..0000000
--- a/locale/tnt.es.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Pólvora
-TNT Stick=Cartucho de TNT
-TNT=TNT
diff --git a/locale/tnt.fr.tr b/locale/tnt.fr.tr
deleted file mode 100644
index 3fe48fb..0000000
--- a/locale/tnt.fr.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Poudre à canon
-TNT Stick=Bâton de TNT
-TNT=TNT
diff --git a/locale/tnt.id.tr b/locale/tnt.id.tr
deleted file mode 100644
index 2652ae0..0000000
--- a/locale/tnt.id.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Bubuk Mesiu
-TNT Stick=Tongkat TNT
-TNT=TNT
diff --git a/locale/tnt.it.tr b/locale/tnt.it.tr
deleted file mode 100644
index bc4ef14..0000000
--- a/locale/tnt.it.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Polvere da sparo
-TNT Stick=Candelotto di TNT
-TNT=TNT
\ No newline at end of file
diff --git a/locale/tnt.ms.tr b/locale/tnt.ms.tr
deleted file mode 100644
index c4c5fdd..0000000
--- a/locale/tnt.ms.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Serbuk Senjata Api
-TNT Stick=Batang TNT
-TNT=TNT
diff --git a/locale/tnt.ru.tr b/locale/tnt.ru.tr
deleted file mode 100644
index a8cee43..0000000
--- a/locale/tnt.ru.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Порох
-TNT Stick=Тротиловая Палка
-TNT=Тротил
diff --git a/locale/tnt.se.tr b/locale/tnt.se.tr
deleted file mode 100644
index 21fbbd0..0000000
--- a/locale/tnt.se.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=Krut
-TNT Stick=Dynamitpinne
-TNT=Dynamit
\ No newline at end of file
diff --git a/locale/tnt.zh_CN.tr b/locale/tnt.zh_CN.tr
deleted file mode 100644
index 0a3294e..0000000
--- a/locale/tnt.zh_CN.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=火药粉
-TNT Stick=炸药棒
-TNT=炸药包
diff --git a/locale/tnt.zh_TW.tr b/locale/tnt.zh_TW.tr
deleted file mode 100644
index c1b3caf..0000000
--- a/locale/tnt.zh_TW.tr
+++ /dev/null
@@ -1,4 +0,0 @@
-# textdomain: tnt
-Gun Powder=火藥粉
-TNT Stick=炸藥棒
-TNT=炸藥包
diff --git a/mod.conf b/mod.conf
index 9385e82..d169196 100644
--- a/mod.conf
+++ b/mod.conf
@@ -1,3 +1,3 @@
name = tnt
description = Minetest Game mod: tnt
-depends = default, fire
+optional_depends = fire
\ No newline at end of file
diff --git a/sounds/tnt_gunpowder_burning.ogg b/sounds/tnt_gunpowder_burning.ogg
deleted file mode 100644
index 8581c2d..0000000
Binary files a/sounds/tnt_gunpowder_burning.ogg and /dev/null differ
diff --git a/sounds/tnt_ignite.ogg b/sounds/tnt_ignite.ogg
deleted file mode 100644
index 1a7062e..0000000
Binary files a/sounds/tnt_ignite.ogg and /dev/null differ
diff --git a/textures/tnt_blast.png b/textures/tnt_blast.png
deleted file mode 100644
index bbb1096..0000000
Binary files a/textures/tnt_blast.png and /dev/null differ
diff --git a/textures/tnt_boom.png b/textures/tnt_boom.png
deleted file mode 100644
index c848bfc..0000000
Binary files a/textures/tnt_boom.png and /dev/null differ
diff --git a/textures/tnt_bottom.png b/textures/tnt_bottom.png
deleted file mode 100644
index 95f66cb..0000000
Binary files a/textures/tnt_bottom.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_burning_crossing_animated.png b/textures/tnt_gunpowder_burning_crossing_animated.png
deleted file mode 100644
index a901f7b..0000000
Binary files a/textures/tnt_gunpowder_burning_crossing_animated.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_burning_curved_animated.png b/textures/tnt_gunpowder_burning_curved_animated.png
deleted file mode 100644
index bc01806..0000000
Binary files a/textures/tnt_gunpowder_burning_curved_animated.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_burning_straight_animated.png b/textures/tnt_gunpowder_burning_straight_animated.png
deleted file mode 100644
index c860ace..0000000
Binary files a/textures/tnt_gunpowder_burning_straight_animated.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_burning_t_junction_animated.png b/textures/tnt_gunpowder_burning_t_junction_animated.png
deleted file mode 100644
index a556072..0000000
Binary files a/textures/tnt_gunpowder_burning_t_junction_animated.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_crossing.png b/textures/tnt_gunpowder_crossing.png
deleted file mode 100644
index 916c84e..0000000
Binary files a/textures/tnt_gunpowder_crossing.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_curved.png b/textures/tnt_gunpowder_curved.png
deleted file mode 100644
index cb8b4ea..0000000
Binary files a/textures/tnt_gunpowder_curved.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_inventory.png b/textures/tnt_gunpowder_inventory.png
deleted file mode 100644
index 105a2d2..0000000
Binary files a/textures/tnt_gunpowder_inventory.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_straight.png b/textures/tnt_gunpowder_straight.png
deleted file mode 100644
index 8ab0e3c..0000000
Binary files a/textures/tnt_gunpowder_straight.png and /dev/null differ
diff --git a/textures/tnt_gunpowder_t_junction.png b/textures/tnt_gunpowder_t_junction.png
deleted file mode 100644
index ac997a7..0000000
Binary files a/textures/tnt_gunpowder_t_junction.png and /dev/null differ
diff --git a/textures/tnt_side.png b/textures/tnt_side.png
deleted file mode 100644
index d303473..0000000
Binary files a/textures/tnt_side.png and /dev/null differ
diff --git a/textures/tnt_smoke.png b/textures/tnt_smoke.png
deleted file mode 100644
index 488b50f..0000000
Binary files a/textures/tnt_smoke.png and /dev/null differ
diff --git a/textures/tnt_tnt_stick.png b/textures/tnt_tnt_stick.png
deleted file mode 100644
index bc47a29..0000000
Binary files a/textures/tnt_tnt_stick.png and /dev/null differ
diff --git a/textures/tnt_top.png b/textures/tnt_top.png
deleted file mode 100644
index 31b807c..0000000
Binary files a/textures/tnt_top.png and /dev/null differ
diff --git a/textures/tnt_top_burning.png b/textures/tnt_top_burning.png
deleted file mode 100644
index fc0d490..0000000
Binary files a/textures/tnt_top_burning.png and /dev/null differ
diff --git a/textures/tnt_top_burning_animated.png b/textures/tnt_top_burning_animated.png
deleted file mode 100644
index 18a270f..0000000
Binary files a/textures/tnt_top_burning_animated.png and /dev/null differ