Rewrite to Go: engine, plugin system, D2R plugin, API, loot filter
This commit is contained in:
parent
e0282a7111
commit
3b363192f2
60 changed files with 1576 additions and 3407 deletions
65
plugins/d2r/plugin.go
Normal file
65
plugins/d2r/plugin.go
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
// Package d2r implements the Diablo II: Resurrected game plugin.
|
||||
package d2r
|
||||
|
||||
import (
|
||||
"image"
|
||||
|
||||
"git.cloonar.com/openclawd/iso-bot/pkg/plugin"
|
||||
)
|
||||
|
||||
// Plugin implements plugin.Plugin for D2R.
|
||||
type Plugin struct {
|
||||
config Config
|
||||
services plugin.EngineServices
|
||||
detector *Detector
|
||||
reader *Reader
|
||||
}
|
||||
|
||||
// New creates a new D2R plugin with default config.
|
||||
func New() *Plugin {
|
||||
return &Plugin{
|
||||
config: DefaultConfig(),
|
||||
}
|
||||
}
|
||||
|
||||
// Info returns plugin metadata.
|
||||
func (p *Plugin) Info() plugin.PluginInfo {
|
||||
return plugin.PluginInfo{
|
||||
ID: "d2r",
|
||||
Name: "Diablo II: Resurrected",
|
||||
Version: "0.1.0",
|
||||
Description: "Bot plugin for Diablo II: Resurrected — MF runs, rune farming, and more",
|
||||
Resolution: image.Point{X: 1920, Y: 1080},
|
||||
}
|
||||
}
|
||||
|
||||
// Init initializes the plugin with engine services.
|
||||
func (p *Plugin) Init(services plugin.EngineServices) error {
|
||||
p.services = services
|
||||
p.detector = NewDetector(p.config)
|
||||
p.reader = NewReader(p.config)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Detector returns the game state detector.
|
||||
func (p *Plugin) Detector() plugin.GameDetector {
|
||||
return p.detector
|
||||
}
|
||||
|
||||
// Reader returns the screen reader.
|
||||
func (p *Plugin) Reader() plugin.ScreenReader {
|
||||
return p.reader
|
||||
}
|
||||
|
||||
// Routines returns available farming routines.
|
||||
func (p *Plugin) Routines() []plugin.Routine {
|
||||
return []plugin.Routine{
|
||||
// TODO: Initialize routines with plugin services
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultLootFilter returns the default D2R loot filter.
|
||||
func (p *Plugin) DefaultLootFilter() plugin.LootFilter {
|
||||
// TODO: Return default rule engine
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue