package net.rainbowcode.jpixelface.skin;
import org.imgscalr.Scalr;
import java.awt.image.BufferedImage;
public enum Mutate
{
NONE("/skin/", 8, 512)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
return bufferedImage;
}
},
HELM("/helm/", 8, 512)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
bufferedImage = SkinManager.getHelm(bufferedImage);
bufferedImage = Scalr.resize(bufferedImage, Scalr.Method.SPEED, scale);
return bufferedImage;
}
},
BODY("/body/", 1, 128)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
bufferedImage = SkinManager.getBody(bufferedImage, false);
bufferedImage = Scalr.resize(bufferedImage, Scalr.Method.SPEED, 18 * scale, 32 * scale);
return bufferedImage;
}
},
BODY_NOLAYER("/body-nolayer/", 1, 128)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
bufferedImage = SkinManager.getBody(bufferedImage, true);
bufferedImage = Scalr.resize(bufferedImage, Scalr.Method.SPEED, 18 * scale, 32 * scale);
return bufferedImage;
}
},
TORSO("/torso/", 1, 128)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
BufferedImage body = SkinManager.getBody(bufferedImage, false);
body = Scalr.crop(body, 1, 0, 16, 20);
bufferedImage = Scalr.resize(body, Scalr.Method.SPEED, 18 * scale, 20 * scale);
body.flush();
return bufferedImage;
}
},
TORSO_NOLAYER("/torso-nolayer/", 1, 128)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
BufferedImage body = SkinManager.getBody(bufferedImage, true);
body = Scalr.crop(body, 1, 0, 16, 20);
bufferedImage = Scalr.resize(body, Scalr.Method.SPEED, 18 * scale, 20 * scale);
body.flush();
return bufferedImage;
}
},
BUST("/bust/", 8, 512, 16)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
BufferedImage body = SkinManager.getBody(bufferedImage, false);
body = Scalr.crop(body, 1, 0, 16, 16);
bufferedImage = Scalr.resize(body, Scalr.Method.SPEED, scale);
body.flush();
return bufferedImage;
}
},
BUST_NOLAYER("/bust-nolayer/", 8, 512, 16)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
BufferedImage body = SkinManager.getBody(bufferedImage, true);
body = Scalr.crop(body, 1, 0, 16, 16);
bufferedImage = Scalr.resize(body, Scalr.Method.SPEED, scale);
body.flush();
return bufferedImage;
}
},
AVATAR("/avatar/", 8, 512)
{
@Override
public BufferedImage act(BufferedImage bufferedImage, int scale)
{
bufferedImage = Scalr.crop(bufferedImage, 8, 8, 8, 8);
bufferedImage = Scalr.resize(bufferedImage, Scalr.Method.SPEED, scale);
return bufferedImage;
}
};
private final String path;
private final int minScale;
private final int maxScale;
private final int svgScale;
Mutate(String path, int minScale, int maxScale, int svgScale)
{
this.path = path;
this.minScale = minScale;
this.maxScale = maxScale;
this.svgScale = svgScale;
}
Mutate(String path, int minScale, int maxScale)
{
this.path = path;
this.minScale = minScale;
this.maxScale = maxScale;
this.svgScale = minScale;
}
public String getPath()
{
return path;
}
public int getMinScale()
{
return minScale;
}
public int getMaxScale()
{
return maxScale;
}
public abstract BufferedImage act(BufferedImage bufferedImage, int scale);
public int getSvgScale()
{
return svgScale;
}
}