vexcazer/vexcazer/stuff.lua

232 lines
6.3 KiB
Lua

minetest.register_privilege("vexcazer", {
description = "Can use moderator vexcazer",
give_to_singleplayer= false,
})
minetest.register_privilege("vexcazer_ad", {
description = "Can use admin vexcazer",
give_to_singleplayer= false,
})
minetest.register_privilege("vexcazer_wo", {
description = "Can use world vexcazer",
give_to_singleplayer= false,
})
local colors={"FFFFFFFA","FF0000FA","ff009cFA","ff7700FA"}
local colora={{255,255,255} ,{255,0,0} ,{255,0,170},{255,119,0}}
for i=1,4,1 do
minetest.register_node("vexcazer:lazer" ..i, {
description = "Lazer",
drawtype="glasslike",
alpha=50,
tiles = {"vexcazer_background.png^[colorize:#" .. colors[i]},
drop="",
light_source = 14,
paramtype = "light",
walkable=false,
sunlight_propagates = true,
liquid_viscosity = 1,
--pointable=false,
buildable_to = true,
groups = {not_in_creative_inventory=1,vex_lazer=1},
post_effect_color = {a = 255, r=colora[i][1], g=colora[i][2], b=colora[i][3]},
on_punch = function(pos, node, player, pointed_thing)
minetest.get_node_timer(pos):start(1)
end,
on_timer=function(pos, elapsed)
minetest.remove_node(pos)
end,
on_construct = function(pos)
minetest.get_node_timer(pos):start(1)
end,
})
end
minetest.register_tool("vexcazer:default", {
description = "Vexcazer",
range = vexcazer.range.default,
inventory_image = "vexcazer_rifle_default.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
if not vexcazer.enable_default then
itemstack:replace(nil)
minetest.chat_send_player(user:get_player_name(),"<vexcazer> The tool is disabled")
minetest.sound_play("vexcazer_error", {pos = user:get_pos(), gain = 1.0, max_hear_distance = 15})
return itemstack
end
vexcazer.use(itemstack, user, pointed_thing,{
default=true,
mod=false,
admin=false,
max_amount=vexcazer.max_amount.default,
on_use=true,
on_place=false,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer1"
})
return itemstack
end,
on_place=function(itemstack, user, pointed_thing)
if not vexcazer.enable_default then
itemstack:replace(nil)
minetest.chat_send_player(user:get_player_name(),"<vexcazer> The tool is disabled")
minetest.sound_play("vexcazer_error", {pos = user:get_pos(), gain = 1.0, max_hear_distance = 15})
return itemstack
end
vexcazer.use(itemstack, user, pointed_thing,{
default=true,
mod=false,
admin=false,
max_amount=vexcazer.max_amount.default,
on_use=false,
on_place=true,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer1"
})
return itemstack
end,
})
minetest.register_tool("vexcazer:mod", {
description = "Vexcazer mod",
range = vexcazer.range.mod,
inventory_image = "vexcazer_rifle_mod.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=true,
admin=false,
max_amount=vexcazer.max_amount.mod,
on_use=true,
on_place=false,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer2"
})
return itemstack
end,
on_place=function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=true,
admin=false,
max_amount=vexcazer.max_amount.mod,
on_use=false,
on_place=true,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer2"
})
return itemstack
end,
})
minetest.register_tool("vexcazer:admin", {
description = "Vexcazer admin",
range = vexcazer.range.admin,
inventory_image = "vexcazer_rifle_admin.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=false,
admin=true,
max_amount=vexcazer.max_amount.admin,
on_use=true,
on_place=false,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer3"
})
return itemstack
end,
on_place=function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=false,
admin=true,
max_amount=vexcazer.max_amount.admin,
on_use=false,
on_place=true,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer3"
})
return itemstack
end,
})
minetest.register_tool("vexcazer:world", {
description = "Vexcazer world",
range = vexcazer.range.admin,
inventory_image = "vexcazer_rifle_world.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=false,
admin=true,
world=true,
max_amount=vexcazer.max_amount.world,
on_use=true,
on_place=false,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer4"
})
return itemstack
end,
on_place=function(itemstack, user, pointed_thing)
vexcazer.use(itemstack, user, pointed_thing,{
default=false,
mod=false,
admin=true,
world=true,
max_amount=vexcazer.max_amount.world,
on_use=false,
on_place=true,
user=user,
user_name=user:get_player_name(),
index=user:get_wield_index(),
lazer="vexcazer:lazer4"
})
return itemstack
end,
})
minetest.register_tool("vexcazer:controler", {
description = "Vexcazer controler",
range = 10,
inventory_image = "vexcazer_controler.png",
on_use = function(itemstack, user, pointed_thing)
for i=1,8,1 do
local stack=user:get_inventory():get_stack("main", i):get_name()
if string.find(stack,"r:default",7) or string.find(stack,"r:mod",7) or string.find(stack,"r:admin",8) then
vexcazer.form_update(user,i)
return itemstack
end
end
return itemstack
end,
on_place=function(itemstack, user, pointed_thing)
for i=1,8,1 do
local stack=user:get_inventory():get_stack("main", i):get_name()
if string.find(stack,"r:default",7) or string.find(stack,"r:mod",7) or string.find(stack,"r:admin",8) then
vexcazer.set_mode({user=user,add=1,index=i})
return itemstack
end
end
return itemstack
end,
})