Files
mc/server/world/visibility_level.go
T

31 lines
887 B
Go
Raw Normal View History

2026-07-09 08:33:57 +08:00
package world
// VisibilityLevel controls whether a ViewLayer should use an entity's public visibility or force it
// visible or invisible for a viewer.
type VisibilityLevel struct {
visibility
}
// PublicVisibility is the default visibility level where the entity is (in)visible
// depending on how it already is publicly viewed.
func PublicVisibility() VisibilityLevel {
return VisibilityLevel{0}
}
// EnforceInvisible is the visibility level where the entity is always invisible to the viewer.
func EnforceInvisible() VisibilityLevel {
return VisibilityLevel{1}
}
// EnforceVisible is the visibility level where the entity is always visible to the viewer.
func EnforceVisible() VisibilityLevel {
return VisibilityLevel{2}
}
type visibility uint8
// EnforceVisibility returns whether metadata should be changed.
func (v visibility) EnforceVisibility() bool {
return v > 0
}