Initial upload

This commit is contained in:
TenPlus1 2016-06-07 16:38:50 +01:00
commit cb63ef3a8a
8 changed files with 160 additions and 0 deletions

13
README.md Normal file
View File

@ -0,0 +1,13 @@
Invisibility Potion by TenPlus1
This mod lets you craft an invisibility potion using 1x Nyan Cat and 1x Glass Bottle.
Use potion to hide yourself AND nametag (0.4.14 dev only) for 5 minutes.
Server admin can use the '/vanish <name>' command to hide/unhide players or themselves by leaving it blank.
Changelog:
- 0.1 - Initial Upload

2
depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
vessels

129
init.lua Normal file
View File

@ -0,0 +1,129 @@
invisibility = {}
-- invisibility potion
minetest.register_node("invisibility:potion", {
description = "Invisibility Potion",
drawtype = "plantlike",
tiles = {"invisibility_potion.png"},
inventory_image = "invisibility_potion.png",
wield_image = "invisibility_potion.png",
paramtype = "light",
stack_max = 1,
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
on_use = function(itemstack, user)
local pos = user:getpos()
-- hide player
invisible(user)
minetest.sound_play("pop", {
pos = pos,
gain = 1.0,
max_hear_distance = 5
})
-- show again 5 minutes later
minetest.after(300, function()
invisible(user)
minetest.sound_play("pop", {
pps = pos,
gain = 1.0,
max_hear_distance = 5
})
end)
-- take item
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
return {name="vessels:glass_bottle"} -- itemstack
end
end,
})
minetest.register_craft( {
output = "invisibility:potion",
type = "shapeless",
recipe = {"default:nyancat", "vessels:glass_bottle"},
})
-- invisibility function
invisible = function(player)
if not player then return false end
local name = player:get_player_name()
invisibility[name] = not invisibility[name]
local prop
if invisibility[name] then
-- hide player and name tag
prop = {
visual_size = {x = 0, y = 0},
collisionbox = {0, 0, 0, 0, 0, 0}
}
player:set_nametag_attributes({
color = {a = 0, r = 255, g = 255, b = 255}
})
else
-- show player and tag
prop = {
visual_size = {x = 1, y = 1},
collisionbox = {-0.35, -1, -0.35, 0.35, 1, 0.35}
}
player:set_nametag_attributes({
color = {a = 255, r = 255, g = 255, b = 255}
})
end
player:set_properties(prop)
end
-- vanish command (admin only)
minetest.register_chatcommand("vanish", {
params = "<name>",
description = "Make player invisible",
privs = {server = true},
func = function(name, param)
-- player online
if param ~= ""
and minetest.get_player_by_name(param) then
name = param
-- player not online
elseif param ~= "" then
return false, "Player " .. param .. " is not online!"
end
-- hide player entered (default to player using command if blank)
invisible( minetest.get_player_by_name(name) )
end
})

14
license.txt Normal file
View File

@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

2
sounds/license.txt Normal file
View File

@ -0,0 +1,2 @@
Pop sound from www.freesfx.co.uk

BIN
sounds/pop.ogg Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B