renamed mod into cannons
@ -1,54 +1,3 @@
|
|||||||
--++++++++++++++++++++++++++++++++++++
|
|
||||||
--+ Stoneball +
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
|
||||||
local stone={
|
|
||||||
physical = false,
|
|
||||||
timer=0,
|
|
||||||
textures = {"canons_bullet.png"},
|
|
||||||
lastpos={},
|
|
||||||
damage=20,
|
|
||||||
range=2,
|
|
||||||
gravity=10,
|
|
||||||
velocity=40,
|
|
||||||
name="canons:stone_bullet",
|
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
|
||||||
on_player_hit = function(self,pos,player)
|
|
||||||
local playername = player:get_player_name()
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval=1.0,
|
|
||||||
damage_groups={fleshy=self.damage},
|
|
||||||
}, nil)
|
|
||||||
self.object:remove()
|
|
||||||
minetest.chat_send_all(playername .." tried to catch a canonball")
|
|
||||||
end,
|
|
||||||
on_mob_hit = function(self,pos,mob)
|
|
||||||
mob:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval=1.0,
|
|
||||||
damage_groups={fleshy=self.damage},
|
|
||||||
}, nil)
|
|
||||||
self.object:remove()
|
|
||||||
end,
|
|
||||||
on_node_hit = function(self,pos,node)
|
|
||||||
if node.name == "default:dirt_with_grass" then
|
|
||||||
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
|
||||||
minetest.sound_play("canons_hit",
|
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
|
||||||
self.object:remove()
|
|
||||||
elseif node.name == "default:water_source" then
|
|
||||||
minetest.sound_play("canons_splash",
|
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
|
||||||
self.object:remove()
|
|
||||||
else
|
|
||||||
minetest.sound_play("canons_hit",
|
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
|
||||||
self.object:remove()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
|
|
||||||
}
|
|
||||||
canons.register_muni("default:stone",stone)
|
|
||||||
|
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ Meseball +
|
--+ Meseball +
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
@ -63,7 +12,7 @@ local mese={
|
|||||||
range=1,
|
range=1,
|
||||||
gravity=10,
|
gravity=10,
|
||||||
velocity=30,
|
velocity=30,
|
||||||
name="canons:mese",
|
name="cannons:mese_bullet",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -81,15 +30,15 @@ local mese={
|
|||||||
self.object:remove()
|
self.object:remove()
|
||||||
end,
|
end,
|
||||||
on_node_hit = function(self,pos,node)
|
on_node_hit = function(self,pos,node)
|
||||||
canons.destroy({x=pos.x, y=pos.y, z=pos.z},self.range)
|
cannons.destroy({x=pos.x, y=pos.y, z=pos.z},self.range)
|
||||||
minetest.sound_play("canons_shot",
|
minetest.sound_play("cannons_shot",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
if enable_explosion then
|
if cannons.enable_explosion then
|
||||||
canons.register_muni("default:mese",mese)
|
cannons.register_muni("default:mese",mese)
|
||||||
end
|
end
|
||||||
|
|
||||||
local tree={
|
local tree={
|
||||||
@ -103,7 +52,7 @@ local tree={
|
|||||||
range=2,
|
range=2,
|
||||||
gravity=8,
|
gravity=8,
|
||||||
velocity=35,
|
velocity=35,
|
||||||
name="canons:tree",
|
name="cannons:tree_bullet",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -125,8 +74,8 @@ local tree={
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
if enable_fire then
|
if cannons.enable_fire then
|
||||||
canons.register_muni("default:tree",tree)
|
cannons.register_muni("default:tree",tree)
|
||||||
end
|
end
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
@ -137,13 +86,13 @@ end
|
|||||||
local ball_wood={
|
local ball_wood={
|
||||||
physical = false,
|
physical = false,
|
||||||
timer=0,
|
timer=0,
|
||||||
textures = {"canons_bullet.png"},
|
textures = {"cannons_wood_bullet.png"},
|
||||||
lastpos={},
|
lastpos={},
|
||||||
damage=20,
|
damage=20,
|
||||||
range=1,
|
range=1,
|
||||||
gravity=10,
|
gravity=10,
|
||||||
velocity=40,
|
velocity=40,
|
||||||
name="canons:stone_bullet",
|
name="cannons:wood_bullet",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -152,7 +101,7 @@ local ball_wood={
|
|||||||
damage_groups={fleshy=self.damage},
|
damage_groups={fleshy=self.damage},
|
||||||
}, nil)
|
}, nil)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
minetest.chat_send_all(playername .." tried to catch a canonball")
|
minetest.chat_send_all(playername .." tried to catch a cannonball")
|
||||||
end,
|
end,
|
||||||
on_mob_hit = function(self,pos,mob)
|
on_mob_hit = function(self,pos,mob)
|
||||||
mob:punch(self.object, 1.0, {
|
mob:punch(self.object, 1.0, {
|
||||||
@ -164,22 +113,22 @@ local ball_wood={
|
|||||||
on_node_hit = function(self,pos,node)
|
on_node_hit = function(self,pos,node)
|
||||||
if node.name == "default:dirt_with_grass" then
|
if node.name == "default:dirt_with_grass" then
|
||||||
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
elseif node.name == "default:water_source" then
|
elseif node.name == "default:water_source" then
|
||||||
minetest.sound_play("canons_splash",
|
minetest.sound_play("cannons_splash",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
else
|
else
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
canons.register_muni("canons:canon_ball_wood",ball_wood)
|
cannons.register_muni("cannons:ball_wood",ball_wood)
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ Stone Cannon ball +
|
--+ Stone Cannon ball +
|
||||||
@ -189,13 +138,13 @@ canons.register_muni("canons:canon_ball_wood",ball_wood)
|
|||||||
local ball_stone={
|
local ball_stone={
|
||||||
physical = false,
|
physical = false,
|
||||||
timer=0,
|
timer=0,
|
||||||
textures = {"canons_bullet.png"},
|
textures = {"cannons_bullet.png"},
|
||||||
lastpos={},
|
lastpos={},
|
||||||
damage=20,
|
damage=20,
|
||||||
range=2,
|
range=2,
|
||||||
gravity=10,
|
gravity=10,
|
||||||
velocity=40,
|
velocity=40,
|
||||||
name="canons:stone_bullet",
|
name="cannons:stone_bullet",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -204,7 +153,7 @@ local ball_stone={
|
|||||||
damage_groups={fleshy=self.damage},
|
damage_groups={fleshy=self.damage},
|
||||||
}, nil)
|
}, nil)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
minetest.chat_send_all(playername .." tried to catch a canonball")
|
minetest.chat_send_all(playername .." tried to catch a cannonball")
|
||||||
end,
|
end,
|
||||||
on_mob_hit = function(self,pos,mob)
|
on_mob_hit = function(self,pos,mob)
|
||||||
mob:punch(self.object, 1.0, {
|
mob:punch(self.object, 1.0, {
|
||||||
@ -216,22 +165,22 @@ local ball_stone={
|
|||||||
on_node_hit = function(self,pos,node)
|
on_node_hit = function(self,pos,node)
|
||||||
if node.name == "default:dirt_with_grass" then
|
if node.name == "default:dirt_with_grass" then
|
||||||
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
elseif node.name == "default:water_source" then
|
elseif node.name == "default:water_source" then
|
||||||
minetest.sound_play("canons_splash",
|
minetest.sound_play("cannons_splash",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
else
|
else
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
canons.register_muni("canons:canon_ball_stone",ball_stone)
|
cannons.register_muni("cannons:ball_stone",ball_stone)
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ Steel Cannon ball +
|
--+ Steel Cannon ball +
|
||||||
@ -241,13 +190,13 @@ canons.register_muni("canons:canon_ball_stone",ball_stone)
|
|||||||
local ball_steel={
|
local ball_steel={
|
||||||
physical = false,
|
physical = false,
|
||||||
timer=0,
|
timer=0,
|
||||||
textures = {"canons_bullet_iron.png"},
|
textures = {"cannons_bullet_iron.png"},
|
||||||
lastpos={},
|
lastpos={},
|
||||||
damage=30,
|
damage=30,
|
||||||
range=2,
|
range=2,
|
||||||
gravity=5,
|
gravity=5,
|
||||||
velocity=50,
|
velocity=50,
|
||||||
name="canons:stone_bullet",
|
name="cannons:iron_bullet",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -268,19 +217,19 @@ local ball_steel={
|
|||||||
on_node_hit = function(self,pos,node)
|
on_node_hit = function(self,pos,node)
|
||||||
if node.name == "default:dirt_with_grass" then
|
if node.name == "default:dirt_with_grass" then
|
||||||
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
elseif node.name == "default:water_source" then
|
elseif node.name == "default:water_source" then
|
||||||
minetest.sound_play("canons_splash",
|
minetest.sound_play("cannons_splash",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
else
|
else
|
||||||
minetest.sound_play("canons_hit",
|
minetest.sound_play("cannons_hit",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
canons.register_muni("canons:canon_ball_steel",ball_steel)
|
cannons.register_muni("cannons:ball_steel",ball_steel)
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
function canons.destroy(pos,range)
|
function cannons.destroy(pos,range)
|
||||||
for x=-range,range do
|
for x=-range,range do
|
||||||
for y=-range,range do
|
for y=-range,range do
|
||||||
for z=-range,range do
|
for z=-range,range do
|
||||||
@ -15,7 +15,7 @@ function canons.destroy(pos,range)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function canons.inventory_modified(pos)
|
function cannons.inventory_modified(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local stack = inv:get_stack("muni", 1)
|
local stack = inv:get_stack("muni", 1)
|
||||||
@ -23,75 +23,75 @@ function canons.inventory_modified(pos)
|
|||||||
if muni == nil then
|
if muni == nil then
|
||||||
muni = false
|
muni = false
|
||||||
else
|
else
|
||||||
muni = canons.is_muni(muni.name)
|
muni = cannons.is_muni(muni.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
local gunpowder = inv:contains_item("gunpowder","canons:gunpowder 1")
|
local gunpowder = inv:contains_item("gunpowder","cannons:gunpowder 1")
|
||||||
if not muni and not gunpowder then
|
if not muni and not gunpowder then
|
||||||
meta:set_string("infotext","Canon has no muni and no gunpowder")
|
meta:set_string("infotext","Cannon has no muni and no gunpowder")
|
||||||
|
|
||||||
elseif not muni then
|
elseif not muni then
|
||||||
meta:set_string("infotext","Canon has no muni")
|
meta:set_string("infotext","Cannon has no muni")
|
||||||
|
|
||||||
elseif not gunpowder then
|
elseif not gunpowder then
|
||||||
meta:set_string("infotext","Canon has no gunpowder")
|
meta:set_string("infotext","Cannon has no gunpowder")
|
||||||
|
|
||||||
else
|
else
|
||||||
meta:set_string("infotext","Canon is ready")
|
meta:set_string("infotext","Cannon is ready")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
canons.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
cannons.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
stack = stack:to_table()
|
stack = stack:to_table()
|
||||||
if listname == "gunpowder" and stack.name == "canons:gunpowder" then
|
if listname == "gunpowder" and stack.name == "cannons:gunpowder" then
|
||||||
return stack.count
|
return stack.count
|
||||||
elseif listname == "muni" and canons.is_muni(stack.name) then
|
elseif listname == "muni" and cannons.is_muni(stack.name) then
|
||||||
return stack.count
|
return stack.count
|
||||||
else return 0
|
else return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
canons.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
cannons.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local stack = inv:get_stack(from_list, from_index)
|
local stack = inv:get_stack(from_list, from_index)
|
||||||
stack = stack:to_table()
|
stack = stack:to_table()
|
||||||
if to_list == "gunpowder" and stack.name == "canons:gunpowder" then
|
if to_list == "gunpowder" and stack.name == "cannons:gunpowder" then
|
||||||
return count
|
return count
|
||||||
|
|
||||||
elseif to_list == "muni" and canons.is_muni(stack.name) then
|
elseif to_list == "muni" and cannons.is_muni(stack.name) then
|
||||||
return count
|
return count
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
canons.formspec =
|
cannons.formspec =
|
||||||
"size[8,9]"..
|
"size[8,9]"..
|
||||||
"list[current_name;muni;2,1;1,1;] label[2,0.5;Muni:]"..
|
"list[current_name;muni;2,1;1,1;] label[2,0.5;Muni:]"..
|
||||||
"list[current_name;gunpowder;2,3;1,1;] label[2,2.5;Gunpowder:]"..
|
"list[current_name;gunpowder;2,3;1,1;] label[2,2.5;Gunpowder:]"..
|
||||||
"list[current_player;main;0,5;8,4;]"
|
"list[current_player;main;0,5;8,4;]"
|
||||||
canons.disabled_formspec =
|
cannons.disabled_formspec =
|
||||||
"size[8,9]"..
|
"size[8,9]"..
|
||||||
"label[2,0.5;Canon is Disabled. Place it on a canonstand to activate it]"..
|
"label[2,0.5;Canon is Disabled. Place it on a canonstand to activate it]"..
|
||||||
"list[current_player;main;0,5;8,4;]"
|
"list[current_player;main;0,5;8,4;]"
|
||||||
canons.on_construct = function(pos)
|
cannons.on_construct = function(pos)
|
||||||
local node = minetest.get_node({x = pos.x ,y = pos.y-1, z = pos.z})
|
local node = minetest.get_node({x = pos.x ,y = pos.y-1, z = pos.z})
|
||||||
if node.name == "canons:canon_stand" then
|
if node.name == "cannons:stand" then
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", canons.formspec)
|
meta:set_string("formspec", cannons.formspec)
|
||||||
meta:set_string("infotext", "Canon has no muni and no gunpowder")
|
meta:set_string("infotext", "Canon has no muni and no gunpowder")
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
inv:set_size("gunpowder", 1)
|
inv:set_size("gunpowder", 1)
|
||||||
inv:set_size("muni", 1)
|
inv:set_size("muni", 1)
|
||||||
else
|
else
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", canons.disabled_formspec)
|
meta:set_string("formspec", cannons.disabled_formspec)
|
||||||
meta:set_string("infotext", "Canon is out of Order")
|
meta:set_string("infotext", "Canon is out of Order")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
canons.nodebox = {
|
cannons.nodebox = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.2, 0.2, -0.7, 0.2, -0.2, 0.9}, -- barrle --
|
{-0.2, 0.2, -0.7, 0.2, -0.2, 0.9}, -- barrle --
|
||||||
@ -101,7 +101,7 @@ canons.nodebox = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
canons.stand_nodebox = {
|
cannons.stand_nodebox = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- bottom --
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- bottom --
|
||||||
@ -114,34 +114,34 @@ canons.stand_nodebox = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
function canons.fire(pos,node,puncher)
|
function cannons.fire(pos,node,puncher)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local stack = inv:get_stack("muni", 1)
|
local stack = inv:get_stack("muni", 1)
|
||||||
local muni = stack:to_table()
|
local muni = stack:to_table()
|
||||||
if inv:contains_item("gunpowder","canons:gunpowder 1")
|
if inv:contains_item("gunpowder","cannons:gunpowder 1")
|
||||||
and muni ~= nil
|
and muni ~= nil
|
||||||
and canons.is_muni(muni.name)
|
and cannons.is_muni(muni.name)
|
||||||
and inv:contains_item("muni",muni.name.." 1")
|
and inv:contains_item("muni",muni.name.." 1")
|
||||||
|
|
||||||
then
|
then
|
||||||
minetest.sound_play("canons_shot",
|
minetest.sound_play("cannons_shot",
|
||||||
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
|
|
||||||
|
|
||||||
inv:remove_item("muni", muni.name.." 1")
|
inv:remove_item("muni", muni.name.." 1")
|
||||||
inv:remove_item("gunpowder", "canons:gunpowder 1")
|
inv:remove_item("gunpowder", "cannons:gunpowder 1")
|
||||||
canons.inventory_modified(pos)
|
cannons.inventory_modified(pos)
|
||||||
local settings = canons.get_settings(muni.name)
|
local settings = cannons.get_settings(muni.name)
|
||||||
local playerpos=puncher:getpos()
|
local playerpos=puncher:getpos()
|
||||||
local obj=minetest.env:add_entity(pos, canons.get_entity(muni.name))
|
local obj=minetest.env:add_entity(pos, cannons.get_entity(muni.name))
|
||||||
local dir=puncher:get_look_dir()
|
local dir=puncher:get_look_dir()
|
||||||
obj:setvelocity({x=dir.x*settings.velocity, y=-1, z=dir.z*settings.velocity})
|
obj:setvelocity({x=dir.x*settings.velocity, y=-1, z=dir.z*settings.velocity})
|
||||||
obj:setacceleration({x=dir.x*-3, y=-settings.gravity, z=dir.z*-3})
|
obj:setacceleration({x=dir.x*-3, y=-settings.gravity, z=dir.z*-3})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function canons.punched(pos, node, puncher)
|
function cannons.punched(pos, node, puncher)
|
||||||
if not puncher or not node then
|
if not puncher or not node then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -151,20 +151,20 @@ function canons.punched(pos, node, puncher)
|
|||||||
end
|
end
|
||||||
wield = wield:get_name()
|
wield = wield:get_name()
|
||||||
if wield and wield == 'default:torch' then
|
if wield and wield == 'default:torch' then
|
||||||
canons.fire(pos,node,puncher)
|
cannons.fire(pos,node,puncher)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ canons.register_muni +
|
--+ cannons.register_muni +
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
canons.registered_muni = {}
|
cannons.registered_muni = {}
|
||||||
|
|
||||||
function canons.register_muni(node,entity)
|
function cannons.register_muni(node,entity)
|
||||||
canons.registered_muni[node] = {}
|
cannons.registered_muni[node] = {}
|
||||||
canons.registered_muni[node].entity = entity
|
cannons.registered_muni[node].entity = entity
|
||||||
canons.registered_muni[node].entity.on_step = function(self, dtime)
|
cannons.registered_muni[node].entity.on_step = function(self, dtime)
|
||||||
self.timer=self.timer+dtime
|
self.timer=self.timer+dtime
|
||||||
--pr(self.timer,"Timer")
|
--pr(self.timer,"Timer")
|
||||||
if self.timer >= 0.3 then --easiesst less laggiest way to find out that it left his start position
|
if self.timer >= 0.3 then --easiesst less laggiest way to find out that it left his start position
|
||||||
@ -190,18 +190,18 @@ function canons.register_muni(node,entity)
|
|||||||
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
|
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
canons.registered_muni[node].obj = entity.name
|
cannons.registered_muni[node].obj = entity.name
|
||||||
minetest.register_entity(entity.name, canons.registered_muni[node].entity)
|
minetest.register_entity(entity.name, cannons.registered_muni[node].entity)
|
||||||
end
|
end
|
||||||
|
|
||||||
function canons.is_muni(node)
|
function cannons.is_muni(node)
|
||||||
return canons.registered_muni[node] ~= nil
|
return cannons.registered_muni[node] ~= nil
|
||||||
end
|
end
|
||||||
function canons.get_entity(node)
|
function cannons.get_entity(node)
|
||||||
return canons.registered_muni[node].obj
|
return cannons.registered_muni[node].obj
|
||||||
end
|
end
|
||||||
function canons.get_settings(node)
|
function cannons.get_settings(node)
|
||||||
return canons.registered_muni[node].entity
|
return cannons.registered_muni[node].entity
|
||||||
end
|
end
|
||||||
|
|
||||||
local apple={
|
local apple={
|
||||||
@ -213,7 +213,7 @@ local apple={
|
|||||||
range=2,
|
range=2,
|
||||||
gravity=10,
|
gravity=10,
|
||||||
velocity=30,
|
velocity=30,
|
||||||
name="canons:apple",
|
name="cannons:apple",
|
||||||
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
|
||||||
on_player_hit = function(self,pos,player)
|
on_player_hit = function(self,pos,player)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
@ -236,4 +236,4 @@ local apple={
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
}
|
}
|
||||||
canons.register_muni("default:apple",apple)
|
cannons.register_muni("default:apple",apple)
|
6
init.lua
@ -1,17 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
canons = {}
|
cannons = {}
|
||||||
local MODPATH = minetest.get_modpath(minetest.get_current_modname())
|
local MODPATH = minetest.get_modpath(minetest.get_current_modname())
|
||||||
|
|
||||||
enable_fire = canons.enable_fire
|
|
||||||
enable_explosion = canons.enable_explosion
|
|
||||||
|
|
||||||
dofile(MODPATH .."/settings.txt")
|
dofile(MODPATH .."/settings.txt")
|
||||||
dofile(MODPATH .."/print_r.lua")
|
dofile(MODPATH .."/print_r.lua")
|
||||||
dofile(MODPATH .."/functions.lua")
|
dofile(MODPATH .."/functions.lua")
|
||||||
dofile(MODPATH .."/items.lua")
|
dofile(MODPATH .."/items.lua")
|
||||||
dofile(MODPATH .."/canonballs.lua")
|
dofile(MODPATH .."/cannonballs.lua")
|
||||||
|
|
||||||
|
|
||||||
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname()))
|
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname()))
|
||||||
|
130
items.lua
@ -2,57 +2,51 @@
|
|||||||
--+ Craft Items +
|
--+ Craft Items +
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
minetest.register_craftitem("canons:gunpowder", {
|
minetest.register_craftitem("cannons:gunpowder", {
|
||||||
groups = {gunpowder=1},
|
groups = {gunpowder=1},
|
||||||
description = "Gunpowder",
|
description = "Gunpowder",
|
||||||
inventory_image = "canons_gunpowder.png"
|
inventory_image = "cannons_gunpowder.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("canons:salt", {
|
minetest.register_craftitem("cannons:salt", {
|
||||||
description = "Salt",
|
description = "Salt",
|
||||||
inventory_image = "canons_salt.png"
|
inventory_image = "cannons_salt.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("canons:bucket_salt", {
|
minetest.register_craftitem("cannons:bucket_salt", {
|
||||||
description = "Bucket with salt",
|
description = "Bucket with salt",
|
||||||
inventory_image = "canons_bucket_salt.png",
|
inventory_image = "cannons_bucket_salt.png",
|
||||||
stack_max = 300
|
stack_max = 300
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craftitem("canons:stone_bullet", {
|
|
||||||
Description = "Stone Bullet",
|
|
||||||
inventory_image = "canons_bullet.png"
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ crafts +
|
--+ crafts +
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = 'canons:salt 12',
|
output = 'cannons:salt 12',
|
||||||
recipe = {
|
recipe = {
|
||||||
"canons:bucket_salt"
|
"cannons:bucket_salt"
|
||||||
},
|
},
|
||||||
replacements = {
|
replacements = {
|
||||||
{"canons:bucket_salt", "bucket:bucket_empty"}
|
{"cannons:bucket_salt", "bucket:bucket_empty"}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
output = 'canons:bucket_salt',
|
output = 'cannons:bucket_salt',
|
||||||
recipe = 'bucket:bucket_water',
|
recipe = 'bucket:bucket_water',
|
||||||
cooktime = 15
|
cooktime = 15
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = 'canons:gunpowder',
|
output = 'cannons:gunpowder',
|
||||||
recipe = {
|
recipe = {
|
||||||
"default:coal_lump", "default:mese_crystal", "canons:salt"
|
"default:coal_lump", "default:mese_crystal", "cannons:salt"
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -60,25 +54,25 @@ minetest.register_craft({
|
|||||||
-- new crafts --
|
-- new crafts --
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:canon',
|
output = 'cannons:cannon',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:steelblock", "default:steelblock", "default:steelblock"},
|
{"default:steelblock", "default:steelblock", "default:steelblock"},
|
||||||
{"canons:gunpowder", "default:mese_block", ""},
|
{"cannons:gunpowder", "default:mese_block", ""},
|
||||||
{"default:steelblock", "default:steelblock", "default:steelblock"}
|
{"default:steelblock", "default:steelblock", "default:steelblock"}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:bronze_canon',
|
output = 'cannons:bronze_canon',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:bronzeblock", "default:bronzeblock", "default:bronzeblock"},
|
{"default:bronzeblock", "default:bronzeblock", "default:bronzeblock"},
|
||||||
{"canons:gunpowder", "default:mese_block", ""},
|
{"cannons:gunpowder", "default:mese_block", ""},
|
||||||
{"default:bronzeblock", "default:bronzeblock", "default:bronzeblock"}
|
{"default:bronzeblock", "default:bronzeblock", "default:bronzeblock"}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:canon_stand',
|
output = 'cannons:stand',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:wood", "", "default:wood"},
|
{"default:wood", "", "default:wood"},
|
||||||
{"default:wood", "default:steelblock", "default:wood"},
|
{"default:wood", "default:steelblock", "default:wood"},
|
||||||
@ -88,72 +82,70 @@ minetest.register_craft({
|
|||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = 'canons:canon_ball_steel_stack',
|
output = 'cannons:ball_steel_stack',
|
||||||
recipe = {
|
recipe = {
|
||||||
"canons:canon_ball_steel", "canons:canon_ball_steel", "canons:canon_ball_steel", "canons:canon_ball_steel"
|
"cannons:canon_ball_steel", "cannons:canon_ball_steel", "cannons:canon_ball_steel", "cannons:canon_ball_steel"
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = 'canons:canon_ball_stone_stack',
|
output = 'cannons:ball_stone_stack',
|
||||||
recipe = {
|
recipe = {
|
||||||
"canons:canon_ball_stone", "canons:canon_ball_stone", "canons:canon_ball_stone", "canons:canon_ball_stone"
|
"cannons:canon_ball_stone", "cannons:canon_ball_stone", "cannons:canon_ball_stone", "cannons:canon_ball_stone"
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = 'canons:canon_ball_wood_stack',
|
output = 'cannons:ball_wood_stack',
|
||||||
recipe = {
|
recipe = {
|
||||||
"canons:canon_ball_wood", "canons:canon_ball_wood", "canons:canon_ball_wood", "canons:canon_ball_wood"
|
"cannons:canon_ball_wood", "cannons:canon_ball_wood", "cannons:canon_ball_wood", "cannons:canon_ball_wood"
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:canon_ball_wood 2',
|
output = 'cannons:ball_wood 2',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:wood","default:wood"},
|
{"default:wood","default:wood"},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:canon_ball_stone',
|
output = 'cannons:ball_stone',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:stone"},
|
{"default:stone"},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'canons:canon_ball_steel',
|
output = 'cannons:ball_steel',
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:steelblock"}
|
{"default:steelblock"}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- silly crafts --
|
|
||||||
|
|
||||||
|
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
--+ cannon stuff +
|
--+ cannon stuff +
|
||||||
--++++++++++++++++++++++++++++++++++++
|
--++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
-- classic cannon --
|
-- classic cannon --
|
||||||
minetest.register_node("canons:canon", {
|
minetest.register_node("cannons:cannon", {
|
||||||
description = "Cannon",
|
description = "Cannon",
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
tiles = {"cannon_cannon_top.png","cannon_cannon_top.png","cannon_cannon_side.png","cannon_cannon_side.png","cannon_cannon_top.png^canons_canons_rim.png","cannon_cannon_side.png"},
|
tiles = {"cannon_cannon_top.png","cannon_cannon_top.png","cannon_cannon_side.png","cannon_cannon_side.png","cannon_cannon_top.png^cannons_rim.png","cannon_cannon_side.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=1},
|
groups = {cracky=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
node_box = canons.nodebox,
|
node_box = cannons.nodebox,
|
||||||
on_place = canons.on_place,
|
on_place = cannons.on_place,
|
||||||
selection_box = canons.nodebox,
|
selection_box = cannons.nodebox,
|
||||||
on_punch = canons.punched,
|
on_punch = cannons.punched,
|
||||||
on_construct = canons.on_construct,
|
on_construct = cannons.on_construct,
|
||||||
can_dig = function(pos,player)
|
can_dig = function(pos,player)
|
||||||
local meta = minetest.get_meta(pos);
|
local meta = minetest.get_meta(pos);
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
@ -165,33 +157,33 @@ minetest.register_node("canons:canon", {
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
allow_metadata_inventory_put = canons.allow_metadata_inventory_put,
|
allow_metadata_inventory_put = cannons.allow_metadata_inventory_put,
|
||||||
|
|
||||||
allow_metadata_inventory_move = canons.allow_metadata_inventory_move,
|
allow_metadata_inventory_move = cannons.allow_metadata_inventory_move,
|
||||||
|
|
||||||
on_metadata_inventory_put = canons.inventory_modified,
|
on_metadata_inventory_put = cannons.inventory_modified,
|
||||||
|
|
||||||
on_metadata_inventory_take = canons.inventory_modified,
|
on_metadata_inventory_take = cannons.inventory_modified,
|
||||||
|
|
||||||
on_metadata_inventory_move = canons.inventory_modified,
|
on_metadata_inventory_move = cannons.inventory_modified,
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- bronze cannon --
|
-- bronze cannon --
|
||||||
minetest.register_node("canons:bronze_canon", {
|
minetest.register_node("cannons:bronze_canon", {
|
||||||
description = "Cannon (bronze)",
|
description = "Cannon (bronze)",
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
tiles = {"cannon_bronze_cannon_top.png","cannon_bronze_cannon_top.png","cannon_bronze_cannon_side.png","cannon_bronze_cannon_side.png","cannon_bronze_cannon_top.png^canons_canons_rim.png","cannon_bronze_cannon_side.png"},
|
tiles = {"cannon_bronze_cannon_top.png","cannon_bronze_cannon_top.png","cannon_bronze_cannon_side.png","cannon_bronze_cannon_side.png","cannon_bronze_cannon_top.png^cannons_rim.png","cannon_bronze_cannon_side.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=1},
|
groups = {cracky=1},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
node_box = canons.nodebox,
|
node_box = cannons.nodebox,
|
||||||
selection_box = canons.nodebox,
|
selection_box = cannons.nodebox,
|
||||||
on_punch = canons.punched,
|
on_punch = cannons.punched,
|
||||||
on_construct = canons.on_construct,
|
on_construct = cannons.on_construct,
|
||||||
can_dig = function(pos,player)
|
can_dig = function(pos,player)
|
||||||
local meta = minetest.get_meta(pos);
|
local meta = minetest.get_meta(pos);
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
@ -203,29 +195,29 @@ minetest.register_node("canons:bronze_canon", {
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
allow_metadata_inventory_put = canons.allow_metadata_inventory_put,
|
allow_metadata_inventory_put = cannons.allow_metadata_inventory_put,
|
||||||
|
|
||||||
allow_metadata_inventory_move = canons.allow_metadata_inventory_move,
|
allow_metadata_inventory_move = cannons.allow_metadata_inventory_move,
|
||||||
|
|
||||||
on_metadata_inventory_put = canons.inventory_modified,
|
on_metadata_inventory_put = cannons.inventory_modified,
|
||||||
|
|
||||||
on_metadata_inventory_take = canons.inventory_modified,
|
on_metadata_inventory_take = cannons.inventory_modified,
|
||||||
|
|
||||||
on_metadata_inventory_move = canons.inventory_modified,
|
on_metadata_inventory_move = cannons.inventory_modified,
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("canons:canon_stand", {
|
minetest.register_node("cannons:stand", {
|
||||||
description = "Cannon Stand",
|
description = "Cannon Stand",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"default_junglewood.png","default_junglewood.png^canons_canons_rim.png","default_junglewood.png^canons_canons_rim.png","default_junglewood.png^canons_canons_rim.png","default_cobble.png","default_junglewood.png^canons_canons_rim.png"},
|
tiles = {"default_junglewood.png","default_junglewood.png^cannons_rim.png","default_junglewood.png^cannons_rim.png","default_junglewood.png^cannons_rim.png","default_cobble.png","default_junglewood.png^cannons_rim.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
node_box = canons.stand_nodebox,
|
node_box = cannons.stand_nodebox,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
@ -233,7 +225,7 @@ minetest.register_node("canons:canon_stand", {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
minetest.register_node("canons:canon_ball_wood", {
|
minetest.register_node("cannons:ball_wood", {
|
||||||
description = "Cannon Ball Wood",
|
description = "Cannon Ball Wood",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"default_wood.png"},
|
tiles = {"default_wood.png"},
|
||||||
@ -260,7 +252,7 @@ minetest.register_node("canons:canon_ball_wood", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("canons:canon_ball_stone", {
|
minetest.register_node("cannons:ball_stone", {
|
||||||
description = "Cannon Ball Stone",
|
description = "Cannon Ball Stone",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"default_stone.png"},
|
tiles = {"default_stone.png"},
|
||||||
@ -287,7 +279,7 @@ minetest.register_node("canons:canon_ball_stone", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("canons:canon_ball_steel", {
|
minetest.register_node("cannons:ball_steel", {
|
||||||
description = "Cannon Ball Steel",
|
description = "Cannon Ball Steel",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"cannon_cannon_top.png"},
|
tiles = {"cannon_cannon_top.png"},
|
||||||
@ -314,12 +306,12 @@ minetest.register_node("canons:canon_ball_steel", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("canons:canon_ball_wood_stack", {
|
minetest.register_node("cannons:ball_wood_stack", {
|
||||||
description = "Cannon Ball Wood Stack",
|
description = "Cannon Ball Wood Stack",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"default_wood.png"},
|
tiles = {"default_wood.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
drop = 'canons:canon_ball_wood 4',
|
drop = 'cannons:ball_wood 4',
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
@ -352,12 +344,12 @@ minetest.register_node("canons:canon_ball_wood_stack", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("canons:canon_ball_stone_stack", {
|
minetest.register_node("cannons:ball_stone_stack", {
|
||||||
description = "Cannon Ball Stone Stack",
|
description = "Cannon Ball Stone Stack",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"default_stone.png"},
|
tiles = {"default_stone.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
drop = 'canons:canon_ball_stone 4',
|
drop = 'cannons:ball_stone 4',
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
@ -389,12 +381,12 @@ minetest.register_node("canons:canon_ball_stone_stack", {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("canons:canon_ball_steel_stack", {
|
minetest.register_node("cannons:canon_ball_steel_stack", {
|
||||||
description = "Cannon Ball Steel Stack",
|
description = "Cannon Ball Steel Stack",
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
tiles = {"cannon_cannon_top.png"},
|
tiles = {"cannon_cannon_top.png"},
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
drop = 'canons:canon_ball_steel 4',
|
drop = 'cannons:ball_steel 4',
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
is_ground_content = true,
|
is_ground_content = true,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
canons_splash.1.ogg
|
cannons_splash.1.ogg
|
||||||
canons_splash.2.ogg
|
cannons_splash.2.ogg
|
||||||
canons_splash.3.ogg
|
cannons_splash.3.ogg
|
||||||
canons_splash.4.ogg
|
cannons_splash.4.ogg
|
||||||
|
|
||||||
License: Public Domain
|
License: Public Domain
|
||||||
source: http://www.mediacollege.com/downloads/sound-effects/water/
|
source: http://www.mediacollege.com/downloads/sound-effects/water/
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
-- enable/disable the muni wich makes things burning if it hit them.
|
-- enable/disable the muni wich makes things burning if it hit them.
|
||||||
-- if you want to dissable it just set it to false:
|
-- if you want to dissable it just set it to false:
|
||||||
canons.enable_fire = true
|
cannons.enable_fire = true
|
||||||
|
|
||||||
-- enable/disable the muni wich destroyes nodesif it hit them.
|
-- enable/disable the muni wich destroyes nodesif it hit them.
|
||||||
-- if you want to dissable it just set it to false:
|
-- if you want to dissable it just set it to false:
|
||||||
canons.enable_explosion = true
|
cannons.enable_explosion = true
|
Before Width: | Height: | Size: 372 B After Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 651 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 504 B |