SteamWar/BauSystem
Archiviert
13
0

Fix post clear behaviour #154

Manuell gemergt
YoyoNow hat 1 Commits von fixClear nach master 2021-01-02 13:17:55 +01:00 zusammengeführt
4 geänderte Dateien mit 19 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -86,4 +86,9 @@ public class RecordStateMachine {
if (recorder == null) return 0; if (recorder == null) return 0;
return recorder.getStartTime(); return recorder.getStartTime();
} }
public static void postClear(){
if (recorder == null) return;
recorder.postClear();
}
} }

Datei anzeigen

@ -21,6 +21,7 @@ package de.steamwar.bausystem.tracer.record;
import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.tracer.show.Record; import de.steamwar.bausystem.tracer.show.Record;
import de.steamwar.bausystem.tracer.show.StoredRecords;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.TNTPrimed;
@ -63,6 +64,12 @@ public class Recorder implements Listener {
return record.getStartTime(); return record.getStartTime();
} }
void postClear() {
record.clear();
recordMap.clear();
StoredRecords.add(record);
}
private void run() { private void run() {
world.getEntitiesByClass(TNTPrimed.class).forEach(tntPrimed -> get(tntPrimed).add(tntPrimed)); world.getEntitiesByClass(TNTPrimed.class).forEach(tntPrimed -> get(tntPrimed).add(tntPrimed));
} }

Datei anzeigen

@ -55,6 +55,10 @@ public class Record {
return record; return record;
} }
public void clear(){
tnt.clear();
}
Review

Ist das Absicht, dass diese Methode nur im postClear() aufgerufen wird und nicht für die anderen Records?

Ist das Absicht, dass diese Methode nur im postClear() aufgerufen wird und nicht für die anderen Records?
Review

Jawoll, da nur der aktuelle Record überhaupt noch referenziert wird.

Jawoll, da nur der aktuelle Record überhaupt noch referenziert wird.
public static class TNTRecord { public static class TNTRecord {
private final List<TNTPosition> positions = new ArrayList<>(41); private final List<TNTPosition> positions = new ArrayList<>(41);

Datei anzeigen

@ -19,6 +19,8 @@
package de.steamwar.bausystem.tracer.show; package de.steamwar.bausystem.tracer.show;
import de.steamwar.bausystem.tracer.record.RecordStateMachine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -37,6 +39,7 @@ public class StoredRecords {
public static void clear() { public static void clear() {
records.clear(); records.clear();
TraceShowManager.clear(); TraceShowManager.clear();
RecordStateMachine.postClear();
} }
} }