目录

SC-CommandBlock 命令方块

通过指令实现各种各样的功能——为 Survivalcraft 提供强大的命令方块系统。

功能概述

命令方块模组为游戏添加了一个可编程的指令执行系统,支持 77 条功能指令28 条条件指令3 条扩展指令,指令还在不断扩充,覆盖建筑、实体、逻辑、特效等多个领域。

指令速览

功能指令(点击展开)
Order 指令 说明
1 book 命令手册
2 message 显示信息(屏幕消息/悬浮消息)
3 place 放置方块(单个/连线/框架/球/圆柱/长方体等)
4 break 破坏方块
5 replace 替换方块
6 copy 复制方块
7 rotate 旋转方块
8 fill 填充方块
9 move 移动方块
10 clone 克隆方块
11 undo 撤销操作
12 give 给予物品
13 clear 清除物品
14 replaceitem 替换物品
15 enchant 附魔
16 effect 药水效果
17 heal 治疗
18 kill 击杀实体
19 tp 传送
20 spawn 生成实体
21 time 设置时间
22 weather 设置天气
23 gamemode 游戏模式
24 explode 爆炸
25 setblock 设置方块状态
26 testblock 检测方块
27 scoreboard 记分板
28 title 标题显示
29 playsound 播放声音
30 stopsound 停止声音
31 particle 粒子效果
32 camera 摄像机控制
33 say 广播消息
34 tell 私聊消息
35 bossbar Boss 血条
36 schedule 延时执行
37 function 函数调用
38 tag 实体标签
39 data 数据操作
40 spreadplayers 随机分散玩家
41 setspawn 设置出生点
42 worldborder 世界边界
43 xp 经验值
44 damage 伤害
45 ride 骑乘
46 attribute 属性修改
47 summon 召唤
48 locate 定位结构
49 seed 种子查看
50 op/deop 权限管理
51 ban/pardon 封禁管理
52 whitelist 白名单
53 save 存档操作
54 stop 停止服务器
55 debug 调试
56 help 帮助
57 me 动作消息
58 trigger 触发器
59 advancement 进度
60 recipe 配方
61 loot 战利品
62 item 物品操作
63 execute 执行指令
64 forceload 强制加载
65 defaultgamemode 默认游戏模式
66 perf 性能统计
条件指令(点击展开)
Order 指令 说明
1001 if:block 检测方块
1002 if:entity 检测实体
1003 if:player 检测玩家
1004 if:item 检测物品
1005 if:score 检测分数
1006 ~ 1028 更多条件判断指令

项目结构

SC-CommandBlock/
├── Assets/
│   ├── InstructionsDoc_Def.xml      # 标准指令定义
│   ├── InstructionsDoc_Ext.xml      # 扩展指令定义
│   ├── InstructionsDoc_Particle.xml # 粒子指令定义
│   ├── InstructionsDoc_AI.xml       # AI 扩展指令定义
│   ├── InstructionLang/             # 指令多语言文件
│   ├── Lang/                        # 界面多语言文件
│   ├── Textures/                    # 材质图片
│   └── Widgets/                     # 界面 XML
├── Game/
│   ├── Basic/                       # 基础类(Instruction, CommandData, 枚举等)
│   ├── Block/                       # 方块类
│   ├── BlockOverride/               # 方块覆盖(树叶、玻璃、黏土)
│   ├── DataHandle/                  # 数据处理(表达式计算、颜色处理)
│   ├── Function/                    # 功能类(粒子系统、模组加载、快捷键)
│   ├── Manager/                     # 管理器(指令、复制、实体信息、撤销)
│   ├── Subsystem/                   # 子系统
│   │   ├── SubsystemCommand.cs          # 命令系统入口
│   │   ├── SubsystemCommandDef.cs       # 标准指令实现
│   │   ├── SubsystemCommandExt.cs       # 扩展指令实现
│   │   ├── SubsystemCommandAI.cs        # AI 扩展指令实现
│   │   ├── SubsystemCommandBlockBehavior.cs  # 命令方块行为
│   │   └── SubsystemCmdRodBlockBehavior.cs   # 命令棒行为
│   └── Widget/                      # 界面控件
├── Properties/                      # 程序集属性
├── CommandBlock.csproj              # 项目文件
├── CommandBlock.sln                 # 解决方案
├── modinfo.json                     # 模组信息
└── nuget.config                     # NuGet 配置

架构设计

核心类关系

SubsystemCommand              # 系统入口,管理指令注册与分发
 ├── m_functions              # 功能指令字典 (name → Func<CommandData, SubmitResult>)
 ├── m_conditions             # 条件指令字典 (name → Func<CommandData, SubmitResult>)
 │
 ├── SubsystemCommandDef      # 标准指令实现(AddFunction / AddCondition)
 ├── SubsystemCommandExt      # 扩展指令实现
 └── SubsystemCommandAI       # AI 扩展指令实现

InstructionManager            # 指令管理器,解析 XML 定义
 ├── FunInstructions          # 功能指令字典 (name → Instruction)
 ├── ConInstructions          # 条件指令字典 (if:name → Instruction)
 └── LangDictionary           # 多语言字典

Instruction                   # 指令数据模型
 ├── Name, About, Order, Condition, Survival
 ├── Types[]                  # 命令类型列表
 ├── Demos{}                  # 指令演示
 ├── Details{}                # 指令说明
 ├── Paras{}                  # 参数列表
 ├── Definitions{}            # 参数说明
 ├── Ranges{}                 # 参数范围
 └── Options{}                # 参数选项

工作模式

  • 创造模式:所有指令可用,无范围限制
  • 生存模式:仅 Limit="false" 的指令可用,受范围限制

指令执行流程

  1. 用户在命令方块界面输入指令
  2. CommandEditWidget 解析并提交指令
  3. SubsystemCommand 根据指令名查找注册的函数
  4. 执行对应子系统中的实现方法
  5. 返回 SubmitResult(成功/失败/提示信息)

开发指南

添加新指令

详见 指令添加文档.md,简要流程:

  1. 定义 XML:在 Assets/InstructionsDoc_XXX.xml 中添加 <Def> 元素
  2. 实现逻辑:在对应子系统中用 AddFunction / AddCondition 注册并实现
  3. 添加翻译:在 Assets/InstructionLang/InstructionLang_en-US.ini 中添加翻译 Key
  4. 测试验证:在游戏内测试指令效果

开发规范

详见 命令方块开发规范.md,核心要点:

  • 命名空间统一使用 Command
  • 方法使用大驼峰(PascalCase),变量以 m 开头
  • 大括号另起一行(展开式)
  • 指令尽量独立,共用逻辑封装为 public 方法
  • 严禁破坏原版存档结构,移除 Mod 后存档须正常可用

子系统扩展

每位开发者维护独立的子系统:

子系统 用途
SubsystemCommandDef 标准指令,只修 Bug 不大改
SubsystemCommandExt 扩展示例
SubsystemCommandAI AI 编写的指令

新增开发者:复制 CommandExt,重命名为 CommandXXX(XXX 为英文缩写)。

相关文档

文档 说明
指令添加文档.md 新增指令的完整开发指南
命令方块开发规范.md 代码风格、架构规范与兼容性要求

作者

再回首zh, 把红色赋予黑海, 镁生素等

关于
12.4 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号