Files
bl/logic/controller/room_set.go
xinian 6510e4e09b
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
refactor: 重构入参类型引用
2026-04-05 07:24:36 +08:00

47 lines
1.4 KiB
Go

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
}