From e8eeeb729a71a384c7eeba653d748236ba25c698 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Mon, 22 Apr 2024 22:49:13 +0200 Subject: [PATCH] Changed behavior of trace deletion while being recorded --- .../steamwar/bausystem/features/tracer/TraceManager.java | 6 ------ .../steamwar/bausystem/features/tracer/TraceRecorder.java | 7 ++----- .../bausystem/features/tracer/TraceRecordingWrapper.java | 5 +---- 3 files changed, 3 insertions(+), 15 deletions(-) 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 582ddba7..d735fe8d 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -132,11 +132,6 @@ public class TraceManager implements Listener { * @param trace the trace to be removed */ public boolean remove(Trace trace) { - Optional activeTrace = TraceRecorder.instance.getActiveTraceForRegion(trace.getRegion()); - if (activeTrace.isPresent() && activeTrace.get() == trace) { - TraceRecorder.instance.stopRecording(trace.getRegion()); - } - Map traces = tracesByRegion.getOrDefault(trace.getRegion(), Collections.emptyMap()); Integer traceId = traces.entrySet().stream() .filter(entry -> entry.getValue() == trace) @@ -153,7 +148,6 @@ public class TraceManager implements Listener { * Clears all traces */ public void clear(Region region) { - TraceRecorder.instance.stopRecording(region); showDataPerRegionPerPlayer.getOrDefault(region, new HashMap<>()) .keySet() .forEach(player -> { diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecorder.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecorder.java index 76a76025..a252f208 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecorder.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecorder.java @@ -104,14 +104,11 @@ public class TraceRecorder implements Listener { * * @param region region to be recorded */ - public int startRecording(Region region) { - if (activeTraces.containsKey(region)) { - return -1; - } + public void startRecording(Region region) { + if (activeTraces.containsKey(region)) return; TraceRecordingWrapper wrappedTrace = new TraceRecordingWrapper(region); activeTraces.put(region, wrappedTrace); - return TraceManager.instance.add(wrappedTrace.getTrace()); } /** 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 cb9aafd9..7f23bb32 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceRecordingWrapper.java @@ -89,9 +89,6 @@ public class TraceRecordingWrapper { protected void finalizeRecording() { recordsOutputStream.flush(); recordsOutputStream.close(); - - if (trace.getRecords().isEmpty()) { - TraceManager.instance.remove(trace); - } + TraceManager.instance.add(trace); } }