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