}
// Perform routine update events
if (needsUpdate.clear()) {
for (Block signBlock : getActiveSigns()) {
SignAction.executeAll(new SignActionEvent(signBlock, owner), SignActionType.GROUP_UPDATE);
}
for (DetectorRegion region : getActiveDetectorRegions()) {
region.update(owner);
}
// Member updates
for (MinecartMember<?> member : owner) {
BlockTrackerMember tracker = member.getBlockTracker();
if (tracker.needsUpdate.clear()) {
for (Block signBlock : tracker.getActiveSigns()) {
SignAction.executeAll(new SignActionEvent(signBlock, tracker.getOwner()), SignActionType.MEMBER_UPDATE);
}
for (DetectorRegion region : tracker.getActiveDetectorRegions()) {
region.update(tracker.getOwner());
}
}