HTTPS SSH

Welcome to the cannons mod

cannons is a mod for the game minetest written by Kingarthurs Team (Semmett9, eythen, and addi)

if you have some muni in the cannon and some gunpowder you can shot the cannon if you punch it with a torch.

the cannonball will damage the other players. if it wears armor the damage will be calculated.

configure cannons

create a file caled cannons.conf in your world dir.

add the folowing lines to it:

enable_explosion = "true"
enable_fire = "true"

now you can change it. eg. if you want to disable fire then cange enable_fire = "true" to enable_fire = "false"

thats all :-)

Dependencies

  • default
  • bucket
  • fire(optional)

get cannons

relases are in the donwloads Tab swith there to tab 'Tags'

its also aviable as a git repo:

$ git clone https://kingarthursteam@bitbucket.org/kingarthursteam/canons.git

Craft Rezieps

Bucket with salt:

Bucket with salt salt

Salt (shapeless):

salt

Gunpowder (schapeless):

craft gunpowder

cannons:

cannon & bronce cannon Wooden stand:

wooden stand

Stone Stand:

stone stand

Screenshots

Cannon Tower Cannon Tower 2 Cannon Tower 3

Create your own Cannonball!

local ball_wood={
    physical = false,
    timer=0,
    textures = {"cannons_wood_bullet.png"},
    lastpos={},
    damage=20,
    range=1,
    gravity=10,
    velocity=40,
    name="cannons:wood_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 cannonball")
    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("cannons_hit",
                {pos = pos, gain = 1.0, max_hear_distance = 32,})
            self.object:remove()
        elseif node.name == "default:water_source" then
        minetest.sound_play("cannons_splash",
            {pos = pos, gain = 1.0, max_hear_distance = 32,})
            self.object:remove()
        else
        minetest.sound_play("cannons_hit",
            {pos = pos, gain = 1.0, max_hear_distance = 32,})
            self.object:remove()
        end
    end,

}
cannons.register_muni("cannons:ball_wood",ball_wood)

Have fun!