188 lines
6.3 KiB
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
|