carpy-breakout/pkg/breakout/brick.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
}