From ede56a5750a1880107589076a67ba68b78608427 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Thu, 16 Apr 2020 22:27:04 +0100 Subject: =?UTF-8?q?=E0=B2=A0=5F=E0=B2=A0=20(#4660)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + Provisional handling for observers --- src/Blocks/BlockObserver.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/Blocks/BlockObserver.h') diff --git a/src/Blocks/BlockObserver.h b/src/Blocks/BlockObserver.h index 30c19ba2e..78a4c05b2 100644 --- a/src/Blocks/BlockObserver.h +++ b/src/Blocks/BlockObserver.h @@ -16,4 +16,27 @@ public: { } + inline static Vector3i GetObservingFaceOffset(NIBBLETYPE a_Meta) + { + return -GetSignalOutputOffset(a_Meta); + } + + inline static Vector3i GetSignalOutputOffset(NIBBLETYPE a_Meta) + { + switch (a_Meta & 0x7) + { + case 0x00: return { 0, 1, 0 }; + case 0x01: return { 0, -1, 0 }; + case 0x02: return { 0, 0, 1 }; + case 0x03: return { 0, 0, -1 }; + case 0x04: return { 1, 0, 0 }; + case 0x05: return { -1, 0, 0 }; + default: + { + LOGWARNING("%s: Unknown metadata: %d", __FUNCTION__, a_Meta); + ASSERT(!"Unknown metadata while determining orientation of observer!"); + return { 0, 0, 0 }; + } + } + } }; -- cgit v1.2.3