From 94e594547927ae7ef825df1e199367f84c7c297d Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 21 Dec 2021 21:16:12 +0100 Subject: [PATCH] Add mirror dir helper function --- mods/lzr_laser/blocks.lua | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/mods/lzr_laser/blocks.lua b/mods/lzr_laser/blocks.lua index ea8b24b..2df2d9e 100644 --- a/mods/lzr_laser/blocks.lua +++ b/mods/lzr_laser/blocks.lua @@ -1,5 +1,48 @@ local S = minetest.get_translator("lzr_laser") +local mirror_out = { + [0] = {1,0,0}, + [1] = {0,0,-1}, + [2] = {-1,0,0}, + [3] = {0,0,1}, + + [4] = {1,0,0}, + [5] = {0,1,0}, + [6] = {-1,0,0}, + [7] = {0,-1,0}, + + [8] = {1,0,0}, + [9] = {0,-1,0}, + [10] = {-1,0,0}, + [11] = {0,1,0}, + + [12] = {0,-1,0}, + [13] = {0,0,-1}, + [14] = {0,1,0}, + [15] = {0,0,1}, + + [16] = {0,1,0}, + [17] = {0,0,-1}, + [18] = {0,-1,0}, + [19] = {0,0,1}, + + [20] = {-1,0,0}, + [21] = {0,0,-1}, + [22] = {1,0,0}, + [23] = {0,0,1}, +} + +lzr_laser.get_mirror_dirs = function(param2) + local dir_input = minetest.facedir_to_dir(param2) + if not dir_input then + return + end + dir_input = vector.multiply(dir_input, -1) + local dir_output = vector.new(unpack(mirror_out[param2])) + + return dir_input, dir_output +end + minetest.register_node("lzr_laser:mirror", { description = S("Mirror"), paramtype2 = "facedir",