Render background and electron for logic gates

This commit is contained in:
Juliana Sims 2024-05-22 14:42:27 -04:00
parent 793a9ef027
commit 815c3c809a
2 changed files with 18 additions and 22 deletions

View file

@ -258,28 +258,26 @@
(define (draw-exit pos)
(draw-tile context tileset 27 (vec2-x pos) (vec2-y pos)))
(define (draw-wall pos type)
(define (draw-wire-state pos state)
(let ((x (vec2-x pos))
(y (vec2-y pos)))
(match type
(match state
('electron-head
(draw-tile context tileset 4 x y))
('electron-tail
(draw-tile context tileset 5 x y))
(_ #f))))
(define (draw-wall pos type)
(draw-wire-state pos type))
(define (draw-block pos type)
(let ((x (vec2-x pos))
(y (vec2-y pos)))
(match type
('crate (draw-tile context tileset 29 x y))
(_ (draw-tile context tileset 3 x y)))
(match type
('electron-head
(draw-tile context tileset 4 x y))
('electron-tail
(draw-tile context tileset 5 x y))
(_ #f))))
(draw-wire-state pos type)))
(define (draw-clock-emitter pos)
(draw-tile context tileset 48 (vec2-x pos) (vec2-y pos)))
@ -293,14 +291,12 @@
(define (draw-gate pos open?)
(draw-tile context tileset (if open? 46 45) (vec2-x pos) (vec2-y pos)))
(define (draw-and-gate pos)
(draw-tile context tileset 42 (vec2-x pos) (vec2-y pos)))
(define (draw-or-gate pos)
(draw-tile context tileset 43 (vec2-x pos) (vec2-y pos)))
(define (draw-xor-gate pos)
(draw-tile context tileset 44 (vec2-x pos) (vec2-y pos)))
(define (draw-logic-gate pos state id)
(let ((x (vec2-x pos))
(y (vec2-y pos)))
(draw-tile context tileset 2 x y)
(draw-tile context tileset id x y)
(draw-wire-state pos state)))
(define (draw-electric-switch pos on?)
(draw-tile context tileset (if on? 7 6) (vec2-x pos) (vec2-y pos)))
@ -316,9 +312,9 @@
(('floor-switch pos on?) (draw-floor-switch pos on?))
(('gem pos) (draw-gem pos))
(('gate pos open?) (draw-gate pos open?))
(('and-gate pos) (draw-and-gate pos))
(('xor-gate pos) (draw-xor-gate pos))
(('or-gate pos) (draw-or-gate pos))
(('and-gate pos state) (draw-logic-gate pos state 42))
(('or-gate pos state) (draw-logic-gate pos state 43))
(('xor-gate pos state) (draw-logic-gate pos state 44))
(('electric-switch pos on?) (draw-electric-switch pos on?))))
(define (draw-background)

View file

@ -273,7 +273,7 @@
($ state 'electron-head))
(_ ($ state 'copper))))))
(('alive?) #t)
(('describe) `(and-gate ,position))
(('describe) `(and-gate ,position ,($ state)))
(('collide other offset grid-info) #f)))
(define (^xor-gate bcom x y)
@ -313,7 +313,7 @@
($ state 'electron-head))
(_ ($ state 'copper))))))
(('alive?) #t)
(('describe) `(xor-gate ,position))
(('describe) `(xor-gate ,position ,($ state)))
(('collide other offset grid-info) #f)))
(define (^or-gate bcom x y)
@ -357,7 +357,7 @@
($ state 'electron-head))
(_ ($ state 'copper))))))
(('alive?) #t)
(('describe) `(or-gate ,position))
(('describe) `(or-gate ,position ,($ state)))
(('collide other offset grid-info) #f)))
(define (^player bcom x y)