From 867fc8ee0dbebd3c09a4f7cdcbd5fb4d56f194dc Mon Sep 17 00:00:00 2001 From: faketruth Date: Thu, 1 Mar 2012 15:18:59 +0000 Subject: New redstone simulator. Should work without crashes! git-svn-id: http://mc-server.googlecode.com/svn/trunk@345 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cTorch.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'source/cTorch.h') diff --git a/source/cTorch.h b/source/cTorch.h index 98f8b86e3..6bb2291b2 100644 --- a/source/cTorch.h +++ b/source/cTorch.h @@ -1,5 +1,7 @@ #pragma once +#include "Vector3i.h" + class cTorch //tolua_export { //tolua_export public: @@ -48,4 +50,45 @@ public: return 0x0; } //tolua_export + static bool IsAttachedTo( const Vector3i & a_TorchPos, char a_TorchMeta, const Vector3i & a_BlockPos ) + { + switch( a_TorchMeta ) + { + case 0x0: + case 0x5: // On floor + if( (a_TorchPos - a_BlockPos).Equals( Vector3i(0, 1, 0 ) ) ) + { + return true; + } + break; + case 0x4: // South -Z + if( (a_TorchPos - a_BlockPos).Equals( Vector3i(0, 0, -1 ) ) ) + { + return true; + } + break; + case 0x3: // North +Z + if( (a_TorchPos - a_BlockPos).Equals( Vector3i(0, 0, 1 ) ) ) + { + return true; + } + break; + case 0x2: // West -X + if( (a_TorchPos - a_BlockPos).Equals( Vector3i(-1, 0, 0 ) ) ) + { + return true; + } + break; + case 0x1: // East +X + if( (a_TorchPos - a_BlockPos).Equals( Vector3i( 1, 0, 0 ) ) ) + { + return true; + } + break; + default: + break; + }; + return false; + } + }; //tolua_export \ No newline at end of file -- cgit v1.2.3