diff options
| -rw-r--r-- | README.md | 33 | ||||
| -rw-r--r-- | init.lua | 102 | ||||
| -rw-r--r-- | textures/window_frame_quartered.png | bin | 0 -> 198 bytes | |||
| -rw-r--r-- | textures/window_frame_quartered_diagonal.png | bin | 0 -> 268 bytes | |||
| -rw-r--r-- | textures/window_frame_simple.png | bin | 0 -> 198 bytes | 
5 files changed, 77 insertions, 58 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..2341351 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# SuperImposed [Window] Frames - siframes + +This mod provides a small assortment of window frames that can be added to any xpane-like +glass surface. The object itself is shifted relatively to the placing position, so the result +is both objects sharing the same space, as if the glass is inside the frame. While this isn't +particularly useful with obsidian glass, regular and stained glass types produce the desired +effect. + +So far only wooden frames have been added. Supported mods: default, ethereal, maple. + +Regular square frame (□): + +``` +stick, stick, stick +stick, %wood_planks%, stick +stick, stick, stick +``` + +Quartered square frame (□ + ➕): + +``` +"", stick, "" +stick, %wood_planks%, stick +"", stick, "" +``` + +Diagonally quartered frame (□ + ✕): + +``` +stick, "", stick +"", %wood_planks%, "" +stick, "", stick +```
\ No newline at end of file @@ -1,3 +1,7 @@ +-- This mod provides a selection of window frames from different materials +-- They are used by "snapping" a frame to a glass pane, and the frame is positioned  +-- propely due to model having an offset +  local materials = {  	["wood"] = "default",  	["junglewood"] = "default", @@ -19,35 +23,58 @@ local frametypes = {  	{  		name = "Simple window frame",   		node = "window_frame_simple",  -		model = "si_frame_simple.obj" +		model = "si_frame_simple.obj", +		howto = { +				{"default:stick", "default:stick", "default:stick"}, +				{"default:stick", "%MATERIAL%", "default:stick"}, +				{"default:stick", "default:stick", "default:stick"} +			}        },  	{  		name = "Quartered window frame",   		node = "window_frame_quartered",  -		model = "si_frame_quartered.obj" +		model = "si_frame_quartered.obj", +		howto = { +				{"", "default:stick", ""}, +				{"default:stick", "%MATERIAL%", "default:stick"}, +				{"", "default:stick", ""} +			}        },  	{  		name = "Quartered (diagonal) window frame",   		node = "window_frame_quartered_diagonal",  -		model = "si_frame_quartered_diagonal.obj" +		model = "si_frame_quartered_diagonal.obj", +		howto = { +				{"default:stick", "", "default:stick"}, +				{"", "%MATERIAL%", ""}, +				{"default:stick", "", "default:stick"} +			}        },  }  for material, modname in pairs(materials) do +	  	if minetest.get_modpath(modname) then +		  		local nodedef = minetest.registered_nodes[modname .. ":" .. material] +		  		if nodedef then  			local texture = nodedef.tiles[1]  			if texture then +				  				for _,f in ipairs(frametypes) do -					minetest.register_node ("si_frames:" .. f.node .. "_" .. material, { -						description = f.name, +					local nodename = "si_frames:" .. f.node .. "_" .. material +					 +					minetest.register_node (nodename, { +						description = f.name .. " (" .. material .. ")",  						drawtype = "mesh",  						mesh = f.model,  						tiles = {texture}, +						inventory_image = texture .. "^" .. f.node .. ".png", +						wield_image = texture .. "^" .. f.node .. ".png",  						paramtype = "light",  						paramtype2 = "facedir",  						is_ground_content = false, @@ -60,62 +87,21 @@ for material, modname in pairs(materials) do  									},  						collisionbox = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}},  					}) - +					if f.howto[2][2] == "%MATERIAL%" then +						f.howto[2][2] = modname .. ":" .. material +						minetest.register_craft({ +							output = nodename, +							recipe = f.howto +						}) +						f.howto[2][2] = "%MATERIAL%" +					else +						minetest.log("error", "Wrong recipe template for " .. nodename) +						minetest.log("error", "--> " .. f.howto[2][2]) +					end +  				end  			end  		end  	end  end - ---[[ - -minetest.register_node ("si_frames:window_frame_simple", { -	description = "Simple window frame", -	drawtype = "mesh", -	mesh = "si_frame_simple.obj", -	tiles = {"maple_wood.png"}, -	paramtype2 = "facedir", -	is_ground_content = false, -	groups = {choppy=1, snappy=1, oddly_breakable_by_hand=1 }, -	sounds = default.node_sound_stone_defaults(), -	walkable = false, -	selection_box = { type = "fixed", -				 fixed = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}} -				 }, -	collisionbox = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}}, -}) - -minetest.register_node ("si_frames:window_frame_quartered", { -	description = "Quartered window frame", -	drawtype = "mesh", -	mesh = "si_frame_quartered.obj", -	tiles = {"maple_wood.png"}, -	paramtype2 = "facedir", -	is_ground_content = false, -	groups = {choppy=1, snappy=1, oddly_breakable_by_hand=1 }, -	sounds = default.node_sound_stone_defaults(), -	walkable = false, -	selection_box = { type = "fixed", -				 fixed = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}} -				 }, -	collisionbox = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}}, -}) - -minetest.register_node ("si_frames:window_frame_quartered_diagonal", { -	description = "Quartered (diagonal) window frame", -	drawtype = "mesh", -	mesh = "si_frame_quartered_diagonal.obj", -	tiles = {"maple_wood.png"}, -	paramtype2 = "facedir", -	is_ground_content = false, -	groups = {choppy=1, snappy=1, oddly_breakable_by_hand=1 }, -	sounds = default.node_sound_stone_defaults(), -	walkable = false, -	selection_box = { type = "fixed", -				 fixed = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}} -				 }, -	collisionbox = {{-0.4, -0.45, 0.4, 0.4, 0.4, 0.5}}, -}) -    -]]-- diff --git a/textures/window_frame_quartered.png b/textures/window_frame_quartered.png Binary files differnew file mode 100644 index 0000000..a97bc1e --- /dev/null +++ b/textures/window_frame_quartered.png diff --git a/textures/window_frame_quartered_diagonal.png b/textures/window_frame_quartered_diagonal.png Binary files differnew file mode 100644 index 0000000..64b55f2 --- /dev/null +++ b/textures/window_frame_quartered_diagonal.png diff --git a/textures/window_frame_simple.png b/textures/window_frame_simple.png Binary files differnew file mode 100644 index 0000000..4125225 --- /dev/null +++ b/textures/window_frame_simple.png  | 
