Alpha version!

Started to add speed type string to the visual speedometer
Chaged some ways of reading or copying data
This commit is contained in:
2023-08-31 11:09:40 +02:00
parent c04963cbe6
commit 47e475cecb
5 changed files with 98 additions and 78 deletions

View File

@@ -4,44 +4,49 @@ import net.minecraft.network.chat.Component;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Objects;
import static me.zacharias.speedometer.Speedometer.LOGGER;
public enum MeterImages {
LARGE(Component.translatable("speedometer.meter.large"), () -> {
try {
return ImageIO.read(Objects.requireNonNull(Speedometer.class.getResourceAsStream("/assets/speedometer/meter/meter-115.png")));
} catch (Exception e) {
return null;
}
}, 115),
SMALL(Component.translatable("speedometer.meter.small"), () -> {
try {
return ImageIO.read(Objects.requireNonNull(Speedometer.class.getResourceAsStream("/assets/speedometer/meter/meter-19.png")));
} catch (Exception e) {
return null;
}
}, 19),
MEDIUM(Component.translatable("speedometer.meter.small"), () -> {
try {
return ImageIO.read(Objects.requireNonNull(Speedometer.class.getResourceAsStream("/assets/speedometer/meter/meter-67.png")));
} catch (Exception e) {
return null;
}
}, 67)
LARGE(Component.translatable("speedometer.meter.large"), "/assets/speedometer/meter/meter-115.png", 115),
SMALL(Component.translatable("speedometer.meter.small"), "/assets/speedometer/meter/meter-19.png", 19),
MEDIUM(Component.translatable("speedometer.meter.small"), "/assets/speedometer/meter/meter-67.png", 67)
;
private final Component name;
private final BufferedImage image;
private final String meterIcon;
private BufferedImage image;
private final int size;
MeterImages(Component name, Loader icon, int size) {
MeterImages(Component name, String meterIcon, int size) {
this.name = name;
this.image = icon.load();
this.size = size;
this.meterIcon = meterIcon;
}
public boolean initiate(){
if(image != null){
LOGGER.warn("Already loaded \""+meterIcon+"\"");
}
try{
LOGGER.info("Loading speedometer \""+meterIcon+"\"");
image = ImageIO.read(Objects.requireNonNull(Speedometer.class.getResourceAsStream(meterIcon)));
LOGGER.info("Loaded speedometer \""+meterIcon+"\"");
return true;
} catch (IOException e) {
image = new BufferedImage(0,0, BufferedImage.TYPE_INT_ARGB);
LOGGER.warn("Failed to load speedometer \""+meterIcon+"\"");
return false;
}
}
public BufferedImage getImage() {
if(image == null){
LOGGER.warn("\""+meterIcon+"\" has not ben loaded yet!");
}
return image;
}
@@ -52,8 +57,4 @@ public enum MeterImages {
public Component getName() {
return name;
}
private interface Loader{
BufferedImage load();
}
}