CosmeticRegistry class

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

Файл: com/hypixel/hytale/server/core/cosmetics/CosmeticRegistry.java

Поля (5)

МодификаторыТипИмя
final String MODEL
Path var2
Map var4
Path var5
BsonDocument var9

Методы (1)

МодификаторыВозвратСигнатура
return switchreturn switch(var1)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetPack;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
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.Collections;
class="kw">import java.util.Map;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonArray;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;

class="kw">public class CosmeticRegistry {
   class="kw">public class="kw">static class="kw">final String MODEL = "Characters/Player.blockymodel";
   class="kw">public class="kw">static class="kw">final String SKIN_GRADIENTSET_ID = "Skin";
   @Nonnull
   class="kw">private class="kw">final Map<String, Emote> emotes;
   @Nonnull
   class="kw">private class="kw">final Map<String, Emote> emotesInGame;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinTintColor> eyeColors;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinGradientSet> gradientSets;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> bodyCharacteristics;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> underwear;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> eyebrows;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> ears;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> eyes;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> faces;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> mouths;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> facialHair;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> pants;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> overpants;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> undertops;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> overtops;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> haircuts;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> shoes;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> headAccessory;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> faceAccessory;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> earAccessory;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> gloves;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> capes;
   @Nonnull
   class="kw">private class="kw">final Map<String, PlayerSkinPart> skinFeatures;

   class="kw">public CosmeticRegistry(@Nonnull AssetPack var1) {
      Path var2 = var1.getRoot();
      this.emotes = this.load(var2, "Emotes.json", Emote::new);
      this.emotesInGame = this.load(var2, "EmotesInGame.json", Emote::new);
      this.eyeColors = this.load(var2, "EyeColors.json", PlayerSkinTintColor::new);
      this.gradientSets = this.load(var2, "GradientSets.json", PlayerSkinGradientSet::new);
      this.bodyCharacteristics = this.load(var2, "BodyCharacteristics.json", PlayerSkinPart::new);
      this.underwear = this.load(var2, "Underwear.json", PlayerSkinPart::new);
      this.eyes = this.load(var2, "Eyes.json", PlayerSkinPart::new);
      this.faces = this.load(var2, "Faces.json", PlayerSkinPart::new);
      this.eyebrows = this.load(var2, "Eyebrows.json", PlayerSkinPart::new);
      this.ears = this.load(var2, "Ears.json", PlayerSkinPart::new);
      this.mouths = this.load(var2, "Mouths.json", PlayerSkinPart::new);
      this.facialHair = this.load(var2, "FacialHair.json", PlayerSkinPart::new);
      this.pants = this.load(var2, "Pants.json", PlayerSkinPart::new);
      this.overpants = this.load(var2, "Overpants.json", PlayerSkinPart::new);
      this.undertops = this.load(var2, "Undertops.json", PlayerSkinPart::new);
      this.overtops = this.load(var2, "Overtops.json", PlayerSkinPart::new);
      this.haircuts = this.load(var2, "Haircuts.json", PlayerSkinPart::new);
      this.shoes = this.load(var2, "Shoes.json", PlayerSkinPart::new);
      this.headAccessory = this.load(var2, "HeadAccessory.json", PlayerSkinPart::new);
      this.faceAccessory = this.load(var2, "FaceAccessory.json", PlayerSkinPart::new);
      this.earAccessory = this.load(var2, "EarAccessory.json", PlayerSkinPart::new);
      this.gloves = this.load(var2, "Gloves.json", PlayerSkinPart::new);
      this.capes = this.load(var2, "Capes.json", PlayerSkinPart::new);
      this.skinFeatures = this.load(var2, "SkinFeatures.json", PlayerSkinPart::new);
   }

   @Nonnull
   class="kw">private <T> Map<String, T> load(@Nonnull Path var1, @Nonnull String var2, @Nonnull Function<BsonDocument, T> var3) {
      Map var4 = new Object2ObjectOpenHashMap();
      Path var5 = var1.resolve("Cosmetics").resolve("CharacterCreator").resolve(var2);

      try {
         for (BsonValue var8 : BsonArray.parse(Files.readString(var5))) {
            BsonDocument var9 = var8.asDocument();
            var4.put(var9.getString("Id").getValue(), var3.apply(var9));
         }
      } catch (IOException var10) {
         var10.printStackTrace();
      }

      class="kw">return Collections.unmodifiableMap(var4);
   }

   @Nonnull
   class="kw">public Map<String, Emote> getEmotes() {
      class="kw">return this.emotes;
   }

   @Nonnull
   class="kw">public Map<String, Emote> getEmotesInGame() {
      class="kw">return this.emotesInGame;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinTintColor> getEyeColors() {
      class="kw">return this.eyeColors;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinGradientSet> getGradientSets() {
      class="kw">return this.gradientSets;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getBodyCharacteristics() {
      class="kw">return this.bodyCharacteristics;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getUnderwear() {
      class="kw">return this.underwear;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getEyebrows() {
      class="kw">return this.eyebrows;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getEars() {
      class="kw">return this.ears;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getEyes() {
      class="kw">return this.eyes;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getFaces() {
      class="kw">return this.faces;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getMouths() {
      class="kw">return this.mouths;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getFacialHairs() {
      class="kw">return this.facialHair;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getPants() {
      class="kw">return this.pants;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getOverpants() {
      class="kw">return this.overpants;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getUndertops() {
      class="kw">return this.undertops;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getOvertops() {
      class="kw">return this.overtops;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getHaircuts() {
      class="kw">return this.haircuts;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getShoes() {
      class="kw">return this.shoes;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getHeadAccessories() {
      class="kw">return this.headAccessory;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getFaceAccessories() {
      class="kw">return this.faceAccessory;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getEarAccessories() {
      class="kw">return this.earAccessory;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getGloves() {
      class="kw">return this.gloves;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getSkinFeatures() {
      class="kw">return this.skinFeatures;
   }

   @Nonnull
   class="kw">public Map<String, PlayerSkinPart> getCapes() {
      class="kw">return this.capes;
   }

   class="kw">public Map<String, ?> getByType(@Nonnull CosmeticType var1) {
      class="kw">return class="kw">switch (var1) {
         case EMOTES -> this.getEmotes();
         case EMOTES_INGAME -> this.getEmotesInGame();
         case SKIN_TONES -> this.getGradientSets().get("Skin").getGradients();
         case EYE_COLORS -> this.getEyeColors();
         case GRADIENT_SETS -> this.getGradientSets();
         case BODY_CHARACTERISTICS -> this.getBodyCharacteristics();
         case UNDERWEAR -> this.getUnderwear();
         case EYEBROWS -> this.getEyebrows();
         case EARS -> this.getEars();
         case EYES -> this.getEyes();
         case FACE -> this.getFaces();
         case MOUTHS -> this.getMouths();
         case FACIAL_HAIR -> this.getFacialHairs();
         case PANTS -> this.getPants();
         case OVERPANTS -> this.getOverpants();
         case UNDERTOPS -> this.getUndertops();
         case OVERTOPS -> this.getOvertops();
         case HAIRCUTS -> this.getHaircuts();
         case SHOES -> this.getShoes();
         case HEAD_ACCESSORY -> this.getHeadAccessories();
         case FACE_ACCESSORY -> this.getFaceAccessories();
         case EAR_ACCESSORY -> this.getEarAccessories();
         case GLOVES -> this.getGloves();
         case CAPES -> this.getCapes();
         case SKIN_FEATURES -> this.getSkinFeatures();
      };
   }
}