Compare commits

...
6 Commits
Author SHA1 Message Date
mezz 19a9c2681c Bump version to 4.0.2 2015-09-29 00:40:19 -07:00
mezz f020dcf2e2 Fix breaking change to the API in IMutation 2015-09-29 00:30:42 -07:00
mezz dd34765223 Bump version to 4.0.1 2015-09-28 23:47:54 -07:00
mezz 3253077466 Fix #854 OpenGL transparency issues 2015-09-28 23:45:18 -07:00
mezz 8743f29613 Fix #851 Add a way to get wood items from the API 2015-09-27 19:35:46 -07:00
mezz 0b6b201366 Fix bug in implementation of tryAddStack 2015-09-26 23:12:11 -07:00
30 changed files with 398 additions and 402 deletions

No files matched your search

+1 -1
View File
@@ -2,4 +2,4 @@ mcversion=1.7.10
forgeversion=10.13.3.1370-1.7.10
version_major=4
version_minor=0
version_patch=0
version_patch=2
@@ -33,12 +33,13 @@ import forestry.api.apiculture.FlowerManager;
import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.api.apiculture.IBee;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IFlower;
import forestry.apiculture.tiles.TileApiary;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.worldgen.BlockTypeLog;
import forestry.arboriculture.worldgen.BlockTypeVanillaStairs;
import forestry.arboriculture.worldgen.BlockTypeWood;
@@ -79,12 +80,14 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 {
boolean fireproof = (random.nextInt(4) == 0);
WoodType roofWood = WoodType.getRandom(random);
EnumWoodType roofWood = EnumWoodType.getRandom(random);
EnumWoodType logWood = EnumWoodType.getRandom(random);
EnumWoodType fenceWood = EnumWoodType.getRandom(random);
logs = new BlockTypeLog(WoodType.getRandom(random).getLog(fireproof));
planks = new BlockTypeWood(roofWood.getPlanks(fireproof));
stairs = new BlockTypeWoodStairs(roofWood.getStairs(fireproof));
fence = new BlockTypeWood(WoodType.getRandom(random).getFence(fireproof));
logs = new BlockTypeLog(TreeManager.woodItemAccess.getLog(logWood, fireproof));
planks = new BlockTypeWood(TreeManager.woodItemAccess.getPlanks(roofWood, fireproof));
stairs = new BlockTypeWoodStairs(TreeManager.woodItemAccess.getStairs(roofWood, fireproof));
fence = new BlockTypeWood(TreeManager.woodItemAccess.getFence(fenceWood, fireproof));
} else {
int roofMeta = random.nextInt(16);
@@ -21,6 +21,7 @@ import net.minecraft.village.MerchantRecipeList;
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.ITree;
import forestry.api.arboriculture.ITreeGenome;
import forestry.api.arboriculture.TreeManager;
@@ -40,8 +41,8 @@ public class VillageHandlerArboriculture implements IVillageTradeHandler {
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 8), randomTreeStack));
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 2), ForestryItem.grafterProven.getItemStack()));
WoodType randomWoodType = WoodType.VALUES[random.nextInt(WoodType.VALUES.length)];
ItemStack planks = randomWoodType.getPlanks(false);
EnumWoodType randomWoodType = EnumWoodType.getRandom(random);
ItemStack planks = TreeManager.woodItemAccess.getPlanks(randomWoodType, false);
planks.stackSize = 32;
recipeList.add(new MerchantRecipe(new ItemStack(Items.emerald, 1), planks));
@@ -0,0 +1,133 @@
/*******************************************************************************
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.arboriculture;
import java.util.EnumMap;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.IWoodItemAccess;
public class WoodItemAccess implements IWoodItemAccess {
private static final EnumMap<EnumWoodType, ItemStack> logs = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> logsFireproof = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> planks = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> planksFireproof = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> slabs = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> slabsFireproof = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> fences = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> fencesFireproof = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> stairs = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static final EnumMap<EnumWoodType, ItemStack> stairsFireproof = new EnumMap<EnumWoodType, ItemStack>(EnumWoodType.class);
private static ItemStack getStack(EnumWoodType woodType, Block block) {
NBTTagCompound woodNBT = new NBTTagCompound();
woodType.saveToCompound(woodNBT);
ItemStack itemStack = new ItemStack(block);
itemStack.setTagCompound(woodNBT);
return itemStack;
}
public static void registerLog(Block block, EnumWoodType woodType, boolean fireproof) {
ItemStack itemStack = getStack(woodType, block);
if (fireproof) {
logsFireproof.put(woodType, itemStack);
} else {
logs.put(woodType, itemStack);
}
}
public static void registerPlanks(Block block, EnumWoodType woodType, boolean fireproof) {
ItemStack itemStack = getStack(woodType, block);
if (fireproof) {
planksFireproof.put(woodType, itemStack);
} else {
planks.put(woodType, itemStack);
}
}
public static void registerSlab(Block block, EnumWoodType woodType, boolean fireproof) {
ItemStack itemStack = getStack(woodType, block);
if (fireproof) {
slabsFireproof.put(woodType, itemStack);
} else {
slabs.put(woodType, itemStack);
}
}
public static void registerFence(Block block, EnumWoodType woodType, boolean fireproof) {
ItemStack itemStack = getStack(woodType, block);
if (fireproof) {
fencesFireproof.put(woodType, itemStack);
} else {
fences.put(woodType, itemStack);
}
}
public static void registerStairs(Block block, EnumWoodType woodType, boolean fireproof) {
ItemStack itemStack = getStack(woodType, block);
if (fireproof) {
stairsFireproof.put(woodType, itemStack);
} else {
stairs.put(woodType, itemStack);
}
}
@Override
public ItemStack getPlanks(EnumWoodType woodType, boolean fireproof) {
if (fireproof) {
return planksFireproof.get(woodType).copy();
} else {
return planks.get(woodType).copy();
}
}
@Override
public ItemStack getLog(EnumWoodType woodType, boolean fireproof) {
if (fireproof) {
return logsFireproof.get(woodType).copy();
} else {
return logs.get(woodType).copy();
}
}
@Override
public ItemStack getSlab(EnumWoodType woodType, boolean fireproof) {
if (fireproof) {
return slabsFireproof.get(woodType).copy();
} else {
return slabs.get(woodType).copy();
}
}
@Override
public ItemStack getFence(EnumWoodType woodType, boolean fireproof) {
if (fireproof) {
return fencesFireproof.get(woodType).copy();
} else {
return fences.get(woodType).copy();
}
}
@Override
public ItemStack getStairs(EnumWoodType woodType, boolean fireproof) {
if (fireproof) {
return stairsFireproof.get(woodType).copy();
} else {
return stairs.get(woodType).copy();
}
}
}
@@ -1,241 +0,0 @@
/*******************************************************************************
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.arboriculture;
import java.util.Locale;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.core.render.TextureManager;
public enum WoodType {
LARCH, TEAK, ACACIA, LIME,
CHESTNUT, WENGE, BAOBAB, SEQUOIA(4.0f),
KAPOK, EBONY, MAHOGANY, BALSA(1.0f),
WILLOW, WALNUT, GREENHEART(7.5f), CHERRY,
MAHOE, POPLAR, PALM, PAPAYA,
PINE(3.0f), PLUM, MAPLE, CITRUS,
GIGANTEUM, IPE, PADAUK, COCOBOLO,
ZEBRAWOOD;
public static final float DEFAULT_HARDNESS = 2.0f;
public static final WoodType[] VALUES = values();
private final float hardness;
private ItemStack log;
private ItemStack logFireproof;
private ItemStack planks;
private ItemStack planksFireproof;
private ItemStack slab;
private ItemStack slabFireproof;
private ItemStack fence;
private ItemStack fenceFireproof;
private ItemStack stairs;
private ItemStack stairsFireproof;
WoodType() {
this(DEFAULT_HARDNESS);
}
WoodType(float hardness) {
this.hardness = hardness;
}
@SideOnly(Side.CLIENT)
private static IIcon[][] icons;
@SideOnly(Side.CLIENT)
public static void registerIcons(IIconRegister register) {
icons = new IIcon[3][VALUES.length];
for (int i = 0; i < VALUES.length; i++) {
WoodType woodType = VALUES[i];
String woodName = woodType.toString().toLowerCase(Locale.ENGLISH);
icons[0][i] = TextureManager.getInstance().registerTex(register, "wood/planks." + woodName);
icons[1][i] = TextureManager.getInstance().registerTex(register, "wood/bark." + woodName);
icons[2][i] = TextureManager.getInstance().registerTex(register, "wood/heart." + woodName);
}
}
@SideOnly(Side.CLIENT)
public IIcon getPlankIcon() {
return icons[0][ordinal()];
}
@SideOnly(Side.CLIENT)
public IIcon getBarkIcon() {
return icons[1][ordinal()];
}
@SideOnly(Side.CLIENT)
public IIcon getHeartIcon() {
return icons[2][ordinal()];
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(int meta, int side) {
int oriented = meta & 12;
switch (oriented) {
case 4:
if (side > 3) {
return getHeartIcon();
} else {
return getBarkIcon();
}
case 8:
if (side == 2 || side == 3) {
return getHeartIcon();
} else {
return getBarkIcon();
}
case 0:
default:
if (side < 2) {
return getHeartIcon();
} else {
return getBarkIcon();
}
}
}
public float getHardness() {
return hardness;
}
public void saveToCompound(NBTTagCompound compound) {
compound.setInteger("WoodType", this.ordinal());
}
public static WoodType getFromCompound(NBTTagCompound compound) {
if (compound != null) {
int typeOrdinal = compound.getInteger("WoodType");
if (typeOrdinal < WoodType.VALUES.length) {
return WoodType.VALUES[typeOrdinal];
}
}
return WoodType.LARCH;
}
@Override
public String toString() {
return super.toString().toLowerCase(Locale.ENGLISH);
}
private ItemStack getStack(Block block) {
NBTTagCompound woodNBT = new NBTTagCompound();
saveToCompound(woodNBT);
ItemStack itemStack = new ItemStack(block);
itemStack.setTagCompound(woodNBT);
return itemStack;
}
public void registerLog(Block block, boolean fireproof) {
ItemStack itemStack = getStack(block);
if (fireproof) {
this.logFireproof = itemStack;
} else {
this.log = itemStack;
}
}
public void registerPlanks(Block block, boolean fireproof) {
ItemStack itemStack = getStack(block);
if (fireproof) {
this.planksFireproof = itemStack;
} else {
this.planks = itemStack;
}
}
public void registerSlab(Block block, boolean fireproof) {
ItemStack itemStack = getStack(block);
if (fireproof) {
this.slabFireproof = itemStack;
} else {
this.slab = itemStack;
}
}
public void registerFence(Block block, boolean fireproof) {
ItemStack itemStack = getStack(block);
if (fireproof) {
this.fenceFireproof = itemStack;
} else {
this.fence = itemStack;
}
}
public void registerStairs(Block block, boolean fireproof) {
ItemStack itemStack = getStack(block);
if (fireproof) {
this.stairsFireproof = itemStack;
} else {
this.stairs = itemStack;
}
}
public ItemStack getPlanks(boolean fireproof) {
if (fireproof) {
return planksFireproof.copy();
} else {
return planks.copy();
}
}
public ItemStack getLog(boolean fireproof) {
if (fireproof) {
return logFireproof.copy();
} else {
return log.copy();
}
}
public ItemStack getSlab(boolean fireproof) {
if (fireproof) {
return slabFireproof.copy();
} else {
return slab.copy();
}
}
public ItemStack getFence(boolean fireproof) {
if (fireproof) {
return fenceFireproof.copy();
} else {
return fence.copy();
}
}
public ItemStack getStairs(boolean fireproof) {
if (fireproof) {
return stairsFireproof.copy();
} else {
return stairs.copy();
}
}
public static WoodType getRandom(Random random) {
return VALUES[random.nextInt(VALUES.length)];
}
}
@@ -35,9 +35,11 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.Tabs;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
import forestry.plugins.PluginArboriculture;
@@ -60,8 +62,8 @@ public class BlockArbFence extends BlockFence implements IWoodTyped, ITileEntity
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void getSubBlocks(Item item, CreativeTabs par2CreativeTabs, List list) {
for (WoodType woodType : WoodType.VALUES) {
list.add(woodType.getFence(fireproof));
for (EnumWoodType woodType : EnumWoodType.VALUES) {
list.add(TreeManager.woodItemAccess.getFence(woodType, fireproof));
}
}
@@ -88,20 +90,20 @@ public class BlockArbFence extends BlockFence implements IWoodTyped, ITileEntity
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
WoodType.registerIcons(register);
IconProviderWood.registerIcons(register);
}
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta) {
return WoodType.ACACIA.getPlankIcon();
return IconProviderWood.getPlankIcon(EnumWoodType.LARCH);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
WoodType type = wood.getWoodType();
return type.getPlankIcon();
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
private static boolean isFence(IBlockAccess world, int x, int y, int z) {
@@ -143,7 +145,7 @@ public class BlockArbFence extends BlockFence implements IWoodTyped, ITileEntity
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
if (wood == null) {
return WoodType.DEFAULT_HARDNESS;
return EnumWoodType.DEFAULT_HARDNESS;
}
return wood.getWoodType().getHardness();
}
@@ -31,9 +31,11 @@ import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.Tabs;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
public class BlockArbStairs extends BlockStairs implements IWoodTyped, ITileEntityProvider {
@@ -55,8 +57,8 @@ public class BlockArbStairs extends BlockStairs implements IWoodTyped, ITileEnti
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for (WoodType woodType : WoodType.VALUES) {
list.add(woodType.getStairs(fireproof));
for (EnumWoodType woodType : EnumWoodType.VALUES) {
list.add(TreeManager.woodItemAccess.getStairs(woodType, fireproof));
}
}
@@ -88,21 +90,21 @@ public class BlockArbStairs extends BlockStairs implements IWoodTyped, ITileEnti
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
WoodType.registerIcons(register);
IconProviderWood.registerIcons(register);
}
/* ICONS */
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta) {
return WoodType.ACACIA.getPlankIcon();
return IconProviderWood.getPlankIcon(EnumWoodType.LARCH);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
WoodType type = wood.getWoodType();
return type.getPlankIcon();
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@Override
@@ -25,7 +25,9 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
public class BlockLog extends BlockWood {
@@ -84,8 +86,8 @@ public class BlockLog extends BlockWood {
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for (WoodType woodType : WoodType.VALUES) {
list.add(woodType.getLog(isFireproof()));
for (EnumWoodType woodType : EnumWoodType.VALUES) {
list.add(TreeManager.woodItemAccess.getLog(woodType, isFireproof()));
}
}
@@ -93,18 +95,18 @@ public class BlockLog extends BlockWood {
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return WoodType.ACACIA.getIcon(meta, side);
return IconProviderWood.getLogIcon(EnumWoodType.LARCH, meta, side);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
int meta = world.getBlockMetadata(x, y, z);
TileWood wood = getWoodTile(world, x, y, z);
WoodType type = wood.getWoodType();
EnumWoodType type = wood.getWoodType();
if (type == null) {
return getIcon(side, meta);
}
return type.getIcon(meta, side);
return IconProviderWood.getLogIcon(type, meta, side);
}
/* PROPERTIES */
@@ -20,7 +20,9 @@ import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
public class BlockPlanks extends BlockWood {
@@ -34,8 +36,8 @@ public class BlockPlanks extends BlockWood {
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void getSubBlocks(Item item, CreativeTabs par2CreativeTabs, List list) {
for (WoodType woodType : WoodType.VALUES) {
list.add(woodType.getPlanks(isFireproof()));
for (EnumWoodType woodType : EnumWoodType.VALUES) {
list.add(TreeManager.woodItemAccess.getPlanks(woodType, isFireproof()));
}
}
@@ -43,14 +45,14 @@ public class BlockPlanks extends BlockWood {
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta) {
return WoodType.ACACIA.getPlankIcon();
return IconProviderWood.getPlankIcon(EnumWoodType.LARCH);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = getWoodTile(world, x, y, z);
WoodType type = wood.getWoodType();
return type.getPlankIcon();
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
}
@@ -35,9 +35,11 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.Tabs;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyped, ITileEntityProvider {
@@ -66,21 +68,21 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
WoodType.registerIcons(register);
IconProviderWood.registerIcons(register);
}
/* ICONS */
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta) {
return WoodType.ACACIA.getPlankIcon();
return IconProviderWood.getPlankIcon(EnumWoodType.LARCH);
}
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
WoodType type = wood.getWoodType();
return type.getPlankIcon();
EnumWoodType woodType = wood.getWoodType();
return IconProviderWood.getPlankIcon(woodType);
}
@Override
@@ -101,8 +103,8 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public void getSubBlocks(Item item, CreativeTabs par2CreativeTabs, List list) {
for (WoodType woodType : WoodType.VALUES) {
list.add(woodType.getSlab(fireproof));
for (EnumWoodType woodType : EnumWoodType.VALUES) {
list.add(TreeManager.woodItemAccess.getSlab(woodType, fireproof));
}
}
@@ -140,7 +142,7 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = BlockWood.getWoodTile(world, x, y, z);
if (wood == null) {
return WoodType.DEFAULT_HARDNESS;
return EnumWoodType.DEFAULT_HARDNESS;
}
return wood.getWoodType().getHardness();
}
@@ -30,9 +30,10 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.core.Tabs;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.render.IconProviderWood;
import forestry.arboriculture.tiles.TileWood;
import forestry.core.tiles.TileUtil;
@@ -70,7 +71,7 @@ public abstract class BlockWood extends Block implements ITileEntityProvider, IW
if (wood == null) {
return nbttagcompound;
}
WoodType woodType = wood.getWoodType();
EnumWoodType woodType = wood.getWoodType();
woodType.saveToCompound(nbttagcompound);
return nbttagcompound;
}
@@ -78,7 +79,7 @@ public abstract class BlockWood extends Block implements ITileEntityProvider, IW
@SideOnly(Side.CLIENT)
@Override
public final void registerBlockIcons(IIconRegister register) {
WoodType.registerIcons(register);
IconProviderWood.registerIcons(register);
}
@Override
@@ -114,7 +115,7 @@ public abstract class BlockWood extends Block implements ITileEntityProvider, IW
public final float getBlockHardness(World world, int x, int y, int z) {
TileWood wood = getWoodTile(world, x, y, z);
if (wood == null) {
return WoodType.DEFAULT_HARDNESS;
return EnumWoodType.DEFAULT_HARDNESS;
}
return wood.getWoodType().getHardness();
}
@@ -27,6 +27,7 @@ import forestry.api.arboriculture.EnumFruitFamily;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.EnumLeafType;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.IAlleleTreeSpeciesCustom;
import forestry.api.arboriculture.IGermlingIconProvider;
import forestry.api.arboriculture.ILeafIconProvider;
@@ -39,7 +40,6 @@ import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.genetics.IAllele;
import forestry.api.world.ITreeGenData;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.blocks.BlockForestryLeaves;
import forestry.arboriculture.render.IconProviderGermling;
import forestry.arboriculture.render.IconProviderGermlingVanilla;
@@ -156,7 +156,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// vanilla
}
},
Lime(TreeBranchDefinition.TILIA, "silverLime", "pendula", true, EnumLeafType.DECIDUOUS, new Color(0x5ea107), new Color(0x5ea107).brighter(), WoodType.LIME) {
Lime(TreeBranchDefinition.TILIA, "silverLime", "pendula", true, EnumLeafType.DECIDUOUS, new Color(0x5ea107), new Color(0x5ea107).brighter(), EnumWoodType.LIME) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenLime(tree);
@@ -182,7 +182,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Birch, Oak, 15);
}
},
Walnut(TreeBranchDefinition.JUGLANS, "commonWalnut", "regia", true, EnumLeafType.DECIDUOUS, new Color(0x798c55), new Color(0xb0c648), WoodType.WALNUT) {
Walnut(TreeBranchDefinition.JUGLANS, "commonWalnut", "regia", true, EnumLeafType.DECIDUOUS, new Color(0x798c55), new Color(0xb0c648), EnumWoodType.WALNUT) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenWalnut(tree);
@@ -210,7 +210,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Lime, Cherry, 10);
}
},
Chestnut(TreeBranchDefinition.CASTANEA, "sweetChestnut", "sativa", true, EnumLeafType.DECIDUOUS, new Color(0x5ea107), new Color(0xb0c648), WoodType.CHESTNUT) {
Chestnut(TreeBranchDefinition.CASTANEA, "sweetChestnut", "sativa", true, EnumLeafType.DECIDUOUS, new Color(0x5ea107), new Color(0xb0c648), EnumWoodType.CHESTNUT) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenChestnut(tree);
@@ -238,7 +238,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Walnut, Cherry, 10);
}
},
Cherry(TreeBranchDefinition.PRUNUS, "hillCherry", "serrulata", true, EnumLeafType.DECIDUOUS, new Color(0xe691da), new Color(0xe63e59), WoodType.CHERRY) {
Cherry(TreeBranchDefinition.PRUNUS, "hillCherry", "serrulata", true, EnumLeafType.DECIDUOUS, new Color(0xe691da), new Color(0xe63e59), EnumWoodType.CHERRY) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenCherry(tree);
@@ -265,7 +265,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Lime, Birch, 10);
}
},
Lemon(TreeBranchDefinition.CITRUS, "lemon", "limon", true, EnumLeafType.DECIDUOUS, new Color(0x88af54), new Color(0xa3b850), WoodType.CITRUS) {
Lemon(TreeBranchDefinition.CITRUS, "lemon", "limon", true, EnumLeafType.DECIDUOUS, new Color(0x88af54), new Color(0xa3b850), EnumWoodType.CITRUS) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenLemon(tree);
@@ -290,7 +290,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Lime, Cherry, 5);
}
},
Plum(TreeBranchDefinition.PRUNUS, "plum", "domestica", true, EnumLeafType.DECIDUOUS, new Color(0x589246), new Color(0xa3b850), WoodType.PLUM) {
Plum(TreeBranchDefinition.PRUNUS, "plum", "domestica", true, EnumLeafType.DECIDUOUS, new Color(0x589246), new Color(0xa3b850), EnumWoodType.PLUM) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenPlum(tree);
@@ -315,7 +315,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Lemon, Cherry, 5);
}
},
Maple(TreeBranchDefinition.ACER, "sugarMaple", "saccharum", true, EnumLeafType.MAPLE, new Color(0xd4f425), new Color(0x619a3c), WoodType.MAPLE) {
Maple(TreeBranchDefinition.ACER, "sugarMaple", "saccharum", true, EnumLeafType.MAPLE, new Color(0xd4f425), new Color(0x619a3c), EnumWoodType.MAPLE) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenMaple(tree);
@@ -362,7 +362,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// vanilla
}
},
Larch(TreeBranchDefinition.LARIX, "mundaneLarch", "decidua", true, EnumLeafType.CONIFERS, new Color(0x698f90), new Color(0x569896), WoodType.LARCH) {
Larch(TreeBranchDefinition.LARIX, "mundaneLarch", "decidua", true, EnumLeafType.CONIFERS, new Color(0x698f90), new Color(0x569896), EnumWoodType.LARCH) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenLarch(tree);
@@ -386,7 +386,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Spruce, Oak, 10);
}
},
Pine(TreeBranchDefinition.PINUS, "bullPine", "sabiniana", true, EnumLeafType.CONIFERS, new Color(0xfeff8f), new Color(0xffd98f), WoodType.PINE) {
Pine(TreeBranchDefinition.PINUS, "bullPine", "sabiniana", true, EnumLeafType.CONIFERS, new Color(0xfeff8f), new Color(0xffd98f), EnumWoodType.PINE) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenPine(tree);
@@ -409,7 +409,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Spruce, Larch, 10);
}
},
Sequioa(TreeBranchDefinition.SEQUOIA, "coastSequoia", "sempervirens", false, EnumLeafType.CONIFERS, new Color(0x418e71), new Color(0x569896), WoodType.SEQUOIA) {
Sequioa(TreeBranchDefinition.SEQUOIA, "coastSequoia", "sempervirens", false, EnumLeafType.CONIFERS, new Color(0x418e71), new Color(0x569896), EnumWoodType.SEQUOIA) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenSequoia(tree);
@@ -434,7 +434,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Larch, Pine, 5);
}
},
Gigant(TreeBranchDefinition.SEQUOIADENDRON, "giantSequoia", "giganteum", false, EnumLeafType.CONIFERS, new Color(0x738434), new Color(0x738434).brighter(), WoodType.GIGANTEUM) {
Gigant(TreeBranchDefinition.SEQUOIADENDRON, "giantSequoia", "giganteum", false, EnumLeafType.CONIFERS, new Color(0x738434), new Color(0x738434).brighter(), EnumWoodType.GIGANTEUM) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenGiganteum(tree);
@@ -482,7 +482,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// vanilla
}
},
Teak(TreeBranchDefinition.TECTONA, "teak", "grandis", true, EnumLeafType.JUNGLE, new Color(0xfeff8f), new Color(0xffd98f), WoodType.TEAK) {
Teak(TreeBranchDefinition.TECTONA, "teak", "grandis", true, EnumLeafType.JUNGLE, new Color(0xfeff8f), new Color(0xffd98f), EnumWoodType.TEAK) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenTeak(tree);
@@ -503,7 +503,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(DarkOak, Jungle, 10);
}
},
Ipe(TreeBranchDefinition.TABEBUIA, "ipe", "serratifolia", true, EnumLeafType.JUNGLE, new Color(0xfdd207), new Color(0xad8f04), WoodType.IPE) {
Ipe(TreeBranchDefinition.TABEBUIA, "ipe", "serratifolia", true, EnumLeafType.JUNGLE, new Color(0xfdd207), new Color(0xad8f04), EnumWoodType.IPE) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenIpe(tree);
@@ -526,7 +526,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Teak, DarkOak, 10);
}
},
Kapok(TreeBranchDefinition.CEIBA, "kapok", "pentandra", true, EnumLeafType.JUNGLE, new Color(0x89987b), new Color(0x89aa9e), WoodType.KAPOK) {
Kapok(TreeBranchDefinition.CEIBA, "kapok", "pentandra", true, EnumLeafType.JUNGLE, new Color(0x89987b), new Color(0x89aa9e), EnumWoodType.KAPOK) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenKapok(tree);
@@ -550,7 +550,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Jungle, Teak, 10);
}
},
Ebony(TreeBranchDefinition.EBONY, "myrtleEbony", "pentamera", true, EnumLeafType.JUNGLE, new Color(0xa2d24a), new Color(0xc4d24a), WoodType.EBONY) {
Ebony(TreeBranchDefinition.EBONY, "myrtleEbony", "pentamera", true, EnumLeafType.JUNGLE, new Color(0xa2d24a), new Color(0xc4d24a), EnumWoodType.EBONY) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenEbony(tree);
@@ -575,7 +575,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(DarkOak, Kapok, 10);
}
},
Zebrawood(TreeBranchDefinition.ASTRONIUM, "zebrawood", "graveolens", false, EnumLeafType.JUNGLE, new Color(0xa2d24a), new Color(0xc4d24a), WoodType.ZEBRAWOOD) {
Zebrawood(TreeBranchDefinition.ASTRONIUM, "zebrawood", "graveolens", false, EnumLeafType.JUNGLE, new Color(0xa2d24a), new Color(0xc4d24a), EnumWoodType.ZEBRAWOOD) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenZebrawood(tree);
@@ -597,7 +597,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Ebony, Poplar, 5);
}
},
Mahogony(TreeBranchDefinition.MAHOGANY, "yellowMeranti", "gibbosa", true, EnumLeafType.JUNGLE, new Color(0x8ab154), new Color(0xa9b154), WoodType.MAHOGANY) {
Mahogony(TreeBranchDefinition.MAHOGANY, "yellowMeranti", "gibbosa", true, EnumLeafType.JUNGLE, new Color(0x8ab154), new Color(0xa9b154), EnumWoodType.MAHOGANY) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenMahogany(tree);
@@ -643,7 +643,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
// vanilla
}
},
Acacia(TreeBranchDefinition.ACACIA, "desertAcacia", "erioloba", true, EnumLeafType.DECIDUOUS, new Color(0x748C1C), new Color(0xb3b302), WoodType.ACACIA) {
Acacia(TreeBranchDefinition.ACACIA, "desertAcacia", "erioloba", true, EnumLeafType.DECIDUOUS, new Color(0x748C1C), new Color(0xb3b302), EnumWoodType.ACACIA) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenAcacia(tree);
@@ -665,7 +665,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Teak, Balsa, 10);
}
},
Padauk(TreeBranchDefinition.PTEROCARPUS, "padauk", "soyauxii", true, EnumLeafType.DECIDUOUS, new Color(0xd0df8c), new Color(0x435c32), WoodType.PADAUK) {
Padauk(TreeBranchDefinition.PTEROCARPUS, "padauk", "soyauxii", true, EnumLeafType.DECIDUOUS, new Color(0xd0df8c), new Color(0x435c32), EnumWoodType.PADAUK) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenPadauk(tree);
@@ -687,7 +687,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(AcaciaVanilla, Jungle, 10);
}
},
Balsa(TreeBranchDefinition.OCHROMA, "balsa", "pyramidale", true, EnumLeafType.DECIDUOUS, new Color(0x59ac00), new Color(0xfeff8f), WoodType.BALSA) {
Balsa(TreeBranchDefinition.OCHROMA, "balsa", "pyramidale", true, EnumLeafType.DECIDUOUS, new Color(0x59ac00), new Color(0xfeff8f), EnumWoodType.BALSA) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenBalsa(tree);
@@ -711,7 +711,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Teak, AcaciaVanilla, 10);
}
},
Cocobolo(TreeBranchDefinition.DALBERGIA, "cocobolo", "retusa", false, EnumLeafType.DECIDUOUS, new Color(0x6aa17a), new Color(0x487d4c), WoodType.COCOBOLO) {
Cocobolo(TreeBranchDefinition.DALBERGIA, "cocobolo", "retusa", false, EnumLeafType.DECIDUOUS, new Color(0x6aa17a), new Color(0x487d4c), EnumWoodType.COCOBOLO) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenCocobolo(tree);
@@ -732,7 +732,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Acacia, DarkOak, 10);
}
},
Wenge(TreeBranchDefinition.MILLETTIA, "wenge", "laurentii", true, EnumLeafType.DECIDUOUS, new Color(0xada157), new Color(0xad8a57), WoodType.WENGE) {
Wenge(TreeBranchDefinition.MILLETTIA, "wenge", "laurentii", true, EnumLeafType.DECIDUOUS, new Color(0xada157), new Color(0xad8a57), EnumWoodType.WENGE) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenWenge(tree);
@@ -755,7 +755,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Cocobolo, Balsa, 10);
}
},
Baobab(TreeBranchDefinition.ADANSONIA, "grandidierBaobab", "digitata", true, EnumLeafType.DECIDUOUS, new Color(0xfeff8f), new Color(0xffd98f), WoodType.BAOBAB) {
Baobab(TreeBranchDefinition.ADANSONIA, "grandidierBaobab", "digitata", true, EnumLeafType.DECIDUOUS, new Color(0xfeff8f), new Color(0xffd98f), EnumWoodType.BAOBAB) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenBaobab(tree);
@@ -781,7 +781,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Balsa, Wenge, 10);
}
},
Mahoe(TreeBranchDefinition.TALIPARITI, "blueMahoe", "elatum", true, EnumLeafType.DECIDUOUS, new Color(0xa0ba1b), new Color(0x79a175), WoodType.MAHOE) {
Mahoe(TreeBranchDefinition.TALIPARITI, "blueMahoe", "elatum", true, EnumLeafType.DECIDUOUS, new Color(0xa0ba1b), new Color(0x79a175), EnumWoodType.MAHOE) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenMahoe(tree);
@@ -806,7 +806,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Balsa, Acacia, 5);
}
},
Willow(TreeBranchDefinition.SALIX, "whiteWillow", "alba", true, EnumLeafType.WILLOW, new Color(0xa3b8a5), new Color(0xa3b850), WoodType.WILLOW) {
Willow(TreeBranchDefinition.SALIX, "whiteWillow", "alba", true, EnumLeafType.WILLOW, new Color(0xa3b8a5), new Color(0xa3b850), EnumWoodType.WILLOW) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenWillow(tree);
@@ -839,7 +839,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
.restrictHumidity(EnumHumidity.DAMP);
}
},
Sipiri(TreeBranchDefinition.CHLOROCARDIUM, "sipiri", "rodiei", true, EnumLeafType.DECIDUOUS, new Color(0x678911), new Color(0x79a175), WoodType.GREENHEART) {
Sipiri(TreeBranchDefinition.CHLOROCARDIUM, "sipiri", "rodiei", true, EnumLeafType.DECIDUOUS, new Color(0x678911), new Color(0x79a175), EnumWoodType.GREENHEART) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenGreenheart(tree);
@@ -865,7 +865,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
.restrictHumidity(EnumHumidity.DAMP);
}
},
Papaya(TreeBranchDefinition.CARICA, "papaya", "papaya", true, EnumLeafType.PALM, new Color(0x6d9f58), new Color(0x9ee67f), WoodType.PAPAYA) {
Papaya(TreeBranchDefinition.CARICA, "papaya", "papaya", true, EnumLeafType.PALM, new Color(0x6d9f58), new Color(0x9ee67f), EnumWoodType.PAPAYA) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenPapaya(tree);
@@ -890,7 +890,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Jungle, Cherry, 5);
}
},
Date(TreeBranchDefinition.PHOENIX, "datePalm", "dactylifera", true, EnumLeafType.PALM, new Color(0xcbcd79), new Color(0xf0f38f), WoodType.PALM) {
Date(TreeBranchDefinition.PHOENIX, "datePalm", "dactylifera", true, EnumLeafType.PALM, new Color(0xcbcd79), new Color(0xf0f38f), EnumWoodType.PALM) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenDate(tree);
@@ -916,7 +916,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
registerMutation(Jungle, Papaya, 5);
}
},
Poplar(TreeBranchDefinition.POPULUS, "whitePoplar", "alba", true, EnumLeafType.DECIDUOUS, new Color(0xa3b8a5), new Color(0x539d12), WoodType.POPLAR) {
Poplar(TreeBranchDefinition.POPULUS, "whitePoplar", "alba", true, EnumLeafType.DECIDUOUS, new Color(0xa3b8a5), new Color(0x539d12), EnumWoodType.POPLAR) {
@Override
public WorldGenerator getWorldGenerator(ITreeGenData tree) {
return new WorldGenPoplar(tree);
@@ -946,7 +946,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
private final TreeBranchDefinition branch;
private final IAlleleTreeSpeciesCustom species;
private final WoodType woodType; // for forestry trees
private final EnumWoodType woodType; // for forestry trees
private final ItemStack vanillaWood; // for vanilla trees
private IAllele[] template;
@@ -969,7 +969,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
}
// forestry tree constructor
TreeDefinition(TreeBranchDefinition branch, String speciesName, String binomial, boolean dominant, EnumLeafType leafType, Color primary, Color secondary, WoodType woodType) {
TreeDefinition(TreeBranchDefinition branch, String speciesName, String binomial, boolean dominant, EnumLeafType leafType, Color primary, Color secondary, EnumWoodType woodType) {
String uid = "forestry.tree" + this.toString();
String unlocalizedDescription = "for.description.tree" + this.toString();
String unlocalizedName = "for.trees.species." + speciesName;
@@ -999,7 +999,7 @@ public enum TreeDefinition implements ITreeDefinition, ITreeGenerator {
} else {
AlleleBoolean fireproofAllele = (AlleleBoolean) genome.getActiveAllele(EnumTreeChromosome.FIREPROOF);
boolean fireproof = fireproofAllele.getValue();
ItemStack log = woodType.getLog(fireproof);
ItemStack log = TreeManager.woodItemAccess.getLog(woodType, fireproof);
BlockTypeLog logBlock = new BlockTypeLog(log);
logBlock.setDirection(facing);
@@ -18,8 +18,8 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.tiles.TileWood;
import forestry.core.config.Constants;
import forestry.core.items.ItemBlockForestry;
@@ -32,7 +32,7 @@ public class ItemBlockWood extends ItemBlockForestry {
}
public static boolean placeWood(ItemStack stack, @Nullable EntityPlayer player, World world, int x, int y, int z, int metadata) {
WoodType woodType = WoodType.getFromCompound(stack.getTagCompound());
EnumWoodType woodType = EnumWoodType.getFromCompound(stack.getTagCompound());
Block block = Block.getBlockFromItem(stack.getItem());
boolean placed = world.setBlock(x, y, z, block, metadata, Constants.FLAG_BLOCK_SYNCH_AND_UPDATE);
@@ -72,7 +72,7 @@ public class ItemBlockWood extends ItemBlockForestry {
return super.getItemStackDisplayName(itemstack);
}
WoodType woodType = getWood(itemstack);
EnumWoodType woodType = EnumWoodType.getFromCompound(itemstack.getTagCompound());
if (woodType == null) {
return super.getItemStackDisplayName(itemstack);
}
@@ -98,7 +98,4 @@ public class ItemBlockWood extends ItemBlockForestry {
return displayName;
}
private static WoodType getWood(ItemStack itemStack) {
return WoodType.getFromCompound(itemStack.getTagCompound());
}
}
@@ -0,0 +1,81 @@
/*******************************************************************************
* Copyright (c) 2011-2014 SirSengir.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Various Contributors including, but not limited to:
* SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges
******************************************************************************/
package forestry.arboriculture.render;
import java.util.Locale;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.arboriculture.EnumWoodType;
import forestry.core.render.TextureManager;
public abstract class IconProviderWood {
@SideOnly(Side.CLIENT)
private static IIcon[][] icons;
@SideOnly(Side.CLIENT)
public static void registerIcons(IIconRegister register) {
icons = new IIcon[3][EnumWoodType.VALUES.length];
for (int i = 0; i < EnumWoodType.VALUES.length; i++) {
EnumWoodType woodType = EnumWoodType.VALUES[i];
String woodName = woodType.toString().toLowerCase(Locale.ENGLISH);
icons[0][i] = TextureManager.getInstance().registerTex(register, "wood/planks." + woodName);
icons[1][i] = TextureManager.getInstance().registerTex(register, "wood/bark." + woodName);
icons[2][i] = TextureManager.getInstance().registerTex(register, "wood/heart." + woodName);
}
}
@SideOnly(Side.CLIENT)
public static IIcon getPlankIcon(EnumWoodType woodType) {
return icons[0][woodType.ordinal()];
}
@SideOnly(Side.CLIENT)
public static IIcon getBarkIcon(EnumWoodType woodType) {
return icons[1][woodType.ordinal()];
}
@SideOnly(Side.CLIENT)
public static IIcon getHeartIcon(EnumWoodType woodType) {
return icons[2][woodType.ordinal()];
}
@SideOnly(Side.CLIENT)
public static IIcon getLogIcon(EnumWoodType woodType, int meta, int side) {
int oriented = meta & 12;
switch (oriented) {
case 4:
if (side > 3) {
return getHeartIcon(woodType);
} else {
return getBarkIcon(woodType);
}
case 8:
if (side == 2 || side == 3) {
return getHeartIcon(woodType);
} else {
return getBarkIcon(woodType);
}
case 0:
default:
if (side < 2) {
return getHeartIcon(woodType);
} else {
return getBarkIcon(woodType);
}
}
}
}
@@ -20,7 +20,7 @@ import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
public class RenderFenceItem implements IItemRenderer {
@Override
@@ -61,8 +61,8 @@ public class RenderFenceItem implements IItemRenderer {
private static void renderItem(RenderBlocks renderer, ItemStack itemStack, float x, float y, float z) {
Tessellator tess = Tessellator.instance;
WoodType woodType = WoodType.getFromCompound(itemStack.getTagCompound());
IIcon plankIcon = woodType.getPlankIcon();
EnumWoodType woodType = EnumWoodType.getFromCompound(itemStack.getTagCompound());
IIcon plankIcon = IconProviderWood.getPlankIcon(woodType);
Block block = Block.getBlockFromItem(itemStack.getItem());
for (int i = 0; i < 4; ++i) {
@@ -49,6 +49,11 @@ public class RenderLeavesItem implements IItemRenderer {
@Override
public void renderItem(IItemRenderer.ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
switch (type) {
case ENTITY:
renderItem((RenderBlocks) data[0], item, 0f, 0f, 0f);
@@ -62,6 +67,8 @@ public class RenderLeavesItem implements IItemRenderer {
break;
default:
}
GL11.glPopAttrib();
}
private static void renderItem(RenderBlocks renderer, ItemStack itemStack, float x, float y, float z) {
@@ -79,8 +86,6 @@ public class RenderLeavesItem implements IItemRenderer {
leaves.setTree(TreeHelper.treeTemplates.get(0));
}
GL11.glEnable(GL11.GL_BLEND);
IIcon leavesIcon = leaves.getIcon(Proxies.render.fancyGraphicsEnabled());
if (leavesIcon == null) {
return;
@@ -20,7 +20,7 @@ import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.items.ItemBlockWood;
import forestry.core.utils.ItemStackUtil;
@@ -68,12 +68,10 @@ public class RenderLogItem implements IItemRenderer {
return;
}
WoodType woodType = WoodType.getFromCompound(itemStack.getTagCompound());
EnumWoodType woodType = EnumWoodType.getFromCompound(itemStack.getTagCompound());
GL11.glEnable(GL11.GL_BLEND);
IIcon barkIcon = woodType.getBarkIcon();
IIcon heartIcon = woodType.getHeartIcon();
IIcon barkIcon = IconProviderWood.getBarkIcon(woodType);
IIcon heartIcon = IconProviderWood.getHeartIcon(woodType);
if (barkIcon == null || heartIcon == null) {
return;
}
@@ -20,7 +20,7 @@ import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.items.ItemBlockWood;
import forestry.core.utils.ItemStackUtil;
@@ -68,11 +68,9 @@ public class RenderPlankItem implements IItemRenderer {
return;
}
WoodType woodType = WoodType.getFromCompound(itemStack.getTagCompound());
EnumWoodType woodType = EnumWoodType.getFromCompound(itemStack.getTagCompound());
GL11.glEnable(GL11.GL_BLEND);
IIcon plankIcon = woodType.getPlankIcon();
IIcon plankIcon = IconProviderWood.getPlankIcon(woodType);
if (plankIcon == null) {
return;
}
@@ -10,7 +10,7 @@ import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.items.ItemBlockWood;
import forestry.core.utils.ItemStackUtil;
@@ -58,11 +58,9 @@ public class RenderSlabItem implements IItemRenderer {
return;
}
WoodType woodType = WoodType.getFromCompound(itemStack.getTagCompound());
EnumWoodType woodType = EnumWoodType.getFromCompound(itemStack.getTagCompound());
GL11.glEnable(GL11.GL_BLEND);
IIcon plankIcon = woodType.getPlankIcon();
IIcon plankIcon = IconProviderWood.getPlankIcon(woodType);
if (plankIcon == null) {
return;
}
@@ -20,7 +20,8 @@ import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import forestry.arboriculture.WoodType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.items.ItemBlockWood;
import forestry.core.utils.ItemStackUtil;
public class RenderStairItem implements IItemRenderer {
@@ -60,12 +61,17 @@ public class RenderStairItem implements IItemRenderer {
}
}
private static void renderStairBlock(RenderBlocks renderBlocks, ItemStack item, float x, float y, float z) {
private static void renderStairBlock(RenderBlocks renderBlocks, ItemStack itemStack, float x, float y, float z) {
Tessellator tessellator = Tessellator.instance;
Block block = ItemStackUtil.getBlock(item);
Block block = ItemStackUtil.getBlock(itemStack);
IIcon texture = WoodType.getFromCompound(item.getTagCompound()).getPlankIcon();
if (!(itemStack.getItem() instanceof ItemBlockWood) || block == null) {
return;
}
EnumWoodType woodType = EnumWoodType.getFromCompound(itemStack.getTagCompound());
IIcon texture = IconProviderWood.getPlankIcon(woodType);
for (int i = 0; i < 2; ++i) {
if (i == 0) {
@@ -103,7 +109,6 @@ public class RenderStairItem implements IItemRenderer {
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
}
@@ -20,8 +20,8 @@ import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import forestry.api.arboriculture.EnumWoodType;
import forestry.arboriculture.IWoodTyped;
import forestry.arboriculture.WoodType;
import forestry.core.network.DataInputStreamForestry;
import forestry.core.network.DataOutputStreamForestry;
import forestry.core.network.IStreamable;
@@ -29,18 +29,18 @@ import forestry.core.network.PacketTileStream;
import forestry.core.utils.ItemStackUtil;
public class TileWood extends TileEntity implements IStreamable {
private WoodType woodType;
private EnumWoodType woodType;
public TileWood() {
this.woodType = WoodType.ACACIA;
this.woodType = EnumWoodType.LARCH;
}
public void setWoodType(WoodType woodType) {
public void setWoodType(EnumWoodType woodType) {
this.woodType = woodType;
markDirty();
}
public WoodType getWoodType() {
public EnumWoodType getWoodType() {
return woodType;
}
@@ -63,7 +63,7 @@ public class TileWood extends TileEntity implements IStreamable {
@Override
public void readData(DataInputStreamForestry data) throws IOException {
int ordinal = data.readVarInt();
woodType = WoodType.VALUES[ordinal];
woodType = EnumWoodType.VALUES[ordinal];
worldObj.func_147479_m(xCoord, yCoord, zCoord);
}
@@ -80,7 +80,7 @@ public class TileWood extends TileEntity implements IStreamable {
super.readFromNBT(nbt);
if (nbt.hasKey("WT")) {
int ordinal = nbt.getInteger("WT");
woodType = WoodType.VALUES[ordinal];
woodType = EnumWoodType.VALUES[ordinal];
}
}
@@ -142,8 +142,8 @@ public class ItemResearchNote extends ItemForestry {
return false;
}
IAlleleSpecies species0 = encoded.getAllele0();
IAlleleSpecies species1 = encoded.getAllele1();
IAlleleSpecies species0 = (IAlleleSpecies) encoded.getAllele0();
IAlleleSpecies species1 = (IAlleleSpecies) encoded.getAllele1();
IAlleleSpecies speciesResult = (IAlleleSpecies) encoded.getTemplate()[root.getKaryotypeKey().ordinal()];
tracker.registerSpecies(species0);
@@ -139,6 +139,16 @@ public abstract class Mutation implements IMutationCustom {
return species1;
}
@Override
public IAlleleSpecies getSpecies0() {
return species0;
}
@Override
public IAlleleSpecies getSpecies1() {
return species1;
}
@Override
public float getBaseChance() {
return chance;
@@ -113,7 +113,6 @@ public class PositionedFluidTank {
GuiDraw.changeTexture(TextureMap.locationBlocksTexture);
int color = this.tank.getFluid().getFluid().getColor(this.tank.getFluid());
GL11.glColor3ub((byte) (color >> 16 & 0xFF), (byte) (color >> 8 & 0xFF), (byte) (color & 0xFF));
GL11.glDisable(GL11.GL_BLEND);
int amount = Math.max(Math.min(this.position.height, this.tank.getFluid().amount * this.position.height / this.tank.getCapacity()), 1);
int posY = this.position.y + this.position.height - amount;
@@ -141,8 +140,6 @@ public class PositionedFluidTank {
}
}
GL11.glEnable(GL11.GL_BLEND);
if (this.overlayTexture != null && this.overlayTexturePos != null) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GuiDraw.changeTexture(this.overlayTexture);
@@ -192,14 +192,16 @@ public class GeneticsUtil {
exclude.add(species);
for (IMutation mutation : species.getRoot().getPaths(species, speciesChromosome)) {
if (!exclude.contains(mutation.getAllele0())) {
int otherAdvance = getGeneticAdvancement(mutation.getAllele0(), exclude, speciesChromosome);
IAlleleSpecies species0 = (IAlleleSpecies) mutation.getAllele0();
IAlleleSpecies species1 = (IAlleleSpecies) mutation.getAllele1();
if (!exclude.contains(species0)) {
int otherAdvance = getGeneticAdvancement(species0, exclude, speciesChromosome);
if (otherAdvance > highest) {
highest = otherAdvance;
}
}
if (!exclude.contains(mutation.getAllele1())) {
int otherAdvance = getGeneticAdvancement(mutation.getAllele1(), exclude, speciesChromosome);
if (!exclude.contains(species1)) {
int otherAdvance = getGeneticAdvancement(species1, exclude, speciesChromosome);
if (otherAdvance > highest) {
highest = otherAdvance;
}
@@ -459,12 +459,14 @@ public abstract class InventoryUtil {
}
public static boolean tryAddStack(IInventory inventory, ItemStack stack, int startSlot, int slots, boolean all, boolean doAdd) {
int added = addStack(inventory, stack, startSlot, slots, doAdd);
if (all) {
return added == stack.stackSize;
} else {
return added > 0;
int added = addStack(inventory, stack, startSlot, slots, false);
boolean success = all ? (added == stack.stackSize) : (added > 0);
if (success && doAdd) {
addStack(inventory, stack, startSlot, slots, true);
}
return success;
}
public static int addStack(IInventory inventory, ItemStack stack, boolean doAdd) {
@@ -24,11 +24,6 @@ import forestry.farming.blocks.BlockFarm;
public class RenderFarmItem implements IItemRenderer {
private static void renderFarmBlock(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) {
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
Tessellator tessellator = Tessellator.instance;
BlockFarm block = (BlockFarm) ItemStackUtil.getBlock(item);
if (block == null) {
@@ -81,8 +76,6 @@ public class RenderFarmItem implements IItemRenderer {
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopAttrib();
}
@Override
@@ -105,6 +98,11 @@ public class RenderFarmItem implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
switch (type) {
case ENTITY:
renderFarmBlock((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f);
@@ -118,6 +116,8 @@ public class RenderFarmItem implements IItemRenderer {
break;
default:
}
GL11.glPopAttrib();
}
}
@@ -48,9 +48,6 @@ public class GuiMailboxInfo extends Gui {
return;
}
GL11.glEnable(3042);
GL11.glEnable(32826);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Proxies.common.bindTexture(textureAlert);
@@ -58,10 +55,6 @@ public class GuiMailboxInfo extends Gui {
fontRendererObj.drawString(Integer.toString(poInfo.playerLetters), x + 27 + getCenteredOffset(Integer.toString(poInfo.playerLetters), 22), y + 5, 0xffffff);
fontRendererObj.drawString(Integer.toString(poInfo.tradeLetters), x + 75 + getCenteredOffset(Integer.toString(poInfo.tradeLetters), 22), y + 5, 0xffffff);
GL11.glDisable(32826);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
}
protected int getCenteredOffset(String string, int xWidth) {
@@ -33,6 +33,7 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
import forestry.api.arboriculture.EnumFruitFamily;
import forestry.api.arboriculture.EnumGermlingType;
import forestry.api.arboriculture.EnumWoodType;
import forestry.api.arboriculture.TreeManager;
import forestry.api.core.Tabs;
import forestry.api.genetics.AlleleManager;
@@ -46,7 +47,7 @@ import forestry.arboriculture.FruitProviderRandom;
import forestry.arboriculture.FruitProviderRipening;
import forestry.arboriculture.GuiHandlerArboriculture;
import forestry.arboriculture.VillageHandlerArboriculture;
import forestry.arboriculture.WoodType;
import forestry.arboriculture.WoodItemAccess;
import forestry.arboriculture.blocks.BlockArbFence;
import forestry.arboriculture.blocks.BlockArbStairs;
import forestry.arboriculture.blocks.BlockForestryLeaves;
@@ -118,6 +119,8 @@ public class PluginArboriculture extends ForestryPlugin {
TreeManager.treeFactory = new TreeFactory();
TreeManager.treeMutationFactory = new TreeMutationFactory();
TreeManager.woodItemAccess = new WoodItemAccess();
// Init tree interface
TreeManager.treeRoot = new TreeHelper();
AlleleManager.alleleRegistry.registerSpeciesRoot(TreeManager.treeRoot);
@@ -156,18 +159,18 @@ public class PluginArboriculture extends ForestryPlugin {
ForestryBlock.fencesFireproof.registerBlock(new BlockArbFence(true), ItemBlockWood.class, "fencesFireproof");
ForestryBlock.stairsFireproof.registerBlock(new BlockArbStairs(ForestryBlock.planksFireproof.block(), true), ItemBlockWood.class, "stairsFireproof");
for (WoodType woodType : WoodType.VALUES) {
woodType.registerLog(ForestryBlock.logs.block(), false);
woodType.registerPlanks(ForestryBlock.planks.block(), false);
woodType.registerSlab(ForestryBlock.slabs.block(), false);
woodType.registerFence(ForestryBlock.fences.block(), false);
woodType.registerStairs(ForestryBlock.stairs.block(), false);
for (EnumWoodType woodType : EnumWoodType.VALUES) {
WoodItemAccess.registerLog(ForestryBlock.logs.block(), woodType, false);
WoodItemAccess.registerPlanks(ForestryBlock.planks.block(), woodType, false);
WoodItemAccess.registerSlab(ForestryBlock.slabs.block(), woodType, false);
WoodItemAccess.registerFence(ForestryBlock.fences.block(), woodType, false);
WoodItemAccess.registerStairs(ForestryBlock.stairs.block(), woodType, false);
woodType.registerLog(ForestryBlock.logsFireproof.block(), true);
woodType.registerPlanks(ForestryBlock.planksFireproof.block(), true);
woodType.registerSlab(ForestryBlock.slabsFireproof.block(), true);
woodType.registerFence(ForestryBlock.fencesFireproof.block(), true);
woodType.registerStairs(ForestryBlock.stairsFireproof.block(), true);
WoodItemAccess.registerLog(ForestryBlock.logsFireproof.block(), woodType, true);
WoodItemAccess.registerPlanks(ForestryBlock.planksFireproof.block(), woodType, true);
WoodItemAccess.registerSlab(ForestryBlock.slabsFireproof.block(), woodType, true);
WoodItemAccess.registerFence(ForestryBlock.fencesFireproof.block(), woodType, true);
WoodItemAccess.registerStairs(ForestryBlock.stairsFireproof.block(), woodType, true);
}
// Saplings