Fixed mod alpha bleeding not applying correctly
This commit is contained in:
@@ -177,7 +177,7 @@ public class Mods implements Loadable{
|
||||
}
|
||||
|
||||
private void packSprites(Seq<Fi> sprites, LoadedMod mod, boolean prefix, Seq<AsyncResult<Runnable>> tasks){
|
||||
boolean linear = Core.settings.getBool("linear");
|
||||
boolean linear = Core.settings.getBool("linear", true);
|
||||
|
||||
for(Fi file : sprites){
|
||||
//read and bleed pixmaps in parallel
|
||||
@@ -186,7 +186,7 @@ public class Mods implements Loadable{
|
||||
Pixmap pix = new Pixmap(file.readBytes());
|
||||
//only bleeds when linear filtering is on at startup
|
||||
if(linear){
|
||||
Pixmaps.bleed(pix);
|
||||
Pixmaps.bleed(pix, 2);
|
||||
}
|
||||
//this returns a *runnable* which actually packs the resulting pixmap; this has to be done synchronously outside the method
|
||||
return () -> {
|
||||
@@ -269,7 +269,7 @@ public class Mods implements Loadable{
|
||||
}
|
||||
};
|
||||
|
||||
TextureFilter filter = Core.settings.getBool("linear") ? TextureFilter.linear : TextureFilter.nearest;
|
||||
TextureFilter filter = Core.settings.getBool("linear", true) ? TextureFilter.linear : TextureFilter.nearest;
|
||||
|
||||
Time.mark();
|
||||
//generate new icons
|
||||
|
||||
@@ -448,7 +448,7 @@ public class UnitType extends UnlockableContent{
|
||||
if(!packer.has(name + "-outline")){
|
||||
PixmapRegion base = Core.atlas.getPixmap(region);
|
||||
var result = Pixmaps.outline(base, outlineColor, outlineRadius);
|
||||
if(Core.settings.getBool("linear")){
|
||||
if(Core.settings.getBool("linear", true)){
|
||||
Pixmaps.bleed(result);
|
||||
}
|
||||
packer.add(PageType.main, name + "-outline", result);
|
||||
|
||||
@@ -912,12 +912,17 @@ public class Block extends UnlockableContent{
|
||||
for(int x = 0; x < base.width; x++){
|
||||
for(int y = 0; y < base.height; y++){
|
||||
int color = base.get(x, y);
|
||||
int index = color == 0xffffffff ? 0 : color == 0xdcc6c6ff ? 1 : color == 0x9d7f7fff ? 2 : -1;
|
||||
int index = switch(color){
|
||||
case 0xffffffff -> 0;
|
||||
case 0xdcc6c6ff, 0xdbc5c5ff -> 1;
|
||||
case 0x9d7f7fff, 0x9e8080ff -> 2;
|
||||
default -> -1;
|
||||
};
|
||||
out.setRaw(x, y, index == -1 ? base.get(x, y) : team.palettei[index]);
|
||||
}
|
||||
}
|
||||
|
||||
if(Core.settings.getBool("linear")){
|
||||
if(Core.settings.getBool("linear", true)){
|
||||
Pixmaps.bleed(out);
|
||||
}
|
||||
|
||||
@@ -938,7 +943,7 @@ public class Block extends UnlockableContent{
|
||||
if(outlineIcon){
|
||||
PixmapRegion region = Core.atlas.getPixmap(gen[outlinedIcon >= 0 ? outlinedIcon : gen.length -1]);
|
||||
Pixmap out = last = Pixmaps.outline(region, outlineColor, outlineRadius);
|
||||
if(Core.settings.getBool("linear")){
|
||||
if(Core.settings.getBool("linear", true)){
|
||||
Pixmaps.bleed(out);
|
||||
}
|
||||
packer.add(PageType.main, name, out);
|
||||
|
||||
Reference in New Issue
Block a user