mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-10-26 14:23:57 +00:00
Merge branch 'dev' into inventory-cleanup
This commit is contained in:
commit
f3895aeaab
43 files changed
+418
-292
No files matched your search
+1
-1
Submodule api updated: 2bb45e18be...d6d724bbd7.
+1
-1
Submodule lang updated: af11df9b5f...daa0110f88.
@@ -10,9 +10,17 @@
|
||||
******************************************************************************/
|
||||
package forestry.apiculture;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageCreationHandler;
|
||||
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
|
||||
import forestry.api.apiculture.EnumBeeType;
|
||||
import forestry.apiculture.genetics.BeeTemplates;
|
||||
import forestry.apiculture.items.ItemHoneycomb;
|
||||
import forestry.apiculture.worldgen.ComponentVillageBeeHouse;
|
||||
import forestry.core.config.Defaults;
|
||||
import forestry.core.config.ForestryBlock;
|
||||
import forestry.core.config.ForestryItem;
|
||||
import forestry.core.proxy.Proxies;
|
||||
import forestry.plugins.PluginApiculture;
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
@@ -23,17 +31,8 @@ import net.minecraft.village.MerchantRecipeList;
|
||||
import net.minecraft.world.gen.structure.MapGenStructureIO;
|
||||
import net.minecraft.world.gen.structure.StructureVillagePieces;
|
||||
|
||||
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageCreationHandler;
|
||||
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
|
||||
|
||||
import forestry.api.apiculture.EnumBeeType;
|
||||
import forestry.apiculture.genetics.BeeTemplates;
|
||||
import forestry.apiculture.items.ItemHoneycomb;
|
||||
import forestry.apiculture.worldgen.ComponentVillageBeeHouse;
|
||||
import forestry.core.config.Defaults;
|
||||
import forestry.core.config.ForestryBlock;
|
||||
import forestry.core.config.ForestryItem;
|
||||
import forestry.plugins.PluginApiculture;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class VillageHandlerApiculture implements IVillageCreationHandler, IVillageTradeHandler {
|
||||
|
||||
@@ -41,6 +40,7 @@ public class VillageHandlerApiculture implements IVillageCreationHandler, IVilla
|
||||
try {
|
||||
MapGenStructureIO.func_143031_a(ComponentVillageBeeHouse.class, "Forestry:BeeHouse");
|
||||
} catch (Throwable e) {
|
||||
Proxies.log.severe("Failed to register village beehouse.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -105,13 +105,13 @@ public class BlockAlveary extends BlockStructure {
|
||||
public static final int BOTTOM = 2;
|
||||
public static final int LEFT = 3;
|
||||
public static final int RIGHT = 4;
|
||||
public static final int TX_55_SWOF = 5;
|
||||
public static final int TX_56_SWON = 6;
|
||||
public static final int TX_57_HTOF = 7;
|
||||
public static final int TX_58_HTON = 8;
|
||||
public static final int TX_71_FNOF = 9;
|
||||
public static final int TX_72_FNON = 10;
|
||||
public static final int TX_73_VLVE = 11;
|
||||
public static final int ALVEARY_SWARMER_OFF = 5;
|
||||
public static final int ALVEARY_SWARMER_ON = 6;
|
||||
public static final int ALVEARY_HEATER_OFF = 7;
|
||||
public static final int ALVEARY_HEATER_ON = 8;
|
||||
public static final int ALVEARY_FAN_OFF = 9;
|
||||
public static final int ALVEARY_FAN_ON = 10;
|
||||
public static final int ALVEARY_HYGRO = 11;
|
||||
public static final int STABILISER = 12;
|
||||
public static final int SIEVE = 13;
|
||||
|
||||
@@ -152,13 +152,13 @@ public class BlockAlveary extends BlockStructure {
|
||||
case 1:
|
||||
return icons[ENTRANCE];
|
||||
case TileAlvearySwarmer.BLOCK_META:
|
||||
return icons[TX_55_SWOF];
|
||||
return icons[ALVEARY_SWARMER_OFF];
|
||||
case TileAlvearyFan.BLOCK_META:
|
||||
return icons[TX_71_FNOF];
|
||||
return icons[ALVEARY_FAN_OFF];
|
||||
case TileAlvearyHeater.BLOCK_META:
|
||||
return icons[TX_57_HTOF];
|
||||
return icons[ALVEARY_HEATER_OFF];
|
||||
case TileAlvearyHygroregulator.BLOCK_META:
|
||||
return icons[TX_73_VLVE];
|
||||
return icons[ALVEARY_HYGRO];
|
||||
case TileAlvearyStabiliser.BLOCK_META:
|
||||
return icons[STABILISER];
|
||||
case TileAlvearySieve.BLOCK_META:
|
||||
|
||||
@@ -34,15 +34,14 @@ public abstract class TileAlvearyClimatiser extends TileAlveary implements IEner
|
||||
}
|
||||
protected final EnergyManager energyManager;
|
||||
private final ClimateControl climateControl;
|
||||
private int transferTime = 0;
|
||||
private int animationDelay = 0;
|
||||
private int workingTime = 0;
|
||||
private final int textureOff;
|
||||
private final int textureOn;
|
||||
|
||||
public TileAlvearyClimatiser(ClimateControl control, int textureOff, int textureOn, int componentBlockMeta) {
|
||||
super(componentBlockMeta);
|
||||
this.climateControl = control;
|
||||
energyManager = new EnergyManager(1000, 250, 2000);
|
||||
energyManager = new EnergyManager(1000, 50, 2000);
|
||||
energyManager.setReceiveOnly();
|
||||
this.textureOff = textureOff;
|
||||
this.textureOn = textureOn;
|
||||
@@ -60,28 +59,22 @@ public abstract class TileAlvearyClimatiser extends TileAlveary implements IEner
|
||||
if (!this.hasMaster())
|
||||
return;
|
||||
|
||||
if (energyManager.consumeEnergyToDoWork()) {
|
||||
boolean wasInactive = (workingTime == 0);
|
||||
|
||||
transferTime = energyManager.getEnergyPerWork();
|
||||
|
||||
if (animationDelay <= 0) {
|
||||
animationDelay = 100;
|
||||
sendNetworkUpdate();
|
||||
} else
|
||||
animationDelay = 100;
|
||||
if (workingTime < 20 && energyManager.consumeEnergyToDoWork()) {
|
||||
// consume 10 RF per tick of work
|
||||
workingTime += energyManager.getEnergyPerWork() / 10;
|
||||
}
|
||||
|
||||
if (transferTime > 0) {
|
||||
transferTime--;
|
||||
if (workingTime > 0) {
|
||||
workingTime--;
|
||||
IAlvearyComponent component = (IAlvearyComponent) this.getCentralTE();
|
||||
if (component != null)
|
||||
component.addTemperatureChange(climateControl.changePerTransfer, climateControl.boundaryDown, climateControl.boundaryUp);
|
||||
}
|
||||
|
||||
if (animationDelay > 0) {
|
||||
animationDelay--;
|
||||
if (animationDelay <= 0)
|
||||
sendNetworkUpdate();
|
||||
if ((wasInactive && workingTime > 0) || (!wasInactive && workingTime == 0)) {
|
||||
sendNetworkUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +86,7 @@ public abstract class TileAlvearyClimatiser extends TileAlveary implements IEner
|
||||
/* TEXTURES */
|
||||
@Override
|
||||
public int getIcon(int side, int metadata) {
|
||||
if (animationDelay > 0)
|
||||
if (workingTime > 0)
|
||||
return textureOn;
|
||||
else
|
||||
return textureOff;
|
||||
@@ -104,23 +97,23 @@ public abstract class TileAlvearyClimatiser extends TileAlveary implements IEner
|
||||
public void readFromNBT(NBTTagCompound nbttagcompound) {
|
||||
super.readFromNBT(nbttagcompound);
|
||||
energyManager.readFromNBT(nbttagcompound);
|
||||
transferTime = nbttagcompound.getInteger("Heating");
|
||||
workingTime = nbttagcompound.getInteger("Heating");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbttagcompound) {
|
||||
super.writeToNBT(nbttagcompound);
|
||||
energyManager.writeToNBT(nbttagcompound);
|
||||
nbttagcompound.setInteger("Heating", transferTime);
|
||||
nbttagcompound.setInteger("Heating", workingTime);
|
||||
}
|
||||
|
||||
|
||||
/* NETWORK */
|
||||
@Override
|
||||
public void fromPacketPayload(PacketPayload payload) {
|
||||
short delay = payload.shortPayload[0];
|
||||
if (animationDelay != delay) {
|
||||
animationDelay = delay;
|
||||
short workingTime = payload.shortPayload[0];
|
||||
if (this.workingTime != workingTime) {
|
||||
this.workingTime = workingTime;
|
||||
worldObj.func_147479_m(xCoord, yCoord, zCoord);
|
||||
}
|
||||
}
|
||||
@@ -128,7 +121,7 @@ public abstract class TileAlvearyClimatiser extends TileAlveary implements IEner
|
||||
@Override
|
||||
public PacketPayload getPacketPayload() {
|
||||
PacketPayload payload = new PacketPayload(0, 1);
|
||||
payload.shortPayload[0] = (short) animationDelay;
|
||||
payload.shortPayload[0] = (short) workingTime;
|
||||
return payload;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ public class TileAlvearyFan extends TileAlvearyClimatiser {
|
||||
public static final int BLOCK_META = 3;
|
||||
|
||||
public TileAlvearyFan() {
|
||||
super(new ClimateControl(-0.01f, 0.05f, 2.5f), BlockAlveary.TX_71_FNOF, BlockAlveary.TX_72_FNON, BLOCK_META);
|
||||
super(new ClimateControl(-0.01f, 0.05f, 2.5f), BlockAlveary.ALVEARY_FAN_OFF, BlockAlveary.ALVEARY_FAN_ON, BLOCK_META);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -12,14 +12,11 @@ package forestry.apiculture.gadgets;
|
||||
|
||||
public class TileAlvearyHeater extends TileAlvearyClimatiser {
|
||||
|
||||
public static final int TEXTURE_OFF = 57;
|
||||
public static final int TEXTURE_ON = 58;
|
||||
|
||||
/* CONSTANTS */
|
||||
public static final int BLOCK_META = 4;
|
||||
|
||||
public TileAlvearyHeater() {
|
||||
super(new ClimateControl(0.01f, 0.0f, 2.5f), BlockAlveary.TX_57_HTOF, BlockAlveary.TX_58_HTON, BLOCK_META);
|
||||
super(new ClimateControl(0.01f, 0.0f, 2.5f), BlockAlveary.ALVEARY_HEATER_OFF, BlockAlveary.ALVEARY_HEATER_ON, BLOCK_META);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -187,7 +187,7 @@ public class TileAlvearyHygroregulator extends TileAlveary implements IInventory
|
||||
/* TEXTURES */
|
||||
@Override
|
||||
public int getIcon(int side, int metadata) {
|
||||
return BlockAlveary.TX_73_VLVE;
|
||||
return BlockAlveary.ALVEARY_HYGRO;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -83,6 +83,17 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IS
|
||||
player.openGui(ForestryAPI.instance, GuiId.AlvearyGUI.ordinal(), worldObj, masterX, masterY, masterZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() {
|
||||
super.validate();
|
||||
setBiomeInformation();
|
||||
}
|
||||
|
||||
private void setBiomeInformation() {
|
||||
this.biome = Utils.getBiomeAt(worldObj, xCoord, zCoord);
|
||||
setErrorState(EnumErrorCode.OK);
|
||||
}
|
||||
|
||||
/* LOADING & SAVING */
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbttagcompound) {
|
||||
@@ -112,8 +123,7 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IS
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
this.biome = Utils.getBiomeAt(worldObj, xCoord, zCoord);
|
||||
setErrorState(EnumErrorCode.OK);
|
||||
setBiomeInformation();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -163,9 +163,9 @@ public class TileAlvearySwarmer extends TileAlveary implements ISidedInventory {
|
||||
return BlockAlveary.BOTTOM;
|
||||
|
||||
if (pendingSpawns.size() > 0)
|
||||
return BlockAlveary.TX_56_SWON;
|
||||
return BlockAlveary.ALVEARY_SWARMER_ON;
|
||||
else
|
||||
return BlockAlveary.TX_55_SWOF;
|
||||
return BlockAlveary.ALVEARY_SWARMER_OFF;
|
||||
}
|
||||
|
||||
/* SAVING & LOADING */
|
||||
|
||||
@@ -112,7 +112,7 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies
|
||||
int highest = 0;
|
||||
exclude.add(species);
|
||||
|
||||
for(IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES.ordinal())) {
|
||||
for(IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES)) {
|
||||
if(!exclude.contains(mutation.getAllele0())) {
|
||||
int otherAdvance = getGeneticAdvancement(mutation.getAllele0(), exclude);
|
||||
if(otherAdvance > highest)
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package forestry.apiculture.genetics;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.world.World;
|
||||
import forestry.api.apiculture.IBeeGenome;
|
||||
import forestry.api.apiculture.IBeeHousing;
|
||||
import forestry.api.genetics.IEffectData;
|
||||
|
||||
public class AlleleEffectFertile extends AlleleEffectThrottled {
|
||||
|
||||
public static final int MAX_BLOCK_FIND_TRIES = 5;
|
||||
|
||||
public AlleleEffectFertile(String uid) {
|
||||
super(uid, "fertile", false, 6, true, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) {
|
||||
|
||||
if (isHalted(storedData, housing)) {
|
||||
return storedData;
|
||||
}
|
||||
|
||||
World world = housing.getWorld();
|
||||
int territorySize[] = genome.getTerritory();
|
||||
|
||||
int blockX = getRandomOffset(world.rand, housing.getXCoord(), territorySize[0]);
|
||||
int blockZ = getRandomOffset(world.rand, housing.getZCoord(), territorySize[2]);
|
||||
int blockMaxY = housing.getYCoord() + territorySize[1] / 2 + 1;
|
||||
int blockMinY = housing.getYCoord() - (territorySize[1] / 2) - 1;
|
||||
|
||||
for (int attempt = 0; attempt < MAX_BLOCK_FIND_TRIES; ++attempt) {
|
||||
if (tryTickColumn(world, blockX, blockZ, blockMaxY, blockMinY)) {
|
||||
break;
|
||||
}
|
||||
blockX = getRandomOffset(world.rand, housing.getXCoord(), territorySize[0]);
|
||||
blockZ = getRandomOffset(world.rand, housing.getZCoord(), territorySize[2]);
|
||||
}
|
||||
|
||||
return storedData;
|
||||
}
|
||||
|
||||
private int getRandomOffset(Random random, int centrePos, int offset) {
|
||||
return centrePos + random.nextInt(offset) - (offset / 2);
|
||||
}
|
||||
|
||||
private boolean tryTickColumn(World world, int x, int z, int maxY, int minY) {
|
||||
for (int y = maxY; y >= minY; --y) {
|
||||
if (!world.isAirBlock(x, y, z)) {
|
||||
Block block = world.getBlock(x, y, z);
|
||||
world.scheduleBlockUpdate(x, y, z, block, 5);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,25 +10,25 @@
|
||||
******************************************************************************/
|
||||
package forestry.apiculture.genetics;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import forestry.api.apiculture.IBeeGenome;
|
||||
import forestry.api.apiculture.IBeeHousing;
|
||||
import forestry.api.genetics.IEffectData;
|
||||
import forestry.apiculture.items.ItemArmorApiarist;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
import forestry.api.apiculture.IBeeGenome;
|
||||
import forestry.api.apiculture.IBeeHousing;
|
||||
import forestry.api.genetics.IEffectData;
|
||||
import java.util.List;
|
||||
|
||||
public class AlleleEffectPotion extends AlleleEffectThrottled {
|
||||
|
||||
private int potionId = 0;
|
||||
private final Potion potion;
|
||||
private final int duration;
|
||||
|
||||
public AlleleEffectPotion(String uid, String name, boolean isDominant, Potion potion, int duration, boolean requiresWorking) {
|
||||
super(uid, name, isDominant, 200, requiresWorking, false);
|
||||
potionId = potion.getId();
|
||||
this.potion = potion;
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
@@ -39,12 +39,29 @@ public class AlleleEffectPotion extends AlleleEffectThrottled {
|
||||
return storedData;
|
||||
|
||||
AxisAlignedBB beatifyBox = getBounding(genome, housing, 1.0f);
|
||||
@SuppressWarnings("rawtypes")
|
||||
List list = housing.getWorld().getEntitiesWithinAABB(EntityPlayer.class, beatifyBox);
|
||||
|
||||
for (Object obj : list) {
|
||||
EntityPlayer player = (EntityPlayer) obj;
|
||||
player.addPotionEffect(new PotionEffect(potionId, duration, 0));
|
||||
for (Object entity : list) {
|
||||
if (!(entity instanceof EntityPlayer))
|
||||
continue;
|
||||
|
||||
EntityPlayer player = (EntityPlayer) entity;
|
||||
|
||||
int duration = this.duration;
|
||||
if (potion.isBadEffect()) {
|
||||
// Players are not attacked if they wear a full set of apiarist's armor.
|
||||
int count = ItemArmorApiarist.wearsItems((EntityPlayer) entity, getUID(), true);
|
||||
if (count >= 4)
|
||||
continue; // Full set, no damage/effect
|
||||
else if (count == 3)
|
||||
duration = this.duration / 4;
|
||||
else if (count == 2)
|
||||
duration = this.duration / 2;
|
||||
else if (count == 1)
|
||||
duration = this.duration * 3 / 4;
|
||||
}
|
||||
|
||||
player.addPotionEffect(new PotionEffect(potion.getId(), duration, 0));
|
||||
}
|
||||
|
||||
return storedData;
|
||||
|
||||
@@ -10,16 +10,15 @@
|
||||
******************************************************************************/
|
||||
package forestry.apiculture.genetics;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import forestry.api.apiculture.EnumBeeChromosome;
|
||||
import forestry.api.apiculture.IApiaristTracker;
|
||||
import forestry.api.genetics.IBreedingTracker;
|
||||
import forestry.api.genetics.IIndividual;
|
||||
import forestry.core.genetics.BreedingTracker;
|
||||
import forestry.plugins.PluginApiculture;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class ApiaristTracker extends BreedingTracker implements IApiaristTracker {
|
||||
|
||||
@@ -61,7 +60,7 @@ public class ApiaristTracker extends BreedingTracker implements IApiaristTracker
|
||||
public void registerPickup(IIndividual individual) {
|
||||
if(!individual.getGenome().getPrimary().getRoot().getUID().equals(BeeHelper.UID))
|
||||
return;
|
||||
if(!individual.isPureBred(0))
|
||||
if(!individual.isPureBred(EnumBeeChromosome.SPECIES))
|
||||
return;
|
||||
if(PluginApiculture.beeInterface.getCombinations(individual.getGenome().getPrimary()).size() > 0)
|
||||
return;
|
||||
|
||||
@@ -131,7 +131,7 @@ public class Bee extends IndividualLiving implements IBee {
|
||||
if (!effect.isCombinable())
|
||||
return storedData;
|
||||
|
||||
IAlleleBeeEffect secondary = (IAlleleBeeEffect) genome.getInactiveAllele(EnumBeeChromosome.EFFECT.ordinal());
|
||||
IAlleleBeeEffect secondary = (IAlleleBeeEffect) genome.getInactiveAllele(EnumBeeChromosome.EFFECT);
|
||||
if (!secondary.isCombinable())
|
||||
return storedData;
|
||||
|
||||
@@ -158,7 +158,7 @@ public class Bee extends IndividualLiving implements IBee {
|
||||
if (!effect.isCombinable())
|
||||
return storedData;
|
||||
|
||||
IAlleleBeeEffect secondary = (IAlleleBeeEffect) genome.getInactiveAllele(EnumBeeChromosome.EFFECT.ordinal());
|
||||
IAlleleBeeEffect secondary = (IAlleleBeeEffect) genome.getInactiveAllele(EnumBeeChromosome.EFFECT);
|
||||
if (!secondary.isCombinable())
|
||||
return storedData;
|
||||
|
||||
@@ -351,22 +351,22 @@ public class Bee extends IndividualLiving implements IBee {
|
||||
// You analyzed it? Juicy tooltip coming up!
|
||||
IAlleleBeeSpecies primary = genome.getPrimary();
|
||||
IAlleleBeeSpecies secondary = genome.getSecondary();
|
||||
if (!isPureBred(EnumBeeChromosome.SPECIES.ordinal()))
|
||||
if (!isPureBred(EnumBeeChromosome.SPECIES))
|
||||
list.add("\u00A79" + StringUtil.localize("bees.hybrid").replaceAll("%PRIMARY",primary.getName()).replaceAll("%SECONDARY",secondary.getName()));
|
||||
|
||||
IAllele speed = genome.getActiveAllele(EnumBeeChromosome.SPEED.ordinal());
|
||||
IAllele speed = genome.getActiveAllele(EnumBeeChromosome.SPEED);
|
||||
String customWorker = "tooltip.worker." + speed.getUnlocalizedName().replaceFirst("gui.", "");
|
||||
if (StringUtil.canTranslate(customWorker))
|
||||
list.add(StringUtil.localize(customWorker));
|
||||
else
|
||||
list.add(speed.getName() + " " + StringUtil.localize("gui.worker"));
|
||||
|
||||
list.add(genome.getActiveAllele(EnumBeeChromosome.LIFESPAN.ordinal()).getName() + " " + StringUtil.localize("gui.life"));
|
||||
list.add(genome.getActiveAllele(EnumBeeChromosome.LIFESPAN).getName() + " " + StringUtil.localize("gui.life"));
|
||||
|
||||
IAlleleTolerance tempTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE);
|
||||
list.add("\u00A7aT: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getTemperature()) + " / " + tempTolerance.getName());
|
||||
|
||||
IAlleleTolerance humidTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE);
|
||||
list.add("\u00A7aH: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getHumidity()) + " / " + humidTolerance.getName());
|
||||
|
||||
list.add(genome.getFlowerProvider().getDescription());
|
||||
|
||||
@@ -82,73 +82,73 @@ public class BeeGenome extends Genome implements IBeeGenome {
|
||||
// / INFORMATION RETRIEVAL
|
||||
@Override
|
||||
public IAlleleBeeSpecies getPrimary() {
|
||||
return (IAlleleBeeSpecies) getActiveAllele(EnumBeeChromosome.SPECIES.ordinal());
|
||||
return (IAlleleBeeSpecies) getActiveAllele(EnumBeeChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleBeeSpecies getSecondary() {
|
||||
return (IAlleleBeeSpecies) getInactiveAllele(EnumBeeChromosome.SPECIES.ordinal());
|
||||
return (IAlleleBeeSpecies) getInactiveAllele(EnumBeeChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getSpeed() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumBeeChromosome.SPEED.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumBeeChromosome.SPEED)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLifespan() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.LIFESPAN.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.LIFESPAN)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFertility() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.FERTILITY.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.FERTILITY)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumTolerance getToleranceTemp() {
|
||||
return ((AlleleTolerance) getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal())).getValue();
|
||||
return ((AlleleTolerance) getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getNocturnal() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.NOCTURNAL.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.NOCTURNAL)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumTolerance getToleranceHumid() {
|
||||
return ((AlleleTolerance) getActiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal())).getValue();
|
||||
return ((AlleleTolerance) getActiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getTolerantFlyer() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.TOLERANT_FLYER.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.TOLERANT_FLYER)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getCaveDwelling() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.CAVE_DWELLING.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumBeeChromosome.CAVE_DWELLING)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFlowerProvider getFlowerProvider() {
|
||||
return ((IAlleleFlowers) getActiveAllele(EnumBeeChromosome.FLOWER_PROVIDER.ordinal())).getProvider();
|
||||
return ((IAlleleFlowers) getActiveAllele(EnumBeeChromosome.FLOWER_PROVIDER)).getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFlowering() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.FLOWERING.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumBeeChromosome.FLOWERING)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getTerritory() {
|
||||
Vect area = ((AlleleArea) getActiveAllele(EnumBeeChromosome.TERRITORY.ordinal())).getArea();
|
||||
Vect area = ((AlleleArea) getActiveAllele(EnumBeeChromosome.TERRITORY)).getArea();
|
||||
return new int[] { area.x, area.y, area.z };
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleBeeEffect getEffect() {
|
||||
return (IAlleleBeeEffect) getActiveAllele(EnumBeeChromosome.EFFECT.ordinal());
|
||||
return (IAlleleBeeEffect) getActiveAllele(EnumBeeChromosome.EFFECT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -548,6 +548,24 @@ public class BeeTemplates {
|
||||
alleles[EnumBeeChromosome.SPECIES.ordinal()] = Allele.speciesRural;
|
||||
return alleles;
|
||||
}
|
||||
|
||||
public static IAllele[] getFarmerlyTemplate() {
|
||||
IAllele[] alleles = getAgrarianBranchTemplate();
|
||||
alleles[EnumBeeChromosome.SPECIES.ordinal()] = Allele.speciesFarmerly;
|
||||
alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlow;
|
||||
alleles[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.territoryLarge;
|
||||
return alleles;
|
||||
}
|
||||
|
||||
public static IAllele[] getAgrarianTemplate() {
|
||||
IAllele[] alleles = getAgrarianBranchTemplate();
|
||||
alleles[EnumBeeChromosome.SPECIES.ordinal()] = Allele.speciesArgrarian;
|
||||
alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlow;
|
||||
alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceBoth2;
|
||||
alleles[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectFertile;
|
||||
alleles[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.territoryLarge;
|
||||
return alleles;
|
||||
}
|
||||
|
||||
// / BOGGY BRANCH
|
||||
public static IAllele[] getBoggyBranchTemplate() {
|
||||
|
||||
@@ -12,7 +12,6 @@ package forestry.apiculture.gui;
|
||||
|
||||
import forestry.api.apiculture.EnumBeeChromosome;
|
||||
import forestry.api.apiculture.EnumBeeType;
|
||||
import forestry.api.apiculture.IAlleleBeeEffect;
|
||||
import forestry.api.apiculture.IBee;
|
||||
import forestry.api.genetics.AlleleManager;
|
||||
import forestry.api.genetics.IAlleleFlowers;
|
||||
@@ -35,13 +34,8 @@ import java.util.ArrayList;
|
||||
|
||||
public class GuiBeealyzer extends GuiAlyzer {
|
||||
|
||||
private ItemStack[] tempProductList;
|
||||
|
||||
public GuiBeealyzer(EntityPlayer player, BeealyzerInventory inventory) {
|
||||
super(AlleleManager.alleleRegistry.getSpeciesRoot("rootBees"), player,
|
||||
new ContainerBeealyzer(player.inventory, inventory), inventory, 1, inventory.getSizeInventory());
|
||||
|
||||
guiName = "gui.beealyzer";
|
||||
super("rootBees", player, new ContainerBeealyzer(player.inventory, inventory), inventory, "gui.beealyzer");
|
||||
|
||||
ArrayList<ItemStack> beeList = new ArrayList<ItemStack>();
|
||||
((ItemBeeGE) ForestryItem.beeDroneGE.item()).addCreativeItems(beeList, false);
|
||||
@@ -111,36 +105,36 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
|
||||
drawSpeciesRow(StringUtil.localize("gui.species"), bee, EnumBeeChromosome.SPECIES, checkCustomName(customPrimaryBeeKey), checkCustomName(customSecondaryBeeKey));
|
||||
}
|
||||
drawRow(StringUtil.localize("gui.lifespan"), bee.getGenome().getActiveAllele(EnumBeeChromosome.LIFESPAN.ordinal()).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.LIFESPAN.ordinal()).getName(), bee,
|
||||
drawRow(StringUtil.localize("gui.lifespan"), bee.getGenome().getActiveAllele(EnumBeeChromosome.LIFESPAN).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.LIFESPAN).getName(), bee,
|
||||
EnumBeeChromosome.LIFESPAN);
|
||||
|
||||
drawRow(StringUtil.localize("gui.speed"), bee.getGenome().getActiveAllele(EnumBeeChromosome.SPEED.ordinal()).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.SPEED.ordinal()).getName(), bee, EnumBeeChromosome.SPEED);
|
||||
drawRow(StringUtil.localize("gui.speed"), bee.getGenome().getActiveAllele(EnumBeeChromosome.SPEED).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.SPEED).getName(), bee, EnumBeeChromosome.SPEED);
|
||||
|
||||
drawRow(StringUtil.localize("gui.pollination"), bee.getGenome().getActiveAllele(EnumBeeChromosome.FLOWERING.ordinal()).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.FLOWERING.ordinal()).getName(), bee,
|
||||
drawRow(StringUtil.localize("gui.pollination"), bee.getGenome().getActiveAllele(EnumBeeChromosome.FLOWERING).getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.FLOWERING).getName(), bee,
|
||||
EnumBeeChromosome.FLOWERING);
|
||||
|
||||
drawRow(StringUtil.localize("gui.flowers"), bee.getGenome().getFlowerProvider().getDescription(),
|
||||
((IAlleleFlowers) bee.getGenome().getInactiveAllele(EnumBeeChromosome.FLOWER_PROVIDER.ordinal())).getProvider()
|
||||
((IAlleleFlowers) bee.getGenome().getInactiveAllele(EnumBeeChromosome.FLOWER_PROVIDER)).getProvider()
|
||||
.getDescription(), bee, EnumBeeChromosome.FLOWER_PROVIDER);
|
||||
|
||||
drawLine(StringUtil.localize("gui.fertility"), COLUMN_0);
|
||||
drawFertilityInfo(bee.getGenome().getFertility(), COLUMN_1, getColorCoding(bee.getGenome().getActiveAllele(EnumBeeChromosome.FERTILITY.ordinal())
|
||||
drawFertilityInfo(bee.getGenome().getFertility(), COLUMN_1, getColorCoding(bee.getGenome().getActiveAllele(EnumBeeChromosome.FERTILITY)
|
||||
.isDominant()), 0);
|
||||
drawFertilityInfo(((IAlleleInteger) bee.getGenome().getInactiveAllele(EnumBeeChromosome.FERTILITY.ordinal())).getValue(), COLUMN_2, getColorCoding(bee
|
||||
.getGenome().getInactiveAllele(EnumBeeChromosome.FERTILITY.ordinal()).isDominant()), 0);
|
||||
drawFertilityInfo(((IAlleleInteger) bee.getGenome().getInactiveAllele(EnumBeeChromosome.FERTILITY)).getValue(), COLUMN_2, getColorCoding(bee
|
||||
.getGenome().getInactiveAllele(EnumBeeChromosome.FERTILITY).isDominant()), 0);
|
||||
|
||||
newLine();
|
||||
|
||||
int[] areaAr = bee.getGenome().getTerritory();
|
||||
Vect area = new Vect(areaAr[0], areaAr[1], areaAr[2]);
|
||||
drawRow(StringUtil.localize("gui.area"), area.toString(), ((AlleleArea) bee.getGenome().getInactiveAllele(EnumBeeChromosome.TERRITORY.ordinal()))
|
||||
drawRow(StringUtil.localize("gui.area"), area.toString(), ((AlleleArea) bee.getGenome().getInactiveAllele(EnumBeeChromosome.TERRITORY))
|
||||
.getArea().toString(), bee, EnumBeeChromosome.TERRITORY);
|
||||
|
||||
drawRow(StringUtil.localize("gui.effect"), bee.getGenome().getEffect().getName(),
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.EFFECT.ordinal()).getName(), bee,
|
||||
bee.getGenome().getInactiveAllele(EnumBeeChromosome.EFFECT).getName(), bee,
|
||||
EnumBeeChromosome.EFFECT);
|
||||
|
||||
newLine();
|
||||
@@ -161,8 +155,8 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
drawRow(StringUtil.localize("gui.climate"), AlleleManager.climateHelper.toDisplay(bee.getGenome().getPrimary().getTemperature()),
|
||||
AlleleManager.climateHelper.toDisplay(bee.getGenome().getSecondary().getTemperature()), bee, EnumBeeChromosome.SPECIES);
|
||||
|
||||
IAlleleTolerance tempToleranceActive = (IAlleleTolerance)bee.getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempToleranceInactive = (IAlleleTolerance)bee.getGenome().getInactiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempToleranceActive = (IAlleleTolerance)bee.getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE);
|
||||
IAlleleTolerance tempToleranceInactive = (IAlleleTolerance)bee.getGenome().getInactiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE);
|
||||
drawLine(StringUtil.localize("gui.temptol"), COLUMN_0);
|
||||
drawToleranceInfo(tempToleranceActive, COLUMN_1);
|
||||
drawToleranceInfo(tempToleranceInactive, COLUMN_2);
|
||||
@@ -172,8 +166,8 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
drawRow(StringUtil.localize("gui.humidity"), AlleleManager.climateHelper.toDisplay(bee.getGenome().getPrimary().getHumidity()),
|
||||
AlleleManager.climateHelper.toDisplay(bee.getGenome().getSecondary().getHumidity()), bee, EnumBeeChromosome.SPECIES);
|
||||
|
||||
IAlleleTolerance humidToleranceActive = (IAlleleTolerance)bee.getGenome().getActiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidToleranceInactive = (IAlleleTolerance)bee.getGenome().getInactiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidToleranceActive = (IAlleleTolerance)bee.getGenome().getActiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE);
|
||||
IAlleleTolerance humidToleranceInactive = (IAlleleTolerance)bee.getGenome().getInactiveAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE);
|
||||
drawLine(StringUtil.localize("gui.humidtol"), COLUMN_0);
|
||||
drawToleranceInfo(humidToleranceActive, COLUMN_1);
|
||||
drawToleranceInfo(humidToleranceInactive, COLUMN_2);
|
||||
@@ -191,7 +185,7 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
nocturnal0 = bee.getGenome().getPrimary().isNocturnal() ? yes : no;
|
||||
diurnal0 = !bee.getGenome().getPrimary().isNocturnal() ? yes : no;
|
||||
}
|
||||
if(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.NOCTURNAL.ordinal())).getValue()) {
|
||||
if(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.NOCTURNAL)).getValue()) {
|
||||
nocturnal1 = diurnal1 = yes;
|
||||
} else {
|
||||
nocturnal1 = bee.getGenome().getSecondary().isNocturnal() ? yes : no;
|
||||
@@ -209,13 +203,13 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
|
||||
String primary = StringUtil.readableBoolean(bee.getGenome().getTolerantFlyer(), yes, no);
|
||||
String secondary = StringUtil.readableBoolean(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.TOLERANT_FLYER.ordinal())).getValue(), yes,
|
||||
String secondary = StringUtil.readableBoolean(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.TOLERANT_FLYER)).getValue(), yes,
|
||||
no);
|
||||
|
||||
drawRow(StringUtil.localize("gui.flyer"), primary, secondary, bee, EnumBeeChromosome.TOLERANT_FLYER);
|
||||
|
||||
primary = StringUtil.readableBoolean(bee.getGenome().getCaveDwelling(), yes, no);
|
||||
secondary = StringUtil.readableBoolean(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.CAVE_DWELLING.ordinal())).getValue(), yes,
|
||||
secondary = StringUtil.readableBoolean(((AlleleBoolean) bee.getGenome().getInactiveAllele(EnumBeeChromosome.CAVE_DWELLING)).getValue(), yes,
|
||||
no);
|
||||
|
||||
drawRow(StringUtil.localize("gui.cave"), primary, secondary, bee, EnumBeeChromosome.CAVE_DWELLING);
|
||||
@@ -246,8 +240,6 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
float factor = this.factor;
|
||||
this.setFactor(1.0f);
|
||||
|
||||
tempProductList = bee.getProduceList();
|
||||
|
||||
startPage(COLUMN_0, COLUMN_1, COLUMN_2);
|
||||
|
||||
drawLine(StringUtil.localize("gui.beealyzer.produce") + ":", COLUMN_0);
|
||||
@@ -255,7 +247,7 @@ public class GuiBeealyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
|
||||
int x = COLUMN_0;
|
||||
for (ItemStack stack : tempProductList) {
|
||||
for (ItemStack stack : bee.getProduceList()) {
|
||||
widgetManager.add(new ItemStackWidget(adjustToFactor(x), adjustToFactor(getLineY()), stack));
|
||||
|
||||
x += 18;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class FruitProviderPod extends FruitProviderNone {
|
||||
if (type == EnumPodType.COCOA)
|
||||
return BlockUtil.tryPlantPot(world, x, y, z, Blocks.cocoa);
|
||||
else {
|
||||
return PluginArboriculture.treeInterface.setFruitBlock(world, (IAlleleFruit) genome.getActiveAllele(EnumTreeChromosome.FRUITS.ordinal()),
|
||||
return PluginArboriculture.treeInterface.setFruitBlock(world, (IAlleleFruit) genome.getActiveAllele(EnumTreeChromosome.FRUITS),
|
||||
genome.getSappiness(), type.uids, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeci
|
||||
int highest = 0;
|
||||
exclude.add(species);
|
||||
|
||||
for(IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES.ordinal())) {
|
||||
for(IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES)) {
|
||||
if(!exclude.contains(mutation.getAllele0())) {
|
||||
int otherAdvance = getGeneticAdvancement(mutation.getAllele0(), exclude);
|
||||
if(otherAdvance > highest)
|
||||
|
||||
@@ -108,7 +108,7 @@ public class Tree extends Individual implements ITree, ITreeGenData, IPlantable
|
||||
/* EFFECTS */
|
||||
@Override
|
||||
public IEffectData[] doEffect(IEffectData[] storedData, World world, int biomeid, int x, int y, int z) {
|
||||
IAlleleLeafEffect effect = (IAlleleLeafEffect) getGenome().getActiveAllele(EnumTreeChromosome.EFFECT.ordinal());
|
||||
IAlleleLeafEffect effect = (IAlleleLeafEffect) getGenome().getActiveAllele(EnumTreeChromosome.EFFECT);
|
||||
|
||||
if (effect == null)
|
||||
return null;
|
||||
@@ -119,7 +119,7 @@ public class Tree extends Individual implements ITree, ITreeGenData, IPlantable
|
||||
if (!effect.isCombinable())
|
||||
return storedData;
|
||||
|
||||
IAlleleLeafEffect secondary = (IAlleleLeafEffect) getGenome().getInactiveAllele(EnumTreeChromosome.EFFECT.ordinal());
|
||||
IAlleleLeafEffect secondary = (IAlleleLeafEffect) getGenome().getInactiveAllele(EnumTreeChromosome.EFFECT);
|
||||
if (!secondary.isCombinable())
|
||||
return storedData;
|
||||
|
||||
@@ -255,7 +255,7 @@ public class Tree extends Individual implements ITree, ITreeGenData, IPlantable
|
||||
|
||||
@Override
|
||||
public boolean isPureBred(EnumTreeChromosome chromosome) {
|
||||
return genome.getActiveAllele(chromosome.ordinal()).getUID().equals(genome.getInactiveAllele(chromosome.ordinal()).getUID());
|
||||
return genome.getActiveAllele(chromosome).getUID().equals(genome.getInactiveAllele(chromosome).getUID());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -279,16 +279,16 @@ public class Tree extends Individual implements ITree, ITreeGenData, IPlantable
|
||||
IAlleleTreeSpecies secondary = genome.getSecondary();
|
||||
if (!isPureBred(EnumTreeChromosome.SPECIES))
|
||||
list.add("\u00A79" + StringUtil.localize("trees.hybrid").replaceAll("%PRIMARY",primary.getName()).replaceAll("%SECONDARY",secondary.getName()));
|
||||
list.add(String.format("\u00A76S: %s, \u00A7cM: %s", genome.getActiveAllele(EnumTreeChromosome.SAPPINESS.ordinal()).getName(), genome.getActiveAllele(EnumTreeChromosome.MATURATION.ordinal()).getName()));
|
||||
list.add(String.format("\u00A7dH: %s, \u00A7bG: %sx%s", genome.getActiveAllele(EnumTreeChromosome.HEIGHT.ordinal()).getName(), genome.getGirth(), genome.getGirth()));
|
||||
list.add(String.format("\u00A76S: %s, \u00A7cM: %s", genome.getActiveAllele(EnumTreeChromosome.SAPPINESS).getName(), genome.getActiveAllele(EnumTreeChromosome.MATURATION).getName()));
|
||||
list.add(String.format("\u00A7dH: %s, \u00A7bG: %sx%s", genome.getActiveAllele(EnumTreeChromosome.HEIGHT).getName(), genome.getGirth(), genome.getGirth()));
|
||||
|
||||
list.add(String.format("\u00A7eS: %s, \u00A7fY: %s", genome.getActiveAllele(EnumTreeChromosome.FERTILITY.ordinal()).getName(), genome.getActiveAllele(EnumTreeChromosome.YIELD.ordinal()).getName()));
|
||||
list.add(String.format("\u00A7eS: %s, \u00A7fY: %s", genome.getActiveAllele(EnumTreeChromosome.FERTILITY).getName(), genome.getActiveAllele(EnumTreeChromosome.YIELD).getName()));
|
||||
|
||||
IAlleleBoolean primaryFireproof = (IAlleleBoolean)genome.getActiveAllele(EnumTreeChromosome.FIREPROOF.ordinal());
|
||||
IAlleleBoolean primaryFireproof = (IAlleleBoolean)genome.getActiveAllele(EnumTreeChromosome.FIREPROOF);
|
||||
if (primaryFireproof.getValue())
|
||||
list.add(String.format("\u00A7c%s", StatCollector.translateToLocal("for.gui.fireresist")));
|
||||
|
||||
IAllele fruit = getGenome().getActiveAllele(EnumTreeChromosome.FRUITS.ordinal());
|
||||
IAllele fruit = getGenome().getActiveAllele(EnumTreeChromosome.FRUITS);
|
||||
if(fruit != Allele.fruitNone) {
|
||||
String strike = "";
|
||||
if (!canBearFruit())
|
||||
|
||||
@@ -57,37 +57,37 @@ public class TreeGenome extends Genome implements ITreeGenome {
|
||||
|
||||
@Override
|
||||
public IAlleleTreeSpecies getPrimary() {
|
||||
return (IAlleleTreeSpecies) getActiveAllele(EnumTreeChromosome.SPECIES.ordinal());
|
||||
return (IAlleleTreeSpecies) getActiveAllele(EnumTreeChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleTreeSpecies getSecondary() {
|
||||
return (IAlleleTreeSpecies) getInactiveAllele(EnumTreeChromosome.SPECIES.ordinal());
|
||||
return (IAlleleTreeSpecies) getInactiveAllele(EnumTreeChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFruitProvider getFruitProvider() {
|
||||
return ((IAlleleFruit) getActiveAllele(EnumTreeChromosome.FRUITS.ordinal())).getProvider();
|
||||
return ((IAlleleFruit) getActiveAllele(EnumTreeChromosome.FRUITS)).getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGrowthProvider getGrowthProvider() {
|
||||
return ((IAlleleGrowth) getActiveAllele(EnumTreeChromosome.GROWTH.ordinal())).getProvider();
|
||||
return ((IAlleleGrowth) getActiveAllele(EnumTreeChromosome.GROWTH)).getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getHeight() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.HEIGHT.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.HEIGHT)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFertility() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.FERTILITY.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.FERTILITY)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getYield() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.YIELD.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumTreeChromosome.YIELD)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -96,7 +96,7 @@ public class TreeGenome extends Genome implements ITreeGenome {
|
||||
if (getChromosomes()[EnumTreeChromosome.SAPPINESS.ordinal()] == null)
|
||||
getChromosomes()[EnumTreeChromosome.SAPPINESS.ordinal()] = new Chromosome(Allele.sappinessLowest);
|
||||
|
||||
IAllele allele = getActiveAllele(EnumTreeChromosome.SAPPINESS.ordinal());
|
||||
IAllele allele = getActiveAllele(EnumTreeChromosome.SAPPINESS);
|
||||
// FIXME: More legacy handling
|
||||
if (allele instanceof IAlleleFloat)
|
||||
return ((IAlleleFloat) allele).getValue();
|
||||
@@ -109,10 +109,10 @@ public class TreeGenome extends Genome implements ITreeGenome {
|
||||
@Override
|
||||
public EnumSet<EnumPlantType> getPlantTypes() {
|
||||
// / FIXME: Needs some legacy handling.
|
||||
if (!(getActiveAllele(EnumTreeChromosome.PLANT.ordinal()) instanceof AllelePlantType))
|
||||
if (!(getActiveAllele(EnumTreeChromosome.PLANT) instanceof AllelePlantType))
|
||||
getChromosomes()[EnumTreeChromosome.PLANT.ordinal()] = new Chromosome(Allele.plantTypeNone);
|
||||
|
||||
return ((AllelePlantType) getActiveAllele(EnumTreeChromosome.PLANT.ordinal())).getPlantTypes();
|
||||
return ((AllelePlantType) getActiveAllele(EnumTreeChromosome.PLANT)).getPlantTypes();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -120,7 +120,7 @@ public class TreeGenome extends Genome implements ITreeGenome {
|
||||
if (getChromosomes()[EnumTreeChromosome.MATURATION.ordinal()] == null)
|
||||
getChromosomes()[EnumTreeChromosome.MATURATION.ordinal()] = new Chromosome(Allele.maturationSlowest);
|
||||
|
||||
return ((IAlleleInteger) getActiveAllele(EnumTreeChromosome.MATURATION.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumTreeChromosome.MATURATION)).getValue();
|
||||
}
|
||||
|
||||
private IAllele translateGirth(int girth) {
|
||||
@@ -136,12 +136,12 @@ public class TreeGenome extends Genome implements ITreeGenome {
|
||||
|
||||
@Override
|
||||
public int getGirth() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumTreeChromosome.GIRTH.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumTreeChromosome.GIRTH)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleLeafEffect getEffect() {
|
||||
return (IAlleleLeafEffect) getActiveAllele(EnumTreeChromosome.EFFECT.ordinal());
|
||||
return (IAlleleLeafEffect) getActiveAllele(EnumTreeChromosome.EFFECT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -42,10 +42,7 @@ import java.util.Locale;
|
||||
public class GuiTreealyzer extends GuiAlyzer {
|
||||
|
||||
public GuiTreealyzer(EntityPlayer player, TreealyzerInventory inventory) {
|
||||
super(AlleleManager.alleleRegistry.getSpeciesRoot("rootTrees"), player,
|
||||
new ContainerTreealyzer(player.inventory, inventory), inventory, 1, inventory.getSizeInventory());
|
||||
|
||||
guiName = "gui.treealyzer";
|
||||
super("rootTrees", player, new ContainerTreealyzer(player.inventory, inventory), inventory, "gui.treealyzer");
|
||||
|
||||
ArrayList<ItemStack> treeList = new ArrayList<ItemStack>();
|
||||
((ItemGermlingGE) ForestryItem.sapling.item()).addCreativeItems(treeList, false);
|
||||
@@ -127,42 +124,42 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
|
||||
drawLine(StringUtil.localize("gui.saplings"), COLUMN_0);
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.FERTILITY.ordinal()).getName(), COLUMN_1, tree, EnumTreeChromosome.FERTILITY, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.FERTILITY.ordinal()).getName(), COLUMN_2, tree,
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.FERTILITY).getName(), COLUMN_1, tree, EnumTreeChromosome.FERTILITY, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.FERTILITY).getName(), COLUMN_2, tree,
|
||||
EnumTreeChromosome.FERTILITY, true);
|
||||
|
||||
newLine();
|
||||
|
||||
drawRow(StringUtil.localize("gui.maturity"), tree.getGenome().getActiveAllele(EnumTreeChromosome.MATURATION.ordinal()).getName(),
|
||||
tree.getGenome().getInactiveAllele(EnumTreeChromosome.MATURATION.ordinal()).getName(), tree,
|
||||
drawRow(StringUtil.localize("gui.maturity"), tree.getGenome().getActiveAllele(EnumTreeChromosome.MATURATION).getName(),
|
||||
tree.getGenome().getInactiveAllele(EnumTreeChromosome.MATURATION).getName(), tree,
|
||||
EnumTreeChromosome.MATURATION);
|
||||
|
||||
drawLine(StringUtil.localize("gui.height"), COLUMN_0);
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT.ordinal()).getName(), COLUMN_1, tree, EnumTreeChromosome.HEIGHT, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.HEIGHT.ordinal()).getName(), COLUMN_2, tree,
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT).getName(), COLUMN_1, tree, EnumTreeChromosome.HEIGHT, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.HEIGHT).getName(), COLUMN_2, tree,
|
||||
EnumTreeChromosome.HEIGHT, true);
|
||||
|
||||
newLine();
|
||||
|
||||
drawLine(StringUtil.localize("gui.girth"), COLUMN_0);
|
||||
drawLine(String.format("%sx%s", tree.getGenome().getGirth(), tree.getGenome().getGirth()), COLUMN_1, tree, EnumTreeChromosome.FERTILITY, false);
|
||||
int secondGirth = ((IAlleleInteger) tree.getGenome().getInactiveAllele(EnumTreeChromosome.GIRTH.ordinal())).getValue();
|
||||
int secondGirth = ((IAlleleInteger) tree.getGenome().getInactiveAllele(EnumTreeChromosome.GIRTH)).getValue();
|
||||
drawLine(String.format("%sx%s", secondGirth, secondGirth), COLUMN_2, tree, EnumTreeChromosome.FERTILITY, true);
|
||||
|
||||
newLine();
|
||||
|
||||
drawLine(StringUtil.localize("gui.yield"), COLUMN_0);
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.YIELD.ordinal()).getName(), COLUMN_1, tree, EnumTreeChromosome.YIELD, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.YIELD.ordinal()).getName(), COLUMN_2, tree,
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.YIELD).getName(), COLUMN_1, tree, EnumTreeChromosome.YIELD, false);
|
||||
drawLine(tree.getGenome().getInactiveAllele(EnumTreeChromosome.YIELD).getName(), COLUMN_2, tree,
|
||||
EnumTreeChromosome.YIELD, true);
|
||||
|
||||
newLine();
|
||||
|
||||
drawLine(StringUtil.localize("gui.sappiness"), COLUMN_0);
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS.ordinal()).getName(), COLUMN_1, tree, EnumTreeChromosome.SAPPINESS, false);
|
||||
drawLine(tree.getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS).getName(), COLUMN_1, tree, EnumTreeChromosome.SAPPINESS, false);
|
||||
|
||||
// FIXME: Legacy handling
|
||||
IAllele sappiness = tree.getGenome().getInactiveAllele(EnumTreeChromosome.SAPPINESS.ordinal());
|
||||
IAllele sappiness = tree.getGenome().getInactiveAllele(EnumTreeChromosome.SAPPINESS);
|
||||
String sap;
|
||||
if (sappiness instanceof IAlleleFloat)
|
||||
sap = sappiness.getName();
|
||||
@@ -176,8 +173,8 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
String yes = StringUtil.localize("yes");
|
||||
String no = StringUtil.localize("no");
|
||||
|
||||
AlleleBoolean primaryFireproof = (AlleleBoolean)tree.getGenome().getActiveAllele(EnumTreeChromosome.FIREPROOF.ordinal());
|
||||
AlleleBoolean secondaryFireproof = (AlleleBoolean)tree.getGenome().getInactiveAllele(EnumTreeChromosome.FIREPROOF.ordinal());
|
||||
AlleleBoolean primaryFireproof = (AlleleBoolean)tree.getGenome().getActiveAllele(EnumTreeChromosome.FIREPROOF);
|
||||
AlleleBoolean secondaryFireproof = (AlleleBoolean)tree.getGenome().getInactiveAllele(EnumTreeChromosome.FIREPROOF);
|
||||
|
||||
drawLine(StringUtil.localize("gui.fireproof"), COLUMN_0);
|
||||
drawLine(StringUtil.readableBoolean(primaryFireproof.getValue(), yes, no), COLUMN_1, tree, EnumTreeChromosome.FIREPROOF, false);
|
||||
@@ -186,7 +183,7 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
|
||||
drawRow(StringUtil.localize("gui.effect"), tree.getGenome().getEffect().getName(),
|
||||
tree.getGenome().getInactiveAllele(EnumTreeChromosome.EFFECT.ordinal()).getName(), tree,
|
||||
tree.getGenome().getInactiveAllele(EnumTreeChromosome.EFFECT).getName(), tree,
|
||||
EnumTreeChromosome.EFFECT);
|
||||
|
||||
newLine();
|
||||
@@ -210,7 +207,7 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
|
||||
drawLine(StringUtil.localize("gui.growth"), COLUMN_0);
|
||||
drawLine(tree.getGenome().getGrowthProvider().getDescription(), COLUMN_1, tree, EnumTreeChromosome.GROWTH, false);
|
||||
drawLine(((IAlleleGrowth) tree.getGenome().getInactiveAllele(EnumTreeChromosome.GROWTH.ordinal())).getProvider().getDescription(), COLUMN_2, tree,
|
||||
drawLine(((IAlleleGrowth) tree.getGenome().getInactiveAllele(EnumTreeChromosome.GROWTH)).getProvider().getDescription(), COLUMN_2, tree,
|
||||
EnumTreeChromosome.GROWTH, true);
|
||||
|
||||
newLine();
|
||||
@@ -228,7 +225,7 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
List<EnumPlantType> tolerated0 = new ArrayList<EnumPlantType>(tree.getGenome().getPlantTypes());
|
||||
List<EnumPlantType> tolerated1 = Collections.emptyList();
|
||||
|
||||
IAllele allele1 = tree.getGenome().getInactiveAllele(EnumTreeChromosome.PLANT.ordinal());
|
||||
IAllele allele1 = tree.getGenome().getInactiveAllele(EnumTreeChromosome.PLANT);
|
||||
if (allele1 instanceof AllelePlantType) {
|
||||
tolerated1 = new ArrayList<EnumPlantType>(((AllelePlantType) allele1).getPlantTypes());
|
||||
}
|
||||
@@ -264,18 +261,18 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
newLine();
|
||||
|
||||
int fruitDominance0 = getColorCoding(tree.getGenome().getActiveAllele(EnumTreeChromosome.FRUITS.ordinal()).isDominant());
|
||||
int fruitDominance1 = getColorCoding(tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS.ordinal()).isDominant());
|
||||
int fruitDominance0 = getColorCoding(tree.getGenome().getActiveAllele(EnumTreeChromosome.FRUITS).isDominant());
|
||||
int fruitDominance1 = getColorCoding(tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS).isDominant());
|
||||
|
||||
drawLine(StringUtil.localize("gui.fruits"), COLUMN_0);
|
||||
String strike = "";
|
||||
IAllele fruit0 = tree.getGenome().getActiveAllele(EnumTreeChromosome.FRUITS.ordinal());
|
||||
IAllele fruit0 = tree.getGenome().getActiveAllele(EnumTreeChromosome.FRUITS);
|
||||
if (!tree.canBearFruit() && fruit0 != Allele.fruitNone)
|
||||
strike = "\u00A7m";
|
||||
drawLine(strike + StringUtil.localize(tree.getGenome().getFruitProvider().getDescription()), COLUMN_1, fruitDominance0);
|
||||
|
||||
strike = "";
|
||||
IAllele fruit1 = tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS.ordinal());
|
||||
IAllele fruit1 = tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS);
|
||||
if (!tree.getGenome().getSecondary().getSuitableFruit().contains(((IAlleleFruit) fruit1).getProvider().getFamily()) && fruit1 != Allele.fruitNone)
|
||||
strike = "\u00A7m";
|
||||
drawLine(strike + StringUtil.localize(((IAlleleFruit) fruit1).getProvider().getDescription()), COLUMN_2, fruitDominance1);
|
||||
@@ -284,7 +281,7 @@ public class GuiTreealyzer extends GuiAlyzer {
|
||||
|
||||
drawLine(StringUtil.localize("gui.family"), COLUMN_0);
|
||||
IFruitFamily primary = tree.getGenome().getFruitProvider().getFamily();
|
||||
IFruitFamily secondary = ((IAlleleFruit) tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS.ordinal())).getProvider().getFamily();
|
||||
IFruitFamily secondary = ((IAlleleFruit) tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS)).getProvider().getFamily();
|
||||
|
||||
if (primary != null)
|
||||
drawLine(primary.getName(), COLUMN_1, fruitDominance0);
|
||||
|
||||
@@ -109,7 +109,7 @@ public abstract class WorldGenTree extends WorldGenArboriculture {
|
||||
|
||||
// if we have a fireproof tree, return the fireproof log
|
||||
if (block instanceof BlockLog) {
|
||||
IAlleleBoolean fireproof = (IAlleleBoolean) tree.getGenome().getActiveAllele(EnumTreeChromosome.FIREPROOF.ordinal());
|
||||
IAlleleBoolean fireproof = (IAlleleBoolean) tree.getGenome().getActiveAllele(EnumTreeChromosome.FIREPROOF);
|
||||
if (fireproof.getValue()) {
|
||||
BlockLog blockLog = (BlockLog) block;
|
||||
ForestryBlock fireproofLogBlock = BlockFireproofLog.getFireproofLog(blockLog);
|
||||
|
||||
@@ -101,4 +101,9 @@ public class BlockStainedGlass extends BlockBreakable {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canSilkHarvest() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -118,8 +118,8 @@ public class Allele implements IAllele {
|
||||
|
||||
// Agrarian branch
|
||||
public static AlleleSpecies speciesRural;
|
||||
// 41 Farmerly
|
||||
// 42 Agrarian
|
||||
public static AlleleSpecies speciesFarmerly;
|
||||
public static AlleleSpecies speciesArgrarian;
|
||||
|
||||
// Boggy branch
|
||||
public static AlleleSpecies speciesMarshy;
|
||||
@@ -391,6 +391,7 @@ public class Allele implements IAllele {
|
||||
public static Allele effectReanimation;
|
||||
public static Allele effectResurrection;
|
||||
public static Allele effectRepulsion;
|
||||
public static Allele effectFertile;
|
||||
|
||||
// / TREES // EFFECTS
|
||||
public static Allele leavesNone;
|
||||
|
||||
@@ -16,7 +16,6 @@ import forestry.api.genetics.IAlleleSpecies;
|
||||
import forestry.api.genetics.IChromosome;
|
||||
import forestry.api.genetics.IChromosomeType;
|
||||
import forestry.api.genetics.IGenome;
|
||||
import forestry.apiculture.items.ItemBeeGE;
|
||||
import forestry.core.config.Config;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -136,11 +135,21 @@ public abstract class Genome implements IGenome {
|
||||
return chromosomes[chromosome].getActiveAllele();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAllele getActiveAllele(IChromosomeType chromosomeType) {
|
||||
return chromosomes[chromosomeType.ordinal()].getActiveAllele();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAllele getInactiveAllele(int chromosome) {
|
||||
return chromosomes[chromosome].getInactiveAllele();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAllele getInactiveAllele(IChromosomeType chromosomeType) {
|
||||
return chromosomes[chromosomeType.ordinal()].getInactiveAllele();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGeneticEqual(IGenome other) {
|
||||
IChromosome[] genetics = other.getChromosomes();
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
******************************************************************************/
|
||||
package forestry.core.genetics;
|
||||
|
||||
import forestry.api.genetics.IChromosomeType;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import forestry.api.genetics.IIndividual;
|
||||
@@ -74,8 +75,13 @@ public abstract class Individual implements IIndividual {
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecated")
|
||||
public boolean isPureBred(int chromosomeOrdinal) {
|
||||
return getGenome().getActiveAllele(chromosomeOrdinal).getUID().equals(getGenome().getInactiveAllele(chromosomeOrdinal).getUID());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPureBred(IChromosomeType chromosomeType) {
|
||||
return getGenome().getActiveAllele(chromosomeType).getUID().equals(getGenome().getInactiveAllele(chromosomeType).getUID());
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,13 @@
|
||||
******************************************************************************/
|
||||
package forestry.core.genetics;
|
||||
|
||||
import forestry.api.genetics.IAllele;
|
||||
import forestry.api.genetics.IChromosome;
|
||||
import forestry.api.genetics.IChromosomeType;
|
||||
import forestry.api.genetics.IMutation;
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -18,13 +25,6 @@ import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import forestry.api.genetics.IAllele;
|
||||
import forestry.api.genetics.IChromosome;
|
||||
import forestry.api.genetics.IMutation;
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
|
||||
public abstract class SpeciesRoot implements ISpeciesRoot {
|
||||
|
||||
/* RESEARCH */
|
||||
@@ -74,6 +74,7 @@ public abstract class SpeciesRoot implements ISpeciesRoot {
|
||||
return combinations;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public Collection<? extends IMutation> getPaths(IAllele result, int chromosomeOrdinal) {
|
||||
ArrayList<IMutation> paths = new ArrayList<IMutation>();
|
||||
@@ -84,6 +85,16 @@ public abstract class SpeciesRoot implements ISpeciesRoot {
|
||||
return paths;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<? extends IMutation> getPaths(IAllele result, IChromosomeType chromosomeType) {
|
||||
ArrayList<IMutation> paths = new ArrayList<IMutation>();
|
||||
for (IMutation mutation : getMutations(false))
|
||||
if(mutation.getTemplate()[chromosomeType.ordinal()] == result)
|
||||
paths.add(mutation);
|
||||
|
||||
return paths;
|
||||
}
|
||||
|
||||
/* GENOME CONVERSIONS */
|
||||
@Override
|
||||
public IChromosome[] templateAsChromosomes(IAllele[] template) {
|
||||
|
||||
@@ -17,6 +17,7 @@ import forestry.api.genetics.IAllele;
|
||||
import forestry.api.genetics.IAlleleSpecies;
|
||||
import forestry.api.genetics.IAlleleTolerance;
|
||||
import forestry.api.genetics.IBreedingTracker;
|
||||
import forestry.api.genetics.IChromosomeType;
|
||||
import forestry.api.genetics.IClassification;
|
||||
import forestry.api.genetics.IClassification.EnumClassLevel;
|
||||
import forestry.api.genetics.IIndividual;
|
||||
@@ -49,19 +50,21 @@ public abstract class GuiAlyzer extends GuiForestry<TileForestry> {
|
||||
protected ISpeciesRoot speciesRoot;
|
||||
protected IBreedingTracker breedingTracker;
|
||||
|
||||
protected String guiName;
|
||||
protected final String guiName;
|
||||
|
||||
protected HashMap<String, ItemStack> iconStacks = new HashMap<String, ItemStack>();
|
||||
|
||||
public GuiAlyzer(ISpeciesRoot speciesRoot, EntityPlayer player, ContainerForestry container, IInventory inventory, int pageMax, int pageSize) {
|
||||
public GuiAlyzer(String speciesRoot, EntityPlayer player, ContainerForestry container, IInventory inventory, String guiName) {
|
||||
super(Defaults.TEXTURE_PATH_GUI + "/beealyzer2.png", container);
|
||||
|
||||
xSize = 246;
|
||||
ySize = 238;
|
||||
this.xSize = 246;
|
||||
this.ySize = 238;
|
||||
|
||||
this.guiName = guiName;
|
||||
|
||||
this.inventory = inventory;
|
||||
this.speciesRoot = speciesRoot;
|
||||
this.breedingTracker = speciesRoot.getBreedingTracker(player.worldObj, player.getGameProfile());
|
||||
this.speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(speciesRoot);
|
||||
this.breedingTracker = this.speciesRoot.getBreedingTracker(player.worldObj, player.getGameProfile());
|
||||
}
|
||||
|
||||
protected final int getColorCoding(boolean dominant) {
|
||||
@@ -71,26 +74,26 @@ public abstract class GuiAlyzer extends GuiForestry<TileForestry> {
|
||||
return fontColor.get("gui.beealyzer.recessive");
|
||||
}
|
||||
|
||||
protected final void drawLine(String text, int x, IIndividual individual, Enum<?> chromosome, boolean inactive) {
|
||||
protected final void drawLine(String text, int x, IIndividual individual, IChromosomeType chromosome, boolean inactive) {
|
||||
if (!inactive)
|
||||
drawLine(text, x, getColorCoding(individual.getGenome().getActiveAllele(chromosome.ordinal()).isDominant()));
|
||||
drawLine(text, x, getColorCoding(individual.getGenome().getActiveAllele(chromosome).isDominant()));
|
||||
else
|
||||
drawLine(text, x, getColorCoding(individual.getGenome().getInactiveAllele(chromosome.ordinal()).isDominant()));
|
||||
drawLine(text, x, getColorCoding(individual.getGenome().getInactiveAllele(chromosome).isDominant()));
|
||||
}
|
||||
|
||||
protected final void drawSplitLine(String text, int x, int maxWidth, IIndividual individual, Enum<?> chromosome, boolean inactive) {
|
||||
protected final void drawSplitLine(String text, int x, int maxWidth, IIndividual individual, IChromosomeType chromosome, boolean inactive) {
|
||||
if (!inactive)
|
||||
drawSplitLine(text, x, maxWidth, getColorCoding(individual.getGenome().getActiveAllele(chromosome.ordinal()).isDominant()));
|
||||
drawSplitLine(text, x, maxWidth, getColorCoding(individual.getGenome().getActiveAllele(chromosome).isDominant()));
|
||||
else
|
||||
drawSplitLine(text, x, maxWidth, getColorCoding(individual.getGenome().getInactiveAllele(chromosome.ordinal()).isDominant()));
|
||||
drawSplitLine(text, x, maxWidth, getColorCoding(individual.getGenome().getInactiveAllele(chromosome).isDominant()));
|
||||
}
|
||||
|
||||
protected final void drawRow(String text0, String text1, String text2, IIndividual individual, Enum<?> chromosome) {
|
||||
drawRow(text0, text1, text2, fontColor.get("gui.screen"), getColorCoding(individual.getGenome().getActiveAllele(chromosome.ordinal()).isDominant()),
|
||||
getColorCoding(individual.getGenome().getInactiveAllele(chromosome.ordinal()).isDominant()));
|
||||
protected final void drawRow(String text0, String text1, String text2, IIndividual individual, IChromosomeType chromosome) {
|
||||
drawRow(text0, text1, text2, fontColor.get("gui.screen"), getColorCoding(individual.getGenome().getActiveAllele(chromosome).isDominant()),
|
||||
getColorCoding(individual.getGenome().getInactiveAllele(chromosome).isDominant()));
|
||||
}
|
||||
|
||||
protected final void drawSpeciesRow(String text0, IIndividual individual, Enum<?> chromosome, String customPrimaryName, String customSecondaryName) {
|
||||
protected final void drawSpeciesRow(String text0, IIndividual individual, IChromosomeType chromosome, String customPrimaryName, String customSecondaryName) {
|
||||
IAlleleSpecies primary = individual.getGenome().getPrimary();
|
||||
IAlleleSpecies secondary = individual.getGenome().getSecondary();
|
||||
|
||||
@@ -116,7 +119,7 @@ public abstract class GuiAlyzer extends GuiForestry<TileForestry> {
|
||||
|
||||
}
|
||||
|
||||
protected final void drawSpeciesRow(String text0, IIndividual individual, Enum<?> chromosome){
|
||||
protected final void drawSpeciesRow(String text0, IIndividual individual, IChromosomeType chromosome){
|
||||
drawSpeciesRow(text0, individual, chromosome, null, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ package forestry.core.gui;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import forestry.api.arboriculture.EnumTreeChromosome;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -74,9 +75,8 @@ public class GuiNaturalistInventory extends GuiForestry<TileForestry> {
|
||||
startPage();
|
||||
|
||||
displaySpeciesInformation(true, individual.getGenome().getPrimary(), iconStacks.get(individual.getIdent()), 10);
|
||||
if (!individual.isPureBred(0))
|
||||
displaySpeciesInformation(individual.isAnalyzed(), individual.getGenome().getSecondary(), iconStacks.get(individual.getGenome().getSecondary().getUID()),
|
||||
10);
|
||||
if (!individual.isPureBred(EnumTreeChromosome.SPECIES))
|
||||
displaySpeciesInformation(individual.isAnalyzed(), individual.getGenome().getSecondary(), iconStacks.get(individual.getGenome().getSecondary().getUID()), 10);
|
||||
|
||||
endPage();
|
||||
}
|
||||
|
||||
@@ -48,6 +48,25 @@ public class ItemInventory implements IInventory, INBTTagable {
|
||||
readFromNBT(itemstack.getTagCompound());
|
||||
}
|
||||
|
||||
public static int getOccupiedSlotCount(ItemStack itemStack) {
|
||||
NBTTagCompound nbt = itemStack.getTagCompound();
|
||||
if (nbt == null)
|
||||
return 0;
|
||||
|
||||
int count = 0;
|
||||
if (nbt.hasKey("Items")) {
|
||||
NBTTagList nbttaglist = nbt.getTagList("Items", 10);
|
||||
for (int i = 0; i < nbttaglist.tagCount(); i++) {
|
||||
NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
|
||||
ItemStack itemStack1 = ItemStack.loadItemStackFromNBT(nbttagcompound1);
|
||||
if (itemStack1 != null && itemStack1.stackSize > 0) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
protected void setUID(boolean override) {
|
||||
if (parent.getTagCompound() == null)
|
||||
parent.setTagCompound(new NBTTagCompound());
|
||||
|
||||
@@ -41,7 +41,7 @@ public class ForestryModEnvWarningCallable implements ICrashCallable {
|
||||
Class<?> c = Class.forName("org.bukkit.Bukkit");
|
||||
modIDs.add("Bukkit, Cauldron, or other Bukkit replacement");
|
||||
}
|
||||
catch (Throwable t) {} // No need to do anything.
|
||||
catch (Throwable ignored) {} // No need to do anything.
|
||||
|
||||
// Add other bad mods here.
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
@@ -37,7 +36,6 @@ import net.minecraft.inventory.InventoryLargeChest;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityChest;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
@@ -45,7 +43,6 @@ import net.minecraft.world.biome.BiomeGenBase;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.cert.Certificate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
@@ -57,8 +54,7 @@ public class Utils {
|
||||
if (rand == null)
|
||||
rand = new Random();
|
||||
|
||||
int uid = rand.nextInt();
|
||||
return uid;
|
||||
return rand.nextInt();
|
||||
}
|
||||
|
||||
public static void dropInventory(TileForestry tile, World world, int x, int y, int z) {
|
||||
|
||||
@@ -43,6 +43,7 @@ public class TileWorktable extends TileBase implements ICrafter {
|
||||
|
||||
/* CONSTANTS */
|
||||
public final static int SLOT_CRAFTING_1 = 0;
|
||||
public final static int SLOT_CRAFTING_COUNT = 9;
|
||||
public final static int SLOT_CRAFTING_RESULT = 9;
|
||||
public final static short SLOT_INVENTORY_1 = 0;
|
||||
public final static short SLOT_INVENTORY_COUNT = 18;
|
||||
@@ -135,7 +136,7 @@ public class TileWorktable extends TileBase implements ICrafter {
|
||||
return false;
|
||||
|
||||
ItemStack recipeOutput = RECIPE_BRIDGE.findMatchingRecipe(crafting, world);
|
||||
return recipeOutput != null && cachedRecipeOutput.isItemEqual(recipeOutput);
|
||||
return ItemStack.areItemStacksEqual(cachedRecipeOutput, recipeOutput);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -447,7 +448,7 @@ public class TileWorktable extends TileBase implements ICrafter {
|
||||
return false;
|
||||
|
||||
// Need at least one matched set
|
||||
ItemStack[] set = craftingInventory.getStacks(SLOT_CRAFTING_1, 9);
|
||||
ItemStack[] set = craftingInventory.getStacks(SLOT_CRAFTING_1, SLOT_CRAFTING_COUNT);
|
||||
ItemStack[] stock = accessibleInventory.getStacks(SLOT_INVENTORY_1, SLOT_INVENTORY_COUNT);
|
||||
if (StackUtils.containsSets(set, stock, true, true) == 0)
|
||||
return false;
|
||||
@@ -495,7 +496,7 @@ public class TileWorktable extends TileBase implements ICrafter {
|
||||
if (recipeOutput == null)
|
||||
return false;
|
||||
|
||||
return recipeOutput.isItemEqual(currentRecipe.getRecipeOutput());
|
||||
return ItemStack.areItemStacksEqual(recipeOutput, currentRecipe.getRecipeOutput());
|
||||
}
|
||||
|
||||
private boolean removeResources(EntityPlayer player) {
|
||||
|
||||
@@ -67,19 +67,19 @@ public class Butterfly extends IndividualLiving implements IButterfly {
|
||||
public void addTooltip(List<String> list) {
|
||||
IAlleleButterflySpecies primary = genome.getPrimary();
|
||||
IAlleleButterflySpecies secondary = genome.getSecondary();
|
||||
if (!isPureBred(EnumButterflyChromosome.SPECIES.ordinal()))
|
||||
if (!isPureBred(EnumButterflyChromosome.SPECIES))
|
||||
list.add("\u00A79" + StringUtil.localize("butterflies.hybrid").replaceAll("%PRIMARY",primary.getName()).replaceAll("%SECONDARY",secondary.getName()));
|
||||
|
||||
if(getMate() != null)
|
||||
list.add("\u00A7c" + StringUtil.localize("gui.fecundated").toUpperCase(Locale.ENGLISH));
|
||||
list.add("\u00A7e" + genome.getActiveAllele(EnumButterflyChromosome.SIZE.ordinal()).getName());
|
||||
list.add("\u00A7f" + genome.getActiveAllele(EnumButterflyChromosome.SPEED.ordinal()).getName() + " " + StringUtil.localize("gui.flyer"));
|
||||
list.add(genome.getActiveAllele(EnumButterflyChromosome.LIFESPAN.ordinal()).getName() + " " + StringUtil.localize("gui.life"));
|
||||
list.add("\u00A7e" + genome.getActiveAllele(EnumButterflyChromosome.SIZE).getName());
|
||||
list.add("\u00A7f" + genome.getActiveAllele(EnumButterflyChromosome.SPEED).getName() + " " + StringUtil.localize("gui.flyer"));
|
||||
list.add(genome.getActiveAllele(EnumButterflyChromosome.LIFESPAN).getName() + " " + StringUtil.localize("gui.life"));
|
||||
|
||||
IAlleleTolerance tempTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE);
|
||||
list.add("\u00A7aT: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getTemperature()) + " / " + tempTolerance.getName());
|
||||
|
||||
IAlleleTolerance humidTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidTolerance = (IAlleleTolerance)getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE);
|
||||
list.add("\u00A7aH: " + AlleleManager.climateHelper.toDisplay(genome.getPrimary().getHumidity()) + " / " + humidTolerance.getName());
|
||||
|
||||
list.add("\u00A7c" + GenericRatings.rateActivityTime(genome.getNocturnal(), genome.getPrimary().isNocturnal()));
|
||||
|
||||
@@ -52,72 +52,72 @@ public class ButterflyGenome extends Genome implements IButterflyGenome {
|
||||
/* SPECIES */
|
||||
@Override
|
||||
public IAlleleButterflySpecies getPrimary() {
|
||||
return (IAlleleButterflySpecies) getActiveAllele(EnumButterflyChromosome.SPECIES.ordinal());
|
||||
return (IAlleleButterflySpecies) getActiveAllele(EnumButterflyChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleButterflySpecies getSecondary() {
|
||||
return (IAlleleButterflySpecies) getInactiveAllele(EnumButterflyChromosome.SPECIES.ordinal());
|
||||
return (IAlleleButterflySpecies) getInactiveAllele(EnumButterflyChromosome.SPECIES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getSize() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumButterflyChromosome.SIZE.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumButterflyChromosome.SIZE)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLifespan() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.LIFESPAN.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.LIFESPAN)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getSpeed() {
|
||||
return ((IAlleleFloat) getActiveAllele(EnumButterflyChromosome.SPEED.ordinal())).getValue();
|
||||
return ((IAlleleFloat) getActiveAllele(EnumButterflyChromosome.SPEED)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetabolism() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.METABOLISM.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.METABOLISM)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFertility() {
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.FERTILITY.ordinal())).getValue();
|
||||
return ((IAlleleInteger) getActiveAllele(EnumButterflyChromosome.FERTILITY)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumTolerance getToleranceTemp() {
|
||||
return ((AlleleTolerance) getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal())).getValue();
|
||||
return ((AlleleTolerance) getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumTolerance getToleranceHumid() {
|
||||
return ((AlleleTolerance) getActiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal())).getValue();
|
||||
return ((AlleleTolerance) getActiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getNocturnal() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.NOCTURNAL.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.NOCTURNAL)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getTolerantFlyer() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.TOLERANT_FLYER.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.TOLERANT_FLYER)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getFireResist() {
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.FIRE_RESIST.ordinal())).getValue();
|
||||
return ((AlleleBoolean) getActiveAllele(EnumButterflyChromosome.FIRE_RESIST)).getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFlowerProvider getFlowerProvider() {
|
||||
return ((IAlleleFlowers) getActiveAllele(EnumButterflyChromosome.FLOWER_PROVIDER.ordinal())).getProvider();
|
||||
return ((IAlleleFlowers) getActiveAllele(EnumButterflyChromosome.FLOWER_PROVIDER)).getProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAlleleButterflyEffect getEffect() {
|
||||
return (IAlleleButterflyEffect) getActiveAllele(EnumButterflyChromosome.EFFECT.ordinal());
|
||||
return (IAlleleButterflyEffect) getActiveAllele(EnumButterflyChromosome.EFFECT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -12,7 +12,6 @@ package forestry.lepidopterology.gui;
|
||||
|
||||
import forestry.api.genetics.AlleleManager;
|
||||
import forestry.api.genetics.IAllele;
|
||||
import forestry.api.genetics.IAlleleEffect;
|
||||
import forestry.api.genetics.IAlleleFlowers;
|
||||
import forestry.api.genetics.IAlleleInteger;
|
||||
import forestry.api.genetics.IAlleleTolerance;
|
||||
@@ -39,10 +38,7 @@ import java.util.Map;
|
||||
public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
|
||||
public GuiFlutterlyzer(EntityPlayer player, FlutterlyzerInventory inventory) {
|
||||
super(AlleleManager.alleleRegistry.getSpeciesRoot("rootButterflies"), player,
|
||||
new ContainerFlutterlyzer(player.inventory, inventory), inventory, 1, inventory.getSizeInventory());
|
||||
|
||||
guiName = "gui.flutterlyzer";
|
||||
super("rootButterflies", player, new ContainerFlutterlyzer(player.inventory, inventory), inventory, "gui.flutterlyzer");
|
||||
|
||||
ArrayList<ItemStack> butterflyList = new ArrayList<ItemStack>();
|
||||
((ItemButterflyGE) ForestryItem.butterflyGE.item()).addCreativeItems(butterflyList, false);
|
||||
@@ -105,33 +101,33 @@ public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
drawSpeciesRow(StringUtil.localize("gui.species"), butterfly, EnumButterflyChromosome.SPECIES);
|
||||
newLine();
|
||||
|
||||
drawRow(StringUtil.localize("gui.size"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SIZE.ordinal()).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SIZE.ordinal()).getName(), butterfly, EnumButterflyChromosome.SPEED);
|
||||
drawRow(StringUtil.localize("gui.size"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SIZE).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SIZE).getName(), butterfly, EnumButterflyChromosome.SPEED);
|
||||
|
||||
drawRow(StringUtil.localize("gui.lifespan"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.LIFESPAN.ordinal()).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.LIFESPAN.ordinal()).getName(), butterfly,
|
||||
drawRow(StringUtil.localize("gui.lifespan"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.LIFESPAN).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.LIFESPAN).getName(), butterfly,
|
||||
EnumButterflyChromosome.LIFESPAN);
|
||||
|
||||
drawRow(StringUtil.localize("gui.speed"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SPEED.ordinal()).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SPEED.ordinal()).getName(), butterfly, EnumButterflyChromosome.SPEED);
|
||||
drawRow(StringUtil.localize("gui.speed"), butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.SPEED).getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.SPEED).getName(), butterfly, EnumButterflyChromosome.SPEED);
|
||||
|
||||
drawRow(StringUtil.localize("gui.metabolism"), GenericRatings.rateMetabolism(butterfly.getGenome().getMetabolism()),
|
||||
GenericRatings.rateMetabolism(((IAlleleInteger) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.METABOLISM.ordinal())).getValue()), butterfly, EnumButterflyChromosome.METABOLISM);
|
||||
GenericRatings.rateMetabolism(((IAlleleInteger) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.METABOLISM)).getValue()), butterfly, EnumButterflyChromosome.METABOLISM);
|
||||
|
||||
drawLine(StringUtil.localize("gui.fertility"), COLUMN_0);
|
||||
drawFertilityInfo(butterfly.getGenome().getFertility(), COLUMN_1, getColorCoding(butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.FERTILITY.ordinal())
|
||||
drawFertilityInfo(butterfly.getGenome().getFertility(), COLUMN_1, getColorCoding(butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.FERTILITY)
|
||||
.isDominant()), 8);
|
||||
drawFertilityInfo(((IAlleleInteger) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY.ordinal())).getValue(), COLUMN_2, getColorCoding(butterfly
|
||||
.getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY.ordinal()).isDominant()), 8);
|
||||
drawFertilityInfo(((IAlleleInteger) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY)).getValue(), COLUMN_2, getColorCoding(butterfly
|
||||
.getGenome().getInactiveAllele(EnumButterflyChromosome.FERTILITY).isDominant()), 8);
|
||||
|
||||
newLine();
|
||||
|
||||
drawRow(StringUtil.localize("gui.flowers"), butterfly.getGenome().getFlowerProvider().getDescription(),
|
||||
((IAlleleFlowers) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FLOWER_PROVIDER.ordinal())).getProvider()
|
||||
((IAlleleFlowers) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FLOWER_PROVIDER)).getProvider()
|
||||
.getDescription(), butterfly, EnumButterflyChromosome.FLOWER_PROVIDER);
|
||||
|
||||
drawRow(StringUtil.localize("gui.effect"), butterfly.getGenome().getEffect().getName(),
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.EFFECT.ordinal()).getName(), butterfly,
|
||||
butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.EFFECT).getName(), butterfly,
|
||||
EnumButterflyChromosome.EFFECT);
|
||||
|
||||
newLine();
|
||||
@@ -152,8 +148,8 @@ public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
drawRow(StringUtil.localize("gui.climate"), AlleleManager.climateHelper.toDisplay(butterfly.getGenome().getPrimary().getTemperature()),
|
||||
AlleleManager.climateHelper.toDisplay(butterfly.getGenome().getPrimary().getTemperature()), butterfly, EnumButterflyChromosome.SPECIES);
|
||||
|
||||
IAlleleTolerance tempToleranceActive = (IAlleleTolerance)butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempToleranceInactive = (IAlleleTolerance)butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal());
|
||||
IAlleleTolerance tempToleranceActive = (IAlleleTolerance)butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE);
|
||||
IAlleleTolerance tempToleranceInactive = (IAlleleTolerance)butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.TEMPERATURE_TOLERANCE);
|
||||
drawLine(StringUtil.localize("gui.temptol"), COLUMN_0);
|
||||
drawToleranceInfo(tempToleranceActive, COLUMN_1);
|
||||
drawToleranceInfo(tempToleranceInactive, COLUMN_2);
|
||||
@@ -163,8 +159,8 @@ public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
drawRow(StringUtil.localize("gui.humidity"), AlleleManager.climateHelper.toDisplay(butterfly.getGenome().getPrimary().getHumidity()),
|
||||
AlleleManager.climateHelper.toDisplay(butterfly.getGenome().getPrimary().getHumidity()), butterfly, EnumButterflyChromosome.SPECIES);
|
||||
|
||||
IAlleleTolerance humidToleranceActive = (IAlleleTolerance)butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidToleranceInactive = (IAlleleTolerance)butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal());
|
||||
IAlleleTolerance humidToleranceActive = (IAlleleTolerance)butterfly.getGenome().getActiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE);
|
||||
IAlleleTolerance humidToleranceInactive = (IAlleleTolerance)butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE);
|
||||
drawLine(StringUtil.localize("gui.humidtol"), COLUMN_0);
|
||||
drawToleranceInfo(humidToleranceActive, COLUMN_1);
|
||||
drawToleranceInfo(humidToleranceInactive, COLUMN_2);
|
||||
@@ -182,7 +178,7 @@ public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
nocturnal0 = butterfly.getGenome().getPrimary().isNocturnal() ? yes : no;
|
||||
diurnal0 = !butterfly.getGenome().getPrimary().isNocturnal() ? yes : no;
|
||||
}
|
||||
if(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.NOCTURNAL.ordinal())).getValue()) {
|
||||
if(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.NOCTURNAL)).getValue()) {
|
||||
nocturnal1 = diurnal1 = yes;
|
||||
} else {
|
||||
nocturnal1 = butterfly.getGenome().getSecondary().isNocturnal() ? yes : no;
|
||||
@@ -200,13 +196,13 @@ public class GuiFlutterlyzer extends GuiAlyzer {
|
||||
newLine();
|
||||
|
||||
String primary = StringUtil.readableBoolean(butterfly.getGenome().getTolerantFlyer(), yes, no);
|
||||
String secondary = StringUtil.readableBoolean(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.TOLERANT_FLYER.ordinal())).getValue(), yes,
|
||||
String secondary = StringUtil.readableBoolean(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.TOLERANT_FLYER)).getValue(), yes,
|
||||
no);
|
||||
|
||||
drawRow(StringUtil.localize("gui.flyer"), primary, secondary, butterfly, EnumButterflyChromosome.TOLERANT_FLYER);
|
||||
|
||||
primary = StringUtil.readableBoolean(butterfly.getGenome().getFireResist(), yes, no);
|
||||
secondary = StringUtil.readableBoolean(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FIRE_RESIST.ordinal())).getValue(), yes,
|
||||
secondary = StringUtil.readableBoolean(((AlleleBoolean) butterfly.getGenome().getInactiveAllele(EnumButterflyChromosome.FIRE_RESIST)).getValue(), yes,
|
||||
no);
|
||||
|
||||
drawRow(StringUtil.localize("gui.fireresist"), primary, secondary, butterfly, EnumButterflyChromosome.FIRE_RESIST);
|
||||
|
||||
@@ -147,7 +147,7 @@ public class PipeItemsPropolis extends Pipe<PipeTransportItems> {
|
||||
// A bit of speed to perhaps prevent bees from popping out of the pipe.
|
||||
try {
|
||||
event.item.setSpeed(TransportConstants.PIPE_NORMAL_SPEED * 20F);
|
||||
} catch (Throwable error) {
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -86,19 +86,19 @@ public class PipeLogicPropolis {
|
||||
// Special bee filtering
|
||||
if (bee != null) {
|
||||
if (filter == EnumFilterType.PURE_BREED)
|
||||
return bee.isPureBred(EnumBeeChromosome.SPECIES.ordinal());
|
||||
return bee.isPureBred(EnumBeeChromosome.SPECIES);
|
||||
if (filter == EnumFilterType.NOCTURNAL)
|
||||
return bee.getGenome().getNocturnal();
|
||||
if (filter == EnumFilterType.PURE_NOCTURNAL)
|
||||
return bee.getGenome().getNocturnal() && bee.isPureBred(EnumBeeChromosome.NOCTURNAL.ordinal());
|
||||
return bee.getGenome().getNocturnal() && bee.isPureBred(EnumBeeChromosome.NOCTURNAL);
|
||||
if (filter == EnumFilterType.FLYER)
|
||||
return bee.getGenome().getTolerantFlyer();
|
||||
if (filter == EnumFilterType.PURE_FLYER)
|
||||
return bee.getGenome().getTolerantFlyer() && bee.isPureBred(EnumBeeChromosome.TOLERANT_FLYER.ordinal());
|
||||
return bee.getGenome().getTolerantFlyer() && bee.isPureBred(EnumBeeChromosome.TOLERANT_FLYER);
|
||||
if (filter == EnumFilterType.CAVE)
|
||||
return bee.getGenome().getCaveDwelling();
|
||||
if (filter == EnumFilterType.PURE_CAVE)
|
||||
return bee.getGenome().getCaveDwelling() && bee.isPureBred(EnumBeeChromosome.CAVE_DWELLING.ordinal());
|
||||
return bee.getGenome().getCaveDwelling() && bee.isPureBred(EnumBeeChromosome.CAVE_DWELLING);
|
||||
if (filter == EnumFilterType.NATURAL)
|
||||
return bee.isNatural();
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ import forestry.apiculture.genetics.AlleleEffectRadioactive;
|
||||
import forestry.apiculture.genetics.AlleleEffectRepulsion;
|
||||
import forestry.apiculture.genetics.AlleleEffectResurrection;
|
||||
import forestry.apiculture.genetics.AlleleEffectSnowing;
|
||||
import forestry.apiculture.genetics.AlleleEffectFertile;
|
||||
import forestry.apiculture.genetics.AlleleFlowers;
|
||||
import forestry.apiculture.genetics.Bee;
|
||||
import forestry.apiculture.genetics.BeeHelper;
|
||||
@@ -1028,8 +1029,10 @@ public class PluginApiculture extends ForestryPlugin {
|
||||
// Agrarian branch
|
||||
Allele.speciesRural = new AlleleBeeSpecies("speciesRural", false, "bees.species.rural", agrarian, "rustico", 0xfeff8f, 0xffdc16).addProduct(
|
||||
ForestryItem.beeComb.getItemStack(1, 14), 20).setIsSecret();
|
||||
// 41 Farmerly
|
||||
// 42 Agrarian
|
||||
Allele.speciesFarmerly = new AlleleBeeSpecies("speciesFarmerly", true, "bees.species.farmerly", agrarian, "arator", 0xD39728, 0xffdc16).addProduct(
|
||||
ForestryItem.beeComb.getItemStack(1, 14), 27).setIsSecret();
|
||||
Allele.speciesArgrarian = new AlleleBeeSpecies("speciesArgrarian", true, "bees.species.agrarian", agrarian, "arator", 0xFFCA75, 0xFFE047).addProduct(
|
||||
ForestryItem.beeComb.getItemStack(1, 14), 35).setIsSecret().setHasEffect();
|
||||
|
||||
// Boggy branch
|
||||
Allele.speciesMarshy = new AlleleBeeSpecies("speciesMarshy", true, "bees.species.marshy", boggy, "adorasti", 0x546626, 0xffdc16).addProduct(
|
||||
@@ -1075,6 +1078,7 @@ public class PluginApiculture extends ForestryPlugin {
|
||||
Allele.effectReanimation = new AlleleEffectResurrection("effectReanimation", "reanimation", AlleleEffectResurrection.getReanimationList());
|
||||
Allele.effectResurrection = new AlleleEffectResurrection("effectResurrection", "resurrection", AlleleEffectResurrection.getResurrectionList());
|
||||
Allele.effectRepulsion = new AlleleEffectRepulsion("effectRepulsion");
|
||||
Allele.effectFertile = new AlleleEffectFertile("effectFertile");
|
||||
|
||||
}
|
||||
|
||||
@@ -1160,6 +1164,10 @@ public class PluginApiculture extends ForestryPlugin {
|
||||
// Agrarian branch
|
||||
BeeTemplates.ruralA = new BeeMutation(Allele.speciesMeadows, Allele.speciesDiligent, BeeTemplates.getRuralTemplate(), 12)
|
||||
.restrictBiomeType(BiomeDictionary.Type.PLAINS).enableStrictBiomeCheck();
|
||||
new BeeMutation(Allele.speciesRural, Allele.speciesUnweary, BeeTemplates.getFarmerlyTemplate(), 10)
|
||||
.restrictBiomeType(BiomeDictionary.Type.PLAINS).enableStrictBiomeCheck();
|
||||
new BeeMutation(Allele.speciesFarmerly, Allele.speciesIndustrious, BeeTemplates.getAgrarianTemplate(), 6)
|
||||
.restrictBiomeType(BiomeDictionary.Type.PLAINS).enableStrictBiomeCheck();
|
||||
|
||||
// Monastic branch
|
||||
BeeTemplates.secludedA = new BeeMutation(Allele.speciesMonastic, Allele.speciesAustere, BeeTemplates.getSecludedTemplate(), 12);
|
||||
@@ -1210,6 +1218,8 @@ public class PluginApiculture extends ForestryPlugin {
|
||||
beeInterface.registerTemplate(BeeTemplates.getReddenedTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getOmegaTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getRuralTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getFarmerlyTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getAgrarianTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getLeporineTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getMerryTemplate());
|
||||
beeInterface.registerTemplate(BeeTemplates.getTipsyTemplate());
|
||||
|
||||
@@ -173,12 +173,6 @@ public class PluginIC2 extends ForestryPlugin {
|
||||
ChipsetManager.circuitRegistry.registerLegacyMapping(CircuitId.ELECTRIC_EFFICIENCY_I, "forestry.energyEfficiency1");
|
||||
ChipsetManager.circuitRegistry.registerLegacyMapping(CircuitId.ELECTRIC_BOOST_I, "forestry.energyBoost1");
|
||||
ChipsetManager.circuitRegistry.registerLegacyMapping(CircuitId.ELECTRIC_BOOST_II, "forestry.energyBoost2");
|
||||
|
||||
// Remove some items from the recycler
|
||||
if (PluginManager.Module.APICULTURE.isEnabled()) {
|
||||
Recipes.recyclerBlacklist.add(new RecipeInputItemStack(ForestryItem.beeQueenGE.getItemStack()));
|
||||
Recipes.recyclerBlacklist.add(new RecipeInputItemStack(ForestryItem.beePrincessGE.getItemStack()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -188,6 +182,16 @@ public class PluginIC2 extends ForestryPlugin {
|
||||
|
||||
config = Config.config;
|
||||
|
||||
// Remove some items from the recycler
|
||||
if (Recipes.recyclerBlacklist != null) {
|
||||
if (PluginManager.Module.APICULTURE.isEnabled()) {
|
||||
Recipes.recyclerBlacklist.add(new RecipeInputItemStack(ForestryItem.beeQueenGE.getItemStack()));
|
||||
Recipes.recyclerBlacklist.add(new RecipeInputItemStack(ForestryItem.beePrincessGE.getItemStack()));
|
||||
}
|
||||
} else {
|
||||
Proxies.log.severe("IC2 Recipes.recyclerBlacklist not found.");
|
||||
}
|
||||
|
||||
definitionEngineTin.register();
|
||||
definitionGenerator.register();
|
||||
|
||||
|
||||
@@ -85,10 +85,7 @@ public class ItemBackpack extends ItemInventoried {
|
||||
|
||||
@Override
|
||||
public boolean onItemUse(ItemStack itemstack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
|
||||
if (getInventoryHit(world, x, y, z, side) != null)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
return getInventoryHit(world, x, y, z, side) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -222,21 +219,7 @@ public class ItemBackpack extends ItemInventoried {
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean flag) {
|
||||
ItemInventory inventory = new ItemInventory(ItemBackpack.class, getBackpackSize(), itemstack);
|
||||
|
||||
// HashMap<ItemStack, Integer> contents = new HashMap<ItemStack,
|
||||
// Integer>();
|
||||
int occupied = 0;
|
||||
|
||||
for (int i = 0; i < inventory.getSizeInventory(); i++) {
|
||||
if (inventory.getStackInSlot(i) == null)
|
||||
continue;
|
||||
if (inventory.getStackInSlot(i).stackSize <= 0)
|
||||
continue;
|
||||
|
||||
// Count the slot as occupied
|
||||
occupied++;
|
||||
}
|
||||
int occupied = ItemInventory.getOccupiedSlotCount(itemstack);
|
||||
|
||||
BackpackMode mode = getMode(itemstack);
|
||||
if (mode == BackpackMode.LOCKED)
|
||||
|
||||
Reference in new issue
Block a user