@Override public IFruitProvider getFruitProvider() { return ((IAlleleFruit) getActiveAllele(EnumTreeChromosome.FRUITS)).getProvider(); }
public static List<IAlleleFruit> getFruitAllelesWithModels() { if (fruitAllelesWithModels == null) { fruitAllelesWithModels = new ArrayList<>(); for (IAllele allele : AlleleManager.alleleRegistry.getRegisteredAlleles(EnumTreeChromosome.FRUITS)) { if (allele instanceof IAlleleFruit) { IAlleleFruit alleleFruit = (IAlleleFruit) allele; if (alleleFruit.getModelName() != null) { fruitAllelesWithModels.add(alleleFruit); } } } } return fruitAllelesWithModels; } }
@Nullable public BlockFruitPod getFruitPod(IAlleleFruit fruit) { return podsMap.get(fruit.getUID()); } }
@Override public Map<IBlockState, ModelResourceLocation> putStateModelLocations(Block block) { if (block instanceof BlockFruitPod) { BlockFruitPod blockFruitPod = (BlockFruitPod) block; IAlleleFruit fruit = blockFruitPod.getFruit(); String modID = fruit.getModID(); if (modID == null) { modID = Constants.MOD_ID; } String modelName = fruit.getModelName(); String resourcePath = modID + ":pods/" + modelName; for (IBlockState state : block.getBlockState().getValidStates()) { String propertyString = getPropertyString(state.getProperties()); mapStateModelLocations.put(state, new ModelResourceLocation(resourcePath, propertyString)); } } return mapStateModelLocations; }
for (BlockFruitPod pod : BlockFruitPod.create()) { IAlleleFruit fruit = pod.getFruit(); registerBlock(pod, "pods." + fruit.getModelName()); podsMap.put(fruit.getUID(), pod);
@Override public IFruitFamily getFruitFamily() { return allele.getProvider().getFamily(); }
@Override public void writeData(PacketBufferForestry data) { if (allele != defaultAllele) { data.writeString(allele.getUID()); } else { data.writeString(""); } }
@Override public Collection<IFruitProvider> getFruitProvidersForFruitFamily(IFruitFamily fruitFamily) { if (providersForFamilies.isEmpty()) { @SuppressWarnings("unchecked") Collection<IAlleleFruit> fruitAlleles = (Collection<IAlleleFruit>) (Object) AlleleManager.alleleRegistry.getRegisteredAlleles(EnumTreeChromosome.FRUITS); for (IAlleleFruit alleleFruit : fruitAlleles) { IFruitProvider fruitProvider = alleleFruit.getProvider(); Collection<IFruitProvider> fruitProviders = providersForFamilies.computeIfAbsent(fruitProvider.getFamily(), k -> new ArrayList<>()); fruitProviders.add(fruitProvider); } } return providersForFamilies.computeIfAbsent(fruitFamily, k -> new ArrayList<>()); } }
@Override public NBTTagCompound writeToNBT(NBTTagCompound nbttagcompound) { nbttagcompound = super.writeToNBT(nbttagcompound); nbttagcompound.setString("UID", allele.getUID()); nbttagcompound.setShort("MT", maturity); nbttagcompound.setFloat("SP", yield); return nbttagcompound; }
public ItemStack getPickBlock() { Map<ItemStack, Float> products = allele.getProvider().getProducts(); ItemStack pickBlock = ItemStack.EMPTY; Float maxChance = 0.0f; for (Map.Entry<ItemStack, Float> product : products.entrySet()) { if (maxChance < product.getValue()) { maxChance = product.getValue(); pickBlock = product.getKey().copy(); } } pickBlock.setCount(1); return pickBlock; }
public NonNullList<ItemStack> getDrops() { return allele.getProvider().getFruits(genome, world, getPos(), maturity); }
@Override public String getAlleleName(final IChromosomeType chromosome, final IAllele allele) { if (chromosome == EnumTreeChromosome.GIRTH) { final IAlleleInteger alleleInteger = (IAlleleInteger) allele; return alleleInteger.getValue() + "x" + alleleInteger.getValue(); } if (chromosome == EnumTreeChromosome.FRUITS && allele.getUID().contains(".")) { final IFruitProvider provider = ((IAlleleFruit) allele).getProvider(); return (provider.getProducts().isEmpty()) ? I18N.localise("binniecore.allele.none") : provider.getProducts().keySet().iterator().next().getDisplayName(); } return super.getAlleleName(chromosome, allele); }
public static void init() { for (AlleleETFruitDefinition definition : values()) { definition.addProducts(); } AlleleManager.alleleRegistry.registerFruitFamily(BERRY); AlleleManager.alleleRegistry.registerFruitFamily(CITRUS); if (ConfigurationMain.alterLemon) { try { final IAlleleFruit lemon = (IAlleleFruit) AlleleManager.alleleRegistry.getAllele("forestry.fruitLemon"); final FruitProviderNone prov = (FruitProviderNone) lemon.getProvider(); final Field familyField = FruitProviderNone.class.getDeclaredField("family"); final Field modifiersField = Field.class.getDeclaredField("modifiers"); familyField.setAccessible(true); modifiersField.setAccessible(true); modifiersField.setInt(familyField, familyField.getModifiers() & 0xFFFFFFEF); familyField.set(prov, CITRUS); } catch (IllegalAccessException | NoSuchFieldException e) { throw new RuntimeException(e); } } IBreedingSystem treeSystem = Binnie.GENETICS.getSystem(TreeManager.treeRoot); for (IAlleleSpecies tree : treeSystem.getAllSpecies()) { if (tree instanceof AlleleTreeSpecies && ((IAlleleTreeSpecies) tree).getSuitableFruit().contains(PRUNES)) { ((AlleleTreeSpecies) tree).addFruitFamily(CITRUS); } } }
@SubscribeEvent @SideOnly(Side.CLIENT) public void registerSprites(TextureStitchEvent.Pre event) { TextureLeaves.registerAllSprites(); WoodTextureManager.parseFile(); for (IAlleleFruit alleleFruit : AlleleFruits.getFruitAlleles()) { alleleFruit.getProvider().registerSprites(); } List<ResourceLocation> textures = new ArrayList<>(); for (IWoodType type : TreeManager.woodAccess.getRegisteredWoodTypes()) { textures.add(new ResourceLocation(type.getHeartTexture())); textures.add(new ResourceLocation(type.getBarkTexture())); textures.add(new ResourceLocation(type.getDoorLowerTexture())); textures.add(new ResourceLocation(type.getDoorUpperTexture())); textures.add(new ResourceLocation(type.getPlankTexture())); for (WoodBlockKind kind : WoodBlockKind.values()) { for (Entry<String, String> loc : WoodTextureManager.getTextures(type, kind).entrySet()) { textures.add(new ResourceLocation(loc.getValue())); } } } for (ResourceLocation loc : textures) { TextureManagerForestry.registerSprite(loc); } }
@Override public void postInit() { IFarmProperties orchardFarm = FarmRegistry.getInstance().getProperties(ForestryFarmIdentifier.ORCHARD); if (orchardFarm != null && ModuleHelper.isEnabled(ForestryModuleUids.ARBORICULTURE)) { ITreeRoot treeRoot = TreeManager.treeRoot; if (treeRoot != null) { for (ITree tree : treeRoot.getIndividualTemplates()) { IFruitProvider fruitProvider = tree.getGenome().getFruitProvider(); if (fruitProvider != AlleleFruits.fruitNone.getProvider()) { orchardFarm.addGermlings(treeRoot.getMemberStack(tree, EnumGermlingType.SAPLING)); orchardFarm.addProducts(fruitProvider.getProducts().keySet()); orchardFarm.addProducts(fruitProvider.getSpecialty().keySet()); } } } } }
Collection<ItemStack> stacks = new UniqueItemStackSet(); for (IAllele a : fruitAlleles) { if (((IAlleleFruit) a).getProvider().getFamily() == fam) { stacks.addAll(((IAlleleFruit) a).getProvider().getProducts().keySet()); stacks.addAll(((IAlleleFruit) a).getProvider().getSpecialty().keySet()); try { if (a.getUID().contains("fruitCocoa")) { stacks.add(new ItemStack(Items.DYE, 1, 3)); } else { if (!(((IAlleleFruit) a).getProvider() instanceof FruitProviderPod)) { continue; FruitProviderPod pod2 = (FruitProviderPod) ((IAlleleFruit) a).getProvider(); Field field = FruitProviderPod.class.getDeclaredField("drops"); field.setAccessible(true);
if (!species.getSuitableFruit().contains(fruit.getProvider().getFamily()) && fruit != AlleleFruits.fruitNone) { strike = TextFormatting.STRIKETHROUGH.toString(); container.label(strike + fruit.getProvider().getDescription(), GuiElementAlignment.TOP_CENTER, textStyle); IFruitFamily family = fruit.getProvider().getFamily();
if (!tree.getGenome().getSecondary().getSuitableFruit().contains(fruit1.getProvider().getFamily()) && fruit1 != AlleleFruits.fruitNone) { strike = TextFormatting.STRIKETHROUGH.toString(); textLayout.drawLine(strike + fruit1.getProvider().getDescription(), GuiAlyzer.COLUMN_2, fruitDominance1); IFruitFamily secondary = ((IAlleleFruit) tree.getGenome().getInactiveAllele(EnumTreeChromosome.FRUITS)).getProvider().getFamily();