SteamWar/BauSystem
Archiviert
13
0
Dieses Repository wurde am 2024-08-04 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
BauSystem/BauSystem_Main/src/de/steamwar/bausystem/tracer/TNTTracer.java

84 Zeilen
2.7 KiB
Java

2020-08-30 02:23:23 +02:00
package de.steamwar.bausystem.tracer;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.tracer.manager.ShowManager;
import de.steamwar.bausystem.tracer.trace.TNTTrace;
import de.steamwar.core.Core;
import org.bukkit.entity.Player;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TNTTracer {
private static TracerUpdater tracerUpdater = new TracerUpdater() {
@Override
public Set<TraceCache.Loc> updateLocations(Player player) {
Iterator<TNTTrace> traces = ShowManager.get(player).getTraces().descendingIterator();
Set<TraceCache.Loc> locSet = new HashSet<>();
while (traces.hasNext()) {
locSet.addAll(traces.next().locs());
}
double radius = ShowManager.get(player).getShowRadius();
locSet.removeIf(loc -> loc.remove(player, radius));
return locSet;
}
@Override
public Set<TraceCache.Loc> updatePoints(Player player) {
Iterator<TNTTrace> traces = ShowManager.get(player).getTraces().descendingIterator();
Set<TraceCache.Loc> locSet = new HashSet<>();
while (traces.hasNext()) {
locSet.addAll(traces.next().locsUpdate(ShowManager.get(player).getDisplayMode()));
}
double radius = ShowManager.get(player).getShowRadius();
locSet.removeIf(loc -> loc.remove(player, radius));
return locSet;
}
@Override
public boolean needsUpdate(Player player) {
return ShowManager.get(player).isDirty();
}
@Override
public DisplayMode getDisplayType(Player player) {
switch (ShowManager.get(player).getDisplayType()) {
case Block:
return DisplayMode.Block;
case Particle:
return DisplayMode.Particle;
default:
break;
}
return DisplayMode.Particle;
}
@Override
public String actionBar(Player player) {
return TraceActionbar.traceMemory() + " " + TraceActionbar.traceSize() + " " + TraceActionbar.showRadius(player);
}
};
public static void init15() {
TNTTracer_15.init(BauSystem.getPlugin(), tracerUpdater);
}
public static void init12() {
TNTTracer_12.init(BauSystem.getPlugin(), tracerUpdater);
}
public static void worldInit() {
switch (Core.getVersion()) {
case 15:
TNTTracer_15.worldInit();
break;
default:
TNTTracer_12.worldInit();
break;
}
}
}