03754a0646
- Remove unused chain/ParticleTrail and chain/VolumeCurve (dead since the EntityEffect pivot replaced the per-particle emit path) plus their test suites. - Drop Vec3.lerp (only consumer was ParticleTrail). - Strip step-by-step "[N/9]" debug logs from the orchestrator and per-entity logs from HytaleEntitySource / HytalePlayerRayCaster / ChainDamageApplier; keep one summary log per click and warnings on failure. - Extract resolveChain and tryEmitVfx helpers in ChainLightningSceptreInteraction so firstRun reads top-down (cooldown gate -> resolve -> damage -> vfx -> deduct). - Translate every Java doc/comment to single-line English. Tests: 30/30 green (29 baseline kept + 1 chain damage adapter test). Build: ./gradlew shadowJar clean.
39 lines
1.5 KiB
Java
39 lines
1.5 KiB
Java
package com.mythlane.chainlightning.sceptre;
|
|
|
|
import com.hypixel.hytale.component.ComponentAccessor;
|
|
import com.hypixel.hytale.component.Ref;
|
|
import com.hypixel.hytale.math.vector.Vector3d;
|
|
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
|
import com.hypixel.hytale.server.core.util.TargetUtil;
|
|
import com.mythlane.chainlightning.chain.ChainEntity;
|
|
import com.mythlane.chainlightning.chain.EntitySource;
|
|
import com.mythlane.chainlightning.chain.Vec3;
|
|
|
|
import javax.annotation.Nonnull;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/** Phase 3 EntitySource that copies TargetUtil's thread-local result into a stable list of snapshots. */
|
|
public final class HytaleEntitySource implements EntitySource {
|
|
|
|
private final ComponentAccessor<EntityStore> accessor;
|
|
|
|
public HytaleEntitySource(@Nonnull ComponentAccessor<EntityStore> accessor) {
|
|
this.accessor = accessor;
|
|
}
|
|
|
|
@Override
|
|
public List<ChainEntity> nearby(Vec3 origin, double radius) {
|
|
Vector3d hytaleOrigin = new Vector3d(origin.x(), origin.y(), origin.z());
|
|
List<Ref<EntityStore>> refs = TargetUtil.getAllEntitiesInSphere(hytaleOrigin, radius, accessor);
|
|
if (refs == null || refs.isEmpty()) {
|
|
return List.of();
|
|
}
|
|
List<ChainEntity> snapshots = new ArrayList<>(refs.size());
|
|
for (Ref<EntityStore> ref : refs) {
|
|
snapshots.add(HytaleEntityAdapter.snapshot(ref, accessor));
|
|
}
|
|
return snapshots;
|
|
}
|
|
}
|