| 960 | |
| 961 | |
| 962 | void cIncrementalRedstoneSimulator::HandleNoteBlock(int a_BlockX, int a_BlockY, int a_BlockZ) |
| 963 | { |
| 964 | bool m_bAreCoordsPowered = AreCoordsPowered(a_BlockX, a_BlockY, a_BlockZ); |
| 965 | |
| 966 | if (m_bAreCoordsPowered) |
| 967 | { |
| 968 | if (!AreCoordsSimulated(a_BlockX, a_BlockY, a_BlockZ, true)) |
| 969 | { |
| 970 | class cSetPowerToNoteBlock : |
| 971 | public cNoteBlockCallback |
| 972 | { |
| 973 | bool m_IsPowered; |
| 974 | public: |
| 975 | cSetPowerToNoteBlock(bool a_IsPowered) : m_IsPowered(a_IsPowered) {} |
| 976 | |
| 977 | virtual bool Item(cNoteEntity * a_NoteBlock) override |
| 978 | { |
| 979 | if (m_IsPowered) |
| 980 | { |
| 981 | a_NoteBlock->MakeSound(); |
| 982 | } |
| 983 | return false; |
| 984 | } |
| 985 | } NoteBlockSP(m_bAreCoordsPowered); |
| 986 | |
| 987 | m_World.DoWithNoteBlockAt(a_BlockX, a_BlockY, a_BlockZ, NoteBlockSP); |
| 988 | SetPlayerToggleableBlockAsSimulated(a_BlockX, a_BlockY, a_BlockZ, true); |
| 989 | } |
| 990 | } |
| 991 | else |
| 992 | { |
| 993 | if (!AreCoordsSimulated(a_BlockX, a_BlockY, a_BlockZ, false)) |
| 994 | { |
| 995 | SetPlayerToggleableBlockAsSimulated(a_BlockX, a_BlockY, a_BlockZ, false); |
| 996 | } |
| 997 | } |
| 998 | } |
| 999 | |
| 1000 | |
| 1001 |
nothing calls this directly
no test coverage detected