stream world data from pxl8d to pxl8
This commit is contained in:
parent
39ee0fefb7
commit
a71a9840b2
55 changed files with 5290 additions and 2131 deletions
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
(local NUM_RANDOM_STARS 300)
|
||||
(local NUM_TINY_STARS 7000)
|
||||
(local STAR_CYCLE_PERIOD 86400)
|
||||
(local STAR_SEED 0xDEADBEEF)
|
||||
(local STAR_CYCLE_PERIOD 7200)
|
||||
|
||||
;; Use existing bright palette colors
|
||||
;; Silver/white: indices 14-15 (brightest grays)
|
||||
|
|
@ -102,15 +102,21 @@
|
|||
(generate-sky-gradient zenith-r zenith-g zenith-b horizon-r horizon-g horizon-b)
|
||||
(set last-gradient-key key))))
|
||||
|
||||
(fn galactic-band-factor [dx dy dz]
|
||||
(let [band-len (math.sqrt (+ (* 0.6 0.6) (* 0.3 0.3) (* 0.742 0.742)))
|
||||
bx (/ 0.6 band-len)
|
||||
by (/ 0.3 band-len)
|
||||
bz (/ 0.742 band-len)
|
||||
dist-from-band (math.abs (+ (* dx bx) (* dy by) (* dz bz)))
|
||||
in-band (- 1 (math.min (* dist-from-band 3) 1))]
|
||||
(fn band-factor [dx dy dz bx by bz width]
|
||||
(let [dist (math.abs (+ (* dx bx) (* dy by) (* dz bz)))
|
||||
in-band (- 1 (math.min (* dist width) 1))]
|
||||
(* in-band in-band)))
|
||||
|
||||
(fn galactic-band-factor [dx dy dz]
|
||||
(let [;; Main galactic band - crosses zenith
|
||||
band-len (math.sqrt (+ (* 0.6 0.6) (* 0.3 0.3) (* 0.742 0.742)))
|
||||
b1 (band-factor dx dy dz (/ 0.6 band-len) (/ 0.3 band-len) (/ 0.742 band-len) 3)
|
||||
;; Secondary band - lower angle, different orientation
|
||||
b2 (band-factor dx dy dz 0.8 0.15 0.58 3.5)
|
||||
;; Tertiary band - opposite side
|
||||
b3 (band-factor dx dy dz -0.7 0.2 0.69 4)]
|
||||
(math.max b1 b2 b3)))
|
||||
|
||||
(fn generate-stars []
|
||||
(set random-stars [])
|
||||
(set tiny-stars [])
|
||||
|
|
@ -205,8 +211,9 @@
|
|||
(let [star (. tiny-stars (+ i 1))
|
||||
int (math.floor (* star.brightness fade-in))]
|
||||
(when (> int 8)
|
||||
(star-glows:add (math.floor screen.x) (math.floor screen.y)
|
||||
1 int star.color pxl8.GLOW_CIRCLE))))))
|
||||
(let [px (math.floor (+ screen.x 0.5))
|
||||
py (math.floor (+ screen.y 0.5))]
|
||||
(star-glows:add px py 1 int star.color pxl8.GLOW_CIRCLE)))))))
|
||||
|
||||
(for [i 0 (- (length random-stars) 1)]
|
||||
(let [screen (. star-projected (+ tiny-count i))]
|
||||
|
|
@ -215,8 +222,8 @@
|
|||
phase (+ (* (+ i 1) 2.137) (* time-factor 3.0))
|
||||
twinkle (+ 0.75 (* 0.25 (math.sin (* phase 6.28))))
|
||||
int (math.floor (* star.brightness fade-in twinkle))
|
||||
sx (math.floor screen.x)
|
||||
sy (math.floor screen.y)]
|
||||
sx (math.floor (+ screen.x 0.5))
|
||||
sy (math.floor (+ screen.y 0.5))]
|
||||
(if (> star.brightness 220)
|
||||
(do
|
||||
(star-glows:add sx sy 3 (math.floor (* int 1.5)) star.color pxl8.GLOW_DIAMOND)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue