mirror of
https://github.com/maaslalani/confetty.git
synced 2024-11-24 16:46:43 +00:00
Rely on bubbletea for sizing information
This commit is contained in:
parent
654be31c1b
commit
9c59ff5446
@ -57,13 +57,10 @@ func Spawn(width, height int) []*simulation.Particle {
|
|||||||
return particles
|
return particles
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitialModelWithSize(width, height int) model {
|
func InitialModel() model {
|
||||||
return model{system: &simulation.System{
|
return model{system: &simulation.System{
|
||||||
Particles: Spawn(width, height),
|
Particles: []*simulation.Particle{},
|
||||||
Frame: simulation.Frame{
|
Frame: simulation.Frame{},
|
||||||
Width: width,
|
|
||||||
Height: height,
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,6 +85,10 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
m.system.Update()
|
m.system.Update()
|
||||||
return m, animate()
|
return m, animate()
|
||||||
case tea.WindowSizeMsg:
|
case tea.WindowSizeMsg:
|
||||||
|
if m.system.Frame.Width == 0 && m.system.Frame.Height == 0 {
|
||||||
|
// For the first frameMsg spawn a system of particles
|
||||||
|
m.system.Particles = Spawn(msg.Width, msg.Height)
|
||||||
|
}
|
||||||
m.system.Frame.Width = msg.Width
|
m.system.Frame.Width = msg.Width
|
||||||
m.system.Frame.Height = msg.Height
|
m.system.Frame.Height = msg.Height
|
||||||
return m, nil
|
return m, nil
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
//go:build !windows
|
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package confetti
|
|
||||||
|
|
||||||
import (
|
|
||||||
"golang.org/x/term"
|
|
||||||
)
|
|
||||||
|
|
||||||
func InitialModel() model {
|
|
||||||
width, height, err := term.GetSize(0)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return InitialModelWithSize(width, height)
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
//go:build windows
|
|
||||||
// +build windows
|
|
||||||
|
|
||||||
package confetti
|
|
||||||
|
|
||||||
import (
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"golang.org/x/term"
|
|
||||||
)
|
|
||||||
|
|
||||||
func InitialModel() model {
|
|
||||||
h, err := syscall.GetStdHandle(syscall.STD_OUTPUT_HANDLE)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
width, height, err := term.GetSize(int(h))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return InitialModelWithSize(width, height)
|
|
||||||
}
|
|
@ -79,13 +79,10 @@ func SpawnExplosion(x, y float64, width, height int) []*simulation.Particle {
|
|||||||
return particles
|
return particles
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitialModelWithSize(width, height int) model {
|
func InitialModel() model {
|
||||||
return model{system: &simulation.System{
|
return model{system: &simulation.System{
|
||||||
Particles: []*simulation.Particle{SpawnShoot(width, height)},
|
Particles: []*simulation.Particle{},
|
||||||
Frame: simulation.Frame{
|
Frame: simulation.Frame{},
|
||||||
Width: width,
|
|
||||||
Height: height,
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +107,10 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
m.system.Update()
|
m.system.Update()
|
||||||
return m, animate()
|
return m, animate()
|
||||||
case tea.WindowSizeMsg:
|
case tea.WindowSizeMsg:
|
||||||
|
if m.system.Frame.Width == 0 && m.system.Frame.Height == 0 {
|
||||||
|
// For the first frameMsg spawn a system of particles
|
||||||
|
m.system.Particles = append(m.system.Particles, SpawnShoot(msg.Width, msg.Height))
|
||||||
|
}
|
||||||
m.system.Frame.Width = msg.Width
|
m.system.Frame.Width = msg.Width
|
||||||
m.system.Frame.Height = msg.Height
|
m.system.Frame.Height = msg.Height
|
||||||
return m, nil
|
return m, nil
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
//go:build !windows
|
|
||||||
// +build !windows
|
|
||||||
|
|
||||||
package fireworks
|
|
||||||
|
|
||||||
import (
|
|
||||||
"golang.org/x/term"
|
|
||||||
)
|
|
||||||
|
|
||||||
func InitialModel() model {
|
|
||||||
width, height, err := term.GetSize(0)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return InitialModelWithSize(width, height)
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
//go:build windows
|
|
||||||
// +build windows
|
|
||||||
|
|
||||||
package fireworks
|
|
||||||
|
|
||||||
import (
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"golang.org/x/term"
|
|
||||||
)
|
|
||||||
|
|
||||||
func InitialModel() model {
|
|
||||||
h, err := syscall.GetStdHandle(syscall.STD_OUTPUT_HANDLE)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
width, height, err := term.GetSize(int(h))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return InitialModelWithSize(width, height)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user