feat: 添加Go开发工具并重构空间服务初始化逻辑
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
在Dockerfile中添加多个Go开发工具 将空间服务的初始化逻辑从GetSpace方法提取到独立的init方法 优化代码结构并修复导入顺序
This commit is contained in:
@@ -36,7 +36,10 @@ ENV GOPATH /root/go
|
||||
ENV PATH="${PATH}:${GOPATH}/bin"
|
||||
|
||||
RUN go install -v golang.org/x/tools/gopls@latest
|
||||
|
||||
RUN go install -v github.com/cweill/gotests/gotests@latest
|
||||
RUN go install -v github.com/josharian/impl@latestD
|
||||
RUN go install -v github.com/haya14busa/goplay/cmd/goplay@latest
|
||||
RUN go install -v github.com/go-delve/delve/cmd/dlv@latest
|
||||
# install goreleaser
|
||||
RUN go install github.com/goreleaser/goreleaser/v2@latest
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"blazing/common/data/xmlres"
|
||||
"blazing/common/utils"
|
||||
"blazing/cool"
|
||||
"blazing/modules/config/service"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
@@ -13,6 +12,7 @@ import (
|
||||
"blazing/logic/service/common"
|
||||
"blazing/logic/service/space/info"
|
||||
|
||||
"blazing/modules/config/service"
|
||||
infomodel "blazing/modules/player/model"
|
||||
|
||||
"github.com/gogf/gf/v2/util/grand"
|
||||
@@ -66,11 +66,70 @@ func GetSpace(id uint32) *Space {
|
||||
return planet
|
||||
}
|
||||
ret := NewSpace()
|
||||
ret.ID = id
|
||||
defer ret.init()
|
||||
|
||||
if id < 10000 { //说明是玩家地图GetSpace
|
||||
planetmap.Store(id, ret)
|
||||
return ret
|
||||
}
|
||||
|
||||
var planetmap = csmap.New[uint32, *Space]()
|
||||
|
||||
func ParseCoordinateString(s string) []infomodel.Pos {
|
||||
// 存储解析后的坐标
|
||||
var points []infomodel.Pos
|
||||
|
||||
// 空字符串处理
|
||||
if strings.TrimSpace(s) == "" {
|
||||
return points
|
||||
}
|
||||
|
||||
// 第一步:按竖线分割成单个坐标字符串
|
||||
coordStrs := strings.Split(s, "|")
|
||||
for _, coordStr := range coordStrs {
|
||||
// 去除首尾空格(兼容可能的格式不规范)
|
||||
coordStr = strings.TrimSpace(coordStr)
|
||||
if coordStr == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 第二步:按逗号分割X、Y值
|
||||
xy := strings.Split(coordStr, ",")
|
||||
if len(xy) != 2 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 第三步:转换为整数
|
||||
xStr := strings.TrimSpace(xy[0])
|
||||
yStr := strings.TrimSpace(xy[1])
|
||||
|
||||
x, err := strconv.Atoi(xStr)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
y, err := strconv.Atoi(yStr)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 添加到切片
|
||||
points = append(points, infomodel.Pos{X: uint32(x), Y: uint32(y)})
|
||||
}
|
||||
|
||||
return points
|
||||
}
|
||||
func (t *Space) Next(time.Time) time.Time {
|
||||
|
||||
return time.Now().Add(grand.D(6*time.Second, 30*time.Second))
|
||||
|
||||
}
|
||||
func (ret *Space) init() {
|
||||
|
||||
if ret.ID < 10000 { //说明是玩家地图GetSpace
|
||||
|
||||
for _, v := range xmlres.MapConfig.Maps {
|
||||
if v.ID == int(id) { //找到这个地图
|
||||
if v.ID == int(ret.ID) { //找到这个地图
|
||||
|
||||
ret.Super = uint32(v.Super)
|
||||
if ret.Super == 0 {
|
||||
@@ -139,60 +198,6 @@ func GetSpace(id uint32) *Space {
|
||||
|
||||
}
|
||||
|
||||
planetmap.Store(id, ret)
|
||||
return ret
|
||||
}
|
||||
|
||||
var planetmap = csmap.New[uint32, *Space]()
|
||||
|
||||
func ParseCoordinateString(s string) []infomodel.Pos {
|
||||
// 存储解析后的坐标
|
||||
var points []infomodel.Pos
|
||||
|
||||
// 空字符串处理
|
||||
if strings.TrimSpace(s) == "" {
|
||||
return points
|
||||
}
|
||||
|
||||
// 第一步:按竖线分割成单个坐标字符串
|
||||
coordStrs := strings.Split(s, "|")
|
||||
for _, coordStr := range coordStrs {
|
||||
// 去除首尾空格(兼容可能的格式不规范)
|
||||
coordStr = strings.TrimSpace(coordStr)
|
||||
if coordStr == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 第二步:按逗号分割X、Y值
|
||||
xy := strings.Split(coordStr, ",")
|
||||
if len(xy) != 2 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 第三步:转换为整数
|
||||
xStr := strings.TrimSpace(xy[0])
|
||||
yStr := strings.TrimSpace(xy[1])
|
||||
|
||||
x, err := strconv.Atoi(xStr)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
y, err := strconv.Atoi(yStr)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 添加到切片
|
||||
points = append(points, infomodel.Pos{X: uint32(x), Y: uint32(y)})
|
||||
}
|
||||
|
||||
return points
|
||||
}
|
||||
func (t *Space) Next(time.Time) time.Time {
|
||||
|
||||
return time.Now().Add(grand.D(6*time.Second, 30*time.Second))
|
||||
|
||||
}
|
||||
func (ret *Space) GenBoss() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user