Page 2 of 14

Re: [Mod] X-Decor [git] [xdecor]

Posted: Wed Jul 29, 2015 20:46
by jp
I don't understand the repair functionality of the workbench. Why would anyone craft dozens of hammers to repair a single tool where it would be a lot cheaper to just craft it anew?
I'm not sure it's cheaper for the mese/diamond tools to craft them anew.

But yes, that's a valid point for the weaker tools. I'll try to reduce the hammer's wearing out. Thanks for the feedback.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Wed Jul 29, 2015 22:02
by jp
I just made the hammer a wearable tool instead of a stackable item... Now it's gainful to use it for repairing tools.

If you're still unsatisfied, you can decrease the hammer's wearing factor in the code.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Wed Jul 29, 2015 22:12
by Sane
jp wrote:I just made the hammer a wearable tool instead of a stackable item... Now it's gainful to use it for repairing tools.

If you're still unsatisfied, you can decrease the hammer's wearing factor in the code.
Cool, thanks.
Will try that asap.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Thu Jul 30, 2015 14:44
by Nymue
Hi,
was really happy to find a light and simple decorative mod, but it doesn't want to load for me :/ Everytime i try to activate it, I got a message "ERROR : failed to unable Xdecor-master as it contains disallowed characters. Only characters [a-z0-9] are allowed".
I'm playing on version 0.4.12 , DL from official minetest.net site.
Am I doing something wrong ? I download your mod, unzip it then copy and paste it to the /mods/ directory in minetest.

EDIT : jsut had to remove -master in the directory name :s Works perfectly now, gonna build my dreamhouse ^^

Re: [Mod] X-Decor [git] [xdecor]

Posted: Thu Jul 30, 2015 14:58
by 4aiman
+1 for the mod!

Re: [Mod] X-Decor [git] [xdecor]

Posted: Thu Jul 30, 2015 15:15
by jp
Nymue wrote: Everytime i try to activate it, I got a message "ERROR : failed to unable Xdecor-master as it contains disallowed characters. Only characters [a-z0-9] are allowed".
It's because GitHub (the platform where the source code is hosted) adds the suffix -master after the mod name. Just rename the folder to "xdecor", and there you go ;)

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sat Aug 01, 2015 22:00
by Neuromancer
I really like the the idea of a simplified home decor. However I'm getting attempt to index local 'ndef' a nil value everytime the mod starts. I'm using the .0.4.12 main download on the main site. 64 bit windows.

16:55:22: ERROR[main]: ========== ERROR FROM LUA ===========
16:55:22: ERROR[main]: Failed to load and run script from
16:55:22: ERROR[main]: C:\Games\minetest-0.4.12\bin\..\mods\xdecor\init.lua:
16:55:22: ERROR[main]: C:\Games\minetest-0.4.12\bin\..\mods\xdecor/worktable.lua:142: attempt to index local 'ndef' (a nil value)
16:55:22: ERROR[main]: stack traceback:
16:55:22: ERROR[main]: C:\Games\minetest-0.4.12\bin\..\mods\xdecor/worktable.lua:142: in main chunk
16:55:22: ERROR[main]: [C]: in function 'dofile'
16:55:22: ERROR[main]: C:\Games\minetest-0.4.12\bin\..\mods\xdecor\init.lua:12: in main chunk
16:55:22: ERROR[main]: ======= END OF ERROR FROM LUA ========
16:55:22: ERROR[main]: Server: Failed to load and run C:\Games\minetest-0.4.12\bin\..\mods\xdecor\init.lua
16:55:23: ERROR[main]: ModError: ModError: Failed to load and run C:\Games\minetest-0.4.12\bin\..\mods\xdecor\init.lua

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 02, 2015 00:00
by jp
Fixed, re-check please.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 02, 2015 10:50
by everamzah
For wool, caverealms, xdecor, and more of default
Spoiler

Code: Select all



local material = {
	"default_cloud", -- Only used for the formspec display.
	"default_wood", "default_junglewood", "default_pinewood", "default_acacia_wood",
	"default_tree", "default_jungletree", "default_pinetree", "default_acacia_tree",
	"default_cobble", "default_mossycobble", "default_desert_cobble",
	"default_stone", "default_sandstone", "default_desert_stone", "default_obsidian",
	"default_stonebrick", "default_sandstonebrick", "default_desert_stonebrick", "default_obsidianbrick",
	"default_coalblock", "default_copperblock", "default_bronzeblock",
	"default_goldblock", "default_steelblock", "default_diamondblock",
	"default_clay", "default_ice", "default_meselamp",
	"default_glass", "default_obsidian_glass",
	"default_cactus", "default_sand", "default_desert_sand",
	"default_snowblock", "default_dirt",
	"default_gravel", "default_mese", "default_brick",

	"farming_straw",

	"xdecor_coalstone_tile", "xdecor_moonbrick", "xdecor_stone_rune",
	"xdecor_stone_tile", "xdecor_wood_tile", "xdecor_woodframed_glass",

	"wool_black", "wool_brown", "wool_dark_green", "wool_green",
	"wool_magenta", "wool_pink", "wool_violet", "wool_yellow",
	"wool_blue", "wool_cyan", "wool_dark_grey", "wool_grey",
	"wool_orange", "wool_red", "wool_white",

	"caverealms_glow_crystal", "caverealms_glow_emerald", "caverealms_glow_mese",
	"caverealms_glow_ruby", "caverealms_glow_amethyst", "caverealms_glow_ore",
	"caverealms_glow_emerald_ore", "caverealms_glow_ruby_ore", "caverealms_glow_amethyst_ore",
	"caverealms_thin_ice", "caverealms_salt_crystal", "caverealms_mushroom_cap",
	"caverealms_mushroom_stem", "caverealms_stone_with_salt", "caverealms_hot_cobble",
	"caverealms_glow_obsidian", "caverealms_glow_obsidian_2", "caverealms_coal_dust"
	

}

local def = { -- Node name, yield, nodebox shape.
	{ "nanoslab", "16",
		{-0.5, -0.5, -0.5, 0, -0.4375, 0} },
	{ "micropanel", "16",
		{-0.5, -0.5, -0.5, 0.5, -0.4375, 0} },
	{ "microslab", "8",
		{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5} },
	{ "panel", "4",
		{-0.5, -0.5, -0.5, 0.5, 0, 0} },
	{ "slab", "2",
		{-0.5, -0.5, -0.5, 0.5, 0, 0.5} },
	{ "outerstair", "1", {
		{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
		{-0.5, 0, 0, 0, 0.5, 0.5} } },
	{ "stair", "1", {
		{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
		{-0.5, 0, 0, 0.5, 0.5, 0.5} } },
	{ "innerstair", "1", {
		{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
		{-0.5, 0, 0, 0.5, 0.5, 0.5},
		{-0.5, 0, -0.5, 0, 0.5, 0} } }
}

local function xconstruct(pos)
	local meta = minetest.get_meta(pos)
	local nodebtn = {}

	for i=1, #def do
		nodebtn[#nodebtn+1] = "item_image_button["..(i-1)..
			",0.5;1,1;xdecor:"..def[i][1].."_cloud;"..def[i][1]..";]"
	end
	nodebtn = table.concat(nodebtn)

	meta:set_string("formspec", "size[8,7;]"..xdecor.fancy_gui..
		"label[0,0;Cut your material into...]"..
		nodebtn..
		"label[0,1.5;Input]"..
		"list[current_name;input;0,2;1,1;]"..
		"image[1,2;1,1;xdecor_saw.png]"..
		"label[2,1.5;Output]"..
		"list[current_name;output;2,2;1,1;]"..
		"label[5,1.5;Tool]"..
		"list[current_name;tool;5,2;1,1;]"..
		"image[6,2;1,1;xdecor_anvil.png]"..
		"label[6.8,1.5;Hammer]]"..
		"list[current_name;hammer;7,2;1,1;]"..
		"list[current_player;main;0,3.25;8,4;]")
	meta:set_string("infotext", "Work Table")

	local inv = meta:get_inventory()
	inv:set_size("output", 1)
	inv:set_size("input", 1)
	inv:set_size("tool", 1)
	inv:set_size("hammer", 1)
end

local function xfields(pos, formname, fields, sender)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	local inputstack = inv:get_stack("input", 1)
	local outputstack = inv:get_stack("output", 1)
	local shape, get = {}, {}
	local anz = 0

	for m=1, #material do
	for n=1, #def do
		local v = material[m]
		local w = def[n]

		if (inputstack:get_name() == string.gsub(material[m], "(_)", ":", 1)) and
			(outputstack:get_count() < 99) and fields[w[1]] then
			shape = "xdecor:"..w[1].."_"..string.gsub(v, "default_", "")
			anz = w[2]
			get = shape.." "..anz

			inv:add_item("output", get)
			inputstack:take_item()
			inv:set_stack("input", 1, inputstack)
		end
	end
	end
end

local function xdig(pos, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()

	if not inv:is_empty("input") or not inv:is_empty("output") or not
		inv:is_empty("fuel") or not inv:is_empty("src") then
		return false
	end
	return true
end

local function xput(pos, listname, index, stack, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()

	if listname == "output" then return 0 end
	if listname == "hammer" then
		if stack:get_name() == "xdecor:hammer" then return 1
			else return 0 end
	end
	if listname == "tool" then
		local tname = stack:get_name()
		local tdef = minetest.registered_tools[tname]
		local twear = stack:get_wear()

		if tdef and twear > 0 then return 1
			else return 0 end
	end

	return stack:get_count()
end

xdecor.register("worktable", {
	description = "Work Table",
	groups = {snappy=3},
	sounds = xdecor.wood,
	tiles = {
		"xdecor_worktable_top.png", "xdecor_worktable_top.png",
		"xdecor_worktable_sides.png", "xdecor_worktable_sides.png",
		"xdecor_worktable_front.png", "xdecor_worktable_front.png"
	},
	on_construct = xconstruct,
	on_receive_fields = xfields,
	can_dig = xdig,
	allow_metadata_inventory_put = xput
})

for m=1, #material do
	local v = material[m]
	for n=1, #def do
		local w = def[n]
		local nodename = string.gsub(v, "_", ":", 1) --"default:"..v
		local ndef = minetest.registered_nodes[nodename]

		if ndef then
			xdecor.register(w[1].."_"..string.gsub(v, "default_", ""), { -- Remove default_
				description = string.sub(string.upper(w[1]), 0, 1)..
						string.sub(w[1], 2),
				light_source = ndef.light_source,
				sounds = ndef.sounds,
				tiles = ndef.tiles,
				groups = {snappy=3, not_in_creative_inventory=1},
				node_box = {
					type = "fixed",
					fixed = w[3]
				},
				on_place = minetest.rotate_node
			})
		end
	end
end

minetest.register_abm({
	nodenames = {"xdecor:worktable"},
	interval = 3, chance = 1,
	action = function(pos, node, active_object_count, active_object_count_wider)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		local tool = inv:get_stack("tool", 1)
		local hammer = inv:get_stack("hammer", 1)
		local wear = tool:get_wear()
		local wear2 = hammer:get_wear()

		local repair = -500 -- Tool's repairing factor (higher in negative means greater repairing).
		local wearhammer = 250 -- Hammer's wearing factor (higher in positive means greater wearing).

		if (tool:is_empty() or wear == 0 or wear == 65535) then return end

		if (hammer:is_empty() or hammer:get_name() ~= "xdecor:hammer") then
			return end

		tool:add_wear(repair)
		hammer:add_wear(wearhammer)

		inv:set_stack("tool", 1, tool)
		inv:set_stack("hammer", 1, hammer)
	end
})



Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 02, 2015 16:23
by jp
[Update]
  • Various maintainance and clean-up on the Work Table code.
  • Added an Enchantment Table. You can enchant your tools (axe, pickaxe, shovel) with 2 enchantments : Durable (the tool lasts longer) or Fast (the tool digs faster). Swords and wood/stone tools can't be enchanted. The cost of these enchantments is one mese crystal.
  • Added some Cobblewalls, code by Sokomine for xconnected. This code has been optimized and polished for X-Decor.
The recipes for the enchantment table and the cobblewalls are the sames than in Minecraft.

Enjoy :)

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 02, 2015 16:56
by ExeterDad
Nice JP! We already use X-Decor on our family server. Can't wait to update and see how long it takes the kids to discover there is now enchantments.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 02, 2015 21:32
by everamzah
phew!
Spoiler

Code: Select all

local material = {
	"default_cloud", -- Only used for the formspec display.
	"default_wood", "default_junglewood", "default_pinewood", "default_acacia_wood",
	"default_tree", "default_jungletree", "default_pinetree", "default_acacia_tree",
	"default_cobble", "default_mossycobble", "default_desert_cobble",
	"default_stone", "default_sandstone", "default_desert_stone", "default_obsidian",
	"default_stonebrick", "default_sandstonebrick", "default_desert_stonebrick", "default_obsidianbrick",
	"default_coalblock", "default_copperblock", "default_bronzeblock",
	"default_goldblock", "default_steelblock", "default_diamondblock",
	"default_clay", "default_ice", "default_meselamp",
	"default_glass", "default_obsidian_glass",
	"default_cactus", "default_sand", "default_desert_sand",
	"default_snowblock", "default_dirt",
	"default_gravel", "default_mese", "default_brick",

	"farming_straw",

	"xdecor_coalstone_tile", "xdecor_moonbrick", "xdecor_stone_rune",
	"xdecor_stone_tile", "xdecor_wood_tile", "xdecor_woodframed_glass",

	"wool_black", "wool_brown", "wool_dark_green", "wool_green",
	"wool_magenta", "wool_pink", "wool_violet", "wool_yellow",
	"wool_blue", "wool_cyan", "wool_dark_grey", "wool_grey",
	"wool_orange", "wool_red", "wool_white",

	"caverealms_glow_crystal", "caverealms_glow_emerald", "caverealms_glow_mese",
	"caverealms_glow_ruby", "caverealms_glow_amethyst", "caverealms_glow_ore",
	"caverealms_glow_emerald_ore", "caverealms_glow_ruby_ore", "caverealms_glow_amethyst_ore",
	"caverealms_thin_ice", "caverealms_salt_crystal", "caverealms_mushroom_cap",
	"caverealms_mushroom_stem", "caverealms_stone_with_salt", "caverealms_hot_cobble",
	"caverealms_glow_obsidian", "caverealms_glow_obsidian_2", "caverealms_coal_dust"
	

}

local def = { -- Node name, yield, nodebox shape.
	{ "nanoslab", "16", {-0.5, -0.5, -0.5, 0, -0.4375, 0} },
	{ "micropanel", "16", {-0.5, -0.5, -0.5, 0.5, -0.4375, 0} },
	{ "microslab", "8", {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5} },
	{ "panel", "4", {-0.5, -0.5, -0.5, 0.5, 0, 0} },
	{ "slab", "2", {-0.5, -0.5, -0.5, 0.5, 0, 0.5} },
	{ "outerstair", "1", { {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, {-0.5, 0, 0, 0, 0.5, 0.5} } },
	{ "stair", "1", { {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, {-0.5, 0, 0, 0.5, 0.5, 0.5} } },
	{ "innerstair", "1", { {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, {-0.5, 0, 0, 0.5, 0.5, 0.5}, {-0.5, 0, -0.5, 0, 0.5, 0} } }
}

local function xconstruct(pos)
	local meta = minetest.get_meta(pos)
	local nodebtn = {}

	for i=1, #def do
		nodebtn[#nodebtn+1] = "item_image_button["..(i-1)..
				",0.5;1,1;xdecor:"..def[i][1].."_cloud;"..def[i][1]..";]"
	end
	nodebtn = table.concat(nodebtn)

	meta:set_string("formspec", "size[8,7;]"..xdecor.fancy_gui..
		"label[0,0;Cut your material into...]"..
		nodebtn..
		"label[0,1.5;Input]"..
		"list[current_name;input;0,2;1,1;]"..
		"image[1,2;1,1;xdecor_saw.png]"..
		"label[2,1.5;Output]"..
		"list[current_name;output;2,2;1,1;]"..
		"label[5,1.5;Tool]"..
		"list[current_name;tool;5,2;1,1;]"..
		"image[6,2;1,1;xdecor_anvil.png]"..
		"label[6.8,1.5;Hammer]]"..
		"list[current_name;hammer;7,2;1,1;]"..
		"list[current_player;main;0,3.25;8,4;]")
	meta:set_string("infotext", "Work Table")

	local inv = meta:get_inventory()
	inv:set_size("output", 1)
	inv:set_size("input", 1)
	inv:set_size("tool", 1)
	inv:set_size("hammer", 1)
end

local function xfields(pos, formname, fields, sender)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	local inputstack = inv:get_stack("input", 1)
	local outputstack = inv:get_stack("output", 1)
	local shape, get = {}, {}
	local anz = 0

	for _, d in pairs(def) do
		local nb, anz = d[1], d[2]
		if outputstack:get_count() < 99 and fields[nb] then
			if string.match(inputstack:get_name(), "(default:)") then
				shape = "xdecor:"..nb.."_"..string.gsub(inputstack:get_name(), "(default:)", "")
			else
				shape = "xdecor:"..nb.."_"..string.gsub(inputstack:get_name(), "(:)", "_")
			end
			get = shape.." "..anz

			if not minetest.registered_nodes[shape] then return end
			inv:add_item("output", get)
			inputstack:take_item()
			inv:set_stack("input", 1, inputstack)
		end
	end
end

local function xdig(pos, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()

	if not inv:is_empty("input") or not inv:is_empty("output") or not
			inv:is_empty("fuel") or not inv:is_empty("src") then
		return false
	end
	return true
end

local function xput(pos, listname, index, stack, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	local stackname = stack:get_name()

	if listname == "output" then return 0 end
	if listname == "hammer" then
		if not (stackname == "xdecor:hammer") then return 0 end
	end
	if listname == "tool" then
		local tdef = minetest.registered_tools[stackname]
		local twear = stack:get_wear()

		if not (tdef and twear > 0) then return 0 end
	end

	return stack:get_count()
end

xdecor.register("worktable", {
	description = "Work Table",
	groups = {snappy=3},
	sounds = xdecor.wood,
	tiles = {
		"xdecor_worktable_top.png", "xdecor_worktable_top.png",
		"xdecor_worktable_sides.png", "xdecor_worktable_sides.png",
		"xdecor_worktable_front.png", "xdecor_worktable_front.png"
	},
	on_construct = xconstruct,
	on_receive_fields = xfields,
	can_dig = xdig,
	allow_metadata_inventory_put = xput
})

for _, m in pairs(material) do
        for n=1, #def do
                local w = def[n]
                local nodename = string.gsub(m, "(_)", ":", 1)
                local ndef = minetest.registered_nodes[nodename]
                if not ndef then return end
		local conv = ""
		if string.match(m, "default_") then
			conv = w[1].."_"..string.gsub(m, "(default_)", "")
			print(conv)
		else
			conv = w[1].."_"..m
			print(conv)
		end
                --xdecor.register(w[1].."_"..m, {
		xdecor.register(conv, {
                        description = string.sub(string.upper(m), 0, 1)..string.sub(m, 2).." "..
                                        string.sub(string.upper(w[1]), 0, 1)..string.sub(w[1], 2),
                        light_source = ndef.light_source,
                        sounds = ndef.sounds,
                        tiles = ndef.tiles,
                        groups = {snappy=3, not_in_creative_inventory=1},
                        node_box = {
                                type = "fixed",
                                fixed = w[3]
                        },
                        on_place = minetest.rotate_node
                })
        end
end

minetest.register_abm({
	nodenames = {"xdecor:worktable"},
	interval = 3, chance = 1,
	action = function(pos, node, active_object_count, active_object_count_wider)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		local tool = inv:get_stack("tool", 1)
		local hammer = inv:get_stack("hammer", 1)
		local wear = tool:get_wear()
		local wear2 = hammer:get_wear()

		local repair = -500 -- Tool's repairing factor (higher in negative means greater repairing).
		local wearhammer = 250 -- Hammer's wearing factor (higher in positive means greater wearing).

		if (tool:is_empty() or wear == 0 or wear == 65535) then return end

		if (hammer:is_empty() or hammer:get_name() ~= "xdecor:hammer") then
			return end

		tool:add_wear(repair)
		hammer:add_wear(wearhammer)

		inv:set_stack("tool", 1, tool)
		inv:set_stack("hammer", 1, hammer)
	end
})

Re: [Mod] X-Decor [git] [xdecor]

Posted: Tue Aug 04, 2015 10:34
by 4aiman
Nice to see some nice-looking enchantment table :)

Too bad that formspec textures are going wild once you "compromise" minetest.conf...

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 09, 2015 20:04
by jp
Update : no new toys but I worked on a bunch of small fixes, tweaks and clean-up lastly.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 09, 2015 23:26
by benrob0329
does it have to be "Enchanting"?

Sounds a little too "MC has it, so we should too!" to me...

..and its calling demons to improve your tools....creepy....

Mese is suppose to have come from aliens, couldn't it be something along those lines?

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 09, 2015 23:51
by Napiophelios
Calling it something else doesn't change what it is.
Besides its a mod, not part of the official minetest game (yet)
so it can be whatever the guy wants;
its fkkin pretty cool mod if you ask me.

and from what the youtube tells me,
aliens are synonymous with demons :P

Re: [Mod] X-Decor [git] [xdecor]

Posted: Mon Aug 10, 2015 00:06
by benrob0329
Only if you watch Ancient Aliens...

Anyways, what about "Mesing (mese ing)"?
You would be improving your tools with Mese :-P

Re: [Mod] X-Decor [git] [xdecor]

Posted: Wed Aug 12, 2015 01:44
by everamzah
The license says GPL 3, but the LICENSE file reads Lesser GPL 3. I'm just confused, and wanted to make sure.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Wed Aug 12, 2015 07:31
by jp
Good catch, changed that. Thanks.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sun Aug 16, 2015 12:02
by jp
Update : various minor tweaks and maintainance. Added chain link and new doors.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Mon Aug 17, 2015 15:36
by Minetestforfun
This dorrs are awesome, your textures are better and better, great work again :)

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sat Aug 22, 2015 04:11
by Sokomine
The doors look very nice. But beware - soon you're going to get as much nodes as homedecor ,-)

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sat Aug 22, 2015 07:54
by jp
Sokomine wrote:But beware - soon you're going to get as much nodes as homedecor ,-)
I'm still far from the homedecor's amount (60 nodes vs. 480+ nodes).
Also I try to adapt my mod to the feedbacks (i.e. server admins wanted a little more materials to build with).

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sat Aug 22, 2015 08:04
by Sane
Heaps of kudos!
Love the doors.

Re: [Mod] X-Decor [git] [xdecor]

Posted: Sat Aug 22, 2015 09:33
by TenPlus1
jp, how about trying for single node doors ? that would make a good addition to your mod... Looks 2 high like normal doors but is 1 single node instead...