@Override public final boolean isMutationDiscovered(final IMutation mutation, final World world, final GameProfile name) { return this.isMutationDiscovered(mutation, this.getSpeciesRoot().getBreedingTracker(world, name)); }
@Override public final boolean isSpeciesDiscovered(final IAlleleSpecies species, final World world, final GameProfile name) { return this.isSpeciesDiscovered(species, this.getSpeciesRoot().getBreedingTracker(world, name)); }
public SpeciesWidget(WidgetManager manager, int xPos, int yPos, EnumFacing facing, int index, boolean active, GuiGeneticFilter gui) { super(manager, xPos, yPos); this.facing = facing; this.index = index; this.active = active; this.gui = gui; ImmutableSet.Builder<IAlleleSpecies> entries = ImmutableSet.builder(); for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) { IBreedingTracker tracker = root.getBreedingTracker(manager.minecraft.world, manager.minecraft.player.getGameProfile()); for (String uid : tracker.getDiscoveredSpecies()) { IAllele allele = AlleleManager.alleleRegistry.getAllele(uid); if (allele instanceof IAlleleSpecies) { IAlleleSpecies species = (IAlleleSpecies) allele; entries.add(species); } } } this.entries = entries.build(); }
private static void syncBreedingTrackers(EntityPlayer player) { IAlleleRegistry alleleRegistry = AlleleManager.alleleRegistry; Collection<ISpeciesRoot> speciesRoots = alleleRegistry.getSpeciesRoot().values(); for (ISpeciesRoot speciesRoot : speciesRoots) { IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.getEntityWorld(), player.getGameProfile()); breedingTracker.synchToPlayer(player); } }
@Override public NonNullList<ItemStack> getResearchBounty(World world, GameProfile researcher, IIndividual individual, int bountyLevel) { if (world.rand.nextFloat() < bountyLevel / 16.0f) { List<? extends IMutation> allMutations = getRoot().getCombinations(this); if (!allMutations.isEmpty()) { List<IMutation> unresearchedMutations = new ArrayList<>(); IBreedingTracker tracker = individual.getGenome().getSpeciesRoot().getBreedingTracker(world, researcher); for (IMutation mutation : allMutations) { if (!tracker.isResearched(mutation)) { unresearchedMutations.add(mutation); } } IMutation chosenMutation; if (!unresearchedMutations.isEmpty()) { chosenMutation = unresearchedMutations.get(world.rand.nextInt(unresearchedMutations.size())); } else { chosenMutation = allMutations.get(world.rand.nextInt(allMutations.size())); } ItemStack researchNote = AlleleManager.alleleRegistry.getMutationNoteStack(researcher, chosenMutation); NonNullList<ItemStack> bounty = NonNullList.create(); bounty.add(researchNote); return bounty; } } return NonNullList.create(); }
public GuiNaturalistInventory(ISpeciesRoot speciesRoot, EntityPlayer player, Container container, int page, int maxPages) { super(Constants.TEXTURE_PATH_GUI + "/apiaristinventory.png", container); this.speciesRoot = speciesRoot; this.pageCurrent = page; this.pageMax = maxPages; xSize = 196; ySize = 202; for (IIndividual individual : speciesRoot.getIndividualTemplates()) { iconStacks.put(individual.getIdent(), speciesRoot.getMemberStack(individual, speciesRoot.getIconType())); } breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); }
@Override public void initialiseServer() { final IBreedingTracker tracker = this.system.getSpeciesRoot().getBreedingTracker(this.getWorld(), this.getUsername()); if (tracker != null) { tracker.synchToPlayer(this.getPlayer()); } }
@Override public boolean onItemPickup(EntityPlayer entityPlayer, EntityItem entityitem) { ItemStack itemstack = entityitem.getItem(); if (itemstack.isEmpty()) { return false; } ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(itemstack); if (root != null) { IIndividual individual = root.getMember(itemstack); if (individual != null) { IBreedingTracker tracker = root.getBreedingTracker(entityitem.world, entityPlayer.getGameProfile()); tracker.registerPickup(individual); } } return false; }
@Override public void onPacketData(PacketBufferForestry data, EntityPlayer player) throws IOException { NBTTagCompound nbt = data.readCompoundTag(); if (nbt != null) { String type = nbt.getString(BreedingTracker.TYPE_KEY); ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(type); if (root != null) { IBreedingTracker tracker = root.getBreedingTracker(player.getEntityWorld(), player.getGameProfile()); tracker.decodeFromNBT(nbt); MinecraftForge.EVENT_BUS.post(new ForestryEvent.SyncedBreedingTracker(tracker, player)); } } } }
@Override public void createElements(IDatabaseElement container, IIndividual individual, ItemStack itemStack) { IGenome genome = individual.getGenome(); ISpeciesRoot speciesRoot = genome.getSpeciesRoot(); IAlleleSpecies species = genome.getPrimary(); EntityPlayer player = Minecraft.getMinecraft().player; IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); IElementLayoutHelper groupHelper = container.layoutHelper((x, y) -> GuiElementFactory.INSTANCE.createHorizontal(x + 1, y, 16), 100, 0); Collection<? extends IMutation> mutations = getValidMutations(speciesRoot.getCombinations(species)); if (!mutations.isEmpty()) { container.label(Translator.translateToLocal("for.gui.database.mutations.further"), GuiElementAlignment.TOP_CENTER, GuiConstants.UNDERLINED_STYLE); mutations.forEach(mutation -> groupHelper.add(GuiElementFactory.INSTANCE.createMutation(0, 0, 50, 16, mutation, species, breedingTracker))); groupHelper.finish(true); } mutations = getValidMutations(speciesRoot.getResultantMutations(species)); if (mutations.isEmpty()) { return; } container.label(Translator.translateToLocal("for.gui.database.mutations.resultant"), GuiElementAlignment.TOP_CENTER, GuiConstants.UNDERLINED_STYLE); mutations.forEach(mutation -> groupHelper.add(GuiElementFactory.INSTANCE.createMutationResultant(0, 0, 50, 16, mutation, breedingTracker))); groupHelper.finish(true); }
@Override public void initialiseServer() { for (IBreedingSystem system : Binnie.GENETICS.getActiveSystems()) { ISpeciesRoot root = system.getSpeciesRoot(); if (root != null) { IBreedingTracker tracker = root.getBreedingTracker(getWorld(), getUsername()); if (tracker != null) { tracker.synchToPlayer(getPlayer()); } } } //create slots getWindowInventory().createSlot(0); getWindowInventory().createSlot(1); setupValidators(); }
public void drawAnalyticsPageMutations(IIndividual individual) { textLayout.startPage(COLUMN_0, COLUMN_1, COLUMN_2); textLayout.drawLine(Translator.translateToLocal("for.gui.beealyzer.mutations") + ":", COLUMN_0); textLayout.newLine(); RenderHelper.enableGUIStandardItemLighting(); IGenome genome = individual.getGenome(); ISpeciesRoot speciesRoot = genome.getSpeciesRoot(); IAlleleSpecies species = genome.getPrimary(); int columnWidth = 50; int x = 0; EntityPlayer player = Minecraft.getMinecraft().player; IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); for (IMutation mutation : speciesRoot.getCombinations(species)) { if (breedingTracker.isDiscovered(mutation)) { drawMutationInfo(mutation, species, COLUMN_0 + x, breedingTracker); } else { // Do not display secret undiscovered mutations. if (mutation.isSecret()) { continue; } drawUnknownMutation(mutation, COLUMN_0 + x, breedingTracker); } x += columnWidth; if (x >= columnWidth * 4) { x = 0; textLayout.newLine(16); } } textLayout.endPage(); }
public static ItemStack analyse(ItemStack stack, World world, GameProfile username) { if (!stack.isEmpty()) { ItemStack conv = Binnie.GENETICS.getConversionStack(stack).copy(); if (!conv.isEmpty()) { conv.setCount(stack.getCount()); stack = conv; } ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(stack); if (root != null) { final IIndividual ind = root.getMember(stack); ind.analyze(); IBreedingTracker breedingTracker = ind.getGenome().getSpeciesRoot().getBreedingTracker(world, username); breedingTracker.registerBirth(ind); final 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; }
IBreedingTracker tracker = encoded.getRoot().getBreedingTracker(world, player.getGameProfile()); if (tracker.isResearched(encoded)) { player.sendMessage(new TextComponentTranslation("for.chat.cannotmemorizeagain"));
IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); breedingTracker.registerSpecies(individual.getGenome().getPrimary()); breedingTracker.registerSpecies(individual.getGenome().getSecondary());
IBreedingTracker breedingTracker = speciesRoot.getBreedingTracker(player.world, player.getGameProfile()); breedingTracker.registerSpecies(individual.getGenome().getPrimary()); breedingTracker.registerSpecies(individual.getGenome().getSecondary());