fabric-resource-loader-v1-1.0.4+14959b836f.jar

Download file
    package net.fabricmc.fabric.impl.resource.v1;

import net.fabricmc.fabric.impl.base.toposort.SortableNode;
import net.minecraft.class_2960;
import net.minecraft.class_3302;
import org.jetbrains.annotations.Nullable;

class ResourceReloaderPhaseData extends SortableNode<ResourceReloaderPhaseData> {
   final class_2960 id;
   class_3302 resourceReloader;
   VanillaStatus vanillaStatus;

   ResourceReloaderPhaseData(class_2960 id, @Nullable class_3302 resourceReloader) {
      this.vanillaStatus = ResourceReloaderPhaseData.VanillaStatus.NONE;
      this.id = id;
      this.resourceReloader = resourceReloader;
   }

   void markBefore() {
      boolean isAfter = this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.AFTER;
      if (this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.NONE || isAfter) {
         this.vanillaStatus = ResourceReloaderPhaseData.VanillaStatus.BEFORE;

         for(ResourceReloaderPhaseData prev : this.previousNodes) {
            prev.markBefore();
         }

      }
   }

   void markAfter() {
      if (this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.NONE) {
         this.vanillaStatus = ResourceReloaderPhaseData.VanillaStatus.AFTER;

         for(ResourceReloaderPhaseData next : this.subsequentNodes) {
            next.markAfter();
         }

      }
   }

   void setVanillaStatus(VanillaStatus status) {
      if (this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.NONE) {
         this.vanillaStatus = status;
      }

   }

   protected String getDescription() {
      return this.id.toString();
   }

   protected void addSubsequentNode(ResourceReloaderPhaseData phase) {
      super.addSubsequentNode(phase);
      if (this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.VANILLA || this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.AFTER) {
         phase.markAfter();
      }

   }

   protected void addPreviousNode(ResourceReloaderPhaseData phase) {
      super.addPreviousNode(phase);
      if (this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.VANILLA || this.vanillaStatus == ResourceReloaderPhaseData.VanillaStatus.BEFORE) {
         phase.markBefore();
      }

   }

   static enum VanillaStatus {
      NONE,
      AFTER,
      BEFORE,
      VANILLA;

      // $FF: synthetic method
      private static VanillaStatus[] $values() {
         return new VanillaStatus[]{NONE, AFTER, BEFORE, VANILLA};
      }
   }

   static class AfterVanilla extends ResourceReloaderPhaseData {
      AfterVanilla(class_2960 id) {
         super(id, (class_3302)null);
         this.setVanillaStatus(ResourceReloaderPhaseData.VanillaStatus.VANILLA);
      }

      public void markBefore() {
      }

      public void markAfter() {
      }
   }
}
    
Download file