diff options
| author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-03-17 16:53:18 -0400 | 
|---|---|---|
| committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-03-17 16:53:18 -0400 | 
| commit | 907e8bf6a64215a516fdf16869dd81248aeaa2f6 (patch) | |
| tree | d199282e5764c7ab5183fe0d78ed0412dbb0b89f /castle_tapestries/init.lua | |
| parent | 06d9243586cecb1abed74550ce2544b436572a35 (diff) | |
| download | dreambuilder_modpack-907e8bf6a64215a516fdf16869dd81248aeaa2f6.tar dreambuilder_modpack-907e8bf6a64215a516fdf16869dd81248aeaa2f6.tar.gz dreambuilder_modpack-907e8bf6a64215a516fdf16869dd81248aeaa2f6.tar.bz2 dreambuilder_modpack-907e8bf6a64215a516fdf16869dd81248aeaa2f6.tar.xz dreambuilder_modpack-907e8bf6a64215a516fdf16869dd81248aeaa2f6.zip  | |
update digilines, technic, unified inventory,
and switched castles to the new modpack form
Diffstat (limited to 'castle_tapestries/init.lua')
| -rw-r--r-- | castle_tapestries/init.lua | 205 | 
1 files changed, 205 insertions, 0 deletions
diff --git a/castle_tapestries/init.lua b/castle_tapestries/init.lua new file mode 100644 index 0000000..03e318d --- /dev/null +++ b/castle_tapestries/init.lua @@ -0,0 +1,205 @@ +-- internationalization boilerplate +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") + +local tapestry = {} + +minetest.register_alias("castle:tapestry_top", "castle_tapestries:tapestry_top") +minetest.register_alias("castle:tapestry", "castle_tapestries:tapestry") +minetest.register_alias("castle:tapestry_long", "castle_tapestries:tapestry_long") +minetest.register_alias("castle:tapestry_very_long", "castle_tapestries:tapestry_very_long") + +minetest.register_node("castle_tapestries:tapestry_top", { +	drawtype = "nodebox", +	description = S("Tapestry Top"), +	tiles = {"default_wood.png"}, +	sunlight_propagates = true, +	groups = {flammable=3,oddly_breakable_by_hand=3}, +	sounds = default.node_sound_defaults(), +	paramtype = "light", +	paramtype2 = "facedir", +	node_box = { +		type = "fixed", +		fixed = { +			{-0.6,-0.5,0.375,0.6,-0.375,0.5}, +		}, +	}, +	selection_box = { +		type = "fixed", +		fixed = { +			{-0.6,-0.5,0.375,0.6,-0.375,0.5}, +		}, +	}, +}) + +minetest.register_craft({ +	type = "shapeless", +	output = 'castle_tapestries:tapestry_top', +	recipe = {'default:stick'}, +}) + +tapestry.colours = { +	"white", +	"grey", +	"black", +	"red", +	"yellow", +	"green", +	"cyan", +	"blue", +	"magenta", +	"orange", +	"violet", +	"dark_grey", +	"dark_green", +	"pink", +	"brown", +} + +-- Regular-length tapestry + +minetest.register_node("castle_tapestries:tapestry", { +	drawtype = "mesh", +	mesh = "castle_tapestry.obj", +	description = S("Tapestry"), +	tiles = {"castle_tapestry.png"}, +	inventory_image = "castle_tapestry_inv.png", +	groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1}, +	sounds = default.node_sound_defaults(), +	paramtype = "light", +	paramtype2 = "colorwallmounted", +	palette = "unifieddyes_palette_colorwallmounted.png", +	selection_box = { +		type = "wallmounted", +		wall_side = {-0.5,-0.5,0.4375,0.5,1.5,0.5}, +	}, +	after_place_node = unifieddyes.fix_rotation_nsew, +	after_dig_node = unifieddyes.after_dig_node, +	on_rotate = unifieddyes.fix_after_screwdriver_nsew +}) + +-- Crafting from wool and a stick + +minetest.register_craft({ +	type = "shapeless", +	output = 'castle_tapestries:tapestry', +	recipe = {'wool:white', 'default:stick'}, +}) + +-- Long tapestry + +minetest.register_node("castle_tapestries:tapestry_long", { +	drawtype = "mesh", +	mesh = "castle_tapestry_long.obj", +	description = S("Tapestry (Long)"), +	tiles = {"castle_tapestry.png"}, +	inventory_image = "castle_tapestry_long_inv.png", +	groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1}, +	sounds = default.node_sound_defaults(), +	paramtype = "light", +	paramtype2 = "colorwallmounted", +	palette = "unifieddyes_palette_colorwallmounted.png", +	selection_box = { +		type = "wallmounted", +		wall_side = {-0.5,-0.5,0.4375,0.5,2.5,0.5}, +	}, +	after_place_node = unifieddyes.fix_rotation_nsew, +	after_dig_node = unifieddyes.after_dig_node, +	on_rotate = unifieddyes.fix_after_screwdriver_nsew +}) + +-- Crafting from normal tapestry and wool + +minetest.register_craft({ +	type = "shapeless", +	output = 'castle_tapestries:tapestry_long', +	recipe = {'wool:white', 'castle_tapestries:tapestry'}, +}) + +-- Very long tapestry + +minetest.register_node("castle_tapestries:tapestry_very_long", { +	drawtype = "mesh", +	mesh = "castle_tapestry_very_long.obj", +	description = S("Tapestry (Very Long)"), +	tiles = {"castle_tapestry.png"}, +	inventory_image = "castle_tapestry_very_long_inv.png", +	groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1}, +	sounds = default.node_sound_defaults(), +	paramtype = "light", +	paramtype2 = "colorwallmounted", +	palette = "unifieddyes_palette_colorwallmounted.png", +	selection_box = { +		type = "wallmounted", +		wall_side = {-0.5,-0.5,0.4375,0.5,3.5,0.5}, +	}, +	after_place_node = unifieddyes.fix_rotation_nsew, +	after_dig_node = unifieddyes.after_dig_node, +	on_rotate = unifieddyes.fix_after_screwdriver_nsew +}) + +-- Crafting from long tapestry and wool + +minetest.register_craft({ +	type = "shapeless", +	output = 'castle_tapestries:tapestry_very_long', +	recipe = {'wool:white', 'castle_tapestries:tapestry_long'}, +}) + +-- Convert static tapestries to param2 color + +local old_static_tapestries = {} + +for _, color in ipairs(tapestry.colours) do +	table.insert(old_static_tapestries, "castle:tapestry_"..color) +	table.insert(old_static_tapestries, "castle:long_tapestry_"..color) +	table.insert(old_static_tapestries, "castle:very_long_tapestry_"..color) +end + +minetest.register_lbm({ +	name = "castle_tapestries:convert_tapestries", +	label = "Convert tapestries to use param2 color", +	run_at_every_load = false, +	nodenames = old_static_tapestries, +	action = function(pos, node) +		local oldname = node.name +		local color = string.sub(oldname, string.find(oldname, "_", -12) + 1) + +		if color == "red" then +			color = "medium_red" +		elseif color == "cyan" then +			color = "medium_cyan" +		elseif color == "blue" then +			color = "medium_blue" +		elseif color == "magenta" then +			color = "medium_magenta" +		end + +		local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") + +		local old_fdir = math.floor(node.param2 % 32) +		local new_fdir = 3 + +		if old_fdir == 0 then +			new_fdir = 3 +		elseif old_fdir == 1 then +			new_fdir = 4 +		elseif old_fdir == 2 then +			new_fdir = 2 +		elseif old_fdir == 3 then +			new_fdir = 5 +		end + +		local param2 = paletteidx + new_fdir +		local newname = "castle_tapestries:tapestry" +		if string.find(oldname, ":long") then +			newname = "castle_tapestries:tapestry_long" +		elseif string.find(oldname, ":very_long") then +			newname = "castle_tapestries:tapestry_very_long" +		end + +		minetest.set_node(pos, { name = newname, param2 = param2 }) +		local meta = minetest.get_meta(pos) +		meta:set_string("dye", "unifieddyes:"..color) +	end +})  | 
