aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus_Secondary.java14
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java13
-rw-r--r--src/Java/gtPlusPlus/core/item/base/ore/BaseItemCrushedOre.java10
-rw-r--r--src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java153
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java38
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java17
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialStack.java10
-rw-r--r--src/Java/gtPlusPlus/core/material/ORES.java84
-rw-r--r--src/Java/gtPlusPlus/core/material/state/MaterialState.java3
-rw-r--r--src/Java/gtPlusPlus/core/util/array/Quad.java33
-rw-r--r--src/Java/gtPlusPlus/core/world/darkworld/biome/BiomeGenerator_Custom.java803
-rw-r--r--src/Java/gtPlusPlus/core/world/darkworld/gen/gt/WorldGen_GT_Base.java6
-rw-r--r--src/Java/gtPlusPlus/core/world/darkworld/gen/gt/WorldGen_Ores.java53
-rw-r--r--src/Java/gtPlusPlus/core/world/darkworld/object/BoxedQuad.java55
14 files changed, 864 insertions, 428 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus_Secondary.java b/src/Java/gtPlusPlus/GTplusplus_Secondary.java
index 329d3fdb1d..f69a5f2881 100644
--- a/src/Java/gtPlusPlus/GTplusplus_Secondary.java
+++ b/src/Java/gtPlusPlus/GTplusplus_Secondary.java
@@ -11,6 +11,8 @@ import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.material.ORES;
import gtPlusPlus.core.world.darkworld.Dimension_DarkWorld;
import gtPlusPlus.core.world.darkworld.biome.Biome_DarkWorld;
import gtPlusPlus.core.world.darkworld.block.DarkWorldContentLoader;
@@ -62,6 +64,9 @@ public class GTplusplus_Secondary {
public void load(final FMLInitializationEvent e) {
Logger.INFO("Begin resource allocation for " + MODID2 + " V" + VERSION2);
+ //Run Ore Material Handler
+ GenerateOreMaterials();
+
//Load Dark World and Biome
//GameRegistry.registerFuelHandler(this);
GameRegistry.registerWorldGenerator(new WorldGen_GT_Base(), 50);
@@ -70,6 +75,15 @@ public class GTplusplus_Secondary {
}
+ private void GenerateOreMaterials() {
+ MaterialGenerator.generate(ORES.CROCROITE);
+ MaterialGenerator.generate(ORES.GEIKIELITE);
+ MaterialGenerator.generate(ORES.NICHROMITE);
+ MaterialGenerator.generate(ORES.TITANITE);
+ MaterialGenerator.generate(ORES.ZIMBABWEITE);
+ MaterialGenerator.generate(ORES.ZIRCONILITE);
+ }
+
void setVars(){
if (DimensionManager.isDimensionRegistered(Dimension_DarkWorld.DIMID)){
Dimension_DarkWorld.DIMID = DimensionManager.getNextFreeDimId();
diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java
index ff2f06d2d2..9c58e1a930 100644
--- a/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java
+++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java
@@ -8,26 +8,31 @@ import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.core.item.base.itemblock.ItemBlockGtBlock;
import gtPlusPlus.core.item.base.itemblock.ItemBlockGtFrameBox;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.math.MathUtils;
-import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.world.IBlockAccess;
public class BlockBaseModular extends BasicBlock{
+ protected Material blockMaterial;
+
protected int blockColour;
protected BlockTypes thisBlock;
protected String thisBlockMaterial;
protected final String thisBlockType;
-
+ public BlockBaseModular(final Material material, final BlockTypes blockType, final int colour) {
+ this(material.getUnlocalizedName(), material.getLocalizedName(), net.minecraft.block.material.Material.iron, blockType, colour, 2);
+ }
+
public BlockBaseModular(final String unlocalizedName, final String blockMaterial, final BlockTypes blockType, final int colour) {
- this(unlocalizedName, blockMaterial, Material.iron, blockType, colour, 2);
+ this(unlocalizedName, blockMaterial, net.minecraft.block.material.Material.iron, blockType, colour, 2);
}
- public BlockBaseModular(final String unlocalizedName, final String blockMaterial, final Material vanillaMaterial, final BlockTypes blockType, final int colour, final int miningLevel) {
+ public BlockBaseModular(final String unlocalizedName, final String blockMaterial, final net.minecraft.block.material.Material vanillaMaterial, final BlockTypes blockType, final int colour, final int miningLevel) {
super(unlocalizedName, vanillaMaterial);
this.setHarvestLevel(blockType.getHarvestTool(), miningLevel);
this.setBlockTextureName(CORE.MODID+":"+blockType.getTexture());
diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseItemCrushedOre.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemCrushedOre.java
new file mode 100644
index 0000000000..f2ca40334f
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemCrushedOre.java
@@ -0,0 +1,10 @@
+package gtPlusPlus.core.item.base.ore;
+
+import gtPlusPlus.core.material.Material;
+
+public class BaseItemCrushedOre extends BaseOreComponent{
+
+ public BaseItemCrushedOre(final Material material) {
+ super(material, BaseOreComponent.ComponentTypes.CRUSHED);
+ }
+}
diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java
new file mode 100644
index 0000000000..d06f1c912a
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java
@@ -0,0 +1,153 @@
+package gtPlusPlus.core.item.base.ore;
+
+import java.util.List;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.util.GT_OreDictUnificator;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.entity.EntityUtils;
+import gtPlusPlus.core.util.item.ItemUtils;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+public class BaseOreComponent extends Item{
+
+ public final Material componentMaterial;
+ public final String materialName;
+ public final String unlocalName;
+ public final ComponentTypes componentType;
+ public final int componentColour;
+ public Object extraData;
+
+ public BaseOreComponent(final Material material, final ComponentTypes componentType) {
+ this.componentMaterial = material;
+ this.unlocalName = "item"+componentType.COMPONENT_NAME+material.getUnlocalizedName();
+ this.materialName = material.getLocalizedName();
+ this.componentType = componentType;
+ this.setCreativeTab(AddToCreativeTab.tabMisc);
+ this.setUnlocalizedName(this.unlocalName);
+ this.setMaxStackSize(64);
+ this.setTextureName(this.getCorrectTextures());
+ this.componentColour = material.getRgbAsHex();
+ GameRegistry.registerItem(this, this.unlocalName);
+ GT_OreDictUnificator.registerOre(componentType.getOreDictName()+material.getUnlocalizedName(), ItemUtils.getSimpleStack(this));
+ }
+
+ public String getCorrectTextures(){
+ if (!CORE.ConfigSwitches.useGregtechTextures){
+ return CORE.MODID + ":" + "item"+this.componentType.COMPONENT_NAME;
+ }
+
+ /*if (this.componentType == ComponentTypes.GEAR){
+ return "gregtech" + ":" + "materialicons/METALLIC/" + "gearGt";
+ }
+ else if (this.componentType == ComponentTypes.SMALLGEAR){
+ return "gregtech" + ":" + "materialicons/METALLIC/" + "gearGtSmall";
+ }*/
+
+ return "gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME.toLowerCase();
+ }
+
+ @Override
+ public String getItemStackDisplayName(final ItemStack p_77653_1_) {
+ if (this.componentMaterial != null) {
+ return (this.componentMaterial.getLocalizedName()+this.componentType.DISPLAY_NAME);
+ }
+ return this.materialName+" Cell";
+ }
+
+ public final String getMaterialName() {
+ return this.materialName;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public final void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) {
+
+ if ((this.materialName != null) && (this.materialName != "") && !this.materialName.equals("") && (this.componentMaterial != null)){
+
+ if (this.componentMaterial != null){
+ if (!this.componentMaterial.vChemicalFormula.equals("??") && !this.componentMaterial.vChemicalFormula.equals("?") && this.componentMaterial.getState() != MaterialState.PURE_LIQUID) {
+ list.add(Utils.sanitizeStringKeepBrackets(this.componentMaterial.vChemicalFormula));
+ }
+
+ if (this.componentMaterial.isRadioactive){
+ list.add(CORE.GT_Tooltip_Radioactive);
+ }
+ }
+
+ }
+
+ super.addInformation(stack, aPlayer, list, bool);
+ }
+
+
+ @Override
+ public int getColorFromItemStack(final ItemStack stack, final int HEX_OxFFFFFF) {
+ return this.componentColour;
+ }
+
+ @Override
+ public void onUpdate(final ItemStack iStack, final World world, final Entity entityHolding, final int p_77663_4_, final boolean p_77663_5_) {
+ if (this.componentMaterial != null){
+ if (entityHolding instanceof EntityPlayer){
+ if (!((EntityPlayer) entityHolding).capabilities.isCreativeMode){
+ EntityUtils.applyRadiationDamageToEntity(iStack.stackSize, this.componentMaterial.vRadiationLevel, world, entityHolding);
+ }
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+
+ public static enum ComponentTypes {
+ DUST("Dust", " Dust", "dust"),
+ DUSTDIRTY("Ingot", " Ingot", "ingot"),
+ DUSTIMPURE("Ingot", " Ingot", "ingot"),
+ DUSTPURE("Ingot", " Ingot", "ingot"),
+ DUSTREFINED("Ingot", " Ingot", "ingot"),
+ CRUSHED("Ingot", " Ingot", "ingot"),
+ CRUSHEDCENTRIFUGED("Ingot", " Ingot", "ingot"),
+ CRUSHEDPURIFIED("Ingot", " Ingot", "ingot");
+
+ private String COMPONENT_NAME;
+ private String DISPLAY_NAME;
+ private String OREDICT_NAME;
+ private ComponentTypes (final String LocalName, final String DisplayName, final String OreDictName){
+ this.COMPONENT_NAME = LocalName;
+ this.DISPLAY_NAME = DisplayName;
+ this.OREDICT_NAME = OreDictName;
+ // dust + Dirty, Impure, Pure, Refined
+ // crushed + centrifuged, purified
+ }
+
+ public String getComponent(){
+ return this.COMPONENT_NAME;
+ }
+
+ public String getName(){
+ return this.DISPLAY_NAME;
+ }
+
+ public String getOreDictName(){
+ return this.OREDICT_NAME;
+ }
+
+ }
+
+}
+
+
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index 390075729a..b04ce3baac 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -64,6 +64,10 @@ public class Material {
public static Map<Integer, Materials> invalidMaterials = new HashMap<Integer, Materials>();
+ public Material(String materialName, MaterialState defaultState, short[] rgba, int radiationLevel, MaterialStack[] materialStacks) {
+ this (materialName, defaultState, 0, rgba, -1, -1, -1, -1, false, "", radiationLevel, false, materialStacks);
+ }
+
public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final MaterialStack... inputs){
this(materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", 0, inputs);
}
@@ -296,7 +300,7 @@ public class Material {
Logger.WARNING("Mass: "+this.vMass+"/units");
Logger.WARNING("Melting Point: "+this.meltingPointC+"C.");
Logger.WARNING("Boiling Point: "+this.boilingPointC+"C.");
- }
+ }
public final String getLocalizedName(){
if (this.localizedName != null) {
@@ -759,9 +763,14 @@ public class Material {
final public int calculateMeltingPoint(){
int meltingPoint = 0;
for (MaterialStack part : this.vMaterialInput){
- int incrementor = part.getStackMaterial().getMeltingPointC();
- meltingPoint += incrementor;
- Logger.WARNING("Melting Point for "+this.getLocalizedName()+" increased to "+ incrementor);
+ if (part != null){
+ int incrementor = part.getStackMaterial().getMeltingPointC();
+ meltingPoint += incrementor;
+ Logger.WARNING("Melting Point for "+this.getLocalizedName()+" increased to "+ incrementor);
+ }
+ else {
+ Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition.");
+ }
}
int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1);
Logger.WARNING("Dividing "+meltingPoint+" / "+divisor+" to get average melting point.");
@@ -772,7 +781,12 @@ public class Material {
final public int calculateBoilingPoint(){
int boilingPoint = 0;
for (MaterialStack part : this.vMaterialInput){
- boilingPoint += part.getStackMaterial().getBoilingPointC();
+ if (part != null){
+ boilingPoint += part.getStackMaterial().getBoilingPointC();
+ }
+ else {
+ Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition.");
+ }
}
int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1);
boilingPoint = (boilingPoint/divisor);
@@ -782,7 +796,12 @@ public class Material {
final public long calculateProtons(){
long protonCount = 0;
for (MaterialStack part : this.vMaterialInput){
- protonCount += (part.getStackMaterial().getProtons());
+ if (part != null){
+ protonCount += (part.getStackMaterial().getProtons());
+ }
+ else {
+ Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition.");
+ }
}
int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1);
protonCount = (protonCount/divisor);
@@ -792,7 +811,12 @@ public class Material {
final public long calculateNeutrons(){
long neutronCount = 0;
for (MaterialStack part : this.vMaterialInput){
- neutronCount += (part.getStackMaterial().getNeutrons());
+ if (part != null){
+ neutronCount += (part.getStackMaterial().getNeutrons());
+ }
+ else {
+ Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition.");
+ }
}
int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1);
neutronCount = (neutronCount/divisor);
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 9adf7d62a5..727f929036 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -9,6 +9,7 @@ import gtPlusPlus.core.item.base.gears.BaseItemGear;
import gtPlusPlus.core.item.base.ingots.BaseItemIngot;
import gtPlusPlus.core.item.base.ingots.BaseItemIngotHot;
import gtPlusPlus.core.item.base.nugget.BaseItemNugget;
+import gtPlusPlus.core.item.base.ore.BaseItemCrushedOre;
import gtPlusPlus.core.item.base.plates.BaseItemPlate;
import gtPlusPlus.core.item.base.plates.BaseItemPlateDouble;
import gtPlusPlus.core.item.base.rings.BaseItemRing;
@@ -125,6 +126,18 @@ public class MaterialGenerator {
FluidUtils.generateFluidNoPrefix(unlocalizedName, materialName, matInfo.getMeltingPointK(), C);
return true;
}
+ else if (matInfo.getState() == MaterialState.ORE){
+ if (sRadiation >= 1){
+ Item temp;
+ Block tempBlock;
+ tempBlock = new BlockBaseModular(matInfo ,BlockTypes.ORE, Colour);
+
+ temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", materialTier, sRadiation);
+ temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", materialTier, sRadiation);
+ temp = new BaseItemDust("itemDustSmall"+unlocalizedName, materialName, matInfo, Colour, "Small", materialTier, sRadiation);
+ temp = new BaseItemCrushedOre(matInfo);
+ }
+ }
//Add A jillion Recipes - old code
RecipeGen_AlloySmelter.generateRecipes(matInfo);
@@ -139,7 +152,9 @@ public class MaterialGenerator {
RecipeGen_ShapedCrafting.generateRecipes(matInfo);
new RecipeGen_Recycling(matInfo);
return true;
- } catch (final Throwable t)
+
+ } catch (final Throwable t)
+
{
Logger.WARNING(""+matInfo.getLocalizedName()+" failed to generate.");
return false;
diff --git a/src/Java/gtPlusPlus/core/material/MaterialStack.java b/src/Java/gtPlusPlus/core/material/MaterialStack.java
index e18d738b97..ad7af2052f 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialStack.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialStack.java
@@ -3,7 +3,9 @@ package gtPlusPlus.core.material;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.item.ItemStack;
public class MaterialStack {
@@ -51,6 +53,14 @@ public class MaterialStack {
}
public Material getStackMaterial(){
+ if (this.stackMaterial == null){
+ Logger.MATERIALS("Tried getStackMaterial, got an invalid material.");
+ Logger.MATERIALS(ReflectionUtils.getMethodName(0));
+ Logger.MATERIALS(ReflectionUtils.getMethodName(1));
+ Logger.MATERIALS(ReflectionUtils.getMethodName(2));
+ Logger.MATERIALS(ReflectionUtils.getMethodName(3));
+ return null;
+ }
return this.stackMaterial;
}
diff --git a/src/Java/gtPlusPlus/core/material/ORES.java b/src/Java/gtPlusPlus/core/material/ORES.java
new file mode 100644
index 0000000000..4057092a48
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/material/ORES.java
@@ -0,0 +1,84 @@
+package gtPlusPlus.core.material;
+
+import gtPlusPlus.core.material.state.MaterialState;
+
+public final class ORES {
+
+ public static final Material GEIKIELITE = new Material(
+ "Geikielite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{187, 193, 204, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().MAGNESIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().TITANIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 3)
+ });
+
+ public static final Material ZIMBABWEITE = new Material(
+ "Zimbabweite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{193, 187, 131, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SODIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().POTASSIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().LEAD, 1),
+ new MaterialStack(ELEMENT.getInstance().ARSENIC, 4),
+ new MaterialStack(ELEMENT.getInstance().NIOBIUM, 4),
+ new MaterialStack(ELEMENT.getInstance().TANTALUM, 4),
+ new MaterialStack(ELEMENT.getInstance().TITANIUM, 4),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 18)
+ });
+
+ public static final Material TITANITE = new Material(
+ "Titanite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{184, 198, 105, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().TITANIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().SILICON, 2),
+ new MaterialStack(ELEMENT.getInstance().THORIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 10)
+ });
+
+ public static final Material ZIRCONILITE = new Material(
+ "Zirconolite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{45, 26, 0, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().ZIRCONIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().TITANIUM, 4),
+ new MaterialStack(ELEMENT.getInstance().CERIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 14)
+ });
+
+ public static final Material CROCROITE = new Material(
+ "Crocoite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{255, 143, 84, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().LEAD, 1),
+ new MaterialStack(ELEMENT.getInstance().CHROMIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 4)
+ });
+
+ public static final Material NICHROMITE = new Material(
+ "Nichromite", //Material Name
+ MaterialState.ORE, //State
+ new short[]{22, 19, 19, 0}, //Material Colour
+ 0, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().NICKEL, 1),
+ new MaterialStack(ELEMENT.getInstance().COBALT, 1),
+ new MaterialStack(ELEMENT.getInstance().IRON, 3),
+ new MaterialStack(ELEMENT.getInstance().ALUMINIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().CHROMIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 8)
+ });
+}
diff --git a/src/Java/gtPlusPlus/core/material/state/MaterialState.java b/src/Java/gtPlusPlus/core/material/state/MaterialState.java
index 88447395db..284e9582f1 100644
--- a/src/Java/gtPlusPlus/core/material/state/MaterialState.java
+++ b/src/Java/gtPlusPlus/core/material/state/MaterialState.java
@@ -5,7 +5,8 @@ public enum MaterialState {
LIQUID(1),
GAS(2),
PLASMA(3),
- PURE_LIQUID(4);
+ PURE_LIQUID(4),
+ ORE(5);
private int STATE;
private MaterialState (final int State){
this.STATE = State;
diff --git a/src/Java/gtPlusPlus/core/util/array/Quad.java b/src/Java/gtPlusPlus/core/util/array/Quad.java
new file mode 100644
index 0000000000..417c3b6ebc
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/array/Quad.java
@@ -0,0 +1,33 @@
+package gtPlusPlus.core.util.array;
+
+public class Quad<K,V,C,R> {
+
+ private final K key;
+ private final V value;
+ private final C value2;
+ private final R value3;
+
+ public Quad(final K key, final V value, final C value2, final R value3){
+ this.key = key;
+ this.value = value;
+ this.value2 = value2;
+ this.value3 = value3;
+ }
+
+ final public K getKey(){
+ return this.key;
+ }
+
+ final public V getValue_1(){
+ return this.value;
+ }
+
+ final public C getValue_2(){
+ return this.value2;
+ }
+
+ final public R getValue_3(){
+ return this.value3;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/world/darkworld/biome/BiomeGenerator_Custom.java b/src/Java/gtPlusPlus/core/world/darkworld/biome/BiomeGenerator_Custom.java
index e6425ca4cb..0dc84b8aa3 100644
--- a/src/Java/gtPlusPlus/core/world/darkworld/biome/BiomeGenerator_Custom.java
+++ b/src/Java/gtPlusPlus/core/world/darkworld/biome/BiomeGenerator_Custom.java
@@ -5,9 +5,11 @@ import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.Ev
import java.util.Random;
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.world.darkworld.gen.WorldGenDeadLilly;
import gtPlusPlus.core.world.darkworld.gen.WorldGenMinable_Custom;
+import net.minecraft.block.BlockFlower;
+import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeDecorator;
@@ -17,429 +19,406 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.terraingen.*;
public class BiomeGenerator_Custom extends BiomeDecorator {
- /** The world the BiomeDecorator is currently decorating */
- public World currentWorld;
- /** The Biome Decorator's random number generator. */
- public Random randomGenerator;
- /** The X-coordinate of the chunk currently being decorated */
- public int chunk_X;
- /** The Z-coordinate of the chunk currently being decorated */
- public int chunk_Z;
- /** The clay generator. */
- public WorldGenerator clayGen = new WorldGenClay(4);
- /** The sand generator. */
- public WorldGenerator sandGen;
- /** The gravel generator. */
- public WorldGenerator gravelAsSandGen;
- /** The dirt generator. */
- public WorldGenerator dirtGen;
- public WorldGenerator gravelGen;
- public WorldGenerator coalGen;
- public WorldGenerator ironGen;
- /** Field that holds gold WorldGenMinable */
- public WorldGenerator goldGen;
- /** Field that holds redstone WorldGenMinable */
- public WorldGenerator redstoneGen;
- /** Field that holds diamond WorldGenMinable */
- public WorldGenerator diamondGen;
- /** Field that holds Lapis WorldGenMinable */
- public WorldGenerator lapisGen;
- public WorldGenFlowers yellowFlowerGen;
- /** Field that holds mushroomBrown WorldGenFlowers */
- public WorldGenerator mushroomBrownGen;
- /** Field that holds mushroomRed WorldGenFlowers */
- public WorldGenerator mushroomRedGen;
- /** Field that holds big mushroom generator */
- public WorldGenerator bigMushroomGen;
- /** Field that holds WorldGenReed */
- public WorldGenerator reedGen;
- /** Field that holds WorldGenCactus */
- public WorldGenerator cactusGen;
- /** The water lily generation! */
- public WorldGenerator waterlilyGen;
- /** Amount of waterlilys per chunk. */
- public int waterlilyPerChunk;
- /** The number of trees to attempt to generate per chunk. Up to 10 in forests, none in deserts. */
- public int treesPerChunk;
- /**
- * The number of yellow flower patches to generate per chunk. The game generates much less than this number, since
- * it attempts to generate them at a random altitude.
- */
- public int flowersPerChunk;
- /** The amount of tall grass to generate per chunk. */
- public int grassPerChunk;
- /** The number of dead bushes to generate per chunk. Used in deserts and swamps. */
- public int deadBushPerChunk;
- /**
- * The number of extra mushroom patches per chunk. It generates 1/4 this number in brown mushroom patches, and 1/8
- * this number in red mushroom patches. These mushrooms go beyond the default base number of mushrooms.
- */
- public int mushroomsPerChunk;
- /** The number of reeds to generate per chunk. Reeds won't generate if the randomly selected placement is unsuitable. */
- public int reedsPerChunk;
- /** The number of cactus plants to generate per chunk. Cacti only work on sand. */
- public int cactiPerChunk;
- /** The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. */
- public int sandPerChunk;
- /**
- * The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. There
- * appear to be two separate fields for this.
- */
- public int sandPerChunk2;
- /** The number of clay patches to generate per chunk. Only generates when part of it is underwater. */
- public int clayPerChunk;
- /** Amount of big mushrooms per chunk */
- public int bigMushroomsPerChunk;
- /** True if decorator should generate surface lava & water */
- public boolean generateLakes;
-
- public WorldGenerator fluoriteGen;
-
- public BiomeGenerator_Custom(){
- //Basic Blocks
- this.sandGen = new WorldGenMinable(Blocks.sand, 12);
- this.gravelAsSandGen = new WorldGenMinable(Blocks.gravel, 8);
- this.dirtGen = new WorldGenMinable(Blocks.dirt, 32);
- this.gravelGen = new WorldGenMinable(Blocks.gravel, 12);
-
-
- //Oregen
- this.coalGen = new WorldGenMinable_Custom(Blocks.coal_ore, 32);
- this.ironGen = new WorldGenMinable_Custom(Blocks.iron_ore, 16);
- this.goldGen = new WorldGenMinable_Custom(Blocks.gold_ore, 16);
- this.redstoneGen = new WorldGenMinable_Custom(Blocks.redstone_ore, 16);
- this.diamondGen = new WorldGenMinable_Custom(Blocks.diamond_ore, 24);
- this.lapisGen = new WorldGenMinable_Custom(Blocks.lapis_ore, 24);
- this.fluoriteGen = new WorldGenMinable_Custom(ModBlocks.blockOreFluorite, 24);
-
-/* //Nature
- this.yellowFlowerGen = new WorldGenFlowers(Blocks.yellow_flower);
- this.mushroomBrownGen = new WorldGenFlowers(Blocks.brown_mushroom);
- this.mushroomRedGen = new WorldGenFlowers(Blocks.red_mushroom);
- this.bigMushroomGen = new WorldGenBigMushroom();
- this.reedGen = new WorldGenReed();
- this.cactusGen = new WorldGenCactus();
- this.waterlilyGen = new WorldGenDeadLilly();
-*/
-
- this.grassPerChunk = 1;
- this.sandPerChunk = 6;
- this.sandPerChunk2 = 8;
- this.clayPerChunk = 4;
- this.treesPerChunk = 12;
-
- this.generateLakes = true;
- }
-
- @Override
+ /** The world the BiomeDecorator is currently decorating */
+ public World currentWorld;
+ /** The Biome Decorator's random number generator. */
+ public Random randomGenerator;
+ /** The X-coordinate of the chunk currently being decorated */
+ public int chunk_X;
+ /** The Z-coordinate of the chunk currently being decorated */
+ public int chunk_Z;
+ /** The clay generator. */
+ public WorldGenerator clayGen = new WorldGenClay(4);
+ /** The sand generator. */
+ public WorldGenerator sandGen;
+ /** The gravel generator. */
+ public WorldGenerator gravelAsSandGen;
+ /** The dirt generator. */
+ public WorldGenerator dirtGen;
+ public WorldGenerator gravelGen;
+ public WorldGenerator coalGen;
+ public WorldGenerator ironGen;
+ /** Field that holds gold WorldGenMinable */
+ public WorldGenerator goldGen;
+ /** Field that holds redstone WorldGenMinable */
+ public WorldGenerator redstoneGen;
+ /** Field that holds diamond WorldGenMinable */
+ public WorldGenerator diamondGen;
+ /** Field that holds Lapis WorldGenMinable */
+ public WorldGenerator lapisGen;
+ public WorldGenFlowers yellowFlowerGen;
+ /** Field that holds mushroomBrown WorldGenFlowers */
+ public WorldGenerator mushroomBrownGen;
+ /** Field that holds mushroomRed WorldGenFlowers */
+ public WorldGenerator mushroomRedGen;
+ /** Field that holds big mushroom generator */
+ public WorldGenerator bigMushroomGen;
+ /** Field that holds WorldGenReed */
+ public WorldGenerator reedGen;
+ /** Field that holds WorldGenCactus */
+ public WorldGenerator cactusGen;
+ /** The water lily generation! */
+ public WorldGenerator waterlilyGen;
+ /** Amount of waterlilys per chunk. */
+ public int waterlilyPerChunk;
+ /** The number of trees to attempt to generate per chunk. Up to 10 in forests, none in deserts. */
+ public int treesPerChunk;
+ /**
+ * The number of yellow flower patches to generate per chunk. The game generates much less than this number, since
+ * it attempts to generate them at a random altitude.
+ */
+ public int flowersPerChunk;
+ /** The amount of tall grass to generate per chunk. */
+ public int grassPerChunk;
+ /** The number of dead bushes to generate per chunk. Used in deserts and swamps. */
+ public int deadBushPerChunk;
+ /**
+ * The number of extra mushroom patches per chunk. It generates 1/4 this number in brown mushroom patches, and 1/8
+ * this number in red mushroom patches. These mushrooms go beyond the default base number of mushrooms.
+ */
+ public int mushroomsPerChunk;
+ /** The number of reeds to generate per chunk. Reeds won't generate if the randomly selected placement is unsuitable. */
+ public int reedsPerChunk;
+ /** The number of cactus plants to generate per chunk. Cacti only work on sand. */
+ public int cactiPerChunk;
+ /** The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. */
+ public int sandPerChunk;
+ /**
+ * The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. There
+ * appear to be two separate fields for this.
+ */
+ public int sandPerChunk2;
+ /** The number of clay patches to generate per chunk. Only generates when part of it is underwater. */
+ public int clayPerChunk;
+ /** Amount of big mushrooms per chunk */
+ public int bigMushroomsPerChunk;
+ /** True if decorator should generate surface lava & water */
+ public boolean generateLakes;
+
+ public WorldGenerator fluoriteGen;
+
+ public BiomeGenerator_Custom(){
+ //Basic Blocks
+ this.sandGen = new WorldGenMinable_Custom(Blocks.sand, 12);
+ this.gravelAsSandGen = new WorldGenMinable_Custom(Blocks.gravel, 8);
+ this.dirtGen = new WorldGenMinable_Custom(Blocks.dirt, 32);
+ this.gravelGen = new WorldGenMinable_Custom(Blocks.gravel, 12);
+
+
+ //Oregen
+ this.coalGen = new WorldGenMinable_Custom(Blocks.coal_ore, 16);
+ this.ironGen = new WorldGenMinable_Custom(Blocks.iron_ore, 12);
+ this.goldGen = new WorldGenMinable_Custom(Blocks.gold_ore, 12);
+ this.redstoneGen = new WorldGenMinable_Custom(Blocks.redstone_ore, 10);
+ this.diamondGen = new WorldGenMinable_Custom(Blocks.diamond_ore, 12);
+ this.lapisGen = new WorldGenMinable_Custom(Blocks.lapis_ore, 8);
+ this.fluoriteGen = new WorldGenMinable_Custom(ModBlocks.blockOreFluorite, 20);
+
+ //Nature
+ this.yellowFlowerGen = new WorldGenFlowers(Blocks.yellow_flower);
+ this.mushroomBrownGen = new WorldGenFlowers(Blocks.brown_mushroom);
+ this.mushroomRedGen = new WorldGenFlowers(Blocks.red_mushroom);
+ this.bigMushroomGen = new WorldGenBigMushroom();
+ this.reedGen = new WorldGenReed();
+ this.cactusGen = new WorldGenCactus();
+ this.waterlilyGen = new WorldGenDeadLilly();
+
+ this.flowersPerChunk = 1;
+ this.grassPerChunk = 5;
+ this.sandPerChunk = 3;
+ this.sandPerChunk2 = 5;
+ this.clayPerChunk = 7;
+
+ this.generateLakes = true;
+ }
+
+ @Override
public void decorateChunk(World p_150512_1_, Random p_150512_2_, BiomeGenBase p_150512_3_, int p_150512_4_, int p_150512_5_)
- {
- Logger.WORLD("Trying to decorate world, using BBS randomization.");
- if (this.currentWorld != null)
- {
- //throw new RuntimeException("Already decorating!!");
- }
- else
- {
- this.currentWorld = p_150512_1_;
- //this.randomGenerator = CSPRNG.generate();
- this.randomGenerator = p_150512_2_;
- this.chunk_X = p_150512_4_;
- this.chunk_Z = p_150512_5_;
- this.genDecorations(p_150512_3_);
- this.currentWorld = null;
- this.randomGenerator = null;
- }
- }
-
- @Override
+ {
+ if (this.currentWorld != null)
+ {
+ throw new RuntimeException("Already decorating!!");
+ }
+ else
+ {
+ this.currentWorld = p_150512_1_;