aboutsummaryrefslogtreecommitdiff
path: root/go/activities/activity.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-06-06 16:42:46 -0500
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-20 15:57:18 +0200
commitbcffeac4c5086eba59448d4fe5d79bb786b05de2 (patch)
treecc0b3648f2b070c731225e88b42fb3f4adcb65da /go/activities/activity.go
parentc15142c3bcae4316c8580adb7a9f0b223e586ae9 (diff)
downloadmuhqs-game-bcffeac4c5086eba59448d4fe5d79bb786b05de2.tar.gz
muhqs-game-bcffeac4c5086eba59448d4fe5d79bb786b05de2.zip
refactor client activities
Make the activity stack explicit and move reusable activities to the activity package.
Diffstat (limited to 'go/activities/activity.go')
-rw-r--r--go/activities/activity.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/go/activities/activity.go b/go/activities/activity.go
new file mode 100644
index 00000000..c082b8c6
--- /dev/null
+++ b/go/activities/activity.go
@@ -0,0 +1,41 @@
+package activities
+
+import (
+ "github.com/hajimehoshi/ebiten/v2"
+)
+
+type ActivityStack struct {
+ activityStack []ebiten.Game
+}
+
+var Activities ActivityStack
+
+type Activity = ebiten.Game
+
+func (s *ActivityStack) PushActivity(a Activity) {
+ s.activityStack = append(s.activityStack, a)
+}
+
+func (s *ActivityStack) PopActivity() Activity {
+ n := len(s.activityStack)
+ a := s.activityStack[n-1]
+ s.activityStack = s.activityStack[:n-1]
+ return a
+}
+
+func (s *ActivityStack) Last() Activity {
+ n := len(s.activityStack)
+ return s.activityStack[n-1]
+}
+
+func PushActivity(a Activity) {
+ Activities.PushActivity(a)
+}
+
+func PopActivity() Activity {
+ return Activities.PopActivity()
+}
+
+func CurActivity() Activity {
+ return Activities.Last()
+}