Finally make default doors work

master
Wuzzy 2016-12-28 18:40:52 +01:00
parent 9827030610
commit 3b5106a198
2 changed files with 59 additions and 13 deletions

View File

@ -230,10 +230,10 @@ local export_longdesc = {
["bucket:bucket_lava"] = S("A bucket can be used to collect and release liquids. This one is filled with hot lava, safely contained inside. Use with caution."),
["bones:bones"] = S("These are the remains of a deceased player. It may contain the player's former inventory which can be looted. Fresh bones are bones of a player who has deceased recently and can only be looted by the same player. Old bones can be looted by everyone. Once collected, bones can be placed like any other block."),
["doors:door_wood_a"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_glass_a"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_obsidian_glass_a"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_steel_a"] = S("Steel doors are owned by the player who placed them, only their owner can open, close or mine them. Steel doors are also immune to explosions."),
["doors:door_wood"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_glass"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_obsidian_glass"] = S("A door covers a vertical area of two blocks to block the way. It can be opened and closed by any player."),
["doors:door_steel"] = S("Steel doors are owned by the player who placed them, only their owner can open, close or mine them. Steel doors are also immune to explosions."),
["farming:straw"] = deconode,
["farming:bread"] = S("A nutritious food. Eat it to restore 5 hit points."),
["farming:seed_wheat"] = S("Grows into a wheat plant."),
@ -478,10 +478,10 @@ local export_usagehelp = {
["doors:trapdoor"] = S("Right-click the trapdoor to open or close it."),
["doors:trapdoor_steel"] = S("Point the steel trapdoor to see who owns it. Right-click it to open or close it (if you own it)."),
["doors:door_wood_a"] = S("Right-click the door to open or close it."),
["doors:door_steel_a"] = S("Point the door to see who owns it. Right-click the door to open or close it (if you own it)."),
["doors:door_glass_a"] = S("Right-click the door to open or close it."),
["doors:door_obsidian_glass_a"] = S("Right-click the door to open or close it."),
["doors:door_wood"] = S("Right-click the door to open or close it."),
["doors:door_steel"] = S("Point the door to see who owns it. Right-click the door to open or close it (if you own it)."),
["doors:door_glass"] = S("Right-click the door to open or close it."),
["doors:door_obsidian_glass"] = S("Right-click the door to open or close it."),
["screwdriver:screwdriver"] = S("Left-click on a block to rotate it around its current axis. Right-click on a block to rotate its axis. Note that not all blocks can be rotated."),

View File

@ -69,6 +69,14 @@ local suppressed_items = {
"doors:door_steel",
"doors:door_glass",
"doors:door_obsidian_glass",
"doors:door_wood_a",
"doors:door_steel_a",
"doors:door_glass_a",
"doors:door_obsidian_glass_a",
"doors:door_wood_b",
"doors:door_steel_b",
"doors:door_glass_b",
"doors:door_obsidian_glass_b",
"doors:gate_wood_open",
"doors:gate_junglewood_open",
"doors:gate_acacia_wood_open",
@ -275,10 +283,18 @@ doc.add_entry_alias("nodes", "default:river_water_source", "nodes", "default:riv
doc.add_entry_alias("nodes", "default:furnace", "nodes", "default:furnace_active")
doc.add_entry_alias("nodes", "default:torch", "nodes", "default:torch_wall")
doc.add_entry_alias("nodes", "default:torch", "nodes", "default:torch_ceiling")
doc.add_entry_alias("nodes", "doors:door_wood_a", "craftitems", "doors:door_wood")
doc.add_entry_alias("nodes", "doors:door_steel_a", "craftitems", "doors:door_steel")
doc.add_entry_alias("nodes", "doors:door_glass_a", "craftitems", "doors:door_glass")
doc.add_entry_alias("nodes", "doors:door_obsidian_glass_a", "craftitems", "doors:door_obsidian_glass")
doc.add_entry_alias("nodes", "doors:door_wood_fake", "craftitems", "doors:door_wood")
doc.add_entry_alias("nodes", "doors:door_steel_fake", "craftitems", "doors:door_steel")
doc.add_entry_alias("nodes", "doors:door_glass_fake", "craftitems", "doors:door_glass")
doc.add_entry_alias("nodes", "doors:door_obsidian_glass_fake", "craftitems", "doors:door_obsidian_glass")
doc.add_entry_alias("nodes", "doors:door_wood_fake", "nodes", "doors:door_wood_a")
doc.add_entry_alias("nodes", "doors:door_steel_fake", "nodes", "doors:door_steel_a")
doc.add_entry_alias("nodes", "doors:door_glass_fake", "nodes", "doors:door_glass_a")
doc.add_entry_alias("nodes", "doors:door_obsidian_glass_fake", "nodes", "doors:door_obsidian_glass_a")
doc.add_entry_alias("nodes", "doors:door_wood_fake", "nodes", "doors:door_wood_b")
doc.add_entry_alias("nodes", "doors:door_steel_fake", "nodes", "doors:door_steel_b")
doc.add_entry_alias("nodes", "doors:door_glass_fake", "nodes", "doors:door_glass_b")
doc.add_entry_alias("nodes", "doors:door_obsidian_glass_fake", "nodes", "doors:door_obsidian_glass_b")
doc.add_entry_alias("nodes", "doors:gate_wood_closed", "nodes", "doors:gate_wood_open")
doc.add_entry_alias("nodes", "doors:gate_junglewood_closed", "nodes", "doors:gate_junglewood_open")
doc.add_entry_alias("nodes", "doors:gate_acacia_wood_closed", "nodes", "doors:gate_acacia_wood_open")
@ -290,7 +306,6 @@ doc.add_entry_alias("nodes", "tnt:tnt", "nodes", "tnt:tnt_burning")
doc.add_entry_alias("nodes", "tnt:gunpowder", "nodes", "tnt:gunpowder_burning")
doc.add_entry_alias("nodes", "xpanes:pane_flat", "nodes", "xpanes:pane")
doc.add_entry_alias("nodes", "xpanes:bar_flat", "nodes", "xpanes:bar")
-- FIXME: Remove duplicate door node entries
-- Gather help texts
dofile(minetest.get_modpath("doc_minetest_game") .. "/helptexts.lua")
@ -302,6 +317,37 @@ if minetest.get_modpath("doc_identifier") ~= nil then
end
--[[ Completely create door entries from scratch. We suppressed all normal door entries
before. This is quite a hack, but required because of the weird way how door items are
implemented in Minetest Game.
CHECKME: As doors are sensitive, check this entire section after each Minetest Game release.
]]
local doors = { "doors:door_wood", "doors:door_steel", "doors:door_glass", "doors:door_obsidian_glass" }
for d=1, #doors do
local door = doors[d]
local def1 = table.copy(minetest.registered_items[door])
local def2 = table.copy(minetest.registered_items[door.."_a"])
def2._doc_items_image = def1.inventory_image
def2.drop = nil
def2.stack_max = def1.stack_max or minetest.nodedef_default.stack_max
def2.liquidtype = "none"
def2._doc_items_longdesc = def1._doc_items_longdesc
def2._doc_items_usagehelp = def1._doc_items_usagehelp
doc.add_entry("nodes", door.."_fake", {
name = def2.description,
hidden = def2._doc_items_hidden == true,
data = {
itemstring = door,
longdesc = def2._doc_items_longdesc,
usagehelp = def2._doc_items_usagehelp,
def = def2
}
})
end
-- Remove the superficial “help” comment from screwdriver and cart description as redundant
minetest.override_item("screwdriver:screwdriver", {description = item_name_overrides["screwdriver:screwdriver"]})