本文机制解析来自AS1.10.27(1.12.2)版本源码。

时间对星能的影响

星辉mod将MC一天的20分钟分为4部分:

从0刻开始,白天占一天的一半。日出日落各占七分之一,剩下的是夜晚。

星能时间参数在白天为0、夜晚为1,日出日落则呈线性涨落。平均值为0.357。

星辉mod的绝大多数星能装置在白天都会受到极大的削弱。


星能密度分布

星辉mod将MC世界分割为无数32*32大小的网格,将这些网格边界的十字交点作为生成星能场的锚点。这些锚点的星能密度都是随机的。随后星辉mod会基于这些锚点,利用余弦插值的方法生成两个星能场。将这两个星能场在某个坐标的星能密度相乘,便可得到该坐标的总星能密度。

注:星能场的基础星能密度取值范围为0到1之间,因此两个场的乘积范围也是0到1之间。

而法斯克共振器可以在夜间找到总星能密度大于0.4的区域,并以深蓝色的迷雾显示。如果是大于0.8的区域则会出现白色的光点。


星能密度的影响

聚能水晶:

星能密度对增幅水晶的效果一般不明显。增幅水晶会享受30%的星能密度加成。比如放在0.5密度区域的增幅水晶可以额外提供30%×0.5=15%星能。

聚能水晶提供的星能公式:

无多方块:星能=(0.2+0.8×时间系数 )×(0.2+0.8×星座系数 )×(1+0.3×密度系数水晶尺寸 ×(抛光 ÷100%) ×(与最近的聚能水晶的距离[1] ÷16)×0.006

有多方块(强效):星能=(0.6+1.1×时间系数 )×(0.6+1.1×星座系数 )×(1+0.3×密度系数水晶尺寸 ×(抛光 ÷100%) ×(与最近的聚能水晶的距离[1] ÷16)×0.006

星座系数:对于除时钟座和唤生座外的10个星座而言,星空系数会以8天为1周期,在0.5和1之间呈正弦曲线波动(每个星座连续出现5天,中间的那天系数是1;不出现的3天中中间那天系数是0.5)。唤生座的系数在望和朔月时为1;上弦、下弦时为0.5;其余时间为0.75。时钟座的系数在日食当天为1;其余时间为0.6。

例:假如密度系数是0,则满属性的强效天体水晶平均产出 (0.6+1.1×0.357)×(0.6+1.1×0.75)×900×0.006=7.64点星能,时钟座的强效天体水晶平均产出 (0.6+1.1×0.357)×(0.6+1.1×0.611)×900×0.006=6.82点星能。

1.16.5版本中起公式变更为:

无多方块:星能=聚能水晶收集率*(0.2+0.8*(0.3+0.7*时间系数))*(与最近的聚能水晶的距离[1]/16)*(1+0.3*密度系数)*(0.4+0.6*星座系数)
有多方块(强效):星能=聚能水晶收集率*(0.6+0.5*(0.3+0.7*时间系数))*(与最近的聚能水晶的距离[1]/16)*(1+0.3*密度系数)*(0.4+0.6*星座系数)

星座系数在1.16.5中的变化:
时钟座的系数在日食当天为1,其余时间为0.25。
唤生座的系数在望和朔月时为1;上弦、下弦时为0.3;其余时间为0.65。

聚能水晶收集率初始为1,具体增幅看水晶石的属性。

例:一个尺寸3、纯度2、可塑性3、聚能比率3和聚焦到攻烈座的攻烈座天辉聚能水晶,其聚能水晶收集率=1*1.6*1.8*1.75*1.6*1.6=12.9024。


合成祭坛:

星能密度对各等级的合成祭坛都有着显著的影响。合成祭坛可以享受66.7%的星能密度加成。

合成祭坛从天空接收的能量来自以下公式:

能量=(0.2+0.8×时间系数 )×(0.6+0.4×密度系数高度系数 ×3200

高度系数:y=120时为1,y<120时每降1格减少100分之1;y>120时每升1格增加272分之1;y<40时为0。

(不同设备的高度系数机制有差别)

聚能水晶和光波增幅器可以提供额外的星能。每1点星能等于4000祭坛能量。

在1.12.2中合成祭坛的星能自然衰减倍率为0.95,1.16.5版本则为0.9。

在1.16.5版本中:
星辉合成台,最少来源数为1,等级为0。
星辉祭坛,最少来源数为2,等级为1。

天赋祭坛 ,最少来源数为2,等级为2。

五彩祭坛,最少来源数为3,等级为3。

祭坛容量为1000 * 2^祭坛等级,因为衰减机制的存在,所以实际能量上限为祭坛容量*0.9+高度提供的星能+星能场提供的星能(正常情况最高是7700)。

1.16.5中有4个有效来源的星能,其中每个来源每tick能获得的最大星能为祭坛容量/8.5/最少来源数。

高度:(高度/7^1.5/65 (最小0,最大1,114格即可最大))*时间系数*(祭坛等级+1)*60。
星能场:密度系数的平方根*时间系数*(祭坛等级+1)*65。
聚能水晶:聚能水晶提供的星能*祭坛等级(最大为1)*60。
星辉转继器: (0.7+0.3*(高度/7^1.5/60 (最小0,最大1,108格即可最大)))*时间系数*临近系数*45。
临近系数为附近8格范围(切比雪夫距离)内,到最近的星辉转继器的欧几里得距离/8(最小0,最大1,没有则为1)
祭坛搜索范围为附近16格(切比雪夫距离)


光波增幅器:

光波增幅器不享受任何星能密度加成。

增幅器额外星能=0.3×高度系数 ×(0.2+0.8×时间系数 )×(与最近的增幅器的距离[1]÷16)


效应放大器:

效应放大器享受50%的星能密度加成。

效应放大器被动接收星能=(0.2+0.8×时间系数 )×(0.2+0.8×星空系数 )×(1+0.5×密度系数 )×水晶尺寸 ×(抛光 ÷100%) ×0.006

(是的,在没有聚能水晶多方块结构的情况下,把水晶石放进效应放大器里产出的星能比做成聚能水晶产出的星能多)

关于效应放大器的具体工作机制见隔壁


聚星缸:

聚星缸可以享受120%的星能密度加成,但是由于聚星缸的流体产量是与星能的平方根成正比,所以实际对其生产效率的加成只有48.3%。

聚星缸每刻产出流体公式:

产量(mB)=产能系数 ×√((0.3+0.7×时间系数 )×(1+1.2×密度系数 高度系数 )

高度系数:y≥120时为1;y<120时每降1格减少120分之1。

产能系数:用来生产液体的物品自带的属性。见本mod的聚星缸页面。


烽火树:

烽火树没有接收自然星光的能力,所以星能密度对其没有影响。


[1] 该距离为直线的欧几里得距离,且最大值为16。


源码来自:

  增幅水晶:  hellfirepvp.astralsorcery.common.starlight.transmission.base.crystal.IndependentCrystalSource

                     hellfirepvp.astralsorcery.common.util.CrystalCalculations

  合成祭坛:  hellfirepvp.astralsorcery.common.tile.TileAltar

  光波增幅器: hellfirepvp.astralsorcery.common.tile.TileAttunementRelay

  效应放大器: hellfirepvp.astralsorcery.common.tile.TileRitualPedestal   

  聚星缸:        hellfirepvp.astralsorcery.common.tile.TileWell

  烽火树:        hellfirepvp.astralsorcery.common.tile.TileTreeBeacon

  时间机制:  hellfirepvp.astralsorcery.common.constellation.distribution.ConstellationSkyHandler

  星能密度:  hellfirepvp.astralsorcery.util.SkyCollectionHelper