aboutsummaryrefslogtreecommitdiff
path: root/go/activities/activity.go
diff options
context:
space:
mode:
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()
+}