diff options
author | Tiger Wang <ziwei.tiger@outlook.com> | 2020-04-16 23:27:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-16 23:27:04 +0200 |
commit | ede56a5750a1880107589076a67ba68b78608427 (patch) | |
tree | 19f6d727c59b2103cf97aae70903838c65c6f40b /src/Blocks/BlockObserver.h | |
parent | Using Super. (diff) | |
download | cuberite-ede56a5750a1880107589076a67ba68b78608427.tar cuberite-ede56a5750a1880107589076a67ba68b78608427.tar.gz cuberite-ede56a5750a1880107589076a67ba68b78608427.tar.bz2 cuberite-ede56a5750a1880107589076a67ba68b78608427.tar.lz cuberite-ede56a5750a1880107589076a67ba68b78608427.tar.xz cuberite-ede56a5750a1880107589076a67ba68b78608427.tar.zst cuberite-ede56a5750a1880107589076a67ba68b78608427.zip |
Diffstat (limited to 'src/Blocks/BlockObserver.h')
-rw-r--r-- | src/Blocks/BlockObserver.h | 23 |
1 files changed, 23 insertions, 0 deletions
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 }; + } + } + } }; |