From dfd20f03b69746257b5f90fad57f8f7f1bfaf5d4 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Tue, 12 Mar 2024 15:20:38 +0100 Subject: [PATCH] Fixed auto trace --- .../bausystem/features/tracer/Recorder.java | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Recorder.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Recorder.java index 5fe0a99e..dd2638c0 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Recorder.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Recorder.java @@ -67,19 +67,8 @@ public class Recorder implements Listener { */ private final Set autoTraceRegions = new HashSet<>(); - /** - * Counters for how long no tnt was seen in an active auto trace region - */ - private final Map noTntRecordedCounter = new HashMap<>(); - - /** - * Amount of ticks, after wich an auto-trace is stopped, if no tnt where seen - */ - private final long AUTO_TRACE_STOP_TRESHHOLD = 120; - public Recorder(){ BauSystem.runTaskTimer(BauSystem.getInstance(), () -> { - noTntRecordedCounter.replaceAll((region, counter) -> counter + 1); record(); checkForAutoTraceFinish(); }, 0, 1); @@ -100,11 +89,11 @@ public class Recorder implements Listener { * */ public void checkForAutoTraceFinish(){ - for(Region region: autoTraceRegions) - if(autoTraceRegions.contains(region) && noTntRecordedCounter.get(region) != null && noTntRecordedCounter.get(region) > AUTO_TRACE_STOP_TRESHHOLD){ + for(Region region: autoTraceRegions) { + if (autoTraceRegions.contains(region) && trackedTNT.getOrDefault(region, Collections.emptyList()).size() == 0) { stopRecording(region); - autoTraceRegions.remove(region); } + } } /** Starts a recording at the given region @@ -113,7 +102,6 @@ public class Recorder implements Listener { */ public int startRecording(Region region){ if(activeTraces.containsKey(region)) return -1; - if(autoTraceRegions.contains(region)) noTntRecordedCounter.put(region, 0); Trace trace = new Trace(region); activeTraces.put(region, trace); return manager.add(trace); @@ -141,8 +129,6 @@ public class Recorder implements Listener { private void record(){ for(Region region : activeTraces.keySet()){ Trace trace = activeTraces.get(region); - if(trackedTNT.getOrDefault(region, Collections.emptyList()).size() > 0) - noTntRecordedCounter.put(region, 0); for(TNTPrimed tnt : trackedTNT.getOrDefault(region, Collections.emptyList())){ record(tnt, trace);