截图
介绍
概述
数据驱动的方块与物品揭示系统。随着探索逐步发现!
Revelationary 通过数据包或 API(供其他模组使用)为世界中新方块的发现提供了一种门控方式。
使用 Revelationary,你可以设计整合包/模组的进度,让玩家在开始新的游戏流程时不会感到不知所措。只有当玩家解锁了特定的进度时,他们才能感知到这些世界生成方块,使方块对他们可见。
示例:
玩家将某种特定的矿石视为石头。当他们击败末影龙后,就能在世界中看到并开采你的矿石——它从一开始就一直在那里。对每位玩家独立生效,且性能非常出色。
揭示
“揭示是某种真相或知识的显露或公开”
如果你是进度导向模组或整合包的设计者,那么你来对地方了。
借助 Revelationary,你可以使用数据包或 Revelation API,随着玩家的进度逐步揭示世界中的方块。一处看似填满普通石头的裂隙,可能会在玩家击败 Boss 或达到重要里程碑时,显露出充满生机与矿石的真面目。
只要玩家尚未具备必要的进度,你通过 API 或数据包在 Revelationary 中注册的方块和物品就只会显示为隐晦的名称;对于世界中的方块,它们会掉落与其伪装方块相同的掉落物,从而为玩家提供无缝的体验,而不会被大量在游戏初期无法使用的不明资源所淹没。相反,你可以只在需要时引入资源。
限制
除了外观和掉落物之外,伪装方块会保留原始方块的所有属性:碰撞箱、光线是否穿透以及其他一切。在寻找合适的伪装候选方块时请记住这一点。你的矿石最完美的伪装是石头或深板岩,因为它们有许多相似之处。同样,你可以用虞美人来伪装你难以寻觅的植物:两者都有较小的碰撞箱,玩家可以从中穿过。
如果你是程序员,你可以使用 Revelation API 根据方块对玩家是否可见来动态更改其属性。这样你甚至可以把你的花伪装成空气:在伪装状态下给它一个空的碰撞箱,玩家在能看到它们之前甚至可能不知道它的存在!
在 Revelationary 的 wiki 中可以找到大量数据包与 API 的示例:https://github.com/DaFuqs/Revelationary/wiki
通过数据包注册揭示
必须放置在文件夹 resources/data/<<mod_id>>/revelations 中
{
"advancement": "spectrum:milestones/reveal_quitoxic_reeds",
"block_states": {
"minecraft:grass": "minecraft:beacon",
"minecraft:tall_grass": "minecraft:obsidian",
"minecraft:tall_grass[half=upper]": "minecraft:netherite_block"
},
"items": {
"minecraft:nether_star": "minecraft:gunpowder"
}
}
注册“感知揭示”的方块或物品
public class CloakedItem extends Item implements RevelationAware {
Identifier cloakAdvancementIdentifier;
Item cloakItem;
public CloakedItem(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem) {
super(settings);
this.cloakAdvancementIdentifier = cloakAdvancementIdentifier;
this.cloakItem = cloakItem;
registerCloak();
}
@Override
public Identifier getCloakAdvancementIdentifier() {
return cloakAdvancementIdentifier;
}
@Override
public Hashtable<BlockState, BlockState> getBlockStateCloaks() {
return new Hashtable<>();
}
@Override
public Pair<Item, Item> getItemCloak() {
return new Pair<>(this, cloakItem);
}
@Override
public void onCloak() { }
@Override
public void onUncloak() { }
}
在揭示发生时注册回调
RevelationHolder.registerRevelationCallback(new RevelationHolder.UncloakCallback() {
@Override
public void trigger(List<Identifier> advancements, List<Block> blocks, List<Item> items) {
for(Block block : blocks) {
if(Registry.BLOCK.getId(block).getNamespace().equals(MOD_ID)) {
...
<我不知道。比如显示一个弹窗之类的。你来告诉我>
...
break
}
}
}
});
Discord
你会在 Spectrum 的 Discord 上找到很多乐于助人的人。周围总是有友好且愿意帮忙的人。如果你愿意,也来逛逛吧!
https://discord.com/invite/EXU9XFXT8a
常见问题
Revelationary 支持哪些 Minecraft 版本?
Revelationary 支持 Minecraft Java 版 1.18.2–26.2,共 19 个版本,可用的加载器:Fabric / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。
Revelationary 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
DaFuqs 的其他作品
查看全部 →Paginated Advancements & Custom Frames
更好的进度界面
Blahaj – Replushed
添加了宜家热门鲨鱼抱枕(Blåhaj)以及其他一系列玩偶。
Food Effect Tooltips (Forge)
为食用后会获得状态效果的食物添加提示信息
Chalk (Fabric)
由 mortuusars 制作的 Forge 模组 Chalk 的 Fabric 移植版,并加入了一些额外内容。
评论
登录后评论和评分