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
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:
@@ -0,0 +1,73 @@
|
||||
package session
|
||||
|
||||
import "github.com/df-mc/dragonfly/server/world"
|
||||
|
||||
// ViewLayer returns the session's ViewLayer. The layer may be used to override how entities are viewed
|
||||
// by this session, such as with a different name tag or visibility state.
|
||||
func (s *Session) ViewLayer() *world.ViewLayer {
|
||||
return s.viewLayer
|
||||
}
|
||||
|
||||
// ViewNameTag overwrites the public name tag of the entity and immediately refreshes it for this session.
|
||||
func (s *Session) ViewNameTag(entity world.Entity, nameTag string) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.ViewNameTag(entity, nameTag)
|
||||
}
|
||||
|
||||
// ViewPublicNameTag removes the name tag override from the entity and immediately refreshes it for this session.
|
||||
func (s *Session) ViewPublicNameTag(entity world.Entity) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.ViewPublicNameTag(entity)
|
||||
}
|
||||
|
||||
// ViewScoreTag overwrites the public score tag of the entity and immediately refreshes it for this session.
|
||||
func (s *Session) ViewScoreTag(entity world.Entity, scoreTag string) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.ViewScoreTag(entity, scoreTag)
|
||||
}
|
||||
|
||||
// ViewPublicScoreTag removes the score tag override from the entity and immediately refreshes it for this session.
|
||||
func (s *Session) ViewPublicScoreTag(entity world.Entity) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.ViewPublicScoreTag(entity)
|
||||
}
|
||||
|
||||
// ViewVisibility overwrites the public visibility of the entity and immediately refreshes it for this session.
|
||||
func (s *Session) ViewVisibility(entity world.Entity, level world.VisibilityLevel) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.ViewVisibility(entity, level)
|
||||
}
|
||||
|
||||
// RemoveViewLayer removes all overrides for the entity and immediately refreshes it for this session.
|
||||
func (s *Session) RemoveViewLayer(entity world.Entity) {
|
||||
if s.viewLayer == nil {
|
||||
return
|
||||
}
|
||||
s.viewLayer.Remove(entity)
|
||||
}
|
||||
|
||||
// ViewLayerEntityChanged refreshes the entity metadata for this session if the entity is currently visible.
|
||||
func (s *Session) ViewLayerEntityChanged(e world.Entity) {
|
||||
if s.entityHidden(e) || !s.viewingEntity(e.H()) {
|
||||
return
|
||||
}
|
||||
s.ViewEntityState(e)
|
||||
}
|
||||
|
||||
// viewingEntity checks if this session currently has a runtime ID assigned to the entity handle.
|
||||
func (s *Session) viewingEntity(handle *world.EntityHandle) bool {
|
||||
s.entityMutex.RLock()
|
||||
_, ok := s.entityRuntimeIDs[handle]
|
||||
s.entityMutex.RUnlock()
|
||||
return ok
|
||||
}
|
||||
Reference in New Issue
Block a user