entity

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Server byte = iota //server controll
	User               //user controll
	Verifying
	Destroying
)
View Source
const OnDestroyMethodId uint16 = 0

Variables

This section is empty.

Functions

func RegisterEntity

func RegisterEntity(etype uint16, creator func(*Entity) (msg.IEntity, error), unmarshaler func(*Entity, *msg.RecvStream) (msg.IEntity, error))

etype:PlayerEntity,

Types

type Entity

type Entity struct {
	Id uint64

	//转发id, controll peer id,
	//如果是客户端entity,该值在服务器为客户端的peerid,在客户端为服务器的peerid
	//如果是服务器entity,该值是服务器peerid,在客户端也是服务器peerid
	//所以如果需要将某个服务器entity的控制交给某个客户端,则需要修改
	//由于entity消息转发处理是由map[peerid]entity控制的,所以只需要将客户端peerid和entity加入到map中
	//这样收到该entity函数消息时便可以拿到该实体去处理
	//TODO:消息头中的ctrlpid可以删除?
	//CtrlPid uint64
	CtrlPeer peer.IPeer

	State byte

	EType uint16
	// SrvType byte
	// SrvId   uint16
	ExtData []byte

	// Peer        peer.IPeer
	// parent      peer.IPeer
	// childs      []peer.IPeer
	Peers       []peer.IPeer
	TransferMap map[uint16][]byte

	RealEntity msg.IEntity
	// contains filtered or unexported fields
}

func (*Entity) AddWatcher

func (e *Entity) AddWatcher(eid uint64)

func (*Entity) BroadcastToWatchers

func (e *Entity) BroadcastToWatchers(bs *msg.SendStream, mid uint16, transpeer, destpeer byte)

func (*Entity) Destroy

func (e *Entity) Destroy() error

func (*Entity) FlushProps

func (e *Entity) FlushProps(dt float64)

func (*Entity) ID

func (e *Entity) ID() uint64

func (*Entity) Marshal

func (e *Entity) Marshal(sr *msg.SendStream) error

func (*Entity) ProcessRpc

func (e *Entity) ProcessRpc(bs *msg.RecvStream) error

func (*Entity) RPC

func (e *Entity) RPC(methodname string, args ...interface{}) error

func (*Entity) RegisterMethodId

func (e *Entity) RegisterMethodId(id uint16, processer func(bs *msg.RecvStream) error)

func (*Entity) RegisterRpcHandler

func (e *Entity) RegisterRpcHandler(handler interface{})

func (*Entity) RemoveWatcher

func (e *Entity) RemoveWatcher(eid uint64)

func (*Entity) SendMethodMsg

func (e *Entity) SendMethodMsg(bs *msg.SendStream, mid uint16, transpeer, destpeer byte)

func (*Entity) SetPeer

func (e *Entity) SetPeer(p peer.IPeer)

func (*Entity) Unmarshal

func (e *Entity) Unmarshal(sr *msg.RecvStream) error

func (*Entity) UnregisterRpcHandler

func (e *Entity) UnregisterRpcHandler(handler interface{})

func (*Entity) Update

func (e *Entity) Update(deltatime float64)

type Manager

type Manager struct {
	OnCreateEntity func(uint16, msg.IEntity)
	OnRemoveEntity func(msg.IEntity)
	// contains filtered or unexported fields
}
var Mgr *Manager

func (*Manager) ClearEntityBySenderId

func (m *Manager) ClearEntityBySenderId(pid uint64)

func (*Manager) CreateEntity

func (m *Manager) CreateEntity(eid uint64, etype uint16, p peer.IPeer) (msg.IEntity, error)

func (*Manager) GetAllEntityByServerType

func (m *Manager) GetAllEntityByServerType(srvtype byte) []msg.IEntity

func (*Manager) GetEntityByEType

func (m *Manager) GetEntityByEType(etype uint16) map[uint64]*Entity

func (*Manager) GetEntityById

func (m *Manager) GetEntityById(eid uint64) *Entity

func (*Manager) GetEntityByPeerIdAndEid

func (m *Manager) GetEntityByPeerIdAndEid(peerid uint64, eid uint64) *Entity

func (*Manager) GetEntityByServerType

func (m *Manager) GetEntityByServerType(srvtype byte) msg.IEntity

func (*Manager) GetEntitysByPeerId

func (m *Manager) GetEntitysByPeerId(peerid uint64) map[uint64]*Entity

func (*Manager) Initialize

func (m *Manager) Initialize()

func (*Manager) IsReconnect

func (m *Manager) IsReconnect(peerid uint64) bool

func (*Manager) IsRelogin

func (m *Manager) IsRelogin(peerid, uid uint64) bool

func (*Manager) OnPeerDisconnect

func (m *Manager) OnPeerDisconnect(peerid uint64)

func (*Manager) OnPeerMsg

func (m *Manager) OnPeerMsg(rs *msg.RecvStream, p peer.IPeer) error

func (*Manager) OnPeerReconnect

func (m *Manager) OnPeerReconnect(peerid uint64, peer peer.IPeer)

func (*Manager) OnPeerVerify

func (m *Manager) OnPeerVerify(rs *msg.RecvStream, p peer.IPeer) error

func (*Manager) OnVerifyPeerMsg

func (m *Manager) OnVerifyPeerMsg(rs *msg.RecvStream, p peer.IPeer) error

func (*Manager) SetStartEntityTypes

func (m *Manager) SetStartEntityTypes(starttypes []uint16)

func (*Manager) SetUserEntityType

func (m *Manager) SetUserEntityType(usertype uint16)

func (*Manager) TryAddEnityMsg

func (m *Manager) TryAddEnityMsg(rs *msg.RecvStream, p peer.IPeer) error

func (*Manager) Update

func (m *Manager) Update(dt float64)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL