跳到主要内容

公告板 v2

下载

本包用于创建一个公告板实体。

在现在的众多高端地图中,总是会有一些「公告板」来宣传作者和团队信息。例如,下图为著名的 15 Years Journey 地图中的公告板:

billboard_1

为此,我们创建了一个类似的实体模板,便于广大地图开发者使用。

效果图(开启 Vibrant Visuals):

billboard_2

本包为行为包资源包组合的包。

温馨提示

本文假定您已经能够独立编写属于自己的自定义实体。如果您还不能编写自定义实体,请阅读模块 2 的教程:6.1 数据驱动实体


文件架构

下面的文件架构中,粗体部分代表本包的核心文件。在您合并包时应当着重关注下面被粗体的文件。

其中可能会出现多个文件冲突。如果在粘贴过程中遇到冲突,请务必选择跳过这些文件而非覆盖您原有的文件,并按照下面可能需要修改的文件列表进行选择性粘贴。

  • BP_billboard 文件图标BP_billboard:行为包根目录
    • entities 文件图标entities:实体服务端定义
      • template 文件图标template:(建议换名)分类
        • billboard.server_entity.json 文件图标billboard.server_entity.json公告板的行为包定义
    • manifest.json 文件图标manifest.json:(有冲突风险)清单文件
    • pack_icon.png 文件图标pack_icon.png:包图标
  • RP_billboard 文件图标RP_billboard:资源包根目录
    • animations 文件图标animations:实体动画定义
      • billboard.animations.json 文件图标billboard.animations.json公告板的动画定义
    • entity 文件图标entity:实体客户端定义
      • billboard.client_entity.json 文件图标billboard.client_entity.json公告板的资源包定义
    • models 文件图标models:模型
      • entity 文件图标entity:实体模型
        • billboard.geo.json 文件图标billboard.geo.json公告板的模型
    • render_controllers 文件图标render_controllers:渲染控制器
      • billboard.render_controllers.json 文件图标billboard.render_controllers.json公告板的渲染控制器
    • texts 文件图标texts:文本
      • zh_CN.lang 文件图标zh_CN.lang有冲突风险)中文翻译文本
      • en_US.lang 文件图标en_US.lang有冲突风险)英文翻译文本
    • textures 文件图标textures:贴图
      • entity 文件图标entity:实体贴图
        • billboard.png 文件图标billboard.png公告板的贴图
    • manifest.json 文件图标manifest.json:(有冲突风险)清单文件
    • pack_icon.png 文件图标pack_icon.png:包图标
  • 模板PPT.pptx 文件图标模板PPT.pptx公告板的画板 PPT

合并时可能需要修改的文件

以下文件可能和您已有的包产生冲突。在复制这些文件时,如果产生冲突,请注意以下文件不能直接复制,需要视情况手动粘贴其中的内容

  • RP/texts/*.lang

以下文件中的自定义内容使用了字段template,然而我们不推荐您在您的作品中使用该字段。在正式使用本包之前,您应当将这些字段按您的需求进行改动。

  • 全部核心文件。

提示:您可以使用 VSC 的全局搜索功能,将所有的template更改为您的命名空间。

使用方法

合并完成之后,您就可以使用下面的功能。

生成公告板

公告板可以使用刷怪蛋生成。然而,我们推荐您使用命令/summon来生成公告板。示例如下:

summon template:billboard ~~~

请注意命名空间应当随着您使用的命名空间而变动。这样您就生成了一个公告板。

移除公告板

您当然可以直接使用/kill命令直接清除一个公告板。然而,这会导致其在死亡不久后产生一个死亡白雾,可能会影响视觉效果。

如果您不希望其在死亡时产生白雾,可以调用下面的事件直接移除之。

事件名描述
template:remove_immediately立刻移除该实体。

这样,该实体会在调用该事件时毫无声息地被立刻移除。示例如下:

event entity @e[type=template:billboard] template:remove_immediately

使公告板无法穿过

因为基岩版的实体引擎限制,公告板是可以被穿过的。所以,您需要额外使用屏障阻挡公告板。

首先,考虑到屏障的限制,您需要限制公告板的朝向为朝向正东、正西、正北或正南,然后,按照您设置的ry值,使用对应的命令设置屏障:

ry=0的命令
summon template:billboard x y z 0 0
execute as @e[type=template:billboard,rym=-2,ry=2] at @s positioned ~-2~~ run fill ~~~~4~3~ barrier
ry=90的命令
summon template:billboard x y z 90 0
execute as @e[type=template:billboard,rym=88,ry=92] at @s positioned ~~~-2 run fill ~~~~~3~4 barrier
ry=180的命令
summon template:billboard x y z 180 0
execute as @e[type=template:billboard,rym=-180,ry=-178] at @s positioned ~-2~~ run fill ~~~~4~3~ barrier
ry=270的命令
summon template:billboard x y z 270 0
execute as @e[type=template:billboard,rym=-92,ry=-88] at @s positioned ~~~-2 run fill ~~~~~3~4 barrier

自定义公告板内容

我们提供的公告板模板中,有一个 PPT 文件模板PPT.pptx 文件图标模板PPT.pptx,您可以在此文件中设计公告板的内容:

custom_content

然后,截取一张 720×405(宽高比 16:9)的截图,并将此截图覆盖到公告板贴图billboard.png 文件图标billboard.png的对应区域上即可。

更新日志

相比于 v1 版本,v2 版本主要进行了如下更改:

  • 提升了最低版本需求为 1.21.0。
  • 现在可以调用template:remove_immediately来无痕移除公告板。

过往版本下载

您可以在这里下载到过往版本。然而,我们已不再推荐使用这些旧版本。

下载 v1 版本