diff options
author | Mattes D <github@xoft.cz> | 2013-08-20 21:29:16 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2013-08-20 21:29:16 +0200 |
commit | 61e17d23f7c45549473ea8250469d001ae49e6ad (patch) | |
tree | 31fe057313b002bf3f012c90419c83d527561741 | |
parent | Hotfix for #83. (diff) | |
parent | Juggled piston code to prioritise block action (diff) | |
download | cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar.gz cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar.bz2 cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar.lz cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar.xz cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.tar.zst cuberite-61e17d23f7c45549473ea8250469d001ae49e6ad.zip |
-rw-r--r-- | source/BlockID.cpp | 2 | ||||
-rw-r--r-- | source/Blocks/BlockHandler.cpp | 1 | ||||
-rw-r--r-- | source/Piston.cpp | 10 |
3 files changed, 8 insertions, 5 deletions
diff --git a/source/BlockID.cpp b/source/BlockID.cpp index 0345614c5..40664647a 100644 --- a/source/BlockID.cpp +++ b/source/BlockID.cpp @@ -584,6 +584,7 @@ public: // Transparent blocks g_BlockTransparent[E_BLOCK_AIR] = true; + g_BlockTransparent[E_BLOCK_ACTIVATOR_RAIL] = true; g_BlockTransparent[E_BLOCK_BROWN_MUSHROOM] = true; g_BlockTransparent[E_BLOCK_CARROTS] = true; g_BlockTransparent[E_BLOCK_CHEST] = true; @@ -603,6 +604,7 @@ public: g_BlockTransparent[E_BLOCK_NETHER_BRICK_FENCE] = true; g_BlockTransparent[E_BLOCK_POTATOES] = true; g_BlockTransparent[E_BLOCK_POWERED_RAIL] = true; + g_BlockTransparent[E_BLOCK_PISTON_EXTENSION] = true; g_BlockTransparent[E_BLOCK_PUMPKIN_STEM] = true; g_BlockTransparent[E_BLOCK_RAIL] = true; g_BlockTransparent[E_BLOCK_RED_MUSHROOM] = true; diff --git a/source/Blocks/BlockHandler.cpp b/source/Blocks/BlockHandler.cpp index cbca5a4ec..6584eeed4 100644 --- a/source/Blocks/BlockHandler.cpp +++ b/source/Blocks/BlockHandler.cpp @@ -96,6 +96,7 @@ cBlockHandler * cBlockHandler::CreateBlockHandler(BLOCKTYPE a_BlockType) switch(a_BlockType) { // Block handlers, alphabetically sorted: + case E_BLOCK_ACTIVATOR_RAIL: return new cBlockRailHandler (a_BlockType); case E_BLOCK_BED: return new cBlockBedHandler (a_BlockType); case E_BLOCK_BIRCH_WOOD_STAIRS: return new cBlockStairsHandler (a_BlockType); case E_BLOCK_BREWING_STAND: return new cBlockBrewingStandHandler (a_BlockType); diff --git a/source/Piston.cpp b/source/Piston.cpp index 97db3e568..f4244d177 100644 --- a/source/Piston.cpp +++ b/source/Piston.cpp @@ -76,6 +76,9 @@ void cPiston::ExtendPiston(int pistx, int pisty, int pistz) // Already extended, bail out return; } + + m_World->BroadcastBlockAction(pistx, pisty, pistz, 0, pistonMeta, pistonBlock); + m_World->BroadcastSoundEffect("tile.piston.out", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); int dist = FirstPassthroughBlock(pistx, pisty, pistz, pistonMeta); if (dist < 0) @@ -117,9 +120,7 @@ void cPiston::ExtendPiston(int pistx, int pisty, int pistz) AddDir(pistx, pisty, pistz, pistonMeta, -1); // "pist" now at piston body, "ext" at future extension - m_World->BroadcastBlockAction(pistx, pisty, pistz, 0, pistonMeta, pistonBlock); - m_World->BroadcastSoundEffect("tile.piston.out", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); - m_World->FastSetBlock( pistx, pisty, pistz, pistonBlock, pistonMeta | 0x8 ); + m_World->QueueSetBlock( pistx, pisty, pistz, pistonBlock, pistonMeta | 0x8, PISTON_TICK_DELAY); m_World->QueueSetBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, pistonMeta | (IsSticky(pistonBlock) ? 8 : 0), PISTON_TICK_DELAY); } @@ -139,10 +140,9 @@ void cPiston::RetractPiston(int pistx, int pisty, int pistz) } m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock); - m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); + m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); m_World->QueueSetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8), PISTON_TICK_DELAY); - // Check the extension: AddDir(pistx, pisty, pistz, pistonMeta, 1); if (m_World->GetBlock(pistx, pisty, pistz) != E_BLOCK_PISTON_EXTENSION) |