crazy nukes

User avatar
jordan4ibanez
Member
 
Posts: 1895
Joined: Tue Sep 27, 2011 18:44
Location: Rhode Island, USA
GitHub: jordan4ibanez
IRC: jordan4ibanez
In-game: jordan4ibanez

crazy nukes

by jordan4ibanez » Tue Apr 10, 2012 23:35

Here is a code for even more chaotic nukes..makes them work like minecraft tnt..one hit takes a while..but the rest set of them go off one after another (sort of) i don't recommend this for low spec pc's..this is code for sfan5's nuke mod (replace the init.lua)...the randomization of destruction is thanks to ikjoel
Code: Select all
mrmin = -5
mrmax = 5

function activate_if_tnt(nname, np, tnt_np, tntr)
    if nname == "experimental:tnt" or nname == "nuke:hardcore_iron_tnt" or nname == "nuke:hardcore_mese_tnt" then
        local e = minetest.env:add_entity(np, nname)
        e:setvelocity({x=(np.x - tnt_np.x)*3+(tntr / 4), y=(np.y - tnt_np.y)*3+(tntr / 3), z=(np.z - tnt_np.z)*3+(tntr / 4)})
     else if nname == "nuke:iron_tnt" then
      gop = "nuke:iron_tnt2"
      local e = minetest.env:add_entity(np, gop)
      e:setvelocity({x=(np.x - tnt_np.x)*1+(tntr / 4), y=(np.y - tnt_np.y)*1+(tntr / 3), z=(np.z - tnt_np.z)*1+(tntr / 4)})
    else if nname == "nuke:mese_tnt" then
      gop2 = "nuke:mese_tnt2"
      local e = minetest.env:add_entity(np, gop2)
      e:setvelocity({x=(np.x - tnt_np.x)*1+(tntr / 4), y=(np.y - tnt_np.y)*1+(tntr / 3), z=(np.z - tnt_np.z)*1+(tntr / 4)})
    end
end
end
end

function do_tnt_physics(tnt_np,tntr)
    local objs = minetest.env:get_objects_inside_radius(tnt_np, tntr)
    for k, obj in pairs(objs) do
        local oname = obj:get_entity_name()
        local v = obj:getvelocity()
        local p = obj:getpos()
        if oname == "experimental:tnt" or oname == "nuke:iron_tnt" or oname == "nuke:mese_tnt" or oname == "nuke:hardcore_iron_tnt" or oname == "nuke:hardcore_mese_tnt" then
            obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 2) + v.x, y=(p.y - tnt_np.y) + tntr + v.y, z=(p.z - tnt_np.z) + (tntr / 2) + v.z})
        else
            if v ~= nil then
                obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z})
            else
                if obj:get_player_name() ~= nil then
                    obj:set_hp(obj:get_hp() - 1)
                end
            end
        end
    end
end

-- Iron TNT

minetest.register_craft({
    output = 'node "nuke:iron_tnt" 4',
    recipe = {
        {'','node "default:wood" 1',''},
        {'craft "default:steel_ingot" 1','craft "default:coal_lump" 1','craft "default:steel_ingot" 1'},
        {'','node "default:wood" 1',''}
    }
})
minetest.register_node("nuke:iron_tnt", {
    tile_images = {"nuke_iron_tnt_top.png", "nuke_iron_tnt_bottom.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png"},
    inventory_image = minetest.inventorycube("nuke_iron_tnt_top.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png"),
    dug_item = '', -- Get nothing
    material = {
        diggability = "not",
    },
    description = "Iron TNT",
})

minetest.register_on_punchnode(function(p, node)
    if node.name == "nuke:iron_tnt" then
        minetest.env:remove_node(p)
        minetest.env:add_entity(p, "nuke:iron_tnt")
        --minetest.env:add_entity(p, "nuke:iron_tnt2") <-in case you forget
        nodeupdate(p)
    end
end)

local IRON_TNT_RANGE = 6
local IRON_TNT = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_iron_tnt_top.png", "nuke_iron_tnt_bottom.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png"},
    -- Initial value for our timer
    timer = 0,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 0,
    blinkstatus = true,
}

function IRON_TNT:on_activate(staticdata)
    self.object:setvelocity({x=0, y=4, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function IRON_TNT:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        do_tnt_physics(pos, IRON_TNT_RANGE)
        if minetest.env:get_node(pos).name == "default:water_source" or minetest.env:get_node(pos).name == "default:water_flowing" then
            -- Cancel the Explosion
            self.object:remove()
            return
        end
        for x=-IRON_TNT_RANGE,IRON_TNT_RANGE do
        for y=-IRON_TNT_RANGE,IRON_TNT_RANGE do
        for z=-IRON_TNT_RANGE,IRON_TNT_RANGE do
            if x*x+y*y+z*z <= (IRON_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) * (IRON_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) + (IRON_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) then
                local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
                local n = minetest.env:get_node(np)
                if n.name ~= "air" then
                    minetest.env:remove_node(np)
                end
                activate_if_tnt(n.name, np, pos, IRON_TNT_RANGE)
            end
        end
        end
        end
        self.object:remove()
    end
end

function IRON_TNT:on_punch(hitter)
    self.health = self.health - 1
    if self.health <= 0 then
        self.object:remove()
        hitter:get_inventory():add_item("main", "nuke:iron_tnt")
    end
end

minetest.register_entity("nuke:iron_tnt", IRON_TNT)

-- Mese TNT

minetest.register_craft({
    output = 'node "nuke:mese_tnt" 4',
    recipe = {
        {'','node "default:wood" 1',''},
        {'node "default:mese" 1','craft "default:coal_lump" 1','node "default:mese" 1'},
        {'','node "default:wood" 1',''}
    }
})
minetest.register_node("nuke:mese_tnt", {
    tile_images = {"nuke_mese_tnt_top.png", "nuke_mese_tnt_bottom.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png"},
    inventory_image = minetest.inventorycube("nuke_mese_tnt_top.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png"),
    dug_item = '', -- Get nothing
    material = {
        diggability = "not",
    },
    description = "Mese TNT",
})

minetest.register_on_punchnode(function(p, node)
    if node.name == "nuke:mese_tnt" then
        minetest.env:remove_node(p)
        minetest.env:add_entity(p, "nuke:mese_tnt")
        nodeupdate(p)
    end
end)

local IRON_TNT2_RANGE = 7
local IRON_TNT2 = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_iron_tnt_top.png", "nuke_iron_tnt_bottom.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png",
            "nuke_iron_tnt_side.png", "nuke_iron_tnt_side.png"},
    -- Initial value for our timer
    timer = 9,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 9,
    blinkstatus = true,
}
   
function IRON_TNT2:on_activate(staticdata)
    self.object:setvelocity({x=0, y=0, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function IRON_TNT2:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        do_tnt_physics(pos, IRON_TNT2_RANGE)
        if minetest.env:get_node(pos).name == "default:water_source" or minetest.env:get_node(pos).name == "default:water_flowing" then
            -- Cancel the Explosion
            self.object:remove()
            return
        end
        for x=-IRON_TNT2_RANGE,IRON_TNT2_RANGE do
        for y=-IRON_TNT2_RANGE,IRON_TNT2_RANGE do
        for z=-IRON_TNT2_RANGE,IRON_TNT2_RANGE do
            if x*x+y*y+z*z <= (IRON_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) * (IRON_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) + (IRON_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) then
                local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
                local n = minetest.env:get_node(np)
                if n.name ~= "air" then
                    minetest.env:remove_node(np)
                end
                activate_if_tnt(n.name, np, pos, IRON_TNT2_RANGE)
            end
        end
        end
        end
        self.object:remove()
    end
end
minetest.register_entity("nuke:iron_tnt2", IRON_TNT2)

local MESE_TNT_RANGE = 12
local MESE_TNT = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_mese_tnt_top.png", "nuke_mese_tnt_bottom.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png"},
    -- Initial value for our timer
    timer = 0,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 0,
    blinkstatus = true,
}

function MESE_TNT:on_activate(staticdata)
    self.object:setvelocity({x=0, y=4, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function MESE_TNT:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        do_tnt_physics(pos, MESE_TNT_RANGE)
        if minetest.env:get_node(pos).name == "default:water_source" or minetest.env:get_node(pos).name == "default:water_flowing" then
            -- Cancel the Explosion
            self.object:remove()
            return
        end
        for x=-MESE_TNT_RANGE,MESE_TNT_RANGE do
        for y=-MESE_TNT_RANGE,MESE_TNT_RANGE do
        for z=-MESE_TNT_RANGE,MESE_TNT_RANGE do
            if x*x+y*y+z*z <= (MESE_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) * (MESE_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) + (MESE_TNT_RANGE + math.floor(math.random(mrmin,mrmax))) then
                local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
                local n = minetest.env:get_node(np)
                if n.name ~= "air" then
                    minetest.env:remove_node(np)
                end
                activate_if_tnt(n.name, np, pos, MESE_TNT_RANGE)
            end
        end
        end
        end
        self.object:remove()
    end
end

function MESE_TNT:on_punch(hitter)
    self.health = self.health - 1
    if self.health <= 0 then
        self.object:remove()
        hitter:get_inventory():add_item("main", "nuke:mese_tnt")
    end
end

minetest.register_entity("nuke:mese_tnt", MESE_TNT)

local MESE_TNT2_RANGE = 14
local MESE_TNT2 = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_mese_tnt_top.png", "nuke_mese_tnt_bottom.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png",
            "nuke_mese_tnt_side.png", "nuke_mese_tnt_side.png"},
    -- Initial value for our timer
    timer = 9,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 9,
    blinkstatus = true,
}

function MESE_TNT2:on_activate(staticdata)
    self.object:setvelocity({x=0, y=1, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function MESE_TNT2:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        do_tnt_physics(pos, MESE_TNT2_RANGE)
        if minetest.env:get_node(pos).name == "default:water_source" or minetest.env:get_node(pos).name == "default:water_flowing" then
            -- Cancel the Explosion
            self.object:remove()
            return
        end
        for x=-MESE_TNT2_RANGE,MESE_TNT2_RANGE do
        for y=-MESE_TNT2_RANGE,MESE_TNT2_RANGE do
        for z=-MESE_TNT2_RANGE,MESE_TNT2_RANGE do
            if x*x+y*y+z*z <= (MESE_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) * (MESE_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) + (MESE_TNT2_RANGE + math.floor(math.random(mrmin,mrmax))) then
                local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
                local n = minetest.env:get_node(np)
                if n.name ~= "air" then
                    minetest.env:remove_node(np)
                end
                activate_if_tnt(n.name, np, pos, MESE_TNT2_RANGE)
            end
        end
        end
        end
        self.object:remove()
    end
end
minetest.register_entity("nuke:mese_tnt2", MESE_TNT2)

-- Hardcore Iron TNT

minetest.register_craft({
    output = 'node "nuke:hardcore_iron_tnt" 1',
    recipe = {
        {'','craft "default:coal_lump" 1',''},
        {'craft "default:coal_lump" 1','node "nuke:iron_tnt" 1','craft "default:coal_lump" 1'},
        {'','craft "default:coal_lump" 1',''}
    }
})
minetest.register_node("nuke:hardcore_iron_tnt", {
    tile_images = {"nuke_iron_tnt_top.png", "nuke_iron_tnt_bottom.png",
            "nuke_hardcore_iron_tnt_side.png", "nuke_hardcore_iron_tnt_side.png",
            "nuke_hardcore_iron_tnt_side.png", "nuke_hardcore_iron_tnt_side.png"},
    inventory_image = minetest.inventorycube("nuke_iron_tnt_top.png",
            "nuke_hardcore_iron_tnt_side.png", "nuke_hardcore_iron_tnt_side.png"),
    dug_item = '', -- Get nothing
    material = {
        diggability = "not",
    },
    description = "Hardcore Iron TNT",
})

minetest.register_on_punchnode(function(p, node)
    if node.name == "nuke:hardcore_iron_tnt" then
        minetest.env:remove_node(p)
        minetest.env:add_entity(p, "nuke:hardcore_iron_tnt")
        nodeupdate(p)
    end
end)

local HARDCORE_IRON_TNT_RANGE = 6
local HARDCORE_IRON_TNT = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_iron_tnt_top.png", "nuke_iron_tnt_bottom.png",
            "nuke_hardcore_iron_tnt_side.png", "nuke_hardcore_iron_tnt_side.png",
            "nuke_hardcore_iron_tnt_side.png", "nuke_hardcore_iron_tnt_side.png"},
    -- Initial value for our timer
    timer = 0,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 0,
    blinkstatus = true,
}

function HARDCORE_IRON_TNT:on_activate(staticdata)
    self.object:setvelocity({x=0, y=4, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function HARDCORE_IRON_TNT:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        for x=-HARDCORE_IRON_TNT_RANGE,HARDCORE_IRON_TNT_RANGE do
        for z=-HARDCORE_IRON_TNT_RANGE,HARDCORE_IRON_TNT_RANGE do
            if x*x+z*z <= HARDCORE_IRON_TNT_RANGE * HARDCORE_IRON_TNT_RANGE + HARDCORE_IRON_TNT_RANGE then
                local np={x=pos.x+x,y=pos.y,z=pos.z+z}
                minetest.env:add_entity(np, "nuke:iron_tnt")
            end
        end
        end
        self.object:remove()
    end
end

function HARDCORE_IRON_TNT:on_punch(hitter)
    self.health = self.health - 1
    if self.health <= 0 then
        self.object:remove()
        hitter:add_to_inventory("node nuke:hardcore_iron_tnt 1")
        hitter:set_hp(hitter:get_hp() - 1)
    end
end

minetest.register_entity("nuke:hardcore_iron_tnt", HARDCORE_IRON_TNT)

-- Hardcore Mese TNT

minetest.register_craft({
    output = 'node "nuke:hardcore_mese_tnt" 1',
    recipe = {
        {'','craft "default:coal_lump" 1',''},
        {'craft "default:coal_lump" 1','node "nuke:mese_tnt" 1','craft "default:coal_lump" 1'},
        {'','craft "default:coal_lump" 1',''}
    }
})
minetest.register_node("nuke:hardcore_mese_tnt", {
    tile_images = {"nuke_mese_tnt_top.png", "nuke_mese_tnt_bottom.png",
            "nuke_hardcore_mese_tnt_side.png", "nuke_hardcore_mese_tnt_side.png",
            "nuke_hardcore_mese_tnt_side.png", "nuke_hardcore_mese_tnt_side.png"},
    inventory_image = minetest.inventorycube("nuke_mese_tnt_top.png",
            "nuke_hardcore_mese_tnt_side.png", "nuke_hardcore_mese_tnt_side.png"),
    dug_item = '', -- Get nothing
    material = {
        diggability = "not",
    },
    description = "Hardcore Mese TNT",
})

minetest.register_on_punchnode(function(p, node)
    if node.name == "nuke:hardcore_mese_tnt" then
        minetest.env:remove_node(p)
        minetest.env:add_entity(p, "nuke:hardcore_mese_tnt")
        nodeupdate(p)
    end
end)

local HARDCORE_MESE_TNT_RANGE = 6
local HARDCORE_MESE_TNT = {
    -- Static definition
    physical = true, -- Collides with things
    -- weight = 5,
    collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
    visual = "cube",
    textures = {"nuke_mese_tnt_top.png", "nuke_mese_tnt_bottom.png",
            "nuke_hardcore_mese_tnt_side.png", "nuke_hardcore_mese_tnt_side.png",
            "nuke_hardcore_mese_tnt_side.png", "nuke_hardcore_mese_tnt_side.png"},
    -- Initial value for our timer
    timer = 0,
    -- Number of punches required to defuse
    health = 1,
    blinktimer = 0,
    blinkstatus = true,
}

function HARDCORE_MESE_TNT:on_activate(staticdata)
    self.object:setvelocity({x=0, y=4, z=0})
    self.object:setacceleration({x=0, y=-10, z=0})
    self.object:settexturemod("^[brighten")
end

function HARDCORE_MESE_TNT:on_step(dtime)
    self.timer = self.timer + dtime
    self.blinktimer = self.blinktimer + dtime
    if self.timer>5 then
        self.blinktimer = self.blinktimer + dtime
        if self.timer>8 then
            self.blinktimer = self.blinktimer + dtime
            self.blinktimer = self.blinktimer + dtime
        end
    end
    if self.blinktimer > 0.5 then
        self.blinktimer = self.blinktimer - 0.5
        if self.blinkstatus then
            self.object:settexturemod("")
        else
            self.object:settexturemod("^[brighten")
        end
        self.blinkstatus = not self.blinkstatus
    end
    if self.timer > 10 then
        local pos = self.object:getpos()
        pos.x = math.floor(pos.x+0.5)
        pos.y = math.floor(pos.y+0.5)
        pos.z = math.floor(pos.z+0.5)
        for x=-HARDCORE_MESE_TNT_RANGE,HARDCORE_MESE_TNT_RANGE do
        for z=-HARDCORE_MESE_TNT_RANGE,HARDCORE_MESE_TNT_RANGE do
            if x*x+z*z <= HARDCORE_MESE_TNT_RANGE * HARDCORE_MESE_TNT_RANGE + HARDCORE_MESE_TNT_RANGE then
                local np={x=pos.x+x,y=pos.y,z=pos.z+z}
                minetest.env:add_entity(np, "nuke:mese_tnt")
            end
        end
        end
        self.object:remove()
    end
end

function HARDCORE_MESE_TNT:on_punch(hitter)
    self.health = self.health - 1
    if self.health <= 0 then
        self.object:remove()
        hitter:add_to_inventory("node nuke:hardcore_mese_tnt 1")
        hitter:set_hp(hitter:get_hp() - 1)
    end
end

minetest.register_entity("nuke:hardcore_mese_tnt", HARDCORE_MESE_TNT)
Last edited by jordan4ibanez on Tue Apr 10, 2012 23:47, edited 1 time in total.
I've been gone for a long time
 

lkjoel
Member
 
Posts: 779
Joined: Wed Feb 29, 2012 19:27
Location: Gallifrey

by lkjoel » Tue Apr 10, 2012 23:53

cool! What lines did you change?
My mods: The Nether | Doctor Who (WIP)

I have quit minetest ... again. I am heavily unimpressed by both the game and the community.
 

User avatar
jordan4ibanez
Member
 
Posts: 1895
Joined: Tue Sep 27, 2011 18:44
Location: Rhode Island, USA
GitHub: jordan4ibanez
IRC: jordan4ibanez
In-game: jordan4ibanez

by jordan4ibanez » Wed Apr 11, 2012 00:16

lkjoel wrote:cool! What lines did you change?

i dont even know..i added in a type 2 for mese and iron tnt so they detonate a lot faster when detonated by other tnt and the first few lines tell them to activate to type 2 nuke entities
I've been gone for a long time
 


Return to WIP Mods



Who is online

Users browsing this forum: Google [Bot], Red_King_Cyclops and 4 guests