extends Reference class_name MajorityJudgmentAbstractJudgmentsProvider #class_name MajorityJudgmentAbstractProvider # perhaps this? (short = sweet) # Abstract class for (Judgment) Providers # The job of the children is to emit the judgment_emitted signal. # # Example providers (ideas): # - Test/Demo providers # - Twitch chat commands (like "A3B2C0") # - Youtube Live chat commands (if possible) # - IRC chat commands (low, as a bot would be better) # - Discord, somehow # - Riot, Jami, etc. # - SMS # - Heck, any videoconferencing software with a workable API # # So far, providers don't care about whether the candidate or grade indices # are within correct range ; that work will be done by the listener to the # "judgment_emitted" event, and it will do its best, and ignore bad data. # # See MajorityJudgmentLinearResultsControl.gd, that's where a (the) listener is. signal judgment_emitted( author_identifier, # String, unique per author (aka participant) candidate_index, # int, position in the original array of candidates grade_index # int (0 == REJECT, up to the grading size minus one) ) # Called by the scene managing the poll's lifecycle. # See MajorityJudgmentLinearResultsControl.gd # Meant to be overridden (put your logic here instead of _init) func start_providing(): pass # Meant to be overridden. # In here you can stop your timers, close your network connections, etc. func stop_providing(): pass