BenchSystems class

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

Файл: com/hypixel/hytale/builtin/crafting/system/BenchSystems.java

Поля (111)

МодификаторыТипИмя
private final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType
private final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType
private final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType
private final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType
private final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType
private final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType
break
private final ComponentType<ChunkStore, ProcessingBenchBlock> componentType
private final ComponentType<ChunkStore, ProcessingBenchBlock> componentType
private final Query<ChunkStore> query
return
return
return
return
return
return
Vector3d var10
int var10
int var10
BlockSection var10
int var10
ChunkSection var10
Holder[] var11
int var11
int var11
int var11
int var11
BlockSection var11
int var12
int var12
int var12
int var12
int var12
BlockSection var13
int var13
CombinedItemContainer var13
int var13
int var14
int var14
List var14
int var14
BlockType var15
int var15
World var15
int var15
Bench var16
int var16
Store var16
int var16
int var17
Vector3d var17
int var17
int var18
Holder[] var18
int var18
BlockType var19
BlockModule.BlockStateInfo var19
int var19
int var20
BlockType var20
World var21
int var21
World var22
Store var23
ProcessingBench var24
Instant var25
float var26
var26
var26
float var27
Map var28
boolean var29
boolean var30
var30
CraftingRecipe var31
List var32
List var33
List var34
String var37
boolean var38
int var39
ProcessingBench.ProcessingSlot[] var40
int var41
float var43
BlockModule.BlockStateInfo var5
BlockModule.BlockStateInfo var5
ProcessingBenchBlock var5
ProcessingBenchBlock var5
BenchBlock var6
BenchBlock var6
BenchBlock var6
BlockModule.BlockStateInfo var6
ProcessingBenchBlock var6
ItemStack[] var7
Ref var7
Ref var7
BlockModule.BlockStateInfo var7
Ref var7
BenchBlock var7
World var8
ChunkSection var8
ChunkSection var8
Ref var8
ChunkSection var8
BlockModule.BlockStateInfo var8
Store var9
int var9
int var9
ChunkSection var9
int var9
Ref var9

Методы (41)

МодификаторыВозвратСигнатура
public OnAddOrRemovedpublic OnAddOrRemoved()
public ProcessingBenchLifecyclepublic ProcessingBenchLifecycle(@Nonnull ComponentType<ChunkStore, ProcessingBenchBlock> var1, @Nonnull ComponentType<ChunkStore, BenchBlock> var2)
public ProcessingBenchTickpublic ProcessingBenchTick(@Nonnull ComponentType<ChunkStore, ProcessingBenchBlock> var1, @Nonnull ComponentType<ChunkStore, BenchBlock> var2)
static void dropUpgradeItemsvoid dropUpgradeItems(CommandBuffer<ChunkStore> var0, @Nullable BlockType var1, BenchBlock var2, int var3, int var4, int var5, int var6)
for for(TestRemoveItemSlotResult var36 : var34)
for for(int var42 = 0; var42 < var40.length; var42++)
public Query<ChunkStore> getQuerypublic Query<ChunkStore> getQuery()
public Query<ChunkStore> getQuerypublic Query<ChunkStore> getQuery()
public Query<ChunkStore> getQuerypublic Query<ChunkStore> getQuery()
if if(var7.length != 0)
if if(var1 != null)
if if(var11.length > 0)
if if(var16 == null)
if if(var2 != RemoveReason.UNLOAD)
if if(var5 != null && var6 != null && var7 != null)
if if(var9 != null)
if if(var10 != null)
if if(var19 != null)
if if(var2 == RemoveReason.UNLOAD)
if if(var19 != null)
if if(var5 != null)
if if(var6 != null)
if if(var8 != null)
if if(var13 != null)
if if(var18.length > 0)
if if(var7 != null && var8 != null)
if if(var10 != null)
if if(var11 != null)
if if(var20 != null)
if if(var24 != null)
if if(var31 != null)
if if(!var29)
if if(!var38)
if if(var29)
if if(var39 > 0)
if if(var30)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<ChunkStore> var3, @Nonnull Store<ChunkStore> var4, @Nonnull CommandBuffer<ChunkStore> var5)

Исходный код

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

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.builtin.crafting.component.ProcessingBenchBlock;
class="kw">import com.hypixel.hytale.builtin.crafting.window.BenchWindow;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
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.Bench;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.bench.ProcessingBench;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.CraftingRecipe;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.windows.WindowManager;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.MaterialQuantity;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.inventory.container.TestRemoveItemSlotResult;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.ItemComponent;
class="kw">import com.hypixel.hytale.server.core.modules.time.WorldTimeResource;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

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

   class="kw">private class="kw">static void dropUpgradeItems(CommandBuffer<ChunkStore> var0, @Nullable BlockType var1, BenchBlock var2, int var3, int var4, int var5, int var6) {
      ItemStack[] var7 = var2.getUpgradeItems();
      if (var7.length != 0) {
         World var8 = var0.getExternalData().getWorld();
         Store var9 = var8.getEntityStore().getStore();
         Vector3d var10 = new Vector3d();
         if (var1 != null) {
            var1.getBlockCenter(var3, var10);
         } else {
            var10.set(0.5, 0.5, 0.5);
         }

         var10.add(var4, var5, var6);
         Holder[] var11 = ItemComponent.generateItemDrops(var9, List.of(var7), var10, Rotation3f.IDENTITY);
         if (var11.length > 0) {
            var8.execute(() -> var9.addEntities(var11, AddReason.SPAWN));
         }

         var2.setUpgradeItems(ItemStack.EMPTY_ARRAY);
      }
   }

   class="kw">public class="kw">static class OnAddOrRemoved class="kw">extends RefSystem<ChunkStore> {
      class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType = BlockModule.BlockStateInfo.getComponentType();
      class="kw">private class="kw">final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType = BenchBlock.getComponentType();
      class="kw">private class="kw">final Query<ChunkStore> query = Query.and(this.benchBlockComponentType, this.blockStateInfoComponentType);

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

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         BlockModule.BlockStateInfo var5 = var4.getComponent(var1, this.blockStateInfoComponentType);
         assert var5 != null;
         BenchBlock var6 = var4.getComponent(var1, this.benchBlockComponentType);
         assert var6 != null;
         Ref var7 = var5.getSectionRef();
         if (var7.isValid()) {
            ChunkSection var8 = var4.getComponent(var7, ChunkSection.getComponentType());
            assert var8 != null;
            int var9 = var5.getIndex();
            int var10 = ChunkUtil.xFromIndex(var9);
            int var11 = ChunkUtil.yFromIndex(var9);
            int var12 = ChunkUtil.zFromIndex(var9);
            BlockSection var13 = var4.getComponent(var7, BlockSection.getComponentType());
            assert var13 != null;
            int var14 = var13.get(var10, var11, var12);
            BlockType var15 = BlockType.getAssetMap().getAsset(var14);
            if (var15 != null && var15.getBlockEntity() != null) {
               Bench var16 = var15.getBench();
               if (var16 == null) {
                  BenchSystems.dropUpgradeItems(
                     var4,
                     var15,
                     var6,
                     var13.getRotationIndex(var10, var11, var12),
                     ChunkUtil.worldCoordFromLocalCoord(var8.getX(), var10),
                     ChunkUtil.worldCoordFromLocalCoord(var8.getY(), var11),
                     ChunkUtil.worldCoordFromLocalCoord(var8.getZ(), var12)
                  );
               }
            }
         }
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         if (var2 != RemoveReason.UNLOAD) {
            BlockModule.BlockStateInfo var5 = var4.getComponent(var1, this.blockStateInfoComponentType);
            assert var5 != null;
            BenchBlock var6 = var4.getComponent(var1, this.benchBlockComponentType);
            assert var6 != null;
            Ref var7 = var5.getSectionRef();
            if (var7.isValid()) {
               ChunkSection var8 = var4.getComponent(var7, ChunkSection.getComponentType());
               assert var8 != null;
               int var9 = var5.getIndex();
               int var10 = ChunkUtil.xFromIndex(var9);
               int var11 = ChunkUtil.yFromIndex(var9);
               int var12 = ChunkUtil.zFromIndex(var9);
               WindowManager.closeAndRemoveAll(var6.getWindows());
               BenchSystems.dropUpgradeItems(
                  var4,
                  null,
                  var6,
                  0,
                  ChunkUtil.worldCoordFromLocalCoord(var8.getX(), var10),
                  ChunkUtil.worldCoordFromLocalCoord(var8.getY(), var11),
                  ChunkUtil.worldCoordFromLocalCoord(var8.getZ(), var12)
               );
            }
         }
      }

      @Nullable
      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return this.query;
      }
   }

   class="kw">public class="kw">static class ProcessingBenchLifecycle class="kw">extends RefSystem<ChunkStore> {
      class="kw">private class="kw">final ComponentType<ChunkStore, ProcessingBenchBlock> componentType;
      class="kw">private class="kw">final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType;
      class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType = BlockModule.BlockStateInfo.getComponentType();

      class="kw">public ProcessingBenchLifecycle(@Nonnull ComponentType<ChunkStore, ProcessingBenchBlock> var1, @Nonnull ComponentType<ChunkStore, BenchBlock> var2) {
         this.componentType = var1;
         this.benchBlockComponentType = var2;
      }

      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return this.componentType;
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         ProcessingBenchBlock var5 = var4.getComponent(var1, this.componentType);
         BenchBlock var6 = var4.getComponent(var1, this.benchBlockComponentType);
         BlockModule.BlockStateInfo var7 = var4.getComponent(var1, this.blockStateInfoComponentType);
         if (var5 != null && var6 != null && var7 != null) {
            Ref var8 = var7.getSectionRef();
            if (var8.isValid()) {
               ChunkSection var9 = var4.getComponent(var8, ChunkSection.getComponentType());
               if (var9 != null) {
                  BlockSection var10 = var4.getComponent(var8, BlockSection.getComponentType());
                  if (var10 != null) {
                     int var11 = var7.getIndex();
                     int var12 = ChunkUtil.xFromIndex(var11);
                     int var13 = ChunkUtil.yFromIndex(var11);
                     int var14 = ChunkUtil.zFromIndex(var11);
                     int var15 = ChunkUtil.worldCoordFromLocalCoord(var9.getX(), var12);
                     int var16 = ChunkUtil.worldCoordFromLocalCoord(var9.getY(), var13);
                     int var17 = ChunkUtil.worldCoordFromLocalCoord(var9.getZ(), var14);
                     int var18 = var10.get(var12, var13, var14);
                     BlockType var19 = BlockType.getAssetMap().getAsset(var18);
                     if (var19 != null) {
                        int var20 = var10.getRotationIndex(var12, var13, var14);
                        if (var5.initializeBenchConfig(var19)) {
                           World var21 = var4.getExternalData().getWorld();
                           var5.setupSlots(var21, var6, var7, var15, var16, var17, var19, var20);
                        }
                     }
                  }
               }
            }
         }
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         if (var2 == RemoveReason.UNLOAD) {
            BlockModule.BlockStateInfo var19 = var4.getComponent(var1, this.blockStateInfoComponentType);
            if (var19 != null) {
               var19.markNeedsSaving();
            }
         } else {
            ProcessingBenchBlock var5 = var4.getComponent(var1, this.componentType);
            if (var5 != null) {
               BlockModule.BlockStateInfo var6 = var4.getComponent(var1, this.blockStateInfoComponentType);
               if (var6 != null) {
                  Ref var7 = var6.getSectionRef();
                  if (var7.isValid()) {
                     ChunkSection var8 = var4.getComponent(var7, ChunkSection.getComponentType());
                     if (var8 != null) {
                        int var9 = var6.getIndex();
                        int var10 = ChunkUtil.worldCoordFromLocalCoord(var8.getX(), ChunkUtil.xFromIndex(var9));
                        int var11 = ChunkUtil.worldCoordFromLocalCoord(var8.getY(), ChunkUtil.yFromIndex(var9));
                        int var12 = ChunkUtil.worldCoordFromLocalCoord(var8.getZ(), ChunkUtil.zFromIndex(var9));
                        CombinedItemContainer var13 = var5.getItemContainer();
                        if (var13 != null) {
                           List var14 = var13.dropAllItemStacks();
                           var5.dropFuelItems(var14);
                           World var15 = var4.getExternalData().getWorld();
                           Store var16 = var15.getEntityStore().getStore();
                           Vector3d var17 = new Vector3d(var10 + 0.5, var11, var12 + 0.5);
                           Holder[] var18 = ItemComponent.generateItemDrops(var16, var14, var17, Rotation3f.IDENTITY);
                           if (var18.length > 0) {
                              var15.execute(() -> var16.addEntities(var18, AddReason.SPAWN));
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }

   class="kw">public class="kw">static class ProcessingBenchTick class="kw">extends EntityTickingSystem<ChunkStore> {
      class="kw">private class="kw">final ComponentType<ChunkStore, ProcessingBenchBlock> componentType;
      class="kw">private class="kw">final ComponentType<ChunkStore, BenchBlock> benchBlockComponentType;
      class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType = BlockModule.BlockStateInfo.getComponentType();

      class="kw">public ProcessingBenchTick(@Nonnull ComponentType<ChunkStore, ProcessingBenchBlock> var1, @Nonnull ComponentType<ChunkStore, BenchBlock> var2) {
         this.componentType = var1;
         this.benchBlockComponentType = var2;
      }

      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return this.componentType;
      }

      @Override
      class="kw">public void tick(float var1, int var2, @Nonnull ArchetypeChunk<ChunkStore> var3, @Nonnull Store<ChunkStore> var4, @Nonnull CommandBuffer<ChunkStore> var5) {
         ProcessingBenchBlock var6 = var3.getComponent(var2, this.componentType);
         BenchBlock var7 = var3.getComponent(var2, this.benchBlockComponentType);
         BlockModule.BlockStateInfo var8 = var3.getComponent(var2, this.blockStateInfoComponentType);
         if (var7 != null && var8 != null) {
            Ref var9 = var8.getSectionRef();
            if (var9.isValid()) {
               ChunkSection var10 = var4.getComponent(var9, ChunkSection.getComponentType());
               if (var10 != null) {
                  BlockSection var11 = var4.getComponent(var9, BlockSection.getComponentType());
                  if (var11 != null) {
                     int var12 = var8.getIndex();
                     int var13 = ChunkUtil.xFromIndex(var12);
                     int var14 = ChunkUtil.yFromIndex(var12);
                     int var15 = ChunkUtil.zFromIndex(var12);
                     int var16 = ChunkUtil.worldCoordFromLocalCoord(var10.getX(), var13);
                     int var17 = ChunkUtil.worldCoordFromLocalCoord(var10.getY(), var14);
                     int var18 = ChunkUtil.worldCoordFromLocalCoord(var10.getZ(), var15);
                     int var19 = var11.get(var13, var14, var15);
                     BlockType var20 = BlockType.getAssetMap().getAsset(var19);
                     if (var20 != null) {
                        int var21 = var11.getRotationIndex(var13, var14, var15);
                        World var22 = var4.getExternalData().getWorld();
                        Store var23 = var22.getEntityStore().getStore();
                        ProcessingBench var24 = var6.getProcessingBench();
                        if (var24 != null) {
                           Instant var25 = var23.getResource(WorldTimeResource.getResourceType()).getGameTime();
                           float var26;
                           if (var6.getLastTickGameTime() != null && var25 != null && !var25.equals(var6.getLastTickGameTime())) {
                              float var27 = (float)Math.max(0L, var25.toEpochMilli() - var6.getLastTickGameTime().toEpochMilli()) / 1000.0F;
                              var26 = (float)(var27 / WorldTimeResource.getSecondsPerTick(var22));
                           } else {
                              var26 = 0.0F;
                           }

                           String var37 = var20.getCurrentInteractionState();
                           Map var28 = var7.getWindows();
                           var6.getProcessingSlots().clear();
                           var6.checkForRecipeUpdate(var7);
                           boolean var29 = var24.getFuel() != null;
                           boolean var30 = false;
                           CraftingRecipe var31 = var6.getRecipe();
                           if (var31 != null) {
                              List var32 = CraftingManager.getOutputItemStacks(var31);
                              if (!var6.getOutputContainer().canAddItemStacks(var32, false, false)) {
                                 if ("Processing".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getFailedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 } else if ("ProcessCompleted".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getEndSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 }

                                 var6.setActive(false, var7, var8);
                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }

                              List var33 = CraftingManager.getInputMaterials(var31);
                              List var34 = var6.getInputContainer().getSlotMaterialsToRemove(var33, true, true);
                              if (var34.isEmpty()) {
                                 if ("Processing".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getFailedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 } else if ("ProcessCompleted".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getEndSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 }

                                 var6.setInputProgress(0.0F);
                                 var6.setActive(false, var7, var8);
                                 var6.clearCurrentRecipe();
                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }

                              for (TestRemoveItemSlotResult var36 : var34) {
                                 var6.getProcessingSlots().addAll(var36.getPickedSlots());
                              }

                              var6.sendProcessingSlots(var28);
                              var30 = true;
                           } else {
                              if (!var29) {
                                 if ("Processing".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getFailedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 } else if ("ProcessCompleted".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getEndSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 }

                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }

                              boolean var38 = var24.shouldAllowNoInputProcessing();
                              if (!var38 && "Processing".equals(var37)) {
                                 var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                 var6.playSound(var24.getFailedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                              } else if ("ProcessCompleted".equals(var37)) {
                                 var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                 var6.playSound(var24.getEndSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                 var6.setActive(false, var7, var8);
                                 var6.sendProgress(0.0F, var28);
                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }

                              var6.sendProgress(0.0F, var28);
                              if (!var38) {
                                 var6.setActive(false, var7, var8);
                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }
                           }

                           int var39 = var6.advanceProcessing(var26, var23, var7, var8, var16, var17, var18, var20, var21);
                           if (!var30 && var6.isActive()) {
                              var6.consumeFuelForDuration(var26, var23, var16, var17, var18, var20, var21);
                           }

                           var6.getProcessingFuelSlots().clear();
                           if (var29) {
                              ProcessingBench.ProcessingSlot[] var40 = var24.getFuel();
                              if (var6.isActive() && var6.getFuelTime() > 0.0F && var40 != null) {
                                 for (int var42 = 0; var42 < var40.length; var42++) {
                                    if (var6.getFuelContainer().getItemStack((short)var42) != null) {
                                       var6.getProcessingFuelSlots().add((short)var42);
                                       break;
                                    }
                                 }
                              }

                              if (!var6.isActive() || var6.getFuelTime() <= 0.0F) {
                                 var6.setLastConsumedFuelTotal(0);
                                 if ("Processing".equals(var37) || "ProcessCompleted".equals(var37)) {
                                    var6.setBlockInteractionState("class="kw">default", var20, var22, var16, var17, var18);
                                    var6.playSound(var24.getFailedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                                    var6.setActive(false, var7, var8);
                                 }

                                 var6.setLastTickGameTime(var25);
                                 class="kw">return;
                              }

                              var6.updateFuelValues(var28);
                           }

                           if (var39 > 0) {
                              var6.setBlockInteractionState("ProcessCompleted", var20, var22, var16, var17, var18);
                              var6.playSound(var6.getBench().getCompletedSoundEventIndex(), var23, var20, var21, var16, var17, var18);
                           } else {
                              if (!"Processing".equals(var37)) {
                                 var6.setBlockInteractionState("Processing", var20, var22, var16, var17, var18);
                              }

                              if (var30) {
                                 int var41 = var7.getTierLevel();
                                 float var43 = var6.getRecipeTimeSeconds(var41);
                                 if (var6.getRecipe() != null && var43 > 0.0F) {
                                    var6.sendProgress(var6.getInputProgress() / var43, var28);
                                 } else {
                                    var6.sendProgress(0.0F, var28);
                                 }
                              }
                           }

                           var6.setLastTickGameTime(var25);
                        }
                     }
                  }
               }
            }
         }
      }
   }
}