mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
75 lines
3.2 KiB
Java
75 lines
3.2 KiB
Java
package com.hbm.inventory.material;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import com.hbm.util.Compat;
|
|
|
|
public class MaterialShapes {
|
|
|
|
public static final List<MaterialShapes> allShapes = new ArrayList();
|
|
|
|
public static final MaterialShapes QUANTUM = new MaterialShapes(1); // 1/72 of an ingot, allows the ingot to be divisible through 2, 4, 6, 8, 9, 12, 24 and 36
|
|
public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget");
|
|
public static final MaterialShapes DUSTTINY = new MaterialShapes(NUGGET.quantity, "dustTiny");
|
|
public static final MaterialShapes WIRE = new MaterialShapes(9);
|
|
public static final MaterialShapes BILLET = new MaterialShapes(NUGGET.quantity * 6, "billet");
|
|
public static final MaterialShapes INGOT = new MaterialShapes(NUGGET.quantity * 9, "ingot");
|
|
public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem");
|
|
public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal");
|
|
public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust");
|
|
public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate");
|
|
public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple");
|
|
public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple");
|
|
public static final MaterialShapes QUART = new MaterialShapes(162);
|
|
public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block");
|
|
public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy");
|
|
|
|
public static void registerCompatShapes() {
|
|
|
|
if(Compat.isModLoaded(Compat.MOD_GT6)) {
|
|
new MaterialShapes(BLOCK.q(1), "blockDust");
|
|
new MaterialShapes(BLOCK.q(1), "blockGem");
|
|
new MaterialShapes(BLOCK.q(1), "blockIngot");
|
|
new MaterialShapes(BLOCK.q(1), "blockSolid");
|
|
new MaterialShapes(INGOT.q(9, 8), "crushed");
|
|
new MaterialShapes(INGOT.q(9, 72), "crushedTiny");
|
|
new MaterialShapes(INGOT.q(10, 8), "crushedPurified");
|
|
new MaterialShapes(INGOT.q(10, 72), "crushedPurifiedTiny");
|
|
new MaterialShapes(INGOT.q(11, 8), "crushedCentrifuged");
|
|
new MaterialShapes(INGOT.q(11, 72), "crushedCentrifugedTiny");
|
|
new MaterialShapes(INGOT.q(1, 4), "dustSmall");
|
|
new MaterialShapes(INGOT.q(1, 72), "dustDiv72");
|
|
new MaterialShapes(INGOT.q(10, 9), "dustImpure");
|
|
new MaterialShapes(INGOT.q(11, 9), "dustPure");
|
|
new MaterialShapes(INGOT.q(12, 9), "dustRefined");
|
|
}
|
|
}
|
|
|
|
private int quantity;
|
|
public final String[] prefixes;
|
|
|
|
private MaterialShapes(int quantity, String... prefixes) {
|
|
this.quantity = quantity;
|
|
this.prefixes = prefixes;
|
|
|
|
for(String prefix : prefixes) {
|
|
Mats.prefixByName.put(prefix, this);
|
|
}
|
|
|
|
allShapes.add(this);
|
|
}
|
|
|
|
public int q(int amount) {
|
|
return this.quantity * amount;
|
|
}
|
|
|
|
public int q(int unitsUsed, int itemsProduced) { //eg rails: INOGT.q(6, 16) since the recipe uses 6 iron ingots producing 16 individual rail blocks
|
|
return this.quantity * unitsUsed / itemsProduced;
|
|
}
|
|
|
|
public String name() {
|
|
return (prefixes != null && prefixes.length > 0) ? prefixes[0] : "unknown";
|
|
}
|
|
}
|