MtlParser class
Пакет: com.hypixel.hytale.builtin.buildertools.objimport
Файл: com/hypixel/hytale/builtin/buildertools/objimport/MtlParser.java
Поля (18)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
|
break |
|
Map |
var1 |
|
String[] |
var1 |
|
String |
var2 |
|
|
var2 |
|
float |
var2 |
|
float[] |
var3 |
|
|
var3 |
|
|
var3 |
|
float |
var3 |
|
String |
var4 |
|
|
var4 |
|
|
var4 |
|
float |
var4 |
|
String |
var6 |
|
|
var6 |
|
String[] |
var7 |
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
record |
MtlMaterialrecord MtlMaterial(@Nonnull String name, @Nullable float[] diffuseColor, @Nullable String diffuseTexturePath) |
|
public int[] |
getDiffuseColorRGBpublic int[] getDiffuseColorRGB() |
|
|
if if(var7.length != 0) |
|
|
if if(var2 != null) |
|
|
if if(var7.length > 1) |
|
|
if if(var7.length > 1) |
|
|
if if(var2 != null) |
|
|
if if(var1.length < 3) |
|
|
switch switch(var7[0]) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.objimport;
class="kw">import java.io.BufferedReader;
class="kw">import java.io.IOException;
class="kw">import java.nio.file.Files;
class="kw">import java.nio.file.Path;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">final class MtlParser {
class="kw">private MtlParser() {
}
@Nonnull
class="kw">public class="kw">static Map<String, MtlParser.MtlMaterial> parse(@Nonnull Path var0) class="kw">throws IOException {
Map var1 = new HashMap<>();
String var2 = null;
float[] var3 = null;
String var4 = null;
try (BufferedReader var5 = Files.newBufferedReader(var0)) {
String var6;
while ((var6 = var5.readLine()) != null) {
var6 = var6.trim();
if (!var6.isEmpty() && !var6.startsWith("#")) {
String[] var7 = var6.split("\\s+", 2);
if (var7.length != 0) {
class="kw">switch (var7[0]) {
case "newmtl":
if (var2 != null) {
var1.put(var2, new MtlParser.MtlMaterial(var2, var3, var4));
}
var2 = var7.length > 1 ? var7[1].trim() : "";
var3 = null;
var4 = null;
break;
case "Kd":
if (var7.length > 1) {
var3 = parseColor(var7[1]);
}
break;
case "map_Kd":
if (var7.length > 1) {
var4 = var7[1].trim();
}
}
}
}
}
if (var2 != null) {
var1.put(var2, new MtlParser.MtlMaterial(var2, var3, var4));
}
}
class="kw">return var1;
}
@Nullable
class="kw">private class="kw">static float[] parseColor(String var0) {
String[] var1 = var0.trim().split("\\s+", 0);
if (var1.length < 3) {
class="kw">return null;
}
try {
float var2 = Float.parseFloat(var1[0]);
float var3 = Float.parseFloat(var1[1]);
float var4 = Float.parseFloat(var1[2]);
class="kw">return new float[]{var2, var3, var4};
} catch (NumberFormatException var5) {
class="kw">return null;
}
}
class="kw">public record MtlMaterial(@Nonnull String name, @Nullable float[] diffuseColor, @Nullable String diffuseTexturePath) {
class="kw">public MtlMaterial {
}
@Nullable
class="kw">public int[] getDiffuseColorRGB() {
class="kw">return this.diffuseColor == null
? null
: new int[]{
Math.max(0, Math.min(255, Math.round(this.diffuseColor[0] * 255.0F))),
Math.max(0, Math.min(255, Math.round(this.diffuseColor[1] * 255.0F))),
Math.max(0, Math.min(255, Math.round(this.diffuseColor[2] * 255.0F)))
};
}
}
}