Rename xdecor to lzr_decor

master
Wuzzy 2022-01-09 03:04:13 +01:00
parent 4d9aba5e6a
commit 1c9a1f8ff3
58 changed files with 199 additions and 1010 deletions

View File

@ -6,13 +6,12 @@ External mods used:
* `show_wielded_item`
* `player_api`, `xpanes`, `stairs`, `screwdriver2`
* `xdecor` (heavily modified, non-free textures removed)
---
Textures:
- Water, wood, tree, stone, tools, hand, player textures come from “PixelBOX” texture pack by jp (CC0)
- Textures in xdecor mod made by jp (CC0)
- Textures in `lzr_decor` mod made by jp (CC0)
- Crosshair, wieldhand, `smoke_puff.png`: trivial textures by Wuzzy (CC0)
- Emitter, detector textures: Derivate works of xdecor textures by jp (CC0)
- Mirror textures: by Wuzzy (CC0)
@ -55,7 +54,7 @@ Sounds:
Code:
- `player_api`, `stairs`, `xpanes` come from Minetest Game 5.4.1 (mods modified for Lazarr!), by Minetest Game developers (see README.txt in those folders)
- `screwdriver2` by 12Me21, modified version (CC0)
- `xdecor` by jp (BSD-3 clause license; massively-simplified version from the original)
- `lzr_decor` is based on `xdecor` by jp (BSD-3 clause license; massively-simplified version from the original)
Other stuff:
- See the licence files of the individual mods

View File

@ -1,3 +1,10 @@
This mod is derived from kilbith's 'xdecor' mod and uses blocks
and textures from that mod.
This mod uses the same license as xdecor uses.
And this is the license of xdecor:
┌──────────────────────────────────────────────────────────────────────┐
│ Copyright (c) 2015-2021 kilbith <jeanpatrick.guerrero@gmail.com> │
│ │

View File

@ -1,7 +1,25 @@
if not minetest.global_exists("screwdriver") then
screwdriver = {}
end
local S = minetest.get_translator("xdecor")
local S = minetest.get_translator("lzr_decor")
local pixelbox = function(size, boxes)
local fixed = {}
for _, box in ipairs(boxes) do
-- `unpack` has been changed to `table.unpack` in newest Lua versions.
local x, y, z, w, h, l = unpack(box)
fixed[#fixed + 1] = {
(x / size) - 0.5,
(y / size) - 0.5,
(z / size) - 0.5,
((x + w) / size) - 0.5,
((y + h) / size) - 0.5,
((z + l) / size) - 0.5
}
end
return {type = "fixed", fixed = fixed}
end
local function register_pane(name, desc, def)
xpanes.register_pane(name, {
@ -38,7 +56,7 @@ register_pane("wood_frame", S("Wood Frame"), {
}
})
xdecor.register("baricade", {
minetest.register_node("lzr_decor:baricade", {
description = S("Baricade"),
drawtype = "plantlike",
paramtype2 = "facedir",
@ -47,7 +65,7 @@ xdecor.register("baricade", {
groups = {breakable = 1},
})
xdecor.register("barrel", {
minetest.register_node("lzr_decor:barrel", {
description = S("Barrel"),
tiles = {"xdecor_barrel_top.png", "xdecor_barrel_top.png", "xdecor_barrel_sides.png"},
on_place = minetest.rotate_node,
@ -56,9 +74,12 @@ xdecor.register("barrel", {
})
local function register_storage(name, desc, def)
xdecor.register(name, {
minetest.register_node(name, {
description = desc,
tiles = def.tiles,
drawtype = def.drawtype,
paramtype = def.paramtype,
paramtype2 = def.paramtype2,
node_box = def.node_box,
on_rotate = def.on_rotate,
on_place = def.on_place,
@ -68,7 +89,8 @@ local function register_storage(name, desc, def)
})
end
register_storage("cabinet", S("Wooden Cabinet"), {
register_storage("lzr_decor:cabinet", S("Wooden Cabinet"), {
paramtype2 = "facedir",
on_rotate = screwdriver.rotate_simple,
tiles = {
"xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
@ -77,9 +99,14 @@ register_storage("cabinet", S("Wooden Cabinet"), {
}
})
register_storage("cabinet_half", S("Half Wooden Cabinet"), {
inv_size = 8,
node_box = xdecor.nodebox.slab_y(0.5, 0.5),
register_storage("lzr_decor:cabinet_half", S("Half Wooden Cabinet"), {
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = { -0.5, 0, -0.5, 0.5, 0.5, 0.5 },
},
on_rotate = screwdriver.rotate_simple,
use_texture_alpha = "clip",
tiles = {
@ -89,27 +116,31 @@ register_storage("cabinet_half", S("Half Wooden Cabinet"), {
}
})
register_storage("empty_shelf", S("Empty Shelf"), {
register_storage("lzr_decor:empty_shelf", S("Empty Shelf"), {
paramtype2 = "facedir",
on_rotate = screwdriver.rotate_simple,
tiles = {
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
"default_wood.png^xdecor_empty_shelf.png",
}
})
register_storage("multishelf", S("Multi Shelf"), {
register_storage("lzr_decor:multishelf", S("Multi Shelf"), {
paramtype2 = "facedir",
on_rotate = screwdriver.rotate_simple,
tiles = {
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
{name="default_wood.png", align_style="world"},
"default_wood.png^xdecor_multishelf.png",
},
})
xdecor.register("candle", {
minetest.register_node("lzr_decor:candle", {
description = S("Candle"),
light_source = 12,
drawtype = "torchlike",
@ -140,13 +171,16 @@ xdecor.register("candle", {
}
})
xdecor.register("chair", {
minetest.register_node("lzr_decor:chair", {
description = S("Chair"),
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {"xdecor_wood.png"},
sounds = lzr_sounds.node_sound_wood_defaults(),
groups = { breakable = 1 },
on_rotate = screwdriver.rotate_simple,
node_box = xdecor.pixelbox(16, {
node_box = pixelbox(16, {
{3, 0, 11, 2, 16, 2},
{11, 0, 11, 2, 16, 2},
{5, 9, 11.5, 6, 6, 1},
@ -156,7 +190,7 @@ xdecor.register("chair", {
}),
})
xdecor.register("cobweb", {
minetest.register_node("lzr_decor:cobweb", {
description = S("Cobweb"),
drawtype = "plantlike",
tiles = {"xdecor_cobweb.png"},
@ -166,22 +200,26 @@ xdecor.register("cobweb", {
groups = { breakable = 1 },
})
xdecor.register("cushion", {
minetest.register_node("lzr_decor:cushion", {
description = S("Cushion"),
tiles = {"xdecor_cushion.png"},
groups = { breakable = 1 },
on_place = minetest.rotate_node,
node_box = xdecor.nodebox.slab_y(0.5),
can_dig = xdecor.sit_dig,
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 },
},
})
xdecor.register("cushion_block", {
minetest.register_node("lzr_decor:cushion_block", {
description = S("Cushion Block"),
tiles = {"xdecor_cushion.png"},
groups = { breakable = 1 },
})
xdecor.register("lantern", {
minetest.register_node("lzr_decor:lantern", {
description = S("Lantern"),
light_source = 13,
drawtype = "plantlike",
@ -196,18 +234,20 @@ xdecor.register("lantern", {
animation = {type="vertical_frames", length = 1.5}
}
},
selection_box = xdecor.pixelbox(16, {{4, 0, 4, 8, 16, 8}})
selection_box = pixelbox(16, {{4, 0, 4, 8, 16, 8}})
})
local xdecor_lightbox = {
local lightbox = {
iron = S("Iron Light Box"),
wooden = S("Wooden Light Box"),
wooden2 = S("Wooden Light Box 2"),
}
for l, desc in pairs(xdecor_lightbox) do
xdecor.register(l .. "_lightbox", {
for l, desc in pairs(lightbox) do
minetest.register_node("lzr_decor:" .. l .. "_lightbox", {
description = desc,
paramtype = "light",
sunlight_propagates = true,
tiles = {"xdecor_" .. l .. "_lightbox.png"},
groups = { breakable = 1 },
light_source = 13,
@ -225,18 +265,22 @@ local xdecor_potted = {
}
for f, desc in pairs(xdecor_potted) do
xdecor.register("potted_" .. f, {
minetest.register_node("lzr_decor:potted_" .. f, {
description = desc,
walkable = false,
groups = { breakable = 1, potted_flower = 1 },
tiles = {"xdecor_" .. f .. "_pot.png"},
inventory_image = "xdecor_" .. f .. "_pot.png",
drawtype = "plantlike",
selection_box = xdecor.nodebox.slab_y(0.3)
paramtype = "light",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.2, 0.5 },
},
})
minetest.register_craft({
output = "xdecor:potted_" .. f,
output = "lzr_laser:potted_" .. f,
recipe = {
{"default:clay_brick", "flowers:" .. f, "default:clay_brick"},
{"", "default:clay_brick", ""}
@ -246,7 +290,7 @@ end
local function register_hard_node(name, desc, def)
def = def or {}
xdecor.register(name, {
minetest.register_node(name, {
description = desc,
tiles = {"xdecor_" .. name .. ".png"},
groups = def.groups or { breakable = 1},
@ -254,18 +298,22 @@ local function register_hard_node(name, desc, def)
})
end
xdecor.register("table", {
minetest.register_node("lzr_decor:table", {
description = S("Table"),
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {"xdecor_wood.png"},
groups = { breakable = 1 },
sounds = lzr_sounds.node_sound_wood_defaults(),
node_box = xdecor.pixelbox(16, {
node_box = pixelbox(16, {
{0, 14, 0, 16, 2, 16}, {5.5, 0, 5.5, 5, 14, 6}
})
})
xdecor.register("woodframed_glass", {
minetest.register_node("lzr_decor:woodframed_glass", {
description = S("Wood Framed Glass"),
paramtype = "light",
drawtype = "glasslike_framed",
sunlight_propagates = true,
tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"},

View File

@ -0,0 +1,27 @@
# textdomain: lzr_decor
Rusty Iron Bars=Rostige Eisenstäbe
Wood Frame=Holzrahmen
Baricade=Barrikade
Barrel=Fass
Wooden Cabinet=Holzschrank
Half Wooden Cabinet=Halber Holzschrank
Empty Shelf=Leeres Regal
Multi Shelf=Mehrzweckregal
Candle=Kerze
Chair=Stuhl
Cobweb=Spinnenwebe
Cushion=Sitzkissen
Cushion Block=Sitzkissenblock
Lantern=Laterne
Iron Light Box=Eisenlichtblock
Wooden Light Box=Holzlichtblock
Wooden Light Box 2=Holzlichtblock 2
Potted White Dandelion=Weißer Löwenzahn im Topf
Potted Yellow Dandelion=Gelber Löwenzahn im Topf
Potted Geranium=Geranien im Topf
Potted Rose=Rosen im Topf
Potted Tulip=Tulpen im Topf
Potted Viola=Veilchen im Topf
Table=Tisch
Wood Framed Glass=Holzeingefasstes Glas

View File

@ -0,0 +1,27 @@
# textdomain: lzr_decor
Rusty Iron Bars=Barreaux en fer rouillé
Wood Frame=Cadre en bois
Baricade=Barricade
Barrel=Tonneau
Wooden Cabinet=Meuble en bois
Half Wooden Cabinet=Demi meuble en bois
Empty Shelf=Étagère vide
Multi Shelf=Étagères multiple
Candle=Bougie
Chair=Chaise
Cobweb=Toile daraignée
Cushion=Coussin
Cushion Block=Bloc de coussin
Lantern=Lanterne
Iron Light Box=Boite lumineuse en fer
Wooden Light Box=Boite lumineuse en bois
Wooden Light Box 2=
Potted White Dandelion=Pissenlit blanc en pot
Potted Yellow Dandelion=Pissenlit jaune en pot
Potted Geranium=Géranium en pot
Potted Rose=Rose en pot
Potted Tulip=Tulipe en pot
Potted Viola=Violette en pot
Table=Table
Wood Framed Glass=Verre encadré par du bois

View File

@ -0,0 +1,28 @@
# textdomain: lzr_decor
# Author: Salvo 'LtWorf' Tomaselli <tiposchi@tiscali.it>
Rusty Iron Bars=Sbarre di prigione arrugginite
Wood Frame=Cornice in legno
Baricade=Barricata
Barrel=Barile
Wooden Cabinet=Stipo di legno
Half Wooden Cabinet=Stipo di legno a metà
Empty Shelf=Mensola vuota
Multi Shelf=Mensole
Candle=Candela
Chair=Sedia
Cobweb=Ragnatela
Cushion=Cuscino
Cushion Block=Blocco di cuscini
Lantern=Lanterna
Iron Light Box=Scatola luminosa di ferro
Wooden Light Box=Mattonella luminosa di legno
Wooden Light Box 2=
Potted White Dandelion=Soffione bianco in vaso
Potted Yellow Dandelion=Soffione giallo in vaso
Potted Geranium=Geranio in vaso
Potted Rose=Rosa in vaso
Potted Tulip=Tulipano in vaso
Potted Viola=Violetta in vaso
Table=Tavolo
Wood Framed Glass=Cornice in legno con vetro

View File

@ -0,0 +1,26 @@
# textdomain: lzr_decor
Rusty Iron Bars=
Wood Frame=
Baricade=
Barrel=
Wooden Cabinet=
Half Wooden Cabinet=
Empty Shelf=
Multi Shelf=
Candle=
Chair=
Cobweb=
Cushion=
Cushion Block=
Lantern=
Iron Light Box=
Wooden Light Box=
Wooden Light Box 2=
Potted White Dandelion=
Potted Yellow Dandelion=
Potted Geranium=
Potted Rose=
Potted Tulip=
Potted Viola=
Table=
Wood Framed Glass=

2
mods/lzr_decor/mod.conf Normal file
View File

@ -0,0 +1,2 @@
name = lzr_decor
optional_depends = screwdriver

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 262 B

View File

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

View File

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 247 B

View File

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View File

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 202 B

View File

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 177 B

View File

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

View File

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 174 B

View File

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 221 B

View File

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 374 B

View File

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 349 B

View File

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 339 B

View File

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 363 B

View File

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 382 B

View File

Before

Width:  |  Height:  |  Size: 225 B

After

Width:  |  Height:  |  Size: 225 B

View File

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

View File

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 301 B

View File

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 231 B

View File

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 191 B

View File

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 503 B

View File

Before

Width:  |  Height:  |  Size: 185 B

After

Width:  |  Height:  |  Size: 185 B

View File

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 187 B

View File

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

View File

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 339 B

View File

Before

Width:  |  Height:  |  Size: 194 B

After

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 356 B

View File

Before

Width:  |  Height:  |  Size: 333 B

After

Width:  |  Height:  |  Size: 333 B

View File

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 235 B

View File

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 271 B

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 262 B

View File

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 270 B

View File

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 201 B

View File

@ -3,7 +3,7 @@ local S = minetest.get_translator("lzr_levels")
lzr_levels = {}
local ROOM_NODE = "lzr_core:wood"
local WINDOW_NODE = "xdecor:woodframed_glass"
local WINDOW_NODE = "lzr_decor:woodframed_glass"
local WINDOW_HEIGHT = 3
local WINDOW_DIST = 3
local LAST_LEVEL = 10

View File

@ -1,2 +1,2 @@
name = lzr_menu
depends = lzr_globals, lzr_core, xdecor, lzr_mapgen, lzr_levels
depends = lzr_globals, lzr_core, lzr_decor, lzr_mapgen, lzr_levels

View File

@ -1,22 +0,0 @@
## Files related to minetest development cycle
/*.patch
# GNU Patch reject file
*.rej
## Editors and Development environments
*~
*.swp
*.bak*
*.orig
# Vim
*.vim
# Kate
.*.kate-swp
.swp.*
# Eclipse (LDT)
.project
.settings/
.buildpath
.metadata
# Idea IDE
.idea/*

View File

@ -1,14 +0,0 @@
allow_defined_top = true
read_globals = {
"minetest",
"vector", "ItemStack",
"default",
"stairs", "doors", "xpanes",
"xdecor", "xbg",
table = {fields = {"copy"}},
string = {fields = {"split"}},
"unpack",
"stairsplus",
"mesecon"
}

View File

@ -1,17 +0,0 @@
## X-Decor ##
[![ContentDB](https://content.minetest.net/packages/jp/xdecor/shields/downloads/)](https://content.minetest.net/packages/jp/xdecor/)
A decoration mod meant to be simple and well-featured.
It adds a bunch of cute cubes, various mechanisms and stuff for [cutting](https://forum.minetest.net/viewtopic.php?f=11&t=14085), [enchanting](https://forum.minetest.net/viewtopic.php?f=11&t=14087), cooking, etc.
This mod is a lightweight alternative to HomeDecor and MoreBlocks.
### Requirements ###
This mod requires at least version 5.1 of Minetest.
### Credits ###
Special thanks to Gambit for the textures from the PixelBOX pack for Minetest.
Thanks to all contributors who keep this mod alive.
![Preview](http://i.imgur.com/AVoyCQy.png)

View File

@ -1,60 +0,0 @@
-- Returns the greatest numeric key in a table.
function xdecor.maxn(T)
local n = 0
for k in pairs(T) do
if k > n then
n = k
end
end
return n
end
-- Returns the length of an hash table.
function xdecor.tablelen(T)
local n = 0
for _ in pairs(T) do
n = n + 1
end
return n
end
-- Deep copy of a table. Borrowed from mesecons mod (https://github.com/Jeija/minetest-mod-mesecons).
function xdecor.tablecopy(T)
if type(T) ~= "table" then
return T -- No need to copy.
end
local new = {}
for k, v in pairs(T) do
if type(v) == "table" then
new[k] = xdecor.tablecopy(v)
else
new[k] = v
end
end
return new
end
function xdecor.stairs_valid_def(def)
return (def.drawtype == "normal" or def.drawtype:sub(1,5) == "glass") and
(def.groups.cracky or def.groups.choppy) and
not def.on_construct and
not def.after_place_node and
not def.on_rightclick and
not def.on_blast and
not def.allow_metadata_inventory_take and
not (def.groups.not_in_creative_inventory == 1) and
not (def.groups.not_cuttable == 1) and
not def.groups.wool and
(def.tiles and type(def.tiles[1]) == "string" and not
def.tiles[1]:find("default_mineral")) and
not def.mesecons and
def.description and
def.description ~= "" and
def.light_source == 0
end

View File

@ -1,67 +0,0 @@
xdecor.box = {
slab_y = function(height, shift)
return {
-0.5,
-0.5 + (shift or 0),
-0.5,
0.5,
-0.5 + height + (shift or 0),
0.5
}
end,
slab_z = function(depth)
return {-0.5, -0.5, -0.5 + depth, 0.5, 0.5, 0.5}
end,
bar_y = function(radius)
return {-radius, -0.5, -radius, radius, 0.5, radius}
end,
cuboid = function(radius_x, radius_y, radius_z)
return {-radius_x, -radius_y, -radius_z, radius_x, radius_y, radius_z}
end
}
xdecor.nodebox = {
regular = {type = "regular"},
null = {
type = "fixed", fixed = {0,0,0,0,0,0}
}
}
xdecor.pixelbox = function(size, boxes)
local fixed = {}
for _, box in ipairs(boxes) do
-- `unpack` has been changed to `table.unpack` in newest Lua versions.
local x, y, z, w, h, l = unpack(box)
fixed[#fixed + 1] = {
(x / size) - 0.5,
(y / size) - 0.5,
(z / size) - 0.5,
((x + w) / size) - 0.5,
((y + h) / size) - 0.5,
((z + l) / size) - 0.5
}
end
return {type = "fixed", fixed = fixed}
end
local mt = {}
mt.__index = function(table, key)
local ref = xdecor.box[key]
local ref_type = type(ref)
if ref_type == "function" then
return function(...)
return {type = "fixed", fixed = ref(...)}
end
elseif ref_type == "table" then
return {type = "fixed", fixed = ref}
elseif ref_type == "nil" then
error(key .. "could not be found among nodebox presets and functions")
end
error("unexpected datatype " .. tostring(type(ref)) .. " while looking for " .. key)
end
setmetatable(xdecor.nodebox, mt)

View File

@ -1,137 +0,0 @@
xbg = ""
local default_inventory_size = 32
local default_inventory_formspecs = {
["8"] = [[ size[8,6]
list[context;main;0,0;8,1;]
list[current_player;main;0,2;8,4;]
listring[current_player;main]
listring[context;main] ]] ..
"",
["16"] = [[ size[8,7]
list[context;main;0,0;8,2;]
list[current_player;main;0,3;8,4;]
listring[current_player;main]
listring[context;main] ]] ..
"",
["24"] = [[ size[8,8]
list[context;main;0,0;8,3;]
list[current_player;main;0,4;8,4;]
listring[current_player;main]
listring[context;main]" ]] ..
"",
["32"] = [[ size[8,9]
list[context;main;0,0.3;8,4;]
list[current_player;main;0,4.85;8,1;]
list[current_player;main;0,6.08;8,3;8]
listring[current_player;main]
listring[context;main] ]] ..
""
}
local function get_formspec_by_size(size)
local formspec = default_inventory_formspecs[tostring(size)]
return formspec or default_inventory_formspecs
end
local default_can_dig = function(pos)
local inv = minetest.get_meta(pos):get_inventory()
return inv:is_empty("main")
end
local function xdecor_stairs_alternative(nodename, def)
local mod, name = nodename:match("(.*):(.*)")
for groupname, value in pairs(def.groups) do
if groupname ~= "cracky" and groupname ~= "choppy" and
groupname ~= "flammable" and groupname ~= "crumbly" and
groupname ~= "snappy" then
def.groups.groupname = nil
end
end
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(
mod,
name,
nodename,
{
description = def.description,
tiles = def.tiles,
groups = def.groups,
sounds = def.sounds,
}
)
elseif minetest.get_modpath("stairs") then
stairs.register_stair_and_slab(name,nodename,
def.groups,
def.tiles,
("%s Stair"):format(def.description),
("%s Slab"):format(def.description),
def.sounds
)
end
end
function xdecor.register(name, def)
def.drawtype = def.drawtype or (def.mesh and "mesh") or (def.node_box and "nodebox")
def.sounds = def.sounds or lzr_sounds.node_sound_defaults()
if not (def.drawtype == "normal" or def.drawtype == "signlike" or
def.drawtype == "plantlike" or def.drawtype == "glasslike_framed" or
def.drawtype == "glasslike_framed_optional") then
def.paramtype2 = def.paramtype2 or "facedir"
end
if def.sunlight_propagates ~= false and
(def.drawtype == "plantlike" or def.drawtype == "torchlike" or
def.drawtype == "signlike" or def.drawtype == "fencelike") then
def.sunlight_propagates = true
end
if not def.paramtype and
(def.light_source or def.sunlight_propagates or
def.drawtype == "nodebox" or def.drawtype == "mesh") then
def.paramtype = "light"
end
local infotext = def.infotext
local inventory = def.inventory
def.inventory = nil
if inventory then
def.on_construct = def.on_construct or function(pos)
local meta = minetest.get_meta(pos)
if infotext then meta:set_string("infotext", infotext) end
local size = inventory.size or default_inventory_size
local inv = meta:get_inventory()
inv:set_size("main", size)
meta:set_string("formspec",
(inventory.formspec or get_formspec_by_size(size)) .. xbg)
end
def.can_dig = def.can_dig or default_can_dig
elseif infotext and not def.on_construct then
def.on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", infotext)
end
end
minetest.register_node("xdecor:" .. name, def)
local workbench = minetest.settings:get_bool("enable_xdecor_workbench")
if workbench == false and
(minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs")) then
if xdecor.stairs_valid_def(def) then
xdecor_stairs_alternative("xdecor:"..name, def)
end
end
end

View File

@ -1,23 +0,0 @@
--local t = os.clock()
xdecor = {}
local modpath = minetest.get_modpath("xdecor")
dofile(modpath .. "/handlers/helpers.lua")
dofile(modpath .. "/handlers/nodeboxes.lua")
dofile(modpath .. "/handlers/registration.lua")
dofile(modpath .. "/src/nodes.lua")
local subpart = {
"rope",
}
for _, name in ipairs(subpart) do
local enable = minetest.settings:get_bool("enable_xdecor_" .. name)
if enable or enable == nil then
dofile(modpath .. "/src/" .. name .. ".lua")
end
end
--print(string.format("[xdecor] loaded in %.2f ms", (os.clock()-t)*1000))

View File

@ -1,154 +0,0 @@
# textdomain: xdecor
### chess.lua ###
Black Bishop=
Black King=
Black Knight=
Black Pawn=
Black Queen=
Black Rook=
Chess=
Chess Board=
Dumb AI=
Multiplayer=
New game=
Select a mode:=
Singleplayer=
Someone else plays black pieces!=
Someone else plays white pieces!=
White Bishop=
White King=
White Knight=
White Pawn=
White Queen=
White Rook=
You can't dig the chessboard, a game has been started. Reset it first if you're a current player, or dig it again in @1=
You can't reset the chessboard, a game has been started. If you aren't a current player, try again in @1=
check=
### cooking.lua ###
Bowl=
Bowl of soup=
Cauldron=
Cauldron (active) - Drop foods inside to make a soup=
Cauldron (active) - Use a bowl to eat the soup=
Cauldron (empty)=
Cauldron (idle)=
No room in your inventory to add a bowl of soup.=
No room in your inventory to add a bucket of water.=
### enchanting.lua ###
Axe=
Bronze=
Diamond=
Durability=
Efficiency=
Enchanted @1 @2 @3=
Enchantment Table=
Mese=
Pickaxe=
Sharpness=
Shovel=
Steel=
Sword=
Your tool digs faster=
Your tool last longer=
Your weapon inflicts more damages=
### hive.lua ###
Artificial Hive=
Bees are busy making honey…=
Honey=
### itemframe.lua ###
@1 (owned by @2)=
Item Frame=
### mailbox.lua ###
@1's Mailbox=
Last donators=
Mailbox=
Send your goods to@n@1=
The mailbox is full.=
### mechanisms.lua ###
Lever=
Stone Pressure Plate=
Wooden Pressure Plate=
### nodes.lua ###
Bamboo Frame=
Baricade=
Barrel=
Cactus Brick=
Candle=
Chainlink=
Chair=
Coal Stone Tile=
Cobweb=
Cushion=
Cushion Block=
Desert Stone Tile=
Empty Shelf=
Ender Chest=
Garden Stone Path=
Half Wooden Cabinet=
Hardened Clay=
Iron Light Box=
Ivy=
Japanese Door=
Lantern=
Moon Brick=
Multi Shelf=
Packed Ice=
Painting=
Potted Geranium=
Potted Rose=
Potted Tulip=
Potted Viola=
Potted White Dandelion=
Potted Yellow Dandelion=
Prison Door=
Red Curtain=
Runestone=
Rusty Iron Bars=
Rusty Prison Door=
Screen Door=
Slide Door=
Stone Tile=
Table=
Tatami=
Television=
Trampoline=
Wood Frame=
Wood Framed Glass=
Wooden Cabinet=
Wooden Light Box=
Wooden Tile=
Woodglass Door=
### rope.lua ###
Rope=
### workbench.lua ###
Back=
Crafting=
Cut=
Hammer=
Repair=
Storage=
Work Bench=

View File

@ -1,152 +0,0 @@
# textdomain: xdecor
### chess.lua ###
Black Bishop=schwarzer Läufer
Black King=schwarter König
Black Knight=schwarzes Pferd
Black Pawn=schwarzer Bauer
Black Queen=schwarze Dame
Black Rook=schwarzer Turm
Chess=Schach
Chess Board=Schachbrett
Dumb AI=dumme KI
Multiplayer=Mehrspieler
New game=neues Spiel
Select a mode:=Wähle einen Modus:
Singleplayer=Einzelspieler
Someone else plays black pieces!=Jemand anderes spielt Schwarz!
Someone else plays white pieces!=Jemand anderes spielt Weiß!
White Bishop=weißer Läufer
White King=weißer König
White Knight=weißes Pferd
White Pawn=weißer Bauer
White Queen=weiße Dame
White Rook=weißer Turm
You can't dig the chessboard, a game has been started. Reset it first if you're a current player, or dig it again in @1=Das Schachbrett ist während eines Schachspieles nicht abbaubar. Setze das Spiel zurück, falls du ein Mitspieler bist oder versuche es in @1 erneut.
You can't reset the chessboard, a game has been started. If you aren't a current player, try again in @1=Das Schachbrett kann nicht zurückgesetzt werden, da ein Spiel im Gang ist. Versuche es in @1 erneut, falls du kein Mitspieler bist.
check=Schach
### cooking.lua ###
Bowl=Schüssel
Bowl of soup=Suppenschüssel
Cauldron=Kessel
Cauldron (active) - Drop foods inside to make a soup=Kessel (aktiv) - Nahrungsmittel einwerfen, um Suppe zu machen.
Cauldron (active) - Use a bowl to eat the soup=Kessel (aktiv) - Benutze eine Schüssel, um die Suppe zu essen
Cauldron (empty)=Kessel (leer)
Cauldron (idle)=Kessel (untätig)
No room in your inventory to add a bowl of soup.=Zu wenig Platz im Inventar für eine Schüssel voll Suppe.
No room in your inventory to add a bucket of water.=Zu wenig Platz im Inventar für einen Eimer Wasser.
### enchanting.lua ###
Axe=axt
Bronze=Bronze
Diamond=Diamant
Durability=Haltbarkeit
Efficiency=Effizienz
Enchanted @1 @2 @3=verzauberte(s) @1@2 @3
Enchantment Table=Zaubertisch
Mese=Mese
Pickaxe=Spitzhacke
Sharpness=Schärfe
Shovel=Schaufel
Steel=Eisen
Sword=Schwert
Your tool digs faster=Dein Werkzeug arbeitet schneller
Your tool last longer=Dein Werkzeug hält länger
Your weapon inflicts more damages=Deine Waffe erzeugt mehr Schaden
### hive.lua ###
Artificial Hive=künstlicher Bienenstock
Bees are busy making honey…=Bienen sind beschäftigt, Honig herzustellen.
Honey=Honig
### itemframe.lua ###
@1 (owned by @2)=@1 (gehört @2)
Item Frame=Objektrahmen
### mailbox.lua ###
@1's Mailbox=Briefkasten von @1
Last donators=letzte Spender
Mailbox=Briefkasten
Send your goods to@n@1=Sende deine Waren an@n@1
The mailbox is full.=Der Briefkasten ist voll.
### mechanisms.lua ###
Lever=Schalthebel
Stone Pressure Plate=steinerne Druckplatte
Wooden Pressure Plate=hölzerne Druckplatte
### nodes.lua ###
Bamboo Frame=Bambusgerüst
Baricade=Barrikade
Barrel=Fass
Cactus Brick=Kaktusstein
Candle=Kerze
Chainlink=Kettenvorhang
Chair=einfacher Stuhl
Coal Stone Tile=Kohle-Stein-Block
Cobweb=Spinnenwebe
Cushion=Sitzkissen
Cushion Block=Sitzkissenblock
Desert Stone Tile=Wüstensteinblock
Empty Shelf=leeres Regal
Ender Chest=Endertruhe
Garden Stone Path=Steingartenweg
Half Wooden Cabinet=halber Holzschrank
Hardened Clay=gehärteter Ton
Iron Light Box=eiseneingefasster Lichtblock
Ivy=Efeu
Japanese Door=japanische Tür
Lantern=Laterne
Moon Brick=Naturziegelwand
Multi Shelf=Mehrzweckregal
Packed Ice=Packeis
Painting=Gemälde
Potted Geranium=Geranien im Topf
Potted Rose=Rosen im Topf
Potted Tulip=Tulpen im Topf
Potted Viola=Veilchen im Topf
Potted White Dandelion=weißer Löwenzahn im Topf
Potted Yellow Dandelion=gelber Löwenzahn im Topf
Prison Door=Verliestür
Red Curtain=roter Vorhang
Runestone=Runensteinblock
Rusty Iron Bars=rostige Eisenstäbe
Rusty Prison Door=rostige Verliestür
Screen Door=französische Glastür
Slide Door=Schiebetür
Stone Tile=steinerner Block
Table=einfacher Tisch
Tatami=Tatamimatte
Television=Fernseher
Trampoline=Trampolin
Wood Frame=hölzerner Zierrahmen
Wood Framed Glass=holzeingefasstes Glas
Wooden Cabinet=Holzschrank
Wooden Light Box=holzeingefasster Lichtblock
Wooden Tile=hölzerner Dekorblock
Woodglass Door=Tür mit Lichtausschnitt
### rope.lua ###
Rope=Seil
### workbench.lua ###
Back=Zurück
Crafting=Fertigung
Cut=Zuschnitt
Hammer=Hämmerchen
Repair=Reparatur
Storage=Aufbewahrung
Work Bench=Werkbank

View File

@ -1,154 +0,0 @@
# textdomain: xdecor
### chess.lua ###
Black Bishop=Fou noir
Black King=Roi noir
Black Knight=Cavalier noir
Black Pawn=Pion noir
Black Queen=Reine noire
Black Rook=Tour noire
Chess=Echecs
Chess Board=Echiquier
Dumb AI=IA stupide
Multiplayer=Multijoueur
New game=Nouvelle partie
Select a mode:=Sélectionnez un mode de jeu:
Singleplayer=Solo
Someone else plays black pieces!=Quelquun dautre joue les pièces noires !
Someone else plays white pieces!=Quelquun dautre joue les pièces blanches !
White Bishop=Fou blanc
White King=Roi blanc
White Knight=Cavalier blanc
White Pawn=Pion blanc
White Queen=Reine blanche
White Rook=Tour blanche
You can't dig the chessboard, a game has been started. Reset it first if you're a current player, or dig it again in @1=Vous ne pouvez pas récupérer léchiquier, une partie à été commencée. Remettez le à zéro si vous cest votre tour de jouer, ou réessayez dans @1
You can't reset the chessboard, a game has been started. If you aren't a current player, try again in @1=Vous ne pouvez pas mettre à zéro léchiquier, une partie a été commencée. Si ce nest pas votre tour de jouer, réessayez dans @1
check=échec
### cooking.lua ###
Bowl=Bol
Bowl of soup=Bol de soupe
Cauldron=Chaudron
Cauldron (active) - Drop foods inside to make a soup=Chaudron (actif) - Placez des ingrédients à lintérieur pour faire une soupe
Cauldron (active) - Use a bowl to eat the soup=Chaudron (actif) - Utilisez un bol pour boire la soupe
Cauldron (empty)=Chaudron (vide)
Cauldron (idle)=Chaudron (inactif)
No room in your inventory to add a bowl of soup.=Pas de place dans votre inventaire pour ajouter un bol de soupe.
No room in your inventory to add a bucket of water.=Pas de place dans votre inventaire pour ajouter un seau deau.
### enchanting.lua ###
Axe=Hache
Bronze=Bronze
Diamond=Diamant
Durability=Durabilité
Efficiency=Efficacité
Enchanted @1 @2 @3=@2 en @1 enchantée @3
Enchantment Table=Table denchantements
Mese=Mese
Pickaxe=Pioche
Sharpness=Tranchant
Shovel=Pelle
Steel=Fer
Sword=Épée
Your tool digs faster=Votre outil creuse plus vite
Your tool last longer=Votre outil dure plus longtemps
Your weapon inflicts more damages=Votre arme inflige plus de dégâts
### hive.lua ###
Artificial Hive=Ruche artificielle
Bees are busy making honey…=Les abeilles sont occupées à fabriquer du miel…
Honey=Miel
### itemframe.lua ###
@1 (owned by @2)=@1 (propriété de @2)
Item Frame=Cadre
### mailbox.lua ###
@1's Mailbox=Boite aux lettres de @1
Last donators=Derniers donateurs
Mailbox=Boite aux lettres
Send your goods to@n@1=Envoyer vos biens à@n@1
The mailbox is full.=La boite aux lettres est pleine.
### mechanisms.lua ###
Lever=Levier
Stone Pressure Plate=Plaque de pression en pierre
Wooden Pressure Plate=Plaque de pression en bois
### nodes.lua ###
Bamboo Frame=Cadre en bambou
Baricade=Barricade
Barrel=Tonneau
Cactus Brick=Brique en cactus
Candle=Bougie
Chainlink=Maillon de chaîne
Chair=Chaise
Coal Stone Tile=Carreau en charbon et pierre
Cobweb=Toile daraignée
Cushion=Coussin
Cushion Block=Bloc de coussin
Desert Stone Tile=Carreau en pierre du désert
Empty Shelf=Étagère vide
Ender Chest=Coffre de lEnd
Garden Stone Path=Chemin de pierres de jardin
Half Wooden Cabinet=Demi meuble en bois
Hardened Clay=Argile durcie
Iron Light Box=Boite lumineuse en fer
Ivy=Lierre
Japanese Door=Porte japonaise
Lantern=Lanterne
Moon Brick=Brique lunaire
Multi Shelf=Étagères multiple
Packed Ice=Glace compactée
Painting=Tableau
Potted Geranium=Géranium en pot
Potted Rose=Rose en pot
Potted Tulip=Tulipe en pot
Potted Viola=Violette en pot
Potted White Dandelion=Pissenlit blanc en pot
Potted Yellow Dandelion=Pissenlit jaune en pot
Prison Door=Porte de prison
Red Curtain=Rideaux rouge
Runestone=Pierre runique
Rusty Iron Bars=Barreaux en fer rouillé
Rusty Prison Door=Barreaux de prison rouillés
Screen Door=Porte avec moustiquaire
Slide Door=Porte coulissante
Stone Tile=Carreau en pierre
Table=Table
Tatami=Tatami
Television=Télévision
Trampoline=Trampoline
Wood Frame=Cadre en bois
Wood Framed Glass=Verre encadré par du bois
Wooden Cabinet=Meuble en bois
Wooden Light Box=Boite lumineuse en bois
Wooden Tile=Carreau en bois
Woodglass Door=Porte vitrée
### rope.lua ###
Rope=Corde
### workbench.lua ###
Back=Retour
Crafting=Fabrication
Cut=Couper
Hammer=Marteau
Repair=Réparer
Storage=Stockage
Work Bench=Atelier

View File

@ -1,154 +0,0 @@
# textdomain: xdecor
# Author: Salvo 'LtWorf' Tomaselli <tiposchi@tiscali.it>
### chess.lua ###
Black Bishop=Alfiere nero
Black King=Re nero
Black Knight=Cavallo nero
Black Pawn=Pedone nero
Black Queen=Regina nera
Black Rook=Torre nera
Chess=Scacchi
Chess Board=Scacchiera
Dumb AI=AI stupida
Multiplayer=Multigiocatore
New game=Nuova partita
Select a mode:=Selezionare una modalità
Singleplayer=Singolo giocatore
Someone else plays black pieces!=Qualcun altro gioca con il nero!
Someone else plays white pieces!=Qualcun altro gioca con il bianco!
White Bishop=Alfiere bianco
White King=Re bianco
White Knight=Cavallo bianco
White Pawn=Pedone bianco
White Queen=Regina bianca
White Rook=Torre bianca
You can't dig the chessboard, a game has been started. Reset it first if you're a current player, or dig it again in @1=Non si può scavare la scacchiera, una partita è in corso. Resettarla se si è uno dei giocatori, o riprovare in @1
You can't reset the chessboard, a game has been started. If you aren't a current player, try again in @1=Non si può resettare la partita, un gioco è in corso. Se non si è uno dei giocatori, riprovare in @1
check=scacco
### cooking.lua ###
Bowl=Ciotola
Bowl of soup=Ciotola di zuppa
Cauldron=Calderone
Cauldron (active) - Drop foods inside to make a soup=Calderone (attivo) - Mettere gli ingredienti all'interno per fare una zuppa.
Cauldron (active) - Use a bowl to eat the soup=Calderone (actif) - Utilizzare una ciotola per mangiare la zuppa
Cauldron (empty)=Calderone (vuoto)
Cauldron (idle)=Calderone (inattivo)
No room in your inventory to add a bowl of soup.=Non c'è spazio nell'inventario per aggiungere una ciotola di zuppa.
No room in your inventory to add a bucket of water.=Non c'è spazio nell'inventario per aggiungere un secchio di acqua.
### enchanting.lua ###
Axe=Ascia
Bronze=Bronzo
Diamond=Diamante
Durability=Durabilità
Efficiency=Efficacia
Enchanted @1 @2 @3=@2 su @1 incantesimo @3
Enchantment Table=Tavolo per migliorie
Mese=Mese
Pickaxe=Piccone
Sharpness=Affilatezza
Shovel=Pala
Steel=Acciaio
Sword=Spada
Your tool digs faster=Il tuo utensile scava più rapidamente
Your tool last longer=Il tuo utensile dura di più
Your weapon inflicts more damages=La tua arma infligge più danno
### hive.lua ###
Artificial Hive=Favo artificiale
Bees are busy making honey…=Le api sono occupate a fare il miele…
Honey=Miele
### itemframe.lua ###
@1 (owned by @2)=@1 (proprietà di @2)
Item Frame=Teca
### mailbox.lua ###
@1's Mailbox=Cassetta delle lettere di @1
Last donators=Ultimi donatori
Mailbox=Cassetta delle lettere
Send your goods to@n@1=Invia i tuoi item a@n@1
The mailbox is full.=La cassetta delle lettere è piena
### mechanisms.lua ###
Lever=Leva
Stone Pressure Plate=Placca di pressione di pietra
Wooden Pressure Plate=Placca di pressione di legno
### nodes.lua ###
Bamboo Frame=Cornice di bambù
Baricade=Barricata
Barrel=Barile
Cactus Brick=Mattone di cactus
Candle=Candela
Chainlink=Cotta di maglia
Chair=Sedia
Coal Stone Tile=Mattonella di pietra di carbone
Cobweb=Ragnatela
Cushion=Cuscino
Cushion Block=Blocco di cuscini
Desert Stone Tile=Mattonella di pietra del deserto
Empty Shelf=Mensola vuota
Ender Chest=Baule ender
Garden Stone Path=Sentiero da giardino in pietra
Half Wooden Cabinet=Stipo di legno a metà
Hardened Clay=Argilla indurita
Iron Light Box=Scatola luminosa di ferro
Ivy=Edera
Japanese Door=Porta giapponese
Lantern=Lanterna
Moon Brick=Mattone lunare
Multi Shelf=Mensole
Packed Ice=Ghiaccio compatto
Painting=Dipinto
Potted Geranium=Geranio in vaso
Potted Rose=Rosa in vaso
Potted Tulip=Tulipano in vaso
Potted Viola=Violetta in vaso
Potted White Dandelion=Soffione bianco in vaso
Potted Yellow Dandelion=Soffione giallo in vaso
Prison Door=Porta di prigione
Red Curtain=Tenda rossa
Runestone=Pietra runica
Rusty Iron Bars=Sbarre di prigione arrugginite
Rusty Prison Door=Porta di prigione arrugginita
Screen Door=Porta a schermo
Slide Door=Porta scorrevole
Stone Tile=Mattonella di pietra
Table=Tavolo
Tatami=Tatami
Television=Televisione
Trampoline=Trampolino
Wood Frame=Cornice in legno
Wood Framed Glass=Cornice in legno con vetro
Wooden Cabinet=Stipo di legno
Wooden Light Box=Mattonella luminosa di legno
Wooden Tile=Mattonella di legno
Woodglass Door=Porta di vetro
### rope.lua ###
Rope=Corda
### workbench.lua ###
Back=Indietro
Crafting=Fabbricare
Cut=Tagliare
Hammer=Martello
Repair=Riparare
Storage=Conservare
Work Bench=Banco da lavoro

View File

@ -1,5 +0,0 @@
name = xdecor
description = A decoration mod meant to be simple and well-featured.
depends = lzr_sounds
optional_depends = doors, stairs, xpanes
min_minetest_version = 5.1.0

View File

@ -1,16 +0,0 @@
local S = minetest.get_translator("xdecor")
-- Minimal rope
xdecor.register("rope", {
description = S("Rope"),
drawtype = "plantlike",
walkable = false,
climbable = true,
groups = {breakable=1},
tiles = {"xdecor_rope.png"},
inventory_image = "xdecor_rope_inv.png",
wield_image = "xdecor_rope_inv.png",
selection_box = xdecor.pixelbox(8, {{3, 0, 3, 2, 8, 2}}),
})