Binnie's Mods

Binnie's Mods

23M Downloads

No access to Refined Bee Line

BeesKneeesGeez opened this issue ยท 2 comments

commented

Although JEI lists the Oily, Distilled, and Refined bees, there seems to be no way to breed them. The master registry lists no possible mutation for Primeval and Modest, and does not include Oily and Refined in the database. Distilled is listed, but without any way to breed it.

Binnie's Mod 1.12.2-2.5.0.160
Minecraft 1.12.2
Forge 1.12.2-14.23.2.2654

commented

Availability of bees is configured in this section of the code.

@Override
public IAlleleBeeSpeciesBuilder addProduct(ItemStack product, Float chance) {
if(product.isEmpty() || ItemHoneyComb.isInvalidComb(product)){
if(state == State.ACTIVE){
state = State.INACTIVE;
return this;
}
}
return super.addProduct(product, chance);
}
@Override
public IAlleleBeeSpeciesBuilder addSpecialty(ItemStack specialty, Float chance) {
if(specialty.isEmpty() || ItemHoneyComb.isInvalidComb(specialty)){
if(state == State.ACTIVE){
state = State.INACTIVE;
return this;
}
}
return super.addSpecialty(specialty, chance);
}
@Override
public IAlleleBeeSpecies build() {
if(state == State.INACTIVE){
if (this.state != State.ACTIVE) {
AlleleManager.alleleRegistry.blacklistAllele(this.getUID());
}
}
return super.build();
}

Bee will be add to black list (no breeding recipe) if its product items or specialization (also items) do not exist in the current assembly of minecraft. Usually there is no mod that adds this item
For example Distilled: is not in black list but it depends on OIL
DISTILLED(ExtraBeeBranchDefinition.REFINED, "distilli", false, new Color(0x356356), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesBuilder beeSpecies) {
beeSpecies.addProduct(EnumHoneyComb.OLD.get(1), 0.10f);
}
@Override
protected void registerMutations() {
registerMutation(BeeDefinition.INDUSTRIOUS, OIL, 8);
}
},

OIL bee is in black list because where is no oil fluid in your game.
OIL(ExtraBeeBranchDefinition.FOSSILIZED, "lubricus", true, new Color(0x574770), new Color(0xffdc16)) {
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesBuilder beeSpecies) {
beeSpecies
.addProduct(EnumHoneyComb.OLD.get(1), 0.20f)
.addSpecialty(EnumHoneyComb.OIL.get(1), 0.05f);
}
@Override
protected void registerMutations() {
registerMutation(OCEAN, PRIMEVAL, 8);
registerMutation(BeeDefinition.FRUGAL, PRIMEVAL, 8);
}
},

Code: .addSpecialty(EnumHoneyComb.OIL.get(1), 0.05f); trying to register bee spec.
OIL(394760, 2894646){
@Override
protected void addSubtypes(ItemStack beeswax, ItemStack honeyDrop) {
tryAddProduct(EnumPropolis.OIL, 0.60f);
addProduct(honeyDrop, 0.75f);
}
},


@Override
public boolean isActive() {
return this.active && Utils.getFluidFromName(this.liquidName, 100) != null;
}

In general, if you add a mod that will register the liquid "Oil", then the corresponding bee will become available.
Similar logic works for other bees without breeding.

commented

I understand now; I was confused because I have Thermal Foundation installed, which does technically include "oil". However TF's code for the oil doesn't use the same syntax as this mod, so it goes unrecognized. Therefore the Bees are blacklisted and unavailable to breed.