Upload files to 'mods/rangedweapons'

This commit is contained in:
thunderdog1138 2020-11-20 18:31:09 +00:00
parent bf1ae9ba40
commit a027553715
4 changed files with 280 additions and 0 deletions

159
mods/rangedweapons/init.lua Normal file
View File

@ -0,0 +1,159 @@
local modpath = minetest.get_modpath(minetest.get_current_modname())
dofile(modpath.."/settings.lua")
dofile(modpath.."/misc.lua")
dofile(modpath.."/e11.lua")
dofile(modpath.."/explosives.lua")
dofile(modpath.."/door_breaking.lua")
dofile(modpath.."/glass_breaking.lua")
local rangedweapons_empty_shell = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.3, y=0.3},
textures = {"rangedweapons:shelldrop"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_empty_shell.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.lastpos.y ~= nil then
if minetest.registered_nodes[node.name].walkable then
local vel = self.object:getvelocity()
local acc = self.object:getacceleration()
self.object:setvelocity({x=vel.x*-0.3, y=vel.y*-0.75, z=vel.z*-0.3})
minetest.sound_play("rangedweapons_shellhit", {pos = self.lastpos, gain = 0.8})
self.object:setacceleration({x=acc.x, y=acc.y, z=acc.z})
end
end
if self.timer > 1.69 then
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:empty_shell", rangedweapons_empty_shell )
local rangedweapons_empty_shell_shotgun = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.35, y=0.35},
textures = {"rangedweapons:shell_shotgundrop"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_empty_shell_shotgun.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.lastpos.y ~= nil then
if minetest.registered_nodes[node.name].walkable then
local vel = self.object:getvelocity()
local acc = self.object:getacceleration()
self.object:setvelocity({x=vel.x*-0.3, y=vel.y*-0.75, z=vel.z*-0.3})
minetest.sound_play("rangedweapons_shellhit", {pos = self.lastpos, gain = 0.8})
self.object:setacceleration({x=acc.x, y=acc.y, z=acc.z})
end
end
if self.timer > 1.69 then
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:empty_shell_shotgun", rangedweapons_empty_shell_shotgun )
local rangedweapons_empty_shell_white = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.30, y=0.30},
textures = {"rangedweapons:shell_whitedrop"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_empty_shell_white.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.lastpos.y ~= nil then
if minetest.registered_nodes[node.name].walkable then
local vel = self.object:getvelocity()
local acc = self.object:getacceleration()
self.object:setvelocity({x=vel.x*-0.3, y=vel.y*-0.75, z=vel.z*-0.3})
minetest.sound_play("rangedweapons_shellhit", {pos = self.lastpos, gain = 0.8})
self.object:setacceleration({x=acc.x, y=acc.y, z=acc.z})
end
end
if self.timer > 1.69 then
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:empty_shell_white", rangedweapons_empty_shell_white )
local rangedweapons_empty_shell_grenade = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.30, y=0.30},
textures = {"rangedweapons:shell_grenadedrop"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_empty_shell_grenade.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.lastpos.y ~= nil then
if minetest.registered_nodes[node.name].walkable then
local vel = self.object:getvelocity()
local acc = self.object:getacceleration()
self.object:setvelocity({x=vel.x*-0.3, y=vel.y*-0.75, z=vel.z*-0.3})
minetest.sound_play("rangedweapons_shellhit", {pos = self.lastpos, gain = 0.8})
self.object:setacceleration({x=acc.x, y=acc.y, z=acc.z})
end
end
if self.timer > 1.69 then
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:empty_shell_grenade", rangedweapons_empty_shell_grenade )
minetest.register_abm({
nodenames = {"doors:hidden"},
interval = 1,
chance = 1,
action = function(pos, node)
pos.y = pos.y-1
if minetest.get_node(pos).name == "air" then
pos.y = pos.y+1
node.name = "air"
minetest.set_node(pos, node)
end
end
})

View File

@ -0,0 +1 @@
cc-by-sa 3.0

100
mods/rangedweapons/misc.lua Normal file
View File

@ -0,0 +1,100 @@
minetest.register_craftitem("rangedweapons:shell_shotgundrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_shotgun.png",
})
minetest.register_craftitem("rangedweapons:shell_whitedrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_white.png",
})
minetest.register_craftitem("rangedweapons:shell_grenadedrop", {
wield_scale = {x=2.5,y=1.5,z=3.0},
inventory_image = "rangedweapons_shelldrop_grenade.png",
})
minetest.register_craftitem("rangedweapons:shelldrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop.png",
})
minetest.register_craftitem("rangedweapons:plastic_sheet", {
description = "" ..core.colorize("#35cdff","Black plastic sheet\n")..core.colorize("#FFFFFF", "Used in guncraft"),
inventory_image = "rangedweapons_plastic_sheet.png",
})
minetest.register_craftitem("rangedweapons:gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","GunSteel ingot\n")..core.colorize("#FFFFFF", "A strong, but light alloy, used in guncraft"),
inventory_image = "rangedweapons_gunsteel_ingot.png",
})
minetest.register_craft({
output = "rangedweapons:gunsteel_ingot",
recipe = {
{"default:steel_ingot", "default:tin_ingot", "default:coal_lump"},
}
})
minetest.register_craftitem("rangedweapons:ultra_gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","Ultra-GunSteel ingot\n")..core.colorize("#FFFFFF", "A even stronger alloy, for even stronger guns."),
inventory_image = "rangedweapons_ultra_gunsteel_ingot.png",
})
minetest.register_craft({
output = "rangedweapons:ultra_gunsteel_ingot",
recipe = {
{"", "default:mese_crystal", ""},
{"default:gold_ingot", "rangedweapons:gunsteel_ingot", "default:gold_ingot"},
{"", "default:diamond", ""},
}
})
minetest.register_craft({
output = "rangedweapons:plastic_sheet",
recipe = {
{"default:tree", "default:coal_lump", "default:tree"},
{"default:coal_lump", "default:tree", "default:coal_lump"},
}
})
minetest.register_craftitem("rangedweapons:gun_power_core", {
description = "" ..core.colorize("#35cdff","Gun Power Core\n")..core.colorize("#FFFFFF", "A powerful core, for making the most powerful weapons"),
inventory_image = "rangedweapons_gun_power_core.png",
})
minetest.register_craft({
output = "rangedweapons:gun_power_core",
recipe = {
{"rangedweapons:gunsteel_ingot", "default:goldblock", "rangedweapons:gunsteel_ingot"},
{"default:diamondblock", "default:mese", "default:diamondblock"},
{"rangedweapons:gunsteel_ingot", "default:goldblock", "rangedweapons:gunsteel_ingot"},
}
})
minetest.register_craftitem("rangedweapons:power_particle", {
description = "Blaster Cartrage",
stack_max = 10000,
inventory_image = "blaster_cartrage.png",
})
local rangedweapons_smoke = {
physical = false,
timer = 0,
visual = "sprite",
visual_size = {x=0.5, y=0.5},
textures = {"tnt_smoke.png"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_smoke.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:getpos()
local node = minetest.get_node(pos)
if self.lastpos.x ~= nil then
if self.timer > 0.30 then
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:smoke", rangedweapons_smoke )

View File

@ -0,0 +1,20 @@
-- change "true" to "false" in order to disable a feature, or
-- "false" to "true" to enable it
explosives = true
javelins = true
shurikens = true
handguns = true
shotguns = true
rifles = true
magnums_and_revolvers = true
machine_pistols = true
sub_machineguns = true
assault_rifles = true
power_weapons = true
glass_breaking = true
door_breaking = true
heavy_machineguns = true
minigun_aswell = true