|
@@ -23,6 +23,7 @@ import ar.com.hjg.pngj.ImageLineHelper;
|
|
import ar.com.hjg.pngj.ImageLineInt;
|
|
import ar.com.hjg.pngj.ImageLineInt;
|
|
import ar.com.hjg.pngj.PngWriter;
|
|
import ar.com.hjg.pngj.PngWriter;
|
|
import ar.com.hjg.pngj.chunks.PngChunkTextVar;
|
|
import ar.com.hjg.pngj.chunks.PngChunkTextVar;
|
|
|
|
+import org.yaml.snakeyaml.Yaml;
|
|
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Color;
|
|
import java.awt.GradientPaint;
|
|
import java.awt.GradientPaint;
|
|
@@ -54,7 +55,9 @@ enum RegionState
|
|
CORE,
|
|
CORE,
|
|
KEEP,
|
|
KEEP,
|
|
WATERIZE,
|
|
WATERIZE,
|
|
- DROPPED
|
|
|
|
|
|
+ DROPPED,
|
|
|
|
+ PREVIOUS,
|
|
|
|
+ PREVIOUS_BUFFER
|
|
}
|
|
}
|
|
|
|
|
|
class CoordHolder
|
|
class CoordHolder
|
|
@@ -140,7 +143,13 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
|
|
|
|
static final Color keepCoreA = new Color(0, 64, 0);
|
|
static final Color keepCoreA = new Color(0, 64, 0);
|
|
static final Color keepCoreB = new Color(0, 106, 0);
|
|
static final Color keepCoreB = new Color(0, 106, 0);
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ static final Color previousA = new Color(4, 68, 66);
|
|
|
|
+ static final Color previousB = new Color(8, 128, 123);
|
|
|
|
+
|
|
|
|
+ static final Color previousBufferA = new Color(8, 128, 96);
|
|
|
|
+ static final Color previousBufferB = new Color(11, 218, 160);
|
|
|
|
+
|
|
static final Color activity = new Color(87, 87, 87);
|
|
static final Color activity = new Color(87, 87, 87);
|
|
static final Color activityBuffer = new Color(157, 157, 157);
|
|
static final Color activityBuffer = new Color(157, 157, 157);
|
|
|
|
|
|
@@ -547,6 +556,66 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // propagating previous buffers out by one...
|
|
|
|
+
|
|
|
|
+ File keepers = new File("keepregions.yml");
|
|
|
|
+ if(keepers.exists())
|
|
|
|
+ {
|
|
|
|
+ System.out.println("LOAD KEEPERS");
|
|
|
|
+ FileReader loader = new FileReader(keepers);
|
|
|
|
+ Map<String,RegionState> oldkeepers = (Map<String,RegionState>)new Yaml().load(loader);
|
|
|
|
+ loader.close();
|
|
|
|
+
|
|
|
|
+ for(int i=-regionBase;i<=regionBase;i++)
|
|
|
|
+ {
|
|
|
|
+ for(int j=-regionBase;j<=regionBase;j++)
|
|
|
|
+ {
|
|
|
|
+ String regionref = "r."+(i)+"."+(j)+".mca";
|
|
|
|
+ RegionState oldstate = oldkeepers.getOrDefault(regionref,RegionState.REMOVE);
|
|
|
|
+ if (
|
|
|
|
+ oldstate==RegionState.CORE||
|
|
|
|
+ oldstate==RegionState.KEEP||
|
|
|
|
+ oldstate==RegionState.PREVIOUS||
|
|
|
|
+ oldstate==RegionState.PREVIOUS_BUFFER||
|
|
|
|
+ oldstate==RegionState.WATERIZE //just for safety even though its not needed
|
|
|
|
+ )
|
|
|
|
+ {
|
|
|
|
+ for(int di=-1;di<=1;di++)
|
|
|
|
+ {
|
|
|
|
+ for(int dj=-1;dj<=1;dj++)
|
|
|
|
+ {
|
|
|
|
+ int ri=i+di;
|
|
|
|
+ int rj=j+dj;
|
|
|
|
+ if(ri<-regionBase||ri>regionBase)
|
|
|
|
+ {
|
|
|
|
+ break; //out of bounds;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(rj<-regionBase||rj>regionBase)
|
|
|
|
+ {
|
|
|
|
+ break; //out of bounds;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String regionref_u = "r."+(ri)+"."+(rj)+".mca";
|
|
|
|
+ RegionState newstate = keepRegions.getOrDefault(regionref_u,RegionState.REMOVE);
|
|
|
|
+ if (
|
|
|
|
+ newstate==RegionState.REMOVE||
|
|
|
|
+ newstate==RegionState.DROPPED||
|
|
|
|
+ newstate==RegionState.PREVIOUS_BUFFER
|
|
|
|
+ )
|
|
|
|
+ {
|
|
|
|
+ keepRegions.put(regionref_u,(di==0&&dj==0)?RegionState.PREVIOUS:RegionState.PREVIOUS_BUFFER);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // else nothing to do, no previous run data found as "baseline"
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
//max=Math.min(max, 1000);
|
|
//max=Math.min(max, 1000);
|
|
//int steps=max/256;
|
|
//int steps=max/256;
|
|
//BufferedWriter bw = new BufferedWriter(new FileWriter(new File("D:/emc2/arca_slash/database/crunched.pgm")));
|
|
//BufferedWriter bw = new BufferedWriter(new FileWriter(new File("D:/emc2/arca_slash/database/crunched.pgm")));
|
|
@@ -560,6 +629,10 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
//FROM `lb-surv`
|
|
//FROM `lb-surv`
|
|
//INTO OUTFILE 'D:/emc2/arca_slash/database/lbcrunchsurvival.csv';
|
|
//INTO OUTFILE 'D:/emc2/arca_slash/database/lbcrunchsurvival.csv';
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ new Yaml().dump(keepRegions,new FileWriter("keepregions.yml"));
|
|
|
|
+
|
|
ImageInfo imi = new ImageInfo(dataField.length, dataField.length, 8, false); // 8 bits per channel, no alpha
|
|
ImageInfo imi = new ImageInfo(dataField.length, dataField.length, 8, false); // 8 bits per channel, no alpha
|
|
// open image for writing to a output stream
|
|
// open image for writing to a output stream
|
|
PngWriter png = new PngWriter(new FileOutputStream("map_rg.png"), imi);
|
|
PngWriter png = new PngWriter(new FileOutputStream("map_rg.png"), imi);
|
|
@@ -608,6 +681,12 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
case DROPPED:
|
|
case DROPPED:
|
|
color = (grid ? removeA_Dropped : removeB_Dropped).getRGB();
|
|
color = (grid ? removeA_Dropped : removeB_Dropped).getRGB();
|
|
break;
|
|
break;
|
|
|
|
+ case PREVIOUS:
|
|
|
|
+ color = (grid ? previousA : previousB).getRGB();
|
|
|
|
+ break;
|
|
|
|
+ case PREVIOUS_BUFFER:
|
|
|
|
+ color = (grid ? previousBufferA : previousBufferB).getRGB();
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -643,10 +722,10 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
try {
|
|
try {
|
|
fileActions = new PrintStream(new FileOutputStream("mergeMap.sh"));
|
|
fileActions = new PrintStream(new FileOutputStream("mergeMap.sh"));
|
|
fileActions.println("mkdir oldChunks");
|
|
fileActions.println("mkdir oldChunks");
|
|
- System.out.println("mkdir oldChunks");
|
|
|
|
|
|
+ //System.out.println("mkdir oldChunks");
|
|
|
|
|
|
fileActions.println("mkdir oldChunksWaterize");
|
|
fileActions.println("mkdir oldChunksWaterize");
|
|
- System.out.println("mkdir oldChunksWaterize");
|
|
|
|
|
|
+ //System.out.println("mkdir oldChunksWaterize");
|
|
keepRegions.forEach((k,v)->
|
|
keepRegions.forEach((k,v)->
|
|
{
|
|
{
|
|
switch(v)
|
|
switch(v)
|
|
@@ -655,25 +734,26 @@ public class LogBlockHeatmapperRegionTrimmer
|
|
case REMOVE:
|
|
case REMOVE:
|
|
case DROPPED:
|
|
case DROPPED:
|
|
fileActions.println("mv "+k+" oldChunks/");
|
|
fileActions.println("mv "+k+" oldChunks/");
|
|
- System.out.println("mv "+k+" oldChunks/");
|
|
|
|
|
|
+ //System.out.println("mv "+k+" oldChunks/");
|
|
break;
|
|
break;
|
|
case CORE:
|
|
case CORE:
|
|
fileActions.println("echo "+k+" is keepCore");
|
|
fileActions.println("echo "+k+" is keepCore");
|
|
- System.out.println("echo "+k+" is keepCore");
|
|
|
|
|
|
+ //System.out.println("echo "+k+" is keepCore");
|
|
break;
|
|
break;
|
|
case KEEP:
|
|
case KEEP:
|
|
fileActions.println("echo "+k+" is keep");
|
|
fileActions.println("echo "+k+" is keep");
|
|
- System.out.println("echo "+k+" is keep");
|
|
|
|
|
|
+ //System.out.println("echo "+k+" is keep");
|
|
break;
|
|
break;
|
|
case WATERIZE:
|
|
case WATERIZE:
|
|
fileActions.println("mv "+k+" oldChunksWaterize/");
|
|
fileActions.println("mv "+k+" oldChunksWaterize/");
|
|
- System.out.println("mv "+k+" oldChunksWaterize/");
|
|
|
|
|
|
+ //System.out.println("mv "+k+" oldChunksWaterize/");
|
|
fileActions.println("mv waterize/"+k+" ./");
|
|
fileActions.println("mv waterize/"+k+" ./");
|
|
- System.out.println("mv waterize/"+k+" ./");
|
|
|
|
|
|
+ //System.out.println("mv waterize/"+k+" ./");
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
fileActions.close();
|
|
fileActions.close();
|
|
|
|
+ //dumping a statefile for adding a new buffer on the next run
|
|
} catch (FileNotFoundException e) {
|
|
} catch (FileNotFoundException e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|