mirror of
https://github.com/minetest/minetest_game.git
synced 2024-11-05 15:23:51 +01:00
Steel Trapdoor.
Adds a steel trapdoor. Textures were painted from scratch, and inspired by the current Steel Door. Ownership on the trapdoor works as expected, and so does the crafting recipe.
This commit is contained in:
parent
76471dd137
commit
e9a7782c88
@ -6,6 +6,7 @@ License of source code:
|
||||
-----------------------
|
||||
Copyright (C) 2012 PilzAdam
|
||||
modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor)
|
||||
Steel trapdoor added by sofar.
|
||||
|
||||
This program is free software. It comes without any warranty, to
|
||||
the extent permitted by applicable law. You can redistribute it
|
||||
@ -30,11 +31,15 @@ following textures created by celeron55 (CC BY-SA 3.0):
|
||||
door_trapdoor_side.png
|
||||
door_glass_a.png
|
||||
door_glass_b.png
|
||||
|
||||
|
||||
following Textures created by PenguinDad (CC BY-SA 4.0):
|
||||
door_glass.png
|
||||
door_obsidian_glass.png
|
||||
|
||||
Steel trapdoor textures by sofar (CC-BY-SA-3.0)
|
||||
doors_trapdoor_steel.png
|
||||
doors_trapdoor_steel_side.png
|
||||
|
||||
All other textures (created by PilzAdam): WTFPL
|
||||
|
||||
|
||||
|
@ -428,7 +428,19 @@ function doors.register_trapdoor(name, def)
|
||||
local name_closed = name
|
||||
local name_opened = name.."_open"
|
||||
|
||||
def.on_rightclick = function (pos, node)
|
||||
local function check_player_priv(pos, player)
|
||||
if not def.only_placer_can_open then
|
||||
return true
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local pn = player:get_player_name()
|
||||
return meta:get_string("doors_owner") == pn
|
||||
end
|
||||
|
||||
def.on_rightclick = function (pos, node, clicker, itemstack, pointed_thing)
|
||||
if not check_player_priv(pos, clicker) then
|
||||
return
|
||||
end
|
||||
local newname = node.name == name_closed and name_opened or name_closed
|
||||
local sound = false
|
||||
if node.name == name_closed then sound = def.sound_open end
|
||||
@ -436,7 +448,7 @@ function doors.register_trapdoor(name, def)
|
||||
if sound then
|
||||
minetest.sound_play(sound, {pos = pos, gain = 0.3, max_hear_distance = 10})
|
||||
end
|
||||
minetest.set_node(pos, {name = newname, param1 = node.param1, param2 = node.param2})
|
||||
minetest.swap_node(pos, {name = newname, param1 = node.param1, param2 = node.param2})
|
||||
end
|
||||
|
||||
def.on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple
|
||||
@ -446,6 +458,21 @@ function doors.register_trapdoor(name, def)
|
||||
def.paramtype = "light"
|
||||
def.paramtype2 = "facedir"
|
||||
def.is_ground_content = false
|
||||
def.can_dig = check_player_priv
|
||||
|
||||
if def.only_placer_can_open then
|
||||
def.after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
local pn = placer:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("doors_owner", pn)
|
||||
meta:set_string("infotext", "Owned by "..pn)
|
||||
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
local def_opened = table.copy(def)
|
||||
local def_closed = table.copy(def)
|
||||
@ -492,6 +519,19 @@ doors.register_trapdoor("doors:trapdoor", {
|
||||
sound_close = "doors_door_close"
|
||||
})
|
||||
|
||||
doors.register_trapdoor("doors:trapdoor_steel", {
|
||||
description = "Steel Trapdoor",
|
||||
inventory_image = "doors_trapdoor_steel.png",
|
||||
wield_image = "doors_trapdoor_steel.png",
|
||||
tile_front = "doors_trapdoor_steel.png",
|
||||
tile_side = "doors_trapdoor_steel_side.png",
|
||||
only_placer_can_open = true,
|
||||
groups = {snappy=1, bendy=2, cracky=1, melty=2, level=2, door=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "doors_door_open",
|
||||
sound_close = "doors_door_close"
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'doors:trapdoor 2',
|
||||
recipe = {
|
||||
@ -500,3 +540,13 @@ minetest.register_craft({
|
||||
{'', '', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'doors:trapdoor_steel 2',
|
||||
recipe = {
|
||||
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||
{'', '', ''},
|
||||
}
|
||||
})
|
||||
|
||||
|
BIN
mods/doors/textures/doors_trapdoor_steel.png
Normal file
BIN
mods/doors/textures/doors_trapdoor_steel.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 153 B |
BIN
mods/doors/textures/doors_trapdoor_steel_side.png
Normal file
BIN
mods/doors/textures/doors_trapdoor_steel_side.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 101 B |
Loading…
Reference in New Issue
Block a user