package maps

import (
	"blazing/logic/service/common"
	"blazing/logic/service/player"
	"blazing/logic/service/space"

	"blazing/modules/blazing/model"
)

type WalkInInfo struct {
	Head player.TomeeHeader `cmd:"2101" struc:"[0]pad"` //走路包
	// Flag: 0为走，1为飞行模式，@UInt long
	Flag uint32

	// Point: 直接给坐标x，y
	Point model.Pos `fieldDesc:"直接给坐标x，y"`

	// Reverse2: 暂定 占位字符2
	Reverse2 string `struc:"[2]byte"`
}

func (t *WalkInInfo) Broadcast(mapid uint32, o WalkOutInfo) {

	//tt := planetmap
	//g.Dump(GetSpace(mapid).Len())

	space.GetSpace(mapid).Range(func(playerID uint32, player common.PlayerI) bool {
		t.Head.Result = 0
		tt := t.Head.Pack(&o)
		player.SendPack(tt)
		//player.Cheak(err)
		return true
	})
}

// PeopleWalkOutboundInfo PeopleWalkOutboundInfo类，实现OutboundMessage接口
type WalkOutInfo struct {
	// Flag: 0为走，1为飞行模式
	Flag uint32 `fieldDesc:"0为走，1为飞行模式" codec:"uint"`

	// UserID: 走动的人的米米号
	UserID uint32 `fieldDesc:"走动的人的米米号" codec:"uint"`

	// Point: 直接给坐标x，y
	Point model.Pos `fieldDesc:"直接给坐标x，y"`

	// Reserve2: 这个字段同C2S_People_Walk中的reserve2
	Reserve2 string `struc:"[2]byte"`
}
