summaryrefslogtreecommitdiff
path: root/super-bloom/flower.scm
diff options
context:
space:
mode:
Diffstat (limited to 'super-bloom/flower.scm')
-rw-r--r--super-bloom/flower.scm31
1 files changed, 29 insertions, 2 deletions
diff --git a/super-bloom/flower.scm b/super-bloom/flower.scm
index 428b158..78e8f03 100644
--- a/super-bloom/flower.scm
+++ b/super-bloom/flower.scm
@@ -75,6 +75,11 @@
#:name 'progress-meter
#:position (vec2 -32.0 -28.0)
#:width 64.0
+ #:height 8.0)
+ (make <canvas>
+ #:name 'idle-meter
+ #:position (vec2 -32.0 -36.0)
+ #:width 64.0
#:height 8.0))
(update-progress-meter flower))
@@ -95,6 +100,28 @@
(default-width (& flower progress-meter))
(default-height (& flower progress-meter))))
+(define-method (update-idle-meter (flower <flower>))
+ (define w 64.0)
+ (define t (- 1.0 (/ (growth-accumulator flower) (growth-interval flower))))
+ (define meter (& flower idle-meter))
+ (if (>= t 0.999)
+ (hide meter)
+ (begin
+ (show meter)
+ (set! (painter meter)
+ (superimpose
+ (with-style ((stroke-color (make-color 0.0 0.0 0.0 0.5))
+ (stroke-width 2.0))
+ (stroke
+ (line (vec2 0.0 0.0) (vec2 w 0.0))))
+ (with-style ((stroke-color db32-mandy)
+ (stroke-width 2.0))
+ (stroke
+ (line (vec2 0.0 0.0) (vec2 (* w t) 0.0))))))
+ (resize meter
+ (default-width meter)
+ (default-height meter)))))
+
(define-method (update-animation (flower <flower>))
(define t (/ (growth-progress flower) (growth-goal flower)))
@@ -128,6 +155,7 @@
(audio-play (artifact watered-sound))))
(define-method (update (flower <flower>) dt)
+ (update-idle-meter flower)
(unless (thirsty? flower)
(let ((interval (growth-interval flower))
(accum (+ (growth-accumulator flower) dt)))
@@ -136,8 +164,7 @@
(set! (growth-progress flower)
(min (+ (growth-progress flower) 1)
(growth-goal flower)))
- (set! (growth-accumulator flower)
- (if (thirsty? flower) 0 (- accum interval)))
+ (set! (growth-accumulator flower) 0.0)
(decrement-water flower 1)
(update-animation flower)
(update-progress-meter flower))))