package org.pfaa.chemica.processing;

import com.google.common.base.CaseFormat;

public interface Form {
	public String name();
	public String oreDictKey();
	
	public enum Forms implements Form {
		BLOCK(1), // intact solid placeable as block, constructed from 9 ingots/lumps, 4 clumps, or cast directly
		CLUMP(4), // a compact lump, typically from a malleable solid like dirt or clay
		CRUSHED(2), // the result of crushing a block, further crushing yields powder
		DUST(9), // dry solid as fine particles, from pulverizing ingots and lumps, precipitation
		INGOT(9), // intact solid in regular shape, from sintering powder or casting, or dismantling blocks
		LUMP(9), // intact solid in irregular shape, found naturally
		NUGGET(9*9), // metal in irregular, natural form; can be combined into (or broken down from) ingot
		PILE(4), // like a clump, except loose
		TINY_DUST(9*9); // dust from pulverizing nugget
		
		private int numberPerBlock;
		
		private Forms(int numberPerBlock) {
			this.setNumberPerBlock(numberPerBlock);
		}

		public int getNumberPerBlock() {
			return numberPerBlock;
		}

		private void setNumberPerBlock(int numberPerBlock) {
			this.numberPerBlock = numberPerBlock;
		}

		@Override
		public String oreDictKey() {
			return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name());
		}
	}
}

@@ -150,18 +150,51 @@
 tKey();%0A
+%09public int getNumberPerBlock();%0A
 %09%0A
-
 %09public 
@@ -426,9 +426,9 @@
 HED(
-2
+9
 ), /
@@ -897,23 +897,23 @@
 e%0A%09%09
-TINY_DUST
+DUST_TINY
 (9*9)
-;
+,
  // 
@@ -941,16 +941,60 @@
  nugget%0A
+%09%09DUST_IMPURE(9),%0A%09%09DUST_IMPURE_TINY(9*9); %0A
 %09%09%0A%09%09pri
@@ -1107,16 +1107,28 @@
 );%0A%09%09%7D%0A%0A
+%09%09@Override%0A
 %09%09public

add impure dusts and tiny dusts