1.16.5-3.6 Alpha 3 版本后,此实体被添加。
实体信息
不自然生成,技术性实体,不属于任何其他类型,实体更新间隔为0.25秒(5 tick)。
当玩家手持鱼笼(物品)并按下右键时,会生成鱼笼(实体),并消耗1个玩家手持的鱼笼(物品),在客户端判定交互成功。
判定箱:宽度:0.65格;高度:0.63格 |
行为
概述
玩家需要将鱼笼扔进水中(扔出后玩家就是该鱼笼的主人),只有位于水底的鱼笼才会捕鱼,位于地面上的鱼笼会在一段时间后变成掉落物。
每0.25秒(5 tick),鱼笼会尝试进行一次捕鱼,有1/5000概率成功。如果不位于流动的水中,则再1/3概率成功;如果位于流动的水中,则再1/2概率成功。
如果最终捕鱼成功,则根据其主人的状态(包括幸运值等参数)抽取鱼笼的战利品表,将其存入渔获物品。玩家可以看到鱼笼的渔获,这些物品会显示在鱼笼中。
鱼笼可存储3个渔获物品,存储满后不会继续捕鱼,请注意及时收取。
玩家需要右击鱼笼以收取物品,每收取一次会使其损失1点耐久,给予玩家鱼笼和渔获物品,并给予玩家垂钓技能经验。
当鱼笼受到伤害时,会直接消失,不产生任何其他行为(甚至不掉落任何东西)。
技术细节
鱼笼无法改变所处维度,能被玩家推动,不能被流体推动、会阻碍建造,免疫除技术伤害(详见伤害类型)以外的所有伤害。
鱼笼可被选取,当玩家在创造模式下选取该实体时,选取结果为鱼笼。
如果鱼笼的存在时间 > 0.05秒(1 tick),则实体可以与鱼笼执行碰撞判定,此时鱼笼的判定箱会阻挡实体运动。
鱼笼有6个实体参数,分别为:
战利品列表(loot):该列表共有3个参数。其中:
第1项名为“渔获物品1”(CAUGHT_STACK_1);
第2项名为“渔获物品2”(CAUGHT_STACK_2);
第3项名为“渔获物品3”(CAUGHT_STACK_3)。
已损耐久(damage):该参数为整数,无默认值。
主人(ownerUUID):该参数为UUID,默认为 null。
在鱼笼被添加到世界中时:
在玩家眼部位置生成鱼笼,该鱼笼的视线方向同玩家的视线方向,
鱼笼的速度为玩家的视线向量 * 0.75,
将自身的主人参数设为该玩家的UUID,将已损耐久参数设为原鱼笼(物品)的已损耐久。
当鱼笼接收到游戏刻更新时:
检测自身是否在水中,将结果存入参数“此前是否在水中”。
执行“基础游戏刻行为”;
执行“捕鱼游戏刻行为”。
获取当前移动速度,设定重力初始值 = 0.08。
如果自身位于水中,则:
获取自身的Y坐标,如果此前不在水中,则实际速度为原速度 * 0.1。
如果鱼笼的实际速度的Y方向分量 < -0.023,则在自身位置周围生成“bubble”颗粒效果。
根据实际移动速度改变自身位置。
设定新运动状态 = 原速度 * 0.8,设定Y方向速度。
如果鱼笼的原速度的Y方向分量 ≤ 0,且 | 新运动状态的Y方向分量 - 0.005 | ≥ 0.003,且 | 新运动状态的Y方向分量 - 重力 / 16 | < 0.003,则设定Y方向速度 = -0.003;否则,设定Y方向速度 = 新运动状态的Y方向分量 - 重力 / 16。
将新速度定为(新运动状态的X分量,Y方向速度,新运动状态的Z分量),将实体的移动速度设为新速度。
如果该实体被水平碰撞,且(新速度的X分量,新速度的Y分量 + 0.6 - 当前Y坐标 + 之前获取的Y坐标,新速度的Z分量)位置未被阻挡,则将实体的移动速度设为(新速度的X分量,0.3,新速度的Z分量)。
否则:
获取该方块下方阻碍该实体运动的方块,获取该方块的摩擦力因数(记为光滑度)。
如果该实体位于地面上,则实际摩擦力因数 = 该方块的摩擦力因数 * 0.91,否则实际摩擦力因数 = 0.91。
根据实际移动速度改变自身位置。
设定新速度 = 原速度,获取该向量的Y分量。
如果下方阻挡该实体运动的方块被加载,则:
如果自身Y坐标 > 0,则新速度的Y分量 = -0.1;否则,新速度的Y分量 = 0。
否则,如果该实体具有重力效果,则:
使新速度的Y分量 - 重力。
将实体的移动速度设为(新速度的X分量 * 实际摩擦力因数,新速度的Y分量 * 0.98,新速度的Z分量 * 实际摩擦力因数)
将实体的移动速度设为原移动速度 * 0.98。
当鱼笼执行“基础游戏刻行为”时:
更新该方块在水中的状态,并使水流改变自身移动。
如果自身Y坐标 < 当前维度的最低建造高度 - 20,则执行在该世界下方的行为。
如果位于熔岩中,则执行在熔岩中受伤的行为。
如果该实体存活,且存在时间 > 2秒(40 tick),且位于地面上,且不位于水中,则:
当鱼笼执行“捕鱼游戏刻行为”时:
如果鱼笼的主人不存在,或渔获物品3非空,或不位于地面上,或不位于水中,则判定失败。
否则,有1/5000概率执行:
获取当前位置的流体状态,如果状态非流动的,则有2/3概率判定失败;
否则(状态为流动的),如果该流体的长度 = 0,则有1/2概率判定失败。
根据主人参数获取该物品的主人,如果其存在,则抽取战利品表。
抽取位置为该实体位置,抽取工具为鱼笼(物品),掉落实体为该鱼笼(实体),抽取实体为主人(玩家实体,而非UUID),幸运值 = 2 + 主人的幸运值。
根据鱼笼的战利品表,以及以上提供的参数,获取本次的战利品。
从鱼笼的战利品列表第一项开始尝试,如果该项非空,则将该项设为本次获取的战利品,尝试至最后一项或第3项结束。
当玩家与鱼笼交互时,如果鱼笼的主人不存在,或玩家的UUID = 鱼笼的主人,则:
创建一个鱼笼(物品),当前已损耐久 = 已损耐久 + 1;
如果当前已损耐久 < 鱼笼(物品)的最大耐久,则:
如果该鱼笼的渔获物品1非空,则:
执行垂钓技能的“鱼笼渔获”,向其中传入该鱼笼当前的战利品列表。
对于战利品列表中的每一个物品组,如果该物品组带有 minecraft:fishes 标签,则使该玩家的“捕鱼数”统计信息增加1,并将该物品组给予该玩家。
使该玩家的“ITEM_USED”统计信息增加1,使用的物品为鱼笼(物品)。
使该鱼笼(实体)消失,并判定交互成功。
否则,仅在客户端判定交互成功。
当鱼笼被攻击时,如果鱼笼对该伤害源不免疫,则:
如果该次攻击的伤害量 ≥ 1,则标记自身受伤,并消失。
当鱼笼从世界中移除时,如果该鱼笼的渔获物品1非空,则:
对于战利品列表中的每一个物品组,在自身位置生成该物品组的掉落物。
战利品表
物品 | 获得数量 | 获得概率 | 垂钓等级要求 | 受幸运影响 |
---|---|---|---|---|
生鳕鱼 | 1 | 12.0% | - | |
生鲑鱼 | 1 | 12.0% | - | |
热带鱼 | 1 | 9.6% | - | |
河豚 | 1 | 7.2% | ||
鹦鹉螺壳 | 1 | 2.4% | + | |
钻石 | 1 | 3.6% | ||
绿宝石 | 1 | 1.2% | + | |
符文箱 | 1 | 2.4% | + | |
闪亮的盒子 | 1 | 2.4% | + | |
帆背鱼 | 1 | 9.0% | 10 | |
紫鱼 | 1 | 9.0% | 10 | |
彩虹鱼 | 1 | 3.6% | 10 | + |
盔甲镀层 | 1 | 3.6% | + | |
甲壳质 | 1 | 5.4% | ||
海霸糊 | 1 | 6.6% | ||
海晶石台阶 | 1 | 4.8% | ||
海晶砂粒 | 1 | 4.8% | ||
潮汐长刀 | 1 | 0.1% | + | |
以上战利品表随机抽取1次 | ||||
在“垂钓等级要求”列中: 有数字,表示此项需玩家到达所示垂钓等级才会抽取。 无数字,表示此项对玩家垂钓等级无要求。 | ||||
在“受幸运影响”列中: “+”表示“拥有此Buff可增加此项概率” “-”表示“拥有此Buff可减小此项概率” |