private static bool SampleClickMap(ClickMap map, Vector2i pos, Vector2i bounds, Vector2i offset) { var(width, height) = bounds; var(px, py) = pos; for (var x = -ClickRadius; x <= ClickRadius; x++) { var ox = px + x; if (ox < 0 || ox >= width) { continue; } for (var y = -ClickRadius; y <= ClickRadius; y++) { var oy = py + y; if (oy < 0 || oy >= height) { continue; } if (map.IsOccluded((ox, oy) + offset)) { return(true); } } } return(false); }
private void OnRawTextureLoaded(TextureLoadedEventArgs obj) { if (obj.Image is Image <Rgba32> rgba) { _textureMaps[obj.Resource] = ClickMap.FromImage(rgba, Threshold); } }
private void OnOnRsiLoaded(RsiLoadedEventArgs obj) { if (obj.Atlas is Image <Rgba32> rgba) { var clickMap = ClickMap.FromImage(rgba, Threshold); var rsiData = new RsiClickMapData(clickMap, obj.AtlasOffsets); _rsiMaps[obj.Resource.RSI] = rsiData; } }
public void MouseDown(MouseButton mb) { var brush = leftBrush; if (mb == MouseButton.Middle) { brush = middleBrush; } if (mb == MouseButton.Right) { brush = rightBrush; } ClickMap.AddPoint(lastPoint, brush); double timeSinceLastClick = (DateTime.Now - lastMouseDownTime).TotalSeconds; if (timeSinceLastClick < 0.5) { Stats.MouseDoubleClicks++; Stats.DoubleClickTime.Add(timeSinceLastClick); DoubleClickMap.AddPoint(lastPoint, brush); RaisePropertyChanged("DoubleClickTimeList"); } lastMouseDownTime = DateTime.Now; switch (mb) { case MouseButton.Left: Stats.LeftMouseClicks++; isLeftButtonDown = true; break; case MouseButton.Middle: Stats.MiddleMouseClicks++; break; case MouseButton.Right: Stats.RightMouseClicks++; break; } Stats.ClicksPerHour.Increase(); RegisterActivity(); RaisePropertyChanged("ClicksPerHourList"); RaisePropertyChanged("Report"); // Only update movement speed graph when clicking... RaisePropertyChanged("MovementSpeedList"); RaisePropertyChanged("MovementDirectionList"); }
public RsiClickMapData(ClickMap clickMap, Dictionary <RSI.StateId, Vector2i[][]> offsets) { ClickMap = clickMap; Offsets = offsets; }