MCPcopy Create free account
hub / github.com/cuberite/cuberite / HandleNoteBlock

Method HandleNoteBlock

src/Simulator/IncrementalRedstoneSimulator.cpp:962–998  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

960
961
962void 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

Callers

nothing calls this directly

Calls 1

DoWithNoteBlockAtMethod · 0.45

Tested by

no test coverage detected