47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
// Screen reader for D2R — extracts game information from screenshots.
|
|
package d2r
|
|
|
|
import (
|
|
"image"
|
|
|
|
"git.cloonar.com/openclawd/iso-bot/pkg/plugin"
|
|
)
|
|
|
|
// Reader implements plugin.ScreenReader for D2R.
|
|
type Reader struct {
|
|
config Config
|
|
}
|
|
|
|
// NewReader creates a D2R screen reader.
|
|
func NewReader(config Config) *Reader {
|
|
return &Reader{config: config}
|
|
}
|
|
|
|
// FindItems detects item labels on the ground.
|
|
func (r *Reader) FindItems(frame image.Image) []plugin.DetectedItem {
|
|
// TODO: Detect colored item text labels
|
|
// - Gold text = unique
|
|
// - Green text = set
|
|
// - Yellow text = rare
|
|
// - Orange text = runeword / crafted
|
|
// - White/grey = normal/magic
|
|
return nil
|
|
}
|
|
|
|
// FindPortal locates a town portal on screen.
|
|
func (r *Reader) FindPortal(frame image.Image) (image.Point, bool) {
|
|
// TODO: Detect blue portal glow
|
|
return image.Point{}, false
|
|
}
|
|
|
|
// FindEnemies detects enemy positions.
|
|
func (r *Reader) FindEnemies(frame image.Image) []image.Point {
|
|
// TODO: Enemy health bar detection
|
|
return nil
|
|
}
|
|
|
|
// ReadText extracts text from a screen region.
|
|
func (r *Reader) ReadText(frame image.Image, region image.Rectangle) string {
|
|
// TODO: OCR on the given region
|
|
return ""
|
|
}
|