up3
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled

This commit is contained in:
2026-07-09 08:33:57 +08:00
commit 26ed99fda6
845 changed files with 75419 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
package model
import (
"github.com/df-mc/dragonfly/server/block/cube"
"github.com/df-mc/dragonfly/server/world"
)
// FenceGate is a model used by fence gates. The model is completely zero-ed when the FenceGate is opened.
type FenceGate struct {
// Facing is the facing direction of the FenceGate. A fence gate can only be opened in this direction or the
// direction opposite to it.
Facing cube.Direction
// Open specifies if the FenceGate is open. In this case, BBox returns an empty slice.
Open bool
}
// BBox returns up to one physics.BBox depending on the facing direction of the FenceGate and whether it is open.
func (f FenceGate) BBox(cube.Pos, world.BlockSource) []cube.BBox {
if f.Open {
return nil
}
return []cube.BBox{cube.Box(0, 0, 0, 1, 1.5, 1).Stretch(f.Facing.Face().Axis(), -0.375)}
}
// FaceSolid always returns false.
func (f FenceGate) FaceSolid(cube.Pos, cube.Face, world.BlockSource) bool {
return false
}