private void clearJsonOnEvent(object sender, VideoProcessor.TemplateMatchEventArgs e) { switch (e.template.eventType) { case "exit": if (JsonSettings.ClearOnExit) { clearJsonFile(); } break; case "skip": if (JsonSettings.ClearOnSkip) { clearJsonFile(); } break; case "gameover": if (JsonSettings.ClearOnGameover) { clearJsonFile(); } break; } }
private void statsCallback(object sender, VideoProcessor.TemplateMatchEventArgs e) { tracker?.addEvent(e.template.eventType); if (e.template.eventType == "exit") { // TODO: Send to endpoint or append to file? } }
private void warpWorldCallback(object sender, VideoProcessor.TemplateMatchEventArgs e) { if (!Properties.Settings.Default.WarpWorldEnabled) { return; } if (e.template.eventType != "exit") { return; } var latestLevel = tracker.latest("level"); if (latestLevel == null) { log.Debug("[WarpWorld] Latest was null, no update"); return; } if (tracker.latest("clear") != null) { log.Debug("[WarpWorld] Level was already cleared, not sending loss."); return; } Thread.Sleep(20000); var currentLevel = tracker.latest("level"); if (currentLevel == null || currentLevel.time.Ticks == latestLevel.time.Ticks || currentLevel.data != latestLevel.data) { log.Debug("[WarpWorld] Loss"); WarpWorld?.lose(); } else { log.Debug("[WarpWorld] Rejoined level, not sending loss."); } }
private void previewMatch(object sender, VideoProcessor.TemplateMatchEventArgs e) { var boundary = ImageLibrary.ChangeSize(new Rectangle(e.location, e.template.size), processor.TEMPLATE_FRAME_SIZE, processor.frameSize); previewer.SetLastMatch(e.frame, new Rectangle[] { boundary }); }
private void broadcastTemplateMatch(object sender, VideoProcessor.TemplateMatchEventArgs e) { SMMServer.BroadcastEvent(e.template.eventType); }