diff options
author | madmaxoft <github@xoft.cz> | 2013-08-25 17:06:51 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-08-25 17:06:51 +0200 |
commit | 83811b69292bff0ef4b24087a4a4d3e523b0076a (patch) | |
tree | 50bf797896f5df82af4cfcd642759d005c598044 /source/Simulator/RedstoneSimulator.cpp | |
parent | Projectile entities get saved into MCA files (diff) | |
parent | Reduced LeakFinder's stack buffers to half. (diff) | |
download | cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar.gz cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar.bz2 cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar.lz cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar.xz cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.tar.zst cuberite-83811b69292bff0ef4b24087a4a4d3e523b0076a.zip |
Diffstat (limited to 'source/Simulator/RedstoneSimulator.cpp')
-rw-r--r-- | source/Simulator/RedstoneSimulator.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/Simulator/RedstoneSimulator.cpp b/source/Simulator/RedstoneSimulator.cpp index 615e36a49..8526a888e 100644 --- a/source/Simulator/RedstoneSimulator.cpp +++ b/source/Simulator/RedstoneSimulator.cpp @@ -53,6 +53,10 @@ void cRedstoneSimulator::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk } switch (BlockType) { + case E_BLOCK_PISTON: + case E_BLOCK_STICKY_PISTON: + case E_BLOCK_DISPENSER: + case E_BLOCK_DROPPER: case E_BLOCK_REDSTONE_LAMP_OFF: case E_BLOCK_REDSTONE_LAMP_ON: case E_BLOCK_REDSTONE_REPEATER_OFF: @@ -514,6 +518,20 @@ bool cRedstoneSimulator::PowerBlock(const Vector3i & a_BlockPos, const Vector3i break; } + case E_BLOCK_REDSTONE_LAMP_OFF: + { + m_World.FastSetBlock(a_BlockPos.x, a_BlockPos.y, a_BlockPos.z, E_BLOCK_REDSTONE_LAMP_ON, 0); + break; + } + + case E_BLOCK_TNT: + { + m_World.BroadcastSoundEffect("random.fuse", a_BlockPos.x * 8, a_BlockPos.y * 8, a_BlockPos.z * 8, 0.5f, 0.6f); + m_World.SpawnPrimedTNT(a_BlockPos.x + 0.5, a_BlockPos.y + 0.5, a_BlockPos.z + 0.5, 4); // 4 seconds to boom + m_World.SetBlock(a_BlockPos.x, a_BlockPos.y, a_BlockPos.z, E_BLOCK_AIR, 0); + break; + } + default: { if ( @@ -614,6 +632,12 @@ int cRedstoneSimulator::UnPowerBlock(const Vector3i & a_BlockPos, const Vector3i } break; } + + case E_BLOCK_REDSTONE_LAMP_ON: + { + m_World.FastSetBlock(a_BlockPos.x, a_BlockPos.y, a_BlockPos.z, E_BLOCK_REDSTONE_LAMP_OFF, 0); + break; + } default: { |