64 lines
1020 B
Go
64 lines
1020 B
Go
package breakout
|
|
|
|
import (
|
|
"git.wisellama.rocks/Wisellama/carpy-breakout/pkg/globject"
|
|
"github.com/go-gl/mathgl/mgl32"
|
|
)
|
|
|
|
type Brick struct {
|
|
Box *globject.Box
|
|
broken bool
|
|
}
|
|
|
|
func NewBrick(
|
|
brickWidth float32,
|
|
brickHeight float32,
|
|
brickDepth float32,
|
|
position mgl32.Vec3,
|
|
material *globject.Material) *Brick {
|
|
|
|
brick := Brick{
|
|
Box: globject.NewBox(brickWidth, brickHeight, brickDepth, position, material),
|
|
broken: false,
|
|
}
|
|
return &brick
|
|
}
|
|
|
|
func (b *Brick) Update() {
|
|
if !b.broken {
|
|
b.Box.Update()
|
|
}
|
|
}
|
|
|
|
func (b *Brick) GLDraw() {
|
|
b.Box.GLDraw()
|
|
}
|
|
|
|
func (b *Brick) GLInit(glProgram uint32) {
|
|
b.Box.GLInit(glProgram)
|
|
}
|
|
|
|
func (b *Brick) ToggleWireframe() {
|
|
b.Box.ToggleWireframe()
|
|
}
|
|
|
|
func (b *Brick) GetAABB() *globject.AABB {
|
|
return b.Box.GetAABB()
|
|
}
|
|
|
|
func (b *Brick) Broken() bool {
|
|
return b.broken
|
|
}
|
|
|
|
func (b *Brick) Break() {
|
|
b.broken = true
|
|
|
|
clear := globject.NewMaterial()
|
|
|
|
clear.Color = mgl32.Vec4{0, 0, 0, 0}
|
|
clear.Shininess = 0
|
|
clear.TextureOn = false
|
|
|
|
b.Box.Material = clear
|
|
}
|