TextureSampler class

Пакет: com.hypixel.hytale.builtin.buildertools.objimport

Файл: com/hypixel/hytale/builtin/buildertools/objimport/TextureSampler.java

Поля (29)

МодификаторыТипИмя
continue
final Map<Path, BufferedImage> textureCache
BufferedImage var1
BufferedImage var1
int var10
boolean var11
int var14
int var15
int var16
int var17
int var19
BufferedImage var2
var2
var2
long var2
int var3
int var3
int var4
int var4
long var4
int var5
int var5
int var6
int var6
long var6
int var7
int var7
int var8
int var9

Методы (9)

МодификаторыВозвратСигнатура
static void clearCachevoid clearCache()
for for(int var12 = 0; var12 < var10; var12++)
for for(int var13 = 0; var13 < var9; var13++)
if if(var1 != null)
if if(var2 != null)
if if(var1 == null)
if if(var11)
if if(var15 == 0)
static int sampleAlphaAtint sampleAlphaAt(@Nonnull BufferedImage var0, float var1, float var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.objimport;

class="kw">import java.awt.image.BufferedImage;
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">import javax.imageio.ImageIO;

class="kw">public class="kw">final class TextureSampler {
   class="kw">private class="kw">static class="kw">final Map<Path, BufferedImage> textureCache = new HashMap<>();

   class="kw">private TextureSampler() {
   }

   @Nullable
   class="kw">public class="kw">static BufferedImage loadTexture(@Nonnull Path var0) {
      if (!Files.exists(var0)) {
         class="kw">return null;
      }

      BufferedImage var1 = textureCache.get(var0);
      if (var1 != null) {
         class="kw">return var1;
      }

      try {
         BufferedImage var2 = ImageIO.read(var0.toFile());
         if (var2 != null) {
            textureCache.put(var0, var2);
         }

         class="kw">return var2;
      } catch (IOException var3) {
         class="kw">return null;
      }
   }

   @Nonnull
   class="kw">public class="kw">static int[] sampleAt(@Nonnull BufferedImage var0, float var1, float var2) {
      var1 -= (float)Math.floor(var1);
      var2 -= (float)Math.floor(var2);
      var2 = 1.0F - var2;
      int var3 = var0.getWidth();
      int var4 = var0.getHeight();
      int var5 = Math.min((int)(var1 * var3), var3 - 1);
      int var6 = Math.min((int)(var2 * var4), var4 - 1);
      int var7 = var0.getRGB(var5, var6);
      class="kw">return new int[]{var7 >> 16 & 0xFF, var7 >> 8 & 0xFF, var7 & 0xFF};
   }

   class="kw">public class="kw">static int sampleAlphaAt(@Nonnull BufferedImage var0, float var1, float var2) {
      if (!var0.getColorModel().hasAlpha()) {
         class="kw">return 255;
      }

      var1 -= (float)Math.floor(var1);
      var2 -= (float)Math.floor(var2);
      var2 = 1.0F - var2;
      int var3 = var0.getWidth();
      int var4 = var0.getHeight();
      int var5 = Math.min((int)(var1 * var3), var3 - 1);
      int var6 = Math.min((int)(var2 * var4), var4 - 1);
      int var7 = var0.getRGB(var5, var6);
      class="kw">return var7 >> 24 & 0xFF;
   }

   class="kw">public class="kw">static void clearCache() {
      textureCache.clear();
   }

   @Nullable
   class="kw">public class="kw">static int[] getAverageColor(@Nonnull Path var0) {
      if (!Files.exists(var0)) {
         class="kw">return null;
      }

      try {
         BufferedImage var1 = ImageIO.read(var0.toFile());
         if (var1 == null) {
            class="kw">return null;
         }

         long var2 = 0L;
         long var4 = 0L;
         long var6 = 0L;
         int var8 = 0;
         int var9 = var1.getWidth();
         int var10 = var1.getHeight();
         boolean var11 = var1.getColorModel().hasAlpha();

         for (int var12 = 0; var12 < var10; var12++) {
            for (int var13 = 0; var13 < var9; var13++) {
               int var14 = var1.getRGB(var13, var12);
               if (var11) {
                  int var15 = var14 >> 24 & 0xFF;
                  if (var15 == 0) {
                     class="kw">continue;
                  }
               }

               int var19 = var14 >> 16 & 0xFF;
               int var16 = var14 >> 8 & 0xFF;
               int var17 = var14 & 0xFF;
               var2 += var19;
               var4 += var16;
               var6 += var17;
               var8++;
            }
         }

         class="kw">return var8 == 0 ? null : new int[]{(int)(var2 / var8), (int)(var4 / var8), (int)(var6 / var8)};
      } catch (IOException var18) {
         class="kw">return null;
      }
   }
}