CraftingWindow class

Пакет: com.hypixel.hytale.builtin.crafting.window

Файл: com/hypixel/hytale/builtin/crafting/window/CraftingWindow.java

extends: BenchWindow

Поля (15)

МодификаторыТипИмя
JsonObject var14
Set var15
JsonArray var16
JsonObject var21
JsonArray var23
GameplayConfig var3
MemoriesGameplayConfig var4
String var4
int[] var5
int var5
JsonArray var6
CraftingRecipe var6
CombinedItemContainer var7
JsonArray var8
PlayerRef var8

Методы (10)

МодификаторыВозвратСигнатура
static boolean craftSimpleItemboolean craftSimpleItem(@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull CraftingManager var2, @Nonnull CraftRecipeAction var3)
for for(String var18 : var15)
for for(int var7 = 0; var7 < var5.length; var7++)
if if(this.bench instanceof CraftingBench var9)
if if(var15 != null)
if if(var4 != null)
if if(var5 != null && var5.length > 1)
if if(var4 == null)
if if(var6 == null)
abstract super super(var1, var2, var3, var4, var5, var6, var7)

Исходный код

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

class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonObject;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.MemoriesGameplayConfig;
class="kw">import com.hypixel.hytale.builtin.crafting.CraftingPlugin;
class="kw">import com.hypixel.hytale.builtin.crafting.component.BenchBlock;
class="kw">import com.hypixel.hytale.builtin.crafting.component.CraftingManager;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.protocol.packets.window.CraftRecipeAction;
class="kw">import com.hypixel.hytale.protocol.packets.window.WindowType;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.bench.CraftingBench;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.CraftingRecipe;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">abstract class CraftingWindow class="kw">extends BenchWindow {
   @Nonnull
   class="kw">protected class="kw">static class="kw">final String CRAFT_COMPLETED = "CraftCompleted";
   @Nonnull
   class="kw">protected class="kw">static class="kw">final String CRAFT_COMPLETED_INSTANT = "CraftCompletedInstant";

   class="kw">public CraftingWindow(@Nonnull WindowType var1, int var2, int var3, int var4, int var5, @Nonnull BlockType var6, @Nonnull BenchBlock var7) {
      super(var1, var2, var3, var4, var5, var6, var7);
      JsonArray var8 = new JsonArray();
      if (this.bench class="kw">instanceof CraftingBench var9) {
         for (CraftingBench.BenchCategory var13 : var9.getCategories()) {
            JsonObject var14 = new JsonObject();
            var8.add(var14);
            var14.addProperty("id", var13.getId());
            var14.addProperty("name", var13.getName());
            var14.addProperty("icon", var13.getIcon());
            Set var15 = CraftingPlugin.getAvailableRecipesForCategory(this.bench.getId(), var13.getId());
            if (var15 != null) {
               JsonArray var16 = new JsonArray();

               for (String var18 : var15) {
                  var16.add(var18);
               }

               var14.add("craftableRecipes", var16);
            }

            if (var13.getItemCategories() != null) {
               JsonArray var23 = new JsonArray();

               for (CraftingBench.BenchItemCategory var20 : var13.getItemCategories()) {
                  JsonObject var21 = new JsonObject();
                  var21.addProperty("id", var20.getId());
                  var21.addProperty("icon", var20.getIcon());
                  var21.addProperty("diagram", var20.getDiagram());
                  var21.addProperty("slots", var20.getSlots());
                  var21.addProperty("specialSlot", var20.isSpecialSlot());
                  var23.add(var21);
               }

               var14.add("itemCategories", var23);
            }
         }

         this.windowData.add("categories", var8);
      }
   }

   @Override
   class="kw">protected boolean onOpen0(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
      super.onOpen0(var1, var2);
      GameplayConfig var3 = var2.getExternalData().getWorld().getGameplayConfig();
      MemoriesGameplayConfig var4 = MemoriesGameplayConfig.get(var3);
      if (var4 != null) {
         int[] var5 = var4.getMemoriesAmountPerLevel();
         if (var5 != null && var5.length > 1) {
            JsonArray var6 = new JsonArray();

            for (int var7 = 0; var7 < var5.length; var7++) {
               var6.add(var5[var7]);
            }

            this.windowData.add("memoriesPerLevel", var6);
         }
      }

      if (this.bench.getLocalOpenSoundEventIndex() != 0) {
         SoundUtil.playSoundEvent2d(var1, this.bench.getLocalOpenSoundEventIndex(), SoundCategory.UI, var2);
      }

      class="kw">return true;
   }

   @Override
   class="kw">public void onClose0(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      super.onClose0(var1, var2);
      if (this.bench.getLocalCloseSoundEventIndex() != 0) {
         SoundUtil.playSoundEvent2d(var1, this.bench.getLocalCloseSoundEventIndex(), SoundCategory.UI, var2);
      }
   }

   class="kw">public class="kw">static boolean craftSimpleItem(
      @Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull CraftingManager var2, @Nonnull CraftRecipeAction var3
   ) {
      String var4 = var3.recipeId;
      int var5 = var3.quantity;
      if (var4 == null) {
         class="kw">return false;
      } else {
         CraftingRecipe var6 = CraftingRecipe.getAssetMap().getAsset(var4);
         if (var6 == null) {
            PlayerRef var8 = var0.getComponent(var1, PlayerRef.getComponentType());
            assert var8 != null;
            var8.getPacketHandler().disconnect(Message.translation("server.general.disconnect.unknownRecipe"));
            class="kw">return false;
         } else {
            CombinedItemContainer var7 = InventoryComponent.getCombined(var0, var1, InventoryComponent.BACKPACK_STORAGE_HOTBAR);
            var2.craftItem(var1, var0, var6, var5, var7);
            class="kw">return true;
         }
      }
   }
}