# 物流系统 v5.0 文档

## 概述
物流系统 v5.0 是一个高级物品和流体传输系统，支持多容器操作和缓存模式。系统通过配置文件管理任务，支持复杂的过滤规则和优先级设置。

## 核心功能

### 1. 传输类型
- **物品传输**：在容器间移动物品
- **流体传输**：在容器间移动流体

### 2. 缓存模式
- 适用于及作为输出也作为输入的容器
- 物品被送如时添加临时黑名单 这些物品不会被再次传输到别的容器

### 3. 过滤规则
- **白名单**：只允许特定物品传输
- **黑名单**：禁止特定物品传输
- **数量限制**：设置一次传输物品数量

### 4. 优先级系统
- 输出容器按优先级分组
- 高优先级容器优先接收物品
- 同优先级采用轮询机制

## 配置文件结构
配置文件存储在 `config.cfg` 中，包含以下部分：

```lua
{
    settings = {
        logEnabled = false, -- 日志开关
        zhlog = false,      -- 中文日志开关
        delay = 0.01        -- 轮询延迟(秒)
    },
    tasks = { -- 任务列表
        -- 任务示例
        {
            type = "item", -- 或 "fluid"
            input = {
                ["容器名"] = {
                    cache = true/false,
                    whitelist = {["物品名"] = {}},
                    blacklist = {["物品名"] = {}}
                }
            },
            output = {
                ["容器名"] = {
                    priority = 数字,
                    cache = true/false,
                    whitelist = {["物品名"] = {count = 数量}},
                    blacklist = {["物品名"] = {}}
                }
            }
        }
    },
    Tlist = {} -- 缓存传输列表
}
```

## 使用命令

### 基本命令
| 命令 | 描述 | 示例 |
|------|------|------|
| `add <JSON>` | 添加新任务 | `add {"type":"item","input":{"left":{...}},"output":{"right":{...}}}` |
| `list` | 列出所有任务 | `list` |
| `remove <索引>` | 移除任务 | `remove 1` |
| `set <key> <value>` | 修改设置 | `set delay 0.05` |
| `help` | 显示帮助信息 | `help` |
| `exit` | 退出程序 | `exit` |

### 设置命令
| 键 | 值 | 描述 |
|----|----|------|
| `log` | true/false | 启用/禁用日志 |
| `zh` | true/false | 启用/禁用中文日志 |
| `delay` | 数字 | 设置轮询延迟(秒) |

## 任务配置示例

### 物品传输任务
```json
{
    "type": "item",
    "input": {
        "left": {
            "cache": true,
            "whitelist": {
                "minecraft:stone": {}
            }
        }
    },
    "output": {
        "right": {
            "priority": 1,
            "whitelist": {
                "minecraft:stone": {"count": 64}
            },
            "blacklist": {
                "minecraft:dirt": {}
            }
        }
    }
}
```

### 流体传输任务
```json
{
    "type": "fluid",
    "input": {
        "tank_left": {
            "whitelist": {
                "water": {}
            }
        }
    },
    "output": {
        "tank_right": {
            "priority": 2
        }
    }
}
```

## 日志系统
- **日志级别**：
  - SUCCESS (绿色)：成功操作
  - SKIPPED (橙色)：跳过操作
  - INFO (白色)：一般信息
  - WARNING (黄色)：警告信息
  - ERROR (红色)：错误信息
  - DEBUG (浅灰色)：调试信息

- **日志格式**：
  ```
  [时间] 级别: 消息
  ```

## 注意事项
1. 确保所有容器名称正确且可访问
2. 确保所有容器链接到电脑的同一个调制解调器
3. 流体容器必须支持流体接口
4. 复杂的过滤规则可能影响性能
5. 轮询延迟设置过低可能导致CPU占用过高

系统通过高效的缓存机制和优先级处理，实现了复杂的多容器物流管理，适用于各种自动化场景。