aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bee_Definition.java53
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java40
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Branch_Definition.java149
4 files changed, 149 insertions, 103 deletions
diff --git a/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java b/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java
index f48d0ffec2..9bdf9a83dd 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java
@@ -7,6 +7,7 @@ import cpw.mods.fml.common.Optional;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.forestry.bees.custom.GTPP_Bees;
+import gtPlusPlus.xmod.forestry.bees.custom.GTPP_Branch_Definition;
import gtPlusPlus.xmod.forestry.bees.items.FR_ItemRegistry;
import gtPlusPlus.xmod.forestry.bees.recipe.FR_Gregtech_Recipes;
import net.minecraft.block.Block;
@@ -16,16 +17,13 @@ public class HANDLER_FR {
public static void preInit(){
if (LoadedMods.Forestry){
- FR_ItemRegistry.Register();
- }
-
- new GTPP_Bees();
-
+ FR_ItemRegistry.Register();
+ }
}
public static void Init(){
if (LoadedMods.Forestry){
-
+ new GTPP_Bees();
}
}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bee_Definition.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bee_Definition.java
index 24327a97a9..e04d659cfb 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bee_Definition.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bee_Definition.java
@@ -10,18 +10,25 @@ import forestry.apiculture.genetics.BeeDefinition;
import forestry.apiculture.genetics.BeeVariation;
import forestry.apiculture.genetics.IBeeDefinition;
import forestry.core.genetics.alleles.AlleleHelper;
+import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.commons.lang3.text.WordUtils;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Locale;
public enum GTPP_Bee_Definition implements IBeeDefinition {
- SILICON(GTPP_Branch_Definition.METAL, "Silicon", true, Utils.rgbtoHexValue(75, 75, 75), Utils.rgbtoHexValue(125, 125, 125)) {
+ SILICON(GTPP_Branch_Definition.ORGANIC, "Silicon", true, Utils.rgbtoHexValue(75, 75, 75), Utils.rgbtoHexValue(125, 125, 125)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies.addProduct(getSlagComb(), 0.10f);
@@ -37,7 +44,7 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
@Override
protected void registerMutations() {
- IBeeMutationCustom tMutation = registerMutation(getSpecies("SlimeBall"), getSpecies("StickyResin"), 10);
+ IBeeMutationCustom tMutation = registerMutation(getGregtechBeeType("SLIMEBALL"), getGregtechBeeType("STICKYRESIN"), 10);
}
},
@@ -57,7 +64,7 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
@Override
protected void registerMutations() {
- IBeeMutationCustom tMutation = registerMutation(getSpecies("SlimeBall"), getSpecies("StickyResin"), 10);
+ IBeeMutationCustom tMutation = registerMutation(getGregtechBeeType("SLIMEBALL"), getGregtechBeeType("STICKYRESIN"), 10);
}
},
@@ -77,7 +84,7 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
@Override
protected void registerMutations() {
- IBeeMutationCustom tMutation = registerMutation(getSpecies("Rubber"), getSpecies("Oil"), 10);
+ IBeeMutationCustom tMutation = registerMutation(RUBBER.species, getGregtechBeeType("OIL"), 10);
}
},
@@ -97,7 +104,7 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
@Override
protected void registerMutations() {
- IBeeMutationCustom tMutation = registerMutation(getSpecies("Rubber"), getSpecies("Plastic"), 10);
+ IBeeMutationCustom tMutation = registerMutation(RUBBER.species, PLASTIC.species, 10);
}
},
@@ -117,7 +124,7 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
@Override
protected void registerMutations() {
- IBeeMutationCustom tMutation = registerMutation(getSpecies("Ptfe"), getSpecies("Plastic"), 10);
+ IBeeMutationCustom tMutation = registerMutation(PTFE.species, PLASTIC.species, 10);
}
},
@@ -667,7 +674,12 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
}
protected final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance) {
- return BeeManager.beeMutationFactory.createMutation(parent1, parent2, getTemplate(), chance);
+ IAllele[] template = getTemplate();
+ Utils.LOG_INFO("[Bees-Debug] parent1: "+(parent1 != null));
+ Utils.LOG_INFO("[Bees-Debug] parent2: "+(parent2 != null));
+ Utils.LOG_INFO("[Bees-Debug] chance: "+(chance));
+ Utils.LOG_INFO("[Bees-Debug] template: "+(template != null));
+ return BeeManager.beeMutationFactory.createMutation(parent1, parent2, template, chance);
}
@Override
@@ -696,10 +708,33 @@ public enum GTPP_Bee_Definition implements IBeeDefinition {
}
private static ItemStack getSlagComb(){
- return ItemUtils.getSimpleStack(GTPP_Bees.Comb_Slag, 1);
+ return issStackValid(ItemUtils.getSimpleStack(GTPP_Bees.Comb_Slag, 1));
}
private static ItemStack getStoneComb(){
- return ItemUtils.getSimpleStack(GTPP_Bees.Comb_Stone, 1);
+ return issStackValid(ItemUtils.getSimpleStack(GTPP_Bees.Comb_Stone, 1));
}
+ private static ItemStack issStackValid(ItemStack result){
+ if (result == null){
+ return ItemUtils.getSimpleStack(ModItems.AAA_Broken);
+ }
+ return result;
+ }
+
+ public static IAlleleBeeSpecies getGregtechBeeType(String name){
+ Class<?> gtBees;
+ try {
+ Class gtBeeTypes = Class.forName("gregtech.loaders.misc.GT_BeeDefinition");
+ Enum gtBeeEnumObject = Enum.valueOf(gtBeeTypes, name);
+ Field gtBeesField = FieldUtils.getDeclaredField(gtBeeTypes, "species", true);
+ gtBeesField.setAccessible(true);
+ ReflectionUtils.makeAccessible(gtBeesField);
+ Object beeType = gtBeesField.get(gtBeeEnumObject);
+ return (IAlleleBeeSpecies) beeType;
+ }
+ catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
index eb6beac02a..d26e34ba89 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
@@ -9,6 +9,9 @@ import org.apache.commons.lang3.reflect.FieldUtils;
import cpw.mods.fml.common.Loader;
import gregtech.GT_Mod;
import gregtech.api.enums.Materials;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class GTPP_Bees {
@@ -23,11 +26,17 @@ public class GTPP_Bees {
//Materials obtained via reflection
public static Materials PTFE;
public static Materials PBS;
+
+ //public static GTPP_Branch_Definition definition;
public GTPP_Bees() {
if (Loader.isModLoaded("Forestry") /*&& tryGetBeesBoolean()*/) {
+ //Set Bee Defs from GT via Reflection
+ //definition = new GTPP_Branch_Definition();
+
+ //Set Materials and Comb stacks from GT via Reflection
setMaterials();
combs = new ItemCustomComb();
@@ -55,13 +64,37 @@ public class GTPP_Bees {
Class<?> gtCombItemClass = Class.forName("gregtech.common.items.ItemComb");
Class gtCombEnumClass = Class.forName("gregtech.common.items.CombType");
Field gtCombs = FieldUtils.getDeclaredField(gtBees, "combs", true);
+ gtCombs.setAccessible(true);
+ ReflectionUtils.makeAccessible(gtCombs);
Enum gtCombTypeSlag = Enum.valueOf(gtCombEnumClass, "SLAG");
Enum gtCombTypeStone = Enum.valueOf(gtCombEnumClass, "STONE");
- Object oCombObject = gtCombs.get(gtBees);
+ Item oCombObject = (Item) gtCombs.get(null);
+
+ Utils.LOG_INFO("[Bees-Debug] Field getModifiers: "+gtCombs.getModifiers());
+ Utils.LOG_INFO("[Bees-Debug] Field toGenericString: "+gtCombs.toGenericString());
+ Utils.LOG_INFO("[Bees-Debug] Field getClass: "+gtCombs.getClass());
+ Utils.LOG_INFO("[Bees-Debug] Field isEnumConstant: "+gtCombs.isEnumConstant());
+ Utils.LOG_INFO("[Bees-Debug] Field isSynthetic: "+gtCombs.isSynthetic());
+ Utils.LOG_INFO("[Bees-Debug] Field get(gtBees) != null: "+(gtCombs.get(gtBees) != null));
+ Utils.LOG_INFO("[Bees-Debug] Field isAccessible: "+gtCombs.isAccessible());
+
+
+ Utils.LOG_INFO("[Bees] gtBees: "+(gtBees != null));
+ Utils.LOG_INFO("[Bees] gtCombItemClass: "+(gtCombItemClass != null));
+ Utils.LOG_INFO("[Bees] gtCombEnumClass: "+(gtCombEnumClass != null));
+ Utils.LOG_INFO("[Bees] gtCombs: "+(gtCombs != null));
+ Utils.LOG_INFO("[Bees] gtCombTypeSlag: "+(gtCombTypeSlag != null));
+ Utils.LOG_INFO("[Bees] gtCombTypeStone: "+(gtCombTypeStone != null));
+ Utils.LOG_INFO("[Bees] oCombObject: "+(oCombObject != null));
+
if (gtCombItemClass.isInstance(oCombObject)){
Method getStackForType;
getStackForType = gtCombItemClass.getDeclaredMethod("getStackForType", gtCombEnumClass);
+
+ if (getStackForType != null) {
+ Utils.LOG_INFO("[Bees] Found Method: getStackForType");
+ }
if (Comb_Slag == null){
Comb_Slag = (ItemStack) getStackForType.invoke(gtBees, gtCombTypeSlag);
}
@@ -69,10 +102,13 @@ public class GTPP_Bees {
Comb_Stone = (ItemStack) getStackForType.invoke(gtBees, gtCombTypeStone);
}
}
+ else {
+ Utils.LOG_INFO("[Bees] oCombObject was not an instance of gregtech.common.items.ItemComb");
+ }
}
catch (NullPointerException | ClassNotFoundException | IllegalArgumentException | IllegalAccessException | NoSuchMethodException | SecurityException | InvocationTargetException e){
-
+ Utils.LOG_INFO("[Bees] Bad Reflection. setMaterials()");
}
PTFE = trySetValue("Polytetrafluoroethylene");
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Branch_Definition.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Branch_Definition.java
index a56bb3b2aa..add7198bd8 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Branch_Definition.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Branch_Definition.java
@@ -1,103 +1,80 @@
package gtPlusPlus.xmod.forestry.bees.custom;
-import forestry.api.apiculture.BeeManager;
-import forestry.api.apiculture.EnumBeeChromosome;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IClassification;
-import forestry.apiculture.genetics.alleles.AlleleEffect;
-import forestry.core.genetics.alleles.AlleleHelper;
-import forestry.core.genetics.alleles.EnumAllele;
-
-import java.util.Arrays;
-
+import gtPlusPlus.core.util.Utils;
public enum GTPP_Branch_Definition {
- ORGANIC("Fuelis") {
- @Override
- protected void setBranchProperties(IAllele[] alleles) {
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_2);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.MUSHROOMS);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW);
- }
- },
- GEM("Ornamentis") {
- @Override
- protected void setBranchProperties(IAllele[] alleles) {
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.AVERAGE);
- }
- },
- METAL("Metaliferis") {
- @Override
- protected void setBranchProperties(IAllele[] alleles) {
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.JUNGLE);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER);
- }
- },
- RAREMETAL("Mineralis") {
- @Override
- protected void setBranchProperties(IAllele[] alleles) {
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.CACTI);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FAST);
- }
- },
- RADIOACTIVE("Criticalis") {
- @Override
- protected void setBranchProperties(IAllele[] alleles) {
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.END);
- AlleleHelper.instance.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.AVERAGE);
- }
- };
+ ORGANIC("ORGANIC"),
+ GEM("GEM"),
+ METAL("METAL"),
+ RAREMETAL("RAREMETAL"),
+ RADIOACTIVE("RADIOACTIVE");
- private static IAllele[] defaultTemplate;
- private final IClassification branch;
+ final String mFieldName;
+ final Enum mActualValues;
+ GTPP_Branch_Definition(String mValue){
+ this.mFieldName = mValue;
+ this.mActualValues = setEnumVar(mValue);
+ }
- GTPP_Branch_Definition(String scientific) {
- branch = BeeManager.beeFactory.createBranch(this.name().toLowerCase(), scientific);
- }
+ public final IAllele[] getTemplate() {
+ Class gtBranchDefClass;
+ try {
+ gtBranchDefClass = Class.forName("gregtech.loaders.misc.GT_BranchDefinition");
+ Enum enumA = mActualValues;
+ Method methodMyMethod = gtBranchDefClass.getMethod("getTemplate");
- private static IAllele[] getDefaultTemplate() {
- if (defaultTemplate == null) {
- defaultTemplate = new IAllele[EnumBeeChromosome.values().length];
+ Utils.LOG_INFO("[Bees] gtBranchDefClass: "+(gtBranchDefClass != null));
+ Utils.LOG_INFO("[Bees] enumA: "+(enumA != null));
+ Utils.LOG_INFO("[Bees] methodMyMethod: "+(methodMyMethod != null));
+
+ return (IAllele[]) methodMyMethod.invoke(enumA);
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ Utils.LOG_INFO("[Bees] Bad Reflection. getTemplate()");
+ e.printStackTrace();
+ //gregtech.loaders.misc.GT_BranchDefinition.getTemplate()
+ return null;
+ }
+ }
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.NORMAL);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.NOCTURNAL, false);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.NONE);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TOLERANT_FLYER, false);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.CAVE_DWELLING, false);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWEST);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE);
- AlleleHelper.instance.set(defaultTemplate, EnumBeeChromosome.EFFECT, AlleleEffect.effectNone);
- }
- return Arrays.copyOf(defaultTemplate, defaultTemplate.length);
- }
+ public final IClassification getBranch() {
+ Class gtBranchDefClass;
+ try {
+ gtBranchDefClass = Class.forName("gregtech.loaders.misc.GT_BranchDefinition");
+ Enum enum_MY_SAMPLE_ENUM = mActualValues;
+ Method methodMyMethod = gtBranchDefClass.getMethod("getBranch");
+
- protected void setBranchProperties(IAllele[] template) {
+ Utils.LOG_INFO("[Bees] gtBranchDefClass: "+(gtBranchDefClass != null));
+ Utils.LOG_INFO("[Bees] enum_MY_SAMPLE_ENUM: "+(enum_MY_SAMPLE_ENUM != null));
+ Utils.LOG_INFO("[Bees] methodMyMethod: "+(methodMyMethod != null));
+
+ return (IClassification) methodMyMethod.invoke(enum_MY_SAMPLE_ENUM);
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ Utils.LOG_INFO("[Bees] Bad Reflection. getBranch()");
+ e.printStackTrace();
+ return null;
+ }
+ }
- }
+ private Enum setEnumVar(String value){
+ try {
+ Class gtBranchDefClass = Class.forName("gregtech.loaders.misc.GT_BranchDefinition");
+ Enum branchDef = Enum.valueOf(gtBranchDefClass, value);
+ return branchDef;
+ }
+ catch (ClassNotFoundException e){
+ return null;
+ }
+ }
- public final IAllele[] getTemplate() {
- IAllele[] template = getDefaultTemplate();
- setBranchProperties(template);
- return template;
- }
- public final IClassification getBranch() {
- return branch;
- }
}