aboutsummaryrefslogtreecommitdiff
path: root/patrol_order.go
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2025-07-25 11:49:42 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2025-07-25 11:49:42 +0200
commit87563d8bbf70cba9443435113a8bddfcd39f611d (patch)
treed0d98265f0552791e6459af99366f3658502788d /patrol_order.go
parent563b9ee704a14322ed4805896c4f8ca3fa5df03a (diff)
refactor: ECS patrol order
Diffstat (limited to 'patrol_order.go')
-rw-r--r--patrol_order.go15
1 files changed, 7 insertions, 8 deletions
diff --git a/patrol_order.go b/patrol_order.go
index eb9dfb0..a5b8d83 100644
--- a/patrol_order.go
+++ b/patrol_order.go
@@ -1,6 +1,7 @@
package main
import (
+ "age_of_empires/ecs"
"age_of_empires/physics"
"golang.org/x/exp/slog"
@@ -24,13 +25,11 @@ func (o *PatrolOrder) Update(e *Entity, g *Game) {
}
}
-func Patrol(e *Entity, destination physics.Point) Order {
- if e.Selection.IsEnabled && e.Position.IsEnabled && e.Move.IsEnabled && e.Order.IsEnabled {
- if e.Selection.Value.IsSelected {
- origin := e.Position.Value
- slog.Info("patrolling between", slog.String("origin", origin.String()), slog.String("destination", destination.String()))
- e.Order.Value = &PatrolOrder{origin: origin, destination: destination}
- }
+func Patrol(position ecs.Component[physics.Point], move ecs.Component[physics.Move], order *ecs.Component[Order], destination physics.Point) {
+ if !position.IsEnabled || !move.IsEnabled || !order.IsEnabled {
+ return
}
- return &PatrolOrder{origin: e.Position.Value, destination: destination}
+ origin := position.Value
+ slog.Info("patrolling between", slog.String("origin", origin.String()), slog.String("destination", destination.String()))
+ order.Value = &PatrolOrder{origin: origin, destination: destination}
}