Imported from trollstream "ContentDB"
|
@ -0,0 +1,69 @@
|
|||
"Doorbell" created by "Miniontoby"
|
||||
|
||||
I have made a doorbell mod with a doorbell and a delete tool.
|
||||
|
||||
|
||||
Working:
|
||||
|
||||
When you push the doorbell there is coming a doorbell_sound only at the person who's hosting the server or only singleplayer.
|
||||
|
||||
|
||||
Recipe:
|
||||
|
||||
- = none,
|
||||
| = delete_tool,
|
||||
\ = doorbell,
|
||||
/ = wood,
|
||||
m_s = mesecons_button,
|
||||
w_b = black wool,
|
||||
w_w = white wool,
|
||||
m_m = mesecons,
|
||||
d_l = digiline,
|
||||
|
||||
Doorbell_locked {
|
||||
|
||||
\ | -
|
||||
|
||||
}
|
||||
|
||||
Doorbell {
|
||||
|
||||
w_b w_b w_b
|
||||
|
||||
w_b w_w w_b
|
||||
|
||||
w_b w_b w_b
|
||||
|
||||
}
|
||||
|
||||
Delete tool {
|
||||
|
||||
\
|
||||
|
||||
}
|
||||
|
||||
Doorbell 3D {
|
||||
|
||||
\ m_s -
|
||||
|
||||
}
|
||||
|
||||
Doorbell mesecons {
|
||||
|
||||
\ m_m -
|
||||
|
||||
}
|
||||
|
||||
Doorbell digilines{
|
||||
|
||||
\ d_l -
|
||||
|
||||
}
|
||||
|
||||
History:
|
||||
|
||||
I have made It when I was just 10 years old, but when I was 13 years old and I made the delete tool
|
||||
I made the delete tool because I couldn't delete the doorbell.
|
||||
|
||||
|
||||
You can use the delete tool for every node and it look like as the nodebreaker in the mod "Pipeworks".
|
|
@ -0,0 +1 @@
|
|||
Miniontoby
|
|
@ -0,0 +1,57 @@
|
|||
Version 1.1
|
||||
|
||||
I have made 2 more doorbells.
|
||||
|
||||
One looks as the mesecons button and the other one is the doorbell with right click.
|
||||
|
||||
The doorbell that already was there is now renamed to "doorbell_lock" because you can't delete them by hand (only by the delete tool) and that can you see as 'locked' and it has a lock drawing in the center.
|
||||
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Version 1.2
|
||||
|
||||
I have made a new doorbell.
|
||||
|
||||
The newest doorbell is named "doorbell_mesecons" and you need to have "mesecons". It does the doorbell sound when mesecons (that connected is) on is.
|
||||
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Version 1.3
|
||||
|
||||
I have made a change.
|
||||
|
||||
The mod is now looking of there is the mod "mesecons" and when that mod is on, it load the "doorbell_mesecons" and the "3D doorbell"
|
||||
|
||||
And the receipes are changed
|
||||
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Version 1.4
|
||||
|
||||
I have made a new Doorbell.
|
||||
|
||||
The newest doorbell is named "doorbell_digiline" and you need to have "digilines" for it. When you do make a lua controller with button you can do:
|
||||
"if pin.c == true then
|
||||
digiline_send("channel","doorbell")
|
||||
end"
|
||||
|
||||
You need for this code the button at port "c" and change the "channel" to the channel you have chosen (when you right click on the doorbell).
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Version 1.5
|
||||
|
||||
I have made a new Doorbell.
|
||||
|
||||
The newest doorbell is named "doorbell_marker" and when you right_click it the doorbell placer and you gets an waypoint of the position of the doorbell
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Version 1.6
|
||||
|
||||
I have changed the code so that the player who is near the doorbell can hear it and the doorbell_marker that the owner it also can hear.
|
||||
|
||||
===========================================================================================
|
|
@ -0,0 +1,21 @@
|
|||
--doorbell mod
|
||||
minetest.register_tool("doorbell:delete", {
|
||||
inventory_image = "kapot.png",
|
||||
description = "delete",
|
||||
on_use = function (itemstack, user, pointed_thing)
|
||||
local position = minetest.get_pointed_thing_position(pointed_thing)
|
||||
if pointed_thing.type == "node" then
|
||||
if position then
|
||||
minetest.dig_node(position)
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"doorbell:delete" 1',
|
||||
recipe = {
|
||||
{'doorbell:doorbell'},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,3 @@
|
|||
default
|
||||
mesecons?
|
||||
digilines?
|
|
@ -0,0 +1 @@
|
|||
A doorbell mod with a doorbell(inc. sound) and a delete tool. Made by "Miniontoby". More info check README.md
|
|
@ -0,0 +1,19 @@
|
|||
--doorbell mod
|
||||
minetest.register_node("doorbell:doorbell",{
|
||||
tiles = {"doorbell.png"},
|
||||
description = "doorbell",
|
||||
groups = {cracky=1},
|
||||
on_rightclick = function(pos)
|
||||
doorbell_play(pos, "deurbel1")
|
||||
minetest.set_node(pos, {name = "doorbell:doorbell"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"doorbell:doorbell" 1',
|
||||
recipe = {
|
||||
{'wool:black', 'wool:black', 'wool:black'},
|
||||
{'wool:black', 'wool:white', 'wool:black'},
|
||||
{'wool:black', 'wool:black', 'wool:black'},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,89 @@
|
|||
mesecon.button_turnoff = function (pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name ~= "doorbell:button_on" then -- has been dug
|
||||
return
|
||||
end
|
||||
minetest.swap_node(pos, {name = "doorbell:button_off", param2 = node.param2})
|
||||
end
|
||||
|
||||
minetest.register_node("doorbell:button_off", {
|
||||
drawtype = "nodebox",
|
||||
tiles = {
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_off.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
legacy_wallmounted = true,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 }
|
||||
},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, -- the thin plate behind the button
|
||||
{ -4/16, -2/16, 4/16, 4/16, 2/16, 6/16 } -- the button itself
|
||||
}
|
||||
},
|
||||
groups = {dig_immediate=2},
|
||||
description = "doorbell 3D",
|
||||
on_rightclick = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "doorbell:button_on", param2=node.param2})
|
||||
doorbell_play(pos, "deurbel1")
|
||||
minetest.get_node_timer(pos):start(1)
|
||||
end,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_node("doorbell:button_on", {
|
||||
drawtype = "nodebox",
|
||||
tiles = {
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_sides.png",
|
||||
"doorbell_button_on.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
legacy_wallmounted = true,
|
||||
walkable = false,
|
||||
on_rotate = false,
|
||||
light_source = minetest.LIGHT_MAX-7,
|
||||
sunlight_propagates = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 }
|
||||
},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 },
|
||||
{ -4/16, -2/16, 11/32, 4/16, 2/16, 6/16 }
|
||||
}
|
||||
},
|
||||
groups = {dig_immediate=2, not_in_creative_inventory=1},
|
||||
drop = 'doorbell:button_off',
|
||||
description = "doorbell 3D",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_timer = mesecon.button_turnoff,
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "doorbell:button_off 2",
|
||||
recipe = {
|
||||
{"doorbell:doorbell","mesecons_button:button_off"},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,37 @@
|
|||
--doorbell mod
|
||||
|
||||
minetest.register_node("doorbell:doorbell_digiline",{
|
||||
tiles = {"doorbell_digiline.png"},
|
||||
description = "doorbell_digiline",
|
||||
groups = {cracky=3},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec","field[channel;Channel;${channel}")
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
local name = sender:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
if fields.channel then meta:set_string("channel",fields.channel) end
|
||||
end,
|
||||
digiline =
|
||||
{
|
||||
receptor = {},
|
||||
effector = {
|
||||
action = function(pos,node,channel,msg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local setchan = meta:get_string("channel")
|
||||
if channel ~= setchan then return end
|
||||
if msg == "doorbell" then
|
||||
doorbell_play(pos, "deurbel1")
|
||||
end
|
||||
end
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"doorbell:doorbell_digiline" 1',
|
||||
recipe = {
|
||||
{'doorbell:doorbell', "digilines:wire_std_00000000"},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,16 @@
|
|||
--doorbell mod
|
||||
minetest.register_node("doorbell:doorbell_lock",{
|
||||
tiles = {"doorbell_locked.png"},
|
||||
description = "doorbell_locked",
|
||||
on_punch = function(pos)
|
||||
doorbell_play(pos, "deurbel1")
|
||||
minetest.set_node(pos, {name = "doorbell:doorbell_lock"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"doorbell:doorbell_lock" 1',
|
||||
recipe = {
|
||||
{'doorbell:doorbell', 'doorbell:delete'},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,68 @@
|
|||
--doorbell mod
|
||||
|
||||
local doorbell_way = {}
|
||||
minetest.register_node("doorbell:doorbell_marker", {
|
||||
tiles = {"doorbell_marker.png"},
|
||||
description = "doorbell marker",
|
||||
groups = {cracky = 1},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner", "")
|
||||
end,
|
||||
after_place_node = function(pos, placer)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name() or "")
|
||||
end,
|
||||
|
||||
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
||||
local player_name = player:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner_name = meta:get_string("owner")
|
||||
local owner_player = minetest.get_player_by_name(owner_name)
|
||||
|
||||
if not doorbell_way[player_name] then
|
||||
doorbell_way[player_name] = player:hud_add({
|
||||
hud_elem_type = "waypoint",
|
||||
world_pos = pos,
|
||||
name = "Doorbell",
|
||||
text = pos,
|
||||
number = 0xEDF010,
|
||||
})
|
||||
doorbell_play(player:get_pos(), "deurbel1")
|
||||
end
|
||||
if owner_player and owner_name ~= player_name and not doorbell_way[owner_name] then
|
||||
doorbell_way[owner_name] = owner_player:hud_add({
|
||||
hud_elem_type = "waypoint",
|
||||
world_pos = pos,
|
||||
name = "Doorbell",
|
||||
text = pos,
|
||||
number = 0xEDF010,
|
||||
})
|
||||
doorbell_play(owner_player:get_pos(), "deurbel1")
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local player_name = player:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner_name = meta:get_string("owner")
|
||||
local owner_player = minetest.get_player_by_name(owner_name)
|
||||
|
||||
if doorbell_way[player_name] then
|
||||
player:hud_remove(doorbell_way[player_name])
|
||||
doorbell_way[player_name] = nil
|
||||
end
|
||||
if owner_player and owner_name ~= player_name and doorbell_way[owner_name] then
|
||||
owner_player:hud_remove(doorbell_way[owner_name])
|
||||
doorbell_way[owner_name] = nil
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = '"doorbell:doorbell_marker" 1',
|
||||
recipe = {
|
||||
{'wool:black', 'wool:black', 'wool:black'},
|
||||
{'wool:black', 'wool:blue', 'wool:black'},
|
||||
{'wool:black', 'wool:black', 'wool:black'},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,53 @@
|
|||
local mesedoorbell_rules = {
|
||||
{x=0, y=0, z=-1},
|
||||
{x=1, y=0, z=0},
|
||||
{x=-1, y=0, z=0},
|
||||
{x=0, y=0, z=1},
|
||||
{x=1, y=1, z=0},
|
||||
{x=1, y=-1, z=0},
|
||||
{x=-1, y=1, z=0},
|
||||
{x=-1, y=-1, z=0},
|
||||
{x=0, y=1, z=1},
|
||||
{x=0, y=-1, z=1},
|
||||
{x=0, y=1, z=-1},
|
||||
{x=0, y=-1, z=-1},
|
||||
{x=0, y=-1, z=0},
|
||||
}
|
||||
|
||||
minetest.register_node("doorbell:doorbell_mesecon_off", {
|
||||
tiles = {"doorbell_off.png"},
|
||||
description = "doorbell Mesecons",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 2, mesecon_effector_off = 1, mesecon = 2},
|
||||
mesecons = {effector = {
|
||||
rules = mesedoorbell_rules,
|
||||
action_on = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "doorbell:doorbell_mesecon_on", param2 = node.param2})
|
||||
doorbell_play(pos, "deurbel1")
|
||||
end,
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_node("doorbell:doorbell_mesecon_on", {
|
||||
tiles = {"doorbell_on.png"},
|
||||
description = "doorbell Mesecons",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 2, not_in_creative_inventory = 1, mesecon = 2},
|
||||
drop = "doorbell:doorbell_mesecon_off",
|
||||
light_source = minetest.LIGHT_MAX - 2,
|
||||
mesecons = {effector = {
|
||||
rules = mesedoorbell_rules,
|
||||
action_off = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "doorbell:doorbell_mesecon_off", param2 = node.param2})
|
||||
end,
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "doorbell:doorbell_mesecon_off",
|
||||
recipe = {
|
||||
{"doorbell:doorbell", "group:mesecon_conductor_craftable"}
|
||||
}
|
||||
})
|
|
@ -0,0 +1,14 @@
|
|||
doorbell_play = function(pos, param2)
|
||||
pos.y = pos.y-1
|
||||
local nodeunder = minetest.get_node(pos).name
|
||||
local soundname = node_sounds[nodeunder]
|
||||
if not soundname then
|
||||
soundname = soundnames[param2]
|
||||
if not soundname then
|
||||
minetest.log("error", "[doorbell] No soundname found, test param2")
|
||||
return
|
||||
end
|
||||
end
|
||||
pos.y = pos.y+1
|
||||
minetest.sound_play(soundname, {pos = pos})
|
||||
end
|
|
@ -0,0 +1,51 @@
|
|||
--doorbell mod
|
||||
|
||||
print("Load 'Doorbell' mod [Doorbell]")
|
||||
print("")
|
||||
|
||||
dofile(minetest.get_modpath("doorbell").."/functions.lua")
|
||||
|
||||
print("Load doorbell [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell.lua")
|
||||
print("[OK] Loaded doorbell [Doorbell]")
|
||||
print("")
|
||||
print("Load Delete [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/delete.lua")
|
||||
print("[OK] Loaded Delete [Doorbell]")
|
||||
print("")
|
||||
|
||||
print("Load doorbell_lock [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell_lock.lua")
|
||||
print("[OK] Loaded doorbell_lock [Doorbell]")
|
||||
print("")
|
||||
|
||||
print("Check mesecons is on [Doorbell]")
|
||||
print("")
|
||||
if minetest.get_modpath('mesecons') then
|
||||
print("Load doorbell 3D [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell3d.lua")
|
||||
print("[OK] Loaded doorbell 3D [Doorbell]")
|
||||
print("")
|
||||
print("Load doorbell_mesecons [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell_mesecons.lua")
|
||||
print("[OK] Loaded doorbell_mesecons [Doorbell]")
|
||||
print("")
|
||||
end
|
||||
|
||||
print("Check digiline is on [Doorbell]")
|
||||
print("")
|
||||
if minetest.get_modpath('digilines') then
|
||||
print("Load doorbell_digiline [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell_digiline.lua")
|
||||
print("[OK] Loaded doorbell_digiline [Doorbell]")
|
||||
print("")
|
||||
end
|
||||
|
||||
|
||||
print("Load doorbell_marker [Doorbell]")
|
||||
dofile(minetest.get_modpath("doorbell").."/doorbell_marker.lua")
|
||||
print("[OK] Loaded doorbell_marker [Doorbell]")
|
||||
print("")
|
||||
|
||||
|
||||
print("[OK] Loaded 'Doorbell' mod [Doorbell]")
|
After Width: | Height: | Size: 559 KiB |
After Width: | Height: | Size: 410 KiB |
After Width: | Height: | Size: 863 B |
After Width: | Height: | Size: 510 B |
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 9.4 KiB |