aboutsummaryrefslogtreecommitdiff
path: root/selection
diff options
context:
space:
mode:
Diffstat (limited to 'selection')
-rw-r--r--selection/selection.go17
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)
}