star_wars/mods/starsnodes/lightsword.lua

188 lines
6.3 KiB
Lua

cores={"green","blue","red","yellow","purple"}
function on_off(cor)
for _,player in ipairs(minetest.get_connected_players()) do
if player:get_player_control().RMB == true then
if player:get_wielded_item():get_name() == "starsnodes:lightsaberon"..cor then
player:set_wielded_item("starsnodes:lightsaberoff"..cor)
minetest.sound_play("starsnodes_lightsaberoff", {object = minetest.get_player_by_name(player:get_player_name()), gain = 1.0, max_hear_distance = 32, loop = false })
elseif player:get_wielded_item():get_name() == "starsnodes:lightsaberoff"..cor then
player:set_wielded_item("starsnodes:lightsaberon"..cor)
minetest.sound_play("starsnodes_lightsaberon", {object = minetest.get_player_by_name(player:get_player_name()), gain = 1.0, max_hear_distance = 32, loop = false })
end
end
end
end
function atk(cor)
for _,player in ipairs(minetest.get_connected_players()) do
if player:get_player_control().LMB == true and player:get_wielded_item():get_name() == "starsnodes:lightsaberon"..cor then
minetest.sound_play("starsnodes_lightsaberatk", {object = minetest.get_player_by_name(player:get_player_name()), gain = 1.0, max_hear_distance = 32, loop = false })
end
end
end
for n,cor in ipairs(cores) do
minetest.register_tool("starsnodes:lightsaberoffgreen", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberongreen.png",
wield_image = "starsnodes_lightsaberoff.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
},
})
minetest.register_tool("starsnodes:lightsaberoffblue", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonblue.png",
wield_image = "starsnodes_lightsaberoff.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
},
})
minetest.register_tool("starsnodes:lightsaberoffyellow", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonyellow.png",
wield_image = "starsnodes_lightsaberoff.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
},
})
minetest.register_tool("starsnodes:lightsaberoffpurple", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonpurple.png",
wield_image = "starsnodes_lightsaberoff.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
},
})
minetest.register_tool("starsnodes:lightsaberoffred", {
description = "Sith Lightsaber",
inventory_image = "starsnodes_lightsaberonred.png",
wield_image = "starsnodes_lightsaberoff.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
},
})
minetest.register_tool("starsnodes:lightsaberongreen", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberongreen.png",
wield_image = "starsnodes_lightsaberongreen.png",
groups = {
lightsaber= 3,
not_in_creative_inventory=1,
},
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=10,
groupcaps={
cracky={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
crumbly={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
snappy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
choppy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
},
damage_groups = {fleshy=8}
},
})
minetest.register_tool("starsnodes:lightsaberonblue", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonblue.png",
wield_image = "starsnodes_lightsaberonblue.png",
groups = {
lightsaber= 3,
not_in_creative_inventory=1,
},
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=10,
groupcaps={
cracky={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
crumbly={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
snappy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
choppy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
},
damage_groups = {fleshy=15}
},
})
minetest.register_tool("starsnodes:lightsaberonyellow", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonyellow.png",
wield_image = "starsnodes_lightsaberonyellow.png",
groups = {
lightsaber= 3,
not_in_creative_inventory=1,
},
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=10,
groupcaps={
cracky={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
crumbly={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
snappy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
choppy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
},
damage_groups = {fleshy=8}
},
})
minetest.register_tool("starsnodes:lightsaberonpurple", {
description = "Lightsaber",
inventory_image = "starsnodes_lightsaberonpurple.png",
wield_image = "starsnodes_lightsaberonpurple.png",
groups = {
lightsaber= 3,
not_in_creative_inventory=1,
},
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=10,
groupcaps={
cracky={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
crumbly={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
snappy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
choppy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
},
damage_groups = {fleshy=8}
},
})
minetest.register_tool("starsnodes:lightsaberonred", {
description = "Sith Lightsaber",
inventory_image = "starsnodes_lightsaberonred.png",
wield_image = "starsnodes_lightsaberonred.png",
groups = {
lightsaber= 3,
not_in_creative_inventory=1,
},
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=10,
groupcaps={
cracky={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
crumbly={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
snappy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
choppy={times={[1]=1.0, [2]=0.5, [3]=0.5}, uses=30, maxlevel=10},
},
damage_groups = {fleshy=8}
},
})
minetest.register_craft({
output = "starsnodes:lightsaberoff"..cor,
recipe = {
{"default:durasteel_ingot"},
{"starsnodes:kyber"..cor},
{"default:durasteel_ingot"},
}
})
end
local t=0
for n,cor in ipairs(cores) do
minetest.register_globalstep(function(dtime)
t=t+dtime
if t>0.3 then
on_off(cor)
atk(cor)
t=0
end
end)
end