aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/bop
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/bop')
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/HANDLER_BiomesOPlenty.java335
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java490
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java180
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/base/LogBase.java122
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/base/SaplingBase.java338
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LeavesPineTree.java39
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LogPineTree.java32
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/pine/SaplingPineTree.java75
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LeavesRainforestTree.java29
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LogRainforestTree.java32
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/SaplingRainforestTree.java99
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/creative/MiscUtilsBOPTab.java21
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenPineTree.java316
-rw-r--r--src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenRainForestTree_Ex.java468
14 files changed, 1370 insertions, 1206 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/bop/HANDLER_BiomesOPlenty.java b/src/main/java/gtPlusPlus/xmod/bop/HANDLER_BiomesOPlenty.java
index 52f498988c..f66677838f 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/HANDLER_BiomesOPlenty.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/HANDLER_BiomesOPlenty.java
@@ -1,181 +1,180 @@
package gtPlusPlus.xmod.bop;
-import java.lang.reflect.Field;
-
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
+import java.lang.reflect.Field;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class HANDLER_BiomesOPlenty {
-
- public static Item mPineCone;
-
- public static Block logs1;
- public static Block logs2;
- public static Block logs3;
- public static Block logs4;
-
- public static Block leaves1;
- public static Block leaves2;
- public static Block leaves3;
- public static Block leaves4;
-
- public static Block colorizedLeaves1;
- public static Block colorizedLeaves2;
-
- public static Block saplings;
- public static Block colorizedSaplings;
-
- public static void preInit(){
- BOP_Block_Registrator.run();
- if (LoadedMods.BiomesOPlenty){
- setFields();
- registerPineconeToOreDict();
- }
-
- }
-
- public static void init(){
- if (LoadedMods.BiomesOPlenty){
-
- }
- }
-
- public static void postInit(){
- BOP_Block_Registrator.recipes();
- if (LoadedMods.BiomesOPlenty){
-
- }
- }
-
- private static void registerPineconeToOreDict() {
- if (mPineCone != null) {
- ItemStack aPinecone = ItemUtils.simpleMetaStack(mPineCone, 13, 1);
- if (aPinecone != null) {
- ItemUtils.addItemToOreDictionary(aPinecone, "pinecone");
- }
- }
- }
-
- public static ItemStack getStack(Block aBlock, int aMeta, int aSize) {
- return ItemUtils.simpleMetaStack(aBlock, aMeta, aSize);
- }
-
-
-
- //BOPCBlocks.logs4 - 0
- //BOPCBlocks.colorizedLeaves2 - 1
-
- private static void setFields() {
- Field aBopMiscItem = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCItems"), "misc");
-
- Field aBopBlock1 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs1");
- Field aBopBlock2 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs2");
- Field aBopBlock3 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs3");
- Field aBopBlock4 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs4");
-
- Field aBopLeaves1 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves1");
- Field aBopLeaves2 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves2");
- Field aBopLeaves3 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves3");
- Field aBopLeaves4 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves4");
-
- Field aBopColouredLeaves1 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves1");
- Field aBopColouredLeaves2 = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves2");
-
- Field aBopSapling = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "saplings");
- Field aBopColouredSapling = ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedSaplings");
-
- if (aBopMiscItem != null) {
- Item aMiscItem = ReflectionUtils.getFieldValue(aBopMiscItem);
- if (aMiscItem != null) {
- mPineCone = aMiscItem;
- }
- }
-
-
- if (aBopBlock1 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopBlock1);
- if (aBlock != null) {
- logs1 = aBlock;
- }
- }
- if (aBopBlock2 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopBlock2);
- if (aBlock != null) {
- logs2 = aBlock;
- }
- }
- if (aBopBlock3 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopBlock3);
- if (aBlock != null) {
- logs3 = aBlock;
- }
- }
- if (aBopBlock4 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopBlock4);
- if (aBlock != null) {
- logs4 = aBlock;
- }
- }
-
-
- if (aBopLeaves1 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves1);
- if (aBlock != null) {
- leaves1 = aBlock;
- }
- }
- if (aBopLeaves2 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves2);
- if (aBlock != null) {
- leaves2 = aBlock;
- }
- }
- if (aBopLeaves3 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves3);
- if (aBlock != null) {
- leaves3 = aBlock;
- }
- }
- if (aBopLeaves4 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves4);
- if (aBlock != null) {
- leaves4 = aBlock;
- }
- }
-
-
- if (aBopColouredLeaves1 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves1);
- if (aBlock != null) {
- colorizedLeaves1 = aBlock;
- }
- }
- if (aBopColouredLeaves2 != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves2);
- if (aBlock != null) {
- colorizedLeaves2 = aBlock;
- }
- }
-
-
- if (aBopSapling != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopSapling);
- if (aBlock != null) {
- saplings = aBlock;
- }
- }
- if (aBopColouredSapling != null) {
- Block aBlock = ReflectionUtils.getFieldValue(aBopColouredSapling);
- if (aBlock != null) {
- colorizedSaplings = aBlock;
- }
- }
- }
-
+ public static Item mPineCone;
+
+ public static Block logs1;
+ public static Block logs2;
+ public static Block logs3;
+ public static Block logs4;
+
+ public static Block leaves1;
+ public static Block leaves2;
+ public static Block leaves3;
+ public static Block leaves4;
+
+ public static Block colorizedLeaves1;
+ public static Block colorizedLeaves2;
+
+ public static Block saplings;
+ public static Block colorizedSaplings;
+
+ public static void preInit() {
+ BOP_Block_Registrator.run();
+ if (LoadedMods.BiomesOPlenty) {
+ setFields();
+ registerPineconeToOreDict();
+ }
+ }
+
+ public static void init() {
+ if (LoadedMods.BiomesOPlenty) {}
+ }
+
+ public static void postInit() {
+ BOP_Block_Registrator.recipes();
+ if (LoadedMods.BiomesOPlenty) {}
+ }
+
+ private static void registerPineconeToOreDict() {
+ if (mPineCone != null) {
+ ItemStack aPinecone = ItemUtils.simpleMetaStack(mPineCone, 13, 1);
+ if (aPinecone != null) {
+ ItemUtils.addItemToOreDictionary(aPinecone, "pinecone");
+ }
+ }
+ }
+
+ public static ItemStack getStack(Block aBlock, int aMeta, int aSize) {
+ return ItemUtils.simpleMetaStack(aBlock, aMeta, aSize);
+ }
+
+ // BOPCBlocks.logs4 - 0
+ // BOPCBlocks.colorizedLeaves2 - 1
+
+ private static void setFields() {
+ Field aBopMiscItem =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCItems"), "misc");
+
+ Field aBopBlock1 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs1");
+ Field aBopBlock2 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs2");
+ Field aBopBlock3 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs3");
+ Field aBopBlock4 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs4");
+
+ Field aBopLeaves1 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves1");
+ Field aBopLeaves2 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves2");
+ Field aBopLeaves3 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves3");
+ Field aBopLeaves4 =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves4");
+
+ Field aBopColouredLeaves1 = ReflectionUtils.getField(
+ ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves1");
+ Field aBopColouredLeaves2 = ReflectionUtils.getField(
+ ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves2");
+
+ Field aBopSapling =
+ ReflectionUtils.getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "saplings");
+ Field aBopColouredSapling = ReflectionUtils.getField(
+ ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedSaplings");
+
+ if (aBopMiscItem != null) {
+ Item aMiscItem = ReflectionUtils.getFieldValue(aBopMiscItem);
+ if (aMiscItem != null) {
+ mPineCone = aMiscItem;
+ }
+ }
+
+ if (aBopBlock1 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopBlock1);
+ if (aBlock != null) {
+ logs1 = aBlock;
+ }
+ }
+ if (aBopBlock2 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopBlock2);
+ if (aBlock != null) {
+ logs2 = aBlock;
+ }
+ }
+ if (aBopBlock3 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopBlock3);
+ if (aBlock != null) {
+ logs3 = aBlock;
+ }
+ }
+ if (aBopBlock4 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopBlock4);
+ if (aBlock != null) {
+ logs4 = aBlock;
+ }
+ }
+
+ if (aBopLeaves1 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves1);
+ if (aBlock != null) {
+ leaves1 = aBlock;
+ }
+ }
+ if (aBopLeaves2 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves2);
+ if (aBlock != null) {
+ leaves2 = aBlock;
+ }
+ }
+ if (aBopLeaves3 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves3);
+ if (aBlock != null) {
+ leaves3 = aBlock;
+ }
+ }
+ if (aBopLeaves4 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves4);
+ if (aBlock != null) {
+ leaves4 = aBlock;
+ }
+ }
+
+ if (aBopColouredLeaves1 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves1);
+ if (aBlock != null) {
+ colorizedLeaves1 = aBlock;
+ }
+ }
+ if (aBopColouredLeaves2 != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves2);
+ if (aBlock != null) {
+ colorizedLeaves2 = aBlock;
+ }
+ }
+
+ if (aBopSapling != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopSapling);
+ if (aBlock != null) {
+ saplings = aBlock;
+ }
+ }
+ if (aBopColouredSapling != null) {
+ Block aBlock = ReflectionUtils.getFieldValue(aBopColouredSapling);
+ if (aBlock != null) {
+ colorizedSaplings = aBlock;
+ }
+ }
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
index 3716359d7a..add656087d 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/BOP_Block_Registrator.java
@@ -30,169 +30,353 @@ import net.minecraft.item.ItemStack;
public class BOP_Block_Registrator {
- public static Block log_Rainforest;
- public static Block leaves_Rainforest;
- public static Block sapling_Rainforest;
- public static Block log_Pine;
- public static Block leaves_Pine;
- public static Block sapling_Pine;
+ public static Block log_Rainforest;
+ public static Block leaves_Rainforest;
+ public static Block sapling_Rainforest;
+ public static Block log_Pine;
+ public static Block leaves_Pine;
+ public static Block sapling_Pine;
- //Runs Each tree Type separately
- public static final void run(){
- registerTree_Rainforest();
- registerTree_Pine();
- }
+ // Runs Each tree Type separately
+ public static final void run() {
+ registerTree_Rainforest();
+ registerTree_Pine();
+ }
+ private static final boolean registerTree_Rainforest() {
+ log_Rainforest = new LogRainforestTree();
+ leaves_Rainforest = new LeavesRainforestTree();
+ sapling_Rainforest = new SaplingRainforestTree();
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(log_Rainforest), "logWood", true);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(leaves_Rainforest), "treeLeaves", true);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(sapling_Rainforest), "treeSapling", true);
+ return true;
+ }
- private static final boolean registerTree_Rainforest(){
- log_Rainforest = new LogRainforestTree();
- leaves_Rainforest = new LeavesRainforestTree();
- sapling_Rainforest = new SaplingRainforestTree();
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(log_Rainforest), "logWood", true);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(leaves_Rainforest), "treeLeaves", true);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(sapling_Rainforest), "treeSapling", true);
- return true;
- }
+ private static final boolean registerTree_Pine() {
+ log_Pine = new LogPineTree();
+ leaves_Pine = new LeavesPineTree();
+ sapling_Pine = new SaplingPineTree();
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(log_Pine), "logWood", true);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(leaves_Pine), "treeLeaves", true);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(sapling_Pine), "treeSapling", true);
+ return true;
+ }
- private static final boolean registerTree_Pine(){
- log_Pine = new LogPineTree();
- leaves_Pine = new LeavesPineTree();
- sapling_Pine = new SaplingPineTree();
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(log_Pine), "logWood", true);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(leaves_Pine), "treeLeaves", true);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(sapling_Pine), "treeSapling", true);
- return true;
- }
+ public static final void recipes() {
+ // Rainforest Oak
+ addLogRecipes(ItemUtils.getSimpleStack(log_Rainforest));
+ addSaplingRecipes(ItemUtils.getSimpleStack(sapling_Rainforest));
+ // Pine
+ addLogRecipes(ItemUtils.getSimpleStack(log_Pine));
+ addSaplingRecipes(ItemUtils.getSimpleStack(sapling_Pine));
+ }
- public static final void recipes() {
- // Rainforest Oak
- addLogRecipes(ItemUtils.getSimpleStack(log_Rainforest));
- addSaplingRecipes(ItemUtils.getSimpleStack(sapling_Rainforest));
- // Pine
- addLogRecipes(ItemUtils.getSimpleStack(log_Pine));
- addSaplingRecipes(ItemUtils.getSimpleStack(sapling_Pine));
+ public static final void addLogRecipes(final ItemStack aStack) {
+ RecipeUtils.addShapelessGregtechRecipe(
+ new ItemStack[] {aStack},
+ ItemUtils.getSimpleStack(
+ Item.getItemFromBlock(Blocks.planks), GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 4));
+ RecipeUtils.recipeBuilder(
+ CI.craftingToolSaw,
+ null,
+ null,
+ aStack,
+ null,
+ null,
+ null,
+ null,
+ null,
+ ItemUtils.getSimpleStack(Item.getItemFromBlock(Blocks.planks), 4));
+ GT_ModHandler.addPulverisationRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L),
+ 80,
+ false);
+ GT_ModHandler.addCraftingRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 2L),
+ GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED,
+ new Object[] {"sLf", 'L', GT_Utility.copyAmount(1L, aStack)});
+ GT_Values.RA.addLatheRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 4L),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L),
+ 160,
+ 8);
- }
+ if (!CORE.GTNH) {
+ GT_Values.RA.addAssemblerRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]),
+ Materials.SeedOil.getFluid(50L),
+ ItemList.FR_Stick.get(1L, new Object[0]),
+ 16,
+ 8);
+ GT_Values.RA.addAssemblerRecipe(
+ GT_Utility.copyAmount(8L, aStack),
+ ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]),
+ Materials.SeedOil.getFluid(250L),
+ ItemList.FR_Casing_Impregnated.get(1L, new Object[0]),
+ 64,
+ 16);
+ GT_Values.RA.addChemicalBathRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ Materials.Creosote.getFluid(1000L),
+ GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 8),
+ null,
+ null,
+ null,
+ 16,
+ 16);
+ }
- public static final void addLogRecipes(final ItemStack aStack) {
- RecipeUtils.addShapelessGregtechRecipe(new ItemStack[] {aStack}, ItemUtils.getSimpleStack(Item.getItemFromBlock(Blocks.planks), GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 4));
- RecipeUtils.recipeBuilder(
- CI.craftingToolSaw, null, null,
- aStack, null, null,
- null, null, null,
- ItemUtils.getSimpleStack(Item.getItemFromBlock(Blocks.planks), 4));
- GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 80, false);
- GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 2L), GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[] { "sLf", 'L', GT_Utility.copyAmount(1L, aStack) });
- GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Wood, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 160, 8);
+ final short aMeta = (short) aStack.getItemDamage();
+ if (aMeta == 32767) {
+ if (GT_Utility.areStacksEqual(
+ GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null),
+ new ItemStack(Items.coal, 1, 1))) {
+ addPyrolyeOvenRecipes(aStack);
+ if (GregTech_API.sRecipeFile.get(
+ ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
+ GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
+ }
+ }
+ for (int i = 0; i < 32767; ++i) {
+ if (GT_Utility.areStacksEqual(
+ GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null),
+ new ItemStack(Items.coal, 1, 1))) {
+ addPyrolyeOvenRecipes(aStack);
+ if (GregTech_API.sRecipeFile.get(
+ ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
+ GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i));
+ }
+ }
+ final ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack(aStack.getItem(), 1, i));
+ if (tStack == null) {
+ if (i >= 16) {
+ break;
+ }
+ } else {
+ final ItemStack tPlanks = GT_Utility.copy(tStack);
+ tPlanks.stackSize = tPlanks.stackSize * 3 / 2;
+ GT_Values.RA.addCutterRecipe(
+ new ItemStack(aStack.getItem(), 1, i),
+ Materials.Lubricant.getFluid(1L),
+ GT_Utility.copy(tPlanks),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L),
+ 200,
+ 8);
+ GT_Values.RA.addCutterRecipe(
+ new ItemStack(aStack.getItem(), 1, i),
+ GT_Utility.copyAmount(
+ GT_Mod.gregtechproxy.mNerfedWoodPlank
+ ? ((long) tStack.stackSize)
+ : ((long) (tStack.stackSize * 5 / 4)),
+ tStack),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L),
+ 200,
+ 8);
+ GT_ModHandler.addSawmillRecipe(
+ new ItemStack(aStack.getItem(), 1, i),
+ tPlanks,
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L));
+ GT_ModHandler.removeRecipe(new ItemStack(aStack.getItem(), 1, i));
+ GT_ModHandler.addCraftingRecipe(
+ GT_Utility.copyAmount(
+ GT_Mod.gregtechproxy.mNerfedWoodPlank
+ ? ((long) tStack.stackSize)
+ : ((long) (tStack.stackSize * 5 / 4)),
+ tStack),
+ new Object[] {"s", "L", 'L', new ItemStack(aStack.getItem(), 1, i)});
+ GT_ModHandler.addShapelessCraftingRecipe(
+ GT_Utility.copyAmount(
+ tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack),
+ new Object[] {new ItemStack(aStack.getItem(), 1, i)});
+ }
+ }
+ } else {
+ if (GT_Utility.areStacksEqual(
+ GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null),
+ new ItemStack(Items.coal, 1, 1))) {
+ addPyrolyeOvenRecipes(aStack);
+ if (GregTech_API.sRecipeFile.get(
+ ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
+ GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
+ }
+ }
+ final ItemStack tStack2 = GT_ModHandler.getRecipeOutput(GT_Utility.copyAmount(1L, aStack));
+ if (tStack2 != null) {
+ final ItemStack tPlanks2 = GT_Utility.copy(tStack2);
+ tPlanks2.stackSize = tPlanks2.stackSize * 3 / 2;
+ GT_Values.RA.addCutterRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ Materials.Lubricant.getFluid(1L),
+ GT_Utility.copy(tPlanks2),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L),
+ 200,
+ 8);
+ GT_Values.RA.addCutterRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ GT_Utility.copyAmount(
+ GT_Mod.gregtechproxy.mNerfedWoodPlank
+ ? ((long) tStack2.stackSize)
+ : ((long) (tStack2.stackSize * 5 / 4)),
+ tStack2),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L),
+ 200,
+ 8);
+ GT_ModHandler.addSawmillRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ tPlanks2,
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L));
+ GT_ModHandler.removeRecipe(GT_Utility.copyAmount(1L, aStack));
+ GT_ModHandler.addCraftingRecipe(
+ GT_Utility.copyAmount(
+ GT_Mod.gregtechproxy.mNerfedWoodPlank
+ ? ((long) tStack2.stackSize)
+ : ((long) (tStack2.stackSize * 5 / 4)),
+ tStack2),
+ new Object[] {"s", "L", 'L', GT_Utility.copyAmount(1L, aStack)});
+ GT_ModHandler.addShapelessCraftingRecipe(
+ GT_Utility.copyAmount(
+ tStack2.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack2),
+ new Object[] {GT_Utility.copyAmount(1L, aStack)});
+ }
+ }
+ if (GT_Utility.areStacksEqual(
+ GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null),
+ new ItemStack(Items.coal, 1, 1))) {
+ addPyrolyeOvenRecipes(aStack);
+ if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
+ GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
+ }
+ }
+ }
- if (!CORE.GTNH) {
- GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(1L, aStack), ItemList.Circuit_Integrated.getWithDamage(0L, 2L, new Object[0]), Materials.SeedOil.getFluid(50L), ItemList.FR_Stick.get(1L, new Object[0]), 16, 8);
- GT_Values.RA.addAssemblerRecipe(GT_Utility.copyAmount(8L, aStack), ItemList.Circuit_Integrated.getWithDamage(0L, 8L, new Object[0]), Materials.SeedOil.getFluid(250L), ItemList.FR_Casing_Impregnated.get(1L, new Object[0]), 64, 16);
- GT_Values.RA.addChemicalBathRecipe(GT_Utility.copyAmount(1L, aStack), Materials.Creosote.getFluid(1000L), GT_ModHandler.getModItem("Railcraft", "tile.railcraft.cube", 1L, 8), null, null, null, 16, 16);
- }
+ public static void addSaplingRecipes(final ItemStack aStack) {
+ GT_ModHandler.addPulverisationRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L),
+ null,
+ 0,
+ false);
+ GT_ModHandler.addCompressionRecipe(
+ GT_Utility.copyAmount(8L, aStack), ItemList.IC2_Plantball.get(1L, new Object[0]));
+ GT_Values.RA.addLatheRecipe(
+ GT_Utility.copyAmount(1L, aStack),
+ GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L),
+ GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L),
+ 16,
+ 8);
+ }
- final short aMeta = (short)aStack.getItemDamage();
- if (aMeta == 32767) {
- if (GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null), new ItemStack(Items.coal, 1, 1))) {
- addPyrolyeOvenRecipes(aStack);
- if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
- GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
- }
- }
- for (int i = 0; i < 32767; ++i) {
- if (GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(new ItemStack(aStack.getItem(), 1, i), false, null), new ItemStack(Items.coal, 1, 1))) {
- addPyrolyeOvenRecipes(aStack);
- if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
- GT_ModHandler.removeFurnaceSmelting(new ItemStack(aStack.getItem(), 1, i));
- }
- }
- final ItemStack tStack = GT_ModHandler.getRecipeOutput(new ItemStack(aStack.getItem(), 1, i));
- if (tStack == null) {
- if (i >= 16) {
- break;
- }
- }
- else {
- final ItemStack tPlanks = GT_Utility.copy(tStack);
- tPlanks.stackSize = tPlanks.stackSize * 3 / 2;
- GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), Materials.Lubricant.getFluid(1L), GT_Utility.copy(tPlanks), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8);
- GT_Values.RA.addCutterRecipe(new ItemStack(aStack.getItem(), 1, i), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? ((long)tStack.stackSize) : ((long)(tStack.stackSize * 5 / 4)), tStack), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8);
- GT_ModHandler.addSawmillRecipe(new ItemStack(aStack.getItem(), 1, i), tPlanks, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L));
- GT_ModHandler.removeRecipe(new ItemStack(aStack.getItem(), 1, i));
- GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? ((long)tStack.stackSize) : ((long)(tStack.stackSize * 5 / 4)), tStack), new Object[] { "s", "L", 'L', new ItemStack(aStack.getItem(), 1, i) });
- GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack), new Object[] { new ItemStack(aStack.getItem(), 1, i) });
- }
- }
- }
- else {
- if (GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null), new ItemStack(Items.coal, 1, 1))) {
- addPyrolyeOvenRecipes(aStack);
- if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
- GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
- }
- }
- final ItemStack tStack2 = GT_ModHandler.getRecipeOutput(GT_Utility.copyAmount(1L, aStack));
- if (tStack2 != null) {
- final ItemStack tPlanks2 = GT_Utility.copy(tStack2);
- tPlanks2.stackSize = tPlanks2.stackSize * 3 / 2;
- GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, aStack), Materials.Lubricant.getFluid(1L), GT_Utility.copy(tPlanks2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), 200, 8);
- GT_Values.RA.addCutterRecipe(GT_Utility.copyAmount(1L, aStack), GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? ((long)tStack2.stackSize) : ((long)(tStack2.stackSize * 5 / 4)), tStack2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L), 200, 8);
- GT_ModHandler.addSawmillRecipe(GT_Utility.copyAmount(1L, aStack), tPlanks2, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L));
- GT_ModHandler.removeRecipe(GT_Utility.copyAmount(1L, aStack));
- GT_ModHandler.addCraftingRecipe(GT_Utility.copyAmount(GT_Mod.gregtechproxy.mNerfedWoodPlank ? ((long)tStack2.stackSize) : ((long)(tStack2.stackSize * 5 / 4)), tStack2), new Object[] { "s", "L", 'L', GT_Utility.copyAmount(1L, aStack) });
- GT_ModHandler.addShapelessCraftingRecipe(GT_Utility.copyAmount(tStack2.stackSize / (GT_Mod.gregtechproxy.mNerfedWoodPlank ? 2 : 1), tStack2), new Object[] { GT_Utility.copyAmount(1L, aStack) });
- }
- }
- if (GT_Utility.areStacksEqual(GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(1L, aStack), false, null), new ItemStack(Items.coal, 1, 1))) {
- addPyrolyeOvenRecipes(aStack);
- if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", true)) {
- GT_ModHandler.removeFurnaceSmelting(GT_Utility.copyAmount(1L, aStack));
- }
- }
- }
+ public static void addPyrolyeOvenRecipes(final ItemStack logStack) {
- public static void addSaplingRecipes(final ItemStack aStack) {
- GT_ModHandler.addPulverisationRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L), null, 0, false);
- GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(8L, aStack), ItemList.IC2_Plantball.get(1L, new Object[0]));
- GT_Values.RA.addLatheRecipe(GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L), 16, 8);
- }
+ Materials aOilHeavy = MaterialUtils.getMaterial("OilHeavy");
+ Materials aCharcoalByproducts = MaterialUtils.getMaterial("CharcoalByproducts");
+ Materials aWoodGas = MaterialUtils.getMaterial("WoodGas");
+ Materials aWoodVinegar = MaterialUtils.getMaterial("WoodVinegar");
+ Materials aWoodTar = MaterialUtils.getMaterial("WoodTar");
- public static void addPyrolyeOvenRecipes(final ItemStack logStack) {
-
- Materials aOilHeavy = MaterialUtils.getMaterial("OilHeavy");
- Materials aCharcoalByproducts = MaterialUtils.getMaterial("CharcoalByproducts");
- Materials aWoodGas = MaterialUtils.getMaterial("WoodGas");
- Materials aWoodVinegar = MaterialUtils.getMaterial("WoodVinegar");
- Materials aWoodTar = MaterialUtils.getMaterial("WoodTar");
-
-
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 1, MaterialHelper.getGems(Materials.Charcoal, 20), Materials.Creosote.getFluid(4000L), 640, 64);
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 2, MaterialHelper.getGems(Materials.Charcoal, 20), Materials.Creosote.getFluid(4000L), 320, 96);
-
- if (aOilHeavy != null) {
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, MaterialHelper.getDust(Materials.Ash, 4), aOilHeavy.getFluid(200L), 320, 192);
-
- }
- if (aCharcoalByproducts != null) {
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 3, MaterialHelper.getGems(Materials.Charcoal, 20), aCharcoalByproducts.getGas(4000L), 640, 64);
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 4, MaterialHelper.getGems(Materials.Charcoal, 20), aCharcoalByproducts.getGas(4000L), 320, 96);
-
- }
- if (aWoodGas != null) {
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 5, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodGas.getGas(1500L), 640, 64);
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 6, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodGas.getGas(1500L), 320, 96);
-
- }
- if (aWoodVinegar != null) {
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 7, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodVinegar.getFluid(3000L), 640, 64);
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 8, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodVinegar.getFluid(3000L), 320, 96);
-
- }
- if (aWoodTar != null) {
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), GT_Values.NF, 9, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodTar.getFluid(1500L), 640, 64);
- CORE.RA.addPyrolyseRecipe(GT_Utility.copyAmount(16L, logStack), Materials.Nitrogen.getGas(1000L), 10, MaterialHelper.getGems(Materials.Charcoal, 20), aWoodTar.getFluid(1500L), 320, 96);
-
- }
- }
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 1,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ Materials.Creosote.getFluid(4000L),
+ 640,
+ 64);
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ Materials.Nitrogen.getGas(1000L),
+ 2,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ Materials.Creosote.getFluid(4000L),
+ 320,
+ 96);
+ if (aOilHeavy != null) {
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 3,
+ MaterialHelper.getDust(Materials.Ash, 4),
+ aOilHeavy.getFluid(200L),
+ 320,
+ 192);
+ }
+ if (aCharcoalByproducts != null) {
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 3,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aCharcoalByproducts.getGas(4000L),
+ 640,
+ 64);
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ Materials.Nitrogen.getGas(1000L),
+ 4,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aCharcoalByproducts.getGas(4000L),
+ 320,
+ 96);
+ }
+ if (aWoodGas != null) {
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 5,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodGas.getGas(1500L),
+ 640,
+ 64);
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ Materials.Nitrogen.getGas(1000L),
+ 6,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodGas.getGas(1500L),
+ 320,
+ 96);
+ }
+ if (aWoodVinegar != null) {
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 7,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodVinegar.getFluid(3000L),
+ 640,
+ 64);
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ Materials.Nitrogen.getGas(1000L),
+ 8,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodVinegar.getFluid(3000L),
+ 320,
+ 96);
+ }
+ if (aWoodTar != null) {
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ GT_Values.NF,
+ 9,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodTar.getFluid(1500L),
+ 640,
+ 64);
+ CORE.RA.addPyrolyseRecipe(
+ GT_Utility.copyAmount(16L, logStack),
+ Materials.Nitrogen.getGas(1000L),
+ 10,
+ MaterialHelper.getGems(Materials.Charcoal, 20),
+ aWoodTar.getFluid(1500L),
+ 320,
+ 96);
+ }
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java
index 5c86c45591..c2d534dfb6 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java
@@ -1,13 +1,16 @@
package gtPlusPlus.xmod.bop.blocks.base;
-import java.util.List;
-import java.util.Random;
-
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import java.util.List;
+import java.util.Random;
import net.minecraft.block.BlockLeaves;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
@@ -18,92 +21,87 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
public class LeavesBase extends BlockLeaves {
- protected IIcon[][] leafTextures = new IIcon[2][];
- protected String[][] leafType = new String[][] {{}, {}};
- protected String[] treeType = new String[] {};
- protected ItemStack[] bonusDrops;
-
- @SuppressWarnings("deprecation")
- public LeavesBase(String blockNameLocalized, String blockNameUnlocalized, ItemStack[] bonusDrops){
- this.bonusDrops = bonusDrops;
- String blockName = "block"+Utils.sanitizeString(blockNameLocalized)+"Leaves";
- GameRegistry.registerBlock(this, ItemBlock.class, blockName);
- this.setBlockName(blockName);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "treeLeaves", true);
- this.setCreativeTab(AddToCreativeTab.tabBOP);
- LanguageRegistry.addName(this, blockNameLocalized+" Leaves");
- Blocks.fire.setFireInfo(this, 80, 150);
- }
-
- private final void setVanillaVariable(Object toSet, Object value){
- toSet = value;
- }
-
- @Override
- public int quantityDropped(Random p_149745_1_){
- return p_149745_1_.nextInt(20) == 0 ? 1 : 0;
- }
-
-
- @Override//Drops when Leaf is broken
- protected void func_150124_c(World world, int x, int y, int z, int meta, int randomChance){
- Logger.INFO("Dropping Bonus Drops");
- for (int i = 0; i < this.bonusDrops.length; ++i){
- if (this.bonusDrops[i] != null && world.rand.nextInt(randomChance) == 0){
- this.dropBlockAsItem(world, x, y, z, ItemUtils.getSimpleStack(this.bonusDrops[i], 1));
- }
- }
- }
-
- /**
- * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
- */
- @SuppressWarnings("unchecked")
- @Override
- @SideOnly(Side.CLIENT)
- public void getSubBlocks(Item item, CreativeTabs tab, @SuppressWarnings("rawtypes") List metaList){
- for (int i = 0; i < this.treeType.length; ++i){
- metaList.add(new ItemStack(item, 1, i));
- }
- }
-
- /**
- * Gets the block's texture. Args: side, meta
- */
- @Override
- @SideOnly(Side.CLIENT)
- public IIcon getIcon(int p_149691_1_, int metaID){
- return (metaID & 3) == 1 ? this.leafTextures[this.field_150127_b][1] : this.leafTextures[this.field_150127_b][0];
- }
-
- @Override
- public boolean isOpaqueCube() {
- return false;
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister iIcon){
- for (int i = 0; i < leafType.length; ++i){
- this.leafTextures[i] = new IIcon[leafType[i].length];
- for (int j = 0; j < leafType[i].length; ++j){
- this.leafTextures[i][j] = iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "leaves/" + "leaves_" + leafType[i][j]);
- }
- }
- setVanillaVariable(this.field_150129_M, this.leafTextures);
- }
-
- @Override
- public String[] func_150125_e()
- {
- return treeType;
- }
-} \ No newline at end of file
+ protected IIcon[][] leafTextures = new IIcon[2][];
+ protected String[][] leafType = new String[][] {{}, {}};
+ protected String[] treeType = new String[] {};
+ protected ItemStack[] bonusDrops;
+
+ @SuppressWarnings("deprecation")
+ public LeavesBase(String blockNameLocalized, String blockNameUnlocalized, ItemStack[] bonusDrops) {
+ this.bonusDrops = bonusDrops;
+ String blockName = "block" + Utils.sanitizeString(blockNameLocalized) + "Leaves";
+ GameRegistry.registerBlock(this, ItemBlock.class, blockName);
+ this.setBlockName(blockName);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "treeLeaves", true);
+ this.setCreativeTab(AddToCreativeTab.tabBOP);
+ LanguageRegistry.addName(this, blockNameLocalized + " Leaves");
+ Blocks.fire.setFireInfo(this, 80, 150);
+ }
+
+ private final void setVanillaVariable(Object toSet, Object value) {
+ toSet = value;
+ }
+
+ @Override
+ public int quantityDropped(Random p_149745_1_) {
+ return p_149745_1_.nextInt(20) == 0 ? 1 : 0;
+ }
+
+ @Override // Drops when Leaf is broken
+ protected void func_150124_c(World world, int x, int y, int z, int meta, int randomChance) {
+ Logger.INFO("Dropping Bonus Drops");
+ for (int i = 0; i < this.bonusDrops.length; ++i) {
+ if (this.bonusDrops[i] != null && world.rand.nextInt(randomChance) == 0) {
+ this.dropBlockAsItem(world, x, y, z, ItemUtils.getSimpleStack(this.bonusDrops[i], 1));
+ }
+ }
+ }
+
+ /**
+ * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubBlocks(Item item, CreativeTabs tab, @SuppressWarnings("rawtypes") List metaList) {
+ for (int i = 0; i < this.treeType.length; ++i) {
+ metaList.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ /**
+ * Gets the block's texture. Args: side, meta
+ */
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int p_149691_1_, int metaID) {
+ return (metaID & 3) == 1
+ ? this.leafTextures[this.field_150127_b][1]
+ : this.leafTextures[this.field_150127_b][0];
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister iIcon) {
+ for (int i = 0; i < leafType.length; ++i) {
+ this.leafTextures[i] = new IIcon[leafType[i].length];
+ for (int j = 0; j < leafType[i].length; ++j) {
+ this.leafTextures[i][j] =
+ iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "leaves/" + "leaves_" + leafType[i][j]);
+ }
+ }
+ setVanillaVariable(this.field_150129_M, this.leafTextures);
+ }
+
+ @Override
+ public String[] func_150125_e() {
+ return treeType;
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LogBase.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LogBase.java
index 8e8ca0ed0a..4c8a905834 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LogBase.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/LogBase.java
@@ -1,12 +1,14 @@
package gtPlusPlus.xmod.bop.blocks.base;
-import java.util.List;
-
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import java.util.List;
import net.minecraft.block.BlockLog;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
@@ -16,71 +18,65 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
-public abstract class LogBase extends BlockLog
-{
- public String[] treeType = new String[] {};
- protected IIcon[] textureSide;
- protected IIcon[] textureTop;
-
- @SuppressWarnings("deprecation")
- public LogBase(String blockNameLocalized, String blockNameUnlocalized, String[] treeTypes){
- this.treeType = treeTypes;
- String blockName = "block"+Utils.sanitizeString(blockNameLocalized)+"Log";
- GameRegistry.registerBlock(this, ItemBlock.class, blockName);
- this.setBlockName(blockName);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "log"+Utils.sanitizeString(blockNameLocalized), true);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "logWood", true);
- this.setCreativeTab(AddToCreativeTab.tabBOP);
- LanguageRegistry.addName(this, blockNameLocalized);
- Blocks.fire.setFireInfo(this, 20, 100);
- }
+public abstract class LogBase extends BlockLog {
+ public String[] treeType = new String[] {};
+ protected IIcon[] textureSide;
+ protected IIcon[] textureTop;
- private final void setVanillaVariable(Object toSet, Object value){
- toSet = value;
- }
+ @SuppressWarnings("deprecation")
+ public LogBase(String blockNameLocalized, String blockNameUnlocalized, String[] treeTypes) {
+ this.treeType = treeTypes;
+ String blockName = "block" + Utils.sanitizeString(blockNameLocalized) + "Log";
+ GameRegistry.registerBlock(this, ItemBlock.class, blockName);
+ this.setBlockName(blockName);
+ ItemUtils.addItemToOreDictionary(
+ ItemUtils.getSimpleStack(this), "log" + Utils.sanitizeString(blockNameLocalized), true);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "logWood", true);
+ this.setCreativeTab(AddToCreativeTab.tabBOP);
+ LanguageRegistry.addName(this, blockNameLocalized);
+ Blocks.fire.setFireInfo(this, 20, 100);
+ }
- /**
- * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
- */
- @Override
- @SideOnly(Side.CLIENT)
- public void getSubBlocks(Item item, CreativeTabs tab, List metaList){
- for (int i = 0; i < this.textureSide.length; ++i){
- metaList.add(new ItemStack(item, 1, i));
- }
- }
+ private final void setVanillaVariable(Object toSet, Object value) {
+ toSet = value;
+ }
- @Override
- @SideOnly(Side.CLIENT)
- protected IIcon getTopIcon(int meta){
- return this.textureTop[meta % this.textureTop.length];
- }
+ /**
+ * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
+ */
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubBlocks(Item item, CreativeTabs tab, List metaList) {
+ for (int i = 0; i < this.textureSide.length; ++i) {
+ metaList.add(new ItemStack(item, 1, i));
+ }
+ }
- @Override
- @SideOnly(Side.CLIENT)
- protected IIcon getSideIcon(int metaID){
- return this.textureSide[metaID % this.textureSide.length];
- }
+ @Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getTopIcon(int meta) {
+ return this.textureTop[meta % this.textureTop.length];
+ }
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister iIcon)
- {
- this.textureSide = new IIcon[treeType.length];
- this.textureTop = new IIcon[treeType.length];
+ @Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getSideIcon(int metaID) {
+ return this.textureSide[metaID % this.textureSide.length];
+ }
- for (int i = 0; i < this.textureSide.length; ++i){
- this.textureSide[i] = iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "logs/" + "log_" + treeType[i]);
- this.textureTop[i] = iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "logs/" + "log_" + treeType[i] + "_top");
- }
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister iIcon) {
+ this.textureSide = new IIcon[treeType.length];
+ this.textureTop = new IIcon[treeType.length];
- setVanillaVariable(this.field_150167_a, this.textureSide);
- setVanillaVariable(this.field_150166_b, this.textureTop);
- }
+ for (int i = 0; i < this.textureSide.length; ++i) {
+ this.textureSide[i] = iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "logs/" + "log_" + treeType[i]);
+ this.textureTop[i] =
+ iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "logs/" + "log_" + treeType[i] + "_top");
+ }
-} \ No newline at end of file
+ setVanillaVariable(this.field_150167_a, this.textureSide);
+ setVanillaVariable(this.field_150166_b, this.textureTop);
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/SaplingBase.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/SaplingBase.java
index c039e1ebac..f606a3c173 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/base/SaplingBase.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/base/SaplingBase.java
@@ -1,13 +1,16 @@
package gtPlusPlus.xmod.bop.blocks.base;
-import java.util.List;
-import java.util.Random;
-
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import java.util.List;
+import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -23,176 +26,159 @@ import net.minecraft.world.gen.feature.WorldGenBigTree;
import net.minecraft.world.gen.feature.WorldGenTrees;
import net.minecraft.world.gen.feature.WorldGenerator;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.creative.AddToCreativeTab;
-import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
-public class SaplingBase extends BlockSapling
-{
- protected String[] saplingTypes = new String[] {};
- protected IIcon[] saplingTextures = new IIcon[] {};
-
- //Sapling types - field_149882_a
- //Iicons - field_149881_b
-
- protected SaplingBase(String blockNameLocalized, String blockNameUnlocalized, String[] saplingTypes){
- float f = 0.4F;
- this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 2.0F, 0.5F + f);
- this.saplingTypes = saplingTypes;
- this.saplingTextures = new IIcon[saplingTypes.length];
- String blockName = "block"+Utils.sanitizeString(blockNameLocalized);
- GameRegistry.registerBlock(this, ItemBlock.class, blockName);
- this.setBlockName(blockName);
- ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "treeSapling", true);
- this.setCreativeTab(AddToCreativeTab.tabBOP);
- LanguageRegistry.addName(this, blockNameLocalized);
- }
-
- private final void setVanillaVariable(Object toSet, Object value){
- toSet = value;
- }
-
- /**
- * Gets the block's texture. Args: side, meta
- */
- @Override
- @SideOnly(Side.CLIENT)
- public IIcon getIcon(int someInt, int meta){
- /* p_149691_2_ &= 7;
+public class SaplingBase extends BlockSapling {
+ protected String[] saplingTypes = new String[] {};
+ protected IIcon[] saplingTextures = new IIcon[] {};
+
+ // Sapling types - field_149882_a
+ // Iicons - field_149881_b
+
+ protected SaplingBase(String blockNameLocalized, String blockNameUnlocalized, String[] saplingTypes) {
+ float f = 0.4F;
+ this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 2.0F, 0.5F + f);
+ this.saplingTypes = saplingTypes;
+ this.saplingTextures = new IIcon[saplingTypes.length];
+ String blockName = "block" + Utils.sanitizeString(blockNameLocalized);
+ GameRegistry.registerBlock(this, ItemBlock.class, blockName);
+ this.setBlockName(blockName);
+ ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(this), "treeSapling", true);
+ this.setCreativeTab(AddToCreativeTab.tabBOP);
+ LanguageRegistry.addName(this, blockNameLocalized);
+ }
+
+ private final void setVanillaVariable(Object toSet, Object value) {
+ toSet = value;
+ }
+
+ /**
+ * Gets the block's texture. Args: side, meta
+ */
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int someInt, int meta) {
+ /* p_149691_2_ &= 7;
return saplingTextures[MathHelper.clamp_int(p_149691_2_, 0, 5)];*/
- //return this.saplingTextures[meta % this.saplingTextures.length];
- try {
- return this.saplingTextures[meta];
- }catch(Throwable T){
- Logger.WARNING("Invalid Sapling meta is "+meta);
- return this.saplingTextures[0];
- }
- }
-
- /**
- * Ticks the block if it's been scheduled
- */
- @Override
- public void updateTick(World world, int x, int y, int z, Random rand){
- if (!world.isRemote){
- super.updateTick(world, x, y, z, rand);
- if (world.getBlockLightValue(x, y + 1, z) >= 9 && rand.nextInt(7) == 0){
- Logger.WARNING("Update Tick");
- this.updateMeta(world, x, y, z, rand);
- }
- else {
- Logger.WARNING("Tried to Tick.");
- }
- }
- }
-
- //Dunno - Think it is doGrow || doGrowthTick
- @Override
- public void func_149853_b(World world, Random rand, int x, int y, int z){
- Logger.WARNING("Please find what calls me - func_149853_b");
- this.updateMeta(world, x, y, z, rand);
- }
-
- public void updateMeta(World world, int x, int y, int z, Random rand){
- func_149879_c(world, x, y, z, rand);
- }
-
- @Override
- public void func_149879_c(World world, int x, int y, int z, Random rand){
- Logger.WARNING("func_149879_c - 1");
- int l = world.getBlockMetadata(x, y, z);
-
- if ((l & 8) == 0){
- Logger.WARNING("func_149879_c - 2");
- world.setBlockMetadataWithNotify(x, y, z, l | 8, 4);
- }
- else{
- Logger.WARNING("func_149879_c - 3");
- this.func_149878_d(world, x, y, z, rand);
- }
- }
-
- @Override
- public void func_149878_d(World world, int x, int y, int z, Random rand){
- Logger.WARNING("func_149878_d - 1");
- if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
- int l = world.getBlockMetadata(x, y, z) & 7;
- Object object = rand.nextInt(10) == 0 ? new WorldGenBigTree(true) : new WorldGenTrees(true);
- int i1 = 0;
- int j1 = 0;
- boolean flag = false;
-
- switch (l)
- {
- case 0:
- default:
- Logger.WARNING("Case 0 - Grow Tree");
- break;
-
- }
-
- Block block = Blocks.air;
-
- if (flag)
- {
- world.setBlock(x + i1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
- }
- else
- {
- world.setBlock(x, y, z, block, 0, 4);
- }
-
- if (!((WorldGenerator)object).generate(world, rand, x + i1, y, z + j1))
- {
- if (flag)
- {
- world.setBlock(x + i1, y, z + j1, this, l, 4);
- world.setBlock(x + i1 + 1, y, z + j1, this, l, 4);
- world.setBlock(x + i1, y, z + j1 + 1, this, l, 4);
- world.setBlock(x + i1 + 1, y, z + j1 + 1, this, l, 4);
- }
- else
- {
- world.setBlock(x, y, z, this, l, 4);
- }
- }
- }
-
- @Override
- public boolean func_149880_a(World world, int p_149880_2_, int p_149880_3_, int p_149880_4_, int p_149880_5_){
- return world.getBlock(p_149880_2_, p_149880_3_, p_149880_4_) == this && (world.getBlockMetadata(p_149880_2_, p_149880_3_, p_149880_4_) & 7) == p_149880_5_;
- }
-
- /**
- * Determines the damage on the item the block drops. Used in cloth and wood.
- */
- @Override
- public int damageDropped(int meta){
- return MathHelper.clamp_int(meta & 7, 0, 5);
- }
-
- /**
- * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
- */
- @Override
- @SideOnly(Side.CLIENT)
- public void getSubBlocks(Item item, CreativeTabs tab, List metaList){
- for (int i = 0; i < this.saplingTextures.length; ++i){
- metaList.add(new ItemStack(item, 1, i));
- }
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister iIcon){
- for (int i = 0; i < saplingTextures.length; ++i){
- saplingTextures[i] = iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "saplings/" + "sapling_" + saplingTypes[i]);
- }
- }
-
-} \ No newline at end of file
+ // return this.saplingTextures[meta % this.saplingTextures.length];
+ try {
+ return this.saplingTextures[meta];
+ } catch (Throwable T) {
+ Logger.WARNING("Invalid Sapling meta is " + meta);
+ return this.saplingTextures[0];
+ }
+ }
+
+ /**
+ * Ticks the block if it's been scheduled
+ */
+ @Override
+ public void updateTick(World world, int x, int y, int z, Random rand) {
+ if (!world.isRemote) {
+ super.updateTick(world, x, y, z, rand);
+ if (world.getBlockLightValue(x, y + 1, z) >= 9 && rand.nextInt(7) == 0) {
+ Logger.WARNING("Update Tick");
+ this.updateMeta(world, x, y, z, rand);
+ } else {
+ Logger.WARNING("Tried to Tick.");
+ }
+ }
+ }
+
+ // Dunno - Think it is doGrow || doGrowthTick
+ @Override
+ public void func_149853_b(World world, Random rand, int x, int y, int z) {
+ Logger.WARNING("Please find what calls me - func_149853_b");
+ this.updateMeta(world, x, y, z, rand);
+ }
+
+ public void updateMeta(World world, int x, int y, int z, Random rand) {
+ func_149879_c(world, x, y, z, rand);
+ }
+
+ @Override
+ public void func_149879_c(World world, int x, int y, int z, Random rand) {
+ Logger.WARNING("func_149879_c - 1");
+ int l = world.getBlockMetadata(x, y, z);
+
+ if ((l & 8) == 0) {
+ Logger.WARNING("func_149879_c - 2");
+ world.setBlockMetadataWithNotify(x, y, z, l | 8, 4);
+ } else {
+ Logger.WARNING("func_149879_c - 3");
+ this.func_149878_d(world, x, y, z, rand);
+ }
+ }
+
+ @Override
+ public void func_149878_d(World world, int x, int y, int z, Random rand) {
+ Logger.WARNING("func_149878_d - 1");
+ if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
+ int l = world.getBlockMetadata(x, y, z) & 7;
+ Object object = rand.nextInt(10) == 0 ? new WorldGenBigTree(true) : new WorldGenTrees(true);
+ int i1 = 0;
+ int j1 = 0;
+ boolean flag = false;
+
+ switch (l) {
+ case 0:
+ default:
+ Logger.WARNING("Case 0 - Grow Tree");
+ break;
+ }
+
+ Block block = Blocks.air;
+
+ if (flag) {
+ world.setBlock(x + i1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
+ } else {
+ world.setBlock(x, y, z, block, 0, 4);
+ }
+
+ if (!((WorldGenerator) object).generate(world, rand, x + i1, y, z + j1)) {
+ if (flag) {
+ world.setBlock(x + i1, y, z + j1, this, l, 4);
+ world.setBlock(x + i1 + 1, y, z + j1, this, l, 4);
+ world.setBlock(x + i1, y, z + j1 + 1, this, l, 4);
+ world.setBlock(x + i1 + 1, y, z + j1 + 1, this, l, 4);
+ } else {
+ world.setBlock(x, y, z, this, l, 4);
+ }
+ }
+ }
+
+ @Override
+ public boolean func_149880_a(World world, int p_149880_2_, int p_149880_3_, int p_149880_4_, int p_149880_5_) {
+ return world.getBlock(p_149880_2_, p_149880_3_, p_149880_4_) == this
+ && (world.getBlockMetadata(p_149880_2_, p_149880_3_, p_149880_4_) & 7) == p_149880_5_;
+ }
+
+ /**
+ * Determines the damage on the item the block drops. Used in cloth and wood.
+ */
+ @Override
+ public int damageDropped(int meta) {
+ return MathHelper.clamp_int(meta & 7, 0, 5);
+ }
+
+ /**
+ * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
+ */
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubBlocks(Item item, CreativeTabs tab, List metaList) {
+ for (int i = 0; i < this.saplingTextures.length; ++i) {
+ metaList.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister iIcon) {
+ for (int i = 0; i < saplingTextures.length; ++i) {
+ saplingTextures[i] =
+ iIcon.registerIcon(CORE.MODID + ":" + "trees/" + "saplings/" + "sapling_" + saplingTypes[i]);
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LeavesPineTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LeavesPineTree.java
index c942db14cf..b901766583 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LeavesPineTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LeavesPineTree.java
@@ -1,36 +1,35 @@
package gtPlusPlus.xmod.bop.blocks.pine;
-import java.util.Random;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
import gtPlusPlus.xmod.bop.blocks.base.LeavesBase;
+import java.util.Random;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class LeavesPineTree extends LeavesBase {
- public LeavesPineTree(){
- super("Pine", "pine", new ItemStack[]{});
- this.treeType = new String[] {"pine"};
- this.leafType = new String[][] {{"pine"},{"pine_opaque"}};
- }
-
- @Override
- public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_){
- return Item.getItemFromBlock(BOP_Block_Registrator.sapling_Pine);
- }
+ public LeavesPineTree() {
+ super("Pine", "pine", new ItemStack[] {});
+ this.treeType = new String[] {"pine"};
+ this.leafType = new String[][] {{"pine"}, {"pine_opaque"}};
+ }
- @Override//Drops when Leaf is broken
- protected void func_150124_c(World world, int x, int y, int z, int meta, int randomChance){
- Logger.INFO("Dropping Bonus Drops");
- if (MathUtils.randInt(0, 10) >= 9) {
- this.dropBlockAsItem(world, x, y, z, ItemUtils.getSimpleStack(AgriculturalChem.mPinecone, MathUtils.randInt(1, 4)));
- }
- }
+ @Override
+ public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
+ return Item.getItemFromBlock(BOP_Block_Registrator.sapling_Pine);
+ }
-} \ No newline at end of file
+ @Override // Drops when Leaf is broken
+ protected void func_150124_c(World world, int x, int y, int z, int meta, int randomChance) {
+ Logger.INFO("Dropping Bonus Drops");
+ if (MathUtils.randInt(0, 10) >= 9) {
+ this.dropBlockAsItem(
+ world, x, y, z, ItemUtils.getSimpleStack(AgriculturalChem.mPinecone, MathUtils.randInt(1, 4)));
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LogPineTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LogPineTree.java
index dee5bf02fd..e8de630960 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LogPineTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/LogPineTree.java
@@ -4,21 +4,21 @@ import gtPlusPlus.xmod.bop.blocks.base.LogBase;
public class LogPineTree extends LogBase {
- public LogPineTree(){
- super("Pine Log", "pine", new String[]{"pine"});
- this.treeType = new String[] {"pine"};
- }
+ public LogPineTree() {
+ super("Pine Log", "pine", new String[] {"pine"});
+ this.treeType = new String[] {"pine"};
+ }
- /*@Override
- @SideOnly(Side.CLIENT)
- protected IIcon getSideIcon(int metaID){
- return this.textureSide[metaID % this.textureSide.length];
- }
+ /*@Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getSideIcon(int metaID){
+ return this.textureSide[metaID % this.textureSide.length];
+ }
- @Override
- @SideOnly(Side.CLIENT)
- protected IIcon getTopIcon(int metaID){
- return this.textureTop[metaID % this.textureTop.length];
- }*/
-
-} \ No newline at end of file
+ @Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getTopIcon(int metaID){
+ return this.textureTop[metaID % this.textureTop.length];
+ }*/
+
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/SaplingPineTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/SaplingPineTree.java
index 0ee04de899..a5c9012f76 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/SaplingPineTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/pine/SaplingPineTree.java
@@ -1,11 +1,10 @@
package gtPlusPlus.xmod.bop.blocks.pine;
-import java.util.Random;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.xmod.bop.blocks.base.SaplingBase;
import gtPlusPlus.xmod.bop.world.features.trees.WorldGenPineTree;
+import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
@@ -15,41 +14,37 @@ import net.minecraft.world.gen.feature.WorldGenerator;
public class SaplingPineTree extends SaplingBase {
- public SaplingPineTree(){
- super("Pine Sapling", "pine", new String[]{"pine"});
- }
-
- @Override
- public void func_149878_d(World world, int x, int y, int z, Random rand){
- Logger.WARNING("func_149878_d - 1");
- if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
- rand.nextInt(10);
- new WorldGenBigTree(true);
- new WorldGenTrees(true);
- int i1 = 0;
- int j1 = 0;
- boolean flag = false;
-
- Block block = Blocks.air;
-
- if (flag)
- {
- world.setBlock(x + i1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
- }
- else
- {
- world.setBlock(x, y, z, block, 0, 4);
- }
- Object obj = new WorldGenPineTree();
- if (obj != null) {
- world.setBlockToAir(x, y, z);
- if (!((WorldGenerator) obj).generate(world, CORE.RANDOM, x, y, z)) {
- world.setBlock(x, y, z, this, 0, 2);
- }
- }
- }
-
-} \ No newline at end of file
+ public SaplingPineTree() {
+ super("Pine Sapling", "pine", new String[] {"pine"});
+ }
+
+ @Override
+ public void func_149878_d(World world, int x, int y, int z, Random rand) {
+ Logger.WARNING("func_149878_d - 1");
+ if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
+ rand.nextInt(10);
+ new WorldGenBigTree(true);
+ new WorldGenTrees(true);
+ int i1 = 0;
+ int j1 = 0;
+ boolean flag = false;
+
+ Block block = Blocks.air;
+
+ if (flag) {
+ world.setBlock(x + i1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
+ } else {
+ world.setBlock(x, y, z, block, 0, 4);
+ }
+ Object obj = new WorldGenPineTree();
+ if (obj != null) {
+ world.setBlockToAir(x, y, z);
+ if (!((WorldGenerator) obj).generate(world, CORE.RANDOM, x, y, z)) {
+ world.setBlock(x, y, z, this, 0, 2);
+ }
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LeavesRainforestTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LeavesRainforestTree.java
index 39e434243a..fe6eb4446d 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LeavesRainforestTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LeavesRainforestTree.java
@@ -1,26 +1,23 @@
package gtPlusPlus.xmod.bop.blocks.rainforest;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
+import gtPlusPlus.xmod.bop.blocks.base.LeavesBase;
import java.util.Random;
-
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
-import gtPlusPlus.xmod.bop.blocks.base.LeavesBase;
-
public class LeavesRainforestTree extends LeavesBase {
- public LeavesRainforestTree(){
- super("Rainforest Oak", "rainforestoak", new ItemStack[]{ItemUtils.getSimpleStack(Items.apple)});
- this.treeType = new String[] {"rainforest"};
- this.leafType = new String[][] {{"rainforest"},{"rainforest_opaque"}};
- }
-
- @Override
- public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_){
- return Item.getItemFromBlock(BOP_Block_Registrator.sapling_Rainforest);
- }
+ public LeavesRainforestTree() {
+ super("Rainforest Oak", "rainforestoak", new ItemStack[] {ItemUtils.getSimpleStack(Items.apple)});
+ this.treeType = new String[] {"rainforest"};
+ this.leafType = new String[][] {{"rainforest"}, {"rainforest_opaque"}};
+ }
-} \ No newline at end of file
+ @Override
+ public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
+ return Item.getItemFromBlock(BOP_Block_Registrator.sapling_Rainforest);
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LogRainforestTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LogRainforestTree.java
index 6d30caafb7..b3f42fcd93 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LogRainforestTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/LogRainforestTree.java
@@ -4,21 +4,21 @@ import gtPlusPlus.xmod.bop.blocks.base.LogBase;
public class LogRainforestTree extends LogBase {
- public LogRainforestTree(){
- super("Rainforest Oak", "rainforestoak", new String[]{"rainforest"});
- this.treeType = new String[] {"rainforest"};
- }
+ public LogRainforestTree() {
+ super("Rainforest Oak", "rainforestoak", new String[] {"rainforest"});
+ this.treeType = new String[] {"rainforest"};
+ }
- /*@Override
- @SideOnly(Side.CLIENT)
- protected IIcon getSideIcon(int metaID){
- return this.textureSide[metaID % this.textureSide.length];
- }
+ /*@Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getSideIcon(int metaID){
+ return this.textureSide[metaID % this.textureSide.length];
+ }
- @Override
- @SideOnly(Side.CLIENT)
- protected IIcon getTopIcon(int metaID){
- return this.textureTop[metaID % this.textureTop.length];
- }*/
-
-} \ No newline at end of file
+ @Override
+ @SideOnly(Side.CLIENT)
+ protected IIcon getTopIcon(int metaID){
+ return this.textureTop[metaID % this.textureTop.length];
+ }*/
+
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/SaplingRainforestTree.java b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/SaplingRainforestTree.java
index 73b916d383..72de197adf 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/SaplingRainforestTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/blocks/rainforest/SaplingRainforestTree.java
@@ -1,7 +1,10 @@
package gtPlusPlus.xmod.bop.blocks.rainforest;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
+import gtPlusPlus.xmod.bop.blocks.base.SaplingBase;
+import gtPlusPlus.xmod.bop.world.features.trees.WorldGenRainForestTree_Ex;
import java.util.Random;
-
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
@@ -9,58 +12,46 @@ import net.minecraft.world.gen.feature.WorldGenBigTree;
import net.minecraft.world.gen.feature.WorldGenTrees;
import net.minecraft.world.gen.feature.WorldGenerator;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
-import gtPlusPlus.xmod.bop.blocks.base.SaplingBase;
-import gtPlusPlus.xmod.bop.world.features.trees.WorldGenRainForestTree_Ex;
-
public class SaplingRainforestTree extends SaplingBase {
- public SaplingRainforestTree(){
- super("Rainforest Oak Sapling", "rainforestoak", new String[]{"rainforest"});
- }
-
- @Override
- public void func_149878_d(World world, int x, int y, int z, Random rand){
- Logger.WARNING("func_149878_d - 1");
- if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
- int l = world.getBlockMetadata(x, y, z) & 7;
- rand.nextInt(10);
- new WorldGenBigTree(true);
- new WorldGenTrees(true);
- int i1 = 0;
- int j1 = 0;
- boolean flag = false;
-
- Block block = Blocks.air;
-
- if (flag)
- {
- world.setBlock(x + i1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
- world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
- world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
- }
- else
- {
- world.setBlock(x, y, z, block, 0, 4);
- }
- Object o = new WorldGenRainForestTree_Ex(BOP_Block_Registrator.log_Rainforest, BOP_Block_Registrator.leaves_Rainforest, 0, 0, true, 50, 75);
-
- if (!((WorldGenerator)o).generate(world, rand, x + i1, y, z + j1))
- {
- if (flag)
- {
- world.setBlock(x + i1, y, z + j1, this, l, 4);
- world.setBlock(x + i1 + 1, y, z + j1, this, l, 4);
- world.setBlock(x + i1, y, z + j1 + 1, this, l, 4);
- world.setBlock(x + i1 + 1, y, z + j1 + 1, this, l, 4);
- }
- else
- {
- world.setBlock(x, y, z, this, l, 4);
- }
- }
- }
-
-} \ No newline at end of file
+ public SaplingRainforestTree() {
+ super("Rainforest Oak Sapling", "rainforestoak", new String[] {"rainforest"});
+ }
+
+ @Override
+ public void func_149878_d(World world, int x, int y, int z, Random rand) {
+ Logger.WARNING("func_149878_d - 1");
+ if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(world, rand, x, y, z)) return;
+ int l = world.getBlockMetadata(x, y, z) & 7;
+ rand.nextInt(10);
+ new WorldGenBigTree(true);
+ new WorldGenTrees(true);
+ int i1 = 0;
+ int j1 = 0;
+ boolean flag = false;
+
+ Block block = Blocks.air;
+
+ if (flag) {
+ world.setBlock(x + i1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1, block, 0, 4);
+ world.setBlock(x + i1, y, z + j1 + 1, block, 0, 4);
+ world.setBlock(x + i1 + 1, y, z + j1 + 1, block, 0, 4);
+ } else {
+ world.setBlock(x, y, z, block, 0, 4);
+ }
+ Object o = new WorldGenRainForestTree_Ex(
+ BOP_Block_Registrator.log_Rainforest, BOP_Block_Registrator.leaves_Rainforest, 0, 0, true, 50, 75);
+
+ if (!((WorldGenerator) o).generate(world, rand, x + i1, y, z + j1)) {
+ if (flag) {
+ world.setBlock(x + i1, y, z + j1, this, l, 4);
+ world.setBlock(x + i1 + 1, y, z + j1, this, l, 4);
+ world.setBlock(x + i1, y, z + j1 + 1, this, l, 4);
+ world.setBlock(x + i1 + 1, y, z + j1 + 1, this, l, 4);
+ } else {
+ world.setBlock(x, y, z, this, l, 4);
+ }
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/creative/MiscUtilsBOPTab.java b/src/main/java/gtPlusPlus/xmod/bop/creative/MiscUtilsBOPTab.java
index d33b19aaf9..a4795efa51 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/creative/MiscUtilsBOPTab.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/creative/MiscUtilsBOPTab.java
@@ -1,20 +1,19 @@
package gtPlusPlus.xmod.bop.creative;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
public class MiscUtilsBOPTab extends CreativeTabs {
- public MiscUtilsBOPTab(final String lable) {
- super(lable);
- }
-
- @Override
- public Item getTabIconItem() {
- return ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest).getItem();
- }
+ public MiscUtilsBOPTab(final String lable) {
+ super(lable);
+ }
+ @Override
+ public Item getTabIconItem() {
+ return ItemUtils.getSimpleStack(BOP_Block_Registrator.sapling_Rainforest)
+ .getItem();
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenPineTree.java b/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenPineTree.java
index 831108ec99..a3f805c710 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenPineTree.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenPineTree.java
@@ -1,9 +1,8 @@
package gtPlusPlus.xmod.bop.world.features.trees;
-import java.util.Random;
-
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.xmod.bop.blocks.BOP_Block_Registrator;
+import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.init.Blocks;
@@ -11,161 +10,160 @@ import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraftforge.common.util.ForgeDirection;
-public class WorldGenPineTree extends WorldGenAbstractTree{
-
- public WorldGenPineTree() {
- super(true);
- }
-
- @Override
- public boolean generate(World world, Random random, int x, int y, int z) {
- while (world.isAirBlock(x, y, z) && y > 2) {
- --y;
- }
-
- Block aSoilBlock = world.getBlock(x, y, z);
-
- if (!canBlockSustainSapling(world, aSoilBlock, x, y, z)) {
- return false;
- } else {
- int height;
- int branches;
- for (height = -2; height <= 2; ++height) {
- for (branches = -2; branches <= 2; ++branches) {
- if (world.isAirBlock(x + height, y - 1, z + branches)
- && world.isAirBlock(x + height, y - 2, z + branches)
- && !world.isAirBlock(x + height, y, z + branches)) {
- return false;
- }
- }
- }
-
- height = 2 + MathUtils.randInt(8, 16);
- branches = 2 + MathUtils.randInt(6, 18);
- int h = 1;
- aSoilBlock.onPlantGrow(world, x, y - 1, z, x, y, z);
-
- int c;
- int r = MathUtils.randInt(1, 3);
- for (c = 0; c < height; ++c) {
- this.buildBlock(world, x, y + h, z, BOP_Block_Registrator.log_Pine, 0);
- h++;
- if (c >= r && c % 2 == 0) {
- this.generateBranch(world, random, x, y + h, z, c);
- }
- }
-
- this.generateTop(world, x, y + h, z);
- return true;
- }
- }
-
- public void generateTop(World world, int x, int y, int z) {
- for (int i = -1; i < 2; ++i) {
- for (int j = -1; j < 2; ++j) {
- this.buildBlock(world, x + i, y, z + j, BOP_Block_Registrator.leaves_Pine, 0);
- }
- }
-
- this.buildBlock(world, x, y, z, BOP_Block_Registrator.log_Pine, 0);
- this.buildBlock(world, x + 1, y + 1, z, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x, y + 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x, y + 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 1, y + 1, z, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x, y + 2, z, BOP_Block_Registrator.leaves_Pine, 0);
- }
-
- public void generateBranch(World world, Random rand, int x, int y, int z, int n) {
- int var99999;
- int var99998;
- for (var99999 = -1; var99999 < 2; ++var99999) {
- for (var99998 = -1; var99998 < 2; ++var99998) {
- this.buildBlock(world, x + var99999, y, z + var99998, BOP_Block_Registrator.leaves_Pine, 0);
- }
- }
-
- var99999 = rand.nextInt(2);
- var99998 = rand.nextInt(2);
- int var99997 = rand.nextInt(2);
- int var99996 = rand.nextInt(2);
- if (n % 2 == 0) {
- if (var99998 == 0) {
- this.buildBlock(world, x + 1, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x + 2, y - 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99999 == 0) {
- this.buildBlock(world, x + 2, y - 2, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x + 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- } else {
- this.buildBlock(world, x + 1, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x + 2, y, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x + 2, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
-
- if (var99997 == 0) {
- this.buildBlock(world, x - 2, y - 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 1, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99996 == 0) {
- this.buildBlock(world, x - 2, y - 2, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x - 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- } else {
- this.buildBlock(world, x - 2, y, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 1, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 2, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- } else {
- if (var99998 == 0) {
- this.buildBlock(world, x + 2, y - 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x + 1, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99999 == 0) {
- this.buildBlock(world, x + 2, y - 2, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x + 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- } else {
- this.buildBlock(world, x + 2, y, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x + 1, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99999 == 0) {
- this.buildBlock(world, x + 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x + 2, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- }
-
- if (var99997 == 0) {
- this.buildBlock(world, x - 1, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 2, y - 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99996 == 0) {
- this.buildBlock(world, x - 2, y - 2, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x - 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- } else {
- this.buildBlock(world, x - 1, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- this.buildBlock(world, x - 2, y, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
- if (var99996 == 0) {
- this.buildBlock(world, x - 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- } else {
- this.buildBlock(world, x - 2, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
- }
- }
- }
-
- this.buildBlock(world, x, y, z, BOP_Block_Registrator.log_Pine, 0);
- this.buildBlock(world, x, y + 1, z, BOP_Block_Registrator.log_Pine, 0);
- }
-
- public void buildBlock(World world, int x, int y, int z, Block block, int meta) {
- if (world.isAirBlock(x, y, z) || world.getBlock(x, y, z).isLeaves(world, x, y, z)) {
- world.setBlock(x, y, z, block, meta, 2);
- }
- }
-
- public boolean canBlockSustainSapling(World world, Block block, int x, int y, int z) {
- return block.canSustainPlant(world, x, y, z, ForgeDirection.UP, (BlockSapling)Blocks.sapling);
- }
-
+public class WorldGenPineTree extends WorldGenAbstractTree {
+
+ public WorldGenPineTree() {
+ super(true);
+ }
+
+ @Override
+ public boolean generate(World world, Random random, int x, int y, int z) {
+ while (world.isAirBlock(x, y, z) && y > 2) {
+ --y;
+ }
+
+ Block aSoilBlock = world.getBlock(x, y, z);
+
+ if (!canBlockSustainSapling(world, aSoilBlock, x, y, z)) {
+ return false;
+ } else {
+ int height;
+ int branches;
+ for (height = -2; height <= 2; ++height) {
+ for (branches = -2; branches <= 2; ++branches) {
+ if (world.isAirBlock(x + height, y - 1, z + branches)
+ && world.isAirBlock(x + height, y - 2, z + branches)
+ && !world.isAirBlock(x + height, y, z + branches)) {
+ return false;
+ }
+ }
+ }
+
+ height = 2 + MathUtils.randInt(8, 16);
+ branches = 2 + MathUtils.randInt(6, 18);
+ int h = 1;
+ aSoilBlock.onPlantGrow(world, x, y - 1, z, x, y, z);
+
+ int c;
+ int r = MathUtils.randInt(1, 3);
+ for (c = 0; c < height; ++c) {
+ this.buildBlock(world, x, y + h, z, BOP_Block_Registrator.log_Pine, 0);
+ h++;
+ if (c >= r && c % 2 == 0) {
+ this.generateBranch(world, random, x, y + h, z, c);
+ }
+ }
+
+ this.generateTop(world, x, y + h, z);
+ return true;
+ }
+ }
+
+ public void generateTop(World world, int x, int y, int z) {
+ for (int i = -1; i < 2; ++i) {
+ for (int j = -1; j < 2; ++j) {
+ this.buildBlock(world, x + i, y, z + j, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ }
+
+ this.buildBlock(world, x, y, z, BOP_Block_Registrator.log_Pine, 0);
+ this.buildBlock(world, x + 1, y + 1, z, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x, y + 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x, y + 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 1, y + 1, z, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x, y + 2, z, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+
+ public void generateBranch(World world, Random rand, int x, int y, int z, int n) {
+ int var99999;
+ int var99998;
+ for (var99999 = -1; var99999 < 2; ++var99999) {
+ for (var99998 = -1; var99998 < 2; ++var99998) {
+ this.buildBlock(world, x + var99999, y, z + var99998, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ }
+
+ var99999 = rand.nextInt(2);
+ var99998 = rand.nextInt(2);
+ int var99997 = rand.nextInt(2);
+ int var99996 = rand.nextInt(2);
+ if (n % 2 == 0) {
+ if (var99998 == 0) {
+ this.buildBlock(world, x + 1, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x + 2, y - 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99999 == 0) {
+ this.buildBlock(world, x + 2, y - 2, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x + 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ } else {
+ this.buildBlock(world, x + 1, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x + 2, y, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x + 2, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+
+ if (var99997 == 0) {
+ this.buildBlock(world, x - 2, y - 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 1, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99996 == 0) {
+ this.buildBlock(world, x - 2, y - 2, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x - 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ } else {
+ this.buildBlock(world, x - 2, y, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 1, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 2, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ } else {
+ if (var99998 == 0) {
+ this.buildBlock(world, x + 2, y - 1, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x + 1, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99999 == 0) {
+ this.buildBlock(world, x + 2, y - 2, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x + 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ } else {
+ this.buildBlock(world, x + 2, y, z + 1, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x + 1, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99999 == 0) {
+ this.buildBlock(world, x + 2, y - 1, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x + 2, y, z + 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ }
+
+ if (var99997 == 0) {
+ this.buildBlock(world, x - 1, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 2, y - 1, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99996 == 0) {
+ this.buildBlock(world, x - 2, y - 2, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x - 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ } else {
+ this.buildBlock(world, x - 1, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ this.buildBlock(world, x - 2, y, z - 1, BOP_Block_Registrator.leaves_Pine, 0);
+ if (var99996 == 0) {
+ this.buildBlock(world, x - 2, y - 1, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ } else {
+ this.buildBlock(world, x - 2, y, z - 2, BOP_Block_Registrator.leaves_Pine, 0);
+ }
+ }
+ }
+
+ this.buildBlock(world, x, y, z, BOP_Block_Registrator.log_Pine, 0);
+ this.buildBlock(world, x, y + 1, z, BOP_Block_Registrator.log_Pine, 0);
+ }
+
+ public void buildBlock(World world, int x, int y, int z, Block block, int meta) {
+ if (world.isAirBlock(x, y, z) || world.getBlock(x, y, z).isLeaves(world, x, y, z)) {
+ world.setBlock(x, y, z, block, meta, 2);
+ }
+ }
+
+ public boolean canBlockSustainSapling(World world, Block block, int x, int y, int z) {
+ return block.canSustainPlant(world, x, y, z, ForgeDirection.UP, (BlockSapling) Blocks.sapling);
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenRainForestTree_Ex.java b/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenRainForestTree_Ex.java
index fa29f99655..cdd14b9c71 100644
--- a/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenRainForestTree_Ex.java
+++ b/src/main/java/gtPlusPlus/xmod/bop/world/features/trees/WorldGenRainForestTree_Ex.java
@@ -1,246 +1,268 @@
package gtPlusPlus.xmod.bop.world.features.trees;
+import gtPlusPlus.api.objects.Logger;
import java.util.Random;
-
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
-
-import gtPlusPlus.api.objects.Logger;
import net.minecraftforge.common.util.ForgeDirection;
-public class WorldGenRainForestTree_Ex extends WorldGenAbstractTree{
-
- private final int minTreeHeight;
- private final int randomTreeHeight;
- private final Block wood;
- private final Block leaves;
- private final int woodMeta;
- private final int leavesMeta;
-
- // return random.nextInt(5) == 0 ? new WorldGenTrees(false, 4 + random.nextInt(7), 3, 3, true) : new WorldGenRainforestTree1(BOPCBlocks.logs4, BOPCBlocks.colorizedLeaves2, 3, 2, false, 8, 8);
+public class WorldGenRainForestTree_Ex extends WorldGenAbstractTree {
- public WorldGenRainForestTree_Ex(Block wood, Block leaves, int woodMeta, int leavesMeta, boolean doBlockNotify, int minTreeHeight, int randomTreeHeight) {
- super(doBlockNotify);
- this.wood = wood;
- this.leaves = leaves;
- this.woodMeta = woodMeta;
- this.leavesMeta = leavesMeta;
- this.minTreeHeight = minTreeHeight;
- this.randomTreeHeight = randomTreeHeight;
- }
+ private final int minTreeHeight;
+ private final int randomTreeHeight;
+ private final Block wood;
+ private final Block leaves;
+ private final int woodMeta;
+ private final int leavesMeta;
- @Override
- public boolean generate(World world, Random random, int x, int y, int z)
- {
- int treeHeight = random.nextInt(this.randomTreeHeight) + this.minTreeHeight;
- boolean flag = true;
- if ((y >= 1) && (y + treeHeight + 1 <= 256))
- {
- for (int i1 = y; i1 <= y + 1 + treeHeight; i1++)
- {
- byte b0 = 1;
- if (i1 == y) {
- b0 = 0;
- }
- if (i1 >= y + 1 + treeHeight - 2) {
- b0 = 2;
- }
- for (int j1 = x - b0; (j1 <= x + b0) && (flag); j1++) {
- for (int k1 = z - b0; (k1 <= z + b0) && (flag); k1++) {
- if ((i1 >= 0) && (i1 < 256))
- {
- Block block = world.getBlock(j1, i1, k1);
- if (!isReplaceable(world, j1, i1, k1)) {
- flag = false;
- }
- }
- else
- {
- flag = false;
- }
- }
- }
- }
- if (!flag) {
- return false;
- }
- Block block2 = world.getBlock(x, y - 1, z);
+ // return random.nextInt(5) == 0 ? new WorldGenTrees(false, 4 + random.nextInt(7), 3, 3, true) : new
+ // WorldGenRainforestTree1(BOPCBlocks.logs4, BOPCBlocks.colorizedLeaves2, 3, 2, false, 8, 8);
- boolean isSoil = block2.canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, (BlockSapling)Blocks.sapling);
- if ((isSoil) && (y < 256 - treeHeight - 1))
- {
- block2.onPlantGrow(world, x, y - 1, z, x, y, z);
- byte b0 = 3;
- byte b1 = 0;
- Logger.WARNING("Sapling located at X:"+x+" | Y:"+y+" | Z:"+z);
- for (int k1 = y - b0 + treeHeight; k1 <= y + treeHeight; k1++)
- {
- Logger.WARNING("[1]| k1 = "+k1+" | y = "+y+" | b0 = "+b0+" | l = "+treeHeight+" | ");
- int i3 = k1 - (y + treeHeight);
- int l1 = b1 + 1 - i3;
- for (int i2 = x - l1; i2 <= x + l1; i2++){
- int j2 = i2 - x;
- Logger.WARNING("[2]| i2 = "+i2+" | x = "+x+" | l1 = "+l1+" | j2 = "+j2+" | ");
- for (int k2 = z - l1; k2 <= z + l1; k2++){
- int l2 = k2 - z;
- Logger.WARNING("[3]| k2 = "+k2+" | z = "+z+" | l1 = "+l1+" | l2 = "+l2+" | ");
- if ((Math.abs(j2) != l1) || (Math.abs(l2) != l1) || ((random.nextInt(2) != 0) && (i3 != 0)))
- {
- Block block1 = world.getBlock(i2, k1, k2);
- if ((block1.isAir(world, i2, k1, k2)) || (block1.isLeaves(world, i2, k1, k2))) {
- Logger.WARNING("Setting something as leaves?");
- setBlockAndNotifyAdequately(world, i2, k1, k2, this.leaves, this.leavesMeta);
- }
- }
- }
- }
- }
- for (int k1 = 0; k1 < treeHeight; k1++)
- {
- Logger.WARNING("Building tree - Layer "+k1+" | Max height is "+treeHeight);
- Block block = world.getBlock(x, y + k1, z);
- if ((block.isAir(world, x, y + k1, z)) || (block.isLeaves(world, x, y + k1, z))){
- setBlockAndNotifyAdequately(world, x, y + k1, z, this.wood, this.woodMeta);
+ public WorldGenRainForestTree_Ex(
+ Block wood,
+ Block leaves,
+ int woodMeta,
+ int leavesMeta,
+ boolean doBlockNotify,
+ int minTreeHeight,
+ int randomTreeHeight) {
+ super(doBlockNotify);
+ this.wood = wood;
+ this.leaves = leaves;
+ this.woodMeta = woodMeta;
+ this.leavesMeta = leavesMeta;
+ this.minTreeHeight = minTreeHeight;
+ this.randomTreeHeight = randomTreeHeight;
+ }
- //Trying this to make trunk
- setBlockAndNotifyAdequately(world, x, y + k1, z+1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + k1, z-1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x+1, y + k1, z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x-1, y + k1, z, this.wood, this.woodMeta);
+ @Override
+ public boolean generate(World world, Random random, int x, int y, int z) {
+ int treeHeight = random.nextInt(this.randomTreeHeight) + this.minTreeHeight;
+ boolean flag = true;
+ if ((y >= 1) && (y + treeHeight + 1 <= 256)) {
+ for (int i1 = y; i1 <= y + 1 + treeHeight; i1++) {
+ byte b0 = 1;
+ if (i1 == y) {
+ b0 = 0;
+ }
+ if (i1 >= y + 1 + treeHeight - 2) {
+ b0 = 2;
+ }
+ for (int j1 = x - b0; (j1 <= x + b0) && (flag); j1++) {
+ for (int k1 = z - b0; (k1 <= z + b0) && (flag); k1++) {
+ if ((i1 >= 0) && (i1 < 256)) {
+ Block block = world.getBlock(j1, i1, k1);
+ if (!isReplaceable(world, j1, i1, k1)) {
+ flag = false;
+ }
+ } else {
+ flag = false;
+ }
+ }
+ }
+ }
+ if (!flag) {
+ return false;
+ }
+ Block block2 = world.getBlock(x, y - 1, z);
+ boolean isSoil =
+ block2.canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, (BlockSapling) Blocks.sapling);
+ if ((isSoil) && (y < 256 - treeHeight - 1)) {
+ block2.onPlantGrow(world, x, y - 1, z, x, y, z);
+ byte b0 = 3;
+ byte b1 = 0;
+ Logger.WARNING("Sapling located at X:" + x + " | Y:" + y + " | Z:" + z);
+ for (int k1 = y - b0 + treeHeight; k1 <= y + treeHeight; k1++) {
+ Logger.WARNING(
+ "[1]| k1 = " + k1 + " | y = " + y + " | b0 = " + b0 + " | l = " + treeHeight + " | ");
+ int i3 = k1 - (y + treeHeight);
+ int l1 = b1 + 1 - i3;
+ for (int i2 = x - l1; i2 <= x + l1; i2++) {
+ int j2 = i2 - x;
+ Logger.WARNING("[2]| i2 = " + i2 + " | x = " + x + " | l1 = " + l1 + " | j2 = " + j2 + " | ");
+ for (int k2 = z - l1; k2 <= z + l1; k2++) {
+ int l2 = k2 - z;
+ Logger.WARNING(
+ "[3]| k2 = " + k2 + " | z = " + z + " | l1 = " + l1 + " | l2 = " + l2 + " | ");
+ if ((Math.abs(j2) != l1)
+ || (Math.abs(l2) != l1)
+ || ((random.nextInt(2) != 0) && (i3 != 0))) {
+ Block block1 = world.getBlock(i2, k1, k2);
+ if ((block1.isAir(world, i2, k1, k2)) || (block1.isLeaves(world, i2, k1, k2))) {
+ Logger.WARNING("Setting something as leaves?");
+ setBlockAndNotifyAdequately(world, i2, k1, k2, this.leaves, this.leavesMeta);
+ }
+ }
+ }
+ }
+ }
+ for (int k1 = 0; k1 < treeHeight; k1++) {
+ Logger.WARNING("Building tree - Layer " + k1 + " | Max height is " + treeHeight);
+ Block block = world.getBlock(x, y + k1, z);
+ if ((block.isAir(world, x, y + k1, z)) || (block.isLeaves(world, x, y + k1, z))) {
+ setBlockAndNotifyAdequately(world, x, y + k1, z, this.wood, this.woodMeta);
- if (k1 >= 5){
- if (k1 % 5 == 0){
- //Bottom layer
- Block block5 = world.getBlock(x, y + k1, z);
- for (int xDir = -5; xDir <= 5; xDir++){
- for (int zDir = -5; zDir <= 5; zDir++){
- if (canRemoveLeafBlockLayer2(-5, 5, xDir, -5, 5, zDir)){
- Logger.WARNING("Doing Nothing at "+"x="+xDir+" | y="+y+" z="+zDir);
- }
- else {
- Logger.WARNING("Trying to place leaves at "+"x="+xDir+" | y="+y+" z="+zDir);
- block5 = world.getBlock(x+xDir, y+k1, z+zDir);
- if (block5.isAir(world, x+xDir, y+k1, x+zDir)){
- setBlockAndNotifyAdequately(world, x+xDir, y + k1, z+zDir, this.leaves, this.leavesMeta);
- }
- }
- }
- }
- //Next Layer
- for (int xDir = -4; xDir <= 4; xDir++){
- for (int zDir = -4; zDir <= 4; zDir++){
- if (canRemoveLeafBlockLayer2(-4, 4, xDir, -4, 4, zDir)){
- Logger.WARNING("Doing Nothing at "+"x="+xDir+" | y="+y+k1+1+" z="+zDir);
- }
- else {
- Logger.WARNING("Trying to place leaves at "+"x="+xDir+" | y="+y + k1 + 1+" z="+zDir);
- block5 = world.getBlock(x+xDir, y+k1 + 1, z+zDir);
- if (block5.isAir(world, x+xDir, y+k1 + 1, x+zDir)){
- setBlockAndNotifyAdequately(world, x+xDir, y + k1 + 1, z+zDir, this.leaves, this.leavesMeta);
- }
- }
- }
- }
+ // Trying this to make trunk
+ setBlockAndNotifyAdequately(world, x, y + k1, z + 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + k1, z - 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 1, y + k1, z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x - 1, y + k1, z, this.wood, this.woodMeta);
- //Third Layer
- for (int xDir = -3; xDir <= 3; xDir++){
- for (int zDir = -3; zDir <= 3; zDir++){
- if (canRemoveLeafBlockLayer2(-3, 3, xDir, -3, 3, zDir)){
- Logger.WARNING("Doing Nothing at "+"x="+xDir+" | y="+y+k1+2+" z="+zDir);
- }
- else {
- Logger.WARNING("Trying to place leaves at "+"x="+xDir+" | y="+y+k1+2+" z="+zDir);
- block5 = world.getBlock(x+xDir, y+k1+2, z+zDir);
- if (block5.isAir(world, x+xDir, y+k1+2, x+zDir)){
- setBlockAndNotifyAdequately(world, x+xDir, y + k1 + 2, z+zDir, this.leaves, this.leavesMeta);
- }
- }
- }
- }
+ if (k1 >= 5) {
+ if (k1 % 5 == 0) {
+ // Bottom layer
+ Block block5 = world.getBlock(x, y + k1, z);
+ for (int xDir = -5; xDir <= 5; xDir++) {
+ for (int zDir = -5; zDir <= 5; zDir++) {
+ if (canRemoveLeafBlockLayer2(-5, 5, xDir, -5, 5, zDir)) {
+ Logger.WARNING(
+ "Doing Nothing at " + "x=" + xDir + " | y=" + y + " z=" + zDir);
+ } else {
+ Logger.WARNING("Trying to place leaves at " + "x=" + xDir + " | y=" + y
+ + " z=" + zDir);
+ block5 = world.getBlock(x + xDir, y + k1, z + zDir);
+ if (block5.isAir(world, x + xDir, y + k1, x + zDir)) {
+ setBlockAndNotifyAdequately(
+ world,
+ x + xDir,
+ y + k1,
+ z + zDir,
+ this.leaves,
+ this.leavesMeta);
+ }
+ }
+ }
+ }
+ // Next Layer
+ for (int xDir = -4; xDir <= 4; xDir++) {
+ for (int zDir = -4; zDir <= 4; zDir++) {
+ if (canRemoveLeafBlockLayer2(-4, 4, xDir, -4, 4, zDir)) {
+ Logger.WARNING("Doing Nothing at " + "x=" + xDir + " | y=" + y + k1 + 1
+ + " z=" + zDir);
+ } else {
+ Logger.WARNING("Trying to place leaves at " + "x=" + xDir + " | y=" + y + k1
+ + 1 + " z=" + zDir);
+ block5 = world.getBlock(x + xDir, y + k1 + 1, z + zDir);
+ if (block5.isAir(world, x + xDir, y + k1 + 1, x + zDir)) {
+ setBlockAndNotifyAdequately(
+ world,
+ x + xDir,
+ y + k1 + 1,
+ z + zDir,
+ this.leaves,
+ this.leavesMeta);
+ }
+ }
+ }
+ }
- //Fourth Layer
- for (int xDir = -2; xDir <= 2; xDir++){
- for (int zDir = -2; zDir <= 2; zDir++){
- if (canRemoveLeafBlockLayer2(-2, 2, xDir, -2, 2, zDir)){
- Logger.WARNING("Doing Nothing at "+"x="+xDir+" | y="+y+k1+3+" z="+zDir);
- }
- else {
- Logger.WARNING("Trying to place leaves at "+"x="+xDir+" | y="+y+k1+3+" z="+zDir);
- block5 = world.getBlock(x+xDir, y+k1+3, z+zDir);
- if (block5.isAir(world, x+xDir, y+k1+3, x+zDir)){
- setBlockAndNotifyAdequately(world, x+xDir, y + k1 + 3, z+zDir, this.leaves, this.leavesMeta);
- }
- }
- }
- }
- }
- else {
+ // Third Layer
+ for (int xDir = -3; xDir <= 3; xDir++) {
+ for (int zDir = -3; zDir <= 3; zDir++) {
+ if (canRemoveLeafBlockLayer2(-3, 3, xDir, -3, 3, zDir)) {
+ Logger.WARNING("Doing Nothing at " + "x=" + xDir + " | y=" + y + k1 + 2
+ + " z=" + zDir);
+ } else {
+ Logger.WARNING("Trying to place leaves at " + "x=" + xDir + " | y=" + y + k1
+ + 2 + " z=" + zDir);
+ block5 = world.getBlock(x + xDir, y + k1 + 2, z + zDir);
+ if (block5.isAir(world, x + xDir, y + k1 + 2, x + zDir)) {
+ setBlockAndNotifyAdequately(
+ world,
+ x + xDir,
+ y + k1 + 2,
+ z + zDir,
+ this.leaves,
+ this.leavesMeta);
+ }
+ }
+ }
+ }
- }
- }
+ // Fourth Layer
+ for (int xDir = -2; xDir <= 2; xDir++) {
+ for (int zDir = -2; zDir <= 2; zDir++) {
+ if (canRemoveLeafBlockLayer2(-2, 2, xDir, -2, 2, zDir)) {
+ Logger.WARNING("Doing Nothing at " + "x=" + xDir + " | y=" + y + k1 + 3
+ + " z=" + zDir);
+ } else {
+ Logger.WARNING("Trying to place leaves at " + "x=" + xDir + " | y=" + y + k1
+ + 3 + " z=" + zDir);
+ block5 = world.getBlock(x + xDir, y + k1 + 3, z + zDir);
+ if (block5.isAir(world, x + xDir, y + k1 + 3, x + zDir)) {
+ setBlockAndNotifyAdequately(
+ world,
+ x + xDir,
+ y + k1 + 3,
+ z + zDir,
+ this.leaves,
+ this.leavesMeta);
+ }
+ }
+ }
+ }
+ } else {
- setBlockAndNotifyAdequately(world, x - 3, y + (treeHeight - 3), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x + 3, y + (treeHeight - 3), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z - 3, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z + 3, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x - 2, y + (treeHeight - 4), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x + 2, y + (treeHeight - 4), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 4), z - 2, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 4), z + 2, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x - 2, y + (treeHeight - 5), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x + 2, y + (treeHeight - 5), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 5), z - 2, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 5), z + 2, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x - 1, y + (treeHeight - 6), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x + 1, y + (treeHeight - 6), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 6), z - 1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 6), z + 1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z, this.leaves, this.leavesMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 2), z, this.leaves, this.leavesMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 1), z, this.leaves, this.leavesMeta);
- setBlockAndNotifyAdequately(world, x, y + treeHeight, z, this.leaves, this.leavesMeta);
- func_150515_a(world, x, y + (treeHeight - 4), z, Blocks.air);
- func_150515_a(world, x, y + (treeHeight - 5), z, Blocks.air);
- setBlockAndNotifyAdequately(world, x - 1, y + (treeHeight - 3), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x + 1, y + (treeHeight - 3), z, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z - 1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z + 1, this.wood, this.woodMeta);
- setBlockAndNotifyAdequately(world, x, y + (treeHeight - 2), z, this.wood, this.woodMeta);
- }
- }
- return true;
- }
- return false;
- }
- return false;
- }
+ }
+ }
- private boolean canRemoveLeafBlockLayer2(int xDirMin, int xDirMax, int xDir, int zDirMin, int zDirMax, int zDir){
- if (xDir == xDirMin || xDir == xDirMin +1 || xDir == xDirMax || xDir == xDirMax - 1){
- if (zDir == zDirMin || zDir == zDirMin + 1 || zDir == zDirMax || zDir == zDirMax - 1){
- if (xDir == xDirMin + 1 && zDir == zDirMin + 1){
- return false;
- }
- else if (xDir == xDirMin + 1 && zDir == zDirMax - 1){
- return false;
- }
- else if (xDir == xDirMax - 1 && zDir == zDirMin + 1){
- return false;
- }
- else if (xDir == xDirMax - 1 && zDir == zDirMax - 1){
- return false;
- }
- return true;
- }
- return false;
- }
- else {
- return false;
- }
- }
+ setBlockAndNotifyAdequately(world, x - 3, y + (treeHeight - 3), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 3, y + (treeHeight - 3), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z - 3, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z + 3, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x - 2, y + (treeHeight - 4), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 2, y + (treeHeight - 4), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 4), z - 2, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 4), z + 2, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x - 2, y + (treeHeight - 5), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 2, y + (treeHeight - 5), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 5), z - 2, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 5), z + 2, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x - 1, y + (treeHeight - 6), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 1, y + (treeHeight - 6), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 6), z - 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 6), z + 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z, this.leaves, this.leavesMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 2), z, this.leaves, this.leavesMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 1), z, this.leaves, this.leavesMeta);
+ setBlockAndNotifyAdequately(world, x, y + treeHeight, z, this.leaves, this.leavesMeta);
+ func_150515_a(world, x, y + (treeHeight - 4), z, Blocks.air);
+ func_150515_a(world, x, y + (treeHeight - 5), z, Blocks.air);
+ setBlockAndNotifyAdequately(world, x - 1, y + (treeHeight - 3), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x + 1, y + (treeHeight - 3), z, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z - 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 3), z + 1, this.wood, this.woodMeta);
+ setBlockAndNotifyAdequately(world, x, y + (treeHeight - 2), z, this.wood, this.woodMeta);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ return false;
+ }
+ private boolean canRemoveLeafBlockLayer2(int xDirMin, int xDirMax, int xDir, int zDirMin, int zDirMax, int zDir) {
+ if (xDir == xDirMin || xDir == xDirMin + 1 || xDir == xDirMax || xDir == xDirMax - 1) {
+ if (zDir == zDirMin || zDir == zDirMin + 1 || zDir == zDirMax || zDir == zDirMax - 1) {
+ if (xDir == xDirMin + 1 && zDir == zDirMin + 1) {
+ return false;
+ } else if (xDir == xDirMin + 1 && zDir == zDirMax - 1) {
+ return false;
+ } else if (xDir == xDirMax - 1 && zDir == zDirMin + 1) {
+ return false;
+ } else if (xDir == xDirMax - 1 && zDir == zDirMax - 1) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ } else {
+ return false;
+ }
+ }
}