Improve code readability in binnie.genetics package

Drop unused (empty) method MachinePackage#register() from all classes
This commit is contained in:
kordum authored and mezz committed 2017-04-27 14:48:45 -07:00
1 parent 856f08b752
commit 730043ba9c
112 files changed
+4354 -4697

No files matched your search

@@ -43,9 +43,6 @@ public class MachineGroup {
Binnie.Machine.registerMachineGroup(this);
block = new BlockMachine(this, blockName);
GameRegistry.registerBlock(block, ItemMachine.class, blockName);
for (MachinePackage pack2 : getPackages()) {
pack2.register();
}
}
private void addPackage(MachinePackage pack) {
@@ -26,8 +26,6 @@ public abstract class MachinePackage {
public abstract TileEntity createTileEntity();
public abstract void register();
public String getDisplayName() {
return Binnie.Language.localise(group.getMod(), "machine." + group.getShortUID() + "." + getUID());
}
@@ -52,10 +52,6 @@ enum Compartment implements IMachineType {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
@Override
public void renderMachine(Machine machine, double x, double y, double z, float partialTick, RenderBlocks renderer) {
MachineRendererCompartment.instance.renderMachine(machine, 0xffffff, renderTexture, x, y, z, partialTick);
@@ -22,10 +22,6 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class PackageCompartmentCopper extends Compartment.PackageCompartment {
@@ -43,11 +39,6 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
// ignored
}
}
public static class PackageCompartmentBronze extends Compartment.PackageCompartment {
@@ -65,11 +56,6 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
// ignored
}
}
public static class PackageCompartmentIron extends Compartment.PackageCompartment {
@@ -87,11 +73,6 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
// ignored
}
}
public static class PackageCompartmentGold extends Compartment.PackageCompartment {
@@ -109,11 +90,6 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
// ignored
}
}
public static class PackageCompartmentDiamond extends Compartment.PackageCompartment {
@@ -131,10 +107,5 @@ class StandardCompartment {
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
// ignored
}
}
}
@@ -63,10 +63,6 @@ public enum AlvearyMachine implements IMachineType
return new TileExtraBeeAlveary(this);
}
@Override
public void register() {
}
@Override
public void renderMachine(final Machine machine, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer) {
MachineRendererBlock.instance.renderMachine(this.machineTexture, x, y, z, partialTick);
@@ -61,10 +61,6 @@ public enum KitchenMachine implements IMachineType
return new TileEntityMachine(this);
}
@Override
public void register() {
}
@Override
public void renderMachine(final Machine machine, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer) {
MachineRendererKitchen.instance.renderMachine(machine, this.textureName, x, y, z, partialTick, renderer);
@@ -182,10 +182,6 @@ public class Brewery
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class BreweryCrafting implements INBTTagable
@@ -101,10 +101,6 @@ public class Distillery
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentDistilleryLogic extends ComponentProcessSetCost implements IProcess, INetwork.SendGuiNBT, INetwork.RecieveGuiNBT
@@ -91,10 +91,6 @@ public enum ExtraTreeMachine implements IMachineType
return new TileEntityMachine(this);
}
@Override
public void register() {
}
@Override
public void renderMachine(final Machine machine, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer) {
MachineRendererForestry.renderMachine(this.textureName.getShortPath(), x, y, z, partialTick);
@@ -86,10 +86,6 @@ public class Infuser
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentInfuserLogic extends ComponentProcessSetCost implements IProcess
@@ -150,10 +150,6 @@ public class Lumbermill
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentLumbermillLogic extends ComponentProcessSetCost implements IProcess
@@ -87,10 +87,6 @@ public class Press
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentFruitPressLogic extends ComponentProcessSetCost implements IProcess
@@ -1,33 +1,32 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics;
import net.minecraft.item.Item;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.extrabees.ExtraBees;
import binnie.genetics.item.GeneticsItems;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class CreativeTabGenetics extends CreativeTabs
{
public class CreativeTabGenetics extends CreativeTabs {
public static CreativeTabs instance;
@Override
public ItemStack getIconItemStack() {
return GeneticsItems.EmptySerum.get(1);
static {
CreativeTabGenetics.instance = new CreativeTabGenetics();
}
public CreativeTabGenetics() {
super("Genetics");
}
@Override
public ItemStack getIconItemStack() {
return GeneticsItems.EmptySerum.get(1);
}
@Override
public String getTranslatedTabLabel() {
return this.getTabLabel();
return getTabLabel();
}
@Override
@@ -41,8 +40,4 @@ public class CreativeTabGenetics extends CreativeTabs
public Item getTabIconItem() {
return null;
}
static {
CreativeTabGenetics.instance = new CreativeTabGenetics();
}
}
+48 -49
View File
@@ -1,40 +1,45 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics;
import binnie.core.AbstractMod;
import binnie.core.BinnieCore;
import binnie.core.network.BinniePacketHandler;
import binnie.core.proxy.IProxyCore;
import binnie.genetics.core.GeneticsPacket;
import binnie.core.network.IPacketID;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.gui.IBinnieGUID;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import binnie.genetics.machine.ModuleMachine;
import binnie.genetics.item.ModuleItem;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import binnie.core.machines.MachineGroup;
import binnie.core.network.BinniePacketHandler;
import binnie.core.network.IPacketID;
import binnie.core.proxy.IProxyCore;
import binnie.genetics.core.GeneticsGUI;
import binnie.genetics.core.GeneticsPacket;
import binnie.genetics.item.ItemAnalyst;
import binnie.genetics.item.ItemDatabase;
import binnie.core.machines.MachineGroup;
import net.minecraft.item.Item;
import cpw.mods.fml.common.SidedProxy;
import binnie.genetics.proxy.Proxy;
import binnie.genetics.item.ItemSerumArray;
import binnie.genetics.item.ModuleItem;
import binnie.genetics.machine.ModuleMachine;
import binnie.genetics.proxy.Proxy;
import cpw.mods.fml.common.Mod;
import binnie.core.AbstractMod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraft.item.Item;
@Mod(modid = "Genetics", name = "Genetics", useMetadata = true, dependencies = "after:BinnieCore")
public class Genetics extends AbstractMod
{
public static ItemSerumArray itemSerumArray;
@Mod(
modid = "Genetics",
name = "Genetics",
useMetadata = true,
dependencies = "after:BinnieCore"
)
public class Genetics extends AbstractMod {
@Mod.Instance("Genetics")
public static Genetics instance;
@SidedProxy(clientSide = "binnie.genetics.proxy.ProxyClient", serverSide = "binnie.genetics.proxy.ProxyServer")
@SidedProxy(
clientSide = "binnie.genetics.proxy.ProxyClient",
serverSide = "binnie.genetics.proxy.ProxyServer"
)
public static Proxy proxy;
public static String channel;
public static ItemSerumArray itemSerumArray = null;
public static String channel = "GEN";
public static Item itemGenetics;
public static Item itemSerum;
public static Item itemSequencer;
@@ -46,27 +51,27 @@ public class Genetics extends AbstractMod
public static Item registry;
public static Item masterRegistry;
@Mod.EventHandler
public void preInit(final FMLPreInitializationEvent evt) {
this.addModule(new ModuleItem());
this.addModule(new ModuleMachine());
this.preInit();
}
@Mod.EventHandler
public void init(final FMLInitializationEvent evt) {
this.init();
}
@Mod.EventHandler
public void postInit(final FMLPostInitializationEvent evt) {
this.postInit();
}
public Genetics() {
Genetics.instance = this;
}
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
addModule(new ModuleItem());
addModule(new ModuleMachine());
preInit();
}
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
init();
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
postInit();
}
@Override
public IBinnieGUID[] getGUIDs() {
return GeneticsGUI.values();
@@ -102,13 +107,7 @@ public class Genetics extends AbstractMod
return BinnieCore.isGeneticsActive();
}
static {
Genetics.itemSerumArray = null;
Genetics.channel = "GEN";
}
public static class PacketHandler extends BinniePacketHandler
{
public static class PacketHandler extends BinniePacketHandler {
public PacketHandler() {
super(Genetics.instance);
}
+5 -10
View File
@@ -1,17 +1,12 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.api;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.IChromosomeType;
import forestry.api.core.INBTTagable;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.nbt.NBTTagCompound;
public interface IGene extends INBTTagable
{
public interface IGene extends INBTTagable {
IChromosomeType getChromosome();
String getName();
@@ -1,24 +1,19 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.api;
import binnie.core.machines.MachineUtil;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public interface IIncubatorRecipe
{
boolean isInputLiquid(final FluidStack p0);
public interface IIncubatorRecipe {
boolean isInputLiquid(FluidStack liquid);
boolean isInputLiquidSufficient(final FluidStack p0);
boolean isInputLiquidSufficient(FluidStack liquid);
boolean isItemStack(final ItemStack p0);
boolean isItemStack(ItemStack stack);
void doTask(final MachineUtil p0);
void doTask(MachineUtil machine);
float getChance();
boolean roomForOutput(final MachineUtil p0);
boolean roomForOutput(MachineUtil machine);
}
@@ -1,17 +1,12 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.api;
import net.minecraft.item.ItemStack;
public interface IItemAnalysable
{
boolean isAnalysed(final ItemStack p0);
public interface IItemAnalysable {
boolean isAnalysed(ItemStack stack);
ItemStack analyse(final ItemStack p0);
ItemStack analyse(ItemStack stack);
@Deprecated
float getAnalyseTimeMult(final ItemStack p0);
float getAnalyseTimeMult(ItemStack stack);
}
@@ -1,12 +1,7 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.api;
import net.minecraft.item.ItemStack;
public interface IItemChargable
{
int getCharges(final ItemStack p0);
public interface IItemChargable {
int getCharges(ItemStack stack);
}
@@ -1,19 +1,14 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.api;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.item.ItemStack;
public interface IItemSerum extends IItemChargable
{
IGene[] getGenes(final ItemStack p0);
public interface IItemSerum extends IItemChargable {
IGene[] getGenes(ItemStack stack);
ISpeciesRoot getSpeciesRoot(final ItemStack p0);
ISpeciesRoot getSpeciesRoot(ItemStack stack);
IGene getGene(final ItemStack p0, final int p1);
IGene getGene(ItemStack stack, int chromosome);
ItemStack addGene(final ItemStack p0, final IGene p1);
ItemStack addGene(ItemStack stack, IGene gene);
}
@@ -1,12 +1,7 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.config;
import binnie.core.mod.config.ConfigFile;
@ConfigFile(filename = "/config/forestry/genetics/main.conf")
public class ConfigurationMain
{
public class ConfigurationMain {
}
@@ -1,32 +1,28 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.core;
import binnie.genetics.craftgui.WindowSplicer;
import binnie.genetics.craftgui.WindowAcclimatiser;
import binnie.genetics.craftgui.WindowIncubator;
import binnie.genetics.craftgui.WindowAnalyser;
import binnie.genetics.craftgui.WindowInoculator;
import binnie.genetics.craftgui.WindowPolymeriser;
import binnie.genetics.craftgui.WindowSequencer;
import binnie.genetics.craftgui.WindowIsolator;
import binnie.genetics.craftgui.WindowGenepool;
import net.minecraft.tileentity.TileEntity;
import binnie.genetics.craftgui.WindowGeneBankNEI;
import binnie.genetics.craftgui.WindowGeneBank;
import net.minecraft.world.World;
import java.lang.reflect.Constructor;
import binnie.genetics.gui.WindowAnalyst;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.gui.IBinnieGUID;
import binnie.genetics.craftgui.WindowAcclimatiser;
import binnie.genetics.craftgui.WindowAnalyser;
import binnie.genetics.craftgui.WindowGeneBank;
import binnie.genetics.craftgui.WindowGeneBankNEI;
import binnie.genetics.craftgui.WindowGenepool;
import binnie.genetics.craftgui.WindowIncubator;
import binnie.genetics.craftgui.WindowInoculator;
import binnie.genetics.craftgui.WindowIsolator;
import binnie.genetics.craftgui.WindowPolymeriser;
import binnie.genetics.craftgui.WindowSequencer;
import binnie.genetics.craftgui.WindowSplicer;
import binnie.genetics.gui.WindowAnalyst;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public enum GeneticsGUI implements IBinnieGUID
{
import java.lang.reflect.Constructor;
public enum GeneticsGUI implements IBinnieGUID {
Genepool(WindowGenepool.class),
Isolator(WindowIsolator.class),
Sequencer(WindowSequencer.class),
@@ -43,51 +39,47 @@ public enum GeneticsGUI implements IBinnieGUID
Registry,
MasterRegistry;
Class<? extends Window> windowClass;
protected Class<? extends Window> windowClass;
private GeneticsGUI()
{
GeneticsGUI() {
// ignored
}
private GeneticsGUI(final Class window) {
this.windowClass = window;
GeneticsGUI(Class window) {
windowClass = window;
}
public Window getWindow(final EntityPlayer player, final IInventory object, final Side side) throws Exception {
public Window getWindow(EntityPlayer player, IInventory object, Side side) throws Exception {
switch (this) {
case Analyst: {
return new WindowAnalyst(player, null, side, false, false);
}
case MasterRegistry: {
return new WindowAnalyst(player, null, side, true, true);
}
case Registry: {
return new WindowAnalyst(player, null, side, true, false);
}
default: {
final Constructor constr = this.windowClass.getConstructor(EntityPlayer.class, IInventory.class, Side.class);
return (Window) constr.newInstance(player, object, side);
}
case Analyst:
return new WindowAnalyst(player, null, side, false, false);
case MasterRegistry:
return new WindowAnalyst(player, null, side, true, true);
case Registry:
return new WindowAnalyst(player, null, side, true, false);
}
Constructor constr = windowClass.getConstructor(EntityPlayer.class, IInventory.class, Side.class);
return (Window) constr.newInstance(player, object, side);
}
@Override
public Window getWindow(final EntityPlayer player, final World world, final int x, final int y, final int z, final Side side) {
public Window getWindow(EntityPlayer player, World world, int x, int y, int z, Side side) {
Window window = null;
final TileEntity tileEntity = world.getTileEntity(x, y, z);
TileEntity tileEntity = world.getTileEntity(x, y, z);
IInventory object = null;
if (tileEntity instanceof IInventory) {
object = (IInventory) tileEntity;
}
try {
if (this == GeneticsGUI.Database || this == GeneticsGUI.GeneBank) {
window = WindowGeneBank.create(player, object, side);
}
else if (this == GeneticsGUI.DatabaseNEI) {
} else if (this == GeneticsGUI.DatabaseNEI) {
window = WindowGeneBankNEI.create(player, object, side);
}
else {
window = this.getWindow(player, object, side);
} else {
window = getWindow(player, object, side);
}
} catch (Exception e) {
e.printStackTrace();
@@ -1,32 +1,29 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.core;
import net.minecraft.entity.player.EntityPlayer;
import binnie.genetics.genetics.GeneTracker;
import binnie.core.BinnieCore;
import binnie.core.network.packet.MessageNBT;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import binnie.core.network.packet.MessageBinnie;
import binnie.core.network.IPacketID;
import binnie.core.network.packet.MessageBinnie;
import binnie.core.network.packet.MessageNBT;
import binnie.genetics.genetics.GeneTracker;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
public enum GeneticsPacket implements IPacketID
{
public enum GeneticsPacket implements IPacketID {
GeneTrackerSync;
@Override
public void onMessage(final MessageBinnie message, final MessageContext context) {
if (this == GeneticsPacket.GeneTrackerSync && context.side == Side.CLIENT) {
final MessageNBT packet = new MessageNBT(message);
final EntityPlayer player = BinnieCore.proxy.getPlayer();
GeneTracker tracker = null;
tracker = GeneTracker.getTracker(BinnieCore.proxy.getWorld(), player.getGameProfile());
if (tracker != null) {
tracker.readFromNBT(packet.getTagCompound());
}
public void onMessage(MessageBinnie message, MessageContext context) {
if (this != GeneticsPacket.GeneTrackerSync || context.side != Side.CLIENT) {
return;
}
MessageNBT packet = new MessageNBT(message);
EntityPlayer player = BinnieCore.proxy.getPlayer();
GeneTracker tracker;
tracker = GeneTracker.getTracker(BinnieCore.proxy.getWorld(), player.getGameProfile());
if (tracker != null) {
tracker.readFromNBT(packet.getTagCompound());
}
}
}
@@ -1,18 +1,13 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.core;
import binnie.genetics.Genetics;
import binnie.Binnie;
import binnie.core.resource.BinnieResource;
import binnie.core.resource.BinnieIcon;
import binnie.core.resource.ResourceType;
import binnie.core.resource.BinnieResource;
import binnie.core.resource.IBinnieTexture;
import binnie.core.resource.ResourceType;
import binnie.genetics.Genetics;
public enum GeneticsTexture implements IBinnieTexture
{
public enum GeneticsTexture implements IBinnieTexture {
GeneticMachine(ResourceType.Tile, "GeneticMachine"),
Genepool(ResourceType.Tile, "Genepool"),
Incubator(ResourceType.Tile, "Incubator"),
@@ -29,21 +24,18 @@ public enum GeneticsTexture implements IBinnieTexture
Acclimatiser(ResourceType.Tile, "Acclimatiser"),
Splicer(ResourceType.Tile, "Splicer");
String texture;
ResourceType type;
public static BinnieIcon dnaIcon;
public static BinnieIcon dnaIcon = Binnie.Resource.getItemIcon(Genetics.instance, "dna");
private GeneticsTexture(final ResourceType base, final String texture) {
protected String texture;
protected ResourceType type;
GeneticsTexture(ResourceType base, String texture) {
this.texture = texture;
this.type = base;
type = base;
}
@Override
public BinnieResource getTexture() {
return Binnie.Resource.getPNG(Genetics.instance, this.type, this.texture);
}
static {
GeneticsTexture.dnaIcon = Binnie.Resource.getItemIcon(Genetics.instance, "dna");
return Binnie.Resource.getPNG(Genetics.instance, type, texture);
}
}
@@ -1,86 +1,89 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.CraftGUI;
import net.minecraft.nbt.NBTTagCompound;
import binnie.core.craftgui.events.EventMouse;
import binnie.core.craftgui.WidgetAttribute;
import net.minecraft.item.ItemStack;
import binnie.genetics.genetics.Engineering;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.minecraft.Window;
import binnie.Binnie;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.ITooltip;
import binnie.genetics.api.IGene;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.events.EventMouse;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.minecraft.Window;
import binnie.genetics.api.IGene;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.genetics.Engineering;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class ControlGene extends Control implements IControlValue<IGene>, ITooltip
{
IGene gene;
public class ControlGene extends Control implements IControlValue<IGene>, ITooltip {
protected IGene gene;
@Override
public void getTooltip(final Tooltip tooltip) {
final String cName = Binnie.Genetics.getSystem(this.gene.getSpeciesRoot()).getChromosomeName(this.gene.getChromosome());
tooltip.add(cName + ": " + this.gene.getName());
if (this.isMouseOver() && this.canFill(Window.get(this).getHeldItemStack())) {
tooltip.add("Left click to assign gene");
final IGene existingGene = Engineering.getGene(Window.get(this).getHeldItemStack(), this.gene.getChromosome().ordinal());
if (existingGene == null) {
return;
}
final String dName = Binnie.Genetics.getSystem(this.gene.getSpeciesRoot()).getChromosomeName(this.gene.getChromosome());
tooltip.add("Will replace " + dName + ": " + existingGene.getName());
}
}
private boolean canFill(final ItemStack stack) {
return stack != null && stack.stackSize == 1 && Engineering.isGeneAcceptor(stack) && Engineering.canAcceptGene(stack, this.getValue());
}
protected ControlGene(final IWidget parent, final float x, final float y) {
protected ControlGene(IWidget parent, float x, float y) {
super(parent, x, y, 16.0f, 16.0f);
this.addAttribute(WidgetAttribute.MouseOver);
this.addSelfEventHandler(new EventMouse.Down.Handler() {
addAttribute(WidgetAttribute.MouseOver);
addSelfEventHandler(new EventMouse.Down.Handler() {
@Override
public void onEvent(final EventMouse.Down event) {
if (ControlGene.this.canFill(Window.get(ControlGene.this.getWidget()).getHeldItemStack())) {
final NBTTagCompound action = new NBTTagCompound();
final NBTTagCompound geneNBT = new NBTTagCompound();
ControlGene.this.getValue().writeToNBT(geneNBT);
action.setTag("gene", geneNBT);
Window.get(ControlGene.this.getWidget()).sendClientAction("gene-select", action);
public void onEvent(EventMouse.Down event) {
if (!canFill(Window.get(getWidget()).getHeldItemStack())) {
return;
}
NBTTagCompound action = new NBTTagCompound();
NBTTagCompound geneNBT = new NBTTagCompound();
getValue().writeToNBT(geneNBT);
action.setTag("gene", geneNBT);
Window.get(getWidget()).sendClientAction("gene-select", action);
}
});
}
@Override
public IGene getValue() {
return this.gene;
public void getTooltip(Tooltip tooltip) {
String cName = Binnie.Genetics.getSystem(gene.getSpeciesRoot()).getChromosomeName(gene.getChromosome());
tooltip.add(cName + ": " + gene.getName());
if (isMouseOver() && canFill(Window.get(this).getHeldItemStack())) {
tooltip.add("Left click to assign gene");
IGene existingGene = Engineering.getGene(Window.get(this).getHeldItemStack(), gene.getChromosome().ordinal());
if (existingGene == null) {
return;
}
String dName = Binnie.Genetics.getSystem(gene.getSpeciesRoot()).getChromosomeName(gene.getChromosome());
tooltip.add("Will replace " + dName + ": " + existingGene.getName());
}
}
private boolean canFill(ItemStack stack) {
return stack != null
&& stack.stackSize == 1
&& Engineering.isGeneAcceptor(stack)
&& Engineering.canAcceptGene(stack, getValue());
}
@Override
public void setValue(final IGene value) {
this.gene = value;
public IGene getValue() {
return gene;
}
@Override
public void setValue(IGene value) {
gene = value;
}
@Override
public void onRenderForeground() {
// ignored
}
@Override
public void onRenderBackground() {
if (this.isMouseOver() && this.canFill(Window.get(this).getHeldItemStack())) {
CraftGUI.Render.solid(this.getArea(), -1);
CraftGUI.Render.solid(this.getArea().inset(1), -12303292);
if (isMouseOver() && canFill(Window.get(this).getHeldItemStack())) {
CraftGUI.Render.solid(getArea(), -1);
CraftGUI.Render.solid(getArea().inset(1), -12303292);
}
CraftGUI.Render.colour(-1);
CraftGUI.Render.iconItem(IPoint.ZERO, GeneticsTexture.dnaIcon.getIcon());
}
@@ -1,87 +1,86 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.genetics.Gene;
import java.util.ArrayList;
import forestry.api.genetics.IAllele;
import java.util.List;
import forestry.api.genetics.IChromosomeType;
import java.util.Map;
import binnie.Binnie;
import binnie.genetics.genetics.GeneTracker;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.IWidget;
import binnie.core.genetics.BreedingSystem;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.genetics.BreedingSystem;
import binnie.core.genetics.Gene;
import binnie.genetics.genetics.GeneTracker;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
public class ControlGeneScroll extends Control implements IControlValue<BreedingSystem>
{
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ControlGeneScroll extends Control implements IControlValue<BreedingSystem> {
private String filter;
private BreedingSystem system;
protected ControlGeneScroll(final IWidget parent, final float x, final float y, final float w, final float h) {
protected ControlGeneScroll(IWidget parent, float x, float y, float w, float h) {
super(parent, x, y, w, h);
this.filter = "";
this.system = null;
filter = "";
system = null;
}
public void setFilter(final String filter) {
public void setFilter(String filter) {
this.filter = filter.toLowerCase();
this.refresh();
refresh();
}
public void setGenes(final BreedingSystem system) {
public void setGenes(BreedingSystem system) {
this.system = system;
this.refresh();
refresh();
}
public void refresh() {
this.deleteAllChildren();
final GeneTracker tracker = GeneTracker.getTracker(Window.get(this).getWorld(), Window.get(this).getUsername());
final Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(this.system.getSpeciesRoot());
int x = 0;
deleteAllChildren();
GeneTracker tracker = GeneTracker.getTracker(Window.get(this).getWorld(), Window.get(this).getUsername());
Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(system.getSpeciesRoot());
int x;
int y = 0;
final boolean isNEI = ((WindowGeneBank) Window.get(this)).isNei;
for (final Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
final List<IAllele> discovered = new ArrayList<IAllele>();
for (final IAllele allele : entry.getValue()) {
final Gene gene = new Gene(allele, entry.getKey(), this.system.getSpeciesRoot());
if ((isNEI || tracker.isSequenced(new Gene(allele, entry.getKey(), this.system.getSpeciesRoot()))) && gene.getName().toLowerCase().contains(this.filter)) {
boolean isNEI = ((WindowGeneBank) Window.get(this)).isNei;
for (Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
List<IAllele> discovered = new ArrayList<IAllele>();
for (IAllele allele : entry.getValue()) {
Gene gene = new Gene(allele, entry.getKey(), system.getSpeciesRoot());
if ((isNEI || tracker.isSequenced(new Gene(allele, entry.getKey(), system.getSpeciesRoot()))) && gene.getName().toLowerCase().contains(filter)) {
discovered.add(allele);
}
}
if (discovered.size() == 0) {
continue;
}
x = 0;
new ControlText(this, new IPoint(x, y), this.system.getChromosomeName(entry.getKey()));
new ControlText(this, new IPoint(x, y), system.getChromosomeName(entry.getKey()));
y += 12;
for (final IAllele allele : discovered) {
if (x + 18 > this.getSize().x()) {
for (IAllele allele : discovered) {
if (x + 18 > getSize().x()) {
y += 20;
x = 0;
}
new ControlGene(this, x, y).setValue(new Gene(allele, entry.getKey(), this.system.getSpeciesRoot()));
new ControlGene(this, x, y).setValue(new Gene(allele, entry.getKey(), system.getSpeciesRoot()));
x += 18;
}
y += 24;
}
this.setSize(new IPoint(this.getSize().x(), y));
}
@Override
public void setValue(final BreedingSystem system) {
this.setGenes(system);
setSize(new IPoint(getSize().x(), y));
}
@Override
public BreedingSystem getValue() {
return this.system;
return system;
}
@Override
public void setValue(BreedingSystem system) {
setGenes(system);
}
}
@@ -1,26 +1,22 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
public class ControlProcessTemporary extends ControlMachineProgress
{
// TODO unused class?
public class ControlProcessTemporary extends ControlMachineProgress {
public ControlProcessTemporary(final IWidget parent, final int x, final int y, final int width, final int height) {
super(parent, x, y, null, null, null);
this.setSize(new IPoint(width, height));
setSize(new IPoint(width, height));
}
@Override
public void onRenderBackground() {
CraftGUI.Render.solid(this.getArea(), -4868683);
final float w = this.getSize().y() * this.progress / 100.0f;
CraftGUI.Render.solid(new IArea(this.getArea().x(), this.getArea().y(), w, this.getArea().h()), -65536);
CraftGUI.Render.solid(getArea(), -4868683);
final float w = getSize().y() * progress / 100.0f;
CraftGUI.Render.solid(new IArea(getArea().x(), getArea().y(), w, getArea().h()), -65536);
}
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.IWidget;
@@ -18,47 +14,51 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.Random;
public class ControlSequencerProgress extends ControlProgressBase
{
ControlText textControl;
public class ControlSequencerProgress extends ControlProgressBase {
protected ControlText textControl;
public ControlSequencerProgress(final IWidget parent, final int x, final int y) {
public ControlSequencerProgress(IWidget parent, int x, int y) {
super(parent, x, y, 100.0f, 52.0f);
final Panel panel = new Panel(this, 0.0f, 0.0f, 100.0f, 52.0f, MinecraftGUI.PanelType.Gray);
this.textControl = new ControlText(panel, new IArea(4.0f, 4.0f, 92.0f, 44.0f), "", TextJustification.MiddleCenter);
Panel panel = new Panel(this, 0.0f, 0.0f, 100.0f, 52.0f, MinecraftGUI.PanelType.Gray);
textControl = new ControlText(panel, new IArea(4.0f, 4.0f, 92.0f, 44.0f), "", TextJustification.MiddleCenter);
}
@Override
public void onUpdateClient() {
super.onUpdateClient();
final ItemStack stack = Machine.getMachine(Window.get(this).getInventory()).getMachineUtil().getStack(5);
ItemStack stack = Machine.getMachine(Window.get(this).getInventory()).getMachineUtil().getStack(5);
if (stack == null) {
this.textControl.setValue("");
textControl.setValue("");
return;
}
else {
final Random rand = new Random(stack.getDisplayName().length());
String text = "";
final String[] codes = { "A", "T", "G", "C" };
EnumChatFormatting[] colors = {
EnumChatFormatting.GREEN,
EnumChatFormatting.LIGHT_PURPLE,
EnumChatFormatting.AQUA,
EnumChatFormatting.RED
};
for (int i = 0; i < 65; ++i) {
final int k = rand.nextInt(4);
final String code = codes[k];
if (rand.nextFloat() < this.progress) {
String col = colors[k].toString();
text = text + EnumChatFormatting.RESET + col + EnumChatFormatting.BOLD + code;
}
else {
text = text + EnumChatFormatting.RESET + EnumChatFormatting.GRAY
+ EnumChatFormatting.OBFUSCATED + EnumChatFormatting.BOLD + code;
}
Random rand = new Random(stack.getDisplayName().length());
StringBuilder text = new StringBuilder();
String[] codes = {"A", "T", "G", "C"};
EnumChatFormatting[] colors = {
EnumChatFormatting.GREEN,
EnumChatFormatting.LIGHT_PURPLE,
EnumChatFormatting.AQUA,
EnumChatFormatting.RED
};
for (int i = 0; i < 65; ++i) {
int k = rand.nextInt(4);
String code = codes[k];
if (rand.nextFloat() < progress) {
String col = colors[k].toString();
text.append(EnumChatFormatting.RESET)
.append(col)
.append(EnumChatFormatting.BOLD)
.append(code);
} else {
text.append(EnumChatFormatting.RESET)
.append(EnumChatFormatting.GRAY)
.append(EnumChatFormatting.OBFUSCATED)
.append(EnumChatFormatting.BOLD)
.append(code);
}
this.textControl.setValue(text);
}
textControl.setValue(text.toString());
}
}
@@ -1,54 +1,51 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.minecraft.control.ControlProgressBase;
public class ControlSplicerProgress extends ControlProgressBase
{
public class ControlSplicerProgress extends ControlProgressBase {
float strength;
public ControlSplicerProgress(final IWidget parent, final float x, final float y, final float w, final float h) {
public ControlSplicerProgress(IWidget parent, float x, float y, float w, float h) {
super(parent, x, y, w, h);
this.strength = 0.0f;
this.strength = 0.0f;
strength = 0.0f;
strength = 0.0f;
}
@Override
public void onRenderBackground() {
final float progress = this.getProcess().getCurrentProgress() / 100.0f;
final float n = this.getProcess().getProcessTime() / 12.0f;
final float spacing = 10.0f;
final float range = this.w();
final float h = 8.0f;
final float ooy = -((n - 1.0f) * spacing) - range / 2.0f;
final float ddy = (n - 1.0f) * spacing + range;
final float oy = ooy + ddy * progress;
float progress = getProcess().getCurrentProgress() / 100.0f;
float n = getProcess().getProcessTime() / 12.0f;
float spacing = 10.0f;
float range = w();
float h = 8.0f;
float ooy = -((n - 1.0f) * spacing) - range / 2.0f;
float ddy = (n - 1.0f) * spacing + range;
float oy = ooy + ddy * progress;
for (int i = 0; i < n; ++i) {
final int seed = 432523;
final int[] colours = { 10027008, 30464, 255, 10057472 };
int seed = 432523;
int[] colours = {0x990000, 0x007700, 0x0000ff, 0x997700};
int c1 = colours[(int) Math.abs(13.0 * Math.sin(i) + 48.0 * Math.cos(i) + 25.0 * Math.sin(7 * i)) % 4];
int c2 = colours[(int) Math.abs(23.0 * Math.sin(i) + 28.0 * Math.cos(i) + 15.0 * Math.sin(7 * i)) % 4];
int c3 = colours[(int) Math.abs(43.0 * Math.sin(i) + 38.0 * Math.cos(i) + 55.0 * Math.sin(7 * i)) % 4];
int c4 = colours[(int) Math.abs(3.0 * Math.sin(i) + 18.0 * Math.cos(i) + 35.0 * Math.sin(7 * i)) % 4];
final float y = oy + i * spacing;
float y = oy + i * spacing;
if (y > -range / 2.0f && y < range / 2.0f) {
final float percentView = (float) Math.sqrt(1.0f - Math.abs(2.0f * y / range));
final float offMovement = (this.h() - 2.0f * h) / 2.0f;
final int alpha = 16777216 * (int) (255.0f * percentView);
float percentView = (float) Math.sqrt(1.0f - Math.abs(2.0f * y / range));
float offMovement = (h() - 2.0f * h) / 2.0f;
int alpha = 16777216 * (int) (255.0f * percentView);
c1 += alpha;
c2 += alpha;
c3 += alpha;
c4 += alpha;
CraftGUI.Render.solidAlpha(new IArea(this.w() / 2.0f + y, offMovement * percentView, 4.0f, h / 2.0f), c1);
CraftGUI.Render.solidAlpha(new IArea(this.w() / 2.0f + y, offMovement * percentView + 4.0f, 4.0f, h / 2.0f), (y < 0.0f) ? c2 : c3);
CraftGUI.Render.solidAlpha(new IArea(this.w() / 2.0f + y, this.h() - offMovement * percentView - 8.0f, 4.0f, h / 2.0f), (y < 0.0f) ? c3 : c2);
CraftGUI.Render.solidAlpha(new IArea(this.w() / 2.0f + y, this.h() - offMovement * percentView - 4.0f, 4.0f, h / 2.0f), c4);
CraftGUI.Render.solidAlpha(new IArea(w() / 2.0f + y, offMovement * percentView, 4.0f, h / 2.0f), c1);
CraftGUI.Render.solidAlpha(new IArea(w() / 2.0f + y, offMovement * percentView + 4.0f, 4.0f, h / 2.0f), (y < 0.0f) ? c2 : c3);
CraftGUI.Render.solidAlpha(new IArea(w() / 2.0f + y, h() - offMovement * percentView - 8.0f, 4.0f, h / 2.0f), (y < 0.0f) ? c3 : c2);
CraftGUI.Render.solidAlpha(new IArea(w() / 2.0f + y, h() - offMovement * percentView - 4.0f, 4.0f, h / 2.0f), c4);
}
}
}
@@ -1,48 +1,44 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.AbstractMod;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.genetics.machine.Acclimatiser;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.resource.Texture;
import net.minecraft.inventory.IInventory;
public class WindowAcclimatiser extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public static final int[] slotReserve;
public static final int slotTarget = 4;
public static final int[] slotAcclimatiser;
public static final int[] slotDone;
public class WindowAcclimatiser extends WindowMachine {
public static int[] slotReserve = new int[]{0, 1, 2, 3};
public static int slotTarget = 4;
public static int[] slotAcclimatiser = new int[]{5, 6, 7};
public static int[] slotDone = new int[]{8, 9, 10, 11};
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowAcclimatiser(player, inventory, side);
protected static Texture ProgressBase = new StandardTexture(64, 0, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
protected static Texture Progress = new StandardTexture(64, 21, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
public WindowAcclimatiser(EntityPlayer player, IInventory inventory, Side side) {
super(280, 198, player, inventory, side);
}
public WindowAcclimatiser(final EntityPlayer player, final IInventory inventory, final Side side) {
super(280, 198, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowAcclimatiser(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Acclimatiser");
setTitle("Acclimatiser");
int x = 16;
final int y = 32;
int y = 32;
new ControlSlotArray(this, x, y, 2, 2).create(Acclimatiser.slotReserve);
x += 54;
new ControlSlot(this, x + 18, y).assign(4);
@@ -68,12 +64,4 @@ public class WindowAcclimatiser extends WindowMachine
protected String getName() {
return "Acclimatiser";
}
static {
WindowAcclimatiser.ProgressBase = new StandardTexture(64, 0, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
WindowAcclimatiser.Progress = new StandardTexture(64, 21, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
slotReserve = new int[] { 0, 1, 2, 3 };
slotAcclimatiser = new int[] { 5, 6, 7 };
slotDone = new int[] { 8, 9, 10, 11 };
}
}
@@ -1,44 +1,39 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.MinecraftGUI;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlProgress;
import binnie.core.craftgui.minecraft.MinecraftGUI;
import binnie.core.craftgui.window.Panel;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.genetics.machine.Analyser;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.core.craftgui.window.Panel;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.machine.Analyser;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowAnalyser extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowAnalyser extends WindowMachine {
protected static Texture ProgressBase = new StandardTexture(0, 218, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
protected static Texture Progress = new StandardTexture(0, 201, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowAnalyser(player, inventory, side);
public WindowAnalyser(EntityPlayer player, IInventory inventory, Side side) {
super(220, 210, player, inventory, side);
}
public WindowAnalyser(final EntityPlayer player, final IInventory inventory, final Side side) {
super(220, 210, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowAnalyser(player, inventory, side);
}
@Override
@@ -46,7 +41,7 @@ public class WindowAnalyser extends WindowMachine
WindowAnalyser.ProgressBase = new StandardTexture(0, 51, 66, 40, GeneticsTexture.GUIProcess.getTexture());
WindowAnalyser.Progress = new StandardTexture(66, 51, 66, 40, GeneticsTexture.GUIProcess.getTexture());
int x = 16;
final int y = 32;
int y = 32;
new ControlSlotArray(this, x, y, 2, 3).create(Analyser.slotReserve);
x += 28;
new ControlSlot(this, x, y + 54 + 8).assign(13);
@@ -63,7 +58,7 @@ public class WindowAnalyser extends WindowMachine
x += 96;
new ControlSlotArray(this, x, y, 2, 3).create(Analyser.slotFinished);
x += 52;
this.setTitle("Analyser");
setTitle("Analyser");
new ControlPlayerInventory(this);
}
@@ -81,9 +76,4 @@ public class WindowAnalyser extends WindowMachine
protected String getName() {
return "Analyser";
}
static {
WindowAnalyser.ProgressBase = new StandardTexture(0, 218, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
WindowAnalyser.Progress = new StandardTexture(0, 201, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
}
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.Binnie;
@@ -42,93 +38,98 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class WindowGeneBank extends WindowMachine
{
public class WindowGeneBank extends WindowMachine {
public static IIcon[] iconsDNA;
public boolean isNei;
ControlGeneScroll genes;
@Override
public void recieveGuiNBT(final Side side, final EntityPlayer player, final String name, final NBTTagCompound nbt) {
super.recieveGuiNBT(side, player, name, nbt);
if (side == Side.SERVER && name.equals("gene-select")) {
final Gene gene = new Gene(nbt.getCompoundTag("gene"));
if (gene != null && !gene.isCorrupted()) {
final ItemStack held = this.getHeldItemStack();
final ItemStack converted = Engineering.addGene(held, gene);
this.getPlayer().inventory.setItemStack(converted);
this.getPlayer().inventory.markDirty();
if (this.getPlayer() instanceof EntityPlayerMP) {
((EntityPlayerMP) this.getPlayer()).sendContainerToPlayer(player.inventoryContainer);
}
}
}
protected ControlGeneScroll genes;
public WindowGeneBank(EntityPlayer player, IInventory inventory, Side side, boolean isNEI) {
super(320, 224, player, inventory, side);
isNei = isNEI;
}
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowGeneBank(player, inventory, side, false);
}
public WindowGeneBank(final EntityPlayer player, final IInventory inventory, final Side side, final boolean isNEI) {
super(320, 224, player, inventory, side);
this.isNei = isNEI;
@Override
public void recieveGuiNBT(Side side, EntityPlayer player, String name, NBTTagCompound nbt) {
super.recieveGuiNBT(side, player, name, nbt);
if (side != Side.SERVER || !name.equals("gene-select")) {
return;
}
Gene gene = new Gene(nbt.getCompoundTag("gene"));
if (gene.isCorrupted()) {
return;
}
ItemStack held = getHeldItemStack();
ItemStack converted = Engineering.addGene(held, gene);
getPlayer().inventory.setItemStack(converted);
getPlayer().inventory.markDirty();
if (getPlayer() instanceof EntityPlayerMP) {
((EntityPlayerMP) getPlayer()).sendContainerToPlayer(player.inventoryContainer);
}
}
@Override
public void initialiseServer() {
final GeneTracker tracker = GeneTracker.getTracker(this.getWorld(), this.getUsername());
GeneTracker tracker = GeneTracker.getTracker(getWorld(), getUsername());
if (tracker != null) {
tracker.synchToPlayer(this.getPlayer());
tracker.synchToPlayer(getPlayer());
}
}
@Override
public void initialiseClient() {
this.setTitle("Gene Bank");
this.addEventHandler(new EventValueChanged.Handler() {
setTitle("Gene Bank");
addEventHandler(new EventValueChanged.Handler() {
@Override
public void onEvent(final EventValueChanged event) {
public void onEvent(EventValueChanged event) {
if (event.value instanceof BreedingSystem) {
WindowGeneBank.this.genes.setValue((BreedingSystem) event.value);
genes.setValue((BreedingSystem) event.value);
}
}
});
int boxX = 100;
int boxX;
int x = 16;
final int y = 32;
int y = 32;
new ControlPlayerInventory(this, x, y);
x += 124;
boxX = x;
final int geneBoxWidth = 120;
int geneBoxWidth = 120;
new Panel(this, boxX + 24, 32.0f, geneBoxWidth, 120.0f, MinecraftGUI.PanelType.Black);
new Panel(this, boxX + 24 + geneBoxWidth, 32.0f, 14.0f, 120.0f, MinecraftGUI.PanelType.Gray);
final ControlScrollableContent scroll = new ControlScrollableContent(this, boxX + 24 + 2, 34.0f, geneBoxWidth + 10, 116.0f, 12.0f);
final ControlTextEdit edit = new ControlTextEdit(this, boxX + 27 + geneBoxWidth - 70, 18.0f, 80.0f, 12.0f);
this.addEventHandler(new EventTextEdit.Handler() {
ControlScrollableContent scroll = new ControlScrollableContent(this, boxX + 24 + 2, 34.0f, geneBoxWidth + 10, 116.0f, 12.0f);
ControlTextEdit edit = new ControlTextEdit(this, boxX + 27 + geneBoxWidth - 70, 18.0f, 80.0f, 12.0f);
addEventHandler(new EventTextEdit.Handler() {
@Override
public void onEvent(final EventTextEdit event) {
WindowGeneBank.this.genes.setFilter(event.getValue());
public void onEvent(EventTextEdit event) {
genes.setFilter(event.getValue());
}
}.setOrigin(EventHandler.Origin.Self, edit));
scroll.setScrollableContent(this.genes = new ControlGeneScroll(scroll, 1.0f, 1.0f, geneBoxWidth, 116.0f));
this.genes.setGenes(Binnie.Genetics.beeBreedingSystem);
final ControlTabBar<BreedingSystem> tabBar = new ControlTabBar<BreedingSystem>(this, boxX, 32.0f, 24.0f, 120.0f, Position.Left) {
scroll.setScrollableContent(genes = new ControlGeneScroll(scroll, 1.0f, 1.0f, geneBoxWidth, 116.0f));
genes.setGenes(Binnie.Genetics.beeBreedingSystem);
ControlTabBar<BreedingSystem> tabBar = new ControlTabBar<BreedingSystem>(this, boxX, 32.0f, 24.0f, 120.0f, Position.Left) {
@Override
public ControlTab<BreedingSystem> createTab(final float x, final float y, final float w, final float h, final BreedingSystem value) {
public ControlTab<BreedingSystem> createTab(float x, float y, float w, float h, BreedingSystem value) {
return new ControlTabIcon<BreedingSystem>(this, x, y, w, h, value) {
@Override
public void getTooltip(final Tooltip tooltip) {
tooltip.add(this.getValue().toString());
public void getTooltip(Tooltip tooltip) {
tooltip.add(getValue().toString());
int totalGenes = 0;
int seqGenes = 0;
final GeneTracker tracker = GeneTracker.getTracker(WindowGeneBank.this.getWorld(), WindowGeneBank.this.getUsername());
final Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(this.getValue().getSpeciesRoot());
for (final Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
GeneTracker tracker = GeneTracker.getTracker(getWorld(), getUsername());
Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(getValue().getSpeciesRoot());
for (Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
totalGenes += entry.getValue().size();
for (final IAllele allele : entry.getValue()) {
final Gene gene = new Gene(allele, entry.getKey(), this.getValue().getSpeciesRoot());
for (IAllele allele : entry.getValue()) {
Gene gene = new Gene(allele, entry.getKey(), getValue().getSpeciesRoot());
if (tracker.isSequenced(gene)) {
++seqGenes;
seqGenes++;
}
}
}
@@ -137,28 +138,31 @@ public class WindowGeneBank extends WindowMachine
};
}
};
tabBar.setValues(Binnie.Genetics.getActiveSystems());
tabBar.setValue(Binnie.Genetics.beeBreedingSystem);
boxX -= 8;
final ControlTabBar<String> infoTabs = new ControlTabBar<String>(this, boxX + 8, 160.0f, 16.0f, 50.0f, Position.Left);
ControlTabBar<String> infoTabs = new ControlTabBar<String>(this, boxX + 8, 160.0f, 16.0f, 50.0f, Position.Left);
infoTabs.setValues(Arrays.asList("Stats", "Ranking"));
infoTabs.setValue("Info");
final Panel panelProject = new Panel(this, boxX + 24, 160.0f, geneBoxWidth + 20, 50.0f, MinecraftGUI.PanelType.Black);
Panel panelProject = new Panel(this, boxX + 24, 160.0f, geneBoxWidth + 20, 50.0f, MinecraftGUI.PanelType.Black);
int totalGenes = 0;
int seqGenes = 0;
for (final BreedingSystem system : Binnie.Genetics.getActiveSystems()) {
final GeneTracker tracker = GeneTracker.getTracker(this.getWorld(), this.getUsername());
final Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(system.getSpeciesRoot());
for (final Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
for (BreedingSystem system : Binnie.Genetics.getActiveSystems()) {
GeneTracker tracker = GeneTracker.getTracker(getWorld(), getUsername());
Map<IChromosomeType, List<IAllele>> genes = Binnie.Genetics.getChromosomeMap(system.getSpeciesRoot());
for (Map.Entry<IChromosomeType, List<IAllele>> entry : genes.entrySet()) {
totalGenes += entry.getValue().size();
for (final IAllele allele : entry.getValue()) {
final Gene gene = new Gene(allele, entry.getKey(), system.getSpeciesRoot());
for (IAllele allele : entry.getValue()) {
Gene gene = new Gene(allele, entry.getKey(), system.getSpeciesRoot());
if (tracker.isSequenced(gene)) {
++seqGenes;
}
}
}
}
new ControlText(panelProject, new IPoint(4.0f, 4.0f), EnumChatFormatting.UNDERLINE + "Full Genome Project");
new ControlText(panelProject, new IPoint(4.0f, 18.0f), EnumChatFormatting.ITALIC.toString() + EnumChatFormatting.YELLOW + "quenced " + EnumChatFormatting.RESET + seqGenes + "/" + totalGenes + " " + EnumChatFormatting.ITALIC + "Genes");
}
@@ -177,20 +181,4 @@ public class WindowGeneBank extends WindowMachine
protected String getName() {
return "GeneBank";
}
public static class ChromosomeType
{
IChromosomeType chromosome;
BreedingSystem system;
public ChromosomeType(final IChromosomeType chromosome, final BreedingSystem system) {
this.chromosome = chromosome;
this.system = system;
}
@Override
public String toString() {
return this.system.getChromosomeName(this.chromosome);
}
}
}
@@ -1,17 +1,12 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowGeneBankNEI
{
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
public class WindowGeneBankNEI {
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowGeneBank(player, inventory, side, true);
}
}
@@ -1,18 +1,14 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.Window;
import binnie.genetics.Genetics;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowGeneProject extends Window
{
// TODO unused class?
public class WindowGeneProject extends Window {
public WindowGeneProject(final EntityPlayer player, final IInventory inventory, final Side side) {
super(100.0f, 100.0f, player, inventory, side);
}
@@ -29,6 +25,6 @@ public class WindowGeneProject extends Window
@Override
public void initialiseClient() {
this.setTitle("Gene Projects");
setTitle("Gene Projects");
}
}
@@ -1,49 +1,44 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.AbstractMod;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.genetics.machine.Genepool;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.resource.Texture;
import net.minecraft.inventory.IInventory;
public class WindowGenepool extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowGenepool extends WindowMachine {
static Texture ProgressBase = new StandardTexture(64, 0, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
static Texture Progress = new StandardTexture(64, 21, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowGenepool(player, inventory, side);
public WindowGenepool(EntityPlayer player, IInventory inventory, Side side) {
super(280, 198, player, inventory, side);
}
public WindowGenepool(final EntityPlayer player, final IInventory inventory, final Side side) {
super(280, 198, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowGenepool(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Genepool");
setTitle("Genepool");
int x = 16;
final int y = 32;
int y = 32;
new ControlLiquidTank(this, x, y).setTankID(1);
x += 26;
new ControlSlotArray(this, x, y + 3, 2, 3).create(Genepool.slotReserve);
@@ -76,9 +71,4 @@ public class WindowGenepool extends WindowMachine
protected String getName() {
return "Genepool";
}
static {
WindowGenepool.ProgressBase = new StandardTexture(64, 0, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
WindowGenepool.Progress = new StandardTexture(64, 21, 130, 21, ExtraBeeTexture.GUIProgress.getTexture());
}
}
@@ -1,24 +1,20 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.Window;
import binnie.genetics.Genetics;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowGenomeAssembler extends WindowMachine
{
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowGenomeAssembler(player, inventory, side);
// TODO unused class?
public class WindowGenomeAssembler extends WindowMachine {
public WindowGenomeAssembler(EntityPlayer player, IInventory inventory, Side side) {
super(320, 240, player, inventory, side);
}
public WindowGenomeAssembler(final EntityPlayer player, final IInventory inventory, final Side side) {
super(320, 240, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowGenomeAssembler(player, inventory, side);
}
@Override
@@ -1,48 +1,43 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.genetics.machine.Incubator;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.machine.Incubator;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowIncubator extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowIncubator extends WindowMachine {
protected static Texture ProgressBase = new StandardTexture(0, 91, 38, 32, GeneticsTexture.GUIProcess);
protected static Texture Progress = new StandardTexture(38, 91, 38, 32, GeneticsTexture.GUIProcess);
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowIncubator(player, inventory, side);
public WindowIncubator(EntityPlayer player, IInventory inventory, Side side) {
super(228, 196, player, inventory, side);
}
public WindowIncubator(final EntityPlayer player, final IInventory inventory, final Side side) {
super(228, 196, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowIncubator(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Incubator");
setTitle("Incubator");
int x = 16;
final int y = 32;
int y = 32;
new ControlLiquidTank(this, x, y).setTankID(0);
x += 26;
new ControlSlotArray(this, x, y + 3, 1, 3).create(Incubator.slotQueue);
@@ -77,9 +72,4 @@ public class WindowIncubator extends WindowMachine
protected String getName() {
return "Incubator";
}
static {
WindowIncubator.ProgressBase = new StandardTexture(0, 91, 38, 32, GeneticsTexture.GUIProcess);
WindowIncubator.Progress = new StandardTexture(38, 91, 38, 32, GeneticsTexture.GUIProcess);
}
}
@@ -1,50 +1,45 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.geometry.CraftGUIUtil;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.genetics.machine.Inoculator;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.machine.Inoculator;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowInoculator extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowInoculator extends WindowMachine {
static Texture ProgressBase = new StandardTexture(0, 72, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
static Texture Progress = new StandardTexture(0, 0, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowInoculator(player, inventory, side);
public WindowInoculator(EntityPlayer player, IInventory inventory, Side side) {
super(266, 240, player, inventory, side);
}
public WindowInoculator(final EntityPlayer player, final IInventory inventory, final Side side) {
super(266, 240, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowInoculator(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Inoculator");
setTitle("Inoculator");
int x = 16;
final int y = 32;
int y = 32;
new ControlLiquidTank(this, x, y + 18 + 16).setTankID(0);
CraftGUIUtil.horizontalGrid(x, y, new ControlSlotArray(this, 0, 0, 2, 1).create(Inoculator.slotSerumReserve), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowRight.getIcon()), new ControlSlot(this, 0.0f, 0.0f).assign(0), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowRight.getIcon()), new ControlSlotArray(this, 0, 0, 2, 1).create(Inoculator.slotSerumExpended));
x += 18;
@@ -72,9 +67,4 @@ public class WindowInoculator extends WindowMachine
protected String getName() {
return "Inoculator";
}
static {
WindowInoculator.ProgressBase = new StandardTexture(0, 72, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
WindowInoculator.Progress = new StandardTexture(0, 0, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
}
}
@@ -1,49 +1,44 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.AbstractMod;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlProgress;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlProgress;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.genetics.machine.Isolator;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.resource.Texture;
import net.minecraft.inventory.IInventory;
public class WindowIsolator extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowIsolator extends WindowMachine {
static Texture ProgressBase = new StandardTexture(0, 218, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
static Texture Progress = new StandardTexture(0, 201, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowIsolator(player, inventory, side);
public WindowIsolator(EntityPlayer player, IInventory inventory, Side side) {
super(330, 208, player, inventory, side);
}
public WindowIsolator(final EntityPlayer player, final IInventory inventory, final Side side) {
super(330, 208, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowIsolator(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Isolator");
setTitle("Isolator");
int x = 16;
final int y = 32;
int y = 32;
new ControlLiquidTank(this, x, y).setTankID(0);
x += 26;
new ControlSlotArray(this, x, y + 3, 1, 3).create(Isolator.slotReserve);
@@ -82,9 +77,4 @@ public class WindowIsolator extends WindowMachine
protected String getName() {
return "Isolator";
}
static {
WindowIsolator.ProgressBase = new StandardTexture(0, 218, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
WindowIsolator.Progress = new StandardTexture(0, 201, 142, 17, ExtraBeeTexture.GUIProgress.getTexture());
}
}
@@ -1,17 +1,12 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public abstract class WindowMachine extends Window
{
public WindowMachine(final int width, final int height, final EntityPlayer player, final IInventory inventory, final Side side) {
public abstract class WindowMachine extends Window {
public WindowMachine(int width, int height, EntityPlayer player, IInventory inventory, Side side) {
super(width, height, player, inventory, side);
}
@@ -19,6 +14,6 @@ public abstract class WindowMachine extends Window
@Override
public void initialiseClient() {
this.setTitle(this.getTitle());
setTitle(getTitle());
}
}
@@ -1,49 +1,47 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.genetics.machine.Polymeriser;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlLiquidTank;
import binnie.core.craftgui.minecraft.control.ControlMachineProgress;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.machine.Polymeriser;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowPolymeriser extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowPolymeriser extends WindowMachine {
protected static Texture ProgressBase = new StandardTexture(76, 170, 160, 79, GeneticsTexture.GUIProcess.getTexture());
protected static Texture Progress = new StandardTexture(76, 91, 160, 79, GeneticsTexture.GUIProcess.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowPolymeriser(player, inventory, side);
static {
}
public WindowPolymeriser(final EntityPlayer player, final IInventory inventory, final Side side) {
public WindowPolymeriser(EntityPlayer player, IInventory inventory, Side side) {
super(278, 212, player, inventory, side);
}
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowPolymeriser(player, inventory, side);
}
@Override
public void initialiseClient() {
super.initialiseClient();
int x = 16;
final int y = 38;
int y = 38;
new ControlSlotArray(this, x, y, 1, 4).create(Polymeriser.slotSerumReserve);
new ControlIconDisplay(this, x + 18, y + 1, GUIIcon.ArrowRight.getIcon());
x += 34;
@@ -57,7 +55,7 @@ public class WindowPolymeriser extends WindowMachine
new ControlSlotCharge(this, x + 30 + 20, y + 18 + 8, 1).setColor(16766976);
x += 138;
new ControlSlotArray(this, x, y + 9, 2, 2).create(Polymeriser.slotSerumFinished);
final ControlErrorState errorState = new ControlErrorState(this, 244.0f, 97.0f);
ControlErrorState errorState = new ControlErrorState(this, 244.0f, 97.0f);
new ControlPlayerInventory(this);
}
@@ -75,9 +73,4 @@ public class WindowPolymeriser extends WindowMachine
protected String getName() {
return "Polymeriser";
}
static {
WindowPolymeriser.ProgressBase = new StandardTexture(76, 170, 160, 79, GeneticsTexture.GUIProcess.getTexture());
WindowPolymeriser.Progress = new StandardTexture(76, 91, 160, 79, GeneticsTexture.GUIProcess.getTexture());
}
}
@@ -1,77 +1,73 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.AbstractMod;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.geometry.CraftGUIUtil;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.extrabees.core.ExtraBeeTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlSlotCharge;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.CraftGUIUtil;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.genetics.machine.Sequencer;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.geometry.TextJustification;
import net.minecraft.nbt.NBTTagCompound;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.resource.Texture;
import net.minecraft.inventory.IInventory;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
public class WindowSequencer extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
ControlText slotText;
public class WindowSequencer extends WindowMachine {
protected static Texture ProgressBase = new StandardTexture(64, 114, 98, 9, ExtraBeeTexture.GUIProgress.getTexture());
protected static Texture Progress = new StandardTexture(64, 123, 98, 9, ExtraBeeTexture.GUIProgress.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowSequencer(player, inventory, side);
}
protected ControlText slotText;
public WindowSequencer(final EntityPlayer player, final IInventory inventory, final Side side) {
public WindowSequencer(EntityPlayer player, IInventory inventory, Side side) {
super(226, 224, player, inventory, side);
}
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowSequencer(player, inventory, side);
}
@Override
public void recieveGuiNBT(final Side side, final EntityPlayer player, final String name, final NBTTagCompound nbt) {
public void recieveGuiNBT(Side side, EntityPlayer player, String name, NBTTagCompound nbt) {
if (side == Side.CLIENT && name.equals("username")) {
this.slotText.setValue(EnumChatFormatting.DARK_GRAY + "Genes will be sequenced by " + nbt.getString("username"));
slotText.setValue(EnumChatFormatting.DARK_GRAY + "Genes will be sequenced by " + nbt.getString("username"));
}
super.recieveGuiNBT(side, player, name, nbt);
}
@Override
public void initialiseClient() {
this.setTitle("Sequencer");
setTitle("Sequencer");
int x = 16;
int y = 32;
CraftGUIUtil.horizontalGrid(x, y, TextJustification.MiddleCenter, 2.0f, new ControlSlotArray(this, 0, 0, 2, 2).create(Sequencer.slotReserve), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowRight.getIcon()), new ControlSequencerProgress(this, 0, 0), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowRight.getIcon()), new ControlSlot(this, 0.0f, 0.0f).assign(6));
final ControlSlot slotTarget = new ControlSlot(this, x + 96, y + 16);
ControlSlot slotTarget = new ControlSlot(this, x + 96, y + 16);
slotTarget.assign(5);
x = 34;
y = 92;
this.slotText = new ControlText(this, new IArea(0.0f, y, this.w(), 12.0f), EnumChatFormatting.DARK_GRAY + "Userless. Will not save sequences", TextJustification.MiddleCenter);
slotText = new ControlText(this, new IArea(0.0f, y, w(), 12.0f), EnumChatFormatting.DARK_GRAY + "Userless. Will not save sequences", TextJustification.MiddleCenter);
y += 20;
final ControlSlot slotDye = new ControlSlot(this, x, y);
ControlSlot slotDye = new ControlSlot(this, x, y);
slotDye.assign(0);
x += 20;
new ControlSlotCharge(this, x, y, 0).setColor(16750848);
x += 32;
new ControlEnergyBar(this, x, y, 60, 16, Position.Left);
x += 92;
final ControlErrorState errorState = new ControlErrorState(this, x, y + 1);
ControlErrorState errorState = new ControlErrorState(this, x, y + 1);
new ControlPlayerInventory(this);
}
@@ -89,9 +85,4 @@ public class WindowSequencer extends WindowMachine
protected String getName() {
return "Sequencer";
}
static {
WindowSequencer.ProgressBase = new StandardTexture(64, 114, 98, 9, ExtraBeeTexture.GUIProgress.getTexture());
WindowSequencer.Progress = new StandardTexture(64, 123, 98, 9, ExtraBeeTexture.GUIProgress.getTexture());
}
}
@@ -1,56 +1,50 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.craftgui;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.genetics.machine.Inoculator;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.geometry.CraftGUIUtil;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.minecraft.GUIIcon;
import binnie.genetics.machine.Splicer;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.minecraft.Window;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.craftgui.minecraft.control.ControlEnergyBar;
import binnie.core.craftgui.minecraft.control.ControlErrorState;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.minecraft.control.ControlSlotArray;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.machine.Inoculator;
import binnie.genetics.machine.Splicer;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
public class WindowSplicer extends WindowMachine
{
static Texture ProgressBase;
static Texture Progress;
public class WindowSplicer extends WindowMachine {
protected static Texture ProgressBase = new StandardTexture(0, 72, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
protected static Texture Progress = new StandardTexture(0, 0, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
public static Window create(final EntityPlayer player, final IInventory inventory, final Side side) {
return new WindowSplicer(player, inventory, side);
public WindowSplicer(EntityPlayer player, IInventory inventory, Side side) {
super(280, 240, player, inventory, side);
}
public WindowSplicer(final EntityPlayer player, final IInventory inventory, final Side side) {
super(280, 240, player, inventory, side);
public static Window create(EntityPlayer player, IInventory inventory, Side side) {
return new WindowSplicer(player, inventory, side);
}
@Override
public void initialiseClient() {
this.setTitle("Splicer");
setTitle("Splicer");
int x = 16;
new ControlSplicerProgress(this, 84.0f, 32.0f, this.w() - 172.0f, 102.0f);
new ControlSplicerProgress(this, 84.0f, 32.0f, w() - 172.0f, 102.0f);
CraftGUIUtil.horizontalGrid(x, 62.0f, new ControlSlotArray(this, 0, 0, 2, 1).create(Splicer.slotSerumReserve), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowRight.getIcon()), new ControlSlot(this, 0.0f, 0.0f).assign(0));
new ControlSlotArray(this, x + 12, 84, 2, 1).create(Splicer.slotSerumExpended);
new ControlIconDisplay(this, x + 12 + 36 + 4, 86.0f, GUIIcon.ArrowUpLeft.getIcon());
new ControlEnergyBar(this, 196, 64, 60, 16, Position.Left);
new ControlErrorState(this, 218.0f, 86.0f);
x += 142;
CraftGUIUtil.verticalGrid((this.w() - 72.0f) / 2.0f, 32.0f, TextJustification.MiddleCenter, 4.0f, new ControlSlotArray(this, 0, 0, 4, 1).create(Inoculator.slotReserve), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowDown.getIcon()), new ControlSlot(this, 0.0f, 0.0f).assign(9), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowDown.getIcon()), new ControlSlotArray(this, 0, 0, 4, 1).create(Inoculator.slotFinished));
CraftGUIUtil.verticalGrid((w() - 72.0f) / 2.0f, 32.0f, TextJustification.MiddleCenter, 4.0f, new ControlSlotArray(this, 0, 0, 4, 1).create(Inoculator.slotReserve), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowDown.getIcon()), new ControlSlot(this, 0.0f, 0.0f).assign(9), new ControlIconDisplay(this, 0.0f, 0.0f, GUIIcon.ArrowDown.getIcon()), new ControlSlotArray(this, 0, 0, 4, 1).create(Inoculator.slotFinished));
new ControlPlayerInventory(this);
}
@@ -68,9 +62,4 @@ public class WindowSplicer extends WindowMachine
protected String getName() {
return "Inoculator";
}
static {
WindowSplicer.ProgressBase = new StandardTexture(0, 72, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
WindowSplicer.Progress = new StandardTexture(0, 0, 142, 72, GeneticsTexture.GUIProcess2.getTexture());
}
}
@@ -1,31 +1,27 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import binnie.genetics.api.IItemChargable;
import binnie.genetics.item.ItemSerumArray;
import binnie.genetics.item.ItemSerum;
import binnie.genetics.api.IGene;
import binnie.genetics.item.GeneticsItems;
import binnie.genetics.Genetics;
import binnie.genetics.api.IGene;
import binnie.genetics.api.IItemChargable;
import binnie.genetics.api.IItemSerum;
import binnie.genetics.item.GeneticsItems;
import binnie.genetics.item.ItemSerum;
import binnie.genetics.item.ItemSerumArray;
import net.minecraft.item.ItemStack;
public class Engineering
{
public static boolean isGeneAcceptor(final ItemStack stack) {
public class Engineering {
public static boolean isGeneAcceptor(ItemStack stack) {
if (stack == null) {
return false;
}
if (stack.getItem() instanceof IItemSerum) {
return ((IItemSerum) stack.getItem()).getCharges(stack) == 0;
}
return stack.getItem() == Genetics.itemGenetics && (stack.getItemDamage() == GeneticsItems.EmptySerum.ordinal() || stack.getItemDamage() == GeneticsItems.EmptyGenome.ordinal());
return stack.getItem() == Genetics.itemGenetics
&& (stack.getItemDamage() == GeneticsItems.EmptySerum.ordinal() || stack.getItemDamage() == GeneticsItems.EmptyGenome.ordinal());
}
public static boolean canAcceptGene(final ItemStack stack, final IGene gene) {
public static boolean canAcceptGene(ItemStack stack, IGene gene) {
if (stack.getItem() instanceof ItemSerum) {
return true;
}
@@ -35,14 +31,14 @@ public class Engineering
return isGeneAcceptor(stack);
}
public static IGene getGene(final ItemStack stack, final int chromosome) {
public static IGene getGene(ItemStack stack, int chromosome) {
if (stack.getItem() instanceof IItemSerum) {
return ((IItemSerum) stack.getItem()).getGene(stack, chromosome);
}
return null;
}
public static ItemStack addGene(final ItemStack stack, final IGene gene) {
public static ItemStack addGene(ItemStack stack, IGene gene) {
if (stack.getItem() instanceof IItemSerum) {
((IItemSerum) stack.getItem()).addGene(stack, gene);
}
@@ -55,17 +51,17 @@ public class Engineering
return stack;
}
public static IGene[] getGenes(final ItemStack serum) {
public static IGene[] getGenes(ItemStack serum) {
if (serum.getItem() instanceof IItemSerum) {
return ((IItemSerum) serum.getItem()).getGenes(serum);
}
if (serum.getItem() == Genetics.itemSequencer) {
return new IGene[] { new SequencerItem(serum).gene };
return new IGene[]{new SequencerItem(serum).gene};
}
return new IGene[0];
}
public static int getCharges(final ItemStack serum) {
public static int getCharges(ItemStack serum) {
return ((IItemChargable) serum.getItem()).getCharges(serum);
}
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import binnie.Binnie;
@@ -19,84 +15,86 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.ArrayList;
import java.util.List;
public class GeneArrayItem implements INBTTagable, IGeneItem
{
List<IGene> genes;
public class GeneArrayItem implements INBTTagable, IGeneItem {
protected List<IGene> genes;
public GeneArrayItem(final ItemStack stack) {
this.genes = new ArrayList<IGene>();
public GeneArrayItem(ItemStack stack) {
genes = new ArrayList<>();
if (stack == null) {
return;
}
this.readFromNBT(stack.getTagCompound());
readFromNBT(stack.getTagCompound());
}
public GeneArrayItem(final IGene gene) {
this.genes = new ArrayList<IGene>();
this.addGene(gene);
public GeneArrayItem(IGene gene) {
genes = new ArrayList<>();
addGene(gene);
}
public GeneArrayItem() {
this.genes = new ArrayList<IGene>();
genes = new ArrayList<>();
}
@Override
public int getColour(final int renderPass) {
if (renderPass == 2) {
return this.getBreedingSystem().getColour();
public int getColour(int color) {
if (color == 2) {
return getBreedingSystem().getColour();
}
return 16777215;
return 0xffffff;
}
@Override
public void getInfo(final List list) {
final List<Object> totalList = new ArrayList<Object>();
for (final IGene gene : this.genes) {
final String chromosomeName = this.getBreedingSystem().getChromosomeName(gene.getChromosome());
public void getInfo(List tooltip) {
List<Object> totalList = new ArrayList<Object>();
for (IGene gene : genes) {
String chromosomeName = getBreedingSystem().getChromosomeName(gene.getChromosome());
totalList.add(EnumChatFormatting.GOLD + chromosomeName + EnumChatFormatting.GRAY + ": " + gene.getName());
}
if (totalList.size() < 4 || BinnieCore.proxy.isShiftDown()) {
list.addAll(totalList);
}
else {
list.add(totalList.get(0));
list.add(totalList.get(1));
list.add(totalList.size() - 2 + " more genes. Hold shift to display.");
tooltip.addAll(totalList);
} else {
tooltip.add(totalList.get(0));
tooltip.add(totalList.get(1));
tooltip.add(totalList.size() - 2 + " more genes. Hold shift to display.");
}
}
public BreedingSystem getBreedingSystem() {
if (this.genes.size() == 0) {
if (genes.size() == 0) {
return null;
}
final BreedingSystem system = Binnie.Genetics.getSystem(this.genes.get(0).getSpeciesRoot().getUID());
BreedingSystem system = Binnie.Genetics.getSystem(genes.get(0).getSpeciesRoot().getUID());
return (system == null) ? Binnie.Genetics.getActiveSystems().iterator().next() : system;
}
public List<IGene> getGenes() {
return this.genes;
return genes;
}
@Override
public void readFromNBT(final NBTTagCompound nbt) {
this.genes.clear();
if (nbt != null) {
final NBTTagList list = nbt.getTagList("genes", 10);
for (int i = 0; i < list.tagCount(); ++i) {
final Gene gene = Gene.create(list.getCompoundTagAt(i));
this.genes.add(gene);
}
}
}
@Override
public void writeToNBT(final NBTTagCompound nbt) {
if (this.genes.size() == 0) {
public void readFromNBT(NBTTagCompound nbt) {
genes.clear();
if (nbt == null) {
return;
}
final NBTTagList list = new NBTTagList();
for (final IGene gene : this.genes) {
final NBTTagCompound geneNBT = gene.getNBTTagCompound();
NBTTagList list = nbt.getTagList("genes", 10);
for (int i = 0; i < list.tagCount(); ++i) {
Gene gene = Gene.create(list.getCompoundTagAt(i));
genes.add(gene);
}
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
if (genes.size() == 0) {
return;
}
NBTTagList list = new NBTTagList();
for (IGene gene : genes) {
NBTTagCompound geneNBT = gene.getNBTTagCompound();
list.appendTag(geneNBT);
}
nbt.setTag("genes", list);
@@ -104,14 +102,14 @@ public class GeneArrayItem implements INBTTagable, IGeneItem
@Override
public ISpeciesRoot getSpeciesRoot() {
if (this.genes.size() == 0) {
if (genes.size() == 0) {
return null;
}
return this.genes.get(0).getSpeciesRoot();
return genes.get(0).getSpeciesRoot();
}
public IGene getGene(final int chromosome) {
for (final IGene gene : this.genes) {
public IGene getGene(int chromosome) {
for (IGene gene : genes) {
if (gene.getChromosome().ordinal() == chromosome) {
return gene;
}
@@ -120,20 +118,21 @@ public class GeneArrayItem implements INBTTagable, IGeneItem
}
@Override
public void writeToItem(final ItemStack stack) {
public void writeToItem(ItemStack stack) {
if (stack == null) {
return;
}
final NBTTagCompound nbt = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
this.writeToNBT(nbt);
NBTTagCompound nbt = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
writeToNBT(nbt);
stack.setTagCompound(nbt);
}
@Override
public void addGene(final IGene gene) {
if (this.getGene(gene.getChromosome().ordinal()) != null) {
this.genes.remove(this.getGene(gene.getChromosome().ordinal()));
public void addGene(IGene gene) {
if (getGene(gene.getChromosome().ordinal()) != null) {
genes.remove(getGene(gene.getChromosome().ordinal()));
}
this.genes.add(gene);
genes.add(gene);
}
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import binnie.Binnie;
@@ -16,83 +12,84 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.List;
public class GeneItem implements INBTTagable, IGeneItem
{
IGene gene;
public class GeneItem implements INBTTagable, IGeneItem {
protected IGene gene;
public GeneItem(final ItemStack stack) {
public GeneItem(ItemStack stack) {
if (stack == null) {
return;
}
this.readFromNBT(stack.getTagCompound());
readFromNBT(stack.getTagCompound());
}
public GeneItem(final IGene gene) {
public GeneItem(IGene gene) {
this.gene = gene;
}
public boolean isCorrupted() {
return this.gene == null;
return gene == null;
}
@Override
public void writeToItem(final ItemStack stack) {
if (this.gene == null || stack == null) {
public void writeToItem(ItemStack stack) {
if (gene == null || stack == null) {
return;
}
final NBTTagCompound nbt = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
this.writeToNBT(nbt);
NBTTagCompound nbt = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
writeToNBT(nbt);
stack.setTagCompound(nbt);
}
@Override
public int getColour(final int renderPass) {
if (renderPass == 2 && this.getBreedingSystem() != null) {
return this.getBreedingSystem().getColour();
public int getColour(int color) {
if (color == 2 && getBreedingSystem() != null) {
return getBreedingSystem().getColour();
}
return 16777215;
return 0xffffff;
}
@Override
public void getInfo(final List list) {
final String chromosomeName = this.getBreedingSystem().getChromosomeName(this.gene.getChromosome());
list.add(EnumChatFormatting.GOLD + chromosomeName + EnumChatFormatting.GRAY + ": " + this.gene.getName());
public void getInfo(List tooltip) {
String chromosomeName = getBreedingSystem().getChromosomeName(gene.getChromosome());
tooltip.add(EnumChatFormatting.GOLD + chromosomeName + EnumChatFormatting.GRAY + ": " + gene.getName());
}
public BreedingSystem getBreedingSystem() {
if (this.gene == null) {
if (gene == null) {
return null;
}
return Binnie.Genetics.getSystem(this.gene.getSpeciesRoot().getUID());
return Binnie.Genetics.getSystem(gene.getSpeciesRoot().getUID());
}
public IGene getGene() {
return this.gene;
return gene;
}
@Override
public void readFromNBT(final NBTTagCompound nbt) {
public void readFromNBT(NBTTagCompound nbt) {
if (nbt != null) {
this.gene = Gene.create(nbt.getCompoundTag("gene"));
gene = Gene.create(nbt.getCompoundTag("gene"));
}
}
@Override
public void writeToNBT(final NBTTagCompound nbt) {
if (this.gene == null) {
public void writeToNBT(NBTTagCompound nbt) {
if (gene == null) {
return;
}
final NBTTagCompound geneNBT = this.gene.getNBTTagCompound();
NBTTagCompound geneNBT = gene.getNBTTagCompound();
nbt.setTag("gene", geneNBT);
}
@Override
public ISpeciesRoot getSpeciesRoot() {
return this.gene.getSpeciesRoot();
return gene.getSpeciesRoot();
}
@Override
public void addGene(final IGene gene) {
public void addGene(IGene gene) {
this.gene = gene;
}
}
@@ -1,70 +1,66 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import com.mojang.authlib.GameProfile;
import java.util.ArrayList;
import java.util.List;
import com.mojang.authlib.GameProfile;
public class GeneProject
{
int id;
String name;
GameProfile leader;
List<GameProfile> members;
public class GeneProject {
protected int id;
protected String name;
protected GameProfile leader;
protected List<GameProfile> members;
public GeneProject(final int id, final String name, final GameProfile leader) {
public GeneProject(int id, String name, GameProfile leader) {
this.id = 0;
this.leader = null;
this.members = new ArrayList<GameProfile>();
this.setID(id);
this.setName(name);
this.setLeader(leader);
members = new ArrayList<>();
setID(id);
setName(name);
setLeader(leader);
}
public int getID() {
return this.id;
return id;
}
public void setID(final int id) {
public void setID(int id) {
this.id = id;
}
public String getName() {
return this.name;
return name;
}
public void setName(final String name) {
public void setName(String name) {
this.name = name;
}
public GameProfile getLeader() {
return this.leader;
return leader;
}
public void setLeader(final GameProfile leader) {
this.addPlayer(this.leader = leader);
public void setLeader(GameProfile leader) {
addPlayer(this.leader = leader);
}
public boolean isEmpty() {
return this.members.isEmpty();
return members.isEmpty();
}
public void addPlayer(final GameProfile player) {
if (!this.members.contains(player)) {
this.members.add(player);
public void addPlayer(GameProfile player) {
if (!members.contains(player)) {
members.add(player);
}
if (this.leader == null) {
this.leader = player;
if (leader == null) {
leader = player;
}
}
public void removePlayer(final GameProfile player) {
if (player == this.leader) {
public void removePlayer(GameProfile player) {
if (player == leader) {
throw new RuntimeException("Can't remove leader of a Gene Project");
}
this.members.remove(player);
members.remove(player);
}
}
@@ -1,31 +1,28 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import java.util.LinkedHashSet;
import com.mojang.authlib.GameProfile;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import java.util.HashMap;
import java.util.Set;
import com.mojang.authlib.GameProfile;
import java.util.Map;
import net.minecraft.world.WorldSavedData;
public class GeneProjectTracker extends WorldSavedData
{
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
// TODO unused class?
public class GeneProjectTracker extends WorldSavedData {
Map<Integer, GeneProject> projects;
Map<GameProfile, Set<Integer>> TeamInvites;
public GeneProjectTracker(final String s) {
public GeneProjectTracker(String s) {
super(s);
this.projects = new HashMap<Integer, GeneProject>();
this.TeamInvites = new HashMap<GameProfile, Set<Integer>>();
projects = new HashMap<>();
TeamInvites = new HashMap<>();
}
public static GeneProjectTracker getTracker(final World world) {
final String filename = "GeneProjectTracker.common";
public static GeneProjectTracker getTracker(World world) {
String filename = "GeneProjectTracker.common";
GeneProjectTracker tracker = (GeneProjectTracker) world.loadItemData(GeneProjectTracker.class, filename);
if (tracker == null) {
tracker = new GeneProjectTracker(filename);
@@ -35,86 +32,88 @@ public class GeneProjectTracker extends WorldSavedData
}
@Override
public void readFromNBT(final NBTTagCompound nbt) {
public void readFromNBT(NBTTagCompound nbt) {
}
@Override
public void writeToNBT(final NBTTagCompound nbt) {
public void writeToNBT(NBTTagCompound nbt) {
}
public int createProject(final String name, final GameProfile leader) {
public int createProject(String name, GameProfile leader) {
int i;
for (i = 1; this.projects.keySet().contains(i); ++i) {
for (i = 1; projects.keySet().contains(i); ++i) {
}
final GeneProject project = new GeneProject(i, name, leader);
this.projects.put(i, project);
this.markDirty();
GeneProject project = new GeneProject(i, name, leader);
projects.put(i, project);
markDirty();
return i;
}
public void removeProject(final int id) {
this.projects.remove(id);
for (final Map.Entry<GameProfile, Set<Integer>> entry : this.TeamInvites.entrySet()) {
public void removeProject(int id) {
projects.remove(id);
for (Map.Entry<GameProfile, Set<Integer>> entry : TeamInvites.entrySet()) {
entry.getValue().remove(id);
}
this.markDirty();
markDirty();
}
public void leaveProject(final int id, final GameProfile player) {
final GeneProject project = this.projects.get(id);
public void leaveProject(int id, GameProfile player) {
GeneProject project = projects.get(id);
if (project == null) {
return;
}
project.removePlayer(player);
if (project.isEmpty()) {
this.removeProject(id);
removeProject(id);
}
this.markDirty();
markDirty();
}
public void joinProject(final int id, final GameProfile player) {
final GeneProject project = this.projects.get(id);
public void joinProject(int id, GameProfile player) {
GeneProject project = projects.get(id);
if (project == null) {
return;
}
project.addPlayer(player);
this.markDirty();
markDirty();
}
public void reassignPlayer(final int id, final int id2, final GameProfile player) {
final GeneProject project = this.projects.get(id);
public void reassignPlayer(int id, int id2, GameProfile player) {
GeneProject project = projects.get(id);
if (project == null) {
return;
}
final GeneProject project2 = this.projects.get(id2);
GeneProject project2 = projects.get(id2);
if (project2 == null) {
return;
}
this.leaveProject(id, player);
this.joinProject(id2, player);
leaveProject(id, player);
joinProject(id2, player);
}
public void renameProject(final int id, final String newName) {
final GeneProject project = this.projects.get(id);
public void renameProject(int id, String newName) {
GeneProject project = projects.get(id);
if (project != null) {
project.setName(newName);
}
this.markDirty();
markDirty();
}
public void invitePlayer(final int id, final GameProfile player) {
if (!this.TeamInvites.containsKey(player)) {
this.TeamInvites.put(player, new LinkedHashSet<Integer>());
public void invitePlayer(int id, GameProfile player) {
if (!TeamInvites.containsKey(player)) {
TeamInvites.put(player, new LinkedHashSet<>());
}
this.TeamInvites.get(player).add(id);
this.markDirty();
TeamInvites.get(player).add(id);
markDirty();
}
public void revokeInvite(final int id, final GameProfile player) {
if (!this.TeamInvites.containsKey(player)) {
this.TeamInvites.put(player, new LinkedHashSet<Integer>());
public void revokeInvite(int id, GameProfile player) {
if (!TeamInvites.containsKey(player)) {
TeamInvites.put(player, new LinkedHashSet<>());
}
this.TeamInvites.get(player).add(id);
this.markDirty();
TeamInvites.get(player).add(id);
markDirty();
}
}
@@ -1,84 +1,80 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagString;
import forestry.api.genetics.IAllele;
import net.minecraft.nbt.NBTTagList;
import forestry.api.genetics.IChromosomeType;
import binnie.core.genetics.Gene;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.AlleleManager;
import binnie.core.network.packet.MessageNBT;
import binnie.genetics.core.GeneticsPacket;
import binnie.genetics.Genetics;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraft.entity.player.EntityPlayer;
import com.mojang.authlib.GameProfile;
import binnie.genetics.api.IGene;
import java.util.ArrayList;
import binnie.genetics.core.GeneticsPacket;
import com.mojang.authlib.GameProfile;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.world.World;
import net.minecraft.world.WorldSavedData;
public class GeneTracker extends WorldSavedData
{
private ArrayList<IGene> discoveredGenes;
GameProfile username;
import java.util.ArrayList;
public GeneTracker(final String s, final GameProfile username) {
public class GeneTracker extends WorldSavedData {
GameProfile username;
private ArrayList<IGene> discoveredGenes;
public GeneTracker(String s, GameProfile username) {
super(s);
this.discoveredGenes = new ArrayList<IGene>();
discoveredGenes = new ArrayList<>();
this.username = username;
}
public GeneTracker(final String s) {
public GeneTracker(String s) {
super(s);
this.discoveredGenes = new ArrayList<IGene>();
discoveredGenes = new ArrayList<>();
}
protected static GeneTracker getCommonTracker(final EntityPlayer player) {
protected static GeneTracker getCommonTracker(EntityPlayer player) {
return getTracker(player.worldObj, null);
}
public static GeneTracker getTracker(final World world, final GameProfile player) {
final String filename = "GeneTracker." + ((player == null) ? "common" : player.getId());
public static GeneTracker getTracker(World world, GameProfile player) {
String filename = "GeneTracker." + ((player == null) ? "common" : player.getId());
GeneTracker tracker = (GeneTracker) world.loadItemData(GeneTracker.class, filename);
if (tracker == null) {
tracker = new GeneTracker(filename, player);
world.setItemData(filename, tracker);
}
else {
} else {
tracker.username = player;
}
return tracker;
}
public void synchToPlayer(final EntityPlayer player) {
final NBTTagCompound nbttagcompound = new NBTTagCompound();
this.writeToNBT(nbttagcompound);
public void synchToPlayer(EntityPlayer player) {
NBTTagCompound nbttagcompound = new NBTTagCompound();
writeToNBT(nbttagcompound);
Genetics.proxy.sendToPlayer(new MessageNBT(GeneticsPacket.GeneTrackerSync.ordinal(), nbttagcompound), player);
}
@Override
public void readFromNBT(final NBTTagCompound nbt) {
for (final ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
public void readFromNBT(NBTTagCompound nbt) {
for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
if (!nbt.hasKey(root.getUID())) {
continue;
}
final NBTTagCompound nbtRoot = nbt.getCompoundTag(root.getUID());
for (final IChromosomeType chromo : root.getKaryotype()) {
if (nbtRoot.hasKey("" + chromo.ordinal())) {
final NBTTagList nbtChromo = nbtRoot.getTagList("" + chromo.ordinal(), 8);
for (int i = 0; i < nbtChromo.tagCount(); ++i) {
final String uid = nbtChromo.getStringTagAt(i);
final IAllele allele = AlleleManager.alleleRegistry.getAllele(uid);
final Gene gene = new Gene(allele, chromo, root);
if (allele != null && !this.discoveredGenes.contains(gene)) {
this.discoveredGenes.add(gene);
}
NBTTagCompound nbtRoot = nbt.getCompoundTag(root.getUID());
for (IChromosomeType chromo : root.getKaryotype()) {
if (!nbtRoot.hasKey("" + chromo.ordinal())) {
continue;
}
NBTTagList nbtChromo = nbtRoot.getTagList("" + chromo.ordinal(), 8);
for (int i = 0; i < nbtChromo.tagCount(); ++i) {
String uid = nbtChromo.getStringTagAt(i);
IAllele allele = AlleleManager.alleleRegistry.getAllele(uid);
Gene gene = new Gene(allele, chromo, root);
if (allele != null && !discoveredGenes.contains(gene)) {
discoveredGenes.add(gene);
}
}
}
@@ -86,12 +82,12 @@ public class GeneTracker extends WorldSavedData
}
@Override
public void writeToNBT(final NBTTagCompound nbt) {
for (final ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
final NBTTagCompound nbtRoot = new NBTTagCompound();
for (final IChromosomeType chromo : root.getKaryotype()) {
final NBTTagList nbtChromo = new NBTTagList();
for (final IGene gene : this.discoveredGenes) {
public void writeToNBT(NBTTagCompound nbt) {
for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
NBTTagCompound nbtRoot = new NBTTagCompound();
for (IChromosomeType chromo : root.getKaryotype()) {
NBTTagList nbtChromo = new NBTTagList();
for (IGene gene : discoveredGenes) {
if (gene.getSpeciesRoot() == root && gene.getChromosome() == chromo) {
nbtChromo.appendTag(new NBTTagString(gene.getAllele().getUID()));
}
@@ -102,18 +98,18 @@ public class GeneTracker extends WorldSavedData
}
}
public void registerGene(final IGene iGene) {
if (!this.discoveredGenes.contains(iGene)) {
this.discoveredGenes.add(iGene);
public void registerGene(IGene iGene) {
if (!discoveredGenes.contains(iGene)) {
discoveredGenes.add(iGene);
}
this.markDirty();
markDirty();
}
public int getGenesSequenced() {
return this.discoveredGenes.size();
return discoveredGenes.size();
}
public boolean isSequenced(final Gene gene) {
return this.discoveredGenes.contains(gene);
public boolean isSequenced(Gene gene) {
return discoveredGenes.contains(gene);
}
}
@@ -1,77 +1,75 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import forestry.api.genetics.IAlleleInteger;
import forestry.api.genetics.IAlleleFloat;
import forestry.api.genetics.ISpeciesRoot;
import java.util.Comparator;
import java.util.TreeSet;
import java.util.ArrayList;
import forestry.api.genetics.IIndividual;
import java.util.HashMap;
import forestry.api.genetics.IAllele;
import java.util.List;
import forestry.api.genetics.IChromosomeType;
import java.util.Map;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IAlleleFloat;
import forestry.api.genetics.IAlleleInteger;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
public class GeneticEngineeringSystem
{
BreedingSystem breedingSystem;
public Map<IChromosomeType, List<IAllele>> chromosomeMap;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
// TODO unused class?
public class GeneticEngineeringSystem {
static List<IAllele> speciesList;
public Map<IChromosomeType, List<IAllele>> chromosomeMap;
BreedingSystem breedingSystem;
public GeneticEngineeringSystem(final BreedingSystem system) {
this.chromosomeMap = new HashMap<IChromosomeType, List<IAllele>>();
this.breedingSystem = system;
for (final IIndividual indiv : this.breedingSystem.getSpeciesRoot().getIndividualTemplates()) {
for (final IChromosomeType chromosome : this.breedingSystem.getSpeciesRoot().getKaryotype()) {
if (!this.chromosomeMap.containsKey(chromosome)) {
this.chromosomeMap.put(chromosome, new ArrayList<IAllele>());
public GeneticEngineeringSystem(BreedingSystem system) {
chromosomeMap = new HashMap<>();
breedingSystem = system;
for (IIndividual indiv : breedingSystem.getSpeciesRoot().getIndividualTemplates()) {
for (IChromosomeType chromosome : breedingSystem.getSpeciesRoot().getKaryotype()) {
if (!chromosomeMap.containsKey(chromosome)) {
chromosomeMap.put(chromosome, new ArrayList<>());
}
try {
final IAllele a1 = indiv.getGenome().getActiveAllele(chromosome);
final IAllele a2 = indiv.getGenome().getInactiveAllele(chromosome);
IAllele a1 = indiv.getGenome().getActiveAllele(chromosome);
IAllele a2 = indiv.getGenome().getInactiveAllele(chromosome);
if (a1 != null) {
this.chromosomeMap.get(chromosome).add(a1);
chromosomeMap.get(chromosome).add(a1);
}
if (a2 != null) {
this.chromosomeMap.get(chromosome).add(a2);
chromosomeMap.get(chromosome).add(a2);
}
} catch (Exception ex) {
// ignored
}
}
}
for (final IChromosomeType chromosome2 : this.breedingSystem.getSpeciesRoot().getKaryotype()) {
final List<IAllele> alleles = this.getAlleles(chromosome2);
final TreeSet<IAllele> set = new TreeSet<IAllele>(new ComparatorAllele());
for (IChromosomeType chromosome2 : breedingSystem.getSpeciesRoot().getKaryotype()) {
List<IAllele> alleles = getAlleles(chromosome2);
TreeSet<IAllele> set = new TreeSet<IAllele>(new ComparatorAllele());
set.addAll(alleles);
final List<IAllele> list = new ArrayList<IAllele>();
List<IAllele> list = new ArrayList<IAllele>();
list.addAll(set);
this.chromosomeMap.put(chromosome2, list);
chromosomeMap.put(chromosome2, list);
}
}
public List<IAllele> getAlleles(final IChromosomeType chromosome) {
return this.chromosomeMap.get(chromosome);
public List<IAllele> getAlleles(IChromosomeType chromosome) {
return chromosomeMap.get(chromosome);
}
public ISpeciesRoot getSpeciesRoot() {
return this.breedingSystem.getSpeciesRoot();
return breedingSystem.getSpeciesRoot();
}
class ComparatorAllele implements Comparator<IAllele>
{
class ComparatorAllele implements Comparator<IAllele> {
@Override
public int compare(final IAllele o1, final IAllele o2) {
public int compare(IAllele o1, IAllele o2) {
if (o1 instanceof IAlleleFloat && o2 instanceof IAlleleFloat) {
return Float.valueOf(((IAlleleFloat) o1).getValue()).compareTo(Float.valueOf(((IAlleleFloat) o2).getValue()));
return Float.valueOf(((IAlleleFloat) o1).getValue()).compareTo(((IAlleleFloat) o2).getValue());
}
if (o1 instanceof IAlleleInteger && o2 instanceof IAlleleInteger) {
return Integer.valueOf(((IAlleleInteger) o1).getValue()).compareTo(Integer.valueOf(((IAlleleInteger) o2).getValue()));
return Integer.valueOf(((IAlleleInteger) o1).getValue()).compareTo(((IAlleleInteger) o2).getValue());
}
return o1.getUID().compareTo(o2.getUID());
}
@@ -1,23 +1,19 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import binnie.genetics.api.IGene;
import net.minecraft.item.ItemStack;
import java.util.List;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.item.ItemStack;
public interface IGeneItem
{
import java.util.List;
public interface IGeneItem {
ISpeciesRoot getSpeciesRoot();
void getInfo(final List p0);
void getInfo(List tooltip);
int getColour(final int p0);
int getColour(int color);
void writeToItem(final ItemStack p0);
void writeToItem(ItemStack stack);
void addGene(final IGene p0);
void addGene(IGene gene);
}
@@ -1,39 +1,34 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.genetics;
import net.minecraft.nbt.NBTTagCompound;
import binnie.genetics.api.IGene;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class SequencerItem extends GeneItem
{
public class SequencerItem extends GeneItem {
public int sequenced;
public boolean analysed;
public SequencerItem(final ItemStack stack) {
public SequencerItem(ItemStack stack) {
super(stack);
}
public SequencerItem(final IGene gene) {
public SequencerItem(IGene gene) {
super(gene);
this.sequenced = 0;
this.analysed = false;
sequenced = 0;
analysed = false;
}
@Override
public void readFromNBT(final NBTTagCompound nbt) {
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.sequenced = nbt.getByte("seq");
this.analysed = nbt.getBoolean("ana");
sequenced = nbt.getByte("seq");
analysed = nbt.getBoolean("ana");
}
@Override
public void writeToNBT(final NBTTagCompound nbt) {
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setByte("seq", (byte) this.sequenced);
nbt.setBoolean("ana", this.analysed);
nbt.setByte("seq", (byte) sequenced);
nbt.setBoolean("ana", analysed);
}
}
@@ -1,64 +1,63 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import forestry.api.genetics.IAlleleSpecies;
import binnie.botany.api.EnumFlowerStage;
import binnie.core.craftgui.geometry.IPoint;
import binnie.botany.api.IFlower;
import binnie.botany.craftgui.ControlColourDisplay;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import forestry.api.genetics.IAlleleSpecies;
import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.opengl.GL11;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.botany.craftgui.ControlColourDisplay;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.botany.api.IFlower;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
public class AnalystPageAppearance extends ControlAnalystPage
{
public AnalystPageAppearance(final IWidget parent, final IArea area, final IFlower ind) {
public class AnalystPageAppearance extends ControlAnalystPage {
public AnalystPageAppearance(IWidget parent, IArea area, IFlower ind) {
super(parent, area);
this.setColor(3355443);
setColor(3355443);
int y = 4;
final IAlleleSpecies species = ind.getGenome().getPrimary();
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Appearance").setColor(this.getColor());
IAlleleSpecies species = ind.getGenome().getPrimary();
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Appearance").setColor(getColor());
y += 12;
final ControlColourDisplay a = new ControlColourDisplay(this, this.w() / 2.0f - 28.0f, y);
ControlColourDisplay a = new ControlColourDisplay(this, w() / 2.0f - 28.0f, y);
a.setValue(ind.getGenome().getPrimaryColor());
a.addTooltip("Primary Petal Colour");
final ControlColourDisplay b = new ControlColourDisplay(this, this.w() / 2.0f - 8.0f, y);
ControlColourDisplay b = new ControlColourDisplay(this, w() / 2.0f - 8.0f, y);
b.setValue(ind.getGenome().getSecondaryColor());
b.addTooltip("Secondary Petal Colour");
final ControlColourDisplay c = new ControlColourDisplay(this, this.w() / 2.0f + 12.0f, y);
ControlColourDisplay c = new ControlColourDisplay(this, w() / 2.0f + 12.0f, y);
c.setValue(ind.getGenome().getStemColor());
c.addTooltip("Stem Colour");
y += 26;
final int sections = ind.getGenome().getType().getSections();
final int w = (sections > 1) ? 50 : 100;
new ControlIconDisplay(this, (this.w() - w) / 2.0f, y - ((sections == 1) ? 0 : 0), null) {
int sections = ind.getGenome().getType().getSections();
int w = (sections > 1) ? 50 : 100;
new ControlIconDisplay(this, (w() - w) / 2.0f, y - ((sections == 1) ? 0 : 0), null) {
@Override
public void onRenderForeground() {
GL11.glPushMatrix();
final float scale = w / 16.0f;
final float dy = (sections > 1) ? 16.0f : 0.0f;
float scale = w / 16.0f;
float dy = (sections > 1) ? 16.0f : 0.0f;
GL11.glScalef(scale, scale, 1.0f);
CraftGUI.Render.colour(ind.getGenome().getStemColor().getColor(false));
if (sections > 1) {
CraftGUI.Render.iconBlock(new IPoint(0.0f, 0.0f), ind.getGenome().getType().getStem(EnumFlowerStage.FLOWER, true, 1));
}
CraftGUI.Render.iconBlock(new IPoint(0.0f, dy), ind.getGenome().getType().getStem(EnumFlowerStage.FLOWER, true, 0));
CraftGUI.Render.colour(ind.getGenome().getPrimaryColor().getColor(false));
if (sections > 1) {
CraftGUI.Render.iconBlock(new IPoint(0.0f, 0.0f), ind.getGenome().getType().getPetalIcon(EnumFlowerStage.FLOWER, true, 1));
}
CraftGUI.Render.iconBlock(new IPoint(0.0f, dy), ind.getGenome().getType().getPetalIcon(EnumFlowerStage.FLOWER, true, 0));
CraftGUI.Render.colour(ind.getGenome().getSecondaryColor().getColor(false));
if (sections > 1) {
CraftGUI.Render.iconBlock(new IPoint(0.0f, 0.0f), ind.getGenome().getType().getVariantIcon(EnumFlowerStage.FLOWER, true, 1));
}
CraftGUI.Render.iconBlock(new IPoint(0.0f, dy), ind.getGenome().getType().getVariantIcon(EnumFlowerStage.FLOWER, true, 0));
GL11.glPopMatrix();
}
@@ -1,69 +1,66 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import forestry.api.lepidopterology.IAlleleButterflyEffect;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.lepidopterology.EnumButterflyChromosome;
import binnie.Binnie;
import forestry.api.lepidopterology.IButterfly;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.BinnieCore;
import forestry.plugins.PluginApiculture;
import forestry.api.apiculture.IBee;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.TextJustification;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBee;
import forestry.api.genetics.IIndividual;
import forestry.api.lepidopterology.EnumButterflyChromosome;
import forestry.api.lepidopterology.IAlleleButterflyEffect;
import forestry.api.lepidopterology.IButterfly;
import forestry.plugins.PluginApiculture;
import net.minecraft.util.EnumChatFormatting;
public class AnalystPageBehaviour extends ControlAnalystPage
{
public AnalystPageBehaviour(final IWidget parent, final IArea area, final IIndividual ind) {
public class AnalystPageBehaviour extends ControlAnalystPage {
public AnalystPageBehaviour(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(6684723);
setColor(6684723);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Behaviour").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Behaviour").setColor(getColor());
y += 12;
if (ind instanceof IBee) {
final IBee bee = (IBee) ind;
IBee bee = (IBee) ind;
y += 8;
final int fertility = bee.getGenome().getFlowering();
new ControlTextCentered(this, y, "Pollinates nearby\n" + bee.getGenome().getFlowerProvider().getDescription()).setColor(this.getColor());
int fertility = bee.getGenome().getFlowering();
new ControlTextCentered(this, y, "Pollinates nearby\n" + bee.getGenome().getFlowerProvider().getDescription()).setColor(getColor());
y += 20;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Every " + this.getTimeString(PluginApiculture.ticksPerBeeWorkCycle * 100.0f / fertility)).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Every " + getTimeString(PluginApiculture.ticksPerBeeWorkCycle * 100.0f / fertility)).setColor(getColor());
y += 22;
final IAlleleBeeEffect effect = bee.getGenome().getEffect();
final int[] t = bee.getGenome().getTerritory();
IAlleleBeeEffect effect = bee.getGenome().getEffect();
int[] t = bee.getGenome().getTerritory();
if (!effect.getUID().contains("None")) {
final String effectDesc = BinnieCore.proxy.localiseOrBlank("allele." + effect.getUID() + ".desc");
final String loc = effectDesc.equals("") ? ("Effect: " + effect.getName()) : effectDesc;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 0.0f), loc, TextJustification.TopCenter).setColor(this.getColor());
y += (int) (CraftGUI.Render.textHeight(loc, this.w() - 8.0f) + 1.0f);
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Within " + (int) (t[0] / 2.0f) + " blocks").setColor(this.getColor());
String effectDesc = BinnieCore.proxy.localiseOrBlank("allele." + effect.getUID() + ".desc");
String loc = effectDesc.equals("") ? ("Effect: " + effect.getName()) : effectDesc;
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 0.0f), loc, TextJustification.TopCenter).setColor(getColor());
y += (int) (CraftGUI.Render.textHeight(loc, w() - 8.0f) + 1.0f);
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Within " + (int) (t[0] / 2.0f) + " blocks").setColor(getColor());
y += 22;
}
new ControlTextCentered(this, y, "Territory: " + EnumChatFormatting.ITALIC + t[0] + "x" + t[1] + "x" + t[2]).setColor(this.getColor());
new ControlTextCentered(this, y, "Territory: " + EnumChatFormatting.ITALIC + t[0] + "x" + t[1] + "x" + t[2]).setColor(getColor());
y += 22;
}
if (ind instanceof IButterfly) {
final IButterfly bee2 = (IButterfly) ind;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Metabolism: " + Binnie.Genetics.mothBreedingSystem.getAlleleName(EnumButterflyChromosome.METABOLISM, ind.getGenome().getActiveAllele(EnumButterflyChromosome.METABOLISM))).setColor(this.getColor());
IButterfly bee2 = (IButterfly) ind;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Metabolism: " + Binnie.Genetics.mothBreedingSystem.getAlleleName(EnumButterflyChromosome.METABOLISM, ind.getGenome().getActiveAllele(EnumButterflyChromosome.METABOLISM))).setColor(getColor());
y += 20;
new ControlTextCentered(this, y, "Pollinates nearby\n" + bee2.getGenome().getFlowerProvider().getDescription()).setColor(this.getColor());
new ControlTextCentered(this, y, "Pollinates nearby\n" + bee2.getGenome().getFlowerProvider().getDescription()).setColor(getColor());
y += 20;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Every " + this.getTimeString(1500.0f)).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Every " + getTimeString(1500.0f)).setColor(getColor());
y += 22;
final IAlleleButterflyEffect effect2 = bee2.getGenome().getEffect();
IAlleleButterflyEffect effect2 = bee2.getGenome().getEffect();
if (!effect2.getUID().contains("None")) {
final String effectDesc2 = BinnieCore.proxy.localiseOrBlank("allele." + effect2.getUID() + ".desc");
final String loc2 = effectDesc2.equals("") ? ("Effect: " + effect2.getName()) : effectDesc2;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 0.0f), loc2, TextJustification.TopCenter).setColor(this.getColor());
y += (int) (CraftGUI.Render.textHeight(loc2, this.w() - 8.0f) + 1.0f);
String effectDesc2 = BinnieCore.proxy.localiseOrBlank("allele." + effect2.getUID() + ".desc");
String loc2 = effectDesc2.equals("") ? ("Effect: " + effect2.getName()) : effectDesc2;
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 0.0f), loc2, TextJustification.TopCenter).setColor(getColor());
y += (int) (CraftGUI.Render.textHeight(loc2, w() - 8.0f) + 1.0f);
y += 22;
}
}
@@ -1,175 +1,160 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import java.text.DecimalFormat;
import binnie.core.craftgui.geometry.IPoint;
import binnie.botany.api.IFlower;
import net.minecraftforge.common.EnumPlantType;
import forestry.plugins.PluginApiculture;
import forestry.api.arboriculture.EnumTreeChromosome;
import binnie.Binnie;
import forestry.api.arboriculture.ITree;
import forestry.api.lepidopterology.IButterfly;
import binnie.botany.api.IFlower;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.minecraft.control.ControlIconDisplay;
import binnie.genetics.item.ModuleItem;
import forestry.api.apiculture.IBee;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.arboriculture.ITree;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
import forestry.api.lepidopterology.IButterfly;
import forestry.plugins.PluginApiculture;
import net.minecraftforge.common.EnumPlantType;
public class AnalystPageBiology extends ControlAnalystPage
{
public AnalystPageBiology(final IWidget parent, final IArea area, final IIndividual ind) {
import java.text.DecimalFormat;
public class AnalystPageBiology extends ControlAnalystPage {
public AnalystPageBiology(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(26214);
setColor(26214);
int y = 4;
new ControlTextCentered(this, y, "§nBiology").setColor(this.getColor());
new ControlTextCentered(this, y, "§nBiology").setColor(getColor());
y += 12;
if (ind instanceof IBee) {
final IBee bee = (IBee) ind;
IBee bee = (IBee) ind;
if (bee.getGenome().getNocturnal()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconAllDay.getIcon()).addTooltip("Active all day and night");
}
else if (bee.getGenome().getPrimary().isNocturnal()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconNight.getIcon()).addTooltip("Active at night");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconDaytime.getIcon()).addTooltip("Active during the day");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconAllDay.getIcon()).addTooltip("Active all day and night");
} else if (bee.getGenome().getPrimary().isNocturnal()) {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconNight.getIcon()).addTooltip("Active at night");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconDaytime.getIcon()).addTooltip("Active during the day");
}
if (!bee.getGenome().getTolerantFlyer()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconNoRain.getIcon()).addTooltip("Cannot work during rain");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconRain.getIcon()).addTooltip("Can work during rain");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconNoRain.getIcon()).addTooltip("Cannot work during rain");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconRain.getIcon()).addTooltip("Can work during rain");
}
if (bee.getGenome().getCaveDwelling()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconNoSky.getIcon()).addTooltip("Can work underground");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconSky.getIcon()).addTooltip("Cannot work underground");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconNoSky.getIcon()).addTooltip("Can work underground");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconSky.getIcon()).addTooltip("Cannot work underground");
}
y += 30;
}
else if (ind instanceof IButterfly) {
final IButterfly moth = (IButterfly) ind;
} else if (ind instanceof IButterfly) {
IButterfly moth = (IButterfly) ind;
if (moth.getGenome().getNocturnal()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconAllDay.getIcon()).addTooltip("Active all day and night");
}
else if (moth.getGenome().getPrimary().isNocturnal()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconNight.getIcon()).addTooltip("Active at night");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f, y, ModuleItem.iconDaytime.getIcon()).addTooltip("Active during the day");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconAllDay.getIcon()).addTooltip("Active all day and night");
} else if (moth.getGenome().getPrimary().isNocturnal()) {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconNight.getIcon()).addTooltip("Active at night");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f, y, ModuleItem.iconDaytime.getIcon()).addTooltip("Active during the day");
}
if (!moth.getGenome().getTolerantFlyer()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconNoRain.getIcon()).addTooltip("Cannot work during rain");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconRain.getIcon()).addTooltip("Can work during rain");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconNoRain.getIcon()).addTooltip("Cannot work during rain");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 24.0f, y, ModuleItem.iconRain.getIcon()).addTooltip("Can work during rain");
}
if (moth.getGenome().getFireResist()) {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconNoFire.getIcon()).addTooltip("Nonflammable");
}
else {
new ControlIconDisplay(this, (this.w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconFire.getIcon()).addTooltip("Flammable");
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconNoFire.getIcon()).addTooltip("Nonflammable");
} else {
new ControlIconDisplay(this, (w() - 64.0f) / 2.0f + 48.0f, y, ModuleItem.iconFire.getIcon()).addTooltip("Flammable");
}
y += 30;
}
else if (ind instanceof ITree) {
new ControlTextCentered(this, y, "§oSappiness: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.SAPPINESS, ind.getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS))).setColor(this.getColor());
} else if (ind instanceof ITree) {
new ControlTextCentered(this, y, "§oSappiness: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.SAPPINESS, ind.getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS))).setColor(getColor());
y += 20;
}
else {
} else {
y += 10;
}
if (ind instanceof IBee) {
final IBee bee = (IBee) ind;
final int fertility = bee.getGenome().getFertility();
new ControlTextCentered(this, y, "§l" + fertility + "§r drone" + ((fertility > 1) ? "s" : "") + " per hive").setColor(this.getColor());
IBee bee = (IBee) ind;
int fertility = bee.getGenome().getFertility();
new ControlTextCentered(this, y, "§l" + fertility + "§r drone" + ((fertility > 1) ? "s" : "") + " per hive").setColor(getColor());
y += 22;
final int lifespan = bee.getGenome().getLifespan() * PluginApiculture.ticksPerBeeWorkCycle;
new ControlTextCentered(this, y, "Average Lifespan").setColor(this.getColor());
int lifespan = bee.getGenome().getLifespan() * PluginApiculture.ticksPerBeeWorkCycle;
new ControlTextCentered(this, y, "Average Lifespan").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§l" + this.getMCDayString(lifespan * (bee.getGenome().getNocturnal() ? 1.0f : 2.0f))).setColor(this.getColor());
new ControlTextCentered(this, y, "§l" + getMCDayString(lifespan * (bee.getGenome().getNocturnal() ? 1.0f : 2.0f))).setColor(getColor());
y += 22;
}
if (ind instanceof IButterfly) {
final IButterfly bee2 = (IButterfly) ind;
final int fertility = bee2.getGenome().getFertility();
new ControlTextCentered(this, y, "Lays §l" + fertility + "§r caterpillar" + ((fertility > 1) ? "s" : "") + " before dying").setColor(this.getColor());
IButterfly bee2 = (IButterfly) ind;
int fertility = bee2.getGenome().getFertility();
new ControlTextCentered(this, y, "Lays §l" + fertility + "§r caterpillar" + ((fertility > 1) ? "s" : "") + " before dying").setColor(getColor());
y += 32;
final float caterpillarMatureTime = 1365.3999f * Math.round(bee2.getGenome().getLifespan() / (bee2.getGenome().getFertility() * 2));
new ControlTextCentered(this, y, "Caterpillar Gestation").setColor(this.getColor());
float caterpillarMatureTime = 1365.3999f * Math.round(bee2.getGenome().getLifespan() / (bee2.getGenome().getFertility() * 2));
new ControlTextCentered(this, y, "Caterpillar Gestation").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§l" + this.getMCDayString(caterpillarMatureTime)).setColor(this.getColor());
new ControlTextCentered(this, y, "§l" + getMCDayString(caterpillarMatureTime)).setColor(getColor());
y += 22;
final int speed = (int) (20.0f * bee2.getGenome().getSpeed());
new ControlTextCentered(this, y, "Flight Speed").setColor(this.getColor());
int speed = (int) (20.0f * bee2.getGenome().getSpeed());
new ControlTextCentered(this, y, "Flight Speed").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§l" + speed + "§r blocks per second").setColor(this.getColor());
new ControlTextCentered(this, y, "§l" + speed + "§r blocks per second").setColor(getColor());
y += 22;
}
if (ind instanceof ITree) {
final ITree tree = (ITree) ind;
final int fertility = (int) (1.0f / tree.getGenome().getFertility());
new ControlTextCentered(this, y, "1 Sapling per §l" + fertility + "§r leave" + ((fertility > 1) ? "s" : "")).setColor(this.getColor());
ITree tree = (ITree) ind;
int fertility = (int) (1.0f / tree.getGenome().getFertility());
new ControlTextCentered(this, y, "1 Sapling per §l" + fertility + "§r leave" + ((fertility > 1) ? "s" : "")).setColor(getColor());
y += 22;
final float butterflySpawn = 1365.3999f / (tree.getGenome().getSappiness() * tree.getGenome().getYield() * 0.5f);
new ControlTextCentered(this, y, "Butterfies spawn every\n" + this.getTimeString(butterflySpawn) + " per leaf").setColor(this.getColor());
float butterflySpawn = 1365.3999f / (tree.getGenome().getSappiness() * tree.getGenome().getYield() * 0.5f);
new ControlTextCentered(this, y, "Butterfies spawn every\n" + getTimeString(butterflySpawn) + " per leaf").setColor(getColor());
y += 34;
new ControlTextCentered(this, y, "Plant Types").setColor(this.getColor());
new ControlTextCentered(this, y, "Plant Types").setColor(getColor());
y += 12;
for (final EnumPlantType type : tree.getGenome().getPlantTypes()) {
new ControlTextCentered(this, y, "§o" + type.name()).setColor(this.getColor());
for (EnumPlantType type : tree.getGenome().getPlantTypes()) {
new ControlTextCentered(this, y, "§o" + type.name()).setColor(getColor());
y += 12;
}
}
if (ind instanceof IFlower) {
final IFlower flower = (IFlower) ind;
final float butterflySpawn2 = 1365.3999f / (flower.getGenome().getSappiness() * 0.2f);
new ControlTextCentered(this, y, "Butterfies spawn every\n" + this.getTimeString(butterflySpawn2)).setColor(this.getColor());
IFlower flower = (IFlower) ind;
float butterflySpawn2 = 1365.3999f / (flower.getGenome().getSappiness() * 0.2f);
new ControlTextCentered(this, y, "Butterfies spawn every\n" + getTimeString(butterflySpawn2)).setColor(getColor());
y += 30;
float CHANCE_DISPERSAL = 0.8f;
CHANCE_DISPERSAL += 0.2f * flower.getGenome().getFertility();
float CHANCE_POLLINATE = 0.6f;
CHANCE_POLLINATE += 0.25f * flower.getGenome().getFertility();
final float CHANCE_SELFPOLLINATE = 0.2f * CHANCE_POLLINATE;
float CHANCE_SELFPOLLINATE = 0.2f * CHANCE_POLLINATE;
if (CHANCE_DISPERSAL > 1.0f) {
CHANCE_DISPERSAL = 1.0f;
}
if (CHANCE_POLLINATE > 1.0f) {
CHANCE_POLLINATE = 1.0f;
}
final float dispersalTime = 1365.3999f / CHANCE_DISPERSAL;
final float pollinateTime = 1365.3999f / CHANCE_POLLINATE;
final float lifespan2 = flower.getMaxAge() * 20.0f * 68.27f / flower.getGenome().getAgeChance();
float dispersalTime = 1365.3999f / CHANCE_DISPERSAL;
float pollinateTime = 1365.3999f / CHANCE_POLLINATE;
float lifespan2 = flower.getMaxAge() * 20.0f * 68.27f / flower.getGenome().getAgeChance();
float floweringLifespan = (flower.getMaxAge() - 1) * 20.0f * 68.27f / flower.getGenome().getAgeChance();
floweringLifespan -= 1365.3999f;
new ControlTextCentered(this, y, "Average Lifespan").setColor(this.getColor());
new ControlTextCentered(this, y, "Average Lifespan").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§l" + this.getMCDayString(lifespan2)).setColor(this.getColor());
new ControlTextCentered(this, y, "§l" + getMCDayString(lifespan2)).setColor(getColor());
y += 22;
new ControlTextCentered(this, y, "Seed Dispersal").setColor(this.getColor());
new ControlTextCentered(this, y, "Seed Dispersal").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§o" + (int) (floweringLifespan / dispersalTime) + " per lifetime").setColor(this.getColor());
new ControlTextCentered(this, y, "§o" + (int) (floweringLifespan / dispersalTime) + " per lifetime").setColor(getColor());
y += 22;
new ControlTextCentered(this, y, "Pollination").setColor(this.getColor());
new ControlTextCentered(this, y, "Pollination").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, "§o" + (int) (floweringLifespan / pollinateTime) + " per lifetime").setColor(this.getColor());
new ControlTextCentered(this, y, "§o" + (int) (floweringLifespan / pollinateTime) + " per lifetime").setColor(getColor());
y += 22;
}
this.setSize(new IPoint(this.w(), y));
setSize(new IPoint(w(), y));
}
private String getMCDayString(final float time) {
final float seconds = time / 20.0f;
final float minutes = seconds / 60.0f;
final float days = minutes / 20.0f;
final DecimalFormat df = new DecimalFormat("#.0");
private String getMCDayString(float time) {
float seconds = time / 20.0f;
float minutes = seconds / 60.0f;
float days = minutes / 20.0f;
DecimalFormat df = new DecimalFormat("#.0");
return df.format(days) + " MC days";
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.botany.api.EnumFlowerChromosome;
@@ -29,14 +25,13 @@ import net.minecraftforge.common.BiomeDictionary;
import java.util.ArrayList;
import java.util.List;
public class AnalystPageClimate extends ControlAnalystPage
{
public AnalystPageClimate(final IWidget parent, final IArea area, final IIndividual ind) {
public class AnalystPageClimate extends ControlAnalystPage {
public AnalystPageClimate(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(26163);
final EnumTemperature temp = ind.getGenome().getPrimary().getTemperature();
setColor(26163);
EnumTemperature temp = ind.getGenome().getPrimary().getTemperature();
EnumTolerance tempTol = EnumTolerance.NONE;
final EnumHumidity humid = ind.getGenome().getPrimary().getHumidity();
EnumHumidity humid = ind.getGenome().getPrimary().getHumidity();
EnumTolerance humidTol = EnumTolerance.NONE;
if (ind instanceof IBee) {
tempTol = ((IAlleleTolerance) ind.getGenome().getActiveAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE)).getValue();
@@ -51,47 +46,47 @@ public class AnalystPageClimate extends ControlAnalystPage
humidTol = ((IAlleleTolerance) ind.getGenome().getActiveAllele(EnumButterflyChromosome.HUMIDITY_TOLERANCE)).getValue();
}
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Climate").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Climate").setColor(getColor());
y += 16;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Temp. Tolerance", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Temp. Tolerance", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
this.createTemperatureBar(this, (this.w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, temp, tempTol);
createTemperatureBar(this, (w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, temp, tempTol);
y += 16;
if (!(ind instanceof IFlower)) {
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Humidity Tolerance", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Humidity Tolerance", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
this.createHumidity(this, (this.w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, humid, humidTol);
createHumidity(this, (w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, humid, humidTol);
y += 16;
}
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Biomes", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Biomes", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
final List<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>();
for (final BiomeGenBase biome : BiomeGenBase.getBiomeGenArray()) {
if (biome != null) {
if (BiomeDictionary.isBiomeRegistered(biome)) {
if (biome != BiomeGenBase.frozenOcean) {
if (Tolerance.canTolerate(temp, EnumTemperature.getFromBiome(biome), tempTol)) {
if (Tolerance.canTolerate(humid, EnumHumidity.getFromValue(biome.rainfall), humidTol)) {
boolean match = false;
for (final BiomeGenBase eBiome : biomes) {
if (biome.biomeName.contains(eBiome.biomeName) && EnumHumidity.getFromValue(eBiome.rainfall) == EnumHumidity.getFromValue(biome.rainfall) && EnumTemperature.getFromBiome(eBiome) == EnumTemperature.getFromBiome(biome)) {
match = true;
}
}
if (!match) {
biomes.add(biome);
}
}
}
}
List<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>();
for (BiomeGenBase biome : BiomeGenBase.getBiomeGenArray()) {
if (biome == null || !BiomeDictionary.isBiomeRegistered(biome) || biome == BiomeGenBase.frozenOcean) {
continue;
}
if (!Tolerance.canTolerate(temp, EnumTemperature.getFromBiome(biome), tempTol) ||
!Tolerance.canTolerate(humid, EnumHumidity.getFromValue(biome.rainfall), humidTol)) {
continue;
}
boolean match = false;
for (BiomeGenBase eBiome : biomes) {
if (biome.biomeName.contains(eBiome.biomeName) && EnumHumidity.getFromValue(eBiome.rainfall) == EnumHumidity.getFromValue(biome.rainfall) && EnumTemperature.getFromBiome(eBiome) == EnumTemperature.getFromBiome(biome)) {
match = true;
}
}
if (!match) {
biomes.add(biome);
}
}
final int maxBiomePerLine = (int) ((this.w() + 2.0f - 16.0f) / 18.0f);
final float biomeListX = (this.w() - (Math.min(maxBiomePerLine, biomes.size()) * 18 - 2)) / 2.0f;
int maxBiomePerLine = (int) ((w() + 2.0f - 16.0f) / 18.0f);
float biomeListX = (w() - (Math.min(maxBiomePerLine, biomes.size()) * 18 - 2)) / 2.0f;
int dx = 0;
int dy = 0;
for (final BiomeGenBase biome2 : biomes) {
for (BiomeGenBase biome2 : biomes) {
new ControlBiome(this, biomeListX + dx, y + dy, 16.0f, 16.0f, biome2);
dx += 18;
if (dx >= 18 * maxBiomePerLine) {
@@ -99,33 +94,33 @@ public class AnalystPageClimate extends ControlAnalystPage
dy += 18;
}
}
this.setSize(new IPoint(this.w(), y + dy + 18 + 8));
setSize(new IPoint(w(), y + dy + 18 + 8));
}
protected void createTemperatureBar(final IWidget parent, final float x, final float y, final float w, final float h, final EnumTemperature value, final EnumTolerance tol) {
protected void createTemperatureBar(IWidget parent, float x, float y, float w, float h, EnumTemperature value, EnumTolerance tol) {
new ControlToleranceBar<EnumTemperature>(parent, x, y, w, h, EnumTemperature.class) {
@Override
protected String getName(final EnumTemperature value) {
protected String getName(EnumTemperature value) {
return value.name;
}
@Override
protected int getColour(final EnumTemperature value) {
return (new int[] { 65531, 7912447, 5242672, 16776960, 16753152, 16711680 })[value.ordinal() - 1];
protected int getColour(EnumTemperature value) {
return (new int[]{0x00fffb, 0x78bbff, 0x4fff30, 0xffff00, 0xffa200, 0xff0000})[value.ordinal() - 1];
}
}.setValues(value, tol);
}
protected void createHumidity(final IWidget parent, final float x, final float y, final float w, final float h, final EnumHumidity value, final EnumTolerance tol) {
protected void createHumidity(IWidget parent, float x, float y, float w, float h, EnumHumidity value, EnumTolerance tol) {
new ControlToleranceBar<EnumHumidity>(parent, x, y, w, h, EnumHumidity.class) {
@Override
protected String getName(final EnumHumidity value) {
protected String getName(EnumHumidity value) {
return value.name;
}
@Override
protected int getColour(final EnumHumidity value) {
return (new int[] { 16770979, 1769216, 3177727 })[value.ordinal()];
protected int getColour(EnumHumidity value) {
return (new int[]{0xffe7a3, 0x1aff00, 0x307cff})[value.ordinal()];
}
}.setValues(value, tol);
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.CraftGUI;
@@ -28,121 +24,116 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.ArrayList;
import java.util.Collection;
public class AnalystPageDatabase extends ControlAnalystPage
{
public class AnalystPageDatabase extends ControlAnalystPage {
ControlScrollableContent scroll;
boolean isMaster;
public AnalystPageDatabase(final IWidget parent, final IArea area, final BreedingSystem system, final boolean isMaster) {
public AnalystPageDatabase(IWidget parent, IArea area, BreedingSystem system, boolean isMaster) {
super(parent, area);
this.scroll = null;
scroll = null;
this.isMaster = isMaster;
final int cOfSystem = system.getColour();
final int cr = (0xFF0000 & cOfSystem) >> 16;
final int cg = (0xFF00 & cOfSystem) >> 8;
final int cb = 0xFF & cOfSystem;
int cOfSystem = system.getColour();
int cr = (0xFF0000 & cOfSystem) >> 16;
int cg = (0xFF00 & cOfSystem) >> 8;
int cb = 0xFF & cOfSystem;
float brightness = 0.1f * cb / 255.0f + 0.35f * cr / 255.0f + 0.55f * cg / 255.0f;
brightness = 0.3f / brightness;
if (brightness > 1.0f) {
brightness = 1.0f;
}
final int newColour = (int) (cr * brightness) * 65536 + (int) (cg * brightness) * 256 + (int) (cb * brightness);
this.setColor(newColour);
int newColour = (int) (cr * brightness) * 65536 + (int) (cg * brightness) * 256 + (int) (cb * brightness);
setColor(newColour);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Registry").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Registry").setColor(getColor());
y += 16;
new ControlTextEdit(this, 20.0f, y, this.w() - 40.0f, 16.0f) {
new ControlTextEdit(this, 20.0f, y, w() - 40.0f, 16.0f) {
@Override
public void onTextEdit(final String value) {
final Collection<IAlleleSpecies> options = new ArrayList<IAlleleSpecies>();
AnalystPageDatabase.this.getSpecies(system);
for (final IAlleleSpecies species : AnalystPageDatabase.this.getSpecies(system)) {
if (value != null) {
if (value != "") {
if (!species.getName().toLowerCase().contains(value.toLowerCase())) {
continue;
}
}
public void onTextEdit(String value) {
Collection<IAlleleSpecies> options = new ArrayList<>();
getSpecies(system);
for (IAlleleSpecies species : getSpecies(system)) {
if (value != null && value.isEmpty() && !species.getName().toLowerCase().contains(value.toLowerCase())) {
continue;
}
options.add(species);
}
AnalystPageDatabase.this.scroll.deleteAllChildren();
AnalystPageDatabase.this.scroll.setScrollableContent(AnalystPageDatabase.this.getItemScrollList(system, options));
scroll.deleteAllChildren();
scroll.setScrollableContent(getItemScrollList(system, options));
}
@Override
public void onRenderBackground() {
CraftGUI.Render.colour(5592405);
CraftGUI.Render.texture(CraftGUITexture.TabSolid, this.getArea().inset(1));
CraftGUI.Render.texture(CraftGUITexture.TabSolid, getArea().inset(1));
CraftGUI.Render.colour(AnalystPageDatabase.this.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea());
super.renderTextField();
}
};
y += 22;
new Panel(this, 3.0f, y - 1, this.w() - 6.0f, this.h() - y - 8.0f + 2.0f, MinecraftGUI.PanelType.TabOutline).setColor(this.getColor());
final boolean textView = false;
final Collection<IAlleleSpecies> options = this.getSpecies(system);
for (final IAlleleSpecies species : options) {
final String height = system.getAlleleName(EnumTreeChromosome.HEIGHT, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT));
final String fertility = system.getAlleleName(EnumTreeChromosome.FERTILITY, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.FERTILITY));
final String yield = system.getAlleleName(EnumTreeChromosome.YIELD, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.YIELD));
final String sappiness = system.getAlleleName(EnumTreeChromosome.SAPPINESS, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS));
final String maturation = system.getAlleleName(EnumTreeChromosome.MATURATION, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.MATURATION));
new Panel(this, 3.0f, y - 1, w() - 6.0f, h() - y - 8.0f + 2.0f, MinecraftGUI.PanelType.TabOutline).setColor(getColor());
boolean textView = false;
Collection<IAlleleSpecies> options = getSpecies(system);
for (IAlleleSpecies species : options) {
String height = system.getAlleleName(EnumTreeChromosome.HEIGHT, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT));
String fertility = system.getAlleleName(EnumTreeChromosome.FERTILITY, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.FERTILITY));
String yield = system.getAlleleName(EnumTreeChromosome.YIELD, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.YIELD));
String sappiness = system.getAlleleName(EnumTreeChromosome.SAPPINESS, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.SAPPINESS));
String maturation = system.getAlleleName(EnumTreeChromosome.MATURATION, system.getIndividual(species.getUID()).getGenome().getActiveAllele(EnumTreeChromosome.MATURATION));
}
if (textView) {
this.scroll = new ControlListBox<IAlleleSpecies>(this, 4.0f, y, this.w() - 8.0f, this.h() - y - 8.0f - 20.0f, 0.0f) {
scroll = new ControlListBox<IAlleleSpecies>(this, 4.0f, y, w() - 8.0f, h() - y - 8.0f - 20.0f, 0.0f) {
@Override
public void initialise() {
super.initialise();
this.setOptions(options);
setOptions(options);
}
@Override
public IWidget createOption(final IAlleleSpecies v, final int y) {
return new Control(this.getContent(), 0.0f, y, this.w(), 12.0f) {
public IWidget createOption(IAlleleSpecies v, int y) {
return new Control(getContent(), 0.0f, y, w(), 12.0f) {
IAlleleSpecies value = v;
@Override
public void onRenderBackground() {
CraftGUI.Render.text(this.getArea(), TextJustification.MiddleCenter, this.value.getName(), 16777215);
CraftGUI.Render.text(getArea(), TextJustification.MiddleCenter, value.getName(), 16777215);
}
};
}
};
} else {
(scroll = new ControlScrollableContent(this, 4.0f, y, w() - 8.0f, h() - y - 8.0f, 0.0f)).setScrollableContent(getItemScrollList(system, options));
}
else {
(this.scroll = new ControlScrollableContent(this, 4.0f, y, this.w() - 8.0f, this.h() - y - 8.0f, 0.0f)).setScrollableContent(this.getItemScrollList(system, options));
}
new ControlScrollBar(this, this.scroll.x() + this.scroll.w() - 6.0f, this.scroll.y() + 3.0f, 3.0f, this.scroll.h() - 6.0f, this.scroll) {
new ControlScrollBar(this, scroll.x() + scroll.w() - 6.0f, scroll.y() + 3.0f, 3.0f, scroll.h() - 6.0f, scroll) {
@Override
public void onRenderBackground() {
if (!this.isEnabled()) {
if (!isEnabled()) {
return;
}
CraftGUI.Render.gradientRect(this.getArea(), 1140850688 + AnalystPageDatabase.this.getColor(), 1140850688 + AnalystPageDatabase.this.getColor());
CraftGUI.Render.solid(this.getRenderArea(), AnalystPageDatabase.this.getColor());
CraftGUI.Render.gradientRect(getArea(), 1140850688 + AnalystPageDatabase.this.getColor(), 1140850688 + AnalystPageDatabase.this.getColor());
CraftGUI.Render.solid(getRenderArea(), AnalystPageDatabase.this.getColor());
}
};
}
private IWidget getItemScrollList(final BreedingSystem system, final Collection<IAlleleSpecies> options) {
return new Control(this.scroll, 0.0f, 0.0f, this.scroll.w(), this.scroll.h()) {
private IWidget getItemScrollList(BreedingSystem system, Collection<IAlleleSpecies> options) {
return new Control(scroll, 0.0f, 0.0f, scroll.w(), scroll.h()) {
@Override
public void initialise() {
final int maxBiomePerLine = (int) ((this.w() - 4.0f + 2.0f) / 18.0f);
final float biomeListX = -6.0f + (this.w() - (maxBiomePerLine * 18 - 2)) / 2.0f;
int maxBiomePerLine = (int) ((w() - 4.0f + 2.0f) / 18.0f);
float biomeListX = -6.0f + (w() - (maxBiomePerLine * 18 - 2)) / 2.0f;
int dx = 0;
int dy = 0;
for (final IAlleleSpecies species : options) {
final IIndividual ind = system.getSpeciesRoot().templateAsIndividual(system.getSpeciesRoot().getTemplate(species.getUID()));
for (IAlleleSpecies species : options) {
IIndividual ind = system.getSpeciesRoot().templateAsIndividual(system.getSpeciesRoot().getTemplate(species.getUID()));
new ControlIndividualDisplay(this, biomeListX + dx, 2 + dy, ind) {
@Override
public void initialise() {
this.addSelfEventHandler(new EventMouse.Down.Handler() {
addSelfEventHandler(new EventMouse.Down.Handler() {
@Override
public void onEvent(final EventMouse.Down event) {
final WindowAnalyst window = (WindowAnalyst) AnalystPageDatabase.this.getSuperParent();
public void onEvent(EventMouse.Down event) {
WindowAnalyst window = (WindowAnalyst) AnalystPageDatabase.this.getSuperParent();
window.setIndividual(ind);
}
});
@@ -150,16 +141,15 @@ public class AnalystPageDatabase extends ControlAnalystPage
@Override
public void onRenderBackground() {
final WindowAnalyst window = (WindowAnalyst) AnalystPageDatabase.this.getSuperParent();
WindowAnalyst window = (WindowAnalyst) AnalystPageDatabase.this.getSuperParent();
if (window.getIndividual() != null && window.getIndividual().getGenome().getPrimary() == species) {
CraftGUI.Render.colour(15658734);
CraftGUI.Render.texture(CraftGUITexture.TabSolid, this.getArea().outset(1));
CraftGUI.Render.texture(CraftGUITexture.TabSolid, getArea().outset(1));
CraftGUI.Render.colour(AnalystPageDatabase.this.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea().outset(1));
}
else if (this.calculateIsMouseOver()) {
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea().outset(1));
} else if (calculateIsMouseOver()) {
CraftGUI.Render.colour(15658734);
CraftGUI.Render.texture(CraftGUITexture.TabSolid, this.getArea().outset(1));
CraftGUI.Render.texture(CraftGUITexture.TabSolid, getArea().outset(1));
}
super.onRenderBackground();
}
@@ -170,7 +160,7 @@ public class AnalystPageDatabase extends ControlAnalystPage
dy += 18;
}
}
this.setSize(new IPoint(this.w(), 4 + dy + 18));
setSize(new IPoint(w(), 4 + dy + 18));
}
};
}
@@ -180,9 +170,9 @@ public class AnalystPageDatabase extends ControlAnalystPage
return "Registry";
}
private Collection<IAlleleSpecies> getSpecies(final BreedingSystem system) {
final Collection<IAlleleSpecies> species = new ArrayList<IAlleleSpecies>();
species.addAll(this.isMaster ? system.getAllSpecies() : system.getDiscoveredSpecies(this.getWindow().getWorld(), this.getWindow().getPlayer().getGameProfile()));
private Collection<IAlleleSpecies> getSpecies(BreedingSystem system) {
Collection<IAlleleSpecies> species = new ArrayList<>();
species.addAll(isMaster ? system.getAllSpecies() : system.getDiscoveredSpecies(getWindow().getWorld(), getWindow().getPlayer().getGameProfile()));
return species;
}
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.CraftGUI;
@@ -15,23 +11,21 @@ import forestry.api.genetics.IAlleleSpecies;
import forestry.api.genetics.IIndividual;
import net.minecraft.util.EnumChatFormatting;
public class AnalystPageDescription extends ControlAnalystPage
{
public AnalystPageDescription(final IWidget parent, final IArea area, final IIndividual ind) {
public class AnalystPageDescription extends ControlAnalystPage {
public AnalystPageDescription(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(3355443);
setColor(3355443);
int y = 4;
final IAlleleSpecies species = ind.getGenome().getPrimary();
final String branchBinomial = (species.getBranch() != null) ? species.getBranch().getScientific() : "<Unknown>";
final String branchName = (species.getBranch() != null) ? species.getBranch().getName() : "Unknown";
final String desc = species.getDescription();
IAlleleSpecies species = ind.getGenome().getPrimary();
String branchBinomial = (species.getBranch() != null) ? species.getBranch().getScientific() : "<Unknown>";
String branchName = (species.getBranch() != null) ? species.getBranch().getName() : "Unknown";
String desc = species.getDescription();
String descBody = EnumChatFormatting.ITALIC.toString();
String descSig = "";
if (desc == null || desc.isEmpty() || desc.contains("for.description")) {
descBody += "";
}
else {
final String[] descStrings = desc.split("\\|");
} else {
String[] descStrings = desc.split("\\|");
descBody += descStrings[0];
for (int i = 1; i < descStrings.length - 1; ++i) {
descBody += " " + descStrings[i];
@@ -45,28 +39,28 @@ public class AnalystPageDescription extends ControlAnalystPage
authority = EnumChatFormatting.DARK_BLUE.toString() + EnumChatFormatting.BOLD + authority;
}
if (authority.contains("Sengir")) {
authority = EnumChatFormatting.DARK_GREEN.toString() + EnumChatFormatting.BOLD + authority;
authority = EnumChatFormatting.DARK_GREEN.toString() + EnumChatFormatting.BOLD + authority;
}
if (authority.contains("MysteriousAges")) {
authority = EnumChatFormatting.DARK_PURPLE.toString() + EnumChatFormatting.BOLD + authority;
authority = EnumChatFormatting.DARK_PURPLE.toString() + EnumChatFormatting.BOLD + authority;
}
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Description").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Description").setColor(getColor());
y += 16;
new ControlTextCentered(this, y, species.getName() + EnumChatFormatting.RESET).setColor(this.getColor());
new ControlTextCentered(this, y, species.getName() + EnumChatFormatting.RESET).setColor(getColor());
y += 10;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + branchBinomial + " " + species.getBinomial() + EnumChatFormatting.RESET).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + branchBinomial + " " + species.getBinomial() + EnumChatFormatting.RESET).setColor(getColor());
y += 20;
new ControlTextCentered(this, y, "Discovered by " + EnumChatFormatting.BOLD + authority + EnumChatFormatting.RESET).setColor(this.getColor());
y += (int) (3.0f + CraftGUI.Render.textHeight("Discovered by " + EnumChatFormatting.BOLD + authority + EnumChatFormatting.RESET, this.w()));
new ControlTextCentered(this, y, "Genetic Complexity: " + species.getComplexity()).setColor(this.getColor());
new ControlTextCentered(this, y, "Discovered by " + EnumChatFormatting.BOLD + authority + EnumChatFormatting.RESET).setColor(getColor());
y += (int) (3.0f + CraftGUI.Render.textHeight("Discovered by " + EnumChatFormatting.BOLD + authority + EnumChatFormatting.RESET, w()));
new ControlTextCentered(this, y, "Genetic Complexity: " + species.getComplexity()).setColor(getColor());
y += 26;
final ControlText descText = new ControlText(this, new IArea(8.0f, y, this.w() - 16.0f, 0.0f), descBody + EnumChatFormatting.RESET, TextJustification.TopCenter);
final IWidget signatureText = new ControlText(this, new IArea(8.0f, y, this.w() - 16.0f, 0.0f), descSig + EnumChatFormatting.RESET, TextJustification.BottomRight);
descText.setColor(this.getColor());
signatureText.setColor(this.getColor());
final float descHeight = CraftGUI.Render.textHeight(descText.getValue(), descText.getSize().x());
ControlText descText = new ControlText(this, new IArea(8.0f, y, w() - 16.0f, 0.0f), descBody + EnumChatFormatting.RESET, TextJustification.TopCenter);
IWidget signatureText = new ControlText(this, new IArea(8.0f, y, w() - 16.0f, 0.0f), descSig + EnumChatFormatting.RESET, TextJustification.BottomRight);
descText.setColor(getColor());
signatureText.setColor(getColor());
float descHeight = CraftGUI.Render.textHeight(descText.getValue(), descText.getSize().x());
signatureText.setPosition(new IPoint(signatureText.pos().x(), descText.getPosition().y() + descHeight + 10.0f));
this.setSize(new IPoint(this.w(), 20.0f + signatureText.y()));
setSize(new IPoint(w(), 20.0f + signatureText.y()));
}
@Override
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.Binnie;
@@ -25,32 +21,31 @@ import net.minecraft.util.EnumChatFormatting;
import java.lang.reflect.Field;
import java.util.Collection;
public class AnalystPageFruit extends AnalystPageProduce
{
public AnalystPageFruit(final IWidget parent, final IArea area, final ITree ind) {
public class AnalystPageFruit extends AnalystPageProduce {
public AnalystPageFruit(IWidget parent, IArea area, ITree ind) {
super(parent, area);
this.setColor(13382400);
final ITreeGenome genome = ind.getGenome();
setColor(0xcc3300);
ITreeGenome genome = ind.getGenome();
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Fruit").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Fruit").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Yield: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.YIELD, ind.getGenome().getActiveAllele(EnumTreeChromosome.YIELD))).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Yield: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.YIELD, ind.getGenome().getActiveAllele(EnumTreeChromosome.YIELD))).setColor(getColor());
y += 20;
final Collection<ItemStack> products = new UniqueItemStackSet();
final Collection<ItemStack> specialties = new UniqueItemStackSet();
final Collection<ItemStack> wiid = new UniqueItemStackSet();
for (final ItemStack stack : ind.getProduceList()) {
Collection<ItemStack> products = new UniqueItemStackSet();
Collection<ItemStack> specialties = new UniqueItemStackSet();
Collection<ItemStack> wiid = new UniqueItemStackSet();
for (ItemStack stack : ind.getProduceList()) {
products.add(stack);
}
for (final ItemStack stack : ind.getSpecialtyList()) {
for (ItemStack stack : ind.getSpecialtyList()) {
specialties.add(stack);
}
try {
if (ind.getGenome().getFruitProvider() instanceof FruitProviderPod) {
final FruitProviderPod pod = (FruitProviderPod) ind.getGenome().getFruitProvider();
final Field f = FruitProviderPod.class.getDeclaredField("drop");
FruitProviderPod pod = (FruitProviderPod) ind.getGenome().getFruitProvider();
Field f = FruitProviderPod.class.getDeclaredField("drop");
f.setAccessible(true);
for (final ItemStack stack2 : (ItemStack[]) f.get(pod)) {
for (ItemStack stack2 : (ItemStack[]) f.get(pod)) {
products.add(stack2);
}
}
@@ -58,71 +53,70 @@ public class AnalystPageFruit extends AnalystPageProduce
e.printStackTrace();
}
if (products.size() > 0) {
new ControlTextCentered(this, y, "Natural Fruit").setColor(this.getColor());
new ControlTextCentered(this, y, "Natural Fruit").setColor(getColor());
y += 10;
final int w = products.size() * 18 - 2;
final int i = 0;
for (final ItemStack stack : products) {
final ControlItemDisplay d = new ControlItemDisplay(this, (this.w() - w) / 2.0f + 18 * i, y);
int w = products.size() * 18 - 2;
int i = 0;
for (ItemStack stack : products) {
ControlItemDisplay d = new ControlItemDisplay(this, (w() - w) / 2.0f + 18 * i, y);
d.setTooltip();
d.setItemStack(stack);
}
y += 26;
}
if (specialties.size() > 0) {
new ControlTextCentered(this, y, "Specialty Fruit").setColor(this.getColor());
new ControlTextCentered(this, y, "Specialty Fruit").setColor(getColor());
y += 10;
final int w = products.size() * 18 - 2;
final int i = 0;
for (final ItemStack stack : specialties) {
final ControlItemDisplay d = new ControlItemDisplay(this, (this.w() - w) / 2.0f + 18 * i, y);
int w = products.size() * 18 - 2;
int i = 0;
for (ItemStack stack : specialties) {
ControlItemDisplay d = new ControlItemDisplay(this, (w() - w) / 2.0f + 18 * i, y);
d.setTooltip();
d.setItemStack(stack);
}
y += 26;
}
final Collection<ItemStack> allProducts = new UniqueItemStackSet();
for (final ItemStack stack3 : products) {
Collection<ItemStack> allProducts = new UniqueItemStackSet();
for (ItemStack stack3 : products) {
allProducts.add(stack3);
}
for (final ItemStack stack3 : specialties) {
for (ItemStack stack3 : specialties) {
allProducts.add(stack3);
}
final Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
refinedProducts.addAll(this.getAllProductsAndFluids(allProducts));
Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
refinedProducts.addAll(getAllProductsAndFluids(allProducts));
if (refinedProducts.size() > 0) {
y = this.getRefined("Refined Products", y, refinedProducts);
y = getRefined("Refined Products", y, refinedProducts);
y += 8;
}
if (products.size() == 0 && specialties.size() == 0) {
new ControlTextCentered(this, y, "This tree has no \nfruits or nuts").setColor(this.getColor());
new ControlTextCentered(this, y, "This tree has no \nfruits or nuts").setColor(getColor());
y += 28;
}
new ControlTextCentered(this, y, "Possible Fruits").setColor(this.getColor());
new ControlTextCentered(this, y, "Possible Fruits").setColor(getColor());
y += 12;
final Collection<IAllele> fruitAlleles = Binnie.Genetics.getChromosomeMap(Binnie.Genetics.getTreeRoot()).get(EnumTreeChromosome.FRUITS);
for (final IFruitFamily fam : ind.getGenome().getPrimary().getSuitableFruit()) {
final Collection<ItemStack> stacks = new UniqueItemStackSet();
for (final IAllele a : fruitAlleles) {
Collection<IAllele> fruitAlleles = Binnie.Genetics.getChromosomeMap(Binnie.Genetics.getTreeRoot()).get(EnumTreeChromosome.FRUITS);
for (IFruitFamily fam : ind.getGenome().getPrimary().getSuitableFruit()) {
Collection<ItemStack> stacks = new UniqueItemStackSet();
for (IAllele a : fruitAlleles) {
if (((IAlleleFruit) a).getProvider().getFamily() == fam) {
for (final ItemStack p : ((IAlleleFruit) a).getProvider().getProducts()) {
for (ItemStack p : ((IAlleleFruit) a).getProvider().getProducts()) {
stacks.add(p);
}
for (final ItemStack p : ((IAlleleFruit) a).getProvider().getSpecialty()) {
for (ItemStack p : ((IAlleleFruit) a).getProvider().getSpecialty()) {
stacks.add(p);
}
try {
if (a.getUID().contains("fruitCocoa")) {
stacks.add(new ItemStack(Items.dye, 1, 3));
}
else {
} else {
if (!(((IAlleleFruit) a).getProvider() instanceof FruitProviderPod)) {
continue;
}
final FruitProviderPod pod2 = (FruitProviderPod) ((IAlleleFruit) a).getProvider();
final Field field = FruitProviderPod.class.getDeclaredField("drop");
FruitProviderPod pod2 = (FruitProviderPod) ((IAlleleFruit) a).getProvider();
Field field = FruitProviderPod.class.getDeclaredField("drop");
field.setAccessible(true);
for (final ItemStack stack4 : (ItemStack[]) field.get(pod2)) {
for (ItemStack stack4 : (ItemStack[]) field.get(pod2)) {
stacks.add(stack4);
}
}
@@ -130,10 +124,10 @@ public class AnalystPageFruit extends AnalystPageProduce
}
}
}
y = this.getRefined(EnumChatFormatting.ITALIC + fam.getName(), y, stacks);
y = getRefined(EnumChatFormatting.ITALIC + fam.getName(), y, stacks);
y += 2;
}
this.setSize(new IPoint(this.w(), y + 8));
setSize(new IPoint(w(), y + 8));
}
@Override
@@ -1,41 +1,36 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import forestry.api.genetics.IAllele;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.ISpeciesRoot;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.Binnie;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlText;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.opengl.GL11;
import binnie.core.craftgui.controls.core.Control;
import binnie.Binnie;
import forestry.api.genetics.AlleleManager;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
public class AnalystPageGenome extends ControlAnalystPage
{
public class AnalystPageGenome extends ControlAnalystPage {
boolean active;
public AnalystPageGenome(final IWidget parent, final IArea area, final boolean active, final IIndividual ind) {
public AnalystPageGenome(IWidget parent, IArea area, boolean active, IIndividual ind) {
super(parent, area);
this.active = active;
this.setColor(26265);
setColor(26265);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + this.getTitle()).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + getTitle()).setColor(getColor());
y += 16;
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(ind.getClass());
final BreedingSystem system = Binnie.Genetics.getSystem(root);
final Control scaled = new Control(this, 0.0f, y, 0.0f, 0.0f) {
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(ind.getClass());
BreedingSystem system = Binnie.Genetics.getSystem(root);
Control scaled = new Control(this, 0.0f, y, 0.0f, 0.0f) {
@Override
public void onRenderBackground() {
GL11.glPushMatrix();
@@ -48,19 +43,19 @@ public class AnalystPageGenome extends ControlAnalystPage
GL11.glPopMatrix();
}
};
for (final IChromosomeType chromo : system.getActiveKaryotype()) {
final IAllele allele = active ? ind.getGenome().getActiveAllele(chromo) : ind.getGenome().getInactiveAllele(chromo);
final String alleleName = system.getAlleleName(chromo, allele);
final float height = CraftGUI.Render.textHeight(alleleName, this.w() / 2.0f - 2.0f);
new ControlText(scaled, new IArea(0.0f, y + (height - 9.0f) / 2.0f, this.w() / 2.0f - 2.0f, 0.0f), system.getChromosomeShortName(chromo) + " :", TextJustification.TopRight).setColor(this.getColor());
new ControlText(scaled, new IArea(this.w() / 2.0f + 2.0f, y, this.w() / 2.0f - 2.0f, 0.0f), alleleName, TextJustification.TopLeft).setColor(this.getColor());
for (IChromosomeType chromo : system.getActiveKaryotype()) {
IAllele allele = active ? ind.getGenome().getActiveAllele(chromo) : ind.getGenome().getInactiveAllele(chromo);
String alleleName = system.getAlleleName(chromo, allele);
float height = CraftGUI.Render.textHeight(alleleName, w() / 2.0f - 2.0f);
new ControlText(scaled, new IArea(0.0f, y + (height - 9.0f) / 2.0f, w() / 2.0f - 2.0f, 0.0f), system.getChromosomeShortName(chromo) + " :", TextJustification.TopRight).setColor(getColor());
new ControlText(scaled, new IArea(w() / 2.0f + 2.0f, y, w() / 2.0f - 2.0f, 0.0f), alleleName, TextJustification.TopLeft).setColor(getColor());
y += (int) (3.0f + height);
}
this.setSize(new IPoint(this.w(), y + 8));
setSize(new IPoint(w(), y + 8));
}
@Override
public String getTitle() {
return (this.active ? "Active" : "Inactive") + " Genome";
return (active ? "Active" : "Inactive") + " Genome";
}
}
@@ -1,45 +1,40 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import forestry.api.genetics.IAlleleSpecies;
import forestry.api.arboriculture.EnumTreeChromosome;
import binnie.Binnie;
import forestry.api.arboriculture.ITree;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.arboriculture.ITree;
import forestry.api.genetics.IAlleleSpecies;
import forestry.api.genetics.IIndividual;
import net.minecraft.util.EnumChatFormatting;
public class AnalystPageGrowth extends ControlAnalystPage
{
public AnalystPageGrowth(final IWidget parent, final IArea area, final IIndividual ind) {
public class AnalystPageGrowth extends ControlAnalystPage {
public AnalystPageGrowth(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(3355443);
setColor(3355443);
int y = 4;
final IAlleleSpecies species = ind.getGenome().getPrimary();
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Growth").setColor(this.getColor());
IAlleleSpecies species = ind.getGenome().getPrimary();
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Growth").setColor(getColor());
y += 12;
if (ind instanceof ITree) {
final ITree tree = (ITree) ind;
final int mat = tree.getGenome().getMaturationTime();
new ControlTextCentered(this, y, "Saplings mature in").setColor(this.getColor());
ITree tree = (ITree) ind;
int mat = tree.getGenome().getMaturationTime();
new ControlTextCentered(this, y, "Saplings mature in").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, EnumChatFormatting.BOLD + this.getTimeString(1373.3999f * mat)).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.BOLD + getTimeString(1373.3999f * mat)).setColor(getColor());
y += 22;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Height: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.HEIGHT, ind.getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT))).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Height: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.HEIGHT, ind.getGenome().getActiveAllele(EnumTreeChromosome.HEIGHT))).setColor(getColor());
y += 12;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Girth: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.GIRTH, ind.getGenome().getActiveAllele(EnumTreeChromosome.GIRTH))).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Girth: " + Binnie.Genetics.treeBreedingSystem.getAlleleName(EnumTreeChromosome.GIRTH, ind.getGenome().getActiveAllele(EnumTreeChromosome.GIRTH))).setColor(getColor());
y += 20;
new ControlTextCentered(this, y, "Growth Conditions").setColor(this.getColor());
new ControlTextCentered(this, y, "Growth Conditions").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + tree.getGenome().getGrowthProvider().getDescription()).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + tree.getGenome().getGrowthProvider().getDescription()).setColor(getColor());
y += 12;
for (final String s : tree.getGenome().getGrowthProvider().getInfo()) {
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + s).setColor(this.getColor());
for (String s : tree.getGenome().getGrowthProvider().getInfo()) {
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + s).setColor(getColor());
y += 12;
}
}
@@ -1,37 +1,32 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.IChromosomeType;
import binnie.Binnie;
import forestry.api.genetics.AlleleManager;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.util.EnumChatFormatting;
public class AnalystPageKaryogram extends ControlAnalystPage
{
public AnalystPageKaryogram(final IWidget parent, final IArea area, final IIndividual ind) {
public class AnalystPageKaryogram extends ControlAnalystPage {
public AnalystPageKaryogram(IWidget parent, IArea area, IIndividual ind) {
super(parent, area);
this.setColor(10040319);
setColor(10040319);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Karyogram").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Karyogram").setColor(getColor());
y += 16;
y += 8;
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(ind.getClass());
final BreedingSystem system = Binnie.Genetics.getSystem(root);
final int maxBiomePerLine = (int) ((this.w() + 4.0f - 16.0f) / 22.0f);
float karygramX = (this.w() - (Math.min(maxBiomePerLine, system.getActiveKaryotype().size()) * 18 - 4)) / 2.0f;
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(ind.getClass());
BreedingSystem system = Binnie.Genetics.getSystem(root);
int maxBiomePerLine = (int) ((w() + 4.0f - 16.0f) / 22.0f);
float karygramX = (w() - (Math.min(maxBiomePerLine, system.getActiveKaryotype().size()) * 18 - 4)) / 2.0f;
int dx = 0;
int dy = 0;
int rem = system.getActiveKaryotype().size();
for (final IChromosomeType type : system.getActiveKaryotype()) {
for (IChromosomeType type : system.getActiveKaryotype()) {
new ControlAnalystChromosome(this, karygramX + dx, y + dy, root, type, ind.getGenome().getActiveAllele(type), ind.getGenome().getInactiveAllele(type));
dx += 22;
if (dx >= 22 * maxBiomePerLine - 22) {
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.Binnie;
@@ -34,19 +30,18 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.Collection;
import java.util.List;
public class AnalystPageMutations extends ControlAnalystPage
{
public AnalystPageMutations(final IWidget parent, final IArea area, final IIndividual ind, final boolean isMaster) {
public class AnalystPageMutations extends ControlAnalystPage {
public AnalystPageMutations(IWidget parent, IArea area, IIndividual ind, boolean isMaster) {
super(parent, area);
this.setColor(3355392);
setColor(3355392);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Mutations").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Mutations").setColor(getColor());
y += 18;
final BreedingSystem system = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
final List<IMutation> discovered = system.getDiscoveredMutations(Window.get(this).getWorld(), Window.get(this).getUsername());
final IAlleleSpecies speciesCurrent = ind.getGenome().getPrimary();
final Collection<IMutation> resultant = system.getResultantMutations(speciesCurrent);
final Collection<IMutation> further = system.getFurtherMutations(speciesCurrent);
BreedingSystem system = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
List<IMutation> discovered = system.getDiscoveredMutations(Window.get(this).getWorld(), Window.get(this).getUsername());
IAlleleSpecies speciesCurrent = ind.getGenome().getPrimary();
Collection<IMutation> resultant = system.getResultantMutations(speciesCurrent);
Collection<IMutation> further = system.getFurtherMutations(speciesCurrent);
if (ind instanceof IBee) {
ItemStack hive = null;
if (ind.getGenome().getPrimary() == ExtraBeesSpecies.WATER) {
@@ -83,59 +78,55 @@ public class AnalystPageMutations extends ControlAnalystPage
hive = new ItemStack(Blocks.chest);
}
if (ind.getGenome().getPrimary() == ForestryAllele.BeeSpecies.Valiant.getAllele()) {
new ControlTextCentered(this, y, "Natural Habitat").setColor(this.getColor());
new ControlTextCentered(this, y, "Natural Habitat").setColor(getColor());
y += 10;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Found in any Hive").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Found in any Hive").setColor(getColor());
y += 22;
}
else if (ind.getGenome().getPrimary() == ForestryAllele.BeeSpecies.Monastic.getAllele()) {
new ControlTextCentered(this, y, "Natural Habitat").setColor(this.getColor());
} else if (ind.getGenome().getPrimary() == ForestryAllele.BeeSpecies.Monastic.getAllele()) {
new ControlTextCentered(this, y, "Natural Habitat").setColor(getColor());
y += 10;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Bought from Villagers").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Bought from Villagers").setColor(getColor());
y += 22;
}
else if (hive != null) {
new ControlTextCentered(this, y, "Natural Habitat").setColor(this.getColor());
} else if (hive != null) {
new ControlTextCentered(this, y, "Natural Habitat").setColor(getColor());
y += 10;
final ControlItemDisplay display = new ControlItemDisplay(this, (this.w() - 16.0f) / 2.0f, y);
ControlItemDisplay display = new ControlItemDisplay(this, (w() - 16.0f) / 2.0f, y);
if (ind.getGenome().getPrimary() == ForestryAllele.BeeSpecies.Steadfast.getAllele()) {
display.addTooltip("Dungeon Chests");
}
else {
} else {
display.setTooltip();
}
display.setItemStack(hive);
y += 24;
}
}
float ox = (this.w() - 88.0f - 8.0f) / 2.0f;
float ox = (w() - 88.0f - 8.0f) / 2.0f;
float dx = 0.0f;
if (!resultant.isEmpty()) {
if (resultant.size() == 1) {
ox = (this.w() - 44.0f) / 2.0f;
ox = (w() - 44.0f) / 2.0f;
}
new ControlTextCentered(this, y, "Resultant Mutations").setColor(this.getColor());
new ControlTextCentered(this, y, "Resultant Mutations").setColor(getColor());
y += 10;
for (final IMutation mutation : resultant) {
final float specificChance = this.getSpecificChance(ind, mutation, system);
if (!isMaster && !this.isKnown(system, mutation)) {
for (IMutation mutation : resultant) {
float specificChance = getSpecificChance(ind, mutation, system);
if (!isMaster && !isKnown(system, mutation)) {
new ControlUnknownMutation(this, ox + dx, y, 44.0f, 16.0f);
}
else {
} else {
new Control(this, ox + dx, y, 44.0f, 16.0f) {
@Override
public void initialise() {
final IAlleleSpecies species0 = mutation.getAllele0();
final IAlleleSpecies species2 = mutation.getAllele1();
final String comb = species0.getName() + " + " + species2.getName();
this.addTooltip(comb);
String chance = AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getCode() + (int) mutation.getBaseChance() + "% Chance";
IAlleleSpecies species0 = mutation.getAllele0();
IAlleleSpecies species2 = mutation.getAllele1();
String comb = species0.getName() + " + " + species2.getName();
addTooltip(comb);
String chance = getMutationColour(mutation.getBaseChance()).getCode() + (int) mutation.getBaseChance() + "% Chance";
if (specificChance != mutation.getBaseChance()) {
chance = chance + AnalystPageMutations.this.getMutationColour(specificChance).getCode() + " (" + (int) specificChance + "% currently)";
chance = chance + getMutationColour(specificChance).getCode() + " (" + (int) specificChance + "% currently)";
}
this.addTooltip(chance);
for (final String s : mutation.getSpecialConditions()) {
this.addTooltip(s);
addTooltip(chance);
for (String s : mutation.getSpecialConditions()) {
addTooltip(s);
}
}
@@ -144,13 +135,12 @@ public class AnalystPageMutations extends ControlAnalystPage
CraftGUI.Render.item(new IPoint(0.0f, 0.0f), system.getDefaultMember(mutation.getAllele0().getUID()));
CraftGUI.Render.item(new IPoint(28.0f, 0.0f), system.getDefaultMember(mutation.getAllele1().getUID()));
if (specificChance != mutation.getBaseChance()) {
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.colour(getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconAdd0.getIcon());
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(specificChance).getColour());
CraftGUI.Render.colour(getMutationColour(specificChance).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconAdd1.getIcon());
}
else {
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getColour());
} else {
CraftGUI.Render.colour(getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconAdd.getIcon());
}
}
@@ -166,36 +156,35 @@ public class AnalystPageMutations extends ControlAnalystPage
}
y += 10;
}
ox = (this.w() - 88.0f - 8.0f) / 2.0f;
ox = (w() - 88.0f - 8.0f) / 2.0f;
dx = 0.0f;
if (!further.isEmpty()) {
if (further.size() == 1) {
ox = (this.w() - 44.0f) / 2.0f;
ox = (w() - 44.0f) / 2.0f;
}
new ControlTextCentered(this, y, "Further Mutations").setColor(this.getColor());
new ControlTextCentered(this, y, "Further Mutations").setColor(getColor());
y += 10;
for (final IMutation mutation : further) {
final IAllele speciesComb = mutation.getPartner(speciesCurrent);
final float specificChance2 = this.getSpecificChance(ind, mutation, system);
if (!isMaster && !this.isKnown(system, mutation)) {
for (IMutation mutation : further) {
IAllele speciesComb = mutation.getPartner(speciesCurrent);
float specificChance2 = getSpecificChance(ind, mutation, system);
if (!isMaster && !isKnown(system, mutation)) {
new ControlUnknownMutation(this, ox + dx, y, 44.0f, 16.0f);
}
else {
} else {
new Control(this, ox + dx, y, 44.0f, 16.0f) {
@Override
public void initialise() {
final IAlleleSpecies species0 = (IAlleleSpecies) speciesComb;
final IAlleleSpecies species2 = (IAlleleSpecies) mutation.getTemplate()[0];
this.addTooltip(species2.getName());
final String comb = speciesCurrent.getName() + " + " + species0.getName();
this.addTooltip(comb);
String chance = AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getCode() + (int) mutation.getBaseChance() + "% Chance";
IAlleleSpecies species0 = (IAlleleSpecies) speciesComb;
IAlleleSpecies species2 = (IAlleleSpecies) mutation.getTemplate()[0];
addTooltip(species2.getName());
String comb = speciesCurrent.getName() + " + " + species0.getName();
addTooltip(comb);
String chance = getMutationColour(mutation.getBaseChance()).getCode() + (int) mutation.getBaseChance() + "% Chance";
if (specificChance2 != mutation.getBaseChance()) {
chance = chance + AnalystPageMutations.this.getMutationColour(specificChance2).getCode() + " (" + (int) specificChance2 + "% currently)";
chance = chance + getMutationColour(specificChance2).getCode() + " (" + (int) specificChance2 + "% currently)";
}
this.addTooltip(chance);
for (final String s : mutation.getSpecialConditions()) {
this.addTooltip(s);
addTooltip(chance);
for (String s : mutation.getSpecialConditions()) {
addTooltip(s);
}
}
@@ -203,15 +192,14 @@ public class AnalystPageMutations extends ControlAnalystPage
public void onRenderBackground() {
CraftGUI.Render.item(new IPoint(0.0f, 0.0f), system.getDefaultMember(speciesComb.getUID()));
CraftGUI.Render.item(new IPoint(28.0f, 0.0f), system.getDefaultMember(mutation.getTemplate()[0].getUID()));
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.colour(getMutationColour(mutation.getBaseChance()).getColour());
if (specificChance2 != mutation.getBaseChance()) {
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.colour(getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconArrow0.getIcon());
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(specificChance2).getColour());
CraftGUI.Render.colour(getMutationColour(specificChance2).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconArrow1.getIcon());
}
else {
CraftGUI.Render.colour(AnalystPageMutations.this.getMutationColour(mutation.getBaseChance()).getColour());
} else {
CraftGUI.Render.colour(getMutationColour(mutation.getBaseChance()).getColour());
CraftGUI.Render.iconItem(new IPoint(14.0f, 0.0f), ModuleItem.iconArrow.getIcon());
}
}
@@ -227,15 +215,15 @@ public class AnalystPageMutations extends ControlAnalystPage
}
}
y += 8;
this.setSize(new IPoint(this.w(), y));
setSize(new IPoint(w(), y));
}
private boolean isKnown(final BreedingSystem system, final IMutation mutation) {
return system.getDiscoveredMutations(this.getWindow().getWorld(), this.getWindow().getPlayer().getGameProfile()).contains(mutation);
private boolean isKnown(BreedingSystem system, IMutation mutation) {
return system.getDiscoveredMutations(getWindow().getWorld(), getWindow().getPlayer().getGameProfile()).contains(mutation);
}
private float getSpecificChance(final IIndividual ind, final IMutation mutation, final BreedingSystem system) {
return system.getChance(mutation, this.getWindow().getPlayer(), mutation.getAllele0(), mutation.getAllele1());
private float getSpecificChance(IIndividual ind, IMutation mutation, BreedingSystem system) {
return system.getChance(mutation, getWindow().getPlayer(), mutation.getAllele0(), mutation.getAllele1());
}
@Override
@@ -243,7 +231,7 @@ public class AnalystPageMutations extends ControlAnalystPage
return "Mutations";
}
protected EnumColor getMutationColour(final float percent) {
protected EnumColor getMutationColour(float percent) {
if (percent >= 20.0f) {
return EnumColor.DarkGreen;
}
@@ -262,17 +250,16 @@ public class AnalystPageMutations extends ControlAnalystPage
return EnumColor.DarkRed;
}
static class ControlUnknownMutation extends Control
{
public ControlUnknownMutation(final IWidget parent, final float x, final float y, final float w, final float h) {
static class ControlUnknownMutation extends Control {
public ControlUnknownMutation(IWidget parent, float x, float y, float w, float h) {
super(parent, x, y, w, h);
this.addAttribute(WidgetAttribute.MouseOver);
this.addTooltip("Unknown Mutation");
addAttribute(WidgetAttribute.MouseOver);
addTooltip("Unknown Mutation");
}
@Override
public void onRenderBackground() {
CraftGUI.Render.text(this.getArea(), TextJustification.MiddleCenter, "UNKNOWN", 11184810);
CraftGUI.Render.text(getArea(), TextJustification.MiddleCenter, "UNKNOWN", 11184810);
}
}
}
@@ -1,59 +1,55 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.minecraft.control.ControlItemDisplay;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import net.minecraft.init.Items;
import net.minecraftforge.fluids.FluidContainerRegistry;
import binnie.extratrees.machines.Distillery;
import binnie.extratrees.machines.Brewery;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.minecraft.control.ControlItemDisplay;
import binnie.core.util.UniqueFluidStackSet;
import binnie.core.util.UniqueItemStackSet;
import binnie.extratrees.machines.Brewery;
import binnie.extratrees.machines.Distillery;
import binnie.extratrees.machines.Press;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import forestry.api.recipes.RecipeManagers;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import forestry.api.recipes.RecipeManagers;
import java.util.ArrayList;
import net.minecraft.item.crafting.FurnaceRecipes;
import binnie.core.util.UniqueItemStackSet;
import java.util.Collection;
import net.minecraft.item.ItemStack;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
public abstract class AnalystPageProduce extends ControlAnalystPage
{
public AnalystPageProduce(final IWidget parent, final IArea area) {
public abstract class AnalystPageProduce extends ControlAnalystPage {
public AnalystPageProduce(IWidget parent, IArea area) {
super(parent, area);
}
protected Collection<? extends ItemStack> getAllProducts(final ItemStack key) {
final Collection<ItemStack> products = new UniqueItemStackSet();
products.addAll(this.getCentrifuge(key));
products.addAll(this.getSqueezer(key));
protected Collection<? extends ItemStack> getAllProducts(ItemStack key) {
Collection<ItemStack> products = new UniqueItemStackSet();
products.addAll(getCentrifuge(key));
products.addAll(getSqueezer(key));
products.add(FurnaceRecipes.smelting().getSmeltingResult(key));
products.addAll(this.getCrafting(key));
products.addAll(getCrafting(key));
return products;
}
public Collection<ItemStack> getCentrifuge(final ItemStack stack) {
final List<ItemStack> products = new ArrayList<ItemStack>();
for (final Map.Entry<Object[], Object[]> recipe : RecipeManagers.centrifugeManager.getRecipes().entrySet()) {
public Collection<ItemStack> getCentrifuge(ItemStack stack) {
List<ItemStack> products = new ArrayList<ItemStack>();
for (Map.Entry<Object[], Object[]> recipe : RecipeManagers.centrifugeManager.getRecipes().entrySet()) {
boolean isRecipe = false;
for (final Object obj : recipe.getKey()) {
for (Object obj : recipe.getKey()) {
if (obj instanceof ItemStack && stack.isItemEqual((ItemStack) obj)) {
isRecipe = true;
}
}
if (isRecipe) {
for (final Object obj : recipe.getValue()) {
for (Object obj : recipe.getValue()) {
if (obj instanceof ItemStack) {
products.add((ItemStack) obj);
}
@@ -63,17 +59,17 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return products;
}
public Collection<ItemStack> getSqueezer(final ItemStack stack) {
final List<ItemStack> products = new ArrayList<ItemStack>();
for (final Map.Entry<Object[], Object[]> recipe : RecipeManagers.squeezerManager.getRecipes().entrySet()) {
public Collection<ItemStack> getSqueezer(ItemStack stack) {
List<ItemStack> products = new ArrayList<ItemStack>();
for (Map.Entry<Object[], Object[]> recipe : RecipeManagers.squeezerManager.getRecipes().entrySet()) {
boolean isRecipe = false;
for (final Object obj : recipe.getKey()) {
for (Object obj : recipe.getKey()) {
if (obj instanceof ItemStack && stack.isItemEqual((ItemStack) obj)) {
isRecipe = true;
}
}
if (isRecipe) {
for (final Object obj : recipe.getValue()) {
for (Object obj : recipe.getValue()) {
if (obj instanceof ItemStack) {
products.add((ItemStack) obj);
}
@@ -83,13 +79,13 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return products;
}
public Collection<ItemStack> getCrafting(final ItemStack stack) {
final List<ItemStack> products = new ArrayList<ItemStack>();
for (final Object recipeO : CraftingManager.getInstance().getRecipeList()) {
public Collection<ItemStack> getCrafting(ItemStack stack) {
List<ItemStack> products = new ArrayList<ItemStack>();
for (Object recipeO : CraftingManager.getInstance().getRecipeList()) {
if (recipeO instanceof ShapelessRecipes) {
final ShapelessRecipes recipe = (ShapelessRecipes) recipeO;
ShapelessRecipes recipe = (ShapelessRecipes) recipeO;
boolean match = true;
for (final Object rec : recipe.recipeItems) {
for (Object rec : recipe.recipeItems) {
if (rec != null && (!(rec instanceof ItemStack) || !stack.isItemEqual((ItemStack) rec))) {
match = false;
}
@@ -99,9 +95,9 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
}
}
if (recipeO instanceof ShapedRecipes) {
final ShapedRecipes recipe2 = (ShapedRecipes) recipeO;
ShapedRecipes recipe2 = (ShapedRecipes) recipeO;
boolean match = true;
for (final Object rec2 : recipe2.recipeItems) {
for (Object rec2 : recipe2.recipeItems) {
if (rec2 != null && (!(rec2 instanceof ItemStack) || !stack.isItemEqual((ItemStack) rec2))) {
match = false;
}
@@ -111,9 +107,9 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
}
}
if (recipeO instanceof ShapelessOreRecipe) {
final ShapelessOreRecipe recipe3 = (ShapelessOreRecipe) recipeO;
ShapelessOreRecipe recipe3 = (ShapelessOreRecipe) recipeO;
boolean match = true;
for (final Object rec : recipe3.getInput()) {
for (Object rec : recipe3.getInput()) {
if (rec != null && (!(rec instanceof ItemStack) || !stack.isItemEqual((ItemStack) rec))) {
match = false;
}
@@ -127,26 +123,26 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return products;
}
public Collection<FluidStack> getAllFluids(final ItemStack stack) {
final List<FluidStack> products = new ArrayList<FluidStack>();
products.addAll(this.getSqueezerFluid(stack));
public Collection<FluidStack> getAllFluids(ItemStack stack) {
List<FluidStack> products = new ArrayList<FluidStack>();
products.addAll(getSqueezerFluid(stack));
if (Press.getOutput(stack) != null) {
products.add(Press.getOutput(stack));
}
return products;
}
public Collection<FluidStack> getSqueezerFluid(final ItemStack stack) {
final List<FluidStack> products = new ArrayList<FluidStack>();
for (final Map.Entry<Object[], Object[]> recipe : RecipeManagers.squeezerManager.getRecipes().entrySet()) {
public Collection<FluidStack> getSqueezerFluid(ItemStack stack) {
List<FluidStack> products = new ArrayList<FluidStack>();
for (Map.Entry<Object[], Object[]> recipe : RecipeManagers.squeezerManager.getRecipes().entrySet()) {
boolean isRecipe = false;
for (final Object obj : recipe.getKey()) {
for (Object obj : recipe.getKey()) {
if (obj instanceof ItemStack && stack.isItemEqual((ItemStack) obj)) {
isRecipe = true;
}
}
if (isRecipe) {
for (final Object obj : recipe.getValue()) {
for (Object obj : recipe.getValue()) {
if (obj instanceof FluidStack) {
products.add((FluidStack) obj);
}
@@ -156,8 +152,8 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return products;
}
protected Collection<? extends FluidStack> getAllProducts(final FluidStack stack) {
final Collection<FluidStack> fluids = new UniqueFluidStackSet();
protected Collection<? extends FluidStack> getAllProducts(FluidStack stack) {
Collection<FluidStack> fluids = new UniqueFluidStackSet();
fluids.add(Brewery.getOutput(stack));
fluids.add(Distillery.getOutput(stack, 0));
fluids.add(Distillery.getOutput(stack, 1));
@@ -165,38 +161,38 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return fluids;
}
protected Collection<ItemStack> getAllProductsAndFluids(final Collection<ItemStack> collection) {
final Collection<ItemStack> products = new UniqueItemStackSet();
for (final ItemStack stack : collection) {
products.addAll(this.getAllProducts(stack));
protected Collection<ItemStack> getAllProductsAndFluids(Collection<ItemStack> collection) {
Collection<ItemStack> products = new UniqueItemStackSet();
for (ItemStack stack : collection) {
products.addAll(getAllProducts(stack));
}
final Collection<ItemStack> products2 = new UniqueItemStackSet();
for (final ItemStack stack2 : products) {
products2.addAll(this.getAllProducts(stack2));
Collection<ItemStack> products2 = new UniqueItemStackSet();
for (ItemStack stack2 : products) {
products2.addAll(getAllProducts(stack2));
}
final Collection<ItemStack> products3 = new UniqueItemStackSet();
for (final ItemStack stack3 : products2) {
products3.addAll(this.getAllProducts(stack3));
Collection<ItemStack> products3 = new UniqueItemStackSet();
for (ItemStack stack3 : products2) {
products3.addAll(getAllProducts(stack3));
}
products.addAll(products2);
products.addAll(products3);
final Collection<FluidStack> allFluids = new UniqueFluidStackSet();
for (final ItemStack stack4 : collection) {
allFluids.addAll(this.getAllFluids(stack4));
Collection<FluidStack> allFluids = new UniqueFluidStackSet();
for (ItemStack stack4 : collection) {
allFluids.addAll(getAllFluids(stack4));
}
final Collection<FluidStack> fluids2 = new UniqueFluidStackSet();
for (final FluidStack stack5 : allFluids) {
fluids2.addAll(this.getAllProducts(stack5));
Collection<FluidStack> fluids2 = new UniqueFluidStackSet();
for (FluidStack stack5 : allFluids) {
fluids2.addAll(getAllProducts(stack5));
}
final Collection<FluidStack> fluids3 = new UniqueFluidStackSet();
for (final FluidStack stack6 : fluids2) {
fluids3.addAll(this.getAllProducts(stack6));
Collection<FluidStack> fluids3 = new UniqueFluidStackSet();
for (FluidStack stack6 : fluids2) {
fluids3.addAll(getAllProducts(stack6));
}
allFluids.addAll(fluids2);
allFluids.addAll(fluids3);
for (final FluidStack fluid : allFluids) {
for (FluidStack fluid : allFluids) {
ItemStack container = null;
for (final FluidContainerRegistry.FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
for (FluidContainerRegistry.FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
if (data.emptyContainer.isItemEqual(new ItemStack(Items.glass_bottle)) && data.fluid.isFluidEqual(fluid)) {
container = data.filledContainer;
break;
@@ -217,21 +213,21 @@ public abstract class AnalystPageProduce extends ControlAnalystPage
return products;
}
protected int getRefined(final String string, int y, final Collection<ItemStack> products) {
new ControlTextCentered(this, y, string).setColor(this.getColor());
protected int getRefined(String string, int y, Collection<ItemStack> products) {
new ControlTextCentered(this, y, string).setColor(getColor());
y += 10;
final int maxBiomePerLine = (int) ((this.w() + 2.0f - 16.0f) / 18.0f);
final float biomeListX = (this.w() - (Math.min(maxBiomePerLine, products.size()) * 18 - 2)) / 2.0f;
int maxBiomePerLine = (int) ((w() + 2.0f - 16.0f) / 18.0f);
float biomeListX = (w() - (Math.min(maxBiomePerLine, products.size()) * 18 - 2)) / 2.0f;
int dx = 0;
int dy = 0;
for (final ItemStack soilStack : products) {
for (ItemStack soilStack : products) {
if (dx >= 18 * maxBiomePerLine) {
dx = 0;
dy += 18;
}
final FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(soilStack);
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(soilStack);
soilStack.stackSize = 1;
final ControlItemDisplay display = new ControlItemDisplay(this, biomeListX + dx, y + dy, soilStack, fluid == null);
ControlItemDisplay display = new ControlItemDisplay(this, biomeListX + dx, y + dy, soilStack, fluid == null);
if (fluid != null) {
display.addTooltip(fluid.getLocalizedName());
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.Binnie;
@@ -32,66 +28,65 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class AnalystPageProducts extends AnalystPageProduce
{
public AnalystPageProducts(final IWidget parent, final IArea area, final IBee ind) {
public class AnalystPageProducts extends AnalystPageProduce {
public AnalystPageProducts(IWidget parent, IArea area, IBee ind) {
super(parent, area);
this.setColor(13382400);
final IBeeGenome genome = ind.getGenome();
final float speed = genome.getSpeed();
final float modeSpeed = Binnie.Genetics.getBeeRoot().getBeekeepingMode(BinnieCore.proxy.getWorld()).getBeeModifier().getProductionModifier(genome, 1.0f);
setColor(13382400);
IBeeGenome genome = ind.getGenome();
float speed = genome.getSpeed();
float modeSpeed = Binnie.Genetics.getBeeRoot().getBeekeepingMode(BinnieCore.proxy.getWorld()).getBeeModifier().getProductionModifier(genome, 1.0f);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Produce").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Produce").setColor(getColor());
y += 12;
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Rate: " + Binnie.Genetics.beeBreedingSystem.getAlleleName(EnumBeeChromosome.SPEED, ind.getGenome().getActiveAllele(EnumBeeChromosome.SPEED))).setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.ITALIC + "Rate: " + Binnie.Genetics.beeBreedingSystem.getAlleleName(EnumBeeChromosome.SPEED, ind.getGenome().getActiveAllele(EnumBeeChromosome.SPEED))).setColor(getColor());
y += 20;
final Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
final Collection<ItemStack> productList = new UniqueItemStackSet();
final Collection<ItemStack> specialtyList = new UniqueItemStackSet();
Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
Collection<ItemStack> productList = new UniqueItemStackSet();
Collection<ItemStack> specialtyList = new UniqueItemStackSet();
Map<ItemStack, Float> products = new HashMap<ItemStack, Float>();
products.putAll(genome.getPrimary().getProductChances());
products.putAll(genome.getSecondary().getProductChances());
if (!products.isEmpty()) {
new ControlTextCentered(this, y, "Natural Products").setColor(this.getColor());
new ControlTextCentered(this, y, "Natural Products").setColor(getColor());
y += 12;
for (final Map.Entry<ItemStack, Float> entry : products.entrySet()) {
for (Map.Entry<ItemStack, Float> entry : products.entrySet()) {
if (!productList.add(entry.getKey())) {
continue;
}
refinedProducts.addAll(this.getAllProducts(entry.getKey()));
this.createProductEntry(entry.getKey(), entry.getValue(), y, speed * modeSpeed);
refinedProducts.addAll(getAllProducts(entry.getKey()));
createProductEntry(entry.getKey(), entry.getValue(), y, speed * modeSpeed);
y += 18;
}
y += 12;
}
products = genome.getPrimary().getSpecialtyChances();
if (!products.isEmpty()) {
new ControlTextCentered(this, y, "Specialty Products").setColor(this.getColor());
new ControlTextCentered(this, y, "Specialty Products").setColor(getColor());
y += 12;
for (final Map.Entry<ItemStack, Float> entry : products.entrySet()) {
refinedProducts.addAll(this.getAllProducts(entry.getKey()));
this.createProductEntry(entry.getKey(), entry.getValue(), y, speed * modeSpeed);
for (Map.Entry<ItemStack, Float> entry : products.entrySet()) {
refinedProducts.addAll(getAllProducts(entry.getKey()));
createProductEntry(entry.getKey(), entry.getValue(), y, speed * modeSpeed);
y += 18;
}
y += 12;
}
new ControlTextCentered(this, y, "Refined Products").setColor(this.getColor());
new ControlTextCentered(this, y, "Refined Products").setColor(getColor());
y += 12;
Collection<ItemStack> level2Products = new UniqueItemStackSet();
for (final ItemStack stack : refinedProducts) {
level2Products.addAll(this.getAllProducts(stack));
for (ItemStack stack : refinedProducts) {
level2Products.addAll(getAllProducts(stack));
}
refinedProducts.addAll(level2Products);
level2Products = new UniqueItemStackSet();
for (final ItemStack stack : refinedProducts) {
level2Products.addAll(this.getAllProducts(stack));
for (ItemStack stack : refinedProducts) {
level2Products.addAll(getAllProducts(stack));
}
refinedProducts.addAll(level2Products);
final Collection<FluidStack> allFluids = new ArrayList<FluidStack>();
for (final ItemStack stack2 : refinedProducts) {
for (final FluidStack addition : this.getAllFluids(stack2)) {
Collection<FluidStack> allFluids = new ArrayList<FluidStack>();
for (ItemStack stack2 : refinedProducts) {
for (FluidStack addition : getAllFluids(stack2)) {
boolean alreadyIn = false;
for (final FluidStack existing : allFluids) {
for (FluidStack existing : allFluids) {
if (existing.isFluidEqual(addition)) {
alreadyIn = true;
}
@@ -101,27 +96,27 @@ public class AnalystPageProducts extends AnalystPageProduce
}
}
}
final int maxBiomePerLine = (int) ((this.w() + 2.0f - 16.0f) / 18.0f);
final float biomeListX = (this.w() - (Math.min(maxBiomePerLine, allFluids.size() + refinedProducts.size()) * 18 - 2)) / 2.0f;
int maxBiomePerLine = (int) ((w() + 2.0f - 16.0f) / 18.0f);
float biomeListX = (w() - (Math.min(maxBiomePerLine, allFluids.size() + refinedProducts.size()) * 18 - 2)) / 2.0f;
int dx = 0;
int dy = 0;
for (final ItemStack soilStack : refinedProducts) {
for (ItemStack soilStack : refinedProducts) {
if (dx >= 18 * maxBiomePerLine) {
dx = 0;
dy += 18;
}
final ControlItemDisplay display = new ControlItemDisplay(this, biomeListX + dx, y + dy);
ControlItemDisplay display = new ControlItemDisplay(this, biomeListX + dx, y + dy);
display.setItemStack(soilStack);
display.setTooltip();
dx += 18;
}
for (final FluidStack soilStack2 : allFluids) {
for (FluidStack soilStack2 : allFluids) {
if (dx >= 18 * maxBiomePerLine) {
dx = 0;
dy += 18;
}
ItemStack container = null;
for (final FluidContainerRegistry.FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
for (FluidContainerRegistry.FluidContainerData data : FluidContainerRegistry.getRegisteredFluidContainerData()) {
if (data.emptyContainer.isItemEqual(new ItemStack(Items.glass_bottle)) && data.fluid.isFluidEqual(soilStack2)) {
container = data.filledContainer;
break;
@@ -136,39 +131,38 @@ public class AnalystPageProducts extends AnalystPageProduce
}
}
if (container == null) {
final ControlFluidDisplay display2 = new ControlFluidDisplay(this, biomeListX + dx, y + dy);
ControlFluidDisplay display2 = new ControlFluidDisplay(this, biomeListX + dx, y + dy);
display2.setItemStack(soilStack2);
display2.setTooltip();
}
else {
final ControlItemDisplay display3 = new ControlItemDisplay(this, biomeListX + dx, y + dy);
} else {
ControlItemDisplay display3 = new ControlItemDisplay(this, biomeListX + dx, y + dy);
display3.setItemStack(container);
display3.setTooltip();
}
dx += 18;
}
this.setSize(new IPoint(this.w(), y + dy + 18 + 8));
setSize(new IPoint(w(), y + dy + 18 + 8));
}
private void createProductEntry(final ItemStack key, final Float value, final int y, final float speed) {
final ControlItemDisplay item = new ControlItemDisplay(this, 16.0f, y) {
private void createProductEntry(ItemStack key, Float value, int y, float speed) {
ControlItemDisplay item = new ControlItemDisplay(this, 16.0f, y) {
@Override
public void getTooltip(final Tooltip tooltip) {
public void getTooltip(Tooltip tooltip) {
super.getTooltip(tooltip);
final Collection<ItemStack> products = AnalystPageProducts.this.getCentrifuge(key);
Collection<ItemStack> products = getCentrifuge(key);
if (!products.isEmpty()) {
tooltip.add("Centrifuges to give: ");
for (final ItemStack prod : products) {
final NBTTagCompound nbt = new NBTTagCompound();
for (ItemStack prod : products) {
NBTTagCompound nbt = new NBTTagCompound();
prod.writeToNBT(nbt);
tooltip.add(prod, prod.getDisplayName());
}
}
final Collection<ItemStack> liquids = AnalystPageProducts.this.getSqueezer(key);
Collection<ItemStack> liquids = getSqueezer(key);
if (!liquids.isEmpty()) {
tooltip.add("Squeezes to give: ");
for (final ItemStack prod2 : liquids) {
final NBTTagCompound nbt2 = new NBTTagCompound();
for (ItemStack prod2 : liquids) {
NBTTagCompound nbt2 = new NBTTagCompound();
prod2.writeToNBT(nbt2);
tooltip.add(prod2, prod2.getDisplayName());
}
@@ -176,12 +170,12 @@ public class AnalystPageProducts extends AnalystPageProduce
}
};
item.setTooltip();
final ControlText textWidget = new ControlTextCentered(this, y + 4, "");
textWidget.setColor(this.getColor());
ControlText textWidget = new ControlTextCentered(this, y + 4, "");
textWidget.setColor(getColor());
CraftGUIUtil.moveWidget(textWidget, new IPoint(12.0f, 0.0f));
item.setItemStack(key);
final float time = (int) (PluginApiculture.ticksPerBeeWorkCycle * 100.0 / (speed * value));
textWidget.setValue("Every " + this.getTimeString(time));
float time = (int) (PluginApiculture.ticksPerBeeWorkCycle * 100.0 / (speed * value));
textWidget.setValue("Every " + getTimeString(time));
}
@Override
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.Binnie;
@@ -25,41 +21,38 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
public class AnalystPageSoil extends ControlAnalystPage
{
public AnalystPageSoil(final IWidget parent, final IArea area, final IFlower flower) {
public class AnalystPageSoil extends ControlAnalystPage {
public AnalystPageSoil(IWidget parent, IArea area, IFlower flower) {
super(parent, area);
this.setColor(6697728);
final EnumMoisture moisture = flower.getGenome().getPrimary().getMoisture();
final EnumTolerance moistureTol = flower.getGenome().getToleranceMoisture();
final EnumAcidity pH = flower.getGenome().getPrimary().getPH();
final EnumTolerance pHTol = flower.getGenome().getTolerancePH();
setColor(6697728);
EnumMoisture moisture = flower.getGenome().getPrimary().getMoisture();
EnumTolerance moistureTol = flower.getGenome().getToleranceMoisture();
EnumAcidity pH = flower.getGenome().getPrimary().getPH();
EnumTolerance pHTol = flower.getGenome().getTolerancePH();
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Soil").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Soil").setColor(getColor());
y += 16;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Moisture Tolerance", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Moisture Tolerance", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
this.createMoisture(this, (this.w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, moisture, moistureTol);
createMoisture(this, (w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, moisture, moistureTol);
y += 16;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "pH Tolerance", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "pH Tolerance", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
this.createAcidity(this, (this.w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, pH, pHTol);
createAcidity(this, (w() - 100.0f) / 2.0f, y, 100.0f, 10.0f, pH, pHTol);
y += 16;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Recommended Soil", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Recommended Soil", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
EnumMoisture recomMoisture = EnumMoisture.Normal;
final boolean canTolNormal = Tolerance.canTolerate(moisture, EnumMoisture.Normal, moistureTol);
final boolean canTolDamp = Tolerance.canTolerate(moisture, EnumMoisture.Damp, moistureTol);
final boolean canTolDry = Tolerance.canTolerate(moisture, EnumMoisture.Dry, moistureTol);
boolean canTolNormal = Tolerance.canTolerate(moisture, EnumMoisture.Normal, moistureTol);
boolean canTolDamp = Tolerance.canTolerate(moisture, EnumMoisture.Damp, moistureTol);
boolean canTolDry = Tolerance.canTolerate(moisture, EnumMoisture.Dry, moistureTol);
if (canTolNormal) {
if (canTolDamp && !canTolDry) {
recomMoisture = EnumMoisture.Damp;
}
else if (canTolDry && !canTolDamp) {
} else if (canTolDry && !canTolDamp) {
recomMoisture = EnumMoisture.Dry;
}
}
else {
} else {
if (canTolDamp) {
recomMoisture = EnumMoisture.Damp;
}
@@ -68,18 +61,16 @@ public class AnalystPageSoil extends ControlAnalystPage
}
}
EnumAcidity recomPH = EnumAcidity.Neutral;
final boolean canTolNeutral = Tolerance.canTolerate(pH, EnumAcidity.Neutral, pHTol);
final boolean canTolAcid = Tolerance.canTolerate(pH, EnumAcidity.Acid, pHTol);
final boolean canTolAlkaline = Tolerance.canTolerate(pH, EnumAcidity.Alkaline, pHTol);
boolean canTolNeutral = Tolerance.canTolerate(pH, EnumAcidity.Neutral, pHTol);
boolean canTolAcid = Tolerance.canTolerate(pH, EnumAcidity.Acid, pHTol);
boolean canTolAlkaline = Tolerance.canTolerate(pH, EnumAcidity.Alkaline, pHTol);
if (canTolNeutral) {
if (canTolAcid && !canTolAlkaline) {
recomPH = EnumAcidity.Acid;
}
else if (canTolAlkaline && !canTolAcid) {
} else if (canTolAlkaline && !canTolAcid) {
recomPH = EnumAcidity.Alkaline;
}
}
else {
} else {
if (canTolAcid) {
recomPH = EnumAcidity.Acid;
}
@@ -87,55 +78,55 @@ public class AnalystPageSoil extends ControlAnalystPage
recomPH = EnumAcidity.Alkaline;
}
}
final ItemStack stack = new ItemStack(Botany.soil, 1, BlockSoil.getMeta(recomPH, recomMoisture));
final ControlItemDisplay recomSoil = new ControlItemDisplay(this, (this.w() - 24.0f) / 2.0f, y, 24.0f);
ItemStack stack = new ItemStack(Botany.soil, 1, BlockSoil.getMeta(recomPH, recomMoisture));
ControlItemDisplay recomSoil = new ControlItemDisplay(this, (w() - 24.0f) / 2.0f, y, 24.0f);
recomSoil.setItemStack(stack);
recomSoil.setTooltip();
y += 32;
new ControlText(this, new IArea(4.0f, y, this.w() - 8.0f, 14.0f), "Other Soils", TextJustification.MiddleCenter).setColor(this.getColor());
new ControlText(this, new IArea(4.0f, y, w() - 8.0f, 14.0f), "Other Soils", TextJustification.MiddleCenter).setColor(getColor());
y += 12;
final List<ItemStack> stacks = new ArrayList<ItemStack>();
for (final EnumAcidity a : EnumSet.range(EnumAcidity.Acid, EnumAcidity.Alkaline)) {
for (final EnumMoisture b : EnumSet.range(EnumMoisture.Dry, EnumMoisture.Damp)) {
List<ItemStack> stacks = new ArrayList<ItemStack>();
for (EnumAcidity a : EnumSet.range(EnumAcidity.Acid, EnumAcidity.Alkaline)) {
for (EnumMoisture b : EnumSet.range(EnumMoisture.Dry, EnumMoisture.Damp)) {
if (Tolerance.canTolerate(pH, a, pHTol) && Tolerance.canTolerate(moisture, b, moistureTol) && (a != recomPH || b != recomMoisture)) {
stacks.add(new ItemStack(Botany.soil, 1, BlockSoil.getMeta(a, b)));
}
}
}
final float soilListWidth = 17 * stacks.size() - 1;
final float soilListX = (this.w() - soilListWidth) / 2.0f;
float soilListWidth = 17 * stacks.size() - 1;
float soilListX = (w() - soilListWidth) / 2.0f;
int t = 0;
for (final ItemStack soilStack : stacks) {
final ControlItemDisplay display = new ControlItemDisplay(this, soilListX + 17 * t++, y);
for (ItemStack soilStack : stacks) {
ControlItemDisplay display = new ControlItemDisplay(this, soilListX + 17 * t++, y);
display.setItemStack(soilStack);
display.setTooltip();
}
}
protected void createMoisture(final IWidget parent, final float x, final float y, final float w, final float h, final EnumMoisture value, final EnumTolerance tol) {
protected void createMoisture(IWidget parent, float x, float y, float w, float h, EnumMoisture value, EnumTolerance tol) {
new ControlToleranceBar<EnumMoisture>(parent, x, y, w, h, EnumMoisture.class) {
@Override
protected String getName(final EnumMoisture value) {
protected String getName(EnumMoisture value) {
return Binnie.Language.localise(value);
}
@Override
protected int getColour(final EnumMoisture value) {
return (new int[] { 13434828, 6737151, 3368703 })[value.ordinal()];
protected int getColour(EnumMoisture value) {
return (new int[]{13434828, 6737151, 3368703})[value.ordinal()];
}
}.setValues(value, tol);
}
protected void createAcidity(final IWidget parent, final float x, final float y, final float w, final float h, final EnumAcidity value, final EnumTolerance tol) {
protected void createAcidity(IWidget parent, float x, float y, float w, float h, EnumAcidity value, EnumTolerance tol) {
new ControlToleranceBar<EnumAcidity>(parent, x, y, w, h, EnumAcidity.class) {
@Override
protected String getName(final EnumAcidity value) {
protected String getName(EnumAcidity value) {
return Binnie.Language.localise(value);
}
@Override
protected int getColour(final EnumAcidity value) {
return (new int[] { 16711782, 65280, 26367 })[value.ordinal()];
protected int getColour(EnumAcidity value) {
return (new int[]{16711782, 65280, 26367})[value.ordinal()];
}
}.setValues(value, tol);
}
@@ -1,25 +1,20 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.controls.ControlTextCentered;
import forestry.api.lepidopterology.IButterfly;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.geometry.IArea;
import forestry.api.lepidopterology.IButterfly;
import net.minecraft.util.EnumChatFormatting;
public class AnalystPageSpecimen extends ControlAnalystPage
{
public AnalystPageSpecimen(final IWidget parent, final IArea area, final IButterfly ind) {
public class AnalystPageSpecimen extends ControlAnalystPage {
public AnalystPageSpecimen(IWidget parent, IArea area, IButterfly ind) {
super(parent, area);
this.setColor(3355443);
setColor(3355443);
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Specimen").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Specimen").setColor(getColor());
y += 12;
final float w = (this.w() - 16.0f) * ind.getSize();
new ControlIndividualDisplay(this, (this.w() - w) / 2.0f, y + (this.w() - w) / 2.0f, w, ind);
float w = (w() - 16.0f) * ind.getSize();
new ControlIndividualDisplay(this, (w() - w) / 2.0f, y + (w() - w) / 2.0f, w, ind);
}
@Override
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.IWidget;
@@ -23,60 +19,58 @@ import net.minecraftforge.common.util.ForgeDirection;
import java.util.Collection;
public class AnalystPageWood extends AnalystPageProduce
{
public AnalystPageWood(final IWidget parent, final IArea area, final ITree ind) {
public class AnalystPageWood extends AnalystPageProduce {
public AnalystPageWood(IWidget parent, IArea area, ITree ind) {
super(parent, area);
this.setColor(6697728);
final ITreeGenome genome = ind.getGenome();
setColor(6697728);
ITreeGenome genome = ind.getGenome();
int y = 4;
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Wood").setColor(this.getColor());
new ControlTextCentered(this, y, EnumChatFormatting.UNDERLINE + "Wood").setColor(getColor());
y += 12;
if (((IAlleleBoolean) ind.getGenome().getActiveAllele(EnumTreeChromosome.FIREPROOF)).getValue()) {
new ControlIconDisplay(this, (this.w() - 16.0f) / 2.0f, y, ModuleItem.iconNoFire.getIcon()).addTooltip("Fireproof");
}
else {
new ControlIconDisplay(this, (this.w() - 16.0f) / 2.0f, y, ModuleItem.iconFire.getIcon()).addTooltip("Flammable");
new ControlIconDisplay(this, (w() - 16.0f) / 2.0f, y, ModuleItem.iconNoFire.getIcon()).addTooltip("Fireproof");
} else {
new ControlIconDisplay(this, (w() - 16.0f) / 2.0f, y, ModuleItem.iconFire.getIcon()).addTooltip("Flammable");
}
y += 30;
final Collection<ItemStack> products = new UniqueItemStackSet();
Collection<ItemStack> products = new UniqueItemStackSet();
genome.getPrimary().getGenerator().setLogBlock(genome, FakeWorld.instance, 0, 0, 0, ForgeDirection.UP);
ItemStack stackWood = FakeWorld.instance.getWooLog();
if (stackWood != null) {
products.add(stackWood);
}
// for (final ItemStack stack :
// for (ItemStack stack :
// ind.getGenome().getFruitProvider().getProducts()) {
// products.add(stack);
// }
if (products.size() > 0) {
new ControlTextCentered(this, y, "Logs").setColor(this.getColor());
new ControlTextCentered(this, y, "Logs").setColor(getColor());
y += 10;
final int w = products.size() * 18 - 2;
final int i = 0;
for (final ItemStack stack : products) {
final ControlItemDisplay d = new ControlItemDisplay(this, (this.w() - w) / 2.0f + 18 * i, y);
int w = products.size() * 18 - 2;
int i = 0;
for (ItemStack stack : products) {
ControlItemDisplay d = new ControlItemDisplay(this, (w() - w) / 2.0f + 18 * i, y);
d.setTooltip();
d.setItemStack(stack);
}
y += 26;
}
final Collection<ItemStack> allProducts = new UniqueItemStackSet();
for (final ItemStack stack2 : products) {
Collection<ItemStack> allProducts = new UniqueItemStackSet();
for (ItemStack stack2 : products) {
allProducts.add(stack2);
}
final Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
refinedProducts.addAll(this.getAllProductsAndFluids(allProducts));
Collection<ItemStack> refinedProducts = new UniqueItemStackSet();
refinedProducts.addAll(getAllProductsAndFluids(allProducts));
if (refinedProducts.size() > 0) {
y = this.getRefined("Refined Products", y, refinedProducts);
y = getRefined("Refined Products", y, refinedProducts);
y += 8;
}
if (products.size() == 0) {
new ControlTextCentered(this, y, "This tree has no \nfruits or nuts").setColor(this.getColor());
new ControlTextCentered(this, y, "This tree has no \nfruits or nuts").setColor(getColor());
y += 28;
}
this.setSize(new IPoint(this.w(), y + 8));
setSize(new IPoint(w(), y + 8));
}
@Override
@@ -1,27 +1,22 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.genetics.BreedingSystem;
import binnie.Binnie;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.core.texture.BinnieCoreTexture;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.resource.Texture;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IAllele;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.core.genetics.BreedingSystem;
import binnie.core.texture.BinnieCoreTexture;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.ISpeciesRoot;
public class ControlAnalystChromosome extends Control implements ITooltip
{
public class ControlAnalystChromosome extends Control implements ITooltip {
IAllele allele0;
IAllele allele1;
IChromosomeType chromosomeType;
@@ -29,37 +24,36 @@ public class ControlAnalystChromosome extends Control implements ITooltip
Texture Homozygous;
Texture Heterozygous;
public ControlAnalystChromosome(final IWidget parent, final float x, final float y, final ISpeciesRoot root, final IChromosomeType type, final IAllele allele0, final IAllele allele1) {
public ControlAnalystChromosome(IWidget parent, float x, float y, ISpeciesRoot root, IChromosomeType type, IAllele allele0, IAllele allele1) {
super(parent, x, y, 16.0f, 22.0f);
this.Homozygous = new StandardTexture(0, 0, 16, 22, BinnieCoreTexture.GUIAnalyst);
this.Heterozygous = new StandardTexture(16, 0, 16, 22, BinnieCoreTexture.GUIAnalyst);
this.addAttribute(WidgetAttribute.MouseOver);
Homozygous = new StandardTexture(0, 0, 16, 22, BinnieCoreTexture.GUIAnalyst);
Heterozygous = new StandardTexture(16, 0, 16, 22, BinnieCoreTexture.GUIAnalyst);
addAttribute(WidgetAttribute.MouseOver);
this.root = root;
this.chromosomeType = type;
chromosomeType = type;
this.allele0 = allele0;
this.allele1 = allele1;
}
public boolean isHomozygous() {
return this.allele0.getUID().equals(this.allele1.getUID());
return allele0.getUID().equals(allele1.getUID());
}
@Override
public void onRenderBackground() {
super.onRenderBackground();
CraftGUI.Render.texture(this.isHomozygous() ? this.Homozygous : this.Heterozygous, IPoint.ZERO);
CraftGUI.Render.texture(isHomozygous() ? Homozygous : Heterozygous, IPoint.ZERO);
}
@Override
public void getTooltip(final Tooltip tooltip) {
final BreedingSystem system = Binnie.Genetics.getSystem(this.root);
tooltip.add(system.getChromosomeName(this.chromosomeType));
if (this.isHomozygous()) {
tooltip.add(system.getAlleleName(this.chromosomeType, this.allele0));
}
else {
tooltip.add("Active: " + system.getAlleleName(this.chromosomeType, this.allele0));
tooltip.add("Inactive: " + system.getAlleleName(this.chromosomeType, this.allele1));
public void getTooltip(Tooltip tooltip) {
BreedingSystem system = Binnie.Genetics.getSystem(root);
tooltip.add(system.getChromosomeName(chromosomeType));
if (isHomozygous()) {
tooltip.add(system.getAlleleName(chromosomeType, allele0));
} else {
tooltip.add("Active: " + system.getAlleleName(chromosomeType, allele0));
tooltip.add("Inactive: " + system.getAlleleName(chromosomeType, allele1));
}
}
}
@@ -1,19 +1,15 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import java.text.DecimalFormat;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.geometry.IArea;
public abstract class ControlAnalystPage extends Control
{
public ControlAnalystPage(final IWidget parent, final IArea area) {
import java.text.DecimalFormat;
public abstract class ControlAnalystPage extends Control {
public ControlAnalystPage(IWidget parent, IArea area) {
super(parent, area);
this.hide();
hide();
}
@Override
@@ -22,11 +18,11 @@ public abstract class ControlAnalystPage extends Control
public abstract String getTitle();
protected String getTimeString(final float time) {
final float seconds = time / 20.0f;
final float minutes = seconds / 60.0f;
final float hours = minutes / 60.0f;
final DecimalFormat df = new DecimalFormat("#.0");
protected String getTimeString(float time) {
float seconds = time / 20.0f;
float minutes = seconds / 60.0f;
float hours = minutes / 60.0f;
DecimalFormat df = new DecimalFormat("#.0");
if (hours > 1.0f) {
return df.format(hours) + " hours";
}
@@ -1,76 +1,71 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.Tooltip;
import net.minecraft.util.IIcon;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.CraftGUI;
import forestry.core.render.TextureManager;
import net.minecraftforge.common.BiomeDictionary;
import binnie.core.craftgui.IWidget;
import net.minecraft.world.biome.BiomeGenBase;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.geometry.IPoint;
import forestry.core.render.TextureManager;
import net.minecraft.util.IIcon;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.BiomeDictionary;
public class ControlBiome extends Control implements ITooltip
{
public class ControlBiome extends Control implements ITooltip {
BiomeGenBase biome;
String iconCategory;
public ControlBiome(final IWidget parent, final float x, final float y, final float w, final float h, final BiomeGenBase biome) {
public ControlBiome(IWidget parent, float x, float y, float w, float h, BiomeGenBase biome) {
super(parent, x, y, w, h);
this.biome = null;
this.iconCategory = "plains";
iconCategory = "plains";
this.biome = biome;
}
@Override
public void onRenderBackground() {
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.MOUNTAIN)) {
this.iconCategory = "hills";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.MOUNTAIN)) {
iconCategory = "hills";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.HILLS)) {
this.iconCategory = "hills";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.HILLS)) {
iconCategory = "hills";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.SANDY)) {
this.iconCategory = "desert";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.SANDY)) {
iconCategory = "desert";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.SNOWY)) {
this.iconCategory = "snow";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.SNOWY)) {
iconCategory = "snow";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.FOREST)) {
this.iconCategory = "forest";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FOREST)) {
iconCategory = "forest";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.SWAMP)) {
this.iconCategory = "swamp";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.SWAMP)) {
iconCategory = "swamp";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.JUNGLE)) {
this.iconCategory = "jungle";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.JUNGLE)) {
iconCategory = "jungle";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.COLD) && BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.FOREST)) {
this.iconCategory = "taiga";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.COLD) && BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FOREST)) {
iconCategory = "taiga";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.MUSHROOM)) {
this.iconCategory = "mushroom";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.MUSHROOM)) {
iconCategory = "mushroom";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.OCEAN)) {
this.iconCategory = "ocean";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.OCEAN)) {
iconCategory = "ocean";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.NETHER)) {
this.iconCategory = "nether";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.NETHER)) {
iconCategory = "nether";
}
if (BiomeDictionary.isBiomeOfType(this.biome, BiomeDictionary.Type.END)) {
this.iconCategory = "end";
if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.END)) {
iconCategory = "end";
}
final IIcon icon = TextureManager.getInstance().getDefault("habitats/" + this.iconCategory);
IIcon icon = TextureManager.getInstance().getDefault("habitats/" + iconCategory);
CraftGUI.Render.iconItem(IPoint.ZERO, icon);
}
@Override
public void getTooltip(final Tooltip tooltip) {
tooltip.add(this.biome.biomeName.replaceAll("(\\p{Ll})(\\p{Lu})", "$1 $2"));
public void getTooltip(Tooltip tooltip) {
tooltip.add(biome.biomeName.replaceAll("(\\p{Ll})(\\p{Lu})", "$1 $2"));
}
}
@@ -1,47 +1,42 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.Binnie;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.events.EventValueChanged;
import binnie.core.craftgui.events.EventWidget;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.extrabees.core.ExtraBeeTexture;
import forestry.api.genetics.IChromosomeType;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.controls.core.Control;
public class ControlChromoPicker extends Control implements ITooltip
{
public class ControlChromoPicker extends Control implements ITooltip {
Texture Selected;
Texture Texture;
IChromosomeType type;
ControlChromosome parent;
public ControlChromoPicker(final ControlChromosome parent, final float x, final float y, final IChromosomeType chromo) {
public ControlChromoPicker(ControlChromosome parent, float x, float y, IChromosomeType chromo) {
super(parent, x, y, 16.0f, 16.0f);
this.Selected = new StandardTexture(160, 18, 16, 16, ExtraBeeTexture.GUIPunnett);
this.Texture = new StandardTexture(160, 34, 16, 16, ExtraBeeTexture.GUIPunnett);
this.type = chromo;
this.addAttribute(WidgetAttribute.MouseOver);
Selected = new StandardTexture(160, 18, 16, 16, ExtraBeeTexture.GUIPunnett);
Texture = new StandardTexture(160, 34, 16, 16, ExtraBeeTexture.GUIPunnett);
type = chromo;
addAttribute(WidgetAttribute.MouseOver);
this.parent = parent;
this.addSelfEventHandler(new EventWidget.StartMouseOver.Handler() {
addSelfEventHandler(new EventWidget.StartMouseOver.Handler() {
@Override
public void onEvent(final EventWidget.StartMouseOver event) {
ControlChromoPicker.this.callEvent(new EventValueChanged<Object>(ControlChromoPicker.this.getWidget(), ControlChromoPicker.this.type));
public void onEvent(EventWidget.StartMouseOver event) {
callEvent(new EventValueChanged<Object>(getWidget(), type));
}
});
this.addSelfEventHandler(new EventWidget.EndMouseOver.Handler() {
addSelfEventHandler(new EventWidget.EndMouseOver.Handler() {
@Override
public void onEvent(final EventWidget.EndMouseOver event) {
ControlChromoPicker.this.callEvent(new EventValueChanged<Object>(ControlChromoPicker.this.getWidget(), null));
public void onEvent(EventWidget.EndMouseOver event) {
callEvent(new EventValueChanged<>(getWidget(), null));
}
});
}
@@ -49,13 +44,13 @@ public class ControlChromoPicker extends Control implements ITooltip
@Override
public void onRenderBackground() {
super.onRenderBackground();
final boolean selected = this.isMouseOver();
final Texture text = selected ? this.Selected : this.Texture;
boolean selected = isMouseOver();
Texture text = selected ? Selected : Texture;
CraftGUI.Render.texture(text, IPoint.ZERO);
}
@Override
public void getTooltip(final Tooltip tooltip) {
tooltip.add(Binnie.Genetics.getSystem(this.parent.getRoot()).getChromosomeName(this.type));
public void getTooltip(Tooltip tooltip) {
tooltip.add(Binnie.Genetics.getSystem(parent.getRoot()).getChromosomeName(type));
}
}
@@ -1,27 +1,22 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.CraftGUI;
import forestry.api.lepidopterology.EnumButterflyChromosome;
import binnie.botany.api.EnumFlowerChromosome;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.apiculture.EnumBeeChromosome;
import binnie.Binnie;
import binnie.botany.api.EnumFlowerChromosome;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.resource.Texture;
import binnie.core.craftgui.resource.minecraft.StandardTexture;
import binnie.core.texture.BinnieCoreTexture;
import binnie.core.craftgui.IWidget;
import forestry.api.genetics.ISpeciesRoot;
import binnie.core.craftgui.resource.Texture;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.arboriculture.EnumTreeChromosome;
import forestry.api.genetics.IChromosomeType;
import binnie.core.craftgui.controls.core.IControlValue;
import binnie.core.craftgui.controls.core.Control;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.lepidopterology.EnumButterflyChromosome;
public class ControlChromosome extends Control implements IControlValue<IChromosomeType>
{
public class ControlChromosome extends Control implements IControlValue<IChromosomeType> {
Texture BeeTexture;
Texture TreeTexture;
Texture MothTexture;
@@ -29,24 +24,24 @@ public class ControlChromosome extends Control implements IControlValue<IChromos
IChromosomeType chromo;
ISpeciesRoot species;
public ControlChromosome(final IWidget parent, final float x, final float y) {
public ControlChromosome(IWidget parent, float x, float y) {
super(parent, x, y, 96.0f, 96.0f);
this.BeeTexture = new StandardTexture(0, 0, 96, 96, BinnieCoreTexture.GUIBreeding);
this.TreeTexture = new StandardTexture(96, 0, 96, 96, BinnieCoreTexture.GUIBreeding);
this.MothTexture = new StandardTexture(96, 96, 96, 96, BinnieCoreTexture.GUIBreeding);
this.FlowerTexture = new StandardTexture(0, 96, 96, 96, BinnieCoreTexture.GUIBreeding);
this.chromo = null;
this.species = null;
BeeTexture = new StandardTexture(0, 0, 96, 96, BinnieCoreTexture.GUIBreeding);
TreeTexture = new StandardTexture(96, 0, 96, 96, BinnieCoreTexture.GUIBreeding);
MothTexture = new StandardTexture(96, 96, 96, 96, BinnieCoreTexture.GUIBreeding);
FlowerTexture = new StandardTexture(0, 96, 96, 96, BinnieCoreTexture.GUIBreeding);
chromo = null;
species = null;
}
public ISpeciesRoot getRoot() {
return this.species;
return species;
}
public void setRoot(final ISpeciesRoot root) {
if (root != this.species) {
this.species = root;
this.deleteAllChildren();
public void setRoot(ISpeciesRoot root) {
if (root != species) {
species = root;
deleteAllChildren();
if (root == Binnie.Genetics.getBeeRoot()) {
new ControlChromoPicker(this, 28.0f, 47.0f, EnumBeeChromosome.SPECIES);
new ControlChromoPicker(this, 28.0f, 72.0f, EnumBeeChromosome.SPEED);
@@ -61,8 +56,7 @@ public class ControlChromosome extends Control implements IControlValue<IChromos
new ControlChromoPicker(this, 83.0f, 27.0f, EnumBeeChromosome.FLOWERING);
new ControlChromoPicker(this, 71.0f, 10.0f, EnumBeeChromosome.TERRITORY);
new ControlChromoPicker(this, 84.0f, 54.0f, EnumBeeChromosome.EFFECT);
}
else if (root == Binnie.Genetics.getTreeRoot()) {
} else if (root == Binnie.Genetics.getTreeRoot()) {
new ControlChromoPicker(this, 48.0f, 48.0f, EnumTreeChromosome.SPECIES);
new ControlChromoPicker(this, 43.0f, 12.0f, EnumTreeChromosome.GROWTH);
new ControlChromoPicker(this, 43.0f, 84.0f, EnumTreeChromosome.HEIGHT);
@@ -76,8 +70,7 @@ public class ControlChromosome extends Control implements IControlValue<IChromos
new ControlChromoPicker(this, 70.0f, 34.0f, EnumTreeChromosome.MATURATION);
new ControlChromoPicker(this, 45.0f, 67.0f, EnumTreeChromosome.GIRTH);
new ControlChromoPicker(this, 5.0f, 70.0f, EnumTreeChromosome.FIREPROOF);
}
else if (root == Binnie.Genetics.getFlowerRoot()) {
} else if (root == Binnie.Genetics.getFlowerRoot()) {
new ControlChromoPicker(this, 35.0f, 81.0f, EnumFlowerChromosome.SPECIES);
new ControlChromoPicker(this, 36.0f, 28.0f, EnumFlowerChromosome.PRIMARY);
new ControlChromoPicker(this, 27.0f, 13.0f, EnumFlowerChromosome.SECONDARY);
@@ -90,8 +83,7 @@ public class ControlChromosome extends Control implements IControlValue<IChromos
new ControlChromoPicker(this, 54.0f, 80.0f, EnumFlowerChromosome.PH_TOLERANCE);
new ControlChromoPicker(this, 41.0f, 42.0f, EnumFlowerChromosome.SAPPINESS);
new ControlChromoPicker(this, 37.0f, 63.0f, EnumFlowerChromosome.STEM);
}
else if (root == Binnie.Genetics.getButterflyRoot()) {
} else if (root == Binnie.Genetics.getButterflyRoot()) {
new ControlChromoPicker(this, 40.0f, 40.0f, EnumButterflyChromosome.SPECIES);
new ControlChromoPicker(this, 63.0f, 32.0f, EnumButterflyChromosome.SIZE);
new ControlChromoPicker(this, 32.0f, 63.0f, EnumButterflyChromosome.SPEED);
@@ -112,36 +104,36 @@ public class ControlChromosome extends Control implements IControlValue<IChromos
@Override
public IChromosomeType getValue() {
return this.chromo;
return chromo;
}
@Override
public void setValue(final IChromosomeType value) {
this.chromo = value;
public void setValue(IChromosomeType value) {
chromo = value;
}
@Override
public void onRenderBackground() {
if (this.species == null) {
if (species == null) {
return;
}
super.onRenderBackground();
final Texture text = this.getTypeTexture();
Texture text = getTypeTexture();
CraftGUI.Render.texture(text, IPoint.ZERO);
}
private Texture getTypeTexture() {
if (this.species == Binnie.Genetics.getBeeRoot()) {
return this.BeeTexture;
if (species == Binnie.Genetics.getBeeRoot()) {
return BeeTexture;
}
if (this.species == Binnie.Genetics.getTreeRoot()) {
return this.TreeTexture;
if (species == Binnie.Genetics.getTreeRoot()) {
return TreeTexture;
}
if (this.species == Binnie.Genetics.getButterflyRoot()) {
return this.MothTexture;
if (species == Binnie.Genetics.getButterflyRoot()) {
return MothTexture;
}
if (this.species == Binnie.Genetics.getFlowerRoot()) {
return this.FlowerTexture;
if (species == Binnie.Genetics.getFlowerRoot()) {
return FlowerTexture;
}
return null;
}
@@ -1,36 +1,31 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.controls.listbox.ControlList;
import binnie.core.genetics.Gene;
import binnie.core.craftgui.controls.listbox.ControlOption;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.TextJustification;
import binnie.core.genetics.Gene;
public class ControlGenesisOption extends ControlOption<Gene>
{
public ControlGenesisOption(final ControlList<Gene> parent, final Gene gene, final int y) {
public class ControlGenesisOption extends ControlOption<Gene> {
public ControlGenesisOption(ControlList<Gene> parent, Gene gene, int y) {
super(parent, gene, y);
}
String getAlleleName() {
return this.getValue().getAlleleName();
return getValue().getAlleleName();
}
String getChromosomeName() {
return this.getValue().getShortChromosomeName();
return getValue().getShortChromosomeName();
}
@Override
public void onRenderBackground() {
super.onRenderBackground();
CraftGUI.Render.text(new IArea(0.0f, 0.0f, 70.0f, 22.0f), TextJustification.MiddleCenter, this.getChromosomeName(), this.getColor());
CraftGUI.Render.text(new IArea(75.0f, 0.0f, 80.0f, 22.0f), TextJustification.MiddleCenter, this.getAlleleName(), this.getColor());
CraftGUI.Render.solid(new IArea(70.0f, 2.0f, 1.0f, 16.0f), -16777216 + this.getColor());
CraftGUI.Render.text(new IArea(0.0f, 0.0f, 70.0f, 22.0f), TextJustification.MiddleCenter, getChromosomeName(), getColor());
CraftGUI.Render.text(new IArea(75.0f, 0.0f, 80.0f, 22.0f), TextJustification.MiddleCenter, getAlleleName(), getColor());
CraftGUI.Render.solid(new IArea(70.0f, 2.0f, 1.0f, 16.0f), 0xff000000 + getColor());
}
}
@@ -1,39 +1,34 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import net.minecraft.item.ItemStack;
import forestry.api.genetics.AlleleManager;
import binnie.core.craftgui.Tooltip;
import binnie.core.genetics.BreedingSystem;
import binnie.Binnie;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.minecraft.control.ControlItemDisplay;
import binnie.core.genetics.BreedingSystem;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IIndividual;
import net.minecraft.item.ItemStack;
public class ControlIndividualDisplay extends ControlItemDisplay implements ITooltip
{
public ControlIndividualDisplay(final IWidget parent, final float x, final float y, final IIndividual ind) {
public class ControlIndividualDisplay extends ControlItemDisplay implements ITooltip {
public ControlIndividualDisplay(IWidget parent, float x, float y, IIndividual ind) {
this(parent, x, y, 16.0f, ind);
}
public ControlIndividualDisplay(final IWidget parent, final float x, final float y, final float size, final IIndividual ind) {
public ControlIndividualDisplay(IWidget parent, float x, float y, float size, IIndividual ind) {
super(parent, x, y, size);
final BreedingSystem system = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
this.setItemStack(system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType()));
this.setTooltip();
BreedingSystem system = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
setItemStack(system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType()));
setTooltip();
}
@Override
public void getTooltip(final Tooltip tooltip) {
final ItemStack stack = this.getItemStack();
public void getTooltip(Tooltip tooltip) {
ItemStack stack = getItemStack();
if (stack == null) {
return;
}
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
if (ind == null) {
return;
}
@@ -1,7 +1,3 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.CraftGUI;
@@ -19,62 +15,61 @@ import net.minecraft.util.EnumChatFormatting;
import java.util.EnumSet;
public abstract class ControlToleranceBar<T extends Enum<T>> extends Control implements ITooltip
{
private Class<T> enumClass;
public abstract class ControlToleranceBar<T extends Enum<T>> extends Control implements ITooltip {
EnumSet<T> tolerated;
EnumSet<T> fullSet;
private Class<T> enumClass;
public ControlToleranceBar(final IWidget parent, final float x, final float y, final float width, final float height, final Class<T> clss) {
public ControlToleranceBar(IWidget parent, float x, float y, float width, float height, Class<T> clss) {
super(parent, x, y, width, height);
this.addAttribute(WidgetAttribute.MouseOver);
this.enumClass = clss;
this.tolerated = EnumSet.noneOf(this.enumClass);
this.fullSet = EnumSet.allOf(this.enumClass);
if (this.enumClass == EnumTemperature.class) {
this.fullSet.remove(EnumTemperature.NONE);
addAttribute(WidgetAttribute.MouseOver);
enumClass = clss;
tolerated = EnumSet.noneOf(enumClass);
fullSet = EnumSet.allOf(enumClass);
if (enumClass == EnumTemperature.class) {
fullSet.remove(EnumTemperature.NONE);
}
}
@Override
public void getTooltip(final Tooltip tooltip) {
final int types = this.fullSet.size();
final int type = (int) ((int) this.getRelativeMousePosition().x() / (this.getSize().x() / types));
for (final T tol : this.fullSet) {
if (tol.ordinal() - ((this.enumClass == EnumTemperature.class) ? 1 : 0) == type) {
tooltip.add((this.tolerated.contains(tol) ? "" : EnumChatFormatting.DARK_GRAY) + this.getName(tol));
public void getTooltip(Tooltip tooltip) {
int types = fullSet.size();
int type = (int) ((int) getRelativeMousePosition().x() / (getSize().x() / types));
for (T tol : fullSet) {
if (tol.ordinal() - ((enumClass == EnumTemperature.class) ? 1 : 0) == type) {
tooltip.add((tolerated.contains(tol) ? "" : EnumChatFormatting.DARK_GRAY) + getName(tol));
}
}
}
protected abstract String getName(final T p0);
protected abstract String getName(T p0);
protected abstract int getColour(final T p0);
protected abstract int getColour(T p0);
@Override
public void onRenderBackground() {
CraftGUI.Render.gradientRect(this.getArea(), -1431655766, -1431655766);
final float w = this.getArea().w() / this.fullSet.size();
CraftGUI.Render.gradientRect(getArea(), -1431655766, -1431655766);
float w = getArea().w() / fullSet.size();
int t = 0;
for (final T value : this.fullSet) {
final int col = (this.tolerated.contains(value) ? -16777216 : 855638016) + this.getColour(value);
final IBorder inset = new IBorder(this.tolerated.contains(value) ? 1.0f : 3.0f);
CraftGUI.Render.gradientRect(new IArea(w * t, 0.0f, w, this.h()).inset(inset), col, col);
for (T value : fullSet) {
int col = (tolerated.contains(value) ? -16777216 : 855638016) + getColour(value);
IBorder inset = new IBorder(tolerated.contains(value) ? 1.0f : 3.0f);
CraftGUI.Render.gradientRect(new IArea(w * t, 0.0f, w, h()).inset(inset), col, col);
++t;
}
}
public void setValues(final T value, final EnumTolerance enumTol) {
this.tolerated.clear();
final Tolerance tol = Tolerance.get(enumTol);
for (final T full : this.fullSet) {
public void setValues(T value, EnumTolerance enumTol) {
tolerated.clear();
Tolerance tol = Tolerance.get(enumTol);
for (T full : fullSet) {
if (full.ordinal() > value.ordinal() + tol.getBounds()[1]) {
continue;
}
if (full.ordinal() < value.ordinal() + tol.getBounds()[0]) {
continue;
}
this.tolerated.add(full);
tolerated.add(full);
}
}
}
@@ -1,21 +1,17 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.ITooltip;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.controls.core.Control;
public class ControlTooltip extends Control implements ITooltip
{
public ControlTooltip(final IWidget parent, final float x, final float y, final float w, final float h) {
public class ControlTooltip extends Control implements ITooltip {
public ControlTooltip(IWidget parent, float x, float y, float w, float h) {
super(parent, x, y, w, h);
}
@Override
public void getTooltip(final Tooltip tooltip) {
public void getTooltip(Tooltip tooltip) {
// ignored
}
}
@@ -1,84 +1,81 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.gui;
import forestry.api.genetics.AlleleManager;
import forestry.api.lepidopterology.IButterfly;
import binnie.botany.api.IFlower;
import forestry.api.apiculture.IBee;
import forestry.api.arboriculture.ITree;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.events.EventKey;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.controls.scroll.ControlScrollBar;
import binnie.core.craftgui.minecraft.MinecraftGUI;
import binnie.core.craftgui.minecraft.InventoryType;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.resource.minecraft.CraftGUITexture;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.events.EventMouse;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.Widget;
import forestry.api.genetics.IBreedingTracker;
import binnie.Binnie;
import binnie.genetics.machine.ModuleMachine;
import binnie.genetics.item.GeneticsItems;
import binnie.genetics.machine.Analyser;
import net.minecraft.item.ItemStack;
import binnie.botany.api.IFlower;
import binnie.core.AbstractMod;
import binnie.core.craftgui.CraftGUI;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.Tooltip;
import binnie.core.craftgui.Widget;
import binnie.core.craftgui.WidgetAttribute;
import binnie.core.craftgui.controls.ControlTextCentered;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.controls.scroll.ControlScrollBar;
import binnie.core.craftgui.controls.scroll.ControlScrollableContent;
import binnie.core.craftgui.events.EventKey;
import binnie.core.craftgui.events.EventMouse;
import binnie.core.craftgui.geometry.IArea;
import binnie.core.craftgui.geometry.IPoint;
import binnie.core.craftgui.geometry.Position;
import binnie.core.craftgui.minecraft.InventoryType;
import binnie.core.craftgui.minecraft.MinecraftGUI;
import binnie.core.craftgui.minecraft.Window;
import binnie.core.craftgui.minecraft.control.ControlPlayerInventory;
import binnie.core.craftgui.minecraft.control.ControlSlide;
import binnie.core.craftgui.minecraft.control.ControlSlot;
import binnie.core.craftgui.resource.minecraft.CraftGUITexture;
import binnie.core.craftgui.window.Panel;
import binnie.core.genetics.BreedingSystem;
import binnie.core.machines.inventory.SlotValidator;
import binnie.genetics.Genetics;
import binnie.core.AbstractMod;
import java.util.ArrayList;
import binnie.genetics.item.GeneticsItems;
import binnie.genetics.machine.Analyser;
import binnie.genetics.machine.ModuleMachine;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.inventory.IInventory;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.genetics.BreedingSystem;
import forestry.api.apiculture.IBee;
import forestry.api.arboriculture.ITree;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IBreedingTracker;
import forestry.api.genetics.IIndividual;
import binnie.core.craftgui.minecraft.control.ControlSlide;
import binnie.core.craftgui.geometry.IArea;
import java.util.List;
import binnie.core.craftgui.window.Panel;
import binnie.core.craftgui.controls.core.Control;
import binnie.core.craftgui.controls.scroll.ControlScrollableContent;
import binnie.core.craftgui.IWidget;
import binnie.core.craftgui.minecraft.Window;
import forestry.api.lepidopterology.IButterfly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
public class WindowAnalyst extends Window {
protected IWidget baseWidget;
protected ControlScrollableContent leftPage;
protected ControlScrollableContent rightPage;
protected Control tabBar;
protected Panel analystPanel;
protected List<ControlAnalystPage> analystPages;
protected IArea analystPageSize;
protected boolean isDatabase;
protected boolean isMaster;
protected boolean lockedSearch;
protected IIndividual current;
protected BreedingSystem currentSystem;
public class WindowAnalyst extends Window
{
IWidget baseWidget;
ControlScrollableContent leftPage;
ControlScrollableContent rightPage;
Control tabBar;
Panel analystPanel;
List<ControlAnalystPage> analystPages;
IArea analystPageSize;
boolean isDatabase;
boolean isMaster;
boolean lockedSearch;
private Control analystNone;
private ControlSlide slideUpInv;
IIndividual current;
BreedingSystem currentSystem;
public WindowAnalyst(final EntityPlayer player, final IInventory inventory, final Side side, final boolean database, final boolean master) {
public WindowAnalyst(EntityPlayer player, IInventory inventory, Side side, boolean database, boolean master) {
super(312.0f, 230.0f, player, inventory, side);
this.baseWidget = null;
this.tabBar = null;
this.analystPages = new ArrayList<ControlAnalystPage>();
this.analystPageSize = null;
this.isDatabase = false;
this.isMaster = false;
this.lockedSearch = false;
this.current = null;
this.currentSystem = null;
this.isDatabase = database;
this.isMaster = master;
this.lockedSearch = this.isDatabase;
baseWidget = null;
tabBar = null;
analystPages = new ArrayList<>();
analystPageSize = null;
isDatabase = false;
isMaster = false;
lockedSearch = false;
current = null;
currentSystem = null;
isDatabase = database;
isMaster = master;
lockedSearch = isDatabase;
}
@Override
@@ -92,158 +89,157 @@ public class WindowAnalyst extends Window
}
private void setupValidators() {
if (!this.isDatabase) {
this.getWindowInventory().setValidator(0, new SlotValidator.Individual() {
if (!isDatabase) {
getWindowInventory().setValidator(0, new SlotValidator.Individual() {
@Override
public boolean isValid(final ItemStack itemStack) {
return Analyser.isAnalysed(itemStack) || (Analyser.isAnalysable(itemStack) && WindowAnalyst.this.getWindowInventory().getStackInSlot(1) != null);
public boolean isValid(ItemStack itemStack) {
return Analyser.isAnalysed(itemStack) || (Analyser.isAnalysable(itemStack) && getWindowInventory().getStackInSlot(1) != null);
}
});
this.getWindowInventory().setValidator(1, new SlotValidator.Item(GeneticsItems.DNADye.get(1), ModuleMachine.IconDye));
getWindowInventory().setValidator(1, new SlotValidator.Item(GeneticsItems.DNADye.get(1), ModuleMachine.IconDye));
}
}
@Override
public void initialiseServer() {
for (final BreedingSystem system : Binnie.Genetics.getActiveSystems()) {
final IBreedingTracker tracker = system.getSpeciesRoot().getBreedingTracker(this.getWorld(), this.getUsername());
for (BreedingSystem system : Binnie.Genetics.getActiveSystems()) {
IBreedingTracker tracker = system.getSpeciesRoot().getBreedingTracker(getWorld(), getUsername());
if (tracker != null) {
tracker.synchToPlayer(this.getPlayer());
tracker.synchToPlayer(getPlayer());
}
}
this.setupValidators();
setupValidators();
}
@Override
public void initialiseClient() {
this.setTitle(this.isDatabase ? (this.isMaster ? "Master Registry" : "Registry") : "Analyst");
final BreedingSystem system = Binnie.Genetics.beeBreedingSystem;
final IIndividual ind = system.getDefaultIndividual();
final ItemStack stack = system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType());
this.getWindowInventory().createSlot(0);
this.baseWidget = new Widget(this);
setTitle(isDatabase ? (isMaster ? "Master Registry" : "Registry") : "Analyst");
BreedingSystem system = Binnie.Genetics.beeBreedingSystem;
IIndividual ind = system.getDefaultIndividual();
ItemStack stack = system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType());
getWindowInventory().createSlot(0);
baseWidget = new Widget(this);
int x = 16;
final int y = 28;
if (this.isDatabase) {
for (final BreedingSystem syst : Binnie.Genetics.getActiveSystems()) {
int y = 28;
if (isDatabase) {
for (BreedingSystem syst : Binnie.Genetics.getActiveSystems()) {
new Control(this, x, y, 20.0f, 20.0f) {
@Override
public void initialise() {
this.addAttribute(WidgetAttribute.MouseOver);
this.addSelfEventHandler(new EventMouse.Down.Handler() {
addAttribute(WidgetAttribute.MouseOver);
addSelfEventHandler(new EventMouse.Down.Handler() {
@Override
public void onEvent(final EventMouse.Down event) {
WindowAnalyst.this.setSystem(syst);
public void onEvent(EventMouse.Down event) {
setSystem(syst);
}
});
}
@Override
public void getTooltip(final Tooltip tooltip) {
public void getTooltip(Tooltip tooltip) {
tooltip.add(syst.getName());
}
@Override
public void onRenderBackground() {
CraftGUI.Render.colour(syst.getColour());
final int outset = (WindowAnalyst.this.getSystem() == syst) ? 1 : 0;
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea().outset(outset));
if (WindowAnalyst.this.getSystem() == syst) {
int outset = (getSystem() == syst) ? 1 : 0;
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea().outset(outset));
if (getSystem() == syst) {
CraftGUI.Render.colour(1140850688 + syst.getColour());
CraftGUI.Render.texture(CraftGUITexture.TabSolid, this.getArea().outset(outset));
CraftGUI.Render.texture(CraftGUITexture.TabSolid, getArea().outset(outset));
}
CraftGUI.Render.item(new IPoint(2.0f, 2.0f), syst.getItemStackRepresentative());
}
};
x += 22;
}
}
else {
} else {
new ControlSlot(this, x, y + 1).assign(InventoryType.Window, 0);
x += 22;
new ControlSlot(this, x, y + 1).assign(InventoryType.Window, 1);
x += 26;
this.setupValidators();
setupValidators();
}
this.tabBar = new Control(this, x, 28.0f, this.w() - 16.0f - x, 20.0f);
this.analystPanel = new Panel(this, 16.0f, 54.0f, 280.0f, 164.0f, MinecraftGUI.PanelType.Outline) {
tabBar = new Control(this, x, 28.0f, w() - 16.0f - x, 20.0f);
analystPanel = new Panel(this, 16.0f, 54.0f, 280.0f, 164.0f, MinecraftGUI.PanelType.Outline) {
@Override
public void onRenderBackground() {
CraftGUI.Render.gradientRect(this.getArea(), 1157627903, 1728053247);
CraftGUI.Render.gradientRect(getArea(), 0x44ffffff, 0x66ffffff);
super.onRenderBackground();
}
@Override
public void initialise() {
this.setColor(4473924);
final float sectionWidth = (this.w() - 8.0f - 4.0f) / 2.0f;
WindowAnalyst.this.leftPage = new ControlScrollableContent<IWidget>(this, 3.0f, 3.0f, sectionWidth + 2.0f, this.h() - 8.0f + 2.0f, 0.0f) {
setColor(0x444444);
float sectionWidth = (w() - 8.0f - 4.0f) / 2.0f;
leftPage = new ControlScrollableContent<IWidget>(this, 3.0f, 3.0f, sectionWidth + 2.0f, h() - 8.0f + 2.0f, 0.0f) {
@Override
public void onRenderBackground() {
if (this.getContent() == null) {
if (getContent() == null) {
return;
}
CraftGUI.Render.colour(this.getContent().getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea());
CraftGUI.Render.colour(getContent().getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea());
}
};
new ControlScrollBar(this, sectionWidth + 2.0f - 3.0f, 6.0f, 3.0f, this.h() - 8.0f + 2.0f - 6.0f, WindowAnalyst.this.leftPage) {
new ControlScrollBar(this, sectionWidth + 2.0f - 3.0f, 6.0f, 3.0f, h() - 8.0f + 2.0f - 6.0f, leftPage) {
@Override
public void onRenderBackground() {
if (!this.isEnabled()) {
if (!isEnabled()) {
return;
}
if (WindowAnalyst.this.leftPage.getContent() == null) {
if (leftPage.getContent() == null) {
return;
}
CraftGUI.Render.gradientRect(this.getArea(), 1140850688 + WindowAnalyst.this.leftPage.getContent().getColor(), 1140850688 + WindowAnalyst.this.leftPage.getContent().getColor());
CraftGUI.Render.solid(this.getRenderArea(), WindowAnalyst.this.leftPage.getContent().getColor());
CraftGUI.Render.gradientRect(getArea(), 1140850688 + leftPage.getContent().getColor(), 0x44000000 + leftPage.getContent().getColor());
CraftGUI.Render.solid(getRenderArea(), leftPage.getContent().getColor());
}
};
WindowAnalyst.this.rightPage = new ControlScrollableContent<IWidget>(this, 3.0f + sectionWidth + 4.0f, 3.0f, sectionWidth + 2.0f, this.h() - 8.0f + 2.0f, 0.0f) {
rightPage = new ControlScrollableContent<IWidget>(this, 3.0f + sectionWidth + 4.0f, 3.0f, sectionWidth + 2.0f, h() - 8.0f + 2.0f, 0.0f) {
@Override
public void onRenderBackground() {
if (this.getContent() == null) {
if (getContent() == null) {
return;
}
CraftGUI.Render.colour(this.getContent().getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea());
CraftGUI.Render.colour(getContent().getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea());
}
};
new ControlScrollBar(this, sectionWidth + 2.0f - 3.0f + sectionWidth + 4.0f, 6.0f, 3.0f, this.h() - 8.0f + 2.0f - 6.0f, WindowAnalyst.this.rightPage) {
new ControlScrollBar(this, sectionWidth + 2.0f - 3.0f + sectionWidth + 4.0f, 6.0f, 3.0f, h() - 8.0f + 2.0f - 6.0f, rightPage) {
@Override
public void onRenderBackground() {
if (!this.isEnabled()) {
if (!isEnabled()) {
return;
}
if (WindowAnalyst.this.rightPage.getContent() == null) {
if (rightPage.getContent() == null) {
return;
}
CraftGUI.Render.gradientRect(this.getArea(), 1140850688 + WindowAnalyst.this.rightPage.getContent().getColor(), 1140850688 + WindowAnalyst.this.rightPage.getContent().getColor());
CraftGUI.Render.solid(this.getRenderArea(), WindowAnalyst.this.rightPage.getContent().getColor());
CraftGUI.Render.gradientRect(getArea(), 1140850688 + rightPage.getContent().getColor(), 0x44000000 + rightPage.getContent().getColor());
CraftGUI.Render.solid(getRenderArea(), rightPage.getContent().getColor());
}
};
WindowAnalyst.this.analystPageSize = new IArea(1.0f, 1.0f, sectionWidth, this.h() - 8.0f);
analystPageSize = new IArea(1.0f, 1.0f, sectionWidth, h() - 8.0f);
}
};
if (!this.isDatabase) {
this.slideUpInv = new ControlSlide(this, (this.getSize().x() - 244.0f) / 2.0f, this.getSize().y() - 80.0f + 1.0f, 244.0f, 80.0f, Position.Bottom);
new ControlPlayerInventory(this.slideUpInv, true);
this.slideUpInv.setSlide(false);
if (!isDatabase) {
slideUpInv = new ControlSlide(this, (getSize().x() - 244.0f) / 2.0f, getSize().y() - 80.0f + 1.0f, 244.0f, 80.0f, Position.Bottom);
new ControlPlayerInventory(slideUpInv, true);
slideUpInv.setSlide(false);
}
this.addEventHandler(new EventKey.Down.Handler() {
addEventHandler(new EventKey.Down.Handler() {
@Override
public void onEvent(final EventKey.Down event) {
public void onEvent(EventKey.Down event) {
if (event.getKey() == 205) {
WindowAnalyst.this.shiftPages(true);
shiftPages(true);
}
if (event.getKey() == 203) {
WindowAnalyst.this.shiftPages(false);
shiftPages(false);
}
}
});
if (!this.isDatabase) {
this.analystNone = new Control(this.analystPanel, 0.0f, 0.0f, this.analystPanel.w(), this.analystPanel.h()) {
if (!isDatabase) {
analystNone = new Control(analystPanel, 0.0f, 0.0f, analystPanel.w(), analystPanel.h()) {
@Override
public void initialise() {
new ControlTextCentered(this, 20.0f, "Add a bee, tree, flower or butterfly to the top left slot. DNA Dye is required if it has not been analysed yet. This dye can also convert vanilla items to breedable individuals.").setColor(4473924);
@@ -251,130 +247,94 @@ public class WindowAnalyst extends Window
}
};
}
this.setIndividual(null);
this.setSystem(Binnie.Genetics.beeBreedingSystem);
setIndividual(null);
setSystem(Binnie.Genetics.beeBreedingSystem);
}
public void setIndividual(final IIndividual ind) {
if (!this.isDatabase) {
if (ind == null) {
this.analystNone.show();
this.slideUpInv.hide();
}
else {
this.analystNone.hide();
this.slideUpInv.show();
}
}
if (ind == this.current || (ind != null && this.current != null && ind.isGeneticEqual(this.current))) {
return;
}
final boolean systemChange = (this.current = ind) != null && ind.getGenome().getSpeciesRoot() != this.getSystem().getSpeciesRoot();
if (systemChange) {
this.currentSystem = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
}
this.updatePages(systemChange);
}
public void setSystem(final BreedingSystem system) {
if (system == this.currentSystem) {
return;
}
this.currentSystem = system;
this.current = null;
this.updatePages(true);
}
public void updatePages(final boolean systemChange) {
public void updatePages(boolean systemChange) {
int oldLeft = -1;
int oldRight = -1;
if (!systemChange) {
oldLeft = this.analystPages.indexOf(this.leftPage.getContent());
oldRight = this.analystPages.indexOf(this.rightPage.getContent());
oldLeft = analystPages.indexOf(leftPage.getContent());
oldRight = analystPages.indexOf(rightPage.getContent());
}
ControlAnalystPage databasePage = null;
if (this.isDatabase && !systemChange) {
databasePage = ((this.analystPages.size() > 0) ? this.analystPages.get(0) : null);
if (isDatabase && !systemChange) {
databasePage = ((analystPages.size() > 0) ? analystPages.get(0) : null);
}
this.analystPages.clear();
this.setPage(this.leftPage, null);
this.setPage(this.rightPage, null);
if (this.isDatabase) {
this.analystPages.add((databasePage != null) ? databasePage : new AnalystPageDatabase(this.analystPanel, this.analystPageSize, this.currentSystem, this.isMaster));
analystPages.clear();
setPage(leftPage, null);
setPage(rightPage, null);
if (isDatabase) {
analystPages.add((databasePage != null) ? databasePage : new AnalystPageDatabase(analystPanel, analystPageSize, currentSystem, isMaster));
}
if (this.current != null) {
this.analystPages.add(new AnalystPageDescription(this.analystPanel, this.analystPageSize, this.current));
this.analystPages.add(new AnalystPageGenome(this.analystPanel, this.analystPageSize, true, this.current));
if (!this.isDatabase) {
this.analystPages.add(new AnalystPageGenome(this.analystPanel, this.analystPageSize, false, this.current));
this.analystPages.add(new AnalystPageKaryogram(this.analystPanel, this.analystPageSize, this.current));
if (current != null) {
analystPages.add(new AnalystPageDescription(analystPanel, analystPageSize, current));
analystPages.add(new AnalystPageGenome(analystPanel, analystPageSize, true, current));
if (!isDatabase) {
analystPages.add(new AnalystPageGenome(analystPanel, analystPageSize, false, current));
analystPages.add(new AnalystPageKaryogram(analystPanel, analystPageSize, current));
}
if (!(this.current instanceof ITree)) {
this.analystPages.add(new AnalystPageClimate(this.analystPanel, this.analystPageSize, this.current));
if (!(current instanceof ITree)) {
analystPages.add(new AnalystPageClimate(analystPanel, analystPageSize, current));
}
if (this.current instanceof IBee) {
this.analystPages.add(new AnalystPageProducts(this.analystPanel, this.analystPageSize, (IBee) this.current));
if (current instanceof IBee) {
analystPages.add(new AnalystPageProducts(analystPanel, analystPageSize, (IBee) current));
} else if (current instanceof ITree) {
analystPages.add(new AnalystPageFruit(analystPanel, analystPageSize, (ITree) current));
analystPages.add(new AnalystPageWood(analystPanel, analystPageSize, (ITree) current));
} else if (current instanceof IFlower) {
analystPages.add(new AnalystPageSoil(analystPanel, analystPageSize, (IFlower) current));
} else if (current instanceof IButterfly) {
analystPages.add(new AnalystPageSpecimen(analystPanel, analystPageSize, (IButterfly) current));
}
else if (this.current instanceof ITree) {
this.analystPages.add(new AnalystPageFruit(this.analystPanel, this.analystPageSize, (ITree) this.current));
this.analystPages.add(new AnalystPageWood(this.analystPanel, this.analystPageSize, (ITree) this.current));
analystPages.add(new AnalystPageBiology(analystPanel, analystPageSize, current));
if (current instanceof IBee || current instanceof IButterfly) {
analystPages.add(new AnalystPageBehaviour(analystPanel, analystPageSize, current));
} else if (current instanceof ITree) {
analystPages.add(new AnalystPageGrowth(analystPanel, analystPageSize, current));
} else if (current instanceof IFlower) {
analystPages.add(new AnalystPageAppearance(analystPanel, analystPageSize, (IFlower) current));
}
else if (this.current instanceof IFlower) {
this.analystPages.add(new AnalystPageSoil(this.analystPanel, this.analystPageSize, (IFlower) this.current));
}
else if (this.current instanceof IButterfly) {
this.analystPages.add(new AnalystPageSpecimen(this.analystPanel, this.analystPageSize, (IButterfly) this.current));
}
this.analystPages.add(new AnalystPageBiology(this.analystPanel, this.analystPageSize, this.current));
if (this.current instanceof IBee || this.current instanceof IButterfly) {
this.analystPages.add(new AnalystPageBehaviour(this.analystPanel, this.analystPageSize, this.current));
}
else if (this.current instanceof ITree) {
this.analystPages.add(new AnalystPageGrowth(this.analystPanel, this.analystPageSize, this.current));
}
else if (this.current instanceof IFlower) {
this.analystPages.add(new AnalystPageAppearance(this.analystPanel, this.analystPageSize, (IFlower) this.current));
}
this.analystPages.add(new AnalystPageMutations(this.analystPanel, this.analystPageSize, this.current, this.isMaster));
analystPages.add(new AnalystPageMutations(analystPanel, analystPageSize, current, isMaster));
}
this.tabBar.deleteAllChildren();
final float width = this.tabBar.w() / this.analystPages.size();
tabBar.deleteAllChildren();
float width = tabBar.w() / analystPages.size();
float x = 0.0f;
for (final ControlAnalystPage page : this.analystPages) {
new ControlTooltip(this.tabBar, x, 0.0f, width, this.tabBar.h()) {
for (ControlAnalystPage page : analystPages) {
new ControlTooltip(tabBar, x, 0.0f, width, tabBar.h()) {
ControlAnalystPage value;
@Override
public void getTooltip(final Tooltip tooltip) {
tooltip.add(this.value.getTitle());
public void getTooltip(Tooltip tooltip) {
tooltip.add(value.getTitle());
}
@Override
protected void initialise() {
super.initialise();
this.addAttribute(WidgetAttribute.MouseOver);
this.value = page;
this.addSelfEventHandler(new EventMouse.Down.Handler() {
addAttribute(WidgetAttribute.MouseOver);
value = page;
addSelfEventHandler(new EventMouse.Down.Handler() {
@Override
public void onEvent(final EventMouse.Down event) {
final int currentIndex = WindowAnalyst.this.analystPages.indexOf(WindowAnalyst.this.rightPage.getContent());
int clickedIndex = WindowAnalyst.this.analystPages.indexOf(value);
if (WindowAnalyst.this.isDatabase) {
public void onEvent(EventMouse.Down event) {
int currentIndex = analystPages.indexOf(rightPage.getContent());
int clickedIndex = analystPages.indexOf(value);
if (isDatabase) {
if (clickedIndex != 0 && clickedIndex != currentIndex) {
WindowAnalyst.this.setPage(WindowAnalyst.this.rightPage, value);
setPage(rightPage, value);
}
}
else {
} else {
if (clickedIndex < 0) {
clickedIndex = 0;
}
if (clickedIndex < currentIndex) {
++clickedIndex;
}
WindowAnalyst.this.setPage(WindowAnalyst.this.rightPage, null);
WindowAnalyst.this.setPage(WindowAnalyst.this.leftPage, null);
WindowAnalyst.this.setPage(WindowAnalyst.this.rightPage, WindowAnalyst.this.analystPages.get(clickedIndex));
WindowAnalyst.this.setPage(WindowAnalyst.this.leftPage, WindowAnalyst.this.analystPages.get(clickedIndex - 1));
setPage(rightPage, null);
setPage(leftPage, null);
setPage(rightPage, analystPages.get(clickedIndex));
setPage(leftPage, analystPages.get(clickedIndex - 1));
}
}
});
@@ -382,64 +342,64 @@ public class WindowAnalyst extends Window
@Override
public void onRenderBackground() {
final boolean active = this.value == WindowAnalyst.this.leftPage.getContent() || this.value == WindowAnalyst.this.rightPage.getContent();
CraftGUI.Render.colour((active ? -16777216 : 1140850688) + this.value.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabSolid, this.getArea().inset(1));
CraftGUI.Render.colour(this.value.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, this.getArea().inset(1));
boolean active = value == leftPage.getContent() || value == rightPage.getContent();
CraftGUI.Render.colour((active ? 0xff000000 : 0x44000000) + value.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabSolid, getArea().inset(1));
CraftGUI.Render.colour(value.getColor());
CraftGUI.Render.texture(CraftGUITexture.TabOutline, getArea().inset(1));
super.onRenderBackground();
}
};
x += width;
}
if (this.analystPages.size() > 0) {
this.setPage(this.leftPage, this.analystPages.get((oldLeft >= 0) ? oldLeft : 0));
if (analystPages.size() > 0) {
setPage(leftPage, analystPages.get((oldLeft >= 0) ? oldLeft : 0));
}
if (this.analystPages.size() > 1) {
this.setPage(this.rightPage, this.analystPages.get((oldRight >= 0) ? oldRight : 1));
if (analystPages.size() > 1) {
setPage(rightPage, analystPages.get((oldRight >= 0) ? oldRight : 1));
}
}
public void shiftPages(final boolean right) {
if (this.analystPages.size() < 2) {
public void shiftPages(boolean right) {
if (analystPages.size() < 2) {
return;
}
final int leftIndex = this.analystPages.indexOf(this.leftPage.getContent());
final int rightIndex = this.analystPages.indexOf(this.rightPage.getContent());
if (right && rightIndex + 1 >= this.analystPages.size()) {
int leftIndex = analystPages.indexOf(leftPage.getContent());
int rightIndex = analystPages.indexOf(rightPage.getContent());
if (right && rightIndex + 1 >= analystPages.size()) {
return;
}
if (!this.lockedSearch && !right && leftIndex <= 0) {
if (!lockedSearch && !right && leftIndex <= 0) {
return;
}
if (!this.lockedSearch && !right && rightIndex <= 1) {
if (!lockedSearch && !right && rightIndex <= 1) {
return;
}
final int newRightIndex = rightIndex + (right ? 1 : -1);
final int newLeftIndex = this.lockedSearch ? 0 : (newRightIndex - 1);
int newRightIndex = rightIndex + (right ? 1 : -1);
int newLeftIndex = lockedSearch ? 0 : (newRightIndex - 1);
float oldRightPercent = 0.0f;
float oldLeftPercent = 0.0f;
if (newLeftIndex == rightIndex) {
oldRightPercent = this.rightPage.getPercentageIndex();
oldRightPercent = rightPage.getPercentageIndex();
}
if (newRightIndex == leftIndex) {
oldLeftPercent = this.leftPage.getPercentageIndex();
oldLeftPercent = leftPage.getPercentageIndex();
}
this.setPage(this.leftPage, null);
this.setPage(this.rightPage, null);
this.setPage(this.leftPage, this.analystPages.get(newLeftIndex));
this.setPage(this.rightPage, this.analystPages.get(newRightIndex));
this.analystPages.get(newLeftIndex).show();
setPage(leftPage, null);
setPage(rightPage, null);
setPage(leftPage, analystPages.get(newLeftIndex));
setPage(rightPage, analystPages.get(newRightIndex));
analystPages.get(newLeftIndex).show();
if (oldRightPercent != 0.0f) {
this.leftPage.setPercentageIndex(oldRightPercent);
leftPage.setPercentageIndex(oldRightPercent);
}
if (oldLeftPercent != 0.0f) {
this.rightPage.setPercentageIndex(oldLeftPercent);
rightPage.setPercentageIndex(oldLeftPercent);
}
}
public void setPage(final ControlScrollableContent side, final ControlAnalystPage page) {
final ControlAnalystPage existingPage = (ControlAnalystPage) side.getContent();
public void setPage(ControlScrollableContent side, ControlAnalystPage page) {
ControlAnalystPage existingPage = (ControlAnalystPage) side.getContent();
if (existingPage != null) {
existingPage.hide();
side.setScrollableContent(null);
@@ -455,31 +415,62 @@ public class WindowAnalyst extends Window
@Override
public void onWindowInventoryChanged() {
super.onWindowInventoryChanged();
if (this.getWindowInventory().getStackInSlot(0) != null && !Analyser.isAnalysed(this.getWindowInventory().getStackInSlot(0))) {
this.getWindowInventory().setInventorySlotContents(0, Analyser.analyse(this.getWindowInventory().getStackInSlot(0)));
this.getWindowInventory().decrStackSize(1, 1);
if (getWindowInventory().getStackInSlot(0) != null && !Analyser.isAnalysed(getWindowInventory().getStackInSlot(0))) {
getWindowInventory().setInventorySlotContents(0, Analyser.analyse(getWindowInventory().getStackInSlot(0)));
getWindowInventory().decrStackSize(1, 1);
}
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(this.getWindowInventory().getStackInSlot(0));
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(getWindowInventory().getStackInSlot(0));
if (ind != null) {
ind.getGenome().getSpeciesRoot().getBreedingTracker(this.getWorld(), this.getUsername()).registerBirth(ind);
ind.getGenome().getSpeciesRoot().getBreedingTracker(getWorld(), getUsername()).registerBirth(ind);
}
if (this.isClient()) {
this.setStack(this.getWindowInventory().getStackInSlot(0));
}
else if (this.isServer()) {
if (isClient()) {
setStack(getWindowInventory().getStackInSlot(0));
}
}
public void setStack(final ItemStack stack) {
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
this.setIndividual(ind);
public void setStack(ItemStack stack) {
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
setIndividual(ind);
}
public IIndividual getIndividual() {
return this.current;
return current;
}
public void setIndividual(IIndividual ind) {
if (!isDatabase) {
if (ind == null) {
analystNone.show();
slideUpInv.hide();
} else {
analystNone.hide();
slideUpInv.show();
}
}
if (ind == current || (ind != null && current != null && ind.isGeneticEqual(current))) {
return;
}
boolean systemChange = (current = ind) != null && ind.getGenome().getSpeciesRoot() != getSystem().getSpeciesRoot();
if (systemChange) {
currentSystem = Binnie.Genetics.getSystem(ind.getGenome().getSpeciesRoot());
}
updatePages(systemChange);
}
public BreedingSystem getSystem() {
return this.currentSystem;
return currentSystem;
}
public void setSystem(BreedingSystem system) {
if (system == currentSystem) {
return;
}
currentSystem = system;
current = null;
updatePages(true);
}
}
@@ -1,76 +1,71 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.core.liquid.FluidContainer;
import binnie.Binnie;
import net.minecraftforge.fluids.FluidStack;
import binnie.core.liquid.FluidContainer;
import binnie.core.liquid.IFluidType;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import binnie.core.liquid.IFluidType;
import net.minecraftforge.fluids.FluidStack;
public enum GeneticLiquid implements IFluidType
{
public enum GeneticLiquid implements IFluidType {
GrowthMedium("Growth Medium", "growthMedium", 15460533),
Bacteria("Bacteria", "bacteria", 14203521),
BacteriaPoly("Polymerising Bacteria", "bacteriaPoly", 11443396),
RawDNA("Raw DNA", "dna.raw", 15089129),
BacteriaVector("Bacteria Vector", "bacteriaVector", 15960958);
String name;
String ident;
IIcon icon;
int colour;
float transparency;
protected String name;
protected String ident;
protected IIcon icon;
protected int colour;
protected float transparency;
private GeneticLiquid(final String name, final String ident, final int colour) {
GeneticLiquid(String name, String ident, int colour) {
this.name = name;
this.ident = ident;
this.colour = colour;
this.transparency = 1.0f;
transparency = 1.0f;
}
@Override
public String toString() {
return this.name;
return name;
}
@Override
public IIcon getIcon() {
return this.icon;
return icon;
}
@Override
public void registerIcon(final IIconRegister register) {
this.icon = Genetics.proxy.getIcon(register, "liquids/" + this.ident);
public void registerIcon(IIconRegister register) {
icon = Genetics.proxy.getIcon(register, "liquids/" + ident);
}
@Override
public String getName() {
return this.name;
return name;
}
@Override
public String getIdentifier() {
return "binnie." + this.ident;
return "binnie." + ident;
}
@Override
public int getColour() {
return 16777215;
return 0xffffff;
}
@Override
public int getContainerColour() {
return this.colour;
return colour;
}
@Override
public FluidStack get(final int amount) {
return Binnie.Liquid.getLiquidStack(this.getIdentifier(), amount);
public FluidStack get(int amount) {
return Binnie.Liquid.getLiquidStack(getIdentifier(), amount);
}
@Override
@@ -79,12 +74,12 @@ public enum GeneticLiquid implements IFluidType
}
@Override
public boolean canPlaceIn(final FluidContainer container) {
public boolean canPlaceIn(FluidContainer container) {
return this == GeneticLiquid.GrowthMedium || container == FluidContainer.Cylinder;
}
@Override
public boolean showInCreative(final FluidContainer container) {
public boolean showInCreative(FluidContainer container) {
return container == FluidContainer.Cylinder;
}
}
@@ -1,18 +1,14 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import java.util.List;
import binnie.core.item.IItemMisc;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import binnie.core.item.IItemMisc;
public enum GeneticsItems implements IItemMisc
{
import java.util.List;
public enum GeneticsItems implements IItemMisc {
LaboratoryCasing("Reinforced Casing", "casingIron"),
DNADye("DNA Dye", "dnaDye"),
FluorescentDye("Fluorescent Dye", "dyeFluor"),
@@ -26,37 +22,40 @@ public enum GeneticsItems implements IItemMisc
IntegratedCPU("Integrated CPU", "integratedCPU"),
IntegratedCasing("Integrated Casing", "casingCircuit");
IIcon icon;
String name;
String iconPath;
protected IIcon icon;
protected String name;
protected String iconPath;
private GeneticsItems(final String name, final String iconPath) {
GeneticsItems(String name, String iconPath) {
this.name = name;
this.iconPath = iconPath;
}
@Override
public IIcon getIcon(final ItemStack itemStack) {
return this.icon;
public IIcon getIcon(ItemStack itemStack) {
return icon;
}
@Override
public void registerIcons(final IIconRegister register) {
this.icon = Genetics.proxy.getIcon(register, this.iconPath);
public void registerIcons(IIconRegister register) {
icon = Genetics.proxy.getIcon(register, iconPath);
}
@Override
public void addInformation(final List data) {
public void addInformation(List data) {
}
@Override
public String getName(final ItemStack itemStack) {
return this.name;
public String getName(ItemStack itemStack) {
return name;
}
@Override
public ItemStack get(final int count) {
return (Genetics.itemGenetics == null) ? null : new ItemStack(Genetics.itemGenetics, count, this.ordinal());
public ItemStack get(int count) {
if (Genetics.itemGenetics == null) {
return null;
}
return new ItemStack(Genetics.itemGenetics, count, ordinal());
}
@Override
@@ -1,42 +1,37 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.core.GeneticsGUI;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.item.ItemStack;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsGUI;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemAnalyst extends Item {
public ItemAnalyst() {
setCreativeTab(CreativeTabGenetics.instance);
setUnlocalizedName("analyst");
setMaxStackSize(1);
}
public class ItemAnalyst extends Item
{
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.itemIcon = Genetics.proxy.getIcon(register, "analyst");
}
public ItemAnalyst() {
this.setCreativeTab(CreativeTabGenetics.instance);
this.setUnlocalizedName("analyst");
this.setMaxStackSize(1);
public void registerIcons(IIconRegister register) {
itemIcon = Genetics.proxy.getIcon(register, "analyst");
}
@Override
public ItemStack onItemRightClick(final ItemStack itemstack, final World world, final EntityPlayer player) {
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player) {
Genetics.proxy.openGui(GeneticsGUI.Analyst, player, (int) player.posX, (int) player.posY, (int) player.posZ);
return itemstack;
}
@Override
public String getItemStackDisplayName(final ItemStack i) {
public String getItemStackDisplayName(ItemStack i) {
return "Analyst";
}
}
@@ -1,72 +1,67 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.core.GeneticsGUI;
import net.minecraft.world.World;
import binnie.genetics.CreativeTabGenetics;
import net.minecraft.creativetab.CreativeTabs;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsGUI;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class ItemDatabase extends Item
{
IIcon iconMaster;
import java.util.List;
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.itemIcon = Genetics.proxy.getIcon(register, "geneDatabase");
this.iconMaster = Genetics.proxy.getIcon(register, "masterGeneDatabase");
public class ItemDatabase extends Item {
protected IIcon iconMaster;
public ItemDatabase() {
setCreativeTab(CreativeTabGenetics.instance);
setUnlocalizedName("database");
setMaxStackSize(1);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(final int par1) {
return (par1 == 0) ? this.itemIcon : this.iconMaster;
public void registerIcons(IIconRegister register) {
itemIcon = Genetics.proxy.getIcon(register, "geneDatabase");
iconMaster = Genetics.proxy.getIcon(register, "masterGeneDatabase");
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(final ItemStack par1ItemStack, final EntityPlayer par2EntityPlayer, final List par3List, final boolean par4) {
public IIcon getIconFromDamage(int par1) {
return (par1 == 0) ? itemIcon : iconMaster;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(final Item par1, final CreativeTabs par2CreativeTabs, final List par3List) {
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
super.getSubItems(par1, par2CreativeTabs, par3List);
par3List.add(new ItemStack(par1, 1, 1));
}
public ItemDatabase() {
this.setCreativeTab(CreativeTabGenetics.instance);
this.setUnlocalizedName("database");
this.setMaxStackSize(1);
}
@Override
public ItemStack onItemRightClick(final ItemStack itemstack, final World world, final EntityPlayer player) {
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player) {
if (itemstack.getItemDamage() == 0) {
Genetics.proxy.openGui(GeneticsGUI.Database, player, (int) player.posX, (int) player.posY, (int) player.posZ);
}
else {
} else {
Genetics.proxy.openGui(GeneticsGUI.DatabaseNEI, player, (int) player.posX, (int) player.posY, (int) player.posZ);
}
return itemstack;
}
@Override
public String getItemStackDisplayName(final ItemStack i) {
public String getItemStackDisplayName(ItemStack i) {
return (i.getItemDamage() == 0) ? "Gene Database" : "Master Gene Database";
}
}
@@ -1,30 +1,34 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import net.minecraft.creativetab.CreativeTabs;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import binnie.genetics.genetics.IGeneItem;
import net.minecraft.item.ItemStack;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import binnie.genetics.genetics.IGeneItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.IIcon;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
public abstract class ItemGene extends Item
{
IIcon[] icons;
import java.util.List;
public abstract class ItemGene extends Item {
protected IIcon[] icons;
public ItemGene(String unlocName) {
icons = new IIcon[4];
setMaxStackSize(1);
setMaxDamage(16);
setUnlocalizedName(unlocName);
setCreativeTab(CreativeTabGenetics.instance);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) {
return this.icons[pass];
public IIcon getIconFromDamageForRenderPass(int damage, int pass) {
return icons[pass];
}
@Override
@@ -39,59 +43,54 @@ public abstract class ItemGene extends Item
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.icons[0] = Genetics.proxy.getIcon(register, "machines/serum.glass");
this.icons[1] = Genetics.proxy.getIcon(register, "machines/serum.cap");
this.icons[2] = Genetics.proxy.getIcon(register, "machines/serum.edges");
this.icons[3] = Genetics.proxy.getIcon(register, "machines/serum.dna");
public void registerIcons(IIconRegister register) {
icons[0] = Genetics.proxy.getIcon(register, "machines/serum.glass");
icons[1] = Genetics.proxy.getIcon(register, "machines/serum.cap");
icons[2] = Genetics.proxy.getIcon(register, "machines/serum.edges");
icons[3] = Genetics.proxy.getIcon(register, "machines/serum.dna");
}
@Override
public int getRenderPasses(final int metadata) {
public int getRenderPasses(int metadata) {
return 4;
}
public ItemGene(final String unlocName) {
this.icons = new IIcon[4];
this.setMaxStackSize(1);
this.setMaxDamage(16);
this.setUnlocalizedName(unlocName);
this.setCreativeTab(CreativeTabGenetics.instance);
}
@Override
public int getColorFromItemStack(final ItemStack itemstack, final int j) {
final IGeneItem gene = this.getGeneItem(itemstack);
public int getColorFromItemStack(ItemStack itemstack, int j) {
IGeneItem gene = getGeneItem(itemstack);
return gene.getColour(j);
}
public int getCharges(final ItemStack stack) {
return (stack == null) ? 0 : (stack.getItem().getMaxDamage() - stack.getItemDamage());
public int getCharges(ItemStack stack) {
if (stack == null) {
return 0;
}
return stack.getItem().getMaxDamage() - stack.getItemDamage();
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(final ItemStack itemstack, final EntityPlayer entityPlayer, final List list, final boolean par4) {
public void addInformation(ItemStack itemstack, EntityPlayer entityPlayer, List list, boolean par4) {
super.addInformation(itemstack, entityPlayer, list, par4);
final int damage = this.getMaxDamage() - itemstack.getItemDamage();
int damage = getMaxDamage() - itemstack.getItemDamage();
if (damage == 0) {
list.add("Empty");
}
else if (damage == 1) {
} else if (damage == 1) {
list.add("1 Charge");
}
else {
} else {
list.add(damage + " Charges");
}
final IGeneItem gene = this.getGeneItem(itemstack);
IGeneItem gene = getGeneItem(itemstack);
gene.getInfo(list);
}
@Override
public abstract String getItemStackDisplayName(final ItemStack p0);
public abstract String getItemStackDisplayName(ItemStack stack);
@Override
public void getSubItems(final Item par1, final CreativeTabs par2CreativeTabs, final List itemList) {
public void getSubItems(Item item, CreativeTabs tab, List itemList) {
// ignored
}
@Override
@@ -99,5 +98,5 @@ public abstract class ItemGene extends Item
return true;
}
public abstract IGeneItem getGeneItem(final ItemStack p0);
public abstract IGeneItem getGeneItem(ItemStack stack);
}
@@ -1,42 +1,37 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.core.GeneticsGUI;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.item.ItemStack;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsGUI;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemMasterRegistry extends Item {
public ItemMasterRegistry() {
setCreativeTab(CreativeTabGenetics.instance);
setUnlocalizedName("masterRegistry");
setMaxStackSize(1);
}
public class ItemMasterRegistry extends Item
{
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.itemIcon = Genetics.proxy.getIcon(register, "masterRegistry");
}
public ItemMasterRegistry() {
this.setCreativeTab(CreativeTabGenetics.instance);
this.setUnlocalizedName("masterRegistry");
this.setMaxStackSize(1);
public void registerIcons(IIconRegister register) {
itemIcon = Genetics.proxy.getIcon(register, "masterRegistry");
}
@Override
public ItemStack onItemRightClick(final ItemStack itemstack, final World world, final EntityPlayer player) {
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player) {
Genetics.proxy.openGui(GeneticsGUI.MasterRegistry, player, (int) player.posX, (int) player.posY, (int) player.posZ);
return itemstack;
}
@Override
public String getItemStackDisplayName(final ItemStack i) {
public String getItemStackDisplayName(ItemStack i) {
return "Master Registry";
}
}
@@ -1,42 +1,37 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.core.GeneticsGUI;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.item.ItemStack;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsGUI;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemRegistry extends Item {
public ItemRegistry() {
setCreativeTab(CreativeTabGenetics.instance);
setUnlocalizedName("registry");
setMaxStackSize(1);
}
public class ItemRegistry extends Item
{
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.itemIcon = Genetics.proxy.getIcon(register, "registry");
}
public ItemRegistry() {
this.setCreativeTab(CreativeTabGenetics.instance);
this.setUnlocalizedName("registry");
this.setMaxStackSize(1);
public void registerIcons(IIconRegister register) {
itemIcon = Genetics.proxy.getIcon(register, "registry");
}
@Override
public ItemStack onItemRightClick(final ItemStack itemstack, final World world, final EntityPlayer player) {
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player) {
Genetics.proxy.openGui(GeneticsGUI.Registry, player, (int) player.posX, (int) player.posY, (int) player.posZ);
return itemstack;
}
@Override
public String getItemStackDisplayName(final ItemStack i) {
public String getItemStackDisplayName(ItemStack i) {
return "Registry";
}
}
@@ -1,45 +1,50 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.api.IGene;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IAllele;
import binnie.core.genetics.Gene;
import binnie.Binnie;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.genetics.AlleleManager;
import forestry.api.apiculture.IAlleleBeeSpecies;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.client.renderer.texture.IIconRegister;
import binnie.core.genetics.Gene;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import binnie.genetics.api.IGene;
import binnie.genetics.api.IItemAnalysable;
import binnie.genetics.api.IItemChargable;
import binnie.genetics.genetics.GeneItem;
import binnie.genetics.genetics.SequencerItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import binnie.genetics.genetics.SequencerItem;
import binnie.genetics.Genetics;
import java.util.List;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.api.genetics.AlleleManager;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import binnie.genetics.genetics.GeneItem;
import net.minecraft.item.ItemStack;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.api.IItemChargable;
import binnie.genetics.api.IItemAnalysable;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class ItemSequence extends Item implements IItemAnalysable, IItemChargable
{
import java.util.List;
public class ItemSequence extends Item implements IItemAnalysable, IItemChargable {
public ItemSequence() {
this.setMaxStackSize(1);
this.setMaxDamage(5);
this.setUnlocalizedName("sequence");
this.setCreativeTab(CreativeTabGenetics.instance);
setMaxStackSize(1);
setMaxDamage(5);
setUnlocalizedName("sequence");
setCreativeTab(CreativeTabGenetics.instance);
}
public static ItemStack create(IGene gene) {
return create(gene, false);
}
public static ItemStack create(IGene gene, boolean sequenced) {
ItemStack item = new ItemStack(Genetics.itemSequencer);
item.setItemDamage(sequenced ? 0 : item.getMaxDamage());
SequencerItem seq = new SequencerItem(gene);
seq.writeToItem(item);
return item;
}
@Override
public String getItemStackDisplayName(final ItemStack itemstack) {
final GeneItem gene = new GeneItem(itemstack);
public String getItemStackDisplayName(ItemStack itemstack) {
GeneItem gene = new GeneItem(itemstack);
if (gene.isCorrupted()) {
return "Corrupted Sequence";
}
@@ -48,76 +53,63 @@ public class ItemSequence extends Item implements IItemAnalysable, IItemChargabl
@Override
@SideOnly(Side.CLIENT)
public void addInformation(final ItemStack itemstack, final EntityPlayer entityPlayer, final List list, final boolean par4) {
public void addInformation(ItemStack itemstack, EntityPlayer entityPlayer, List list, boolean par4) {
super.addInformation(itemstack, entityPlayer, list, par4);
list.add(Genetics.proxy.localise("item.sequence." + (5 - itemstack.getItemDamage() % 6)));
final SequencerItem gene = new SequencerItem(itemstack);
SequencerItem gene = new SequencerItem(itemstack);
if (gene.isCorrupted()) {
return;
}
if (gene.analysed) {
gene.getInfo(list);
}
else {
} else {
list.add("<Unknown>");
}
final int seq = gene.sequenced;
int seq = gene.sequenced;
if (seq == 0) {
list.add("Unsequenced");
}
else if (seq < 100) {
} else if (seq < 100) {
list.add("Partially Sequenced (" + seq + "%)");
}
else {
} else {
list.add("Fully Sequenced");
}
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister register) {
this.itemIcon = Genetics.proxy.getIcon(register, "sequencer");
public void registerIcons(IIconRegister register) {
itemIcon = Genetics.proxy.getIcon(register, "sequencer");
}
@Override
public void getSubItems(final Item par1, final CreativeTabs par2CreativeTabs, final List itemList) {
final IAlleleBeeSpecies species = (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele("forestry.speciesMeadows");
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
IAlleleBeeSpecies species = (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele("forestry.speciesMeadows");
itemList.add(create(new Gene(species, EnumBeeChromosome.SPECIES, Binnie.Genetics.getBeeRoot()), false));
}
@Override
public boolean isAnalysed(final ItemStack stack) {
final SequencerItem seq = new SequencerItem(stack);
public boolean isAnalysed(ItemStack stack) {
SequencerItem seq = new SequencerItem(stack);
return seq.isCorrupted() || seq.analysed;
}
@Override
public ItemStack analyse(final ItemStack stack) {
final SequencerItem seq = new SequencerItem(stack);
public ItemStack analyse(ItemStack stack) {
SequencerItem seq = new SequencerItem(stack);
seq.analysed = true;
seq.writeToItem(stack);
return stack;
}
@Override
public float getAnalyseTimeMult(final ItemStack stack) {
public float getAnalyseTimeMult(ItemStack stack) {
return 1.0f;
}
public static ItemStack create(final IGene gene) {
return create(gene, false);
}
public static ItemStack create(final IGene gene, final boolean sequenced) {
final ItemStack item = new ItemStack(Genetics.itemSequencer);
item.setItemDamage(sequenced ? 0 : item.getMaxDamage());
final SequencerItem seq = new SequencerItem(gene);
seq.writeToItem(item);
return item;
}
@Override
public int getCharges(final ItemStack stack) {
public int getCharges(ItemStack stack) {
return stack.getItem().getMaxDamage() - stack.getItemDamage();
}
}
@@ -1,60 +1,65 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.genetics.Genetics;
import binnie.genetics.genetics.IGeneItem;
import binnie.genetics.api.IGene;
import binnie.genetics.genetics.GeneItem;
import binnie.core.genetics.Gene;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import java.util.Map;
import binnie.Binnie;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.AlleleManager;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import binnie.core.genetics.Gene;
import binnie.genetics.Genetics;
import binnie.genetics.api.IGene;
import binnie.genetics.api.IItemSerum;
import binnie.genetics.genetics.GeneItem;
import binnie.genetics.genetics.IGeneItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import binnie.genetics.api.IItemSerum;
public class ItemSerum extends ItemGene implements IItemSerum
{
import java.util.List;
import java.util.Map;
public class ItemSerum extends ItemGene implements IItemSerum {
public ItemSerum() {
super("serum");
this.setMaxDamage(16);
setMaxDamage(16);
}
public static ItemStack create(IGene gene) {
ItemStack item = new ItemStack(Genetics.itemSerum);
item.setItemDamage(item.getMaxDamage());
GeneItem seq = new GeneItem(gene);
seq.writeToItem(item);
return item;
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(final ItemStack itemstack, final EntityPlayer entityPlayer, final List list, final boolean par4) {
public void addInformation(ItemStack itemstack, EntityPlayer entityPlayer, List list, boolean par4) {
super.addInformation(itemstack, entityPlayer, list, par4);
}
@Override
public int getCharges(final ItemStack stack) {
public int getCharges(ItemStack stack) {
return stack.getItem().getMaxDamage() - stack.getItemDamage();
}
@Override
public void getSubItems(final Item par1, final CreativeTabs par2CreativeTabs, final List itemList) {
for (final ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
final Map<IChromosomeType, List<IAllele>> chromosomeMap = Binnie.Genetics.getChromosomeMap(root);
for (final Map.Entry<IChromosomeType, List<IAllele>> entry : chromosomeMap.entrySet()) {
final IChromosomeType chromosome = entry.getKey();
for (final IAllele allele : entry.getValue()) {
final Gene gene = Gene.create(allele, chromosome, root);
public void getSubItems(Item par1, CreativeTabs tab, List itemList) {
for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
Map<IChromosomeType, List<IAllele>> chromosomeMap = Binnie.Genetics.getChromosomeMap(root);
for (Map.Entry<IChromosomeType, List<IAllele>> entry : chromosomeMap.entrySet()) {
IChromosomeType chromosome = entry.getKey();
for (IAllele allele : entry.getValue()) {
Gene gene = Gene.create(allele, chromosome, root);
if (gene == null) {
continue;
}
final IGeneItem item = new GeneItem(gene);
final ItemStack stack = new ItemStack(this);
IGeneItem item = new GeneItem(gene);
ItemStack stack = new ItemStack(this);
item.writeToItem(stack);
itemList.add(stack);
}
@@ -63,44 +68,36 @@ public class ItemSerum extends ItemGene implements IItemSerum
}
@Override
public IGene[] getGenes(final ItemStack stack) {
return new IGene[] { this.getGeneItem(stack).getGene() };
public IGene[] getGenes(ItemStack stack) {
return new IGene[]{getGeneItem(stack).getGene()};
}
@Override
public ISpeciesRoot getSpeciesRoot(final ItemStack stack) {
return this.getGeneItem(stack).getSpeciesRoot();
public ISpeciesRoot getSpeciesRoot(ItemStack stack) {
return getGeneItem(stack).getSpeciesRoot();
}
@Override
public IGene getGene(final ItemStack stack, final int chromosome) {
return this.getGeneItem(stack).getGene();
public IGene getGene(ItemStack stack, int chromosome) {
return getGeneItem(stack).getGene();
}
@Override
public GeneItem getGeneItem(final ItemStack stack) {
public GeneItem getGeneItem(ItemStack stack) {
return new GeneItem(stack);
}
@Override
public String getItemStackDisplayName(final ItemStack itemstack) {
final IGeneItem gene = this.getGeneItem(itemstack);
public String getItemStackDisplayName(ItemStack stack) {
IGeneItem gene = getGeneItem(stack);
return Binnie.Genetics.getSystem(gene.getSpeciesRoot()).getDescriptor() + " Serum";
}
@Override
public ItemStack addGene(final ItemStack stack, final IGene gene) {
final IGeneItem geneI = this.getGeneItem(stack);
geneI.addGene(gene);
geneI.writeToItem(stack);
public ItemStack addGene(ItemStack stack, IGene gene) {
IGeneItem geneItem = getGeneItem(stack);
geneItem.addGene(gene);
geneItem.writeToItem(stack);
return stack;
}
public static ItemStack create(final IGene gene) {
final ItemStack item = new ItemStack(Genetics.itemSerum);
item.setItemDamage(item.getMaxDamage());
final GeneItem seq = new GeneItem(gene);
seq.writeToItem(item);
return item;
}
}
@@ -1,87 +1,95 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.Binnie;
import binnie.core.genetics.Gene;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.texture.IIconRegister;
import binnie.genetics.api.IGene;
import binnie.genetics.api.IItemSerum;
import binnie.genetics.genetics.GeneArrayItem;
import binnie.genetics.genetics.IGeneItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosome;
import forestry.api.genetics.IChromosomeType;
import binnie.genetics.genetics.IGeneItem;
import binnie.core.genetics.Gene;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.AlleleManager;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import binnie.genetics.genetics.GeneArrayItem;
import forestry.api.genetics.ISpeciesRoot;
import binnie.genetics.api.IGene;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import binnie.genetics.api.IItemSerum;
public class ItemSerumArray extends ItemGene implements IItemSerum
{
import java.util.List;
public class ItemSerumArray extends ItemGene implements IItemSerum {
public ItemSerumArray() {
super("serumArray");
this.setMaxDamage(16);
setMaxDamage(16);
}
public static ItemStack create(IGene gene) {
ItemStack item = new ItemStack(Genetics.itemSerumArray);
item.setItemDamage(item.getMaxDamage());
GeneArrayItem seq = new GeneArrayItem(gene);
seq.writeToItem(item);
return item;
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(final ItemStack itemstack, final EntityPlayer entityPlayer, final List list, final boolean par4) {
public void addInformation(ItemStack itemstack, EntityPlayer entityPlayer, List list, boolean par4) {
super.addInformation(itemstack, entityPlayer, list, par4);
}
@Override
public int getCharges(final ItemStack stack) {
public int getCharges(ItemStack stack) {
return stack.getItem().getMaxDamage() - stack.getItemDamage();
}
@Override
public IGene[] getGenes(final ItemStack stack) {
return this.getGeneItem(stack).getGenes().toArray(new IGene[0]);
public IGene[] getGenes(ItemStack stack) {
return getGeneItem(stack).getGenes().toArray(new IGene[0]);
}
@Override
public ISpeciesRoot getSpeciesRoot(final ItemStack stack) {
return this.getGeneItem(stack).getSpeciesRoot();
public ISpeciesRoot getSpeciesRoot(ItemStack stack) {
return getGeneItem(stack).getSpeciesRoot();
}
@Override
public IGene getGene(final ItemStack stack, final int chromosome) {
return this.getGeneItem(stack).getGene(chromosome);
public IGene getGene(ItemStack stack, int chromosome) {
return getGeneItem(stack).getGene(chromosome);
}
@Override
public GeneArrayItem getGeneItem(final ItemStack stack) {
public GeneArrayItem getGeneItem(ItemStack stack) {
return new GeneArrayItem(stack);
}
@Override
public void getSubItems(final Item par1, final CreativeTabs par2CreativeTabs, final List itemList) {
for (final ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
for (final IIndividual template : root.getIndividualTemplates()) {
public void getSubItems(Item par1, CreativeTabs tab, List itemList) {
for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) {
for (IIndividual template : root.getIndividualTemplates()) {
if (template.getGenome().getPrimary().isSecret()) {
continue;
}
final IGeneItem item = new GeneArrayItem();
for (final IChromosomeType type : root.getKaryotype()) {
final IChromosome c = template.getGenome().getChromosomes()[type.ordinal()];
if (c != null) {
final IAllele active = c.getActiveAllele();
if (active != null) {
item.addGene(new Gene(active, type, root));
}
IGeneItem item = new GeneArrayItem();
for (IChromosomeType type : root.getKaryotype()) {
IChromosome c = template.getGenome().getChromosomes()[type.ordinal()];
if (c == null) {
continue;
}
IAllele active = c.getActiveAllele();
if (active != null) {
item.addGene(new Gene(active, type, root));
}
}
final ItemStack array = new ItemStack(this);
ItemStack array = new ItemStack(this);
item.writeToItem(array);
itemList.add(array);
}
@@ -90,32 +98,24 @@ public class ItemSerumArray extends ItemGene implements IItemSerum
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(final IIconRegister register) {
this.icons[0] = Genetics.proxy.getIcon(register, "machines/genome.glass");
this.icons[1] = Genetics.proxy.getIcon(register, "machines/genome.cap");
this.icons[2] = Genetics.proxy.getIcon(register, "machines/genome.edges");
this.icons[3] = Genetics.proxy.getIcon(register, "machines/genome.dna");
public void registerIcons(IIconRegister register) {
icons[0] = Genetics.proxy.getIcon(register, "machines/genome.glass");
icons[1] = Genetics.proxy.getIcon(register, "machines/genome.cap");
icons[2] = Genetics.proxy.getIcon(register, "machines/genome.edges");
icons[3] = Genetics.proxy.getIcon(register, "machines/genome.dna");
}
@Override
public String getItemStackDisplayName(final ItemStack itemstack) {
final IGeneItem gene = this.getGeneItem(itemstack);
public String getItemStackDisplayName(ItemStack stack) {
IGeneItem gene = getGeneItem(stack);
return Binnie.Genetics.getSystem(gene.getSpeciesRoot()).getDescriptor() + " Serum Array";
}
@Override
public ItemStack addGene(final ItemStack stack, final IGene gene) {
final IGeneItem geneI = this.getGeneItem(stack);
public ItemStack addGene(ItemStack stack, IGene gene) {
IGeneItem geneI = getGeneItem(stack);
geneI.addGene(gene);
geneI.writeToItem(stack);
return stack;
}
public static ItemStack create(final IGene gene) {
final ItemStack item = new ItemStack(Genetics.itemSerumArray);
item.setItemDamage(item.getMaxDamage());
final GeneArrayItem seq = new GeneArrayItem(gene);
seq.writeToItem(item);
return item;
}
}
@@ -1,32 +1,26 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.item;
import binnie.Binnie;
import binnie.botany.Botany;
import binnie.extratrees.ExtraTrees;
import binnie.core.BinnieCore;
import binnie.core.IInitializable;
import binnie.core.Mods;
import binnie.core.liquid.ItemFluidContainer;
import binnie.core.resource.BinnieIcon;
import binnie.extrabees.ExtraBees;
import net.minecraft.item.Item;
import binnie.extratrees.ExtraTrees;
import binnie.genetics.CreativeTabGenetics;
import binnie.genetics.Genetics;
import cpw.mods.fml.common.registry.GameRegistry;
import forestry.api.recipes.RecipeManagers;
import net.minecraft.init.Blocks;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.ShapedOreRecipe;
import binnie.core.Mods;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.item.ItemStack;
import net.minecraft.init.Items;
import binnie.core.BinnieCore;
import binnie.core.liquid.ItemFluidContainer;
import binnie.genetics.CreativeTabGenetics;
import binnie.Binnie;
import binnie.genetics.Genetics;
import binnie.core.resource.BinnieIcon;
import binnie.core.IInitializable;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
public class ModuleItem implements IInitializable
{
public class ModuleItem implements IInitializable {
public static BinnieIcon iconNight;
public static BinnieIcon iconDaytime;
public static BinnieIcon iconAllDay;
@@ -77,42 +71,161 @@ public class ModuleItem implements IInitializable
@Override
public void postInit() {
GameRegistry.addShapelessRecipe(GeneticsItems.DNADye.get(8), new Object[] { Items.glowstone_dust, new ItemStack(Items.dye, 1, 5) });
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.LaboratoryCasing.get(1), new Object[] { "iii", "iYi", "iii", 'i', "ingotIron", 'Y', Mods.Forestry.item("sturdyMachine") }));
GameRegistry.addRecipe(new ShapelessOreRecipe(GeneticsItems.DNADye.get(2), new Object[] { "dyePurple", "dyeMagenta", "dyePink" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(GeneticsItems.FluorescentDye.get(2), new Object[] { "dyeOrange", "dyeYellow", "dustGlowstone" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(GeneticsItems.GrowthMedium.get(2), new Object[] { new ItemStack(Items.dye, 1, 15), Items.sugar }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.EmptySequencer.get(1), new Object[] { " p ", "iGi", " p ", 'i', "ingotGold", 'G', Blocks.glass_pane, 'p', Items.paper }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.EmptySerum.get(1), new Object[] { " g ", " G ", "GGG", 'g', "ingotGold", 'G', Blocks.glass_pane }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.EmptyGenome.get(1), new Object[] { "sss", "sss", "sss", 's', GeneticsItems.EmptySerum.get(1) }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.Cylinder.get(8), new Object[] { " g ", "g g", " ", 'g', Blocks.glass_pane }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.IntegratedCircuit.get(1), new Object[] { "l g", " c ", "g l", 'c', Mods.Forestry.stack("chipsets", 1, 1), 'l', new ItemStack(Items.dye, 1, 4), 'g', "dustGlowstone" }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.IntegratedCircuit.get(1), new Object[] { "g l", " c ", "l g", 'c', Mods.Forestry.stack("chipsets", 1, 1), 'l', new ItemStack(Items.dye, 1, 4), 'g', "dustGlowstone" }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.IntegratedCasing.get(1), new Object[] { "ccc", "cdc", "ccc", 'c', GeneticsItems.IntegratedCircuit.get(1), 'd', GeneticsItems.LaboratoryCasing.get(1) }));
GameRegistry.addRecipe(new ShapedOreRecipe(GeneticsItems.IntegratedCPU.get(1), new Object[] { "ccc", "cdc", "ccc", 'c', GeneticsItems.IntegratedCircuit.get(1), 'd', Items.diamond }));
RecipeManagers.carpenterManager.addRecipe(100, Binnie.Liquid.getLiquidStack("water", 2000), (ItemStack) null, new ItemStack(Genetics.database), new Object[] { "X#X", "YEY", "RDR", '#', Blocks.glass_pane, 'X', Items.diamond, 'Y', Items.diamond, 'R', Items.redstone, 'D', Items.ender_eye, 'E', Blocks.obsidian });
GameRegistry.addShapelessRecipe(GeneticsItems.DNADye.get(8), Items.glowstone_dust, new ItemStack(Items.dye, 1, 5));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.LaboratoryCasing.get(1),
new Object[]{
"iii", "iYi", "iii",
'i', "ingotIron",
'Y', Mods.Forestry.item("sturdyMachine")
}
));
GameRegistry.addRecipe(new ShapelessOreRecipe(
GeneticsItems.DNADye.get(2),
new Object[]{
"dyePurple",
"dyeMagenta",
"dyePink"
}
));
GameRegistry.addRecipe(new ShapelessOreRecipe(
GeneticsItems.FluorescentDye.get(2),
new Object[]{
"dyeOrange",
"dyeYellow",
"dustGlowstone"
}
));
GameRegistry.addRecipe(new ShapelessOreRecipe(
GeneticsItems.GrowthMedium.get(2),
new Object[]{
new ItemStack(Items.dye, 1, 15),
Items.sugar
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.EmptySequencer.get(1),
new Object[]{
" p ", "iGi", " p ",
'i', "ingotGold",
'G', Blocks.glass_pane,
'p', Items.paper
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.EmptySerum.get(1),
new Object[]{
" g ", " G ", "GGG",
'g', "ingotGold",
'G', Blocks.glass_pane
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.EmptyGenome.get(1),
new Object[]{
"sss", "sss", "sss",
's', GeneticsItems.EmptySerum.get(1)
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.Cylinder.get(8),
new Object[]{
" g ", "g g", " ",
'g', Blocks.glass_pane
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.IntegratedCircuit.get(1),
new Object[]{
"l g", " c ", "g l",
'c', Mods.Forestry.stack("chipsets", 1, 1),
'l', new ItemStack(Items.dye, 1, 4),
'g', "dustGlowstone"
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.IntegratedCircuit.get(1),
new Object[]{
"g l", " c ", "l g",
'c', Mods.Forestry.stack("chipsets", 1, 1),
'l', new ItemStack(Items.dye, 1, 4),
'g', "dustGlowstone"
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.IntegratedCasing.get(1),
new Object[]{
"ccc", "cdc", "ccc",
'c', GeneticsItems.IntegratedCircuit.get(1),
'd', GeneticsItems.LaboratoryCasing.get(1)
}
));
GameRegistry.addRecipe(new ShapedOreRecipe(
GeneticsItems.IntegratedCPU.get(1),
new Object[]{
"ccc", "cdc", "ccc",
'c', GeneticsItems.IntegratedCircuit.get(1),
'd', Items.diamond
}
));
RecipeManagers.carpenterManager.addRecipe(
100,
Binnie.Liquid.getLiquidStack("water", 2000),
null,
new ItemStack(Genetics.database),
"X#X", "YEY", "RDR",
'#', Blocks.glass_pane,
'X', Items.diamond,
'Y', Items.diamond,
'R', Items.redstone,
'D', Items.ender_eye,
'E', Blocks.obsidian
);
GameRegistry.addSmelting(Genetics.itemSequencer, GeneticsItems.EmptySequencer.get(1), 0.0f);
GameRegistry.addSmelting(Genetics.itemSerum, GeneticsItems.EmptySerum.get(1), 0.0f);
GameRegistry.addSmelting(Genetics.itemSerumArray, GeneticsItems.EmptyGenome.get(1), 0.0f);
final Item[] arr$;
final Item[] lyzers = arr$ = new Item[] { Mods.Forestry.item("beealyzer"), Mods.Forestry.item("treealyzer"), Mods.Forestry.item("flutterlyzer") };
for (final Item a : arr$) {
for (final Item b : lyzers) {
for (final Item c : lyzers) {
// TODO refactor refactor refactor this!
Item[] arr$;
Item[] lyzers = arr$ = new Item[]{
Mods.Forestry.item("beealyzer"),
Mods.Forestry.item("treealyzer"),
Mods.Forestry.item("flutterlyzer")
};
for (Item a : arr$) {
for (Item b : lyzers) {
for (Item c : lyzers) {
if (a != b && a != c && b != c) {
GameRegistry.addShapedRecipe(new ItemStack(Genetics.analyst), new Object[] { " b ", "fct", " d ", 'c', GeneticsItems.IntegratedCircuit.get(1), 'b', a, 't', b, 'f', c, 'd', new ItemStack(Items.diamond) });
GameRegistry.addShapedRecipe(
new ItemStack(Genetics.analyst),
" b ", "fct", " d ",
'c', GeneticsItems.IntegratedCircuit.get(1),
'b', a,
't', b,
'f', c,
'd', new ItemStack(Items.diamond)
);
}
}
}
}
final Item[] dbs = { ExtraBees.dictionary, ExtraTrees.itemDictionary, ExtraTrees.itemDictionaryLepi, Botany.database };
Item[] dbs = {ExtraBees.dictionary, ExtraTrees.itemDictionary, ExtraTrees.itemDictionaryLepi, Botany.database};
if (BinnieCore.isBotanyActive() && BinnieCore.isExtraBeesActive() && BinnieCore.isExtraTreesActive()) {
for (final Item a2 : dbs) {
for (final Item b2 : dbs) {
for (final Item c2 : dbs) {
for (final Item d : dbs) {
for (Item a2 : dbs) {
for (Item b2 : dbs) {
for (Item c2 : dbs) {
for (Item d : dbs) {
if (a2 != b2 && a2 != c2 && a2 != d && b2 != c2 && b2 != d && c2 != d) {
GameRegistry.addShapedRecipe(new ItemStack(Genetics.registry), new Object[] { " b ", "fct", " l ", 'c', GeneticsItems.IntegratedCircuit.get(1), 'b', a2, 't', b2, 'f', c2, 'l', d });
GameRegistry.addShapedRecipe(
new ItemStack(Genetics.registry),
" b ", "fct", " l ",
'c', GeneticsItems.IntegratedCircuit.get(1),
'b', a2,
't', b2,
'f', c2,
'l', d
);
}
}
}
@@ -1,77 +1,76 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import binnie.Binnie;
import binnie.botany.api.EnumFlowerChromosome;
import binnie.botany.gardening.Gardening;
import binnie.core.BinnieCore;
import binnie.core.Mods;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.genetics.Gene;
import java.util.Random;
import binnie.core.genetics.Tolerance;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessIndefinate;
import binnie.core.machines.power.ErrorState;
import binnie.genetics.core.GeneticsGUI;
import binnie.genetics.core.GeneticsTexture;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.EnumTolerance;
import forestry.api.genetics.IAlleleTolerance;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IGenome;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.IAlleleTolerance;
import binnie.botany.gardening.Gardening;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.ComponentProcessIndefinate;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.IMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import java.util.HashMap;
import java.util.ArrayList;
import forestry.api.genetics.EnumTolerance;
import binnie.core.genetics.Tolerance;
import binnie.core.Mods;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.lepidopterology.EnumButterflyChromosome;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import binnie.botany.api.EnumFlowerChromosome;
import forestry.api.lepidopterology.EnumButterflyChromosome;
import forestry.api.apiculture.EnumBeeChromosome;
import binnie.Binnie;
import binnie.core.BinnieCore;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.ISpeciesRoot;
import forestry.api.genetics.AlleleManager;
import net.minecraft.item.ItemStack;
import java.util.Map;
import net.minecraft.tileentity.TileEntity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Acclimatiser
{
public static final int[] slotReserve;
public static final int slotTarget = 4;
public static final int[] slotAcclimatiser;
public static final int[] slotDone;
private static List<ToleranceSystem> toleranceSystems;
static Map<ItemStack, Float> temperatureItems;
static Map<ItemStack, Float> humidityItems;
public class Acclimatiser {
public static int[] slotReserve = new int[]{0, 1, 2, 3};
public static int[] slotAcclimatiser = new int[]{5, 6, 7};
public static int[] slotDone = new int[]{8, 9, 10, 11};
public static int slotTarget = 4;
private static ToleranceSystem getToleranceSystem(final ItemStack stack, final ItemStack acclim) {
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
protected static Map<ItemStack, Float> temperatureItems = new HashMap<>();
protected static Map<ItemStack, Float> humidityItems = new HashMap<>();
private static List<ToleranceSystem> toleranceSystems = new ArrayList<>();
private static ToleranceSystem getToleranceSystem(ItemStack stack, ItemStack acclim) {
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
if (root == null) {
return null;
}
for (final ToleranceSystem system : Acclimatiser.toleranceSystems) {
if (root.getUID() == system.uid && system.type.hasEffect(acclim)) {
for (ToleranceSystem system : Acclimatiser.toleranceSystems) {
if (root.getUID().equals(system.uid) && system.type.hasEffect(acclim)) {
return system;
}
}
return null;
}
public static void addTolerance(final String uid, final IChromosomeType chromosome, final ToleranceType type) {
public static void addTolerance(String uid, IChromosomeType chromosome, ToleranceType type) {
Acclimatiser.toleranceSystems.add(new ToleranceSystem(uid, chromosome, type));
}
public static float getTemperatureEffect(final ItemStack item) {
for (final ItemStack stack : Acclimatiser.temperatureItems.keySet()) {
public static float getTemperatureEffect(ItemStack item) {
for (ItemStack stack : Acclimatiser.temperatureItems.keySet()) {
if (stack.isItemEqual(item)) {
return Acclimatiser.temperatureItems.get(stack);
}
@@ -79,8 +78,8 @@ public class Acclimatiser
return 0.0f;
}
public static float getHumidityEffect(final ItemStack item) {
for (final ItemStack stack : Acclimatiser.humidityItems.keySet()) {
public static float getHumidityEffect(ItemStack item) {
for (ItemStack stack : Acclimatiser.humidityItems.keySet()) {
if (stack.isItemEqual(item)) {
return Acclimatiser.humidityItems.get(stack);
}
@@ -88,18 +87,18 @@ public class Acclimatiser
return 0.0f;
}
public static void addTemperatureItem(final ItemStack itemstack, final float amount) {
if (itemstack == null) {
public static void addTemperatureItem(ItemStack itemStack, float amount) {
if (itemStack == null) {
return;
}
Acclimatiser.temperatureItems.put(itemstack, amount);
Acclimatiser.temperatureItems.put(itemStack, amount);
}
public static void addHumidityItem(final ItemStack itemstack, final float amount) {
if (itemstack == null) {
public static void addHumidityItem(ItemStack itemStack, float amount) {
if (itemStack == null) {
return;
}
Acclimatiser.humidityItems.put(itemstack, amount);
Acclimatiser.humidityItems.put(itemStack, amount);
}
public static void setupRecipes() {
@@ -107,15 +106,18 @@ public class Acclimatiser
addTolerance(Binnie.Genetics.getBeeRoot().getUID(), EnumBeeChromosome.HUMIDITY_TOLERANCE, ToleranceType.Humidity);
addTolerance(Binnie.Genetics.getBeeRoot().getUID(), EnumBeeChromosome.TEMPERATURE_TOLERANCE, ToleranceType.Temperature);
}
if (BinnieCore.isLepidopteryActive()) {
addTolerance(Binnie.Genetics.getButterflyRoot().getUID(), EnumButterflyChromosome.HUMIDITY_TOLERANCE, ToleranceType.Humidity);
addTolerance(Binnie.Genetics.getButterflyRoot().getUID(), EnumButterflyChromosome.TEMPERATURE_TOLERANCE, ToleranceType.Temperature);
}
if (BinnieCore.isBotanyActive()) {
addTolerance(Binnie.Genetics.getFlowerRoot().getUID(), EnumFlowerChromosome.HUMIDITY_TOLERANCE, ToleranceType.Humidity);
addTolerance(Binnie.Genetics.getFlowerRoot().getUID(), EnumFlowerChromosome.TEMPERATURE_TOLERANCE, ToleranceType.Temperature);
addTolerance(Binnie.Genetics.getFlowerRoot().getUID(), EnumFlowerChromosome.PH_TOLERANCE, ToleranceType.PH);
}
addTemperatureItem(new ItemStack(Items.blaze_powder), 0.5f);
addTemperatureItem(new ItemStack(Items.blaze_rod), 0.75f);
addTemperatureItem(new ItemStack(Items.lava_bucket), 0.75f);
@@ -130,11 +132,12 @@ public class Acclimatiser
addHumidityItem(Mods.Forestry.stack("waxCapsuleWater"), 0.75f);
}
public static boolean canAcclimatise(final ItemStack stack, final List<ItemStack> acclimatisers) {
public static boolean canAcclimatise(ItemStack stack, List<ItemStack> acclimatisers) {
if (stack == null || acclimatisers.isEmpty()) {
return true;
}
for (final ItemStack acclim : acclimatisers) {
for (ItemStack acclim : acclimatisers) {
if (canAcclimatise(stack, acclim)) {
return true;
}
@@ -142,86 +145,114 @@ public class Acclimatiser
return false;
}
public static boolean canAcclimatise(final ItemStack stack, final ItemStack acclim) {
final ToleranceSystem system = getToleranceSystem(stack, acclim);
public static boolean canAcclimatise(ItemStack stack, ItemStack acclim) {
ToleranceSystem system = getToleranceSystem(stack, acclim);
return system != null && system.canAlter(stack, acclim);
}
public static ItemStack acclimatise(final ItemStack stack, final ItemStack acc) {
final ToleranceSystem system = getToleranceSystem(stack, acc);
public static ItemStack acclimatise(ItemStack stack, ItemStack acc) {
ToleranceSystem system = getToleranceSystem(stack, acc);
return system.alter(stack, acc);
}
public static Tolerance alterTolerance(final Tolerance tol, final float effect) {
final int[] is = tol.getBounds();
int[] range = new int[2];
public static Tolerance alterTolerance(Tolerance tol, float effect) {
int[] is = tol.getBounds();
int[] range;
if (effect < 0.0f) {
range = new int[] { is[0] - 1, is[1] };
}
else {
range = new int[] { is[0], is[1] + 1 };
range = new int[]{is[0] - 1, is[1]};
} else {
range = new int[]{is[0], is[1] + 1};
}
if (range[0] < -5) {
range[0] = -5;
}
if (range[1] > 5) {
range[1] = 5;
}
final EnumTolerance[] up = { EnumTolerance.NONE, EnumTolerance.UP_1, EnumTolerance.UP_2, EnumTolerance.UP_3, EnumTolerance.UP_4, EnumTolerance.UP_5 };
final EnumTolerance[] down = { EnumTolerance.NONE, EnumTolerance.DOWN_1, EnumTolerance.DOWN_2, EnumTolerance.DOWN_3, EnumTolerance.DOWN_4, EnumTolerance.DOWN_5 };
final EnumTolerance[] both = { EnumTolerance.NONE, EnumTolerance.BOTH_1, EnumTolerance.BOTH_2, EnumTolerance.BOTH_3, EnumTolerance.BOTH_4, EnumTolerance.BOTH_5 };
EnumTolerance[] up = {EnumTolerance.NONE, EnumTolerance.UP_1, EnumTolerance.UP_2, EnumTolerance.UP_3, EnumTolerance.UP_4, EnumTolerance.UP_5};
EnumTolerance[] down = {EnumTolerance.NONE, EnumTolerance.DOWN_1, EnumTolerance.DOWN_2, EnumTolerance.DOWN_3, EnumTolerance.DOWN_4, EnumTolerance.DOWN_5};
EnumTolerance[] both = {EnumTolerance.NONE, EnumTolerance.BOTH_1, EnumTolerance.BOTH_2, EnumTolerance.BOTH_3, EnumTolerance.BOTH_4, EnumTolerance.BOTH_5};
if (range[0] == 0) {
return Tolerance.get(up[range[1]]);
}
if (range[1] == 0) {
return Tolerance.get(down[-range[0]]);
}
final int avg = (int) ((-range[0] + range[1]) / 2.0f + 0.6f);
int avg = (int) ((-range[0] + range[1]) / 2.0f + 0.6f);
return Tolerance.get(both[avg]);
}
static {
slotReserve = new int[] { 0, 1, 2, 3 };
slotAcclimatiser = new int[] { 5, 6, 7 };
slotDone = new int[] { 8, 9, 10, 11 };
Acclimatiser.toleranceSystems = new ArrayList<ToleranceSystem>();
Acclimatiser.temperatureItems = new HashMap<ItemStack, Float>();
Acclimatiser.humidityItems = new HashMap<ItemStack, Float>();
public enum ToleranceType {
Temperature,
Humidity,
PH;
public float getEffect(ItemStack stack) {
switch (this) {
case Temperature:
return Acclimatiser.getTemperatureEffect(stack);
case Humidity:
return Acclimatiser.getHumidityEffect(stack);
case PH:
if (Gardening.isAcidFertiliser(stack)) {
return -0.5f * Gardening.getFertiliserStrength(stack);
}
if (Gardening.isAlkalineFertiliser(stack)) {
return 0.5f * Gardening.getFertiliserStrength(stack);
}
break;
}
return 0.0f;
}
public boolean hasEffect(ItemStack stack) {
return getEffect(stack) != 0.0f;
}
}
public static class PackageAcclimatiser extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageAcclimatiser extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageAcclimatiser() {
super("acclimatiser", GeneticsTexture.Acclimatiser, 9857609, true);
super("acclimatiser", GeneticsTexture.Acclimatiser, 0x966a49, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Acclimatiser);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlot(4, "process");
inventory.getSlot(4).setValidator(new SlotValidator.Individual());
inventory.getSlot(4).setReadOnly();
inventory.getSlot(4).forbidExtraction();
for (final InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotReserve, "input")) {
for (InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotReserve, "input")) {
slot.forbidExtraction();
slot.setValidator(new SlotValidator.Individual());
}
for (final InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotDone, "output")) {
for (InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotDone, "output")) {
slot.setReadOnly();
slot.setValidator(new SlotValidator.Individual());
}
for (final InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotAcclimatiser, "acclimatiser")) {
for (InventorySlot slot : inventory.addSlotArray(Acclimatiser.slotAcclimatiser, "acclimatiser")) {
slot.setValidator(new ValidatorAcclimatiserItem());
}
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Acclimatiser.slotReserve, 4, 1);
transfer.addStorage(4, Acclimatiser.slotDone, new ComponentInventoryTransfer.Condition() {
@Override
public boolean fufilled(final ItemStack stack) {
public boolean fufilled(ItemStack stack) {
return !Acclimatiser.canAcclimatise(stack, machine.getMachineUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser));
}
});
new ComponentPowerReceptor(machine, 5000);
new ComponentAcclimatiserLogic(machine);
}
@@ -230,24 +261,19 @@ public class Acclimatiser
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentAcclimatiserLogic extends ComponentProcessIndefinate
{
public ComponentAcclimatiserLogic(final IMachine machine) {
public static class ComponentAcclimatiserLogic extends ComponentProcessIndefinate {
public ComponentAcclimatiserLogic(IMachine machine) {
super(machine, 2.0f);
}
@Override
public ErrorState canWork() {
if (this.getUtil().getStack(4) == null) {
if (getUtil().getStack(4) == null) {
return new ErrorState.NoItem("No Individual to Acclimatise", 4);
}
if (this.getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser).isEmpty()) {
if (getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser).isEmpty()) {
return new ErrorState.NoItem("No Acclimatising Items", Acclimatiser.slotAcclimatiser);
}
return super.canWork();
@@ -255,7 +281,7 @@ public class Acclimatiser
@Override
public ErrorState canProgress() {
if (!Acclimatiser.canAcclimatise(this.getUtil().getStack(4), this.getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser))) {
if (!Acclimatiser.canAcclimatise(getUtil().getStack(4), getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser))) {
return new ErrorState.InvalidItem("Cannot Acclimatise this individual with these items", 4);
}
return super.canProgress();
@@ -263,32 +289,33 @@ public class Acclimatiser
@Override
protected boolean inProgress() {
return this.canWork() == null;
return canWork() == null;
}
@Override
protected void onTickTask() {
super.onTickTask();
if (this.getUtil().getRandom().nextInt(100) == 0) {
this.attemptAcclimatisation();
if (getUtil().getRandom().nextInt(100) == 0) {
attemptAcclimatisation();
}
}
protected void attemptAcclimatisation() {
final List<ItemStack> acclms = new ArrayList<ItemStack>();
for (final ItemStack s : this.getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser)) {
if (Acclimatiser.canAcclimatise(this.getUtil().getStack(4), s)) {
List<ItemStack> acclms = new ArrayList<ItemStack>();
for (ItemStack s : getUtil().getNonNullStacks(Acclimatiser.slotAcclimatiser)) {
if (Acclimatiser.canAcclimatise(getUtil().getStack(4), s)) {
acclms.add(s);
}
}
final ItemStack acc = acclms.get(this.getUtil().getRandom().nextInt(acclms.size()));
final ItemStack acclimed = Acclimatiser.acclimatise(this.getUtil().getStack(4), acc);
ItemStack acc = acclms.get(getUtil().getRandom().nextInt(acclms.size()));
ItemStack acclimed = Acclimatiser.acclimatise(getUtil().getStack(4), acc);
if (acclimed != null) {
this.getUtil().setStack(4, acclimed);
getUtil().setStack(4, acclimed);
boolean removed = false;
for (final int i : Acclimatiser.slotAcclimatiser) {
if (!removed && this.getUtil().getStack(i) != null && this.getUtil().getStack(i).isItemEqual(acc)) {
this.getUtil().decreaseStack(i, 1);
for (int i : Acclimatiser.slotAcclimatiser) {
if (!removed && getUtil().getStack(i) != null && getUtil().getStack(i).isItemEqual(acc)) {
getUtil().decreaseStack(i, 1);
removed = true;
}
}
@@ -296,15 +323,14 @@ public class Acclimatiser
}
}
public static class ValidatorAcclimatiserItem extends SlotValidator
{
public static class ValidatorAcclimatiserItem extends SlotValidator {
public ValidatorAcclimatiserItem() {
super(null);
}
@Override
public boolean isValid(final ItemStack stack) {
for (final ToleranceType type : ToleranceType.values()) {
public boolean isValid(ItemStack stack) {
for (ToleranceType type : ToleranceType.values()) {
if (type.hasEffect(stack)) {
return true;
}
@@ -318,75 +344,43 @@ public class Acclimatiser
}
}
public enum ToleranceType
{
Temperature,
Humidity,
PH;
public float getEffect(final ItemStack stack) {
switch (this) {
case Temperature: {
return Acclimatiser.getTemperatureEffect(stack);
}
case Humidity: {
return Acclimatiser.getHumidityEffect(stack);
}
case PH: {
if (Gardening.isAcidFertiliser(stack)) {
return -0.5f * Gardening.getFertiliserStrength(stack);
}
if (Gardening.isAlkalineFertiliser(stack)) {
return 0.5f * Gardening.getFertiliserStrength(stack);
}
break;
}
}
return 0.0f;
}
public boolean hasEffect(final ItemStack stack) {
return this.getEffect(stack) != 0.0f;
}
}
private static class ToleranceSystem
{
private static class ToleranceSystem {
String uid;
IChromosomeType chromosomeOrdinal;
ToleranceType type;
private ToleranceSystem(final String uid, final IChromosomeType chromosomeOrdinal, final ToleranceType type) {
private ToleranceSystem(String uid, IChromosomeType chromosomeOrdinal, ToleranceType type) {
this.uid = uid;
this.chromosomeOrdinal = chromosomeOrdinal;
this.type = type;
}
public boolean canAlter(final ItemStack stack, final ItemStack acclim) {
final IIndividual member = AlleleManager.alleleRegistry.getIndividual(stack);
final IGenome genome = member.getGenome();
final IAlleleTolerance tolAllele = (IAlleleTolerance) genome.getActiveAllele(this.chromosomeOrdinal);
final Tolerance tol = Tolerance.get(tolAllele.getValue());
final float effect = this.type.getEffect(acclim);
public boolean canAlter(ItemStack stack, ItemStack acclim) {
IIndividual member = AlleleManager.alleleRegistry.getIndividual(stack);
IGenome genome = member.getGenome();
IAlleleTolerance tolAllele = (IAlleleTolerance) genome.getActiveAllele(chromosomeOrdinal);
Tolerance tol = Tolerance.get(tolAllele.getValue());
float effect = type.getEffect(acclim);
return (effect > 0.0f && tol.getBounds()[1] < 5) || (effect < 0.0f && tol.getBounds()[0] > -5);
}
public ItemStack alter(final ItemStack stack, final ItemStack acc) {
final Random rand = new Random();
final float effect = this.type.getEffect(acc);
public ItemStack alter(ItemStack stack, ItemStack acc) {
Random rand = new Random();
float effect = type.getEffect(acc);
if (rand.nextFloat() > Math.abs(effect)) {
return stack;
}
final IIndividual member = AlleleManager.alleleRegistry.getIndividual(stack);
final IGenome genome = member.getGenome();
final IAlleleTolerance tolAllele = (IAlleleTolerance) genome.getActiveAllele(this.chromosomeOrdinal);
final Tolerance tol = Tolerance.get(tolAllele.getValue());
final Tolerance newTol = Acclimatiser.alterTolerance(tol, effect);
IIndividual member = AlleleManager.alleleRegistry.getIndividual(stack);
IGenome genome = member.getGenome();
IAlleleTolerance tolAllele = (IAlleleTolerance) genome.getActiveAllele(chromosomeOrdinal);
Tolerance tol = Tolerance.get(tolAllele.getValue());
Tolerance newTol = Acclimatiser.alterTolerance(tol, effect);
if (rand.nextFloat() > 1.0f / (-newTol.getBounds()[0] + newTol.getBounds()[1])) {
return stack;
}
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
Inoculator.setGene(new Gene(newTol.getAllele(), this.chromosomeOrdinal, root), stack, rand.nextInt(2));
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
Inoculator.setGene(new Gene(newTol.getAllele(), chromosomeOrdinal, root), stack, rand.nextInt(2));
return stack;
}
}
@@ -1,29 +1,23 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import binnie.core.machines.IMachineType;
import binnie.core.machines.MachinePackage;
import binnie.core.resource.IBinnieTexture;
import net.minecraft.block.Block;
import binnie.genetics.Genetics;
import net.minecraft.item.ItemStack;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.IMachineType;
public enum AdvGeneticMachine implements IMachineType
{
public enum AdvGeneticMachine implements IMachineType {
Splicer(Splicer.PackageSplicer.class);
Class<? extends MachinePackage> clss;
protected Class<? extends MachinePackage> cls;
private AdvGeneticMachine(final Class<? extends MachinePackage> clss) {
this.clss = clss;
AdvGeneticMachine(Class<? extends MachinePackage> cls) {
this.cls = cls;
}
@Override
public Class<? extends MachinePackage> getPackageClass() {
return this.clss;
return cls;
}
@Override
@@ -31,14 +25,13 @@ public enum AdvGeneticMachine implements IMachineType
return true;
}
public ItemStack get(final int i) {
return new ItemStack(Genetics.packageAdvGenetic.getBlock(), i, this.ordinal());
public ItemStack get(int i) {
return new ItemStack(Genetics.packageAdvGenetic.getBlock(), i, ordinal());
}
public abstract static class PackageAdvGeneticBase extends GeneticMachine.PackageGeneticBase
{
protected PackageAdvGeneticBase(final String uid, final IBinnieTexture renderTexture, final int flashColour, final boolean powered) {
super(uid, renderTexture, flashColour, powered);
public abstract static class PackageAdvGeneticBase extends GeneticMachine.PackageGeneticBase {
protected PackageAdvGeneticBase(String uid, IBinnieTexture renderTexture, int flashColor, boolean powered) {
super(uid, renderTexture, flashColor, powered);
}
}
}
@@ -1,61 +1,60 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import net.minecraft.entity.player.EntityPlayer;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.particle.EntityFX;
import binnie.Binnie;
import binnie.core.BinnieCore;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.entity.item.EntityItem;
import binnie.core.machines.network.INetwork;
import binnie.core.machines.component.IRender;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.component.IRender;
import binnie.core.machines.inventory.ComponentChargedSlots;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.network.INetwork;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.inventory.ComponentChargedSlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.genetics.item.GeneticsItems;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.IMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.genetics.IIndividual;
import binnie.Binnie;
import binnie.genetics.api.IItemAnalysable;
import binnie.genetics.core.GeneticsGUI;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.item.GeneticsItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
public class Analyser
{
public static final int[] slotReserve;
public static final int slotTarget = 6;
public static final int[] slotFinished;
public static final int slotDye = 13;
import java.util.Random;
public static boolean isAnalysable(final ItemStack stack) {
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
public class Analyser {
public static int[] slotReserve = new int[]{0, 1, 2, 3, 4, 5};
public static int[] slotFinished = new int[]{7, 8, 9, 10, 11, 12};
public static int slotTarget = 6;
public static int slotDye = 13;
static {
}
public static boolean isAnalysable(ItemStack stack) {
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
return ind != null || stack.getItem() instanceof IItemAnalysable || Binnie.Genetics.getConversion(stack) != null;
}
public static boolean isAnalysed(final ItemStack stack) {
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
public static boolean isAnalysed(ItemStack stack) {
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(stack);
if (ind != null) {
return ind.isAnalyzed();
}
@@ -63,45 +62,42 @@ public class Analyser
}
public static ItemStack analyse(ItemStack stack) {
final ItemStack conv = Binnie.Genetics.getConversionStack(stack);
ItemStack conv = Binnie.Genetics.getConversionStack(stack);
if (conv != null) {
stack = conv;
}
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
if (root != null) {
final IIndividual ind = root.getMember(stack);
IIndividual ind = root.getMember(stack);
ind.analyze();
final NBTTagCompound nbttagcompound = new NBTTagCompound();
NBTTagCompound nbttagcompound = new NBTTagCompound();
ind.writeToNBT(nbttagcompound);
stack.setTagCompound(nbttagcompound);
return stack;
}
if (stack.getItem() instanceof IItemAnalysable) {
return ((IItemAnalysable) stack.getItem()).analyse(stack);
}
return stack;
}
static {
slotReserve = new int[] { 0, 1, 2, 3, 4, 5 };
slotFinished = new int[] { 7, 8, 9, 10, 11, 12 };
}
public static class PackageAnalyser extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageAnalyser extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageAnalyser() {
super("analyser", GeneticsTexture.Analyser, 9961727, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Analyser);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlotArray(Analyser.slotReserve, "input");
for (final InventorySlot slot : inventory.getSlots(Analyser.slotReserve)) {
for (InventorySlot slot : inventory.getSlots(Analyser.slotReserve)) {
slot.setValidator(new SlotValidatorUnanalysed());
slot.forbidExtraction();
}
inventory.addSlot(6, "analyse");
inventory.getSlot(6).setValidator(new SlotValidatorUnanalysed());
inventory.getSlot(6).setReadOnly();
@@ -110,7 +106,7 @@ public class Analyser
inventory.getSlot(13).forbidExtraction();
inventory.getSlot(13).setValidator(new SlotValidator(ModuleMachine.IconDye) {
@Override
public boolean isValid(final ItemStack itemStack) {
public boolean isValid(ItemStack itemStack) {
return itemStack.isItemEqual(GeneticsItems.DNADye.get(1));
}
@@ -119,19 +115,22 @@ public class Analyser
return "DNA Dye";
}
});
inventory.addSlotArray(Analyser.slotFinished, "output");
for (final InventorySlot slot : inventory.getSlots(Analyser.slotFinished)) {
for (InventorySlot slot : inventory.getSlots(Analyser.slotFinished)) {
slot.forbidInsertion();
slot.setReadOnly();
}
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Analyser.slotReserve, 6, 1);
transfer.addStorage(6, Analyser.slotFinished, new ComponentInventoryTransfer.Condition() {
@Override
public boolean fufilled(final ItemStack stack) {
public boolean fufilled(ItemStack stack) {
return Analyser.isAnalysed(stack);
}
});
new ComponentChargedSlots(machine).addCharge(13);
new ComponentPowerReceptor(machine, 500);
new ComponentAnalyserLogic(machine);
@@ -142,26 +141,22 @@ public class Analyser
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentAnalyserLogic extends ComponentProcessSetCost implements IProcess
{
private static final float DYE_PER_TICK = 0.002f;
public static class ComponentAnalyserLogic extends ComponentProcessSetCost implements IProcess {
private static float DYE_PER_TICK = 0.002f;
public ComponentAnalyserLogic(final Machine machine) {
public ComponentAnalyserLogic(Machine machine) {
super(machine, 9000, 300);
}
@Override
public ErrorState canWork() {
if (this.getUtil().isSlotEmpty(6)) {
if (getUtil().isSlotEmpty(6)) {
return new ErrorState.NoItem("No item to analyse", 6);
}
final boolean analysed = Analyser.isAnalysed(this.getUtil().getStack(6));
boolean analysed = Analyser.isAnalysed(getUtil().getStack(6));
if (analysed) {
return new ErrorState.InvalidItem("Already Analysed", "Item has already been analysed", 6);
}
@@ -170,8 +165,8 @@ public class Analyser
@Override
public ErrorState canProgress() {
if (this.getUtil().getSlotCharge(13) == 0.0f) {
return new ErrorState.Item("Insufficient Dye", "Not enough DNA dye to analyse", new int[] { 13 });
if (getUtil().getSlotCharge(13) == 0.0f) {
return new ErrorState.Item("Insufficient Dye", "Not enough DNA dye to analyse", new int[]{13});
}
return super.canProgress();
}
@@ -179,25 +174,24 @@ public class Analyser
@Override
protected void onFinishTask() {
super.onFinishTask();
ItemStack itemStack = this.getUtil().getStack(6);
ItemStack itemStack = getUtil().getStack(6);
itemStack = Analyser.analyse(itemStack);
this.getInventory().setInventorySlotContents(6, itemStack);
getInventory().setInventorySlotContents(6, itemStack);
}
@Override
protected void onTickTask() {
this.getUtil().useCharge(13, 0.002f);
getUtil().useCharge(13, 0.002f);
}
}
public static class SlotValidatorUnanalysed extends SlotValidator
{
public static class SlotValidatorUnanalysed extends SlotValidator {
public SlotValidatorUnanalysed() {
super(null);
}
@Override
public boolean isValid(final ItemStack itemStack) {
public boolean isValid(ItemStack itemStack) {
return Analyser.isAnalysable(itemStack) && !Analyser.isAnalysed(itemStack);
}
@@ -207,46 +201,50 @@ public class Analyser
}
}
public static class ComponentAnalyserFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick, IRender.Render, INetwork.TilePacketSync
{
private final EntityItem dummyEntityItem;
public static class ComponentAnalyserFX extends MachineComponent implements
IRender.RandomDisplayTick,
IRender.DisplayTick,
IRender.Render,
INetwork.TilePacketSync {
private EntityItem dummyEntityItem;
public ComponentAnalyserFX(final IMachine machine) {
public ComponentAnalyserFX(IMachine machine) {
super(machine);
this.dummyEntityItem = new EntityItem((World) null);
dummyEntityItem = new EntityItem(null);
}
@SideOnly(Side.CLIENT)
@Override
public void onRandomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
public void onRandomDisplayTick(World world, int x, int y, int z, Random rand) {
// ignored
}
@SideOnly(Side.CLIENT)
@Override
public void onDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
if (rand.nextFloat() < 1.0f && this.getUtil().getProcess().isInProgress()) {
public void onDisplayTick(World world, int x, int y, int z, Random rand) {
if (rand.nextFloat() < 1.0f && getUtil().getProcess().isInProgress()) {
BinnieCore.proxy.getMinecraftInstance().effectRenderer.addEffect(new EntityFX(world, x + 0.5, y + 1.3 + rand.nextDouble() * 0.2, z + 0.5, 0.0, 0.0, 0.0) {
double axisX = this.posX;
double axisZ = this.posZ;
double angle = this.rand.nextDouble() * 2.0 * 3.1415;
double axisX = posX;
double axisZ = posZ;
double angle = rand.nextDouble() * 2.0 * 3.1415;
{
this.axisX = 0.0;
this.axisZ = 0.0;
this.angle = 0.0;
this.motionX = 0.05 * (this.rand.nextDouble() - 0.5);
this.motionZ = 0.05 * (this.rand.nextDouble() - 0.5);
this.motionY = 0.0;
this.particleMaxAge = 25;
this.particleGravity = 0.05f;
this.noClip = true;
this.setRBGColorF(0.6f, 0.0f, 1.0f);
axisX = 0.0;
axisZ = 0.0;
angle = 0.0;
motionX = 0.05 * (rand.nextDouble() - 0.5);
motionZ = 0.05 * (rand.nextDouble() - 0.5);
motionY = 0.0;
particleMaxAge = 25;
particleGravity = 0.05f;
noClip = true;
setRBGColorF(0.6f, 0.0f, 1.0f);
}
@Override
public void onUpdate() {
super.onUpdate();
this.setAlphaF((float) Math.cos(1.57 * this.particleAge / this.particleMaxAge));
setAlphaF((float) Math.cos(1.57 * particleAge / particleMaxAge));
}
@Override
@@ -259,23 +257,25 @@ public class Analyser
@SideOnly(Side.CLIENT)
@Override
public void renderInWorld(final RenderItem renderItem, final double x, final double y, final double z) {
if (!this.getUtil().getProcess().isInProgress()) {
public void renderInWorld(RenderItem renderItem, double x, double y, double z) {
if (!getUtil().getProcess().isInProgress()) {
return;
}
final ItemStack stack = this.getUtil().getStack(6);
this.dummyEntityItem.worldObj = this.getMachine().getWorld();
this.dummyEntityItem.setEntityItemStack(stack);
final EntityItem dummyEntityItem = this.dummyEntityItem;
++dummyEntityItem.age;
ItemStack stack = getUtil().getStack(6);
dummyEntityItem.worldObj = getMachine().getWorld();
dummyEntityItem.setEntityItemStack(stack);
EntityItem dummyEntityItem = this.dummyEntityItem;
dummyEntityItem.age++;
this.dummyEntityItem.hoverStart = 0.0f;
if (stack == null) {
return;
}
final EntityPlayer player = BinnieCore.proxy.getPlayer();
final double dx = x + 0.5 - player.lastTickPosX;
final double dz = z + 0.5 - player.lastTickPosZ;
final double t = Math.atan2(dz, dx) * 180.0 / 3.1415;
EntityPlayer player = BinnieCore.proxy.getPlayer();
double dx = x + 0.5 - player.lastTickPosX;
double dz = z + 0.5 - player.lastTickPosZ;
double t = Math.atan2(dz, dx) * 180.0 / 3.1415;
GL11.glPushMatrix();
GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f);
GL11.glTranslatef(0.0f, -0.2f, 0.0f);
@@ -284,30 +284,35 @@ public class Analyser
}
@Override
public void syncToNBT(final NBTTagCompound nbt) {
final NBTTagCompound item = new NBTTagCompound();
final ItemStack stack = this.getUtil().getStack(6);
if (stack != null) {
stack.writeToNBT(item);
nbt.setTag("item", item);
public void syncToNBT(NBTTagCompound nbt) {
NBTTagCompound item = new NBTTagCompound();
ItemStack stack = getUtil().getStack(6);
if (stack == null) {
return;
}
stack.writeToNBT(item);
nbt.setTag("item", item);
}
@Override
public void syncFromNBT(final NBTTagCompound nbt) {
public void syncFromNBT(NBTTagCompound nbt) {
if (nbt.hasKey("item")) {
this.getUtil().setStack(6, ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")));
}
else {
this.getUtil().setStack(6, null);
getUtil().setStack(6, ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")));
} else {
getUtil().setStack(6, null);
}
}
@Override
public void onInventoryUpdate() {
if (this.getUtil().isServer()) {
this.getMachine().getWorld().markBlockForUpdate(this.getMachine().getTileEntity().xCoord, this.getMachine().getTileEntity().yCoord, this.getMachine().getTileEntity().zCoord);
if (!getUtil().isServer()) {
return;
}
IMachine machine = getMachine();
TileEntity tile = machine.getTileEntity();
machine.getWorld().markBlockForUpdate(tile.xCoord, tile.yCoord, tile.zCoord);
}
}
}
@@ -1,28 +1,23 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.component.IInteraction;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsGUI;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.component.IInteraction;
import binnie.core.machines.MachineComponent;
public class ComponentGeneticGUI extends MachineComponent implements IInteraction.RightClick
{
public class ComponentGeneticGUI extends MachineComponent implements IInteraction.RightClick {
GeneticsGUI id;
public ComponentGeneticGUI(final Machine machine, final GeneticsGUI id) {
public ComponentGeneticGUI(Machine machine, GeneticsGUI id) {
super(machine);
this.id = id;
}
@Override
public void onRightClick(final World world, final EntityPlayer player, final int x, final int y, final int z) {
Genetics.proxy.openGui(this.id, player, x, y, z);
public void onRightClick(World world, EntityPlayer player, int x, int y, int z) {
Genetics.proxy.openGui(id, player, x, y, z);
}
}
@@ -1,89 +1,84 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import java.util.Map;
import binnie.Binnie;
import java.util.HashMap;
import java.util.ArrayList;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.entity.player.EntityPlayer;
import binnie.core.machines.inventory.SetList;
import binnie.core.machines.Machine;
import net.minecraft.item.ItemStack;
import java.util.List;
import net.minecraft.inventory.IInventory;
import binnie.core.machines.inventory.ComponentInventory;
import binnie.core.machines.inventory.SetList;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public abstract class ComponentIndexerInventory<T> extends ComponentInventory implements IInventory
{
int indexerSize;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
// TODO unused class?
public abstract class ComponentIndexerInventory<T> extends ComponentInventory implements IInventory {
public int guiRefreshCounter;
List<ItemStack> indexerInventory;
public List<Integer> sortedInventory;
int indexerSize;
List<ItemStack> indexerInventory;
T sortingMode;
boolean needsSorting;
public ComponentIndexerInventory(final Machine machine) {
public ComponentIndexerInventory(Machine machine) {
super(machine);
this.indexerSize = -1;
this.guiRefreshCounter = 0;
this.indexerInventory = new SetList<ItemStack>();
this.sortedInventory = new SetList<Integer>();
this.needsSorting = true;
indexerSize = -1;
guiRefreshCounter = 0;
indexerInventory = new SetList<>();
sortedInventory = new SetList<>();
needsSorting = true;
}
@Override
public int getSizeInventory() {
if (this.indexerSize > 0) {
return this.indexerSize + 1;
if (indexerSize > 0) {
return indexerSize + 1;
}
return this.indexerInventory.size() + 1;
return indexerInventory.size() + 1;
}
@Override
public ItemStack getStackInSlot(final int index) {
if (index >= 0 && index < this.indexerInventory.size()) {
return this.indexerInventory.get(index);
public ItemStack getStackInSlot(int index) {
if (index >= 0 && index < indexerInventory.size()) {
return indexerInventory.get(index);
}
return null;
}
@Override
public ItemStack decrStackSize(final int index, final int amount) {
public ItemStack decrStackSize(int index, int amount) {
if (index >= 0) {
final ItemStack returnStack = this.getStackInSlot(index).copy();
this.setInventorySlotContents(index, null);
ItemStack returnStack = getStackInSlot(index).copy();
setInventorySlotContents(index, null);
return returnStack;
}
return null;
}
@Override
public ItemStack getStackInSlotOnClosing(final int var1) {
public ItemStack getStackInSlotOnClosing(int var1) {
return null;
}
@Override
public void markDirty() {
super.markDirty();
++this.guiRefreshCounter;
guiRefreshCounter++;
}
@Override
public void setInventorySlotContents(final int index, final ItemStack itemStack) {
if (index >= 0 && index < this.indexerInventory.size()) {
this.indexerInventory.set(index, itemStack);
public void setInventorySlotContents(int index, ItemStack itemStack) {
if (index >= 0 && index < indexerInventory.size()) {
indexerInventory.set(index, itemStack);
} else if (itemStack != null) {
indexerInventory.add(itemStack);
}
else if (itemStack != null) {
this.indexerInventory.add(itemStack);
}
this.needsSorting = true;
this.markDirty();
needsSorting = true;
markDirty();
}
@Override
@@ -97,33 +92,35 @@ public abstract class ComponentIndexerInventory<T> extends ComponentInventory im
}
@Override
public boolean isUseableByPlayer(final EntityPlayer var1) {
public boolean isUseableByPlayer(EntityPlayer var1) {
return true;
}
@Override
public void openInventory() {
// ignored
}
@Override
public void closeInventory() {
}
public void setMode(final T mode) {
this.sortingMode = mode;
this.needsSorting = true;
// ignored
}
public T getMode() {
return this.sortingMode;
return sortingMode;
}
public void setMode(T mode) {
sortingMode = mode;
needsSorting = true;
}
@Override
public void writeToNBT(final NBTTagCompound nbttagcompound) {
public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound);
final NBTTagList indexerNBT = new NBTTagList();
for (final ItemStack item : this.indexerInventory) {
final NBTTagCompound itemNBT = new NBTTagCompound();
NBTTagList indexerNBT = new NBTTagList();
for (ItemStack item : indexerInventory) {
NBTTagCompound itemNBT = new NBTTagCompound();
item.writeToNBT(itemNBT);
indexerNBT.appendTag(itemNBT);
}
@@ -131,124 +128,121 @@ public abstract class ComponentIndexerInventory<T> extends ComponentInventory im
}
@Override
public void readFromNBT(final NBTTagCompound nbttagcompound) {
public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound);
final NBTTagList indexerNBT = nbttagcompound.getTagList("indexer", 10);
this.indexerInventory.clear();
NBTTagList indexerNBT = nbttagcompound.getTagList("indexer", 10);
indexerInventory.clear();
for (int i = 0; i < indexerNBT.tagCount(); ++i) {
final NBTTagCompound itemNBT = indexerNBT.getCompoundTagAt(i);
this.setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(itemNBT));
NBTTagCompound itemNBT = indexerNBT.getCompoundTagAt(i);
setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(itemNBT));
}
this.needsSorting = true;
this.markDirty();
needsSorting = true;
markDirty();
}
public abstract void Sort();
public static class ComponentApiaristIndexerInventory extends ComponentIndexerInventory<ComponentApiaristIndexerInventory.Mode> implements IInventory
{
public ComponentApiaristIndexerInventory(final Machine machine) {
public static class ComponentApiaristIndexerInventory extends ComponentIndexerInventory<ComponentApiaristIndexerInventory.Mode> implements IInventory {
public ComponentApiaristIndexerInventory(Machine machine) {
super(machine);
}
@Override
public void Sort() {
int i = 0;
while (i < this.indexerInventory.size()) {
if (this.indexerInventory.get(i) == null) {
this.indexerInventory.remove(i);
}
else {
while (i < indexerInventory.size()) {
if (indexerInventory.get(i) == null) {
indexerInventory.remove(i);
} else {
++i;
}
}
if (!this.needsSorting) {
if (!needsSorting) {
return;
}
this.needsSorting = false;
++this.guiRefreshCounter;
switch (this.sortingMode) {
case Species:
case Type: {
class SpeciesList
{
public List<Integer> drones;
public List<Integer> queens;
public List<Integer> princesses;
public List<ItemStack> bees;
SpeciesList() {
this.drones = new ArrayList<Integer>();
this.queens = new ArrayList<Integer>();
this.princesses = new ArrayList<Integer>();
this.bees = new ArrayList<ItemStack>();
}
public void add(final ItemStack stack) {
this.bees.add(stack);
}
}
final Map<Integer, SpeciesList> speciesList = new HashMap<Integer, SpeciesList>();
for (final ItemStack itemStack : this.indexerInventory) {
final int species = itemStack.getItemDamage();
if (!speciesList.containsKey(species)) {
speciesList.put(species, new SpeciesList());
}
speciesList.get(species).add(itemStack);
}
for (final SpeciesList sortableList : speciesList.values()) {
for (final ItemStack beeStack : sortableList.bees) {
if (Binnie.Genetics.getBeeRoot().isDrone(beeStack)) {
sortableList.drones.add(this.indexerInventory.indexOf(beeStack));
}
else if (Binnie.Genetics.getBeeRoot().isMated(beeStack)) {
sortableList.queens.add(this.indexerInventory.indexOf(beeStack));
}
else {
sortableList.princesses.add(this.indexerInventory.indexOf(beeStack));
}
}
}
this.sortedInventory = new SetList<Integer>();
switch (this.sortingMode) {
case Species: {
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
this.sortedInventory.addAll(speciesList.get(j).queens);
this.sortedInventory.addAll(speciesList.get(j).princesses);
this.sortedInventory.addAll(speciesList.get(j).drones);
}
}
break;
}
needsSorting = false;
++guiRefreshCounter;
switch (sortingMode) {
case Species:
case Type: {
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
this.sortedInventory.addAll(speciesList.get(j).queens);
class SpeciesList {
public List<Integer> drones;
public List<Integer> queens;
public List<Integer> princesses;
public List<ItemStack> bees;
SpeciesList() {
drones = new ArrayList<>();
queens = new ArrayList<>();
princesses = new ArrayList<>();
bees = new ArrayList<>();
}
public void add(ItemStack stack) {
bees.add(stack);
}
}
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
this.sortedInventory.addAll(speciesList.get(j).princesses);
Map<Integer, SpeciesList> speciesList = new HashMap<Integer, SpeciesList>();
for (ItemStack itemStack : indexerInventory) {
int species = itemStack.getItemDamage();
if (!speciesList.containsKey(species)) {
speciesList.put(species, new SpeciesList());
}
speciesList.get(species).add(itemStack);
}
for (SpeciesList sortableList : speciesList.values()) {
for (ItemStack beeStack : sortableList.bees) {
if (Binnie.Genetics.getBeeRoot().isDrone(beeStack)) {
sortableList.drones.add(indexerInventory.indexOf(beeStack));
} else if (Binnie.Genetics.getBeeRoot().isMated(beeStack)) {
sortableList.queens.add(indexerInventory.indexOf(beeStack));
} else {
sortableList.princesses.add(indexerInventory.indexOf(beeStack));
}
}
}
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
this.sortedInventory.addAll(speciesList.get(j).drones);
}
sortedInventory = new SetList<>();
switch (sortingMode) {
case Species:
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
sortedInventory.addAll(speciesList.get(j).queens);
sortedInventory.addAll(speciesList.get(j).princesses);
sortedInventory.addAll(speciesList.get(j).drones);
}
}
break;
case Type:
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
sortedInventory.addAll(speciesList.get(j).queens);
}
}
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
sortedInventory.addAll(speciesList.get(j).princesses);
}
}
for (int j = 0; j < 1024; ++j) {
if (speciesList.containsKey(j)) {
sortedInventory.addAll(speciesList.get(j).drones);
}
}
break;
}
break;
}
default: {
sortedInventory.clear();
for (i = 0; i < indexerInventory.size(); ++i) {
sortedInventory.add(i);
}
break;
}
break;
}
default: {
this.sortedInventory.clear();
for (i = 0; i < this.indexerInventory.size(); ++i) {
this.sortedInventory.add(i);
}
break;
}
}
}
@@ -258,15 +252,14 @@ public abstract class ComponentIndexerInventory<T> extends ComponentInventory im
}
@Override
public boolean isItemValidForSlot(final int i, final ItemStack itemstack) {
public boolean isItemValidForSlot(int i, ItemStack itemstack) {
return true;
}
public static enum Mode
{
public enum Mode {
None,
Species,
Type;
Type
}
}
}
@@ -1,66 +1,61 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import net.minecraft.client.particle.EntityFX;
import binnie.core.BinnieCore;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Random;
import net.minecraft.world.World;
import binnie.core.machines.component.IRender;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.inventory.IChargedSlots;
import forestry.api.genetics.ISpeciesRoot;
import binnie.Binnie;
import forestry.api.genetics.AlleleManager;
import net.minecraft.item.ItemStack;
import binnie.genetics.item.GeneticLiquid;
import binnie.core.BinnieCore;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.component.IRender;
import binnie.core.machines.inventory.ComponentChargedSlots;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.IChargedSlots;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.inventory.TankValidator;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.ComponentChargedSlots;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import net.minecraftforge.fluids.FluidStack;
import binnie.core.machines.inventory.TankValidator;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.SlotValidator;
import binnie.genetics.item.GeneticsItems;
import binnie.core.machines.IMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.genetics.item.GeneticLiquid;
import binnie.genetics.item.GeneticsItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
public class Genepool
{
public static final int slotBee = 0;
public static final int[] slotReserve;
public static final int tankDNA = 0;
public static final int tankEthanol = 1;
public static final int slotEnzyme = 7;
import java.util.Random;
public class Genepool {
public static int slotBee = 0;
public static int[] slotReserve;
public static int tankDNA = 0;
public static int tankEthanol = 1;
public static int slotEnzyme = 7;
static {
slotReserve = new int[] { 1, 2, 3, 4, 5, 6 };
slotReserve = new int[]{1, 2, 3, 4, 5, 6};
}
public static class PackageGenepool extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageGenepool extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageGenepool() {
super("genepool", GeneticsTexture.Genepool, 12661942, true);
super("genepool", GeneticsTexture.Genepool, 0xc134b6, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Genepool);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlot(7, "enzyme");
inventory.getSlot(7).setValidator(new SlotValidator.Item(GeneticsItems.Enzyme.get(1), ModuleMachine.IconEnzyme));
inventory.getSlot(7).forbidExtraction();
@@ -69,11 +64,13 @@ public class Genepool
inventory.getSlot(0).setReadOnly();
inventory.getSlot(0).forbidExtraction();
inventory.addSlotArray(Genepool.slotReserve, "input");
for (final InventorySlot slot : inventory.getSlots(Genepool.slotReserve)) {
for (InventorySlot slot : inventory.getSlots(Genepool.slotReserve)) {
slot.setValidator(new SlotValidator.Individual());
slot.forbidExtraction();
}
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
ComponentTankContainer tanks = new ComponentTankContainer(machine);
tanks.addTank(0, "output", 2000);
tanks.getTankSlot(0).setReadOnly();
tanks.addTank(1, "input", 1000);
@@ -85,15 +82,16 @@ public class Genepool
}
@Override
public boolean isValid(final FluidStack liquid) {
public boolean isValid(FluidStack liquid) {
return liquid.getFluid().getName() == "bioethanol";
}
});
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Genepool.slotReserve, 0, 1);
new ComponentPowerReceptor(machine, 1600);
new ComponentGenepoolLogic(machine);
final ComponentChargedSlots chargedSlots = new ComponentChargedSlots(machine);
ComponentChargedSlots chargedSlots = new ComponentChargedSlots(machine);
chargedSlots.addCharge(7);
new ComponentGenepoolFX(machine);
}
@@ -102,28 +100,23 @@ public class Genepool
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentGenepoolLogic extends ComponentProcessSetCost implements IProcess
{
public static class ComponentGenepoolLogic extends ComponentProcessSetCost implements IProcess {
float enzymePerProcess;
float ethanolPerProcess;
private float ethanolDrain;
public ComponentGenepoolLogic(final Machine machine) {
public ComponentGenepoolLogic(Machine machine) {
super(machine, 8000, 400);
this.enzymePerProcess = 0.25f;
this.ethanolPerProcess = 50.0f;
this.ethanolDrain = 0.0f;
enzymePerProcess = 0.25f;
ethanolPerProcess = 50.0f;
ethanolDrain = 0.0f;
}
@Override
public ErrorState canWork() {
if (this.getUtil().isSlotEmpty(0)) {
if (getUtil().isSlotEmpty(0)) {
return new ErrorState.NoItem("No Individual", 0);
}
return super.canWork();
@@ -131,13 +124,13 @@ public class Genepool
@Override
public ErrorState canProgress() {
if (!this.getUtil().spaceInTank(0, this.getDNAAmount(this.getUtil().getStack(0)))) {
return new ErrorState.NoSpace("Not enough room in Tank", new int[] { 0 });
if (!getUtil().spaceInTank(0, getDNAAmount(getUtil().getStack(0)))) {
return new ErrorState.NoSpace("Not enough room in Tank", new int[]{0});
}
if (!this.getUtil().liquidInTank(1, 1)) {
if (!getUtil().liquidInTank(1, 1)) {
return new ErrorState.InsufficientLiquid("Not enough Ethanol", 1);
}
if (this.getUtil().getSlotCharge(7) == 0.0f) {
if (getUtil().getSlotCharge(7) == 0.0f) {
return new ErrorState.NoItem("Insufficient Enzyme", 7);
}
return super.canProgress();
@@ -146,13 +139,13 @@ public class Genepool
@Override
protected void onFinishTask() {
super.onFinishTask();
final int amount = this.getDNAAmount(this.getUtil().getStack(0));
this.getUtil().fillTank(0, GeneticLiquid.RawDNA.get(amount));
this.getUtil().deleteStack(0);
int amount = getDNAAmount(getUtil().getStack(0));
getUtil().fillTank(0, GeneticLiquid.RawDNA.get(amount));
getUtil().deleteStack(0);
}
private int getDNAAmount(final ItemStack stack) {
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
private int getDNAAmount(ItemStack stack) {
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack);
if (root == null) {
return 10;
}
@@ -170,52 +163,52 @@ public class Genepool
@Override
protected void onTickTask() {
this.ethanolDrain += this.getDNAAmount(this.getUtil().getStack(0)) * 1.2f * this.getProgressPerTick() / 100.0f;
if (this.ethanolDrain >= 1.0f) {
this.getUtil().drainTank(1, 1);
--this.ethanolDrain;
ethanolDrain += getDNAAmount(getUtil().getStack(0)) * 1.2f * getProgressPerTick() / 100.0f;
if (ethanolDrain >= 1.0f) {
getUtil().drainTank(1, 1);
ethanolDrain--;
}
this.getMachine().getInterface(IChargedSlots.class).alterCharge(7, -this.enzymePerProcess * this.getProgressPerTick() / 100.0f);
getMachine().getInterface(IChargedSlots.class).alterCharge(7, -enzymePerProcess * getProgressPerTick() / 100.0f);
}
}
public static class ComponentGenepoolFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick
{
public ComponentGenepoolFX(final IMachine machine) {
public static class ComponentGenepoolFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick {
public ComponentGenepoolFX(IMachine machine) {
super(machine);
}
@SideOnly(Side.CLIENT)
@Override
public void onRandomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
public void onRandomDisplayTick(World world, int x, int y, int z, Random rand) {
// ignored
}
@SideOnly(Side.CLIENT)
@Override
public void onDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
if (rand.nextFloat() < 1.0f && this.getUtil().getProcess().isInProgress()) {
public void onDisplayTick(World world, int x, int y, int z, Random rand) {
if (rand.nextFloat() < 1.0f && getUtil().getProcess().isInProgress()) {
BinnieCore.proxy.getMinecraftInstance().effectRenderer.addEffect(new EntityFX(world, x + 0.3 + rand.nextDouble() * 0.4, y + 1, z + 0.3 + rand.nextDouble() * 0.4, 0.0, 0.0, 0.0) {
double axisX = this.posX;
double axisZ = this.posZ;
double angle = this.rand.nextDouble() * 2.0 * 3.1415;
double axisX = posX;
double axisZ = posZ;
double angle = rand.nextDouble() * 2.0 * 3.1415;
{
this.axisX = 0.0;
this.axisZ = 0.0;
this.angle = 0.0;
this.motionX = 0.0;
this.motionZ = 0.0;
this.motionY = this.rand.nextFloat() * 0.01;
this.particleMaxAge = 25;
this.particleGravity = 0.0f;
this.noClip = true;
this.setRBGColorF(0.4f + 0.6f * this.rand.nextFloat(), 0.6f * this.rand.nextFloat(), 0.6f + 0.4f * this.rand.nextFloat());
axisX = 0.0;
axisZ = 0.0;
angle = 0.0;
motionX = 0.0;
motionZ = 0.0;
motionY = rand.nextFloat() * 0.01;
particleMaxAge = 25;
particleGravity = 0.0f;
noClip = true;
setRBGColorF(0.4f + 0.6f * rand.nextFloat(), 0.6f * rand.nextFloat(), 0.6f + 0.4f * rand.nextFloat());
}
@Override
public void onUpdate() {
super.onUpdate();
this.setAlphaF((float) Math.cos(1.57 * this.particleAge / this.particleMaxAge));
setAlphaF((float) Math.cos(1.57 * particleAge / particleMaxAge));
}
@Override
@@ -1,37 +1,31 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import net.minecraft.client.renderer.RenderBlocks;
import binnie.core.machines.Machine;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.resource.IBinnieTexture;
import binnie.core.resource.BinnieResource;
import net.minecraft.block.Block;
import binnie.genetics.Genetics;
import net.minecraft.item.ItemStack;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.IMachineType;
import binnie.core.machines.Machine;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.TileEntityMachine;
import binnie.core.resource.BinnieResource;
import binnie.core.resource.IBinnieTexture;
import binnie.genetics.Genetics;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
public enum GeneticMachine implements IMachineType
{
public enum GeneticMachine implements IMachineType {
Isolator(Isolator.PackageIsolator.class),
Sequencer(Sequencer.PackageSequencer.class),
Polymeriser(Polymeriser.PackagePolymeriser.class),
Inoculator(Inoculator.PackageInoculator.class);
Class<? extends MachinePackage> clss;
protected Class<? extends MachinePackage> clss;
private GeneticMachine(final Class<? extends MachinePackage> clss) {
GeneticMachine(Class<? extends MachinePackage> clss) {
this.clss = clss;
}
@Override
public Class<? extends MachinePackage> getPackageClass() {
return this.clss;
return clss;
}
@Override
@@ -39,19 +33,18 @@ public enum GeneticMachine implements IMachineType
return true;
}
public ItemStack get(final int i) {
return new ItemStack(Genetics.packageGenetic.getBlock(), i, this.ordinal());
public ItemStack get(int i) {
return new ItemStack(Genetics.packageGenetic.getBlock(), i, ordinal());
}
public abstract static class PackageGeneticBase extends MachinePackage
{
BinnieResource renderTexture;
int colour;
public abstract static class PackageGeneticBase extends MachinePackage {
protected BinnieResource renderTexture;
protected int colour;
protected PackageGeneticBase(final String uid, final IBinnieTexture renderTexture, final int flashColour, final boolean powered) {
protected PackageGeneticBase(String uid, IBinnieTexture renderTexture, int flashColor, boolean powered) {
super(uid, powered);
this.renderTexture = renderTexture.getTexture();
this.colour = flashColour;
colour = flashColor;
}
@Override
@@ -60,12 +53,8 @@ public enum GeneticMachine implements IMachineType
}
@Override
public void register() {
}
@Override
public void renderMachine(final Machine machine, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer) {
MachineRendererGenetics.instance.renderMachine(machine, this.colour, this.renderTexture, x, y, z, partialTick);
public void renderMachine(Machine machine, double x, double y, double z, float partialTick, RenderBlocks renderer) {
MachineRendererGenetics.instance.renderMachine(machine, colour, renderTexture, x, y, z, partialTick);
}
}
}
@@ -1,143 +1,133 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import binnie.core.machines.transfer.TransferRequest;
import binnie.core.machines.power.ErrorState;
import java.util.Random;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.power.ComponentProcessIndefinate;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import java.util.ArrayList;
import forestry.api.apiculture.IBee;
import binnie.core.machines.MachineUtil;
import forestry.api.apiculture.EnumBeeType;
import binnie.core.BinnieCore;
import net.minecraft.init.Items;
import binnie.genetics.item.GeneticsItems;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import binnie.genetics.item.GeneticLiquid;
import binnie.Binnie;
import binnie.core.BinnieCore;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineUtil;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessIndefinate;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.transfer.TransferRequest;
import binnie.genetics.api.IIncubatorRecipe;
import java.util.List;
import binnie.genetics.core.GeneticsGUI;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.item.GeneticLiquid;
import binnie.genetics.item.GeneticsItems;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.apiculture.IBee;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fluids.FluidStack;
public class Incubator
{
public static final int[] slotQueue;
public static final int slotIncubator = 3;
public static final int[] slotOutput;
public static final int tankInput = 0;
public static final int tankOutput = 1;
private static List<IIncubatorRecipe> RECIPES;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Incubator {
public static int[] slotQueue = new int[]{0, 1, 2};
public static int[] slotOutput = new int[]{4, 5, 6};
public static int slotIncubator = 3;
public static int tankInput = 0;
public static int tankOutput = 1;
private static List<IIncubatorRecipe> RECIPES = new ArrayList<>();
public static void addRecipes() {
Incubator.RECIPES.add(new IncubatorRecipe(Binnie.Liquid.getLiquidStack("water", 25), GeneticLiquid.GrowthMedium.get(25), 0.2f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return GeneticsItems.GrowthMedium.get(1).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.GrowthMedium.get(25), GeneticLiquid.Bacteria.get(5), 0.2f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return new ItemStack(Items.wheat).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.Bacteria.get(0), GeneticLiquid.Bacteria.get(5), 0.05f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return GeneticsItems.GrowthMedium.get(1).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.Bacteria.get(2), null, 0.5f, 0.2f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return stack.getItem() == Items.sugar;
}
}.setOutputStack(GeneticsItems.Enzyme.get(1)));
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.BacteriaPoly.get(0), GeneticLiquid.BacteriaPoly.get(5), 0.05f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return GeneticsItems.GrowthMedium.get(1).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.BacteriaVector.get(0), GeneticLiquid.BacteriaVector.get(5), 0.05f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return GeneticsItems.GrowthMedium.get(1).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.Bacteria.get(10), GeneticLiquid.BacteriaPoly.get(10), 0.1f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return new ItemStack(Items.dye, 1, 15).isItemEqual(stack);
}
});
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.Bacteria.get(10), GeneticLiquid.BacteriaVector.get(10), 0.05f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return new ItemStack(Items.blaze_powder).isItemEqual(stack);
}
});
if (BinnieCore.isApicultureActive()) {
Incubator.RECIPES.add(new IncubatorRecipe(GeneticLiquid.GrowthMedium.get(50), null, 1.0f, 0.05f) {
@Override
public boolean isItemStack(final ItemStack stack) {
public boolean isItemStack(ItemStack stack) {
return Binnie.Genetics.getBeeRoot().isMember(stack) && Binnie.Genetics.getBeeRoot().getType(stack) == EnumBeeType.LARVAE;
}
@Override
public ItemStack getOutputStack(final MachineUtil machine) {
final ItemStack larvae = machine.getStack(3);
final IBee bee = Binnie.Genetics.getBeeRoot().getMember(larvae);
public ItemStack getOutputStack(MachineUtil machine) {
ItemStack larvae = machine.getStack(3);
IBee bee = Binnie.Genetics.getBeeRoot().getMember(larvae);
return Binnie.Genetics.getBeeRoot().getMemberStack(bee, EnumBeeType.DRONE.ordinal());
}
});
}
}
static {
slotQueue = new int[] { 0, 1, 2 };
slotOutput = new int[] { 4, 5, 6 };
Incubator.RECIPES = new ArrayList<IIncubatorRecipe>();
}
public static class PackageIncubator extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageIncubator extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageIncubator() {
super("incubator", GeneticsTexture.Incubator, 16767313, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Incubator);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlotArray(Incubator.slotQueue, "input");
for (final InventorySlot slot : inventory.getSlots(Incubator.slotQueue)) {
for (InventorySlot slot : inventory.getSlots(Incubator.slotQueue)) {
slot.forbidExtraction();
}
inventory.addSlot(3, "incubator");
inventory.getSlot(3).forbidInteraction();
inventory.getSlot(3).setReadOnly();
inventory.addSlotArray(Incubator.slotOutput, "output");
for (final InventorySlot slot : inventory.getSlots(Incubator.slotOutput)) {
for (InventorySlot slot : inventory.getSlots(Incubator.slotOutput)) {
slot.forbidInsertion();
slot.setReadOnly();
}
new ComponentPowerReceptor(machine, 2000);
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
ComponentTankContainer tanks = new ComponentTankContainer(machine);
tanks.addTank(0, "input", 2000).forbidExtraction();
tanks.addTank(1, "output", 2000).setReadOnly();
new ComponentIncubatorLogic(machine);
@@ -147,28 +137,23 @@ public class Incubator
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentIncubatorLogic extends ComponentProcessIndefinate implements IProcess
{
public static class ComponentIncubatorLogic extends ComponentProcessIndefinate implements IProcess {
IIncubatorRecipe recipe;
private Random rand;
private boolean roomForOutput;
public ComponentIncubatorLogic(final Machine machine) {
public ComponentIncubatorLogic(Machine machine) {
super(machine, 2.0f);
this.recipe = null;
this.rand = new Random();
this.roomForOutput = true;
recipe = null;
rand = new Random();
roomForOutput = true;
}
@Override
public ErrorState canWork() {
if (this.recipe == null) {
if (recipe == null) {
return new ErrorState("No Recipe", "There is no valid recipe");
}
return super.canWork();
@@ -176,11 +161,11 @@ public class Incubator
@Override
public ErrorState canProgress() {
if (this.recipe != null) {
if (!this.recipe.isInputLiquidSufficient(this.getUtil().getFluid(0))) {
if (recipe != null) {
if (!recipe.isInputLiquidSufficient(getUtil().getFluid(0))) {
return new ErrorState.InsufficientLiquid("Not enough incubation liquid", 0);
}
if (!this.roomForOutput) {
if (!roomForOutput) {
return new ErrorState.TankSpace("No room for output", 1);
}
}
@@ -189,20 +174,20 @@ public class Incubator
@Override
protected void onTickTask() {
if (this.rand.nextInt(20) == 0 && this.recipe != null && this.rand.nextFloat() < this.recipe.getChance()) {
this.recipe.doTask(this.getUtil());
if (rand.nextInt(20) == 0 && recipe != null && rand.nextFloat() < recipe.getChance()) {
recipe.doTask(getUtil());
}
}
@Override
public boolean inProgress() {
return this.recipe != null;
return recipe != null;
}
private IIncubatorRecipe getRecipe(final ItemStack stack, final FluidStack liquid) {
for (final IIncubatorRecipe recipe : Incubator.RECIPES) {
final boolean rightLiquid = recipe.isInputLiquid(liquid);
final boolean rightItem = recipe.isItemStack(stack);
private IIncubatorRecipe getRecipe(ItemStack stack, FluidStack liquid) {
for (IIncubatorRecipe recipe : Incubator.RECIPES) {
boolean rightLiquid = recipe.isInputLiquid(liquid);
boolean rightItem = recipe.isItemStack(stack);
if (rightLiquid && rightItem) {
return recipe;
}
@@ -213,36 +198,39 @@ public class Incubator
@Override
public void onInventoryUpdate() {
super.onInventoryUpdate();
if (!this.getUtil().isServer()) {
if (!getUtil().isServer()) {
return;
}
final FluidStack liquid = this.getUtil().getFluid(0);
final ItemStack incubator = this.getUtil().getStack(3);
if (this.recipe != null && (incubator == null || liquid == null || !this.recipe.isInputLiquid(liquid) || !this.recipe.isItemStack(incubator))) {
this.recipe = null;
final ItemStack leftover = new TransferRequest(incubator, this.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation().transfer(true);
this.getUtil().setStack(3, leftover);
FluidStack liquid = getUtil().getFluid(0);
ItemStack incubator = getUtil().getStack(3);
if (recipe != null && (incubator == null || liquid == null || !recipe.isInputLiquid(liquid) || !recipe.isItemStack(incubator))) {
recipe = null;
ItemStack leftover = new TransferRequest(incubator, getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation().transfer(true);
getUtil().setStack(3, leftover);
}
if (this.recipe == null) {
if (recipe == null) {
if (liquid == null) {
return;
}
if (incubator != null) {
final IIncubatorRecipe recipe = this.getRecipe(incubator, liquid);
IIncubatorRecipe recipe = getRecipe(incubator, liquid);
if (recipe != null) {
this.recipe = recipe;
return;
}
}
IIncubatorRecipe potential = null;
int potentialSlot = 0;
for (final int slot : Incubator.slotQueue) {
final ItemStack stack = this.getUtil().getStack(slot);
for (int slot : Incubator.slotQueue) {
ItemStack stack = getUtil().getStack(slot);
if (stack != null) {
if (potential == null) {
for (final IIncubatorRecipe recipe2 : Incubator.RECIPES) {
final boolean rightLiquid = recipe2.isInputLiquid(liquid);
final boolean rightItem = recipe2.isItemStack(stack);
for (IIncubatorRecipe recipe2 : Incubator.RECIPES) {
boolean rightLiquid = recipe2.isInputLiquid(liquid);
boolean rightItem = recipe2.isItemStack(stack);
if (rightLiquid && rightItem) {
potential = recipe2;
potentialSlot = slot;
@@ -252,105 +240,103 @@ public class Incubator
}
}
}
if (potential != null) {
final TransferRequest removal = new TransferRequest(incubator, this.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
TransferRequest removal = new TransferRequest(incubator, getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
if (removal.transfer(false) == null) {
this.recipe = potential;
recipe = potential;
}
removal.transfer(true);
final ItemStack stack2 = this.getUtil().getStack(potentialSlot);
this.getUtil().setStack(potentialSlot, null);
this.getUtil().setStack(3, stack2);
ItemStack stack2 = getUtil().getStack(potentialSlot);
getUtil().setStack(potentialSlot, null);
getUtil().setStack(3, stack2);
}
}
if (this.recipe != null) {
this.roomForOutput = this.recipe.roomForOutput(this.getUtil());
if (recipe != null) {
roomForOutput = recipe.roomForOutput(getUtil());
}
}
}
private class IncubatorCrafting
{
ItemStack input;
FluidStack fluid;
}
private abstract static class IncubatorRecipe implements IIncubatorRecipe {
protected FluidStack input;
protected FluidStack output;
protected float lossChance;
protected ItemStack outputStack;
protected float tickChance;
private abstract static class IncubatorRecipe implements IIncubatorRecipe
{
FluidStack input;
FluidStack output;
float lossChance;
ItemStack outputStack;
float tickChance;
@Override
public float getChance() {
return this.tickChance;
}
public IncubatorRecipe(final FluidStack input, final FluidStack output, final float lossChance) {
public IncubatorRecipe(FluidStack input, FluidStack output, float lossChance) {
this(input, output, lossChance, 1.0f);
}
public IncubatorRecipe(final FluidStack input, final FluidStack output, final float lossChance, final float chance) {
public IncubatorRecipe(FluidStack input, FluidStack output, float lossChance, float chance) {
this.input = input;
this.output = output;
this.lossChance = lossChance;
this.tickChance = chance;
tickChance = chance;
}
@Override
public boolean isInputLiquid(final FluidStack fluid) {
return fluid != null && this.input.isFluidEqual(fluid);
public float getChance() {
return tickChance;
}
@Override
public boolean isInputLiquidSufficient(final FluidStack fluid) {
return fluid != null && fluid.amount >= 500;
public boolean isInputLiquid(FluidStack liquid) {
return liquid != null && input.isFluidEqual(liquid);
}
@Override
public void doTask(final MachineUtil machine) {
machine.drainTank(0, this.input.amount);
if (this.output != null) {
machine.fillTank(1, this.output);
public boolean isInputLiquidSufficient(FluidStack liquid) {
return liquid != null && liquid.amount >= 500;
}
@Override
public void doTask(MachineUtil machine) {
machine.drainTank(0, input.amount);
if (output != null) {
machine.fillTank(1, output);
}
this.outputStack = this.getOutputStack(machine);
if (this.outputStack != null) {
final ItemStack output = this.outputStack.copy();
final TransferRequest product = new TransferRequest(output, machine.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
outputStack = getOutputStack(machine);
if (outputStack != null) {
ItemStack output = outputStack.copy();
TransferRequest product = new TransferRequest(output, machine.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
product.transfer(true);
}
final Random rand = machine.getRandom();
if (rand.nextFloat() < this.lossChance) {
Random rand = machine.getRandom();
if (rand.nextFloat() < lossChance) {
machine.decreaseStack(3, 1);
}
}
public IncubatorRecipe setOutputStack(final ItemStack stack) {
this.outputStack = stack;
public IncubatorRecipe setOutputStack(ItemStack stack) {
outputStack = stack;
return this;
}
protected ItemStack getOutputStack(final MachineUtil util) {
return this.outputStack;
protected ItemStack getOutputStack(MachineUtil util) {
return outputStack;
}
@Override
public boolean roomForOutput(final MachineUtil machine) {
if (this.output != null && !machine.isTankEmpty(1)) {
if (!machine.getFluid(1).isFluidEqual(this.output)) {
public boolean roomForOutput(MachineUtil machine) {
if (output != null && !machine.isTankEmpty(1)) {
if (!machine.getFluid(1).isFluidEqual(output)) {
return false;
}
if (!machine.spaceInTank(1, this.output.amount)) {
if (!machine.spaceInTank(1, output.amount)) {
return false;
}
}
final ItemStack outputStack = this.getOutputStack(machine);
ItemStack outputStack = getOutputStack(machine);
if (outputStack != null) {
final ItemStack output = outputStack.copy();
final TransferRequest product = new TransferRequest(output, machine.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
final ItemStack leftover = product.transfer(false);
ItemStack output = outputStack.copy();
TransferRequest product = new TransferRequest(output, machine.getInventory()).setTargetSlots(Incubator.slotOutput).ignoreValidation();
ItemStack leftover = product.transfer(false);
return leftover == null;
}
return true;
@@ -1,106 +1,104 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import forestry.api.genetics.ISpeciesRoot;
import binnie.Binnie;
import net.minecraft.entity.player.EntityPlayer;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.particle.EntityFX;
import binnie.core.BinnieCore;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.entity.item.EntityItem;
import binnie.core.machines.network.INetwork;
import binnie.core.machines.component.IRender;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IIndividual;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.component.IRender;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.inventory.Validator;
import binnie.core.machines.network.INetwork;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.genetics.item.GeneticLiquid;
import net.minecraftforge.fluids.FluidStack;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.genetics.genetics.Engineering;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.Validator;
import binnie.genetics.api.IItemSerum;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.IMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.genetics.IAllele;
import forestry.api.apiculture.IBeeRoot;
import forestry.api.apiculture.EnumBeeChromosome;
import net.minecraft.item.ItemStack;
import binnie.genetics.api.IGene;
import binnie.genetics.api.IItemSerum;
import binnie.genetics.core.GeneticsGUI;
import binnie.genetics.core.GeneticsTexture;
import binnie.genetics.genetics.Engineering;
import binnie.genetics.item.GeneticLiquid;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.apiculture.IBeeRoot;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IGenome;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
public class Inoculator
{
public static final int slotSerumVial = 0;
public static final int[] slotSerumReserve;
public static final int[] slotSerumExpended;
public static final int[] slotReserve;
public static final int slotTarget = 9;
public static final int[] slotFinished;
public static final int tankVector = 0;
import java.util.Random;
public static void setGene(final IGene gene, final ItemStack target, final int chromoN) {
int chromosomeID;
final int chromosome = chromosomeID = gene.getChromosome().ordinal();
public class Inoculator {
public static int slotSerumVial = 0;
public static int[] slotSerumReserve;
public static int[] slotSerumExpended;
public static int[] slotReserve;
public static int slotTarget = 9;
public static int[] slotFinished;
public static int tankVector = 0;
static {
slotSerumReserve = new int[]{1, 2};
slotSerumExpended = new int[]{3, 4};
slotReserve = new int[]{5, 6, 7, 8};
slotFinished = new int[]{10, 11, 12, 13};
}
public static void setGene(IGene gene, ItemStack target, int chromoN) {
int chromosomeID = gene.getChromosome().ordinal();
if (chromosomeID >= EnumBeeChromosome.HUMIDITY.ordinal() && gene.getSpeciesRoot() instanceof IBeeRoot) {
--chromosomeID;
chromosomeID--;
}
final Class<? extends IAllele> cls = gene.getChromosome().getAlleleClass();
Class<? extends IAllele> cls = gene.getChromosome().getAlleleClass();
if (!cls.isInstance(gene.getAllele())) {
return;
}
final NBTTagCompound beeNBT = target.getTagCompound();
final NBTTagCompound genomeNBT = beeNBT.getCompoundTag("Genome");
final NBTTagList chromosomes = genomeNBT.getTagList("Chromosomes", 10);
final NBTTagCompound chromosomeNBT = chromosomes.getCompoundTagAt(chromosomeID);
NBTTagCompound beeNBT = target.getTagCompound();
NBTTagCompound genomeNBT = beeNBT.getCompoundTag("Genome");
NBTTagList chromosomes = genomeNBT.getTagList("Chromosomes", 10);
NBTTagCompound chromosomeNBT = chromosomes.getCompoundTagAt(chromosomeID);
chromosomeNBT.setString("UID" + chromoN, gene.getAllele().getUID());
target.setTagCompound(beeNBT);
}
static {
slotSerumReserve = new int[] { 1, 2 };
slotSerumExpended = new int[] { 3, 4 };
slotReserve = new int[] { 5, 6, 7, 8 };
slotFinished = new int[] { 10, 11, 12, 13 };
}
public static class PackageInoculator extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageInoculator extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageInoculator() {
super("inoculator", GeneticsTexture.Inoculator, 14819893, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Inoculator);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlot(0, "serum.active");
inventory.getSlot(0).forbidInteraction();
inventory.getSlot(0).setReadOnly();
final SlotValidator serumValid = new SlotValidator(ModuleMachine.IconSerum) {
SlotValidator serumValid = new SlotValidator(ModuleMachine.IconSerum) {
@Override
public boolean isValid(final ItemStack itemStack) {
public boolean isValid(ItemStack itemStack) {
return itemStack.getItem() instanceof IItemSerum;
}
@@ -109,53 +107,62 @@ public class Inoculator
return "Serum Vials & Arrays";
}
};
inventory.getSlot(0).setValidator(serumValid);
inventory.addSlotArray(Inoculator.slotSerumReserve, "serum.input");
for (final InventorySlot slot : inventory.getSlots(Inoculator.slotSerumReserve)) {
for (InventorySlot slot : inventory.getSlots(Inoculator.slotSerumReserve)) {
slot.setValidator(serumValid);
slot.forbidExtraction();
}
inventory.addSlotArray(Inoculator.slotSerumExpended, "serum.output");
for (final InventorySlot slot : inventory.getSlots(Inoculator.slotSerumExpended)) {
for (InventorySlot slot : inventory.getSlots(Inoculator.slotSerumExpended)) {
slot.setValidator(serumValid);
slot.setReadOnly();
}
inventory.addSlotArray(Inoculator.slotReserve, "input");
for (final InventorySlot slot : inventory.getSlots(Inoculator.slotReserve)) {
for (InventorySlot slot : inventory.getSlots(Inoculator.slotReserve)) {
slot.forbidExtraction();
slot.setValidator(new ValidatorIndividualInoculate());
}
inventory.addSlot(9, "process");
inventory.getSlot(9).setValidator(new ValidatorIndividualInoculate());
inventory.getSlot(9).setReadOnly();
inventory.getSlot(9).forbidInteraction();
inventory.addSlotArray(Inoculator.slotFinished, "output");
for (final InventorySlot slot : inventory.getSlots(Inoculator.slotFinished)) {
for (InventorySlot slot : inventory.getSlots(Inoculator.slotFinished)) {
slot.setReadOnly();
slot.forbidInsertion();
slot.setValidator(new ValidatorIndividualInoculate());
}
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Inoculator.slotReserve, 9, 1);
transfer.addRestock(Inoculator.slotSerumReserve, 0);
transfer.addStorage(0, Inoculator.slotSerumExpended, new ComponentInventoryTransfer.Condition() {
@Override
public boolean fufilled(final ItemStack stack) {
public boolean fufilled(ItemStack stack) {
return Engineering.getCharges(stack) == 0;
}
});
transfer.addStorage(9, Inoculator.slotFinished, new ComponentInventoryTransfer.Condition() {
@Override
public boolean fufilled(final ItemStack stack) {
return stack != null && this.transfer.getMachine().getMachineUtil().getStack(0) != null && this.transfer.getMachine().getInterface(ComponentInoculatorLogic.class).isValidSerum() != null;
return stack != null
&& transfer.getMachine().getMachineUtil().getStack(0) != null
&& transfer.getMachine().getInterface(ComponentInoculatorLogic.class).isValidSerum() != null;
}
});
new ComponentPowerReceptor(machine, 15000);
new ComponentInoculatorLogic(machine);
new ComponentInoculatorFX(machine);
new ComponentTankContainer(machine).addTank(0, "input", 1000).setValidator(new Validator<FluidStack>() {
@Override
public boolean isValid(final FluidStack object) {
public boolean isValid(FluidStack object) {
return GeneticLiquid.BacteriaVector.get(1).isFluidEqual(object);
}
@@ -170,28 +177,28 @@ public class Inoculator
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentInoculatorLogic extends ComponentProcessSetCost implements IProcess
{
public static class ComponentInoculatorLogic extends ComponentProcessSetCost implements IProcess {
private float bacteriaDrain;
public ComponentInoculatorLogic(Machine machine) {
super(machine, 600000, 12000);
bacteriaDrain = 0.0f;
}
@Override
public int getProcessLength() {
return super.getProcessLength() * this.getNumberOfGenes();
return super.getProcessLength() * getNumberOfGenes();
}
@Override
public int getProcessEnergy() {
return super.getProcessEnergy() * this.getNumberOfGenes();
return super.getProcessEnergy() * getNumberOfGenes();
}
private int getNumberOfGenes() {
final ItemStack serum = this.getUtil().getStack(0);
ItemStack serum = getUtil().getStack(0);
if (serum == null) {
return 1;
}
@@ -200,52 +207,53 @@ public class Inoculator
@Override
public String getTooltip() {
final int n = this.getNumberOfGenes();
int n = getNumberOfGenes();
return "Inoculating with " + n + " gene" + ((n > 1) ? "s" : "");
}
public ComponentInoculatorLogic(final Machine machine) {
super(machine, 600000, 12000);
this.bacteriaDrain = 0.0f;
}
@Override
public ErrorState canWork() {
if (this.getUtil().isSlotEmpty(9)) {
if (getUtil().isSlotEmpty(9)) {
return new ErrorState.NoItem("No Individual to Inoculate", 9);
}
if (this.getUtil().isSlotEmpty(0)) {
if (getUtil().isSlotEmpty(0)) {
return new ErrorState.NoItem("No Serum", 0);
}
final ErrorState state = this.isValidSerum();
ErrorState state = isValidSerum();
if (state != null) {
return state;
}
if (this.getUtil().getStack(0) != null && Engineering.getCharges(this.getUtil().getStack(0)) == 0) {
if (getUtil().getStack(0) != null && Engineering.getCharges(getUtil().getStack(0)) == 0) {
return new ErrorState("Empty Serum", "Serum is empty");
}
return super.canWork();
}
public ErrorState isValidSerum() {
final ItemStack serum = this.getUtil().getStack(0);
final ItemStack target = this.getUtil().getStack(9);
final IGene[] genes = Engineering.getGenes(serum);
ItemStack serum = getUtil().getStack(0);
ItemStack target = getUtil().getStack(9);
IGene[] genes = Engineering.getGenes(serum);
if (genes.length == 0) {
return new ErrorState("Invalid Serum", "Serum does not hold any genes");
}
if (!genes[0].getSpeciesRoot().isMember(target)) {
return new ErrorState("Invalid Serum", "Mismatch of Serum Type and Target");
}
final IIndividual individual = genes[0].getSpeciesRoot().getMember(target);
IIndividual individual = genes[0].getSpeciesRoot().getMember(target);
boolean hasAll = true;
for (final IGene gene : genes) {
for (IGene gene : genes) {
if (hasAll) {
final IAllele a = individual.getGenome().getActiveAllele(gene.getChromosome());
final IAllele b = individual.getGenome().getInactiveAllele(gene.getChromosome());
hasAll = (hasAll && a.getUID().equals(gene.getAllele().getUID()) && b.getUID().equals(gene.getAllele().getUID()));
IGenome genome = individual.getGenome();
IChromosomeType chromosome = gene.getChromosome();
String geneAlleleUID = gene.getAllele().getUID();
IAllele a = genome.getActiveAllele(chromosome);
IAllele b = genome.getInactiveAllele(chromosome);
hasAll = a.getUID().equals(geneAlleleUID)
&& b.getUID().equals(geneAlleleUID);
}
}
if (hasAll) {
return new ErrorState("Defunct Serum", "Individual already possesses this allele");
}
@@ -260,84 +268,84 @@ public class Inoculator
@Override
protected void onFinishTask() {
super.onFinishTask();
final ItemStack serum = this.getUtil().getStack(0);
final ItemStack target = this.getUtil().getStack(9);
final IIndividual ind = AlleleManager.alleleRegistry.getIndividual(target);
ItemStack serum = getUtil().getStack(0);
ItemStack target = getUtil().getStack(9);
IIndividual ind = AlleleManager.alleleRegistry.getIndividual(target);
if (!ind.isAnalyzed()) {
ind.analyze();
final NBTTagCompound nbttagcompound = new NBTTagCompound();
NBTTagCompound nbttagcompound = new NBTTagCompound();
ind.writeToNBT(nbttagcompound);
target.setTagCompound(nbttagcompound);
}
final IGene[] arr$;
final IGene[] genes = arr$ = ((IItemSerum) serum.getItem()).getGenes(serum);
for (final IGene gene : arr$) {
IGene[] genes = ((IItemSerum) serum.getItem()).getGenes(serum);
for (IGene gene : genes) {
Inoculator.setGene(gene, target, 0);
Inoculator.setGene(gene, target, 1);
}
this.getUtil().damageItem(0, 1);
getUtil().damageItem(0, 1);
}
@Override
protected void onTickTask() {
this.bacteriaDrain += 15.0f * this.getProgressPerTick() / 100.0f;
if (this.bacteriaDrain >= 1.0f) {
this.getUtil().drainTank(0, 1);
--this.bacteriaDrain;
bacteriaDrain += 15.0f * getProgressPerTick() / 100.0f;
if (bacteriaDrain >= 1.0f) {
getUtil().drainTank(0, 1);
bacteriaDrain--;
}
}
}
public static class ComponentInoculatorFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick, IRender.Render, INetwork.TilePacketSync
{
private final EntityItem dummyEntityItem;
public static class ComponentInoculatorFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick, IRender.Render, INetwork.TilePacketSync {
private EntityItem dummyEntityItem;
public ComponentInoculatorFX(final IMachine machine) {
public ComponentInoculatorFX(IMachine machine) {
super(machine);
this.dummyEntityItem = new EntityItem((World) null);
dummyEntityItem = new EntityItem(null);
}
@SideOnly(Side.CLIENT)
@Override
public void onRandomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
public void onRandomDisplayTick(World world, int x, int y, int z, Random rand) {
// ignored
}
@SideOnly(Side.CLIENT)
@Override
public void onDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
final int tick = (int) (world.getTotalWorldTime() % 3L);
if (tick == 0 && this.getUtil().getProcess().isInProgress()) {
public void onDisplayTick(World world, int x, int y, int z, Random rand) {
int tick = (int) (world.getTotalWorldTime() % 3L);
if (tick == 0 && getUtil().getProcess().isInProgress()) {
BinnieCore.proxy.getMinecraftInstance().effectRenderer.addEffect(new EntityFX(world, x + 0.5, y + 0.92, z + 0.5, 0.0, 0.0, 0.0) {
double axisX = this.posX;
double axisZ = this.posZ;
double angle = (int) (this.worldObj.getTotalWorldTime() % 4L) * 0.5 * 3.1415;
double axisX = posX;
double axisZ = posZ;
double angle = (int) (worldObj.getTotalWorldTime() % 4L) * 0.5 * 3.1415;
{
this.axisX = 0.0;
this.axisZ = 0.0;
this.angle = 0.0;
this.motionX = 0.0;
this.motionZ = 0.0;
this.motionY = 0.007 + this.rand.nextDouble() * 0.002;
this.particleMaxAge = 240;
this.particleGravity = 0.0f;
this.noClip = true;
this.setRBGColorF(0.8f, 0.0f, 1.0f);
axisX = 0.0;
axisZ = 0.0;
angle = 0.0;
motionX = 0.0;
motionZ = 0.0;
motionY = 0.007 + rand.nextDouble() * 0.002;
particleMaxAge = 240;
particleGravity = 0.0f;
noClip = true;
setRBGColorF(0.8f, 0.0f, 1.0f);
}
@Override
public void onUpdate() {
super.onUpdate();
double speed = 5.0E-4;
if (this.particleAge > 60) {
speed += (this.particleAge - 60) / 4000.0f;
if (particleAge > 60) {
speed += (particleAge - 60) / 4000.0f;
}
this.angle += speed;
final double dist = 0.27;
this.setPosition(this.axisX + dist * Math.sin(this.angle), this.posY, this.axisZ + dist * Math.cos(this.angle));
this.setAlphaF((float) Math.cos(1.57 * this.particleAge / this.particleMaxAge));
if (this.particleAge > 40) {
this.setRBGColorF(this.particleRed + (1.0f - this.particleRed) / 10.0f, this.particleGreen + (0.0f - this.particleGreen) / 10.0f, this.particleBlue + (0.0f - this.particleBlue) / 10.0f);
angle += speed;
double dist = 0.27;
setPosition(axisX + dist * Math.sin(angle), posY, axisZ + dist * Math.cos(angle));
setAlphaF((float) Math.cos(1.57 * particleAge / particleMaxAge));
if (particleAge > 40) {
setRBGColorF(particleRed + (1.0f - particleRed) / 10.0f, particleGreen + (0.0f - particleGreen) / 10.0f, particleBlue + (0.0f - particleBlue) / 10.0f);
}
}
@@ -351,23 +359,26 @@ public class Inoculator
@SideOnly(Side.CLIENT)
@Override
public void renderInWorld(final RenderItem renderItem, final double x, final double y, final double z) {
if (!this.getUtil().getProcess().isInProgress()) {
public void renderInWorld(RenderItem renderItem, double x, double y, double z) {
// TODO fix duplicate code
if (!getUtil().getProcess().isInProgress()) {
return;
}
final ItemStack stack = this.getUtil().getStack(9);
this.dummyEntityItem.worldObj = this.getMachine().getWorld();
this.dummyEntityItem.setEntityItemStack(stack);
final EntityItem dummyEntityItem = this.dummyEntityItem;
++dummyEntityItem.age;
ItemStack stack = getUtil().getStack(9);
dummyEntityItem.worldObj = getMachine().getWorld();
dummyEntityItem.setEntityItemStack(stack);
EntityItem dummyEntityItem = this.dummyEntityItem;
dummyEntityItem.age++;
this.dummyEntityItem.hoverStart = 0.0f;
if (stack == null) {
return;
}
final EntityPlayer player = BinnieCore.proxy.getPlayer();
final double dx = x + 0.5 - player.lastTickPosX;
final double dz = z + 0.5 - player.lastTickPosZ;
final double t = Math.atan2(dz, dx) * 180.0 / 3.1415;
EntityPlayer player = BinnieCore.proxy.getPlayer();
double dx = x + 0.5 - player.lastTickPosX;
double dz = z + 0.5 - player.lastTickPosZ;
double t = Math.atan2(dz, dx) * 180.0 / 3.1415;
GL11.glPushMatrix();
GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f);
GL11.glTranslatef(0.0f, -0.25f, 0.0f);
@@ -376,9 +387,9 @@ public class Inoculator
}
@Override
public void syncToNBT(final NBTTagCompound nbt) {
final NBTTagCompound item = new NBTTagCompound();
final ItemStack stack = this.getUtil().getStack(9);
public void syncToNBT(NBTTagCompound nbt) {
NBTTagCompound item = new NBTTagCompound();
ItemStack stack = getUtil().getStack(9);
if (stack != null) {
stack.writeToNBT(item);
nbt.setTag("item", item);
@@ -386,33 +397,31 @@ public class Inoculator
}
@Override
public void syncFromNBT(final NBTTagCompound nbt) {
public void syncFromNBT(NBTTagCompound nbt) {
if (nbt.hasKey("item")) {
this.getUtil().setStack(9, ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")));
}
else {
this.getUtil().setStack(9, null);
getUtil().setStack(9, ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")));
} else {
getUtil().setStack(9, null);
}
}
@Override
public void onInventoryUpdate() {
if (!this.getUtil().isServer()) {
if (!getUtil().isServer()) {
return;
}
this.getUtil().refreshBlock();
getUtil().refreshBlock();
}
}
public static class ValidatorIndividualInoculate extends SlotValidator
{
public static class ValidatorIndividualInoculate extends SlotValidator {
public ValidatorIndividualInoculate() {
super(null);
}
@Override
public boolean isValid(final ItemStack object) {
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(object);
public boolean isValid(ItemStack object) {
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(object);
return root != null && Binnie.Genetics.getSystem(root).isDNAManipulable(object);
}
@@ -1,72 +1,62 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.particle.EntityFX;
import binnie.core.BinnieCore;
import net.minecraft.world.World;
import binnie.core.machines.component.IRender;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.inventory.IChargedSlots;
import net.minecraft.item.ItemStack;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import java.util.Random;
import binnie.genetics.item.ItemSequence;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.genetics.Gene;
import forestry.api.genetics.AlleleManager;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.component.IRender;
import binnie.core.machines.inventory.ComponentChargedSlots;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.IChargedSlots;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.inventory.SlotValidator;
import binnie.core.machines.inventory.TankValidator;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.power.ErrorState;
import binnie.core.machines.power.IProcess;
import binnie.core.machines.power.ComponentProcessSetCost;
import binnie.core.machines.TileEntityMachine;
import net.minecraft.tileentity.TileEntity;
import binnie.core.machines.inventory.InventorySlot;
import binnie.core.machines.power.ComponentPowerReceptor;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
import binnie.core.machines.inventory.ComponentChargedSlots;
import net.minecraftforge.fluids.FluidStack;
import binnie.core.machines.inventory.TankValidator;
import binnie.core.machines.inventory.ComponentTankContainer;
import binnie.core.machines.inventory.SlotValidator;
import binnie.genetics.item.GeneticsItems;
import binnie.core.machines.IMachine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.genetics.core.GeneticsGUI;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.genetics.item.GeneticsItems;
import binnie.genetics.item.ItemSequence;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IChromosomeType;
import forestry.api.genetics.IIndividual;
import forestry.api.genetics.ISpeciesRoot;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
public class Isolator
{
public static final int slotEnzyme = 0;
public static final int slotSequencerVial = 1;
public static final int[] slotReserve;
public static final int slotTarget = 5;
public static final int slotResult = 6;
public static final int[] slotFinished;
public static final int tankEthanol = 0;
import java.util.Random;
static {
slotReserve = new int[] { 2, 3, 4 };
slotFinished = new int[] { 7, 8, 9, 10, 11, 12 };
}
public class Isolator {
public static int slotEnzyme = 0;
public static int slotSequencerVial = 1;
public static int[] slotReserve = new int[]{2, 3, 4};
public static int[] slotFinished = new int[]{7, 8, 9, 10, 11, 12};
public static int slotTarget = 5;
public static int slotResult = 6;
public static int tankEthanol = 0;
public static class PackageIsolator extends GeneticMachine.PackageGeneticBase implements IMachineInformation
{
public static class PackageIsolator extends GeneticMachine.PackageGeneticBase implements IMachineInformation {
public PackageIsolator() {
super("isolator", GeneticsTexture.Isolator, 16740111, true);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.Isolator);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
inventory.addSlot(0, "enzyme");
inventory.getSlot(0).setValidator(new SlotValidator.Item(GeneticsItems.Enzyme.get(1), ModuleMachine.IconEnzyme));
inventory.getSlot(0).forbidExtraction();
@@ -74,23 +64,26 @@ public class Isolator
inventory.getSlot(1).setValidator(new SlotValidator.Item(GeneticsItems.EmptySequencer.get(1), ModuleMachine.IconSequencer));
inventory.getSlot(1).forbidExtraction();
inventory.addSlotArray(Isolator.slotReserve, "input");
for (final InventorySlot slot : inventory.getSlots(Isolator.slotReserve)) {
for (InventorySlot slot : inventory.getSlots(Isolator.slotReserve)) {
slot.setValidator(new SlotValidator.Individual());
slot.forbidExtraction();
}
inventory.addSlot(5, "process");
inventory.getSlot(5).setValidator(new SlotValidator.Individual());
inventory.getSlot(5).setReadOnly();
inventory.getSlot(5).forbidInteraction();
inventory.addSlot(6, "output");
inventory.getSlot(6).setReadOnly();
inventory.getSlot(6).forbidInteraction();
inventory.addSlotArray(Isolator.slotFinished, "output");
for (final InventorySlot slot : inventory.getSlots(Isolator.slotFinished)) {
for (InventorySlot slot : inventory.getSlots(Isolator.slotFinished)) {
slot.setReadOnly();
slot.forbidInsertion();
}
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
ComponentTankContainer tanks = new ComponentTankContainer(machine);
tanks.addTank(0, "input", 1000);
tanks.getTankSlot(0).setValidator(new TankValidator() {
@Override
@@ -99,13 +92,14 @@ public class Isolator
}
@Override
public boolean isValid(final FluidStack liquid) {
public boolean isValid(FluidStack liquid) {
return liquid.getFluid().getName() == "bioethanol";
}
});
final ComponentChargedSlots chargedSlots = new ComponentChargedSlots(machine);
ComponentChargedSlots chargedSlots = new ComponentChargedSlots(machine);
chargedSlots.addCharge(0);
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Isolator.slotReserve, 5, 1);
transfer.addStorage(6, Isolator.slotFinished);
new ComponentPowerReceptor(machine, 20000);
@@ -117,32 +111,27 @@ public class Isolator
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void register() {
}
}
public static class ComponentIsolatorLogic extends ComponentProcessSetCost implements IProcess
{
float enzymePerProcess;
float ethanolPerProcess;
public static class ComponentIsolatorLogic extends ComponentProcessSetCost implements IProcess {
protected float enzymePerProcess;
protected float ethanolPerProcess;
public ComponentIsolatorLogic(final Machine machine) {
public ComponentIsolatorLogic(Machine machine) {
super(machine, 192000, 4800);
this.enzymePerProcess = 0.5f;
this.ethanolPerProcess = 10.0f;
enzymePerProcess = 0.5f;
ethanolPerProcess = 10.0f;
}
@Override
public ErrorState canWork() {
if (this.getUtil().isSlotEmpty(5)) {
if (getUtil().isSlotEmpty(5)) {
return new ErrorState.NoItem("No individual to isolate", 5);
}
if (!this.getUtil().isSlotEmpty(6)) {
if (!getUtil().isSlotEmpty(6)) {
return new ErrorState.NoSpace("No room for DNA sequences", Isolator.slotFinished);
}
if (this.getUtil().isSlotEmpty(1)) {
if (getUtil().isSlotEmpty(1)) {
return new ErrorState.NoItem("No empty sequencer vials", 1);
}
return super.canWork();
@@ -150,10 +139,10 @@ public class Isolator
@Override
public ErrorState canProgress() {
if (!this.getUtil().liquidInTank(0, (int) this.ethanolPerProcess)) {
if (!getUtil().liquidInTank(0, (int) ethanolPerProcess)) {
return new ErrorState.InsufficientLiquid("Insufficient ethanol", 0);
}
if (this.getUtil().getSlotCharge(0) == 0.0f) {
if (getUtil().getSlotCharge(0) == 0.0f) {
return new ErrorState.NoItem("No enzyme", 0);
}
return super.canProgress();
@@ -162,53 +151,58 @@ public class Isolator
@Override
protected void onFinishTask() {
super.onFinishTask();
final Random rand = this.getMachine().getWorld().rand;
final ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(this.getUtil().getStack(5));
Random rand = getMachine().getWorld().rand;
ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(getUtil().getStack(5));
if (root == null) {
return;
}
final IIndividual individual = root.getMember(this.getUtil().getStack(5));
IIndividual individual = root.getMember(getUtil().getStack(5));
if (individual == null) {
return;
}
IAllele allele = null;
IChromosomeType chromosome = null;
IAllele allele;
IChromosomeType chromosome;
Gene gene = null;
if (this.getMachine().getWorld().rand.nextFloat() < 2.0f) {
if (getMachine().getWorld().rand.nextFloat() < 2.0f) {
while (gene == null) {
try {
chromosome = root.getKaryotype()[rand.nextInt(root.getKaryotype().length)];
allele = (rand.nextBoolean() ? individual.getGenome().getActiveAllele(chromosome) : individual.getGenome().getInactiveAllele(chromosome));
allele = rand.nextBoolean() ?
individual.getGenome().getActiveAllele(chromosome) :
individual.getGenome().getInactiveAllele(chromosome);
gene = Gene.create(allele, chromosome, root);
} catch (Exception e) {
// ignored
}
}
}
final ItemStack serum = ItemSequence.create(gene);
this.getUtil().setStack(6, serum);
this.getUtil().decreaseStack(1, 1);
ItemStack serum = ItemSequence.create(gene);
getUtil().setStack(6, serum);
getUtil().decreaseStack(1, 1);
if (rand.nextFloat() < 0.05f) {
this.getUtil().decreaseStack(5, 1);
getUtil().decreaseStack(5, 1);
}
this.getUtil().drainTank(0, (int) this.ethanolPerProcess);
getUtil().drainTank(0, (int) ethanolPerProcess);
}
@Override
protected void onTickTask() {
this.getMachine().getInterface(IChargedSlots.class).alterCharge(0, -this.enzymePerProcess * this.getProgressPerTick() / 100.0f);
getMachine().getInterface(IChargedSlots.class).alterCharge(0, -enzymePerProcess * getProgressPerTick() / 100.0f);
}
}
public static class ComponentIsolaterFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick
{
public ComponentIsolaterFX(final IMachine machine) {
public static class ComponentIsolaterFX extends MachineComponent implements IRender.RandomDisplayTick, IRender.DisplayTick {
public ComponentIsolaterFX(IMachine machine) {
super(machine);
}
@SideOnly(Side.CLIENT)
@Override
public void onRandomDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
if (!this.getUtil().getProcess().isInProgress()) {
public void onRandomDisplayTick(World world, int x, int y, int z, Random rand) {
if (!getUtil().getProcess().isInProgress()) {
return;
}
BinnieCore.proxy.getMinecraftInstance().effectRenderer.addEffect(new EntityFX(world, x + 0.4 + 0.2 * rand.nextDouble(), y + 1.6, z + 0.4 + rand.nextDouble() * 0.2, 0.0, 0.0, 0.0) {
@@ -217,20 +211,20 @@ public class Isolator
double angle = 0.0;
{
this.motionX = 0.0;
this.motionZ = 0.0;
this.motionY = -0.012;
this.particleMaxAge = 100;
this.particleGravity = 0.0f;
this.noClip = true;
this.setRBGColorF(0.8f, 0.4f, 0.0f);
motionX = 0.0;
motionZ = 0.0;
motionY = -0.012;
particleMaxAge = 100;
particleGravity = 0.0f;
noClip = true;
setRBGColorF(0.8f, 0.4f, 0.0f);
}
@Override
public void onUpdate() {
super.onUpdate();
this.angle += 0.06;
this.setAlphaF((float) Math.sin(3.14 * this.particleAge / this.particleMaxAge));
angle += 0.06;
setAlphaF((float) Math.sin(3.14 * particleAge / particleMaxAge));
}
@Override
@@ -242,33 +236,33 @@ public class Isolator
@SideOnly(Side.CLIENT)
@Override
public void onDisplayTick(final World world, final int x, final int y, final int z, final Random rand) {
final int tick = (int) (world.getTotalWorldTime() % 6L);
if ((tick == 0 || tick == 5) && this.getUtil().getProcess().isInProgress()) {
public void onDisplayTick(World world, int x, int y, int z, Random rand) {
int tick = (int) (world.getTotalWorldTime() % 6L);
if ((tick == 0 || tick == 5) && getUtil().getProcess().isInProgress()) {
BinnieCore.proxy.getMinecraftInstance().effectRenderer.addEffect(new EntityFX(world, x + 0.5, y + 1, z + 0.5, 0.0, 0.0, 0.0) {
double axisX = this.posX;
double axisZ = this.posZ;
double angle = 0.7 + (int) (this.worldObj.getTotalWorldTime() % 2L) * 3.1415;
double axisX = posX;
double axisZ = posZ;
double angle = 0.7 + (int) (worldObj.getTotalWorldTime() % 2L) * 3.1415;
{
this.axisX = 0.0;
this.axisZ = 0.0;
this.angle = 0.0;
this.motionX = 0.0;
this.motionZ = 0.0;
this.motionY = 0.012;
this.particleMaxAge = 100;
this.particleGravity = 0.0f;
this.noClip = true;
this.setRBGColorF(0.8f, 0.0f, 1.0f);
axisX = 0.0;
axisZ = 0.0;
angle = 0.0;
motionX = 0.0;
motionZ = 0.0;
motionY = 0.012;
particleMaxAge = 100;
particleGravity = 0.0f;
noClip = true;
setRBGColorF(0.8f, 0.0f, 1.0f);
}
@Override
public void onUpdate() {
super.onUpdate();
this.angle += 0.06;
this.setPosition(this.axisX + 0.26 * Math.sin(this.angle), this.posY, this.axisZ + 0.26 * Math.cos(this.angle));
this.setAlphaF((float) Math.cos(1.57 * this.particleAge / this.particleMaxAge));
angle += 0.06;
setPosition(axisX + 0.26 * Math.sin(angle), posY, axisZ + 0.26 * Math.cos(angle));
setAlphaF((float) Math.cos(1.57 * particleAge / particleMaxAge));
}
@Override
@@ -1,38 +1,33 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import java.util.List;
import binnie.extratrees.ExtraTrees;
import binnie.extrabees.ExtraBees;
import binnie.botany.Botany;
import net.minecraft.item.Item;
import java.util.ArrayList;
import buildcraft.api.tools.IToolWrench;
import binnie.core.BinnieCore;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import binnie.core.machines.IMachine;
import binnie.core.machines.IMachineType;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.component.IInteraction;
import binnie.core.machines.network.INetwork;
import binnie.core.machines.MachineComponent;
import net.minecraft.client.renderer.RenderBlocks;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.genetics.core.GeneticsTexture;
import net.minecraft.block.Block;
import binnie.extrabees.ExtraBees;
import binnie.extratrees.ExtraTrees;
import binnie.genetics.Genetics;
import binnie.genetics.core.GeneticsTexture;
import buildcraft.api.tools.IToolWrench;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.IMachineType;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public enum LaboratoryMachine implements IMachineType
{
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public enum LaboratoryMachine implements IMachineType {
LabMachine(PackageLabMachine.class),
Analyser(Analyser.PackageAnalyser.class),
Incubator(Incubator.PackageIncubator.class),
@@ -41,13 +36,13 @@ public enum LaboratoryMachine implements IMachineType
Class<? extends MachinePackage> clss;
private LaboratoryMachine(final Class<? extends MachinePackage> clss) {
LaboratoryMachine(Class<? extends MachinePackage> clss) {
this.clss = clss;
}
@Override
public Class<? extends MachinePackage> getPackageClass() {
return this.clss;
return clss;
}
@Override
@@ -55,104 +50,113 @@ public enum LaboratoryMachine implements IMachineType
return true;
}
public ItemStack get(final int i) {
return new ItemStack(Genetics.packageLabMachine.getBlock(), i, this.ordinal());
public ItemStack get(int i) {
return new ItemStack(Genetics.packageLabMachine.getBlock(), i, ordinal());
}
public static class PackageLabMachine extends GeneticMachine.PackageGeneticBase
{
public static class PackageLabMachine extends GeneticMachine.PackageGeneticBase {
public PackageLabMachine() {
super("labMachine", GeneticsTexture.LabMachine, 16777215, false);
}
@Override
public void createMachine(final Machine machine) {
public void createMachine(Machine machine) {
new ComponentGUIHolder(machine);
}
@Override
public void renderMachine(final Machine machine, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer) {
MachineRendererLab.instance.renderMachine(machine, this.colour, this.renderTexture, x, y, z, partialTick);
public void renderMachine(Machine machine, double x, double y, double z, float partialTick, RenderBlocks renderer) {
MachineRendererLab.instance.renderMachine(machine, colour, renderTexture, x, y, z, partialTick);
}
}
public static class ComponentGUIHolder extends MachineComponent implements INetwork.TilePacketSync, IInteraction.RightClick
{
public static class ComponentGUIHolder extends MachineComponent implements INetwork.TilePacketSync, IInteraction.RightClick {
private ItemStack stack;
public ComponentGUIHolder(final IMachine machine) {
public ComponentGUIHolder(IMachine machine) {
super(machine);
}
public ItemStack getStack() {
return this.stack;
return stack;
}
@Override
public void readFromNBT(final NBTTagCompound nbttagcompound) {
public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound);
if (nbttagcompound == null) {
return;
}
this.stack = ItemStack.loadItemStackFromNBT(nbttagcompound.getCompoundTag("Item"));
stack = ItemStack.loadItemStackFromNBT(nbttagcompound.getCompoundTag("Item"));
}
@Override
public void writeToNBT(final NBTTagCompound nbttagcompound) {
public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound);
final NBTTagCompound nbt = new NBTTagCompound();
if (this.stack != null) {
this.stack.writeToNBT(nbt);
NBTTagCompound nbt = new NBTTagCompound();
if (stack != null) {
stack.writeToNBT(nbt);
}
nbttagcompound.setTag("Item", nbt);
}
@Override
public void syncToNBT(final NBTTagCompound nbt) {
this.writeToNBT(nbt);
public void syncToNBT(NBTTagCompound nbt) {
writeToNBT(nbt);
}
@Override
public void syncFromNBT(final NBTTagCompound nbt) {
this.readFromNBT(nbt);
public void syncFromNBT(NBTTagCompound nbt) {
readFromNBT(nbt);
}
@Override
public void onDestruction() {
super.onDestruction();
if (this.stack != null) {
final float f = this.getMachine().getWorld().rand.nextFloat() * 0.8f + 0.1f;
final float f2 = this.getMachine().getWorld().rand.nextFloat() * 0.8f + 0.1f;
final float f3 = this.getMachine().getWorld().rand.nextFloat() * 0.8f + 0.1f;
if (this.stack.stackSize == 0) {
this.stack.stackSize = 1;
}
final EntityItem entityitem = new EntityItem(this.getMachine().getWorld(), this.getMachine().getTileEntity().xCoord + f, this.getMachine().getTileEntity().yCoord + f2, this.getMachine().getTileEntity().zCoord + f3, this.stack.copy());
final float accel = 0.05f;
entityitem.motionX = (float) this.getMachine().getWorld().rand.nextGaussian() * accel;
entityitem.motionY = (float) this.getMachine().getWorld().rand.nextGaussian() * accel + 0.2f;
entityitem.motionZ = (float) this.getMachine().getWorld().rand.nextGaussian() * accel;
this.getMachine().getWorld().spawnEntityInWorld(entityitem);
if (stack == null) {
return;
}
IMachine machine = getMachine();
TileEntity tile = machine.getTileEntity();
World world = machine.getWorld();
Random rand = world.rand;
float xOffset = rand.nextFloat() * 0.8f + 0.1f;
float yOffset = rand.nextFloat() * 0.8f + 0.1f;
float zOffset = rand.nextFloat() * 0.8f + 0.1f;
if (stack.stackSize == 0) {
stack.stackSize = 1;
}
EntityItem entityitem = new EntityItem(world, tile.xCoord + xOffset, tile.yCoord + yOffset, tile.zCoord + zOffset, stack.copy());
float accel = 0.05f;
entityitem.motionX = (float) rand.nextGaussian() * accel;
entityitem.motionY = (float) rand.nextGaussian() * accel + 0.2f;
entityitem.motionZ = (float) rand.nextGaussian() * accel;
world.spawnEntityInWorld(entityitem);
}
@Override
public void onRightClick(final World world, final EntityPlayer player, final int x, final int y, final int z) {
public void onRightClick(World world, EntityPlayer player, int x, int y, int z) {
if (BinnieCore.proxy.isSimulating(world) && player.getHeldItem() != null) {
if (this.stack != null && player.getHeldItem().getItem() instanceof IToolWrench) {
final float f = 0.7f;
final double d0 = world.rand.nextFloat() * f + (1.0f - f) * 0.5;
final double d2 = world.rand.nextFloat() * f + (1.0f - f) * 0.5;
final double d3 = world.rand.nextFloat() * f + (1.0f - f) * 0.5;
final EntityItem entityitem = new EntityItem(world, x + d0, y + d2, z + d3, this.stack);
if (stack != null && player.getHeldItem().getItem() instanceof IToolWrench) {
Random rand = world.rand;
float f = 0.7f;
double fOffset = (1.0f - f) * 0.5;
double xOffset = rand.nextFloat() * f + fOffset;
double yOffset = rand.nextFloat() * f + fOffset;
double zOffset = rand.nextFloat() * f + fOffset;
EntityItem entityitem = new EntityItem(world, x + xOffset, y + yOffset, z + zOffset, stack);
entityitem.delayBeforeCanPickup = 10;
world.spawnEntityInWorld(entityitem);
this.stack = null;
stack = null;
((IToolWrench) player.getHeldItem().getItem()).wrenchUsed(player, x, y, z);
this.getUtil().refreshBlock();
getUtil().refreshBlock();
return;
}
final List<Item> validSelections = new ArrayList<Item>();
List<Item> validSelections = new ArrayList<>();
if (BinnieCore.isBotanyActive()) {
validSelections.add(Botany.database);
}
@@ -165,24 +169,28 @@ public enum LaboratoryMachine implements IMachineType
if (BinnieCore.isLepidopteryActive()) {
validSelections.add(ExtraTrees.itemDictionaryLepi);
}
validSelections.add(Genetics.database);
validSelections.add(Genetics.analyst);
validSelections.add(Genetics.registry);
validSelections.add(Genetics.masterRegistry);
validSelections.add(BinnieCore.genesis);
if (this.stack == null && validSelections.contains(player.getHeldItem().getItem())) {
this.stack = player.getHeldItem().copy();
final ItemStack heldItem = player.getHeldItem();
--heldItem.stackSize;
if (stack == null && validSelections.contains(player.getHeldItem().getItem())) {
stack = player.getHeldItem().copy();
ItemStack heldItem = player.getHeldItem();
heldItem.stackSize--;
world.markBlockForUpdate(x, y, z);
return;
}
if (this.stack != null && player.getHeldItem().getItem() instanceof IToolWrench) {
this.stack.getItem().onItemRightClick(this.stack, world, player);
if (stack != null && player.getHeldItem().getItem() instanceof IToolWrench) {
stack.getItem().onItemRightClick(stack, world, player);
}
}
if (this.stack != null) {
this.stack.getItem().onItemRightClick(this.stack, world, player);
if (stack != null) {
stack.getItem().onItemRightClick(stack, world, player);
}
}
}
@@ -1,30 +1,30 @@
//
// Decompiled by Procyon v0.5.30
//
package binnie.genetics.machine;
import binnie.core.machines.component.IRender;
import net.minecraft.client.Minecraft;
import binnie.core.BinnieCore;
import org.lwjgl.opengl.GL11;
import binnie.core.resource.BinnieResource;
import binnie.core.machines.Machine;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderItem;
import binnie.core.machines.component.IRender;
import binnie.core.resource.BinnieResource;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class MachineRendererGenetics
{
public class MachineRendererGenetics {
public static MachineRendererGenetics instance;
public final RenderItem customRenderItem;
static {
MachineRendererGenetics.instance = new MachineRendererGenetics();
}
public RenderItem customRenderItem;
private ModelMachine model;
public MachineRendererGenetics() {
this.model = new ModelMachine();
(this.customRenderItem = new RenderItem() {
model = new ModelMachine();
customRenderItem = new RenderItem() {
@Override
public boolean shouldBob() {
return false;
@@ -34,37 +34,36 @@ public class MachineRendererGenetics
public boolean shouldSpreadItems() {
return false;
}
}).setRenderManager(RenderManager.instance);
};
customRenderItem.setRenderManager(RenderManager.instance);
}
public void renderMachine(final Machine machine, final int colour, final BinnieResource texture, final double x, final double y, final double z, final float var8) {
public void renderMachine(Machine machine, int colour, BinnieResource texture, double x, double y, double z, float var8) {
GL11.glPushMatrix();
int i1 = 0;
final int ix = machine.getTileEntity().xCoord;
final int iy = machine.getTileEntity().yCoord;
final int iz = machine.getTileEntity().zCoord;
int ix = machine.getTileEntity().xCoord;
int iy = machine.getTileEntity().yCoord;
int iz = machine.getTileEntity().zCoord;
if (machine.getTileEntity() != null) {
i1 = ix * iy * iz + ix * iy - ix * iz + iy * iz - ix + iy - iz;
}
final float phase = (float) Math.max(0.0, Math.sin((System.currentTimeMillis() + i1) * 0.003));
float phase = (float) Math.max(0.0, Math.sin((System.currentTimeMillis() + i1) * 0.003));
GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5);
GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f);
BinnieCore.proxy.bindTexture(texture);
GL11.glPushMatrix();
this.model.render((float) x, (float) y, (float) z, 0.0625f, 0.0625f, 0.0625f);
model.render((float) x, (float) y, (float) z, 0.0625f, 0.0625f, 0.0625f);
GL11.glPopMatrix();
GL11.glPushMatrix();
BinnieCore.proxy.getMinecraftInstance();
if (Minecraft.isFancyGraphicsEnabled()) {
for (final IRender.Render render : machine.getInterfaces(IRender.Render.class)) {
render.renderInWorld(this.customRenderItem, x, y, z);
for (IRender.Render render : machine.getInterfaces(IRender.Render.class)) {
render.renderInWorld(customRenderItem, x, y, z);
}
}
GL11.glPopMatrix();
GL11.glPopMatrix();
}
static {
MachineRendererGenetics.instance = new MachineRendererGenetics();
}
}
Loaded 100 of 112 files, more files were not shown because too many files have changed in this diff. Show more