summaryrefslogtreecommitdiffstats
path: root/src/Blocks/BlockObserver.h
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@outlook.com>2020-04-16 23:27:04 +0200
committerGitHub <noreply@github.com>2020-04-16 23:27:04 +0200
commitede56a5750a1880107589076a67ba68b78608427 (patch)
tree19f6d727c59b2103cf97aae70903838c65c6f40b /src/Blocks/BlockObserver.h
parentUsing Super. (diff)
downloadcuberite-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 '')
-rw-r--r--src/Blocks/BlockObserver.h23
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 };
+ }
+ }
+ }
};