Skip to content

Commit

Permalink
docs: 优化项目文档
Browse files Browse the repository at this point in the history
  • Loading branch information
kercylan98 committed Jan 14, 2024
1 parent ea1ed6c commit 83beeb4
Show file tree
Hide file tree
Showing 85 changed files with 10,952 additions and 259 deletions.
40 changes: 0 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,46 +187,6 @@ func main() {
```
在分布式环境中,如果存在类似于多服务器需要同时间刷新配置时,可使用`Cron`表达式设置定时任务。

### 流操作
可以通过 `stream` 包快速开启对`切片``map`的流式操作,例如:
```go
package main

import (
"fmt"
"github.com/kercylan98/minotaur/utils/stream"
"github.com/kercylan98/minotaur/utils/streams"
)

func main() {
s := stream.WithSlice([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).
Copy().
Shuffle().
Filter(true, func(index int, item int) bool {
return item%2 == 0
}).
Zoom(20).
Each(true, func(index int, item int) bool {
t.Log(index, item)
return false
}).
Chunk(3).
EachT(func(index int, item stream.Slice[int]) bool {
t.Log(item)
return false
}).
Merge().
FillBy(func(index int, value int) int {
if value == 0 {
return 999
}
return value
})

fmt.Println(s)
}
```

### 基于`xlsx`文件的配置导出工具
该导出器的`xlsx`文件配置使用`JSON`语法进行复杂类型配置,具体可参考图例
- **[`planner/pce/exporter`](planner/pce/exporter)** 是实现了基于`xlsx`文件的配置导出工具,可直接编译成可执行文件使用;
Expand Down
77 changes: 77 additions & 0 deletions configuration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Configuration

configuration 基于配置导表功能实现的配置加载及刷新功能

[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/configuration)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--
|[Init](#Init)|配置初始化
|[Load](#Load)|加载配置
|[Refresh](#Refresh)|刷新配置
|[WithTickerLoad](#WithTickerLoad)|通过定时器加载配置
|[StopTickerLoad](#StopTickerLoad)|停止通过定时器加载配置
|[RegConfigRefreshEvent](#RegConfigRefreshEvent)|当配置刷新时将立即执行被注册的事件处理函数
|[OnConfigRefreshEvent](#OnConfigRefreshEvent)|暂无描述...


> 结构体定义
|结构体|描述
|:--|:--
|[RefreshEventHandle](#refresheventhandle)|配置刷新事件处理函数
|[Loader](#loader)|配置加载器

</details>


#### func Init(loader ...Loader)
<span id="Init"></span>
> 配置初始化
> - 在初始化后会立即加载配置
***
#### func Load()
<span id="Load"></span>
> 加载配置
> - 加载后并不会刷新线上配置,需要执行 Refresh 函数对线上配置进行刷新
***
#### func Refresh()
<span id="Refresh"></span>
> 刷新配置
***
#### func WithTickerLoad(ticker *timer.Ticker, interval time.Duration)
<span id="WithTickerLoad"></span>
> 通过定时器加载配置
> - 通过定时器加载配置后,会自动刷新线上配置
> - 调用该函数后不会立即刷新,而是在 interval 后加载并刷新一次配置,之后每隔 interval 加载并刷新一次配置
***
#### func StopTickerLoad()
<span id="StopTickerLoad"></span>
> 停止通过定时器加载配置
***
#### func RegConfigRefreshEvent(handle RefreshEventHandle)
<span id="RegConfigRefreshEvent"></span>
> 当配置刷新时将立即执行被注册的事件处理函数
***
#### func OnConfigRefreshEvent()
<span id="OnConfigRefreshEvent"></span>
***
### RefreshEventHandle
配置刷新事件处理函数
```go
type RefreshEventHandle struct{}
```
### Loader
配置加载器
```go
type Loader struct{}
```
27 changes: 27 additions & 0 deletions examples/internal/deadlock-detect-server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Main



[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/main)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--


> 结构体定义
|结构体|描述
|:--|:--

</details>


27 changes: 27 additions & 0 deletions examples/internal/room-shunt-server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Main



[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/main)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--


> 结构体定义
|结构体|描述
|:--|:--

</details>


27 changes: 27 additions & 0 deletions examples/internal/simple-echo-websocket-server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Main



[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/main)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--


> 结构体定义
|结构体|描述
|:--|:--

</details>


27 changes: 27 additions & 0 deletions examples/internal/ticker-server/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Main



[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/main)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--


> 结构体定义
|结构体|描述
|:--|:--

</details>


27 changes: 27 additions & 0 deletions examples/internal/ticker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Main



[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/main)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 包级函数定义

|函数|描述
|:--|:--


> 结构体定义
|结构体|描述
|:--|:--

</details>


39 changes: 14 additions & 25 deletions game/README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,27 @@
# Game

game 目录下包含了各类通用的游戏玩法性内容,其中该目录主要为基础性内容,具体目录将对应不同的游戏功能性内容。

[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/game)
![](https://img.shields.io/badge/Email-kercylan@gmail.com-green.svg?style=flat)

Game 包提供了游戏领域中常见的功能实现,例如活动、任务、战斗、房间等实现。
开发者可以使用它来快速构建游戏中的常见功能,例如游戏活动、任务系统、多人房间等。
## 目录
列出了该 `package` 下所有的函数,可通过目录进行快捷跳转 ❤️
<details>
<summary>展开 / 折叠目录</summary
> 目前还在考虑逐步将该包移除,未来项目结构可能会进行调整
## package activity [`活动`](./activity)
提供了通用的活动设计,开发者可以使用它来设计和实现游戏中的活动机制。活动是游戏中重要的激励和玩法设计元素,它可以是一次性的,也可以是周期性的。活动系统框架将包括活动的创建、开启、关闭、奖励等功能,开发者可以根据游戏类型和风格,定制不同类型的活动,并设定相应的奖励机制,以增加游戏的可玩性和挑战性。
> 包级函数定义

活动整体的配置将通过可选项的方式进行配置。
|函数|描述
|:--|:--

> `activity` 包中提供了以下 6 种事件:
> - 即将开始的活动事件
> - 活动开始事件
> - 活动结束事件
> - 活动结束后延长展示开始事件
> - 活动结束后延长展示结束事件
> - 新的一天事件

## package fight [`战斗`](./fight)
`fight` 中目前仅提供了回合制[`TurnBased`](./fight/turn_based.go)的实现。
- [`TurnBased`](./fight/turn_based.go) 仅提供了回合制的基本实现,开发者可以根据自己的需求进行扩展。其中包括:回合切换、回合开始、回合结束、回合超时、根据速度调节下次行动间隔。
> 结构体定义
## package space [`空间`](./space)
计划提供游戏中常见的空间设计,例如房间、地图等。开发者可以使用它来快速构建游戏中的常见空间,例如多人房间、地图等。
> 目前仅提供了房间的基本实现
|结构体|描述
|:--|:--

- [`Room`](./space/room_manager.go) 提供了房间的基本实现,开发者可以根据自己的需求进行扩展。
- 房间通过 [`RoomManager`](./space/room_manager.go) 进行管理,由 [`RoomController`](./space/room_controller.go) 进行控制;
- 实现了加入、退出、事件、查询、销毁、座位、带顺序座位号、密码、人数上限等常用的基础功能。
</details>

## package task [`任务`](./task)
提供了通用的任务设计,开发者可以使用它来设计和实现游戏中的任务机制。任务是游戏中重要的激励和玩法设计元素,它可以是一次性的,也可以是周期性的。任务系统框架将包括任务的创建、开启、关闭、奖励等功能,开发者可以根据游戏类型和风格,定制不同类型的任务,并设定相应的奖励机制,以增加游戏的可玩性和挑战性。

> 该包仅实现了任务基本状态的管理,例如任务类型、分配、事件、状态变化等,开发者可以根据自己的需求进行扩展。

0 comments on commit 83beeb4

Please sign in to comment.