ConversionResult class

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

Файл: com/hypixel/hytale/server/core/asset/type/fluid/Fluid.java

Поля (3)

МодификаторыТипИмя
public String blockTypeStr
public int fluidId
public byte fluidLevel

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetKeyValidator;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.EnumMapCodec;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIDefaultCollapsedState;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIEditorSectionStart;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIPropertyTitle;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIRebuildCaches;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.BlockTextures;
class="kw">import com.hypixel.hytale.protocol.Color;
class="kw">import com.hypixel.hytale.protocol.ColorLight;
class="kw">import com.hypixel.hytale.protocol.FluidDrawType;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.Opacity;
class="kw">import com.hypixel.hytale.protocol.ShaderType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blockparticle.config.BlockParticleSet;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocksound.config.BlockSoundSet;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockTypeTextures;
class="kw">import com.hypixel.hytale.server.core.asset.type.fluidfx.config.FluidFX;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelParticle;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.InteractionTypeUtils;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.palette.AbstractSectionPalette;
class="kw">import com.hypixel.hytale.server.core.util.io.MemorySegmentUtil;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import java.util.Collections;
class="kw">import java.util.Map;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class Fluid class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, Fluid>>, NetworkSerializable<com.hypixel.hytale.protocol.Fluid> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, Fluid> CODEC = AssetBuilderCodec.builder(
         Fluid.class, Fluid::new, Codec.STRING, (var0, var1) -> var0.id = var1, var0 -> var0.id, (var0, var1) -> var0.data = var1, var0 -> var0.data
      )
      .appendInherited(
         new KeyedCodec<>("MaxFluidLevel", Codec.INTEGER),
         (var0, var1) -> var0.maxFluidLevel = var1,
         var0 -> var0.maxFluidLevel,
         (var0, var1) -> var0.maxFluidLevel = var1.maxFluidLevel
      )
      .addValidator(Validators.range(0, 15))
      .add()
      .<BlockTypeTextures[]>appendInherited(
         new KeyedCodec<>("Textures", new ArrayCodec<>(BlockTypeTextures.CODEC, BlockTypeTextures[]::new)),
         (var0, var1) -> var0.textures = var1,
         var0 -> var0.textures,
         (var0, var1) -> var0.textures = var1.textures
      )
      .metadata(new UIPropertyTitle("Fluid Textures"))
      .metadata(new UIRebuildCaches(UIRebuildCaches.ClientCache.MODELS, UIRebuildCaches.ClientCache.BLOCK_TEXTURES))
      .add()
      .<ShaderType[]>appendInherited(
         new KeyedCodec<>("Effect", new ArrayCodec<>(new EnumCodec<>(ShaderType.class), ShaderType[]::new)),
         (var0, var1) -> var0.effect = var1,
         var0 -> var0.effect,
         (var0, var1) -> var0.effect = var1.effect
      )
      .metadata(new UIRebuildCaches(UIRebuildCaches.ClientCache.MODELS))
      .add()
      .<FluidDrawType>appendInherited(
         new KeyedCodec<>("DrawType", new EnumCodec<>(FluidDrawType.class)),
         (var0, var1) -> var0.drawType = var1,
         var0 -> var0.drawType,
         (var0, var1) -> var0.drawType = var1.drawType
      )
      .addValidator(Validators.nonNull())
      .metadata(new UIRebuildCaches(UIRebuildCaches.ClientCache.MODELS, UIRebuildCaches.ClientCache.BLOCK_TEXTURES, UIRebuildCaches.ClientCache.MODEL_TEXTURES))
      .metadata(new UIEditorSectionStart("Rendering"))
      .add()
      .<Opacity>appendInherited(
         new KeyedCodec<>("Opacity", new EnumCodec<>(Opacity.class)),
         (var0, var1) -> var0.opacity = var1,
         var0 -> var0.opacity,
         (var0, var1) -> var0.opacity = var1.opacity
      )
      .addValidator(Validators.nonNull())
      .add()
      .<Boolean>appendInherited(
         new KeyedCodec<>("RequiresAlphaBlending", Codec.BOOLEAN),
         (var0, var1) -> var0.requiresAlphaBlending = var1,
         var0 -> var0.requiresAlphaBlending,
         (var0, var1) -> var0.requiresAlphaBlending = var1.requiresAlphaBlending
      )
      .metadata(new UIRebuildCaches(UIRebuildCaches.ClientCache.MODELS))
      .add()
      .<String>appendInherited(
         new KeyedCodec<>("FluidFXId", Codec.STRING),
         (var0, var1) -> var0.fluidFXId = var1,
         var0 -> var0.fluidFXId,
         (var0, var1) -> var0.fluidFXId = var1.fluidFXId
      )
      .addValidator(FluidFX.VALIDATOR_CACHE.getValidator())
      .add()
      .<ModelParticle[]>appendInherited(
         new KeyedCodec<>("Particles", ModelParticle.ARRAY_CODEC),
         (var0, var1) -> var0.particles = var1,
         var0 -> var0.particles,
         (var0, var1) -> var0.particles = var1.particles
      )
      .documentation("The particles defined here will be spawned on top of fluids of this type placed in the world.")
      .metadata(new UIPropertyTitle("Fluid Particles"))
      .metadata(new UIRebuildCaches(UIRebuildCaches.ClientCache.MODELS))
      .metadata(UIDefaultCollapsedState.UNCOLLAPSED)
      .addValidator(Validators.nonNullArrayElements())
      .add()
      .appendInherited(
         new KeyedCodec<>("Ticker", FluidTicker.CODEC), (var0, var1) -> var0.ticker = var1, var0 -> var0.ticker, (var0, var1) -> var0.ticker = var1.ticker
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("Light", ProtocolCodecs.COLOR_LIGHT), (var0, var1) -> var0.light = var1, var0 -> var0.light, (var0, var1) -> var0.light = var1.light
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("DamageToEntities", Codec.INTEGER),
         (var0, var1) -> var0.damageToEntities = var1,
         var0 -> var0.damageToEntities,
         (var0, var1) -> var0.damageToEntities = var1.damageToEntities
      )
      .add()
      .<String>appendInherited(
         new KeyedCodec<>("BlockParticleSetId", Codec.STRING),
         (var0, var1) -> var0.blockParticleSetId = var1,
         var0 -> var0.blockParticleSetId,
         (var0, var1) -> var0.blockParticleSetId = var1.blockParticleSetId
      )
      .documentation(
         "The block particle set defined here defines which particles should be spawned when an entity interacts with this block (like when stepping on it for example"
      )
      .addValidator(BlockParticleSet.VALIDATOR_CACHE.getValidator())
      .add()
      .appendInherited(
         new KeyedCodec<>("ParticleColor", ProtocolCodecs.COLOR),
         (var0, var1) -> var0.particleColor = var1,
         var0 -> var0.particleColor,
         (var0, var1) -> var0.particleColor = var1.particleColor
      )
      .add()
      .<String>appendInherited(
         new KeyedCodec<>("BlockSoundSetId", Codec.STRING),
         (var0, var1) -> var0.blockSoundSetId = var1,
         var0 -> var0.blockSoundSetId,
         (var0, var1) -> var0.blockSoundSetId = var1.blockSoundSetId
      )
      .documentation("Sets the **BlockSoundSet** that will be used for this block for various events e.g. placement, breaking")
      .addValidator(BlockSoundSet.VALIDATOR_CACHE.getValidator())
      .add()
      .<Map<InteractionType, String>>appendInherited(
         new KeyedCodec<>("Interactions", new EnumMapCodec<>(InteractionType.class, RootInteraction.CHILD_ASSET_CODEC)),
         (var0, var1) -> var0.interactions = var1,
         var0 -> var0.interactions,
         (var0, var1) -> var0.interactions = var1.interactions
      )
      .addValidator(RootInteraction.VALIDATOR_CACHE.getMapValueValidator())
      .metadata(new UIEditorSectionStart("Interactions"))
      .add()
      .afterDecode(Fluid::processConfig)
      .build();
   class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(Fluid::getAssetStore));
   class="kw">public class="kw">static class="kw">final String UNKNOWN_TEXTURE = "BlockTextures/Unknown.png";
   class="kw">public class="kw">static class="kw">final BlockTextures[] UNKNOWN_BLOCK_TEXTURES = new BlockTextures[]{
      new BlockTextures(
         "BlockTextures/Unknown.png",
         "BlockTextures/Unknown.png",
         "BlockTextures/Unknown.png",
         "BlockTextures/Unknown.png",
         "BlockTextures/Unknown.png",
         "BlockTextures/Unknown.png",
         1.0F
      )
   };
   class="kw">public class="kw">static class="kw">final ShaderType[] DEFAULT_SHADER_EFFECTS = new ShaderType[]{ShaderType.None};
   class="kw">public class="kw">static class="kw">final AbstractSectionPalette.KeyMemorySerializer KEY_MEMORY_SERIALIZER = new AbstractSectionPalette.KeyMemorySerializer() {
      @Override
      class="kw">public int serialize(MemorySegment var1, int var2, int var3) {
         String var4 = Fluid.getAssetMap().getAssetOrDefault(var3, Fluid.UNKNOWN).getId();
         class="kw">return MemorySegmentUtil.writeUTF(var1, var2, var4);
      }

      @Override
      class="kw">public int keySize(int var1) {
         String var2 = Fluid.getAssetMap().getAssetOrDefault(var1, Fluid.UNKNOWN).getId();
         class="kw">return MemorySegmentUtil.utf8Size(var2);
      }
   };
   class="kw">public class="kw">static class="kw">final AbstractSectionPalette.KeyMemoryDeserializer KEY_MEMORY_DESERIALIZER = new AbstractSectionPalette.KeyMemoryDeserializer() {
      @Override
      class="kw">public int deserialize(MemorySegment var1, int var2) {
         String var3 = MemorySegmentUtil.readUTF(var1, var2);
         class="kw">return Fluid.getFluidIdOrUnknown(var3, "Failed to find fluid '%s' in chunk section!", var3);
      }

      @Override
      class="kw">public int keySize(MemorySegment var1, int var2) {
         class="kw">return MemorySegmentUtil.utf8Size(var1, var2);
      }
   };
   class="kw">public class="kw">static class="kw">final int EMPTY_ID = 0;
   class="kw">public class="kw">static class="kw">final String EMPTY_KEY = "Empty";
   class="kw">public class="kw">static class="kw">final Fluid EMPTY = new Fluid("Empty") {
      {
         this.processConfig();
      }
   };
   class="kw">public class="kw">static class="kw">final int UNKNOWN_ID = 1;
   class="kw">public class="kw">static class="kw">final Fluid UNKNOWN = new Fluid("Unknown") {
      {
         this.unknown = true;
         this.processConfig();
      }
   };
   class="kw">private class="kw">static AssetStore<String, Fluid, IndexedLookupTableAssetMap<String, Fluid>> ASSET_STORE;
   class="kw">protected AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected boolean unknown;
   class="kw">private int maxFluidLevel = 8;
   class="kw">private BlockTypeTextures[] textures;
   class="kw">private ShaderType[] effect;
   class="kw">protected ModelParticle[] particles;
   class="kw">private FluidDrawType drawType = FluidDrawType.Liquid;
   @Nonnull
   class="kw">private Opacity opacity = Opacity.Solid;
   class="kw">private boolean requiresAlphaBlending = true;
   class="kw">private String fluidFXId = "Empty";
   class="kw">protected class="kw">transient int fluidFXIndex = 0;
   class="kw">private FluidTicker ticker = DefaultFluidTicker.INSTANCE;
   class="kw">protected int damageToEntities;
   class="kw">protected ColorLight light;
   class="kw">protected Color particleColor;
   class="kw">protected String blockSoundSetId = "EMPTY";
   class="kw">protected class="kw">transient int blockSoundSetIndex = 0;
   class="kw">public String blockParticleSetId;
   class="kw">protected Map<InteractionType, String> interactions = Collections.emptyMap();
   class="kw">protected class="kw">transient boolean isTrigger;

   class="kw">public class="kw">static AssetStore<String, Fluid, IndexedLookupTableAssetMap<String, Fluid>> getAssetStore() {
      if (ASSET_STORE == null) {
         ASSET_STORE = AssetRegistry.getAssetStore(Fluid.class);
      }

      class="kw">return ASSET_STORE;
   }

   class="kw">public class="kw">static IndexedLookupTableAssetMap<String, Fluid> getAssetMap() {
      class="kw">return (IndexedLookupTableAssetMap<String, Fluid>)getAssetStore().getAssetMap();
   }

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

   class="kw">public Fluid(String var1) {
      this.id = var1;
   }

   class="kw">public Fluid(@Nonnull Fluid var1) {
      this.data = var1.data;
      this.id = var1.id;
      this.unknown = var1.unknown;
      this.maxFluidLevel = var1.maxFluidLevel;
      this.textures = var1.textures;
      this.effect = var1.effect;
      this.opacity = var1.opacity;
      this.requiresAlphaBlending = var1.requiresAlphaBlending;
      this.fluidFXId = var1.fluidFXId;
      this.particles = var1.particles;
      this.drawType = var1.drawType;
      this.damageToEntities = var1.damageToEntities;
      this.light = var1.light;
      this.particleColor = var1.particleColor;
      this.blockSoundSetId = var1.blockSoundSetId;
      this.interactions = var1.interactions;
      this.isTrigger = var1.isTrigger;
      this.processConfig();
   }

   class="kw">public AssetExtraInfo.Data getData() {
      class="kw">return this.data;
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   class="kw">public boolean isUnknown() {
      class="kw">return this.unknown;
   }

   class="kw">public int getMaxFluidLevel() {
      class="kw">return this.maxFluidLevel;
   }

   class="kw">public boolean hasEffect(ShaderType var1) {
      if (this.effect == null) {
         class="kw">return false;
      }

      for (ShaderType var5 : this.effect) {
         if (var5 == var1) {
            class="kw">return true;
         }
      }

      class="kw">return false;
   }

   class="kw">public FluidTicker getTicker() {
      class="kw">return this.ticker;
   }

   class="kw">public int getDamageToEntities() {
      class="kw">return this.damageToEntities;
   }

   class="kw">public String getFluidFXId() {
      class="kw">return this.fluidFXId;
   }

   class="kw">public int getFluidFXIndex() {
      class="kw">return this.fluidFXIndex;
   }

   class="kw">public ColorLight getLight() {
      class="kw">return this.light;
   }

   class="kw">public Color getParticleColor() {
      class="kw">return this.particleColor;
   }

   class="kw">public boolean isTrigger() {
      class="kw">return this.isTrigger;
   }

   class="kw">public Map<InteractionType, String> getInteractions() {
      class="kw">return this.interactions;
   }

   class="kw">protected void processConfig() {
      this.fluidFXIndex = this.fluidFXId.equals("Empty") ? 0 : FluidFX.getAssetMap().getIndex(this.fluidFXId);
      this.blockSoundSetIndex = this.blockSoundSetId.equals("EMPTY") ? 0 : BlockSoundSet.getAssetMap().getIndex(this.blockSoundSetId);

      for (InteractionType var2 : this.interactions.keySet()) {
         if (InteractionTypeUtils.isCollisionType(var2)) {
            this.isTrigger = true;
            break;
         }
      }
   }

   @Nonnull
   class="kw">public class="kw">static Fluid getUnknownFor(String var0) {
      class="kw">return UNKNOWN.clone(var0);
   }

   @Nonnull
   class="kw">public Fluid clone(String var1) {
      if (this.id != null && this.id.equals(var1)) {
         class="kw">return this;
      }

      Fluid var2 = new Fluid(this);
      var2.id = var1;
      class="kw">return var2;
   }

   class="kw">public class="kw">static int getFluidIdOrUnknown(String var0, String var1, Object... var2) {
      class="kw">return getFluidIdOrUnknown(getAssetMap(), var0, var1, var2);
   }

   class="kw">public class="kw">static int getFluidIdOrUnknown(@Nonnull IndexedLookupTableAssetMap<String, Fluid> var0, String var1, String var2, Object... var3) {
      int var4 = var0.getIndex(var1);
      if (var4 == Integer.MIN_VALUE) {
         HytaleLogger.getLogger().at(Level.WARNING).logVarargs(var2, var3);
         AssetRegistry.getAssetStore(Fluid.class).loadAssets("Hytale:Hytale", Collections.singletonList(getUnknownFor(var1)));
         int var5 = var0.getIndex(var1);
         if (var5 == Integer.MIN_VALUE) {
            throw new IllegalArgumentException("Unknown key! " + var1);
         }

         var4 = var5;
      }

      class="kw">return var4;
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.Fluid toPacket() {
      com.hypixel.hytale.protocol.Fluid var1 = new com.hypixel.hytale.protocol.Fluid();
      var1.id = this.id;
      var1.maxFluidLevel = this.maxFluidLevel;
      var1.fluidFXIndex = this.fluidFXIndex;
      var1.opacity = this.opacity;
      var1.light = this.light;
      if (this.effect != null && this.effect.length > 0) {
         var1.shaderEffect = this.effect;
      } else {
         var1.shaderEffect = DEFAULT_SHADER_EFFECTS;
      }

      if (this.textures != null && this.textures.length > 0) {
         float var2 = 0.0F;

         for (BlockTypeTextures var6 : this.textures) {
            var2 += var6.getWeight();
         }

         BlockTextures[] var9 = new BlockTextures[this.textures.length];

         for (int var10 = 0; var10 < this.textures.length; var10++) {
            var9[var10] = this.textures[var10].toPacket(var2);
         }

         var1.cubeTextures = var9;
      } else {
         var1.cubeTextures = UNKNOWN_BLOCK_TEXTURES;
      }

      if (this.particles != null && this.particles.length > 0) {
         var1.particles = new com.hypixel.hytale.protocol.ModelParticle[this.particles.length];

         for (int var7 = 0; var7 < this.particles.length; var7++) {
            var1.particles[var7] = this.particles[var7].toPacket();
         }
      }

      var1.drawType = this.drawType;
      var1.requiresAlphaBlending = this.requiresAlphaBlending;
      var1.blockSoundSetIndex = this.blockSoundSetIndex;
      var1.blockParticleSetId = this.blockParticleSetId;
      var1.particleColor = this.particleColor;
      var1.fluidFXIndex = this.fluidFXIndex;
      if (this.data != null) {
         IntSet var8 = this.data.getExpandedTagIndexes();
         if (var8 != null) {
            var1.tagIndexes = var8.toIntArray();
         }
      }

      class="kw">return var1;
   }

   @Nullable
   @Deprecated(forRemoval = true)
   class="kw">public class="kw">static String convertLegacyName(@Nonnull String var0, byte var1) {
      class="kw">return class="kw">switch (var0) {
         case "Fluid_Water" -> var1 == 0 ? "Water_Source" : "Water";
         case "Fluid_Water_Test" -> "Water_Finite";
         case "Fluid_Lava" -> var1 == 0 ? "Lava_Source" : "Lava";
         case "Fluid_Tar" -> var1 == 0 ? "Tar_Source" : "Tar";
         case "Fluid_Slime" -> var1 == 0 ? "Slime_Source" : "Slime";
         case "Fluid_Poison" -> var1 == 0 ? "Poison_Source" : "Poison";
         class="kw">default -> null;
      };
   }

   @Nullable
   @Deprecated(forRemoval = true)
   class="kw">public class="kw">static Fluid.ConversionResult convertBlockToFluid(@Nonnull String var0) {
      int var1 = var0.indexOf("|Fluid=");
      if (var1 != -1) {
         int var10 = var0.indexOf(124, var1 + 2);
         String var11;
         if (var10 != -1) {
            var11 = var0.substring(var1 + "|Fluid=".length(), var10);
            var0 = var0.substring(0, var1) + var0.substring(var10);
         } else {
            var11 = var0.substring(var1 + "|Fluid=".length());
            var0 = var0.substring(0, var1);
         }

         int var17 = var0.indexOf("|FluidLevel=");
         byte var14;
         if (var17 != -1) {
            int var6 = var0.indexOf(124, var17 + 2);
            String var7;
            if (var6 != -1) {
               var7 = var0.substring(var17 + "|FluidLevel=".length(), var6);
               var0 = var0.substring(0, var17) + var0.substring(var6);
            } else {
               var7 = var0.substring(var17 + "|FluidLevel=".length());
               var0 = var0.substring(0, var17);
            }

            var14 = Byte.parseByte(var7);
         } else {
            var14 = 0;
         }

         var11 = convertLegacyName(var11, var14);
         int var18 = getFluidIdOrUnknown(var11, "Failed to find fluid '%s'", var11);
         var14 = var14 == 0 ? (byte)getAssetMap().getAsset(var18).getMaxFluidLevel() : var14;
         class="kw">return new Fluid.ConversionResult(var0, var18, var14);
      } else if (var0.startsWith("Fluid_")) {
         int var3 = var0.indexOf("|FluidLevel=");
         byte var2;
         if (var3 != -1) {
            int var4 = var0.indexOf(124, var3 + 2);
            String var5;
            if (var4 != -1) {
               var5 = var0.substring(var3 + "|FluidLevel=".length(), var4);
               var0 = var0.substring(0, var3) + var0.substring(var4);
            } else {
               var5 = var0.substring(var3 + "|FluidLevel=".length());
               var0 = var0.substring(0, var3);
            }

            var2 = Byte.parseByte(var5);
         } else {
            var2 = 0;
         }

         String var13 = convertLegacyName(var0, var2);
         int var16 = getFluidIdOrUnknown(var13, "Failed to find fluid '%s'", var13);
         var2 = var2 == 0 ? (byte)getAssetMap().getAsset(var16).getMaxFluidLevel() : var2;
         class="kw">return new Fluid.ConversionResult(null, var16, var2);
      } else {
         class="kw">return null;
      }
   }

   @Deprecated(forRemoval = true)
   class="kw">public class="kw">static class ConversionResult {
      class="kw">public String blockTypeStr;
      class="kw">public int fluidId;
      class="kw">public byte fluidLevel;

      class="kw">public ConversionResult(String var1, int var2, byte var3) {
         this.blockTypeStr = var1;
         this.fluidId = var2;
         this.fluidLevel = var3;
      }
   }
}