diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index db49af71..1eb0373c 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -84,13 +84,28 @@ public class TraceManager implements Listener { * @return id of the created trace */ protected int add(Trace trace) { - showDataPerRegionPerPlayer.getOrDefault(trace.getRegion(), Collections.emptyMap()).forEach(trace::render); + showDataPerRegionPerPlayer.getOrDefault(trace.getRegion(), Collections.emptyMap()).forEach((player, playerTraceShowData) -> { + trace.render(player, playerTraceShowData); + followerMap.getOrDefault(player, Collections.emptySet()).forEach(follower -> { + trace.render(follower, playerTraceShowData); + }); + }); + traces.put(nextOpenId, trace); tracesByRegion.computeIfAbsent(trace.getRegion(), region -> new HashMap<>()).put(nextOpenId, trace); nextOpenId++; return nextOpenId; } + protected void showPartial(Trace trace, List recordsToAdd) { + showDataPerRegionPerPlayer.getOrDefault(trace.getRegion(), Collections.emptyMap()).forEach((player, playerTraceShowData) -> { + trace.render(recordsToAdd, player, playerTraceShowData); + followerMap.getOrDefault(player, Collections.emptySet()).forEach(follower -> { + trace.render(recordsToAdd, follower, playerTraceShowData); + }); + }); + } + protected Map getTraceShowDataPlayerMapping(Region region) { return showDataPerRegionPerPlayer.getOrDefault(region, new HashMap<>()); } @@ -106,8 +121,7 @@ public class TraceManager implements Listener { .map(Map.Entry::getKey) .findFirst() .orElse(null); - if (traceId == null) - return false; + if (traceId == null) return false; traces.remove(traceId); tracesByRegion.getOrDefault(trace.getRegion(), Collections.emptyMap()).remove(traceId); trace.hide(); diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java index 3fe22bce..be3bfed8 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java @@ -72,7 +72,7 @@ public class TraceRecordingWrapper { } public void commitRecorded() { - TraceManager.instance.getTraceShowDataPlayerMapping(region).forEach((key, value) -> trace.render(recordsToAdd, key, value)); + TraceManager.instance.showPartial(trace, recordsToAdd); recordsToAdd.forEach(record -> { try {