diff options
author | Aiden Neill <aidenneill@gmail.com> | 2020-12-19 02:42:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-19 02:42:34 +0100 |
commit | a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876 (patch) | |
tree | 926f6dbc58ba7decf902d4f86bc72690e30337a3 /src/Blocks/BlockDaylightSensor.h | |
parent | Added dimension check to nether portal (#5068) (diff) | |
download | cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar.gz cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar.bz2 cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar.lz cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar.xz cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.tar.zst cuberite-a7e9f88ff3dba3b99b58d2bf9ed2350e6154d876.zip |
Diffstat (limited to 'src/Blocks/BlockDaylightSensor.h')
-rw-r--r-- | src/Blocks/BlockDaylightSensor.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/Blocks/BlockDaylightSensor.h b/src/Blocks/BlockDaylightSensor.h new file mode 100644 index 000000000..3c8cfd0eb --- /dev/null +++ b/src/Blocks/BlockDaylightSensor.h @@ -0,0 +1,54 @@ + +#pragma once + +#include "BlockHandler.h" + + + + + +class cBlockDaylightSensorHandler final : + public cBlockHandler +{ + using Super = cBlockHandler; + +public: + + using Super::Super; + +private: + + virtual bool OnUse( + cChunkInterface & a_ChunkInterface, + cWorldInterface & a_WorldInterface, + cPlayer & a_Player, + const Vector3i a_BlockPos, + eBlockFace a_BlockFace, + const Vector3i a_CursorPos + ) const override + { + if (a_ChunkInterface.GetBlock(a_BlockPos) == E_BLOCK_DAYLIGHT_SENSOR) + { + a_ChunkInterface.SetBlock(a_BlockPos, E_BLOCK_INVERTED_DAYLIGHT_SENSOR, 0); + } + else + { + a_ChunkInterface.SetBlock(a_BlockPos, E_BLOCK_DAYLIGHT_SENSOR, 0); + } + + return true; + } + + + virtual cItems ConvertToPickups(NIBBLETYPE a_BlockMeta, const cEntity * a_Digger, const cItem * a_Tool) const override + { + // Always drop the regular daylight sensor: + return { E_BLOCK_DAYLIGHT_SENSOR }; + } + + + virtual bool IsUseable(void) const override + { + return true; + } +}; |