Archived
perf(slashblade-exsa): 加速飞剑已命中目标过滤
原因 / Cause: 五类飞剑实体共享 EntityDriveEx 的 alreadyHitEntity 列表;每次 AABB 扫描后的 removeAll 都对历史命中目标线性查询。 修复 / Fix: 将共享的 alreadyHitEntity 从 ArrayList 替换为 HashSet;保持候选列表、选择器、命中处理和生命周期逻辑原样。 性能收益 / Performance: DriveEx 及其 Phantom、Flare、Hurricane、Lightning 子类扫描结果的历史命中排除由线性成员查找降为均摊常数时间。 兼容性 / Compatibility: 命中集合仅用于 clear、add、addAll 和 removeAll 成员判定,未被迭代或按顺序读取;候选实体仍按原始世界查询顺序处理。 验证 / Validation: Java 8 下执行 Gradle 8.14.3 build --rerun-tasks --no-daemon --console=plain 成功(test 为 NO-SOURCE)。 Refs #1
This commit is contained in:
1 parent
b68b004ff2
commit
67fd40011a
1 file changed
+3
-2
@@ -30,9 +30,10 @@ package mods.flammpfeil.slashblade.exsa.entity;
|
||||
import cpw.mods.fml.common.registry.IThrowableEntity;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import mods.flammpfeil.slashblade.ItemSlashBlade;
|
||||
import mods.flammpfeil.slashblade.ability.StylishRankManager;
|
||||
import net.minecraft.block.Block;
|
||||
@@ -57,7 +58,7 @@ extends Entity
|
||||
implements IThrowableEntity {
|
||||
protected Entity thrower;
|
||||
protected ItemStack blade = null;
|
||||
protected List<Entity> alreadyHitEntity = new ArrayList<Entity>();
|
||||
protected Set<Entity> alreadyHitEntity = new HashSet<Entity>();
|
||||
protected float AttackLevel = 0.0f;
|
||||
|
||||
public EntityDriveEx(World par1World) {
|
||||
|
||||
Reference in new issue
Block a user