mirror of
https://github.com/luanti-org/minetest_game.git
synced 2025-05-21 06:43:17 -04:00
Merge branch 'master' into patch-1
This commit is contained in:
commit
38524378b1
13 changed files with 120 additions and 141 deletions
|
@ -103,6 +103,13 @@ The contents of `creative.formspec_add` is appended to every creative inventory
|
|||
page. Mods can use it to add additional formspec elements onto the default
|
||||
creative inventory formspec to be drawn after each update.
|
||||
|
||||
Group overrides can be used for any registered item, node or tool. Use one of
|
||||
the groups stated below to pick which category it will appear in.
|
||||
|
||||
node = 1 -- Appears in the Nodes category
|
||||
tool = 1 -- Appears in the Tools category
|
||||
craftitem = 1 -- Appears in the Items category
|
||||
|
||||
|
||||
Chests API
|
||||
----------
|
||||
|
|
|
@ -199,10 +199,29 @@ function creative.register_tab(name, title, items)
|
|||
})
|
||||
end
|
||||
|
||||
-- Sort registered items
|
||||
local registered_nodes = {}
|
||||
local registered_tools = {}
|
||||
local registered_craftitems = {}
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
for name, def in pairs(minetest.registered_items) do
|
||||
local group = def.groups or {}
|
||||
|
||||
if group.node or minetest.registered_nodes[name] then
|
||||
registered_nodes[name] = def
|
||||
elseif group.tool or minetest.registered_tools[name] then
|
||||
registered_tools[name] = def
|
||||
elseif group.craftitem or minetest.registered_craftitems[name] then
|
||||
registered_craftitems[name] = def
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
creative.register_tab("all", S("All"), minetest.registered_items)
|
||||
creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes)
|
||||
creative.register_tab("tools", S("Tools"), minetest.registered_tools)
|
||||
creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems)
|
||||
creative.register_tab("nodes", S("Nodes"), registered_nodes)
|
||||
creative.register_tab("tools", S("Tools"), registered_tools)
|
||||
creative.register_tab("craftitems", S("Items"), registered_craftitems)
|
||||
|
||||
local old_homepage_name = sfinv.get_homepage_name
|
||||
function sfinv.get_homepage_name(player)
|
||||
|
|
|
@ -458,7 +458,7 @@ minetest.register_node("default:dirt_with_grass_footsteps", {
|
|||
})
|
||||
|
||||
minetest.register_node("default:dirt_with_dry_grass", {
|
||||
description = S("Dirt with Dry Grass"),
|
||||
description = S("Dirt with Savanna Grass"),
|
||||
tiles = {"default_dry_grass.png",
|
||||
"default_dirt.png",
|
||||
{name = "default_dirt.png^default_dry_grass_side.png",
|
||||
|
@ -513,14 +513,14 @@ minetest.register_node("default:dirt_with_coniferous_litter", {
|
|||
})
|
||||
|
||||
minetest.register_node("default:dry_dirt", {
|
||||
description = S("Dry Dirt"),
|
||||
description = S("Savanna Dirt"),
|
||||
tiles = {"default_dry_dirt.png"},
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:dry_dirt_with_dry_grass", {
|
||||
description = S("Dry Dirt with Dry Grass"),
|
||||
description = S("Savanna Dirt with Savanna Grass"),
|
||||
tiles = {"default_dry_grass.png", "default_dry_dirt.png",
|
||||
{name = "default_dry_dirt.png^default_dry_grass_side.png",
|
||||
tileable_vertical = false}},
|
||||
|
@ -1497,7 +1497,7 @@ end
|
|||
|
||||
|
||||
minetest.register_node("default:dry_grass_1", {
|
||||
description = S("Dry Grass"),
|
||||
description = S("Savanna Grass"),
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
tiles = {"default_dry_grass_1.png"},
|
||||
|
@ -1526,7 +1526,7 @@ minetest.register_node("default:dry_grass_1", {
|
|||
|
||||
for i = 2, 5 do
|
||||
minetest.register_node("default:dry_grass_" .. i, {
|
||||
description = S("Dry Grass"),
|
||||
description = S("Savanna Grass"),
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
tiles = {"default_dry_grass_" .. i .. ".png"},
|
||||
|
@ -2816,7 +2816,10 @@ minetest.register_node("default:brick", {
|
|||
description = S("Brick Block"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
tiles = {"default_brick.png"},
|
||||
tiles = {
|
||||
"default_brick.png^[transformFX",
|
||||
"default_brick.png",
|
||||
},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
|
|
@ -457,7 +457,7 @@ doors.register("door_wood", {
|
|||
tiles = {{ name = "doors_door_wood.png", backface_culling = true }},
|
||||
description = S("Wooden Door"),
|
||||
inventory_image = "doors_item_wood.png",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
recipe = {
|
||||
{"group:wood", "group:wood"},
|
||||
{"group:wood", "group:wood"},
|
||||
|
@ -470,7 +470,7 @@ doors.register("door_steel", {
|
|||
description = S("Steel Door"),
|
||||
inventory_image = "doors_item_steel.png",
|
||||
protected = true,
|
||||
groups = {cracky = 1, level = 2},
|
||||
groups = {node = 1, cracky = 1, level = 2},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
sound_open = "doors_steel_door_open",
|
||||
sound_close = "doors_steel_door_close",
|
||||
|
@ -485,7 +485,7 @@ doors.register("door_glass", {
|
|||
tiles = {"doors_door_glass.png"},
|
||||
description = S("Glass Door"),
|
||||
inventory_image = "doors_item_glass.png",
|
||||
groups = {cracky=3, oddly_breakable_by_hand=3},
|
||||
groups = {node = 1, cracky=3, oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sound_open = "doors_glass_door_open",
|
||||
sound_close = "doors_glass_door_close",
|
||||
|
@ -500,7 +500,7 @@ doors.register("door_obsidian_glass", {
|
|||
tiles = {"doors_door_obsidian_glass.png"},
|
||||
description = S("Obsidian Glass Door"),
|
||||
inventory_image = "doors_item_obsidian_glass.png",
|
||||
groups = {cracky=3},
|
||||
groups = {node = 1, cracky=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
sound_open = "doors_glass_door_open",
|
||||
sound_close = "doors_glass_door_close",
|
||||
|
|
|
@ -86,7 +86,7 @@ minetest.register_node("farming:soil_wet", {
|
|||
})
|
||||
|
||||
minetest.register_node("farming:dry_soil", {
|
||||
description = S("Dry Soil"),
|
||||
description = S("Savanna Soil"),
|
||||
tiles = {"default_dry_dirt.png^farming_soil.png", "default_dry_dirt.png"},
|
||||
drop = "default:dry_dirt",
|
||||
groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1},
|
||||
|
@ -99,7 +99,7 @@ minetest.register_node("farming:dry_soil", {
|
|||
})
|
||||
|
||||
minetest.register_node("farming:dry_soil_wet", {
|
||||
description = S("Wet Dry Soil"),
|
||||
description = S("Wet Savanna Soil"),
|
||||
tiles = {"default_dry_dirt.png^farming_soil_wet.png", "default_dry_dirt.png^farming_soil_wet_side.png"},
|
||||
drop = "default:dry_dirt",
|
||||
groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1},
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
-- fire/init.lua
|
||||
|
||||
-- Global namespace for functions
|
||||
|
||||
fire = {}
|
||||
|
||||
-- Load support for MT game translation.
|
||||
local S = minetest.get_translator("fire")
|
||||
|
||||
|
||||
-- 'Enable fire' setting
|
||||
|
||||
local fire_enabled = minetest.settings:get_bool("enable_fire")
|
||||
if fire_enabled == nil then
|
||||
-- enable_fire setting not specified, check for disable_fire
|
||||
|
@ -27,12 +24,9 @@ end
|
|||
--
|
||||
|
||||
-- Flood flame function
|
||||
|
||||
local function flood_flame(pos, oldnode, newnode)
|
||||
local function flood_flame(pos, _, newnode)
|
||||
-- Play flame extinguish sound if liquid is not an 'igniter'
|
||||
local nodedef = minetest.registered_items[newnode.name]
|
||||
if not (nodedef and nodedef.groups and
|
||||
nodedef.groups.igniter and nodedef.groups.igniter > 0) then
|
||||
if minetest.get_item_group(newnode.name, "igniter") == 0 then
|
||||
minetest.sound_play("fire_extinguish_flame",
|
||||
{pos = pos, max_hear_distance = 16, gain = 0.15}, true)
|
||||
end
|
||||
|
@ -42,19 +36,16 @@ end
|
|||
|
||||
-- Flame nodes
|
||||
|
||||
minetest.register_node("fire:basic_flame", {
|
||||
description = S("Fire"),
|
||||
local fire_node = {
|
||||
drawtype = "firelike",
|
||||
tiles = {
|
||||
{
|
||||
name = "fire_basic_flame_animated.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1
|
||||
},
|
||||
},
|
||||
tiles = {{
|
||||
name = "fire_basic_flame_animated.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1
|
||||
}}
|
||||
},
|
||||
inventory_image = "fire_basic_flame.png",
|
||||
paramtype = "light",
|
||||
|
@ -64,61 +55,35 @@ minetest.register_node("fire:basic_flame", {
|
|||
sunlight_propagates = true,
|
||||
floodable = true,
|
||||
damage_per_second = 4,
|
||||
groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
groups = {igniter = 2, dig_immediate = 3, fire = 1},
|
||||
drop = "",
|
||||
on_flood = flood_flame
|
||||
}
|
||||
|
||||
on_timer = function(pos)
|
||||
local f = minetest.find_node_near(pos, 1, {"group:flammable"})
|
||||
if not fire_enabled or not f then
|
||||
minetest.remove_node(pos)
|
||||
return
|
||||
end
|
||||
-- Restart timer
|
||||
return true
|
||||
end,
|
||||
-- Basic flame node
|
||||
local flame_fire_node = table.copy(fire_node)
|
||||
flame_fire_node.groups.not_in_creative_inventory = 1
|
||||
flame_fire_node.on_timer = function(pos)
|
||||
if not minetest.find_node_near(pos, 1, {"group:flammable"}) then
|
||||
minetest.remove_node(pos)
|
||||
return
|
||||
end
|
||||
-- Restart timer
|
||||
return true
|
||||
end
|
||||
flame_fire_node.on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(30, 60))
|
||||
end
|
||||
|
||||
on_construct = function(pos)
|
||||
if not fire_enabled then
|
||||
minetest.remove_node(pos)
|
||||
else
|
||||
minetest.get_node_timer(pos):start(math.random(30, 60))
|
||||
end
|
||||
end,
|
||||
minetest.register_node("fire:basic_flame", flame_fire_node)
|
||||
|
||||
on_flood = flood_flame,
|
||||
})
|
||||
-- Permanent flame node
|
||||
local permanent_fire_node = table.copy(fire_node)
|
||||
permanent_fire_node.description = S("Permanent Flame")
|
||||
|
||||
minetest.register_node("fire:permanent_flame", {
|
||||
description = S("Permanent Flame"),
|
||||
drawtype = "firelike",
|
||||
tiles = {
|
||||
{
|
||||
name = "fire_basic_flame_animated.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1
|
||||
},
|
||||
},
|
||||
},
|
||||
inventory_image = "fire_basic_flame.png",
|
||||
paramtype = "light",
|
||||
light_source = 13,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
sunlight_propagates = true,
|
||||
floodable = true,
|
||||
damage_per_second = 4,
|
||||
groups = {igniter = 2, dig_immediate = 3},
|
||||
drop = "",
|
||||
|
||||
on_flood = flood_flame,
|
||||
})
|
||||
|
||||
|
||||
-- Flint and steel
|
||||
minetest.register_node("fire:permanent_flame", permanent_fire_node)
|
||||
|
||||
-- Flint and Steel
|
||||
minetest.register_tool("fire:flint_and_steel", {
|
||||
description = S("Flint and Steel"),
|
||||
inventory_image = "fire_flint_steel.png",
|
||||
|
@ -126,11 +91,8 @@ minetest.register_tool("fire:flint_and_steel", {
|
|||
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local sound_pos = pointed_thing.above or user:get_pos()
|
||||
minetest.sound_play(
|
||||
"fire_flint_and_steel",
|
||||
{pos = sound_pos, gain = 0.5, max_hear_distance = 8},
|
||||
true
|
||||
)
|
||||
minetest.sound_play("fire_flint_and_steel",
|
||||
{pos = sound_pos, gain = 0.5, max_hear_distance = 8}, true)
|
||||
local player_name = user:get_player_name()
|
||||
if pointed_thing.type == "node" then
|
||||
local node_under = minetest.get_node(pointed_thing.under).name
|
||||
|
@ -154,10 +116,11 @@ minetest.register_tool("fire:flint_and_steel", {
|
|||
-- Wear tool
|
||||
local wdef = itemstack:get_definition()
|
||||
itemstack:add_wear(1000)
|
||||
|
||||
-- Tool break sound
|
||||
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
|
||||
minetest.sound_play(wdef.sound.breaks, {pos = sound_pos,
|
||||
gain = 0.5}, true)
|
||||
minetest.sound_play(wdef.sound.breaks,
|
||||
{pos = sound_pos, gain = 0.5}, true)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
@ -171,23 +134,21 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
|
||||
-- Override coalblock to enable permanent flame above
|
||||
-- Coalblock is non-flammable to avoid unwanted basic_flame nodes
|
||||
|
||||
minetest.override_item("default:coalblock", {
|
||||
after_destruct = function(pos, oldnode)
|
||||
after_destruct = function(pos)
|
||||
pos.y = pos.y + 1
|
||||
if minetest.get_node(pos).name == "fire:permanent_flame" then
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end,
|
||||
on_ignite = function(pos, igniter)
|
||||
on_ignite = function(pos)
|
||||
local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if minetest.get_node(flame_pos).name == "air" then
|
||||
minetest.set_node(flame_pos, {name = "fire:permanent_flame"})
|
||||
end
|
||||
end,
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
|
@ -195,24 +156,18 @@ minetest.override_item("default:coalblock", {
|
|||
-- Sound
|
||||
--
|
||||
|
||||
local flame_sound = minetest.settings:get_bool("flame_sound")
|
||||
if flame_sound == nil then
|
||||
-- Enable if no setting present
|
||||
flame_sound = true
|
||||
end
|
||||
-- Enable if no setting present
|
||||
local flame_sound = minetest.settings:get_bool("flame_sound", true)
|
||||
|
||||
if flame_sound then
|
||||
|
||||
local handles = {}
|
||||
local timer = 0
|
||||
|
||||
-- Parameters
|
||||
|
||||
local radius = 8 -- Flame node search radius around player
|
||||
local cycle = 3 -- Cycle time for sound updates
|
||||
|
||||
-- Update sound for player
|
||||
|
||||
function fire.update_player_sound(player)
|
||||
local player_name = player:get_player_name()
|
||||
-- Search for flame nodes in radius around player
|
||||
|
@ -264,16 +219,13 @@ if flame_sound then
|
|||
fposmid = vector.divide(vector.add(fposmin, fposmax), 2)
|
||||
end
|
||||
-- Play sound
|
||||
local handle = minetest.sound_play(
|
||||
"fire_fire",
|
||||
{
|
||||
pos = fposmid,
|
||||
to_player = player_name,
|
||||
gain = math.min(0.06 * (1 + flames * 0.125), 0.18),
|
||||
max_hear_distance = 32,
|
||||
loop = true, -- In case of lag
|
||||
}
|
||||
)
|
||||
local handle = minetest.sound_play("fire_fire", {
|
||||
pos = fposmid,
|
||||
to_player = player_name,
|
||||
gain = math.min(0.06 * (1 + flames * 0.125), 0.18),
|
||||
max_hear_distance = 32,
|
||||
loop = true -- In case of lag
|
||||
})
|
||||
-- Store sound handle for this player
|
||||
if handle then
|
||||
handles[player_name] = handle
|
||||
|
@ -282,7 +234,6 @@ if flame_sound then
|
|||
end
|
||||
|
||||
-- Cycle for updating players sounds
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime
|
||||
if timer < cycle then
|
||||
|
@ -297,7 +248,6 @@ if flame_sound then
|
|||
end)
|
||||
|
||||
-- Stop sound and clear handle on player leave
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local player_name = player:get_player_name()
|
||||
if handles[player_name] then
|
||||
|
@ -309,19 +259,14 @@ end
|
|||
|
||||
|
||||
-- Deprecated function kept temporarily to avoid crashes if mod fire nodes call it
|
||||
|
||||
function fire.update_sounds_around(pos)
|
||||
end
|
||||
|
||||
function fire.update_sounds_around() end
|
||||
|
||||
--
|
||||
-- ABMs
|
||||
--
|
||||
|
||||
if fire_enabled then
|
||||
|
||||
-- Ignite neighboring nodes, add basic flames
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Ignite flame",
|
||||
nodenames = {"group:flammable"},
|
||||
|
@ -334,11 +279,10 @@ if fire_enabled then
|
|||
if p then
|
||||
minetest.set_node(p, {name = "fire:basic_flame"})
|
||||
end
|
||||
end,
|
||||
end
|
||||
})
|
||||
|
||||
-- Remove flammable nodes around basic flame
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Remove flammable nodes",
|
||||
nodenames = {"fire:basic_flame"},
|
||||
|
@ -359,7 +303,6 @@ if fire_enabled then
|
|||
minetest.remove_node(p)
|
||||
minetest.check_for_falling(p)
|
||||
end
|
||||
end,
|
||||
end
|
||||
})
|
||||
|
||||
end
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 594 B |
Binary file not shown.
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 459 B After Width: | Height: | Size: 205 B |
|
@ -106,7 +106,7 @@ function minetest.calculate_knockback(player, ...)
|
|||
end
|
||||
|
||||
-- Check each player and apply animations
|
||||
minetest.register_globalstep(function(dtime)
|
||||
minetest.register_globalstep(function()
|
||||
for _, player in pairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
local model_name = player_model[name]
|
||||
|
@ -134,13 +134,13 @@ minetest.register_globalstep(function(dtime)
|
|||
player_anim[name] = nil
|
||||
player_sneak[name] = controls.sneak
|
||||
end
|
||||
if controls.LMB then
|
||||
if controls.LMB or controls.RMB then
|
||||
player_set_animation(player, "walk_mine", animation_speed_mod)
|
||||
else
|
||||
player_set_animation(player, "walk", animation_speed_mod)
|
||||
end
|
||||
elseif controls.LMB then
|
||||
player_set_animation(player, "mine")
|
||||
elseif controls.LMB or controls.RMB then
|
||||
player_set_animation(player, "mine", animation_speed_mod)
|
||||
else
|
||||
player_set_animation(player, "stand", animation_speed_mod)
|
||||
end
|
||||
|
|
|
@ -135,6 +135,7 @@ local function on_spawn(player)
|
|||
if success then
|
||||
player:set_pos(spawn_pos)
|
||||
end
|
||||
return success
|
||||
end
|
||||
|
||||
minetest.register_on_newplayer(function(player)
|
||||
|
@ -153,7 +154,5 @@ minetest.register_on_respawnplayer(function(player)
|
|||
return
|
||||
end
|
||||
|
||||
on_spawn(player)
|
||||
|
||||
return true
|
||||
return on_spawn(player)
|
||||
end)
|
||||
|
|
|
@ -82,18 +82,26 @@ local function update_clouds()
|
|||
nobj_speedx = nobj_speedx or minetest.get_perlin(np_speedx)
|
||||
nobj_speedz = nobj_speedz or minetest.get_perlin(np_speedz)
|
||||
|
||||
local n_density = nobj_density:get_2d({x = time, y = 0})
|
||||
local n_thickness = nobj_thickness:get_2d({x = time, y = 0})
|
||||
local n_speedx = nobj_speedx:get_2d({x = time, y = 0})
|
||||
local n_speedz = nobj_speedz:get_2d({x = time, y = 0})
|
||||
local n_density = nobj_density:get_2d({x = time, y = 0}) -- 0 to 1
|
||||
local n_thickness = nobj_thickness:get_2d({x = time, y = 0}) -- 0 to 1
|
||||
local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) -- -1 to 1
|
||||
local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) -- -1 to 1
|
||||
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
local humid = minetest.get_humidity(player:get_pos())
|
||||
-- Default and classic density value is 0.4, make this happen
|
||||
-- at humidity midvalue 50 when n_density is at midvalue 0.5.
|
||||
-- density_max = 0.25 at humid = 0.
|
||||
-- density_max = 0.8 at humid = 50.
|
||||
-- density_max = 1.35 at humid = 100.
|
||||
local density_max = 0.8 + ((humid - 50) / 50) * 0.55
|
||||
player:set_clouds({
|
||||
density = rangelim(humid / 100, 0.25, 1.0) * n_density,
|
||||
-- Range limit density_max to always have occasional
|
||||
-- small scattered clouds at extreme low humidity.
|
||||
density = rangelim(density_max, 0.2, 1.0) * n_density,
|
||||
thickness = math.max(math.floor(
|
||||
rangelim(32 * humid / 100, 8, 32) * n_thickness
|
||||
), 1),
|
||||
), 2),
|
||||
speed = {x = n_speedx * 4, z = n_speedz * 4},
|
||||
})
|
||||
end
|
||||
|
|
|
@ -223,7 +223,7 @@ if minetest.get_modpath("doors") then
|
|||
description = S("Steel Bar Door"),
|
||||
inventory_image = "xpanes_item_steel_bar.png",
|
||||
protected = true,
|
||||
groups = {cracky = 1, level = 2},
|
||||
groups = {node = 1, cracky = 1, level = 2},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
sound_open = "xpanes_steel_bar_door_open",
|
||||
sound_close = "xpanes_steel_bar_door_close",
|
||||
|
@ -241,7 +241,7 @@ if minetest.get_modpath("doors") then
|
|||
tile_front = "xpanes_trapdoor_steel_bar.png",
|
||||
tile_side = "xpanes_trapdoor_steel_bar_side.png",
|
||||
protected = true,
|
||||
groups = {cracky = 1, level = 2, door = 1},
|
||||
groups = {node = 1, cracky = 1, level = 2, door = 1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
sound_open = "xpanes_steel_bar_door_open",
|
||||
sound_close = "xpanes_steel_bar_door_close",
|
||||
|
|
Loading…
Add table
Reference in a new issue