diff --git a/src/main/java/com/sosnitzka/taiga/Alloys.java b/src/main/java/com/sosnitzka/taiga/Alloys.java
index 0528f3a..d728179 100644
--- a/src/main/java/com/sosnitzka/taiga/Alloys.java
+++ b/src/main/java/com/sosnitzka/taiga/Alloys.java
@@ -8,6 +8,9 @@ import static com.sosnitzka.taiga.util.Utils.registerTinkerAlloys;
public class Alloys {
+ /**
+ * Registers alloying in the smeltery
+ */
static void register() {
registerTinkerAlloys(nitroniteFluid, 2, tiberiumFluid, 4, vibraniumFluid, 3, nitroFluid, 3);
registerTinkerAlloys(bysmuidFluid, 1, rubiumFluid, 3, bismuthFluid, 2, anthraciteFluid, 3);
diff --git a/src/main/java/com/sosnitzka/taiga/Blocks.java b/src/main/java/com/sosnitzka/taiga/Blocks.java
index a260e64..1e1bf18 100644
--- a/src/main/java/com/sosnitzka/taiga/Blocks.java
+++ b/src/main/java/com/sosnitzka/taiga/Blocks.java
@@ -91,18 +91,23 @@ public class Blocks {
public static Block proxideumBlock = new BasicBlock("proxideum_block", Material.ROCK, 25.0f, 25.0f, 4, PREFIX_BLOCK);
public static Block astriumBlock = new BasicBlock("astrium_block", Material.ROCK, 55.0f, 400.0f, 7, PREFIX_BLOCK);
-
+ /**
+ * Registers all materials' ingots and nuggets
+ * Detailed summary:
+ * Gets the ingots declared in the class (fields and reflection) and iterates through them:
+ * Checks that the field is static, registers the field (item), and adds an oreDict entry if needed
+ */
public static void register() {
- Field[] declaredFields = Blocks.class.getDeclaredFields();
- for (Field field : declaredFields) {
- if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
+ Field[] declaredFields = Blocks.class.getDeclaredFields(); // Gets the fields (ingots) declared above
+ for (Field field : declaredFields) { // Iterates through the fields declared above
+ if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) { // Checks that the fields are static
Class> targetType = field.getType();
try {
- Block block = (Block) field.get(targetType);
- Utils.registerBlockWithItem(block);
+ Block block = (Block) field.get(targetType); // Gets the field as a BasicBlock which is then casted to an Block
+ Utils.registerBlockWithItem(block); // Registers block and its item
- if (block instanceof BasicBlock) {
- if (((BasicBlock) block).isOreDict()) {
+ if (block instanceof BasicBlock) { // Checks that the block is a BasicBlock
+ if (((BasicBlock) block).isOreDict()) { // Checks that the block has an oreDict entry
String oreDictName;
String[] nameParts = block.getUnlocalizedName().replace("tile.", "").split("_");
@@ -111,7 +116,7 @@ public class Blocks {
} else {
oreDictName = nameParts[0];
}
- OreDictionary.registerOre(((BasicBlock) block).getOreDictPrefix() + StringUtils.capitalize(oreDictName), block);
+ OreDictionary.registerOre(((BasicBlock) block).getOreDictPrefix() + StringUtils.capitalize(oreDictName), block); // Registers the block's oreDict
}
}
} catch (IllegalAccessException e) {
diff --git a/src/main/java/com/sosnitzka/taiga/Fluids.java b/src/main/java/com/sosnitzka/taiga/Fluids.java
index 1ba105c..41cb30f 100644
--- a/src/main/java/com/sosnitzka/taiga/Fluids.java
+++ b/src/main/java/com/sosnitzka/taiga/Fluids.java
@@ -61,21 +61,28 @@ public class Fluids {
public static BasicTinkerFluid anthraciteFluid = new BasicTinkerFluid("anthracite_fluid", 0xFF111111, false, 500, 0, 632);
public static BasicTinkerFluid spectrumFluid = new BasicTinkerFluid("spectrum_fluid", 0xFF64748f, false, 600, 0, 512);
-
+ /**
+ * Registers all materials' fluids
+ * Detailed summary:
+ * Gets the fluids declared in the class (fields and reflection) and iterates through them:
+ * Checks that the field is static, registers the field (fluids), and registers the models on the client
+ */
static void register() {
- Field[] declaredFields = Fluids.class.getDeclaredFields();
- for (Field field : declaredFields) {
- if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
+ Field[] declaredFields = Fluids.class.getDeclaredFields(); // Gets the blocks and ores declared above
+ for (Field field : declaredFields) { // Iterates through the fields declared above
+ if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) { // Checks that the fields are static
Class> targetType = field.getType();
try {
- BasicTinkerFluid fluid = (BasicTinkerFluid) field.get(targetType);
- registerFluid(fluid);
+ BasicTinkerFluid fluid = (BasicTinkerFluid) field.get(targetType); // Gets the field as a BasicTinkerFluid
+ registerFluid(fluid); // Registers the fluid into the game along wit its bucket
BlockMolten block = new BlockMolten(fluid);
+ // Sets names
block.setUnlocalizedName("molten_" + fluid.getName());
block.setRegistryName(TAIGA.MODID, "molten_" + fluid.getName());
+ // Registers the fluid in its block form and its corresponding item (block/fluid as item in inventory)
Utils.registerBlockWithItem(block);
-
+ // Registers the fluid's model but only on the client side
TAIGA.proxy.registerFluidModels(fluid);
} catch (IllegalAccessException e) {
e.printStackTrace();
@@ -84,7 +91,9 @@ public class Fluids {
}
}
-
+ /**
+ * Registers special smeltery recipes (not alloying)
+ */
static void registerfromItem() {
registerMelting(radiant_pearl, radiant_enderium, 72);
registerMelting(glimmer_pearl, glimming_enderium, 72);
diff --git a/src/main/java/com/sosnitzka/taiga/Items.java b/src/main/java/com/sosnitzka/taiga/Items.java
index c0d727f..e420523 100644
--- a/src/main/java/com/sosnitzka/taiga/Items.java
+++ b/src/main/java/com/sosnitzka/taiga/Items.java
@@ -104,17 +104,22 @@ public class Items {
public static Item tiberiumShardInstable = new BasicItem("tiberium_shard_instable");
-
+ /**
+ * Registers all materials' ingots and nuggets
+ * Detailed summary:
+ * Gets the ingots declared in the class (fields and reflection) and iterates through them:
+ * Checks that the field is static, registers the field (item), and adds an oreDict entry if needed
+ */
public static void register() {
- Field[] declaredFields = Items.class.getDeclaredFields();
- for (Field field : declaredFields) {
- if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
+ Field[] declaredFields = Items.class.getDeclaredFields(); // Gets the fields (ingots) declared above
+ for (Field field : declaredFields) { // Iterates through the fields declared above
+ if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) { // Checks that the fields are static
Class> targetType = field.getType();
try {
- Item item = (Item) field.get(targetType);
- GameRegistry.register(item);
- if (item instanceof BasicItem) {
- if (((BasicItem) item).isOreDict()) {
+ Item item = (Item) field.get(targetType); // Gets the field as a BasicItem which is then casted to an Item
+ GameRegistry.register(item); // Registers the item into the game
+ if (item instanceof BasicItem) { // Checks that the item is a BasicItem
+ if (((BasicItem) item).isOreDict()) { // Checks if this item should be registered into the oreDict and registers it
String oreDictName;
String[] nameParts = item.getUnlocalizedName().replace("item.", "").split("_");
@@ -124,7 +129,7 @@ public class Items {
oreDictName = nameParts[0];
}
- OreDictionary.registerOre(((BasicItem) item).getOreDictPrefix() + StringUtils.capitalize(oreDictName), item);
+ OreDictionary.registerOre(((BasicItem) item).getOreDictPrefix() + StringUtils.capitalize(oreDictName), item); // Registers into oreDict
}
}
} catch (IllegalAccessException e) {
diff --git a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java
index 38583b3..0f350b6 100644
--- a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java
+++ b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java
@@ -65,14 +65,12 @@ public class MaterialTraits {
public static Material palladium = new Material("palladium", TextFormatting.DARK_GRAY).addTrait(dark);
public static Material eternite = new Material("eternite", TextFormatting.AQUA).addTrait(writable2); //.addTrait(traditional)
public static Material mythril = new Material("mythril", TextFormatting.GRAY).addTrait(holy, HeadMaterialStats.TYPE).addTrait(hellish, HandleMaterialStats.TYPE);
-
public static Material imperomite = new Material("imperomite", TextFormatting.DARK_RED).addTrait(cascade);
public static Material fractoryte = new Material("fractoryte", TextFormatting.DARK_RED).addTrait(fracture);
public static Material noctunyx = new Material("noctunyx", TextFormatting.LIGHT_PURPLE).addTrait(hollow, HeadMaterialStats.TYPE).addTrait(reviving, HandleMaterialStats.TYPE);
public static Material nitronite = new Material("nitronite", TextFormatting.YELLOW).addTrait(uncertain);
public static Material cryptogen = new Material("cryptogen", TextFormatting.DARK_GREEN).addTrait(randomize);
public static Material seismodium = new Material("seismodium", TextFormatting.WHITE).addTrait(heroic).addTrait(fragile);
- ;
public static Material aegisalt = new Material("aegisalt", TextFormatting.AQUA).addTrait(analysing);
public static Material ultranite = new Material("ultranite", TextFormatting.AQUA).addTrait(pulverizing);
public static Material bysmuid = new Material("bysmuid", TextFormatting.AQUA).addTrait(organizing, HandleMaterialStats.TYPE).addTrait(melting, HeadMaterialStats.TYPE);
diff --git a/src/main/java/com/sosnitzka/taiga/TAIGA.java b/src/main/java/com/sosnitzka/taiga/TAIGA.java
index 7a8e8cd..380aa9a 100644
--- a/src/main/java/com/sosnitzka/taiga/TAIGA.java
+++ b/src/main/java/com/sosnitzka/taiga/TAIGA.java
@@ -6,6 +6,7 @@ import com.sosnitzka.taiga.recipes.Crafting;
import com.sosnitzka.taiga.recipes.Smelting;
import com.sosnitzka.taiga.util.FuelHandler;
import com.sosnitzka.taiga.world.ZWorldGen;
+import net.minecraft.item.Item;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
@@ -14,13 +15,16 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
+import org.apache.commons.lang3.StringUtils;
import slimeknights.tconstruct.library.MaterialIntegration;
import slimeknights.tconstruct.library.TinkerRegistry;
import slimeknights.tconstruct.library.materials.ExtraMaterialStats;
import slimeknights.tconstruct.library.materials.HandleMaterialStats;
import slimeknights.tconstruct.library.materials.HeadMaterialStats;
+import slimeknights.tconstruct.library.materials.Material;
import slimeknights.tconstruct.tools.TinkerMaterials;
+import java.lang.reflect.Field;
import java.util.List;
import static com.sosnitzka.taiga.Fluids.*;
@@ -35,19 +39,99 @@ public class TAIGA {
@SidedProxy(clientSide = "com.sosnitzka.taiga.proxy.ClientProxy", serverSide = "com.sosnitzka.taiga.proxy.ServerProxy")
public static ServerProxy proxy;
- private List integrateList = Lists.newArrayList();
+
+ private List integrateList = Lists.newArrayList(); // List of materials needed to be integrated
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
- Items.register();
- Blocks.register();
- Fluids.register();
- Fluids.registerfromItem();
- Alloys.register();
+ Items.register(); // Registers items and its oreDict
+ Blocks.register(); // Registers blocks and its items form a long with its oreDict
+ Fluids.register(); // Registers all fluids and its buckets
+ Fluids.registerfromItem(); // Registers some special smeltery recipes (not alloying)
+ Alloys.register(); // Registers alloying recipes
+ registerTinkerMaterials(); // Registers materials and associated fluids and stats into tconstruct
+ }
+
+ @EventHandler
+ public void init(FMLInitializationEvent e) {
+ proxy.registerModels(); // Registers models on the client side
+ GameRegistry.registerWorldGenerator(new ZWorldGen(), 100); // Generates ores
+ GameRegistry.registerFuelHandler(new FuelHandler()); // Registeres fuels' burn times
+ Smelting.register(); // Registers smelting recipes
+ Crafting.register(); // Registers crafting recipes
+
+ // Adds new harvest levels' names
+ harvestLevelNames.put(METEORITE, TinkerMaterials.bone.getTextColor() + "Meteorite");
+ harvestLevelNames.put(VIBRANIUM, TinkerMaterials.blueslime.getTextColor() + "Vibranium");
+ harvestLevelNames.put(ADAMANTITE, TinkerMaterials.ardite.getTextColor() + "Adamantite");
+ harvestLevelNames.put(TITANITE, TinkerMaterials.silver.getTextColor() + "Titanite");
+
+ for (MaterialIntegration m : integrateList) {
+ m.integrateRecipes();
+ }
+
+
+ }
+
+ @EventHandler
+ public void postInit(FMLPostInitializationEvent e) {
+
+ }
+
+ /**
+ * @param oreSuffix Suffix in the oreDict, also the name. ex) the "Iron" in "ingotIron"
+ * @param material TConstruct material
+ * @param fluid material's fluid
+ * @param headDura Durability (head)
+ * @param headSpeed Mining speed (head)
+ * @param headAttack Attack speed (head)
+ * @param handleMod Durability multiplier (handle)
+ * @param handleDura Extra durability (handle)
+ * @param extra Extra durability (binding and more)
+ * @param headLevel Mining level (head)
+ * @param craft Can craft parts in part builder
+ * @param cast Can craft parts by casting with fluid (smeltery)
+ */
+ private void registerTinkerMaterial(String oreSuffix, Material material, Fluid fluid, int headDura, float headSpeed, float headAttack, float handleMod, int handleDura, int extra, int headLevel, boolean craft, boolean cast) {
+ TinkerRegistry.addMaterialStats(material, new HeadMaterialStats(headDura, headSpeed, headAttack, headLevel));
+ TinkerRegistry.addMaterialStats(material, new HandleMaterialStats(handleMod, handleDura));
+ TinkerRegistry.addMaterialStats(material, new ExtraMaterialStats(extra));
+
+ System.out.println(material.getRepresentativeItem());
+ Item item = null;
+ Field[] items = Items.class.getDeclaredFields();
+ for (Field i : items) {
+ if (i.getName().equals(StringUtils.uncapitalize(oreSuffix) + "Ingot")) {
+ Item r = null;
+ try {
+ r = (Item) i.get(i.getType());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ item = r;
+ }
+ }
+
+
+ material.setFluid(fluid).setCraftable(craft).setCastable(cast).addItem(item, 1, Material.VALUE_Ingot);
+ material.setRepresentativeItem(item);
+
+ System.out.println(material.getRepresentativeItem());
+
+ proxy.setRenderInfo(material);
+ MaterialIntegration integration = new MaterialIntegration(material, fluid, oreSuffix);
+ integration.integrate();
+ integrateList.add(integration);
+ }
+
+
+ /**
+ * Registers materials and associated fluids and stats into tconstruct
+ */
+ private void registerTinkerMaterials() {
// ARCANE ORES
registerTinkerMaterial("Tiberium", tiberium, tiberiumFluid, 223, 6.2f, 8.35f, 0.63f, 50, 50, OBSIDIAN, false, true);
-
registerTinkerMaterial("Rubium", rubium, rubiumFluid, 351, 5.15f, 7.00f, 1.05f, -100, 250, COBALT, false, true);
registerTinkerMaterial("Prometheum", prometheum, prometheumFluid, 539, 3.6f, 6.60f, 0.90f, 0, 150, TITANITE, false, true);
registerTinkerMaterial("Arcanite", arcanite, arcaniteFluid, 698, 4.3f, 7.88f, 0.85f, -50, 150, METEORITE, false, true);
@@ -85,40 +169,4 @@ public class TAIGA {
registerTinkerMaterial("Cryptogen", cryptogen, cryptogenFluid, 538, 5.71f, 6.93f, 0.88f, 58, 117, METEORITE, false, true);
registerTinkerMaterial("Proxideum", proxideum, proxideumFluid, 597, 10.55f, 4.21f, 0.99f, -60, 200, METEORITE, false, true);
}
-
- @EventHandler
- public void init(FMLInitializationEvent e) {
- proxy.registerStuff();
- GameRegistry.registerWorldGenerator(new ZWorldGen(), 100);
- GameRegistry.registerFuelHandler(new FuelHandler());
- Smelting.register();
- Crafting.register();
-
- harvestLevelNames.put(METEORITE, TinkerMaterials.bone.getTextColor() + "Meteorite");
- harvestLevelNames.put(VIBRANIUM, TinkerMaterials.blueslime.getTextColor() + "Vibranium");
- harvestLevelNames.put(ADAMANTITE, TinkerMaterials.ardite.getTextColor() + "Adamantite");
- harvestLevelNames.put(TITANITE, TinkerMaterials.silver.getTextColor() + "Titanite");
-
- for (MaterialIntegration m : integrateList) {
- m.integrateRecipes();
- }
- }
-
- @EventHandler
- public void postInit(FMLPostInitializationEvent e) {
-
- }
-
- private void registerTinkerMaterial(String oreSuffix, slimeknights.tconstruct.library.materials.Material material, Fluid fluid, int headDura, float headSpeed, float headAttack, float handleMod, int handleDura, int extra, int headLevel, boolean craft, boolean cast) {
- TinkerRegistry.addMaterialStats(material, new HeadMaterialStats(headDura, headSpeed, headAttack, headLevel));
- TinkerRegistry.addMaterialStats(material, new HandleMaterialStats(handleMod, handleDura));
- TinkerRegistry.addMaterialStats(material, new ExtraMaterialStats(extra));
-
- material.setFluid(fluid).setCraftable(craft).setCastable(cast);
-
- proxy.setRenderInfo(material);
- MaterialIntegration integration = new MaterialIntegration(material, fluid, oreSuffix);
- integration.integrate();
- integrateList.add(integration);
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/sosnitzka/taiga/generic/BasicItem.java b/src/main/java/com/sosnitzka/taiga/generic/BasicItem.java
index fdddcfc..ff9930f 100644
--- a/src/main/java/com/sosnitzka/taiga/generic/BasicItem.java
+++ b/src/main/java/com/sosnitzka/taiga/generic/BasicItem.java
@@ -2,6 +2,9 @@ package com.sosnitzka.taiga.generic;
import net.minecraft.item.Item;
+/**
+ * A "wrapper" for Item that makes construction and manipulation easier
+ */
public class BasicItem extends Item {
private String oreDictPrefix;
diff --git a/src/main/java/com/sosnitzka/taiga/generic/BasicTinkerFluid.java b/src/main/java/com/sosnitzka/taiga/generic/BasicTinkerFluid.java
index 475fc7a..c32f54d 100644
--- a/src/main/java/com/sosnitzka/taiga/generic/BasicTinkerFluid.java
+++ b/src/main/java/com/sosnitzka/taiga/generic/BasicTinkerFluid.java
@@ -4,12 +4,17 @@ import net.minecraft.util.ResourceLocation;
import slimeknights.tconstruct.library.Util;
import slimeknights.tconstruct.library.fluid.FluidMolten;
+/**
+ * A "wrapper" for FluidMolten that makes construction and manipulation easier
+ */
public class BasicTinkerFluid extends FluidMolten {
private boolean toolForge;
public BasicTinkerFluid(String fluidName, int color, boolean toolForge, int temp, int lumen, int visk) {
+ // Constructs the FluidMolten with textures and color
super(fluidName, color, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation("tconstruct:blocks/fluids/molten_metal_flow"));
+ //Settings
this.setUnlocalizedName(Util.prefix(fluidName));
this.setTemperature(temp);
this.setLuminosity(lumen);
diff --git a/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java b/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java
index 5ca41a9..4222618 100644
--- a/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java
+++ b/src/main/java/com/sosnitzka/taiga/proxy/ClientProxy.java
@@ -35,14 +35,13 @@ public class ClientProxy extends ServerProxy {
}
@Override
- public void registerStuff() {
+ public void registerModels() {
Field[] itemFields = Items.class.getDeclaredFields();
for (Field field : itemFields) {
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
Class> targetType = field.getType();
try {
Item item = (Item) field.get(targetType);
-
registerItemModel(item);
} catch (IllegalAccessException e) {
e.printStackTrace();
@@ -56,7 +55,6 @@ public class ClientProxy extends ServerProxy {
Class> targetType = field.getType();
try {
Block block = (Block) field.get(targetType);
-
registerBlockModel(block);
} catch (IllegalAccessException e) {
e.printStackTrace();
diff --git a/src/main/java/com/sosnitzka/taiga/proxy/ServerProxy.java b/src/main/java/com/sosnitzka/taiga/proxy/ServerProxy.java
index 460c920..b9f9e70 100644
--- a/src/main/java/com/sosnitzka/taiga/proxy/ServerProxy.java
+++ b/src/main/java/com/sosnitzka/taiga/proxy/ServerProxy.java
@@ -5,7 +5,7 @@ import slimeknights.tconstruct.library.materials.Material;
public class ServerProxy {
- public void registerStuff() {
+ public void registerModels() {
}
diff --git a/src/main/java/com/sosnitzka/taiga/util/Utils.java b/src/main/java/com/sosnitzka/taiga/util/Utils.java
index 184b935..27840e6 100644
--- a/src/main/java/com/sosnitzka/taiga/util/Utils.java
+++ b/src/main/java/com/sosnitzka/taiga/util/Utils.java
@@ -16,12 +16,20 @@ public class Utils {
public static String PREFIX_ORE = "ore";
public static String PREFIX_BLOCK = "block";
-
+ /**
+ * Registers the block and its corresponding item (block as item in inventory)
+ *
+ * @param block the associated block
+ */
public static void registerBlockWithItem(Block block) {
GameRegistry.register(block);
GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName()));
}
+ /**
+ * Registers the fluid and its bucket item
+ * @param fluid the fluid
+ */
public static void registerFluid(Fluid fluid) {
FluidRegistry.registerFluid(fluid);
FluidRegistry.addBucketForFluid(fluid);