diff --git a/mods/xdecor/.gitignore b/mods/xdecor/.gitignore new file mode 100644 index 0000000..ef02689 --- /dev/null +++ b/mods/xdecor/.gitignore @@ -0,0 +1,22 @@ +## 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/* diff --git a/mods/xdecor/.luacheckrc b/mods/xdecor/.luacheckrc new file mode 100644 index 0000000..8cdd8c3 --- /dev/null +++ b/mods/xdecor/.luacheckrc @@ -0,0 +1,14 @@ +allow_defined_top = true + +read_globals = { + "minetest", + "vector", "ItemStack", + "default", + "stairs", "doors", "xpanes", + "xdecor", "xbg", + table = {fields = {"copy"}}, + string = {fields = {"split"}}, + "unpack", + "stairsplus", + "mesecon" +} diff --git a/mods/xdecor/LICENSE b/mods/xdecor/LICENSE new file mode 100644 index 0000000..938b40e --- /dev/null +++ b/mods/xdecor/LICENSE @@ -0,0 +1,41 @@ +┌──────────────────────────────────────────────────────────────────────┐ +│ Copyright (c) 2015-2021 kilbith │ +│ │ +│ Code: BSD │ +│ Textures: WTFPL (credits: Gambit, kilbith, Cisoun) │ +│ Textures (radio, speaker, hanging candle, rooster) by │ +│ gigomaf (CC BY-NC 3.0) │ +│ Sounds: │ +│ - xdecor_boiling_water.ogg - by Audionautics - CC BY-SA │ +│ freesound.org/people/Audionautics/sounds/133901/ │ +│ - xdecor_enchanting.ogg - by Timbre - CC BY-SA-NC │ +│ freesound.org/people/Timbre/sounds/221683/ │ +│ - xdecor_bouncy.ogg - by Blender Foundation - CC BY 3.0 │ +│ opengameart.org/content/funny-comic-cartoon-bounce-sound │ +└──────────────────────────────────────────────────────────────────────┘ + + +Copyright (c) 1998, Regents of the University of California +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +* Neither the name of the University of California, Berkeley nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mods/xdecor/README.md b/mods/xdecor/README.md new file mode 100644 index 0000000..05340a2 --- /dev/null +++ b/mods/xdecor/README.md @@ -0,0 +1,17 @@ +## 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) diff --git a/mods/xdecor/handlers/helpers.lua b/mods/xdecor/handlers/helpers.lua new file mode 100644 index 0000000..dc14b24 --- /dev/null +++ b/mods/xdecor/handlers/helpers.lua @@ -0,0 +1,60 @@ +-- 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 diff --git a/mods/xdecor/handlers/nodeboxes.lua b/mods/xdecor/handlers/nodeboxes.lua new file mode 100644 index 0000000..4a3d8ca --- /dev/null +++ b/mods/xdecor/handlers/nodeboxes.lua @@ -0,0 +1,67 @@ +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) diff --git a/mods/xdecor/handlers/registration.lua b/mods/xdecor/handlers/registration.lua new file mode 100644 index 0000000..7af75eb --- /dev/null +++ b/mods/xdecor/handlers/registration.lua @@ -0,0 +1,137 @@ +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 diff --git a/mods/xdecor/init.lua b/mods/xdecor/init.lua new file mode 100644 index 0000000..7370118 --- /dev/null +++ b/mods/xdecor/init.lua @@ -0,0 +1,23 @@ +--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)) diff --git a/mods/xdecor/locale/template.txt b/mods/xdecor/locale/template.txt new file mode 100644 index 0000000..17e37b4 --- /dev/null +++ b/mods/xdecor/locale/template.txt @@ -0,0 +1,154 @@ +# 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= diff --git a/mods/xdecor/locale/xdecor.de.tr b/mods/xdecor/locale/xdecor.de.tr new file mode 100644 index 0000000..4188623 --- /dev/null +++ b/mods/xdecor/locale/xdecor.de.tr @@ -0,0 +1,152 @@ +# 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 diff --git a/mods/xdecor/locale/xdecor.fr.tr b/mods/xdecor/locale/xdecor.fr.tr new file mode 100644 index 0000000..51b3eea --- /dev/null +++ b/mods/xdecor/locale/xdecor.fr.tr @@ -0,0 +1,154 @@ +# 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!=Quelqu’un d’autre joue les pièces noires ! +Someone else plays white pieces!=Quelqu’un d’autre 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 c’est 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 n’est 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 à l’inté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 d’eau. + +### 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 d’enchantements +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 d’araigné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 l’End +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 diff --git a/mods/xdecor/locale/xdecor.it.tr b/mods/xdecor/locale/xdecor.it.tr new file mode 100644 index 0000000..4007620 --- /dev/null +++ b/mods/xdecor/locale/xdecor.it.tr @@ -0,0 +1,154 @@ +# textdomain: xdecor +# Author: Salvo 'LtWorf' Tomaselli + +### 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 diff --git a/mods/xdecor/mod.conf b/mods/xdecor/mod.conf new file mode 100644 index 0000000..06ec2ed --- /dev/null +++ b/mods/xdecor/mod.conf @@ -0,0 +1,5 @@ +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 diff --git a/mods/xdecor/src/nodes.lua b/mods/xdecor/src/nodes.lua new file mode 100644 index 0000000..c168857 --- /dev/null +++ b/mods/xdecor/src/nodes.lua @@ -0,0 +1,278 @@ +if not minetest.global_exists("screwdriver") then + screwdriver = {} +end +local S = minetest.get_translator("xdecor") + +local function register_pane(name, desc, def) + xpanes.register_pane(name, { + description = desc, + tiles = {"xdecor_" .. name .. ".png"}, + drawtype = "airlike", + paramtype = "light", + textures = {"xdecor_" .. name .. ".png", "" ,"xdecor_" .. name .. ".png"}, + inventory_image = "xdecor_" .. name .. ".png", + wield_image = "xdecor_" .. name .. ".png", + groups = def.groups, + sounds = def.sounds or lzr_sounds.node_sound_defaults(), + recipe = def.recipe + }) +end + +register_pane("rusty_bar", S("Rusty Iron Bars"), { + sounds = lzr_sounds.node_sound_metal_defaults(), + groups = {cracky = 2, pane = 1}, + recipe = { + {"", "default:dirt", ""}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +register_pane("wood_frame", S("Wood Frame"), { + sounds = lzr_sounds.node_sound_wood_defaults(), + groups = {choppy = 2, pane = 1, flammable = 2}, + recipe = { + {"group:wood", "group:stick", "group:wood"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:wood", "group:stick", "group:wood"} + } +}) + +xdecor.register("baricade", { + description = S("Baricade"), + drawtype = "plantlike", + paramtype2 = "facedir", + inventory_image = "xdecor_baricade.png", + tiles = {"xdecor_baricade.png"}, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, +}) + +xdecor.register("barrel", { + description = S("Barrel"), + tiles = {"xdecor_barrel_top.png", "xdecor_barrel_top.png", "xdecor_barrel_sides.png"}, + on_place = minetest.rotate_node, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = lzr_sounds.node_sound_wood_defaults() +}) + +local function register_storage(name, desc, def) + xdecor.register(name, { + description = desc, + tiles = def.tiles, + node_box = def.node_box, + on_rotate = def.on_rotate, + on_place = def.on_place, + groups = def.groups or {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = lzr_sounds.node_sound_wood_defaults(), + use_texture_alpha = def.use_texture_alpha, + }) +end + +register_storage("cabinet", S("Wooden Cabinet"), { + on_rotate = screwdriver.rotate_simple, + tiles = { + "xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png", + "xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png", + "xdecor_cabinet_sides.png", "xdecor_cabinet_front.png" + } +}) + +register_storage("cabinet_half", S("Half Wooden Cabinet"), { + inv_size = 8, + node_box = xdecor.nodebox.slab_y(0.5, 0.5), + on_rotate = screwdriver.rotate_simple, + use_texture_alpha = "clip", + tiles = { + "xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png", + "xdecor_half_cabinet_sides.png", "xdecor_half_cabinet_sides.png", + "xdecor_half_cabinet_sides.png", "xdecor_half_cabinet_front.png" + } +}) + +do + register_storage("empty_shelf", S("Empty Shelf"), { + on_rotate = screwdriver.rotate_simple, + tiles = { + "default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_wood.png^xdecor_empty_shelf.png" + } + }) +end + +register_storage("multishelf", S("Multi Shelf"), { + on_rotate = screwdriver.rotate_simple, + tiles = { + "default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_wood.png^xdecor_multishelf.png" + }, +}) + +xdecor.register("candle", { + description = S("Candle"), + light_source = 12, + drawtype = "torchlike", + inventory_image = "xdecor_candle_inv.png", + wield_image = "xdecor_candle_wield.png", + paramtype2 = "wallmounted", + walkable = false, + groups = {dig_immediate = 3, attached_node = 1}, + tiles = { + { + name = "xdecor_candle_floor.png", + animation = {type="vertical_frames", length = 1.5} + }, + { + name = "xdecor_candle_hanging.png", + animation = {type="vertical_frames", length = 1.5} + }, + { + name = "xdecor_candle_wall.png", + animation = {type="vertical_frames", length = 1.5} + } + }, + selection_box = { + type = "wallmounted", + wall_top = {-0.25, -0.3, -0.25, 0.25, 0.5, 0.25}, + wall_bottom = {-0.25, -0.5, -0.25, 0.25, 0.1, 0.25}, + wall_side = {-0.5, -0.35, -0.15, -0.15, 0.4, 0.15} + } +}) + +xdecor.register("chair", { + description = S("Chair"), + tiles = {"xdecor_wood.png"}, + sounds = lzr_sounds.node_sound_wood_defaults(), + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 2}, + on_rotate = screwdriver.rotate_simple, + node_box = xdecor.pixelbox(16, { + {3, 0, 11, 2, 16, 2}, + {11, 0, 11, 2, 16, 2}, + {5, 9, 11.5, 6, 6, 1}, + {3, 0, 3, 2, 6, 2}, + {11, 0, 3, 2, 6, 2}, + {3, 6, 3, 10, 2, 8} + }), +}) + +xdecor.register("cobweb", { + description = S("Cobweb"), + drawtype = "plantlike", + tiles = {"xdecor_cobweb.png"}, + inventory_image = "xdecor_cobweb.png", + walkable = false, + selection_box = {type = "regular"}, + groups = {snappy = 3, liquid = 3, flammable = 3}, +}) + +xdecor.register("cushion", { + description = S("Cushion"), + tiles = {"xdecor_cushion.png"}, + groups = {snappy = 3, flammable = 3}, + on_place = minetest.rotate_node, + node_box = xdecor.nodebox.slab_y(0.5), + can_dig = xdecor.sit_dig, +}) + +xdecor.register("cushion_block", { + description = S("Cushion Block"), + tiles = {"xdecor_cushion.png"}, + groups = {snappy = 3, flammable = 3, not_in_creative_inventory = 1} +}) + +xdecor.register("lantern", { + description = S("Lantern"), + light_source = 13, + drawtype = "plantlike", + inventory_image = "xdecor_lantern_inv.png", + wield_image = "xdecor_lantern_inv.png", + paramtype2 = "wallmounted", + walkable = false, + groups = {snappy = 3, attached_node = 1}, + tiles = { + { + name = "xdecor_lantern.png", + animation = {type="vertical_frames", length = 1.5} + } + }, + selection_box = xdecor.pixelbox(16, {{4, 0, 4, 8, 16, 8}}) +}) + +local xdecor_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", { + description = desc, + tiles = {"xdecor_" .. l .. "_lightbox.png"}, + groups = {cracky = 3, choppy = 3, oddly_breakable_by_hand = 2}, + light_source = 13, + sounds = lzr_sounds.node_sound_glass_defaults() + }) +end + +local xdecor_potted = { + dandelion_white = S("Potted White Dandelion"), + dandelion_yellow = S("Potted Yellow Dandelion"), + geranium = S("Potted Geranium"), + rose = S("Potted Rose"), + tulip = S("Potted Tulip"), + viola = S("Potted Viola"), +} + +for f, desc in pairs(xdecor_potted) do + xdecor.register("potted_" .. f, { + description = desc, + walkable = false, + groups = {snappy = 3, flammable = 3, plant = 1, flower = 1}, + tiles = {"xdecor_" .. f .. "_pot.png"}, + inventory_image = "xdecor_" .. f .. "_pot.png", + drawtype = "plantlike", + selection_box = xdecor.nodebox.slab_y(0.3) + }) + + minetest.register_craft({ + output = "xdecor:potted_" .. f, + recipe = { + {"default:clay_brick", "flowers:" .. f, "default:clay_brick"}, + {"", "default:clay_brick", ""} + } + }) +end + +local function register_hard_node(name, desc, def) + def = def or {} + xdecor.register(name, { + description = desc, + tiles = {"xdecor_" .. name .. ".png"}, + groups = def.groups or {cracky = 1}, + sounds = def.sounds or lzr_sounds.node_sound_stone_defaults() + }) +end + +register_hard_node("wood_tile", S("Wooden Tile"), { + groups = {choppy = 1, wood = 1, flammable = 2}, + sounds = lzr_sounds.node_sound_wood_defaults() +}) + +xdecor.register("table", { + description = S("Table"), + tiles = {"xdecor_wood.png"}, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = lzr_sounds.node_sound_wood_defaults(), + node_box = xdecor.pixelbox(16, { + {0, 14, 0, 16, 2, 16}, {5.5, 0, 5.5, 5, 14, 6} + }) +}) + +xdecor.register("woodframed_glass", { + description = S("Wood Framed Glass"), + drawtype = "glasslike_framed", + sunlight_propagates = true, + tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"}, + groups = {cracky = 2, oddly_breakable_by_hand = 1}, + sounds = lzr_sounds.node_sound_glass_defaults() +}) + diff --git a/mods/xdecor/src/rope.lua b/mods/xdecor/src/rope.lua new file mode 100644 index 0000000..790520f --- /dev/null +++ b/mods/xdecor/src/rope.lua @@ -0,0 +1,16 @@ +local S = minetest.get_translator("xdecor") + +-- Minimal rope + +xdecor.register("rope", { + description = S("Rope"), + drawtype = "plantlike", + walkable = false, + climbable = true, + groups = {snappy = 3, flammable = 3}, + 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}}), +}) + diff --git a/mods/xdecor/textures/xdecor_baricade.png b/mods/xdecor/textures/xdecor_baricade.png new file mode 100644 index 0000000..87109bb Binary files /dev/null and b/mods/xdecor/textures/xdecor_baricade.png differ diff --git a/mods/xdecor/textures/xdecor_barrel_sides.png b/mods/xdecor/textures/xdecor_barrel_sides.png new file mode 100644 index 0000000..4172b81 Binary files /dev/null and b/mods/xdecor/textures/xdecor_barrel_sides.png differ diff --git a/mods/xdecor/textures/xdecor_barrel_top.png b/mods/xdecor/textures/xdecor_barrel_top.png new file mode 100644 index 0000000..014b00a Binary files /dev/null and b/mods/xdecor/textures/xdecor_barrel_top.png differ diff --git a/mods/xdecor/textures/xdecor_cabinet_front.png b/mods/xdecor/textures/xdecor_cabinet_front.png new file mode 100644 index 0000000..6380968 Binary files /dev/null and b/mods/xdecor/textures/xdecor_cabinet_front.png differ diff --git a/mods/xdecor/textures/xdecor_cabinet_sides.png b/mods/xdecor/textures/xdecor_cabinet_sides.png new file mode 100644 index 0000000..32ab257 Binary files /dev/null and b/mods/xdecor/textures/xdecor_cabinet_sides.png differ diff --git a/mods/xdecor/textures/xdecor_candle_floor.png b/mods/xdecor/textures/xdecor_candle_floor.png new file mode 100644 index 0000000..c1bc4e3 Binary files /dev/null and b/mods/xdecor/textures/xdecor_candle_floor.png differ diff --git a/mods/xdecor/textures/xdecor_candle_hanging.png b/mods/xdecor/textures/xdecor_candle_hanging.png new file mode 100644 index 0000000..b8595a7 Binary files /dev/null and b/mods/xdecor/textures/xdecor_candle_hanging.png differ diff --git a/mods/xdecor/textures/xdecor_candle_inv.png b/mods/xdecor/textures/xdecor_candle_inv.png new file mode 100644 index 0000000..90a479e Binary files /dev/null and b/mods/xdecor/textures/xdecor_candle_inv.png differ diff --git a/mods/xdecor/textures/xdecor_candle_wall.png b/mods/xdecor/textures/xdecor_candle_wall.png new file mode 100644 index 0000000..b8a4b50 Binary files /dev/null and b/mods/xdecor/textures/xdecor_candle_wall.png differ diff --git a/mods/xdecor/textures/xdecor_candle_wield.png b/mods/xdecor/textures/xdecor_candle_wield.png new file mode 100644 index 0000000..60bdede Binary files /dev/null and b/mods/xdecor/textures/xdecor_candle_wield.png differ diff --git a/mods/xdecor/textures/xdecor_chainlink.png b/mods/xdecor/textures/xdecor_chainlink.png new file mode 100644 index 0000000..1aba3c0 Binary files /dev/null and b/mods/xdecor/textures/xdecor_chainlink.png differ diff --git a/mods/xdecor/textures/xdecor_cobweb.png b/mods/xdecor/textures/xdecor_cobweb.png new file mode 100644 index 0000000..bb1ecea Binary files /dev/null and b/mods/xdecor/textures/xdecor_cobweb.png differ diff --git a/mods/xdecor/textures/xdecor_cushion.png b/mods/xdecor/textures/xdecor_cushion.png new file mode 100644 index 0000000..ad4674c Binary files /dev/null and b/mods/xdecor/textures/xdecor_cushion.png differ diff --git a/mods/xdecor/textures/xdecor_dandelion_white_pot.png b/mods/xdecor/textures/xdecor_dandelion_white_pot.png new file mode 100644 index 0000000..ccb91ee Binary files /dev/null and b/mods/xdecor/textures/xdecor_dandelion_white_pot.png differ diff --git a/mods/xdecor/textures/xdecor_dandelion_yellow_pot.png b/mods/xdecor/textures/xdecor_dandelion_yellow_pot.png new file mode 100644 index 0000000..f303475 Binary files /dev/null and b/mods/xdecor/textures/xdecor_dandelion_yellow_pot.png differ diff --git a/mods/xdecor/textures/xdecor_empty_shelf.png b/mods/xdecor/textures/xdecor_empty_shelf.png new file mode 100644 index 0000000..a8363c0 Binary files /dev/null and b/mods/xdecor/textures/xdecor_empty_shelf.png differ diff --git a/mods/xdecor/textures/xdecor_geranium_pot.png b/mods/xdecor/textures/xdecor_geranium_pot.png new file mode 100644 index 0000000..0a68204 Binary files /dev/null and b/mods/xdecor/textures/xdecor_geranium_pot.png differ diff --git a/mods/xdecor/textures/xdecor_half_cabinet_front.png b/mods/xdecor/textures/xdecor_half_cabinet_front.png new file mode 100644 index 0000000..ea9c389 Binary files /dev/null and b/mods/xdecor/textures/xdecor_half_cabinet_front.png differ diff --git a/mods/xdecor/textures/xdecor_half_cabinet_sides.png b/mods/xdecor/textures/xdecor_half_cabinet_sides.png new file mode 100644 index 0000000..6f274b8 Binary files /dev/null and b/mods/xdecor/textures/xdecor_half_cabinet_sides.png differ diff --git a/mods/xdecor/textures/xdecor_iron_lightbox.png b/mods/xdecor/textures/xdecor_iron_lightbox.png new file mode 100644 index 0000000..45146f9 Binary files /dev/null and b/mods/xdecor/textures/xdecor_iron_lightbox.png differ diff --git a/mods/xdecor/textures/xdecor_lantern.png b/mods/xdecor/textures/xdecor_lantern.png new file mode 100644 index 0000000..18c9ce2 Binary files /dev/null and b/mods/xdecor/textures/xdecor_lantern.png differ diff --git a/mods/xdecor/textures/xdecor_lantern_inv.png b/mods/xdecor/textures/xdecor_lantern_inv.png new file mode 100644 index 0000000..71cef66 Binary files /dev/null and b/mods/xdecor/textures/xdecor_lantern_inv.png differ diff --git a/mods/xdecor/textures/xdecor_multishelf.png b/mods/xdecor/textures/xdecor_multishelf.png new file mode 100644 index 0000000..0a5e10e Binary files /dev/null and b/mods/xdecor/textures/xdecor_multishelf.png differ diff --git a/mods/xdecor/textures/xdecor_rope.png b/mods/xdecor/textures/xdecor_rope.png new file mode 100644 index 0000000..bcfaba2 Binary files /dev/null and b/mods/xdecor/textures/xdecor_rope.png differ diff --git a/mods/xdecor/textures/xdecor_rope_inv.png b/mods/xdecor/textures/xdecor_rope_inv.png new file mode 100644 index 0000000..51a24a8 Binary files /dev/null and b/mods/xdecor/textures/xdecor_rope_inv.png differ diff --git a/mods/xdecor/textures/xdecor_rope_wield.png b/mods/xdecor/textures/xdecor_rope_wield.png new file mode 100644 index 0000000..3ca8fef Binary files /dev/null and b/mods/xdecor/textures/xdecor_rope_wield.png differ diff --git a/mods/xdecor/textures/xdecor_rose_pot.png b/mods/xdecor/textures/xdecor_rose_pot.png new file mode 100644 index 0000000..12923ac Binary files /dev/null and b/mods/xdecor/textures/xdecor_rose_pot.png differ diff --git a/mods/xdecor/textures/xdecor_rusty_bar.png b/mods/xdecor/textures/xdecor_rusty_bar.png new file mode 100644 index 0000000..d2d5866 Binary files /dev/null and b/mods/xdecor/textures/xdecor_rusty_bar.png differ diff --git a/mods/xdecor/textures/xdecor_tulip_pot.png b/mods/xdecor/textures/xdecor_tulip_pot.png new file mode 100644 index 0000000..d339ef6 Binary files /dev/null and b/mods/xdecor/textures/xdecor_tulip_pot.png differ diff --git a/mods/xdecor/textures/xdecor_viola_pot.png b/mods/xdecor/textures/xdecor_viola_pot.png new file mode 100644 index 0000000..7549c4c Binary files /dev/null and b/mods/xdecor/textures/xdecor_viola_pot.png differ diff --git a/mods/xdecor/textures/xdecor_wood.png b/mods/xdecor/textures/xdecor_wood.png new file mode 100644 index 0000000..426e5bf Binary files /dev/null and b/mods/xdecor/textures/xdecor_wood.png differ diff --git a/mods/xdecor/textures/xdecor_wood_frame.png b/mods/xdecor/textures/xdecor_wood_frame.png new file mode 100644 index 0000000..f528f5a Binary files /dev/null and b/mods/xdecor/textures/xdecor_wood_frame.png differ diff --git a/mods/xdecor/textures/xdecor_wood_tile.png b/mods/xdecor/textures/xdecor_wood_tile.png new file mode 100644 index 0000000..272df2c Binary files /dev/null and b/mods/xdecor/textures/xdecor_wood_tile.png differ diff --git a/mods/xdecor/textures/xdecor_wooden2_lightbox.png b/mods/xdecor/textures/xdecor_wooden2_lightbox.png new file mode 100644 index 0000000..a53ad96 Binary files /dev/null and b/mods/xdecor/textures/xdecor_wooden2_lightbox.png differ diff --git a/mods/xdecor/textures/xdecor_wooden_lightbox.png b/mods/xdecor/textures/xdecor_wooden_lightbox.png new file mode 100644 index 0000000..c5a6b52 Binary files /dev/null and b/mods/xdecor/textures/xdecor_wooden_lightbox.png differ diff --git a/mods/xdecor/textures/xdecor_woodframed_glass.png b/mods/xdecor/textures/xdecor_woodframed_glass.png new file mode 100644 index 0000000..9fd6ea8 Binary files /dev/null and b/mods/xdecor/textures/xdecor_woodframed_glass.png differ diff --git a/mods/xdecor/textures/xdecor_woodframed_glass_detail.png b/mods/xdecor/textures/xdecor_woodframed_glass_detail.png new file mode 100644 index 0000000..9b5d141 Binary files /dev/null and b/mods/xdecor/textures/xdecor_woodframed_glass_detail.png differ