29 lines
711 B
Go
29 lines
711 B
Go
|
|
package model
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/df-mc/dragonfly/server/block/cube"
|
||
|
|
"github.com/df-mc/dragonfly/server/world"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Skull is a model used by skull blocks.
|
||
|
|
type Skull struct {
|
||
|
|
// Direction is the direction the skull is facing.
|
||
|
|
Direction cube.Face
|
||
|
|
// Hanging specifies if the Skull is hanging on a wall.
|
||
|
|
Hanging bool
|
||
|
|
}
|
||
|
|
|
||
|
|
// BBox ...
|
||
|
|
func (s Skull) BBox(cube.Pos, world.BlockSource) []cube.BBox {
|
||
|
|
box := cube.Box(0.25, 0, 0.25, 0.75, 0.5, 0.75)
|
||
|
|
if !s.Hanging {
|
||
|
|
return []cube.BBox{box}
|
||
|
|
}
|
||
|
|
return []cube.BBox{box.TranslateTowards(s.Direction.Opposite(), 0.25).TranslateTowards(cube.FaceUp, 0.25)}
|
||
|
|
}
|
||
|
|
|
||
|
|
// FaceSolid ...
|
||
|
|
func (Skull) FaceSolid(cube.Pos, cube.Face, world.BlockSource) bool {
|
||
|
|
return false
|
||
|
|
}
|