diff options
Diffstat (limited to 'selection')
| -rw-r--r-- | selection/selection.go | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/selection/selection.go b/selection/selection.go index e4afdaa..1c702ee 100644 --- a/selection/selection.go +++ b/selection/selection.go @@ -32,10 +32,11 @@ type selectItem struct { } type GlobalSelection struct { - isActive bool - start physics.Point - buffer []selectItem - Selected []ecs.Entity + isActive bool + start physics.Point + startScreen physics.Point + buffer []selectItem + Selected []ecs.Entity } func (s GlobalSelection) IsActive(cursor physics.Point) bool { @@ -56,6 +57,10 @@ func (s *GlobalSelection) Start(point physics.Point) { s.start = point } +func (s *GlobalSelection) StartScreen(point physics.Point) { + s.startScreen = point +} + type SelectTarget struct { Selectable *Selectable Position physics.Point @@ -134,6 +139,6 @@ func (s *GlobalSelection) Unselect(selectables []Selectable) { s.Selected = []ecs.Entity{} } -func (s *GlobalSelection) Draw(dst *ebiten.Image, cursor physics.Point) { - vector.StrokeRect(dst, float32(s.start.X), float32(s.start.Y), float32(cursor.X-s.start.X), float32(cursor.Y-s.start.Y), 10.0, color.RGBA{256 * 3 / 16, 256 * 3 / 16, 256 * 3 / 16, 256 / 4}, true) +func (s *GlobalSelection) Draw(dst *ebiten.Image, screenCursor physics.Point) { + vector.StrokeRect(dst, float32(s.startScreen.X), float32(s.startScreen.Y), float32(screenCursor.X-s.startScreen.X), float32(screenCursor.Y-s.startScreen.Y), 10.0, color.RGBA{256 * 3 / 16, 256 * 3 / 16, 256 * 3 / 16, 256 / 4}, true) } |
