Make it pretty

This commit is contained in:
kuba6000 committed 2022-10-09 14:52:07 +02:00
1 parent 4f3c73ee98
commit d9f5acd98a
5 files changed
+86 -90

No files matched your search

@@ -2,6 +2,7 @@ package binnie.extrabees.genetics;
import binnie.core.Mods;
import binnie.extrabees.genetics.effect.ExtraBeesEffect;
import binnie.extrabees.genetics.requirements.RequirementPerson;
import binnie.extrabees.products.EnumHoneyComb;
import binnie.extrabees.products.ItemHoneyComb;
import binnie.genetics.genetics.AlleleHelper;
@@ -29,6 +30,7 @@ import java.util.Locale;
import java.util.Map;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.BiomeDictionary;
public enum ExtraBeeDefinition implements IBeeDefinition {
@@ -1639,12 +1641,10 @@ public enum ExtraBeeDefinition implements IBeeDefinition {
}
},
CHAD(ExtraBeeBranchDefinition.FTB, "merciboocoup", true, new Color(0x2157DB), new Color(0xD2ABD1)) {
ItemStack product = new ItemStack(Items.cake, 1);
@Override
protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) {
beeSpecies
.addProduct(product, 1f)
.addProduct(new ItemStack(Items.cake, 1), 1f)
.addSpecialty(Mods.forestry.stack("pollenFertile"), 0.50f)
.addSpecialty(EnumHoneyComb.MILK.get(1), 0.55f)
.setIsNotCounted()
@@ -1661,20 +1661,36 @@ public enum ExtraBeeDefinition implements IBeeDefinition {
@Override
protected void registerMutations() {
String[] names = {
"Runakai",
"boubou_19",
"Alastors_Game",
"BlueWeabo",
"Lewis_Saber",
"True_Aurastorm",
"minecraft7771",
"mitchej123",
"_Timbo",
"kuba6000",
"DreamMasterXXL"
};
registerMutation(BeeDefinition.CULTIVATED, CELEBRATORY, 5).restrictedByGroupOfPersons(names);
registerMutation(BeeDefinition.CULTIVATED, CELEBRATORY, 5)
.restrictPerson(new RequirementPerson()
.add(
name -> ""
+ EnumChatFormatting.DARK_RED
+ EnumChatFormatting.BOLD + "R"
+ EnumChatFormatting.RED
+ EnumChatFormatting.BOLD + "u"
+ EnumChatFormatting.GOLD
+ EnumChatFormatting.BOLD + "n"
+ EnumChatFormatting.YELLOW
+ EnumChatFormatting.BOLD + "a"
+ EnumChatFormatting.DARK_GREEN
+ EnumChatFormatting.BOLD + "k"
+ EnumChatFormatting.GREEN
+ EnumChatFormatting.BOLD + "a"
+ EnumChatFormatting.AQUA
+ EnumChatFormatting.BOLD + "i",
"Runakai")
.add(
"boubou_19",
"Alastors_Game",
"BlueWeabo",
"Lewis_Saber",
"True_Aurastorm",
"minecraft7771",
"mitchej123",
"_Timbo",
"kuba6000",
"DreamMasterXXL"));
}
},
@@ -11,6 +11,7 @@ import forestry.api.genetics.IAllele;
import forestry.api.genetics.IMutation;
import forestry.apiculture.genetics.BeeMutation;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ExtraBeeMutation extends BeeMutation implements IBeeMutationCustom {
@@ -44,15 +45,19 @@ public class ExtraBeeMutation extends BeeMutation implements IBeeMutationCustom
return super.getChance(housing, allele0, allele1, genome0, genome1);
}
public void restrictPerson(String nickname) {
RequirementPerson requirement = new RequirementPerson(nickname);
requirements.add(requirement);
addMutationCondition(new DummyMutationCondition(requirement));
public void restrictPerson(String... nicknames) {
restrictPerson(new RequirementPerson(nicknames));
}
public void restrictedByGroupOfPersons(String[] nicknames) {
RequirementGroupOfPersons requirement = new RequirementGroupOfPersons(nicknames);
public void restrictPerson(RequirementPerson requirement) {
requirements.add(requirement);
addMutationCondition(new DummyMutationConditionGroupPersons(requirement));
addMutationCondition(new DummyMutationCondition(requirement));
ArrayList<String> descriptions = (ArrayList<String>) getSpecialConditions();
int i = descriptions.size() - 1;
String description = descriptions.get(i);
if (description.contains("/n")) {
descriptions.remove(i);
descriptions.addAll(Arrays.asList(description.split("/n")));
}
}
}
@@ -1,34 +0,0 @@
package binnie.extrabees.genetics.requirements;
import forestry.api.core.IClimateProvider;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IGenome;
import forestry.api.genetics.IMutationCondition;
import net.minecraft.world.World;
public class DummyMutationConditionGroupPersons implements IMutationCondition {
private final RequirementGroupOfPersons requirement;
public DummyMutationConditionGroupPersons(RequirementGroupOfPersons requirement) {
this.requirement = requirement;
}
@Override
public float getChance(
World world,
int x,
int y,
int z,
IAllele allele0,
IAllele allele1,
IGenome genome0,
IGenome genome1,
IClimateProvider climate) {
return 1.0F;
}
@Override
public String getDescription() {
return requirement.getDescription();
}
}
@@ -1,27 +0,0 @@
package binnie.extrabees.genetics.requirements;
import binnie.core.util.I18N;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IGenome;
import java.util.Arrays;
import java.util.List;
public class RequirementGroupOfPersons implements IMutationRequirement {
protected List<String> names;
public RequirementGroupOfPersons(String[] name) {
this.names = Arrays.asList(name);
}
@Override
public String getDescription() {
return I18N.localise("extrabees.genetics.requirements.user", names);
}
@Override
public boolean fufilled(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) {
String ownerName = housing.getOwner().getName();
return ownerName != null && names.contains(ownerName); // ownerName.contains(name);
}
}
@@ -4,22 +4,58 @@ import binnie.core.util.I18N;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IGenome;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import net.minecraft.util.EnumChatFormatting;
public class RequirementPerson implements IMutationRequirement {
protected String name;
protected List<String> names;
protected HashMap<String, Function<String, String>> nameFormatters = new HashMap<>();
private static final Function<String, String> defaultApplier = name -> name;
private static final String REQUIREMENT_USER_LOCALIZE_KEY = "extrabees.genetics.requirements.user";
public RequirementPerson(String name) {
this.name = name;
public RequirementPerson(String... names) {
this.names = Arrays.stream(names).collect(Collectors.toList());
}
public RequirementPerson add(String... names) {
this.names.addAll(Arrays.asList(names));
return this;
}
public RequirementPerson add(Function<String, String> formatter, String... names) {
this.names.addAll(Arrays.asList(names));
for (String name : names) nameFormatters.put(name, formatter);
return this;
}
@Override
public String getDescription() {
return I18N.localise("extrabees.genetics.requirements.user", name);
if (names.isEmpty()) return I18N.localise(REQUIREMENT_USER_LOCALIZE_KEY, "No one");
final StringBuilder namesFormatted = new StringBuilder("[");
boolean hasNewLines = false;
for (int i = 0, isize = names.size(); i < isize; i++) {
if (i != 0) {
namesFormatted.append(", ");
if (i % 3 == 0) namesFormatted.append("/n ");
hasNewLines = true;
}
String name = names.get(i);
namesFormatted.append(
nameFormatters.getOrDefault(name, defaultApplier).apply(name));
namesFormatted.append(EnumChatFormatting.RESET);
}
namesFormatted.append("]");
if (hasNewLines) namesFormatted.insert(0, "/n");
return I18N.localise(REQUIREMENT_USER_LOCALIZE_KEY, namesFormatted.toString());
}
@Override
public boolean fufilled(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) {
String ownerName = housing.getOwner().getName();
return ownerName != null && ownerName.equals(name);
return ownerName != null && names.contains(ownerName);
}
}