BlockyAnimationCache class

Пакет: com.hypixel.hytale.server.core.asset.common

Файл: com/hypixel/hytale/server/core/asset/common/BlockyAnimationCache.java

Поля (15)

МодификаторыТипИмя
public static final BuilderCodec<BlockyAnimationCache.BlockyAnimation> CODEC
public static final double FRAMES_PER_SECOND
final HytaleLogger LOGGER
private int duration
BlockyAnimationCache.BlockyAnimation var1
BlockyAnimationCache.BlockyAnimation var1
BlockyAnimationCache.BlockyAnimation var1
BlockyAnimationCache.BlockyAnimation var1
String var1
CommonAsset var2
CommonAsset var2
String var2
RawJsonReader var3
ExtraInfo var4
BlockyAnimationCache.BlockyAnimation var5

Методы (9)

МодификаторыВозвратСигнатура
public BlockyAnimationpublic BlockyAnimation()
public int getDurationFramespublic int getDurationFrames()
public double getDurationMillispublic double getDurationMillis()
public double getDurationSecondspublic double getDurationSeconds()
static BlockyAnimationCache.BlockyAnimation getNowBlockyAnimationCache.BlockyAnimation getNow(@Nonnull CommonAsset var0)
if if(var1 != null)
if if(var1 != null)
static void invalidatevoid invalidate(String var0)
public String toStringpublic String toString()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.common;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.common.util.CompletableFutureUtil;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import java.io.IOException;
class="kw">import java.nio.charset.StandardCharsets;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BlockyAnimationCache {
   class="kw">public class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   class="kw">private class="kw">static class="kw">final Map<String, BlockyAnimationCache.BlockyAnimation> animations = new ConcurrentHashMap<>();

   class="kw">public BlockyAnimationCache() {
   }

   @Nonnull
   class="kw">public class="kw">static CompletableFuture<BlockyAnimationCache.BlockyAnimation> get(String var0) {
      BlockyAnimationCache.BlockyAnimation var1 = animations.get(var0);
      if (var1 != null) {
         class="kw">return CompletableFuture.completedFuture(var1);
      }

      CommonAsset var2 = CommonAssetRegistry.getByName(var0);
      class="kw">return var2 == null ? CompletableFuture.completedFuture(null) : get0(var2);
   }

   @Nonnull
   class="kw">public class="kw">static CompletableFuture<BlockyAnimationCache.BlockyAnimation> get(@Nonnull CommonAsset var0) {
      BlockyAnimationCache.BlockyAnimation var1 = animations.get(var0.getName());
      class="kw">return var1 != null ? CompletableFuture.completedFuture(var1) : get0(var0);
   }

   @Nullable
   class="kw">public class="kw">static BlockyAnimationCache.BlockyAnimation getNow(String var0) {
      BlockyAnimationCache.BlockyAnimation var1 = animations.get(var0);
      if (var1 != null) {
         class="kw">return var1;
      }

      CommonAsset var2 = CommonAssetRegistry.getByName(var0);
      class="kw">return var2 == null ? null : get0(var2).join();
   }

   class="kw">public class="kw">static BlockyAnimationCache.BlockyAnimation getNow(@Nonnull CommonAsset var0) {
      BlockyAnimationCache.BlockyAnimation var1 = animations.get(var0.getName());
      class="kw">return var1 != null ? var1 : get0(var0).join();
   }

   @Nonnull
   class="kw">private class="kw">static CompletableFuture<BlockyAnimationCache.BlockyAnimation> get0(@Nonnull CommonAsset var0) {
      String var1 = var0.getName();
      class="kw">return CompletableFutureUtil._catch(var0.getBlob().thenApply(var1x -> {
         String var2 = new String(var1x, StandardCharsets.UTF_8);
         RawJsonReader var3 = RawJsonReader.fromJsonString(var2);

         try {
            ExtraInfo var4 = ExtraInfo.THREAD_LOCAL.get();
            BlockyAnimationCache.BlockyAnimation var5 = BlockyAnimationCache.BlockyAnimation.CODEC.decodeJson(var3, var4);
            var4.getValidationResults().logOrThrowValidatorExceptions(LOGGER);
            animations.put(var1, var5);
            class="kw">return var5;
         } catch (IOException var6) {
            throw SneakyThrow.sneakyThrow(var6);
         }
      }));
   }

   class="kw">public class="kw">static void invalidate(String var0) {
      animations.remove(var0);
   }

   class="kw">public class="kw">static class BlockyAnimation {
      class="kw">public class="kw">static class="kw">final BuilderCodec<BlockyAnimationCache.BlockyAnimation> CODEC = BuilderCodec.builder(
            BlockyAnimationCache.BlockyAnimation.class, BlockyAnimationCache.BlockyAnimation::new
         )
         .addField(new KeyedCodec<>("duration", Codec.INTEGER, true, true), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
         .build();
      class="kw">public class="kw">static class="kw">final double FRAMES_PER_SECOND = 60.0;
      class="kw">private int duration;

      class="kw">public BlockyAnimation() {
      }

      class="kw">public int getDurationFrames() {
         class="kw">return this.duration;
      }

      class="kw">public double getDurationMillis() {
         class="kw">return this.duration * 1000.0 / 60.0;
      }

      class="kw">public double getDurationSeconds() {
         class="kw">return this.duration / 60.0;
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "BlockyAnimation{duration=" + this.duration + "}";
      }
   }
}