3.7.4版本后,此物品/方块被添加,作为注魔技能的关键物品/方块出现。
方块信息
注魔仓的硬度为10,爆炸抗性为15,不遮挡光照,需要使用镐挖掘,否则不会掉落任何物品。
注魔仓拥有1个方块参数:方向(facing)
方向参数的可用取值为任意水平方向(可取 north、south、west、east),默认值为 north。
注魔仓拥有其特殊的方块实体(BlockEntity)。
获取
玩家可以在工作台上合成注魔仓。
用途
当注魔仓被放置时,如果其具有自定义名称(例如在铁砧上被重命名过),且该位置的方块实体为注魔仓的方块实体,则将该方块实体的名称改为自身的自定义名称。
当注魔仓确定放置状态时,其方向参数为放置其的水平方向的对向。
当玩家右击注魔仓时,会为玩家打开此方块的GUI,并判定交互成功。该GUI的菜单对应着该方块的方块实体。
当注魔仓被破坏时,如果该位置的方块实体为注魔仓的方块实体,则将该方块实体中的所有所含物品掉落。
进度
图标 | 标题 | 描述 | 获取方法 | 进度类型 | 父进度 | ID | 是否隐藏 |
---|---|---|---|---|---|---|---|
准备注魔! | 合成一个注魔仓 | 【见描述】 | 进度 | 准备聚合! (见聚合台) | aoa3:overworld/ready_to_imbue | 否 |
GUI
注魔仓中有7个物品格,从左至右前6个物品格为输入格,第7个物品格为输出格。
其中,第二至六个物品格能放入聚能透镜,第一、七个物品格没有放置物品要求。
当GUI内含的物品变化时,如果其输出没有更新,则在可以使用配方的情况下,更新输出,并记录已更新输出。
当GUI因玩家而更新输出时,尝试根据当前输入格内的物品获取对应的注魔配方,如果成功,且将要输出的物品与输出格的物品组的标签相同,则判定成功注魔,消耗所有输入格内的物品(有耐久值的消耗1点耐久,无耐久值的消耗1个物品),将输出格内的物品改变(为输出物品附魔),并根据配方数据给予玩家注魔技能经验。(如果不因玩家而更新输出,则不输出任何物品)
当GUI判定是否可以使用配方时,如果玩家为创造模式,或该配方的注魔等级要求 ≤ 1,或玩家的注魔等级 ≥ 该配方的注魔等级要求,则判定可以使用配方;否则判定不可以使用配方。
该GUI中会渲染一条光束(图中的白色部分),渲染光束时,如果注魔仓方块实体的第一个物品属于聚能石,则获取该聚能石的光束颜色,作为初始光束颜色;否则,初始光束颜色 = 0。
对于第二个物品格及之后的每一个物品格,如果该物品格非空,且该物品格的物品属于聚能透镜,则获取该聚能透镜的颜色,与当前光束颜色混色,混色时 Alpha = 0.75。
在GUI中的渲染区域,依据当前颜色,渲染光束,该光束渲染到下一个物品格的位置结束。
(聚能石发射光束,在渲染区域内,光束每经过一次透镜时,被透镜改变颜色,如果该位置没有透镜,则不改变颜色)
特殊渲染
注魔仓拥有特殊渲染。
渲染时,按照注魔仓的朝向渲染注魔仓内的物品与光束,如果光束颜色 ≠ 0,则按照光束颜色在光束内生成“warped_spore”颗粒效果,这些颗粒效果在水平方向上拥有随机速度,即向光束外发射。
渲染光束时,如果注魔仓方块实体的第一个物品属于聚能石,则获取该聚能石的光束颜色,作为初始光束颜色;否则,初始光束颜色 = 0。
对于第二个物品格及之后的每一个物品格,如果该物品格非空,且该物品格的物品属于聚能透镜,则获取该聚能透镜的颜色,与当前光束颜色混色,混色时 Alpha = 0.75。
在该物品格的渲染位置,按照该方块朝向沿着X轴水平旋转90度的方向,依据当前颜色,渲染信标光束,该信标光柱随着时间推移而旋转(速度较快),该信标光柱到下一个透镜的位置结束。
(聚能石水平发射光束,光束每一次经过透镜时,被透镜改变颜色,如果该位置没有透镜,则不改变颜色,光束渲染到最后一个物品格位置时结束)
渲染物品时,渲染注魔仓内的每个物品(自动跳过空的物品格),初始渲染位置为(0,0,-0.34375 + 0.125 * 物品格编号)(其中,物品格编号的值为0~6之间的整数)
如果该物品格为第一个或第七个物品格,则将其缩放至原大小的0.5倍。其中第一个物品格实际渲染位置为其初始渲染位置的相对位置(0,0,0.3135),第七个物品格实际渲染位置为其初始渲染位置的相对位置(0,0,-0.03125)。
(在注魔仓方块内的对应槽位渲染透镜,第一个物品格的物品与第七个物品格的物品贴着方块模型渲染)
方块实体
注魔仓拥有方块实体。该方块实体名称为“ImbuingChamberBlockEntity”。
该方块实体可以存储7个物品组的列表。
当方块实体掉落物品时,对于其中每一个物品组,将其在方块实体的位置以物品形式生成,并清空物品列表。
该方块实体可以存储其中的物品,将存储的物品写入NBT,在加载时读取NBT中存储的内容。(详细内容见源码)