FaLimps 1.0 (limp是蹩, 这是smg简写啦)
统一function、advancements、loot table的大致架构以及命名标准,方便发布相关模块、避免冲突。
+ 模块名称
+ functions
+ init.mcfunction
+ main.mcfunction
+ ...
+ advancements或loot_tables
+ ...
+ mc_advancements或mc_loot_tables
+ ...
functions、advancements及loot_tables里的档案会放在模块名称的命名空间之下
mc_advancements及mc_loot_tables内的档案会放在minecraft命名空间之下
init.mcfunction为模块初始化的命令,包括如添加objective、设置分数等
main.mcfunction为每游戏刻之下一次的命令,如同以前的高频系统
注意: init及main都会被外面的命令调用,不需要亦不应使用advancements执行或修改gameLoopFunction执行
系统不能在高频期间更改需要高频执行的命令,因此如需更改高频执行的命令,请把不同系统写在不同的function,并放置实体储存资讯,在main里使用function (name) if (实体)
调用模块
为了避免发生命名冲突,init.mcfunction里应当列出名称前缀及scoreboard objective名称
除了objective及team以外的都需要加上前缀,如”pca_test”,前缀需在init.mcfunction以 ‘#prefix: (前缀)’的方式写出,如’#prefix: pca_’
objective和team则不必须加上前缀(但仍然建议加上前缀或其他标识避免碰撞),需在init.mcfunction里进行添加,以方便检查冲突,如’scoreboard objectives add abc dummy’
玩家/组织名-系统名称
玩家名可以使用昵称
全部必须小写, 并且以 _
分割单词, 名称可用字符为 a-z0-9_
-
字符只能用作分隔作者和系统名称(只能出现一次)
如 cbl-pig_fly
或 pca-test1
全部必须小写, 并且以 _
分割单词, 可用字符为 a-z0-9_
不建议使用拼音
前二者应加上前缀,如 “pca_test”。这种情况下前缀为 “pca_”
后两者建议加上前缀,但当长度不足的时候也可以不写前缀
system/start.mcfunction:
scoreboard objectives add sys_start dummy
scoreboard players set @s sys_start 0
stats entity @s set QueryResult @s sys_start
gamerule sys_start
function system:init if @s[score_sys_start=0]
gamerule sys_start 1
system/start.json (advancement)
{"criteria":{"a":{"trigger":"minecraft:tick"}},"rewards":{"function":"system:start"}}