diff options
| author | Nico Spiske <64710705+Nilau1998@users.noreply.github.com> | 2024-09-01 14:38:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-01 14:38:40 +0200 |
| commit | 148ff2956dad2377e6043173ad8b33d6acbc6ac6 (patch) | |
| tree | 409cd58d3b847a0450efd8af7239b1860750e6c5 /src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java | |
| parent | 784fc5aaca22995a9652ca228484c1833c962db0 (diff) | |
| download | GT5-Unofficial-148ff2956dad2377e6043173ad8b33d6acbc6ac6.tar.gz GT5-Unofficial-148ff2956dad2377e6043173ad8b33d6acbc6ac6.tar.bz2 GT5-Unofficial-148ff2956dad2377e6043173ad8b33d6acbc6ac6.zip | |
Add bee in courtesy to DaddyDiddy (#2507)
* [major] new effect, comb, flower, mutation condition
* [minor] imports
* Update GT_BeeDefinition.java
* [minor] fancier processing
* [patch] bs
* Update ItemComb.java
* Update SifterRecipes.java
* [minor] nuked machine booster effect
* Added back the effect but now with tick throttling. Right now it is set so the effect only gets triggered every 30 seconds.
* SA & BS
* [minor] add dynamic authority
* rename comb type and bee
reduce speed to super speed
* update bs + sa
* changed to fastest because super speed was 2x blinding (wired naming)
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Co-authored-by: boubou19 <miisterunknown@gmail.com>
Diffstat (limited to 'src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java')
| -rw-r--r-- | src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java b/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java new file mode 100644 index 0000000000..d2ab1d6297 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java @@ -0,0 +1,135 @@ +package gregtech.loaders.misc.bees; + +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.EnumPlantType; + +import forestry.api.apiculture.FlowerManager; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleFlowers; +import forestry.api.genetics.IChromosomeType; +import forestry.api.genetics.IFlower; +import forestry.api.genetics.IFlowerProvider; +import forestry.api.genetics.IIndividual; +import forestry.api.genetics.IPollinatable; +import forestry.api.genetics.ISpeciesRoot; +import gregtech.api.util.GT_LanguageManager; + +public enum GT_Flowers implements IFlowerProvider, IAlleleFlowers, IChromosomeType { + + FLAMING; + + protected boolean dominant; + + GT_Flowers() { + dominant = true; + } + + public static void doInit() { + for (GT_Flowers effect : values()) { + effect.register(); + } + } + + @Override + public String getUID() { + return "for.flowers." + toString().toLowerCase(); + } + + @Override + public boolean isDominant() { + return dominant; + } + + @Override + public IFlowerProvider getProvider() { + return this; + } + + @Override + public String getDescription() { + return GT_LanguageManager.getTranslation("for.flowers." + name().toLowerCase()); + } + + public void register() { + for (ItemStack stack : getItemStacks()) { + FlowerManager.flowerRegistry.registerAcceptableFlower(Block.getBlockFromItem(stack.getItem()), getUID()); + } + + AlleleManager.alleleRegistry.registerAllele(this, this); + } + + public ItemStack[] getItemStacks() { + switch (this) { + case FLAMING: + return new ItemStack[] { new ItemStack(Blocks.fire) }; + } + return new ItemStack[0]; + } + + @Override + public boolean isAcceptedPollinatable(World world, IPollinatable pollinatable) { + EnumSet<EnumPlantType> types = pollinatable.getPlantType(); + return types.size() > 1 || !types.contains(EnumPlantType.Nether); + } + + public boolean isAcceptedFlower(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + if (block == null) { + return false; + } + + switch (this) { + case FLAMING: + return block == Blocks.fire; + } + return false; + } + + @Override + public boolean growFlower(World world, IIndividual individual, int x, int y, int z) { + return false; + } + + @Override + public ItemStack[] affectProducts(World world, IIndividual individual, int x, int y, int z, ItemStack[] products) { + return products; + } + + @Override + public String getName() { + return getDescription(); + } + + @Override + public String getUnlocalizedName() { + return getUID(); + } + + @Override + public String getFlowerType() { + return getUID(); + } + + @Override + public Set<IFlower> getFlowers() { + return new HashSet<>(); + } + + @Override + public Class<? extends IAllele> getAlleleClass() { + return getClass(); + } + + @Override + public ISpeciesRoot getSpeciesRoot() { + return AlleleManager.alleleRegistry.getSpeciesRoot(getUID()); + } +} |
