Merge pull request #3 from VanessaE/master
Many changes, please see commit log :P
							
								
								
									
										16
									
								
								geany_run_script.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,16 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
rm $0
 | 
			
		||||
 | 
			
		||||
lua "init.lua"
 | 
			
		||||
 | 
			
		||||
echo "
 | 
			
		||||
 | 
			
		||||
------------------
 | 
			
		||||
(program exited with code: $?)" 		
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "Press return to continue"
 | 
			
		||||
#to be more compatible with shells like dash
 | 
			
		||||
dummy_var=""
 | 
			
		||||
read dummy_var
 | 
			
		||||
							
								
								
									
										218
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						@@ -25,78 +25,94 @@ changes, and to resurrect the craft recipes. Still GPL'd as far as I'm concerned
 | 
			
		||||
 | 
			
		||||
August 2013 -- rewritten a bit by VanessaEzekowitz to further condense the code.
 | 
			
		||||
 | 
			
		||||
==============================================================================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Recipe for standard colors:
 | 
			
		||||
 | 
			
		||||
dye
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Recipe for pastel colors:
 | 
			
		||||
 | 
			
		||||
light dye
 | 
			
		||||
white paint
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Recipe for faint colors:
 | 
			
		||||
 | 
			
		||||
light dye
 | 
			
		||||
white paint
 | 
			
		||||
white paint
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
super glow glass
 | 
			
		||||
 | 
			
		||||
recipe for low-glow-stained-glass:
 | 
			
		||||
as above, but substitute 'glow glass' for super glow glass.
 | 
			
		||||
 | 
			
		||||
recipe for no-glow-stained-glass:
 | 
			
		||||
as regular stained glass, but substitute plain 'glass' for super glow glass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
All recipes produce three stained glass blocks.
 | 
			
		||||
January 2017 -- rewritten a bit more by Vanessa E. to use engine param2 colorization
 | 
			
		||||
				and place-then-paint creation of colors.  To get the pastel colors,
 | 
			
		||||
				place super glow glass, right-click with dye to color it, then right-
 | 
			
		||||
				click with Moreblocks' "sweeper" to "brush off" some of the color.  Do
 | 
			
		||||
				it again to change pastel to faint.  Right click a pastel or faint with
 | 
			
		||||
				some dye to re-color it (you have to dig and re-place if you want to
 | 
			
		||||
				darken it).  Crafting is no longer used to create the colors.
 | 
			
		||||
 | 
			
		||||
==============================================================================
 | 
			
		||||
]]--
 | 
			
		||||
 | 
			
		||||
function makenode(arg)
 | 
			
		||||
stainedglass = {}
 | 
			
		||||
stainedglass.old_static_nodes = {}
 | 
			
		||||
 | 
			
		||||
local myglow = LIGHT_MAX-3
 | 
			
		||||
 | 
			
		||||
minetest.register_node("stained_glass:stained_glass", {
 | 
			
		||||
	description = "Stained Glass",
 | 
			
		||||
	drawtype = "glasslike",
 | 
			
		||||
	tiles = { "stained_glass.png" },
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "color",
 | 
			
		||||
	palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
	place_param2 = 240,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	use_texture_alpha = true,
 | 
			
		||||
	light_source = myglow,
 | 
			
		||||
	is_ground_content = true,
 | 
			
		||||
	walkable = true,
 | 
			
		||||
	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
	drop = "moreblocks:super_glow_glass",
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	after_place_node = unifieddyes.recolor_on_place,
 | 
			
		||||
	after_dig_node = unifieddyes.after_dig_node,
 | 
			
		||||
	drop = "moreblocks:super_glow_glass"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("moreblocks:super_glow_glass", {
 | 
			
		||||
	palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
	groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3, ud_param2_colorable = 1},
 | 
			
		||||
	ud_replacement_node = "stained_glass:stained_glass",
 | 
			
		||||
	after_place_node = unifieddyes.recolor_on_place
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- trap glass
 | 
			
		||||
 | 
			
		||||
minetest.register_node("stained_glass:stained_trap_glass", {
 | 
			
		||||
	description = "Stained Trap-glass",
 | 
			
		||||
	drawtype = "glasslike",
 | 
			
		||||
	tiles = { "stained_glass.png" },
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	paramtype2 = "color",
 | 
			
		||||
	palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
	place_param2 = 240,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	use_texture_alpha = true,
 | 
			
		||||
	light_source = myglow,
 | 
			
		||||
	is_ground_content = true,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1, ud_param2_colorable = 1},
 | 
			
		||||
	sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
	drop = "moreblocks:trap_super_glow_glass",
 | 
			
		||||
	on_construct = unifieddyes.on_construct,
 | 
			
		||||
	after_place_node = unifieddyes.recolor_on_place,
 | 
			
		||||
	after_dig_node = unifieddyes.after_dig_node,
 | 
			
		||||
	drop = "moreblocks:trap_super_glow_glass"
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.override_item("moreblocks:trap_super_glow_glass", {
 | 
			
		||||
	palette = "unifieddyes_palette_extended.png",
 | 
			
		||||
	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, ud_param2_colorable = 1},
 | 
			
		||||
	ud_replacement_node = "stained_glass:stained_trap_glass",
 | 
			
		||||
	after_place_node = unifieddyes.recolor_on_place
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
function stainedglass.makenode(arg)
 | 
			
		||||
	local name=arg.blockname
 | 
			
		||||
	local myglow=arg.glow
 | 
			
		||||
	local myprefix=arg.prefix
 | 
			
		||||
	local imagename=arg.imagename
 | 
			
		||||
	local safe=arg.walkflag
 | 
			
		||||
	local Description
 | 
			
		||||
 | 
			
		||||
        local function tchelper(first, rest)
 | 
			
		||||
                return first:upper()..rest:lower()
 | 
			
		||||
        end -- from lua-users.org/wiki/StringRecipes
 | 
			
		||||
        -- above function is used to turn red_violet_s50 to 'Red Violet S50'
 | 
			
		||||
	local function tchelper(first, rest)
 | 
			
		||||
			return first:upper()..rest:lower()
 | 
			
		||||
	end -- from lua-users.org/wiki/StringRecipes
 | 
			
		||||
 | 
			
		||||
	--register item attributes
 | 
			
		||||
 | 
			
		||||
        Description=string.gsub("Stained Glass - " ..myprefix..name, "_", " ")
 | 
			
		||||
        Description=Description:gsub("(%a)([%w_']*)", tchelper) 
 | 
			
		||||
 | 
			
		||||
	minetest.register_node("stained_glass:"..myprefix..name, {
 | 
			
		||||
		description = Description,
 | 
			
		||||
		drawtype = "glasslike",
 | 
			
		||||
		tiles = {"stained_glass_" .. imagename .. ".png"},
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		use_texture_alpha = true,
 | 
			
		||||
		light_source = myglow,
 | 
			
		||||
		is_ground_content = true,
 | 
			
		||||
		walkable=safe, -- if not safe, this is trapglass
 | 
			
		||||
		groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1},
 | 
			
		||||
		sounds = default.node_sound_glass_defaults()
 | 
			
		||||
	})
 | 
			
		||||
	table.insert(stainedglass.old_static_nodes, "stained_glass:"..name)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- maybe someday, I can cleanly combine these two functions.
 | 
			
		||||
@@ -148,13 +164,7 @@ function stained_trapglass_define(arg)
 | 
			
		||||
			myrecipe[6] = "dye:white"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			output = "stained_glass:"..myprefix..name.." 3",
 | 
			
		||||
			recipe = myrecipe,
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		makenode{blockname=name, glow=myglow, prefix=myprefix, imagename=imagename, walkflag=false}
 | 
			
		||||
		stainedglass.makenode{blockname=name, glow=myglow, prefix=myprefix, imagename=imagename, walkflag=false}
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@@ -204,13 +214,7 @@ function stained_glass_define(arg)
 | 
			
		||||
			myrecipe[6] = "dye:white"
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			output = "stained_glass:"..myprefix..name.." 3",
 | 
			
		||||
			recipe = myrecipe,
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		makenode{blockname=name, glow=myglow, prefix=myprefix, imagename=name, walkflag=true}
 | 
			
		||||
		stainedglass.makenode{blockname=name, glow=myglow, prefix=myprefix, imagename=name, walkflag=true}
 | 
			
		||||
 | 
			
		||||
		if myprefix == "" then
 | 
			
		||||
			local aliasname
 | 
			
		||||
@@ -287,7 +291,6 @@ for i in ipairs(stained_glass_hues) do
 | 
			
		||||
 | 
			
		||||
 		recipevalue = "group:dye,unicolor_"..shadename..huename
 | 
			
		||||
		if (shadename == "" and stained_glass_hues[i][2]) then
 | 
			
		||||
			-- print(huename .. " is set to true -- substituting dye:huename ")
 | 
			
		||||
			recipevalue = "dye:"..huename
 | 
			
		||||
		elseif (shadename=="pastel_" or shadename=="faint_") then 
 | 
			
		||||
			-- force light_dye for pastel and faint colors
 | 
			
		||||
@@ -351,6 +354,65 @@ for i in ipairs(stained_glass_hues) do
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- convert in-map static nodes to use param2 coloring
 | 
			
		||||
 | 
			
		||||
minetest.register_lbm({
 | 
			
		||||
	name = "stained_glass:convert_glass",
 | 
			
		||||
	label = "Convert static glass blocks to use param2 color",
 | 
			
		||||
	run_at_every_load = false,
 | 
			
		||||
	nodenames = stainedglass.old_static_nodes,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local name = node.name
 | 
			
		||||
 | 
			
		||||
		name = string.gsub(name, "aqua", "spring")
 | 
			
		||||
		name = string.gsub(name, "skyblue", "azure")
 | 
			
		||||
		name = string.gsub(name, "redviolet", "rose")
 | 
			
		||||
 | 
			
		||||
		local n = string.find(name, ":")
 | 
			
		||||
		local color = string.sub(name, n + 1)
 | 
			
		||||
		local h,s,v = unifieddyes.get_hsv(name)
 | 
			
		||||
 | 
			
		||||
		if string.find(name, "trap") then
 | 
			
		||||
			n = string.find(color, "_")
 | 
			
		||||
			color = string.sub(color, n + 1)
 | 
			
		||||
			local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
 | 
			
		||||
			minetest.set_node(pos, { name = "stained_glass:stained_trap_glass", param2 = paletteidx })
 | 
			
		||||
		else
 | 
			
		||||
			local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended")
 | 
			
		||||
			minetest.set_node(pos, { name = "stained_glass:stained_glass", param2 = paletteidx })
 | 
			
		||||
		end
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
		meta:set_string("dye", "unifieddyes:"..v..h..s)
 | 
			
		||||
		meta:set_string("palette", "ext")
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_lbm({
 | 
			
		||||
	name = "stained_glass:recolor_glass",
 | 
			
		||||
	label = "Convert glass to use UD extended palette",
 | 
			
		||||
	run_at_every_load = false,
 | 
			
		||||
	nodenames = {
 | 
			
		||||
		"stained_glass:stained_glass",
 | 
			
		||||
		"stained_glass:stained_trap_glass",
 | 
			
		||||
		"stained_glass:faint_stained_glass",
 | 
			
		||||
		"stained_glass:faint_stained_trap_glass",
 | 
			
		||||
		"stained_glass:pastel_stained_glass",
 | 
			
		||||
		"stained_glass:pastel_stained_trap_glass"
 | 
			
		||||
	},
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local meta = minetest.get_meta(pos)
 | 
			
		||||
		if meta:get_string("palette") ~= "ext" then
 | 
			
		||||
 | 
			
		||||
			local newcolor = unifieddyes.convert_classic_palette[node.param2]
 | 
			
		||||
			if string.find(node.name, "faint") then
 | 
			
		||||
				newcolor = newcolor - 4*24
 | 
			
		||||
			elseif string.find(node.name, "pastel") then
 | 
			
		||||
				newcolor = newcolor - 3*24
 | 
			
		||||
			end
 | 
			
		||||
			minetest.swap_node(pos, { name = "stained_glass:stained_glass", param2 = newcolor })
 | 
			
		||||
			meta:set_string("palette", "ext")
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
print("[stained_glass] Loaded!")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								textures/stained_glass.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 291 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 685 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 680 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 544 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 552 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 544 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 552 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 544 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 585 B  | 
| 
		 Before Width: | Height: | Size: 558 B  | 
| 
		 Before Width: | Height: | Size: 552 B  | 
| 
		 Before Width: | Height: | Size: 515 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 680 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 492 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 485 B  | 
| 
		 Before Width: | Height: | Size: 705 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 638 B  | 
| 
		 Before Width: | Height: | Size: 636 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 642 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 636 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 631 B  | 
| 
		 Before Width: | Height: | Size: 642 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 638 B  | 
| 
		 Before Width: | Height: | Size: 636 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 631 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 631 B  | 
| 
		 Before Width: | Height: | Size: 656 B  | 
| 
		 Before Width: | Height: | Size: 638 B  | 
| 
		 Before Width: | Height: | Size: 642 B  | 
| 
		 Before Width: | Height: | Size: 593 B  | 
| 
		 Before Width: | Height: | Size: 701 B  | 
| 
		 Before Width: | Height: | Size: 685 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  | 
| 
		 Before Width: | Height: | Size: 710 B  |