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)))
            };
      }
   }
}