package controller import ( "blazing/common/socket/errorcode" "blazing/logic/service/pet" "blazing/logic/service/player" "blazing/logic/service/room" "github.com/jinzhu/copier" ) // SetFitment 设置基地家具摆放 // data: 包含家具列表的输入信息 // c: 当前玩家对象 // 返回: 空结果和错误码 func (h Controller) SetFitment(data *SET_FITMENT, c *player.Player) (result *room.NullInfo, err errorcode.ErrorCode) { c.Service.Room.Set(data.Fitments) return } // SetPet 设置基地展示的精灵 // data: 包含精灵展示列表的输入信息 // c: 当前玩家对象 // 返回: 精灵展示列表和错误码 func (h Controller) SetPet(data *C2S_PET_ROOM_SHOW, c *player.Player) (result *room.S2C_PET_ROOM_SHOW, err errorcode.ErrorCode) { var showPetCatchTimes []uint32 for _, petShowInfo := range data.PetShowList { if petShowInfo.CatchTime != 0 { showPetCatchTimes = append(showPetCatchTimes, petShowInfo.CatchTime) } } c.Service.Room.Show(showPetCatchTimes) result = &room.S2C_PET_ROOM_SHOW{} result.PetShowList = make([]pet.PetShortInfo, len(showPetCatchTimes)) for _, catchTime := range showPetCatchTimes { petInfo := c.Service.Pet.PetInfoOneByCatchTime(catchTime) if petInfo == nil { continue } var petShortInfo pet.PetShortInfo copier.Copy(&petShortInfo, &petInfo.Data) result.PetShowList = append(result.PetShowList, petShortInfo) } return }