MtlParser.java
package com.hypixel.hytale.builtin.buildertools.objimport;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public final class MtlParser {
private MtlParser() {
}
@Nonnull
public static Map<String, MtlMaterial> parse(@Nonnull Path path) throws IOException {
Map<String, MtlMaterial> materials = new HashMap();
String currentMaterial = null;
float[] currentKd = null;
String currentMapKd = null;
BufferedReader reader = Files.newBufferedReader(path);
try {
String line;
while((line = reader.readLine()) != ) {
line = line.trim();
(!line.isEmpty() && !line.startsWith()) {
String[] parts = line.split(, );
(parts.length != ) {
(parts[]) {
:
(currentMaterial != ) {
materials.put(currentMaterial, (currentMaterial, currentKd, currentMapKd));
}
currentMaterial = parts.length > ? parts[].trim() : ;
currentKd = ;
currentMapKd = ;
;
:
(parts.length > ) {
currentKd = parseColor(parts[]);
}
;
:
(parts.length > ) {
currentMapKd = parts[].trim();
}
}
}
}
}
(currentMaterial != ) {
materials.put(currentMaterial, (currentMaterial, currentKd, currentMapKd));
}
} (Throwable var11) {
(reader != ) {
{
reader.close();
} (Throwable var10) {
var11.addSuppressed(var10);
}
}
var11;
}
(reader != ) {
reader.close();
}
materials;
}
[] parseColor(String colorStr) {
String[] parts = colorStr.trim().split();
(parts.length < ) {
;
} {
{
Float.parseFloat(parts[]);
Float.parseFloat(parts[]);
Float.parseFloat(parts[]);
[]{r, g, b};
} (NumberFormatException var5) {
;
}
}
}
{
[] getDiffuseColorRGB() {
.diffuseColor == ? : []{Math.max(, Math.min(, Math.round(.diffuseColor[] * ))), Math.max(, Math.min(, Math.round(.diffuseColor[] * ))), Math.max(, Math.min(, Math.round(.diffuseColor[] * )))};
}
}
}