summaryrefslogtreecommitdiff
path: root/src/main/java/lance5057/tDefense/util/TDRegistry.java
blob: 87fed5b05b1d6d5214433d3f1141e7a59eabfac8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package lance5057.tDefense.util;

import java.util.Set;

import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;

import gnu.trove.set.hash.TLinkedHashSet;
import lance5057.tDefense.core.tools.bases.ArmorCore;
import slimeknights.tconstruct.library.TinkerRegistry;
import slimeknights.tconstruct.library.tinkering.PartMaterialType;
import slimeknights.tconstruct.library.tools.IToolPart;
import slimeknights.tconstruct.library.tools.ToolCore;

public class TDRegistry {
	private static final Set<ArmorCore> armor = new TLinkedHashSet<>();
	  private static final Set<IToolPart> armorParts = new TLinkedHashSet<>();
	  private static final Set<ArmorCore> armorStationCrafting = Sets.newLinkedHashSet();
	  private static final Set<ArmorCore> armorForgeCrafting = Sets.newLinkedHashSet();
	  
	  public static void registerTool(ArmorCore tool) {
		  armor.add(tool);

		    for(PartMaterialType pmt : tool.getRequiredComponents()) {
		      for(IToolPart tp : pmt.getPossibleParts()) {
		        TinkerRegistry.registerToolPart(tp);
		      }
		    }
		  }
	  
	  /** Adds a armor to the Crafting UI of both the armor Station as well as the armor Forge */
	  public static void registerArmorCrafting(ArmorCore armor) {
	    registerArmorStationCrafting(armor);
	    registerArmorForgeCrafting(armor);
	  }

	  /** Adds a armor to the Crafting UI of the armor Station */
	  public static void registerArmorStationCrafting(ArmorCore armor) {
	    armorStationCrafting.add(armor);
	  }

	  public static ImmutableSet<ArmorCore> getArmorStationCrafting() {
	    return ImmutableSet.copyOf(armorStationCrafting);
	  }

	  /** Adds a armor to the Crafting UI of the armor Forge */
	  public static void registerArmorForgeCrafting(ArmorCore armor) {
	    armorForgeCrafting.add(armor);
	  }

	  public static ImmutableSet<ArmorCore> getArmorForgeCrafting() {
	    return ImmutableSet.copyOf(armorForgeCrafting);
	  }
	  
	  public static Set<ArmorCore> getArmor() {
		    return ImmutableSet.copyOf(armor);
		  }
}