forked from nalc/homedecor_modpack
		
	use unified dyes' rotation correction functions
This commit is contained in:
		| @@ -51,7 +51,7 @@ homedecor.register("bed_regular", { | |||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) | 	after_place_node = function(pos, placer, itemstack, pointed_thing) | ||||||
| 		homedecor.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | ||||||
| 		if not placer:get_player_control().sneak then | 		if not placer:get_player_control().sneak then | ||||||
| 			return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) | 			return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) | ||||||
| 		end | 		end | ||||||
| @@ -123,7 +123,7 @@ homedecor.register("bed_kingsize", { | |||||||
| 	node_box = kbed_cbox, | 	node_box = kbed_cbox, | ||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | ||||||
| 		local inv = digger:get_inventory() | 		local inv = digger:get_inventory() | ||||||
| 		if digger:get_player_control().sneak and inv:room_for_item("main", "bed_regular 1") then | 		if digger:get_player_control().sneak and inv:room_for_item("main", "bed_regular 1") then | ||||||
|   | |||||||
| @@ -83,7 +83,7 @@ homedecor.register("book", { | |||||||
| 		if not homedecor.expect_infinite_stacks then | 		if not homedecor.expect_infinite_stacks then | ||||||
| 			itemstack:take_item() | 			itemstack:take_item() | ||||||
| 		end | 		end | ||||||
| 		homedecor.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | ||||||
| 		return itemstack | 		return itemstack | ||||||
| 	end, | 	end, | ||||||
| 	on_dig = book_dig, | 	on_dig = book_dig, | ||||||
| @@ -105,7 +105,7 @@ homedecor.register("book_open", { | |||||||
| 	walkable = false, | 	walkable = false, | ||||||
| 	paramtype2 = "colorwallmounted", | 	paramtype2 = "colorwallmounted", | ||||||
| 	palette = "unifieddyes_palette_colorwallmounted.png", | 	palette = "unifieddyes_palette_colorwallmounted.png", | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	on_dig = book_dig, | 	on_dig = book_dig, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
|   | |||||||
| @@ -58,7 +58,7 @@ homedecor.register("kitchen_chair_wood", { | |||||||
| 	collision_box = kc_cbox, | 	collision_box = kc_cbox, | ||||||
| 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, | 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, | ||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		pos.y = pos.y+0 -- where do I put my ass ? | 		pos.y = pos.y+0 -- where do I put my ass ? | ||||||
| 		homedecor.sit(pos, node, clicker) | 		homedecor.sit(pos, node, clicker) | ||||||
| @@ -80,7 +80,7 @@ homedecor.register("kitchen_chair_padded", { | |||||||
| 	collision_box = kc_cbox, | 	collision_box = kc_cbox, | ||||||
| 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, | 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1}, | ||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		pos.y = pos.y+0 -- where do I put my ass ? | 		pos.y = pos.y+0 -- where do I put my ass ? | ||||||
| @@ -103,7 +103,7 @@ homedecor.register("armchair", { | |||||||
| 	groups = {snappy=3, ud_param2_colorable = 1}, | 	groups = {snappy=3, ud_param2_colorable = 1}, | ||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	node_box = ac_cbox, | 	node_box = ac_cbox, | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| }) | }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -61,35 +61,6 @@ function homedecor.find_ceiling(itemstack, placer, pointed_thing) | |||||||
| 	return isceiling, pos | 	return isceiling, pos | ||||||
| end | end | ||||||
|  |  | ||||||
| -- call this function to reset the rotation of a "wallmounted" object on place |  | ||||||
|  |  | ||||||
| function homedecor.fix_rotation(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	local node = minetest.get_node(pos) |  | ||||||
| 	local yaw = placer:get_look_yaw() |  | ||||||
| 	local dir = minetest.yaw_to_dir(yaw-1.5) |  | ||||||
| 	local pitch = placer:get_look_vertical() |  | ||||||
|  |  | ||||||
| 	local fdir = minetest.dir_to_wallmounted(dir) |  | ||||||
|  |  | ||||||
| 	if pitch < -(math.pi/4) then |  | ||||||
| 		fdir = 0 |  | ||||||
| 	elseif pitch > math.pi/4 then |  | ||||||
| 		fdir = 1 |  | ||||||
| 	end |  | ||||||
| 	minetest.swap_node(pos, { name = node.name, param2 = fdir }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- use this when you have a "wallmounted" node that should never be oriented |  | ||||||
| -- to floor or ceiling (e.g. a desk lamp) |  | ||||||
|  |  | ||||||
| function homedecor.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	local node = minetest.get_node(pos) |  | ||||||
| 	local yaw = placer:get_look_yaw() |  | ||||||
| 	local dir = minetest.yaw_to_dir(yaw) |  | ||||||
| 	local fdir = minetest.dir_to_wallmounted(dir) |  | ||||||
| 	minetest.swap_node(pos, { name = node.name, param2 = fdir }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| screwdriver = screwdriver or {} | screwdriver = screwdriver or {} | ||||||
|  |  | ||||||
| homedecor.plain_wood    = { name = "homedecor_generic_wood_plain.png",  color = 0xffa76820 } | homedecor.plain_wood    = { name = "homedecor_generic_wood_plain.png",  color = 0xffa76820 } | ||||||
|   | |||||||
| @@ -35,7 +35,7 @@ minetest.register_node("homedecor:glowlight_half", { | |||||||
| 	groups = { snappy = 3, ud_param2_colorable = 1 }, | 	groups = { snappy = 3, ud_param2_colorable = 1 }, | ||||||
| 	light_source = default.LIGHT_MAX, | 	light_source = default.LIGHT_MAX, | ||||||
| 	sounds = default.node_sound_glass_defaults(), | 	sounds = default.node_sound_glass_defaults(), | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node | 	after_dig_node = unifieddyes.after_dig_node | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -63,7 +63,7 @@ minetest.register_node("homedecor:glowlight_quarter", { | |||||||
| 	groups = { snappy = 3, ud_param2_colorable = 1 }, | 	groups = { snappy = 3, ud_param2_colorable = 1 }, | ||||||
| 	light_source = default.LIGHT_MAX-1, | 	light_source = default.LIGHT_MAX-1, | ||||||
| 	sounds = default.node_sound_glass_defaults(), | 	sounds = default.node_sound_glass_defaults(), | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node | 	after_dig_node = unifieddyes.after_dig_node | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -91,7 +91,7 @@ minetest.register_node("homedecor:glowlight_small_cube", { | |||||||
| 	groups = { snappy = 3, ud_param2_colorable = 1 }, | 	groups = { snappy = 3, ud_param2_colorable = 1 }, | ||||||
| 	light_source = default.LIGHT_MAX-1, | 	light_source = default.LIGHT_MAX-1, | ||||||
| 	sounds = default.node_sound_glass_defaults(), | 	sounds = default.node_sound_glass_defaults(), | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node | 	after_dig_node = unifieddyes.after_dig_node | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -493,7 +493,7 @@ homedecor.register("desk_lamp", { | |||||||
| 	node_box = dlamp_cbox, | 	node_box = dlamp_cbox, | ||||||
| 	walkable = false, | 	walkable = false, | ||||||
| 	groups = {snappy=3, ud_param2_colorable = 1}, | 	groups = {snappy=3, ud_param2_colorable = 1}, | ||||||
| 	after_place_node = homedecor.fix_rotation_nsew, | 	after_place_node = unifieddyes.fix_rotation_nsew, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node | 	after_dig_node = unifieddyes.after_dig_node | ||||||
| }) | }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ homedecor.register("shutter", { | |||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	selection_box = shutter_cbox, | 	selection_box = shutter_cbox, | ||||||
| 	node_box = shutter_cbox, | 	node_box = shutter_cbox, | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node | 	after_dig_node = unifieddyes.after_dig_node | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -54,7 +54,7 @@ homedecor.register("shutter_colored", { | |||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	selection_box = shutter_cbox, | 	selection_box = shutter_cbox, | ||||||
| 	node_box = shutter_cbox, | 	node_box = shutter_cbox, | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	drop = "homedecor:shutter" | 	drop = "homedecor:shutter" | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -113,7 +113,7 @@ minetest.register_node("homedecor:curtain_closed", { | |||||||
| 	palette = "unifieddyes_palette_colorwallmounted.png", | 	palette = "unifieddyes_palette_colorwallmounted.png", | ||||||
| 	selection_box = { type = "wallmounted" }, | 	selection_box = { type = "wallmounted" }, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) | 		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) | ||||||
| 		if string.find(topnode.name, "homedecor:curtainrod") then | 		if string.find(topnode.name, "homedecor:curtainrod") then | ||||||
| @@ -139,7 +139,7 @@ minetest.register_node("homedecor:curtain_open", { | |||||||
| 	palette = "unifieddyes_palette_colorwallmounted.png", | 	palette = "unifieddyes_palette_colorwallmounted.png", | ||||||
| 	selection_box = { type = "wallmounted" }, | 	selection_box = { type = "wallmounted" }, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	after_place_node = homedecor.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) | 		local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) | ||||||
| 		if string.find(topnode.name, "homedecor:curtainrod") then | 		if string.find(topnode.name, "homedecor:curtainrod") then | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ minetest.register_node("lrfurn:armchair", { | |||||||
| 	groups = {snappy=3, ud_param2_colorable = 1}, | 	groups = {snappy=3, ud_param2_colorable = 1}, | ||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	node_box = armchair_cbox, | 	node_box = armchair_cbox, | ||||||
| 	after_place_node = lrfurn.fix_rotation, | 	after_place_node = unifieddyes.fix_rotation, | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, | 	after_dig_node = unifieddyes.after_dig_node, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		if not clicker:is_player() then | 		if not clicker:is_player() then | ||||||
|   | |||||||
| @@ -58,15 +58,6 @@ function lrfurn.check_forward(pos, fdir, long, placer) | |||||||
| 	return true | 	return true | ||||||
| end | end | ||||||
|  |  | ||||||
| function lrfurn.fix_rotation(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	local node = minetest.get_node(pos) |  | ||||||
| 	local yaw = placer:get_look_yaw() |  | ||||||
| 	local dir = minetest.yaw_to_dir(yaw) |  | ||||||
| 	local fdir = minetest.dir_to_wallmounted(dir) |  | ||||||
|  |  | ||||||
| 	minetest.swap_node(pos, { name = node.name, param2 = fdir }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| dofile(minetest.get_modpath("lrfurn").."/longsofas.lua") | dofile(minetest.get_modpath("lrfurn").."/longsofas.lua") | ||||||
| dofile(minetest.get_modpath("lrfurn").."/sofas.lua") | dofile(minetest.get_modpath("lrfurn").."/sofas.lua") | ||||||
| dofile(minetest.get_modpath("lrfurn").."/armchairs.lua") | dofile(minetest.get_modpath("lrfurn").."/armchairs.lua") | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ minetest.register_node("lrfurn:longsofa", { | |||||||
| 	node_box = longsofa_cbox, | 	node_box = longsofa_cbox, | ||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) | 	after_place_node = function(pos, placer, itemstack, pointed_thing) | ||||||
| 		lrfurn.fix_rotation(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) | ||||||
| 		if minetest.is_protected(pos, placer:get_player_name()) then return true end | 		if minetest.is_protected(pos, placer:get_player_name()) then return true end | ||||||
|  |  | ||||||
| 		local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) | 		local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ minetest.register_node("lrfurn:sofa", { | |||||||
| 	node_box = sofa_cbox, | 	node_box = sofa_cbox, | ||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) | 	after_place_node = function(pos, placer, itemstack, pointed_thing) | ||||||
| 		lrfurn.fix_rotation(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) | ||||||
| 		if minetest.is_protected(pos, placer:get_player_name()) then return true end | 		if minetest.is_protected(pos, placer:get_player_name()) then return true end | ||||||
|  |  | ||||||
| 		local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) | 		local fdir = minetest.dir_to_facedir(placer:get_look_dir(), false) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user