From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../gregtech/loaders/misc/bees/GTAlleleEffect.java | 57 +++++++++ .../loaders/misc/bees/GTEffectMachineBoost.java | 61 ++++++++++ .../loaders/misc/bees/GTEffectTreeTwister.java | 87 +++++++++++++ .../java/gregtech/loaders/misc/bees/GTFlowers.java | 135 +++++++++++++++++++++ .../loaders/misc/bees/GT_AlleleEffect.java | 57 --------- .../loaders/misc/bees/GT_EffectMachineBoost.java | 61 ---------- .../loaders/misc/bees/GT_EffectTreeTwister.java | 87 ------------- .../gregtech/loaders/misc/bees/GT_Flowers.java | 135 --------------------- 8 files changed, 340 insertions(+), 340 deletions(-) create mode 100644 src/main/java/gregtech/loaders/misc/bees/GTAlleleEffect.java create mode 100644 src/main/java/gregtech/loaders/misc/bees/GTEffectMachineBoost.java create mode 100644 src/main/java/gregtech/loaders/misc/bees/GTEffectTreeTwister.java create mode 100644 src/main/java/gregtech/loaders/misc/bees/GTFlowers.java delete mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java delete mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java delete mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java delete mode 100644 src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java (limited to 'src/main/java/gregtech/loaders/misc/bees') diff --git a/src/main/java/gregtech/loaders/misc/bees/GTAlleleEffect.java b/src/main/java/gregtech/loaders/misc/bees/GTAlleleEffect.java new file mode 100644 index 0000000000..128e3dfeb1 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GTAlleleEffect.java @@ -0,0 +1,57 @@ +package gregtech.loaders.misc.bees; + +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.IAlleleBeeEffect; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IEffectData; +import forestry.core.genetics.alleles.Allele; + +// helper class for implementing custom bee effects, based on MagicBees' implementation +public abstract class GTAlleleEffect extends Allele implements IAlleleBeeEffect { + + public static final IAlleleBeeEffect FORESTRY_BASE_EFFECT = (IAlleleBeeEffect) AlleleManager.alleleRegistry + .getAllele("forestry.effectNone"); + protected boolean combinable; + protected int tickThrottle; // If set, this amount of ticks have to pass before an effect ticks + + public GTAlleleEffect(String id, boolean isDominant, int tickThrottle) { + super("gregtech." + id, "gregtech." + id, isDominant); + AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.EFFECT); + combinable = false; + this.tickThrottle = tickThrottle; + } + + @Override + public boolean isCombinable() { + return combinable; + } + + public GTAlleleEffect setIsCombinable(boolean canCombine) { + combinable = canCombine; + return this; + } + + @Override + public abstract IEffectData validateStorage(IEffectData storedData); + + @Override + public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + int ticksPassed = storedData.getInteger(0); + if (ticksPassed >= this.tickThrottle) { + storedData = this.doEffectTickThrottled(genome, storedData, housing); + } else { + storedData.setInteger(0, ticksPassed + 1); + } + return storedData; + } + + protected abstract IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, + IBeeHousing housing); + + @Override + public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + return FORESTRY_BASE_EFFECT.doFX(genome, storedData, housing); + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GTEffectMachineBoost.java b/src/main/java/gregtech/loaders/misc/bees/GTEffectMachineBoost.java new file mode 100644 index 0000000000..e0454e0d27 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GTEffectMachineBoost.java @@ -0,0 +1,61 @@ +package gregtech.loaders.misc.bees; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.genetics.IEffectData; +import forestry.core.genetics.EffectData; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.implementations.MTETieredMachineBlock; + +public class GTEffectMachineBoost extends GTAlleleEffect { + + public GTEffectMachineBoost() { + super("effectMachineBoost", false, 600); + } + + @Override + public IEffectData validateStorage(IEffectData storedData) { + if (storedData == null) { + storedData = new EffectData(1, 1); + } + return storedData; + } + + @Override + protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + World world = housing.getWorld(); + ChunkCoordinates coords = housing.getCoordinates(); + IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); + + // Get random coords within territory + int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); + int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); + int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); + + int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; + int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; + int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; + + // If gt machine of tier lower equal than ev, boost recipe by 2s + TileEntity tileEntity = world.getTileEntity(xCoord, yCoord, zCoord); + if (tileEntity instanceof BaseMetaTileEntity machine) { + if (machine.getMetaTileEntity() instanceof MTETieredMachineBlock tieredMachine) { + if (tieredMachine.mTier <= 4) { // EV + if (machine.isActive() && machine.getMaxProgress() > 60) { + machine.increaseProgress(40); + } + } + } + } + + storedData.setInteger(0, 0); + + return storedData; + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GTEffectTreeTwister.java b/src/main/java/gregtech/loaders/misc/bees/GTEffectTreeTwister.java new file mode 100644 index 0000000000..65c150bd1d --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GTEffectTreeTwister.java @@ -0,0 +1,87 @@ +package gregtech.loaders.misc.bees; + +import static gregtech.api.enums.Mods.GalaxySpace; +import static gregtech.api.enums.Mods.TwilightForest; + +import java.util.Arrays; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.apiculture.IBeeModifier; +import forestry.api.genetics.IEffectData; +import gregtech.GTMod; +import gregtech.api.util.GTModHandler; + +public class GTEffectTreeTwister extends GTAlleleEffect { + + private static final Integer[] ALLOWED_DIMS = { 2, // spectre + 112, // last millenium + 60, // bedrock + 69, // pocket plane + }; + + private static final ItemStack TF_TRANS_SAPLING = GTModHandler + .getModItem(TwilightForest.ID, "tile.TFSapling", 1, 6); + private static final ItemStack BARN_SAPLING = GTModHandler.getModItem(GalaxySpace.ID, "barnardaCsapling", 1, 1); + + static { + if (TF_TRANS_SAPLING == null) { + GTMod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); + } + if (BARN_SAPLING == null) { + GTMod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); + } + } + + public GTEffectTreeTwister() { + super("effectTreetwister", false, 0); + } + + public IEffectData validateStorage(IEffectData storedData) { + return storedData; // unused for this effect + } + + @Override + protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + if (TF_TRANS_SAPLING == null || BARN_SAPLING == null) { + return storedData; + } + World world = housing.getWorld(); + if (!Arrays.asList(ALLOWED_DIMS) + .contains(world.provider.dimensionId)) { + return storedData; + } + ChunkCoordinates coords = housing.getCoordinates(); + IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); + + // Get random coords within territory + int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); + int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); + int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); + + int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; + int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; + int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; + + ItemStack sourceBlock = new ItemStack( + world.getBlock(xCoord, yCoord, zCoord), + 1, + world.getBlockMetadata(xCoord, yCoord, zCoord)); + if (TF_TRANS_SAPLING != null && BARN_SAPLING != null && TF_TRANS_SAPLING.isItemEqual(sourceBlock)) { + world.setBlock( + xCoord, + yCoord, + zCoord, + Block.getBlockFromItem(BARN_SAPLING.getItem()), + BARN_SAPLING.getItemDamage(), + 2); + } + return storedData; + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GTFlowers.java b/src/main/java/gregtech/loaders/misc/bees/GTFlowers.java new file mode 100644 index 0000000000..db96bfb454 --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GTFlowers.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.GTLanguageManager; + +public enum GTFlowers implements IFlowerProvider, IAlleleFlowers, IChromosomeType { + + FLAMING; + + protected boolean dominant; + + GTFlowers() { + dominant = true; + } + + public static void doInit() { + for (GTFlowers 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 GTLanguageManager.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 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 getFlowers() { + return new HashSet<>(); + } + + @Override + public Class getAlleleClass() { + return getClass(); + } + + @Override + public ISpeciesRoot getSpeciesRoot() { + return AlleleManager.alleleRegistry.getSpeciesRoot(getUID()); + } +} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java deleted file mode 100644 index 25198968d2..0000000000 --- a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java +++ /dev/null @@ -1,57 +0,0 @@ -package gregtech.loaders.misc.bees; - -import forestry.api.apiculture.EnumBeeChromosome; -import forestry.api.apiculture.IAlleleBeeEffect; -import forestry.api.apiculture.IBeeGenome; -import forestry.api.apiculture.IBeeHousing; -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IEffectData; -import forestry.core.genetics.alleles.Allele; - -// helper class for implementing custom bee effects, based on MagicBees' implementation -public abstract class GT_AlleleEffect extends Allele implements IAlleleBeeEffect { - - public static final IAlleleBeeEffect FORESTRY_BASE_EFFECT = (IAlleleBeeEffect) AlleleManager.alleleRegistry - .getAllele("forestry.effectNone"); - protected boolean combinable; - protected int tickThrottle; // If set, this amount of ticks have to pass before an effect ticks - - public GT_AlleleEffect(String id, boolean isDominant, int tickThrottle) { - super("gregtech." + id, "gregtech." + id, isDominant); - AlleleManager.alleleRegistry.registerAllele(this, EnumBeeChromosome.EFFECT); - combinable = false; - this.tickThrottle = tickThrottle; - } - - @Override - public boolean isCombinable() { - return combinable; - } - - public GT_AlleleEffect setIsCombinable(boolean canCombine) { - combinable = canCombine; - return this; - } - - @Override - public abstract IEffectData validateStorage(IEffectData storedData); - - @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int ticksPassed = storedData.getInteger(0); - if (ticksPassed >= this.tickThrottle) { - storedData = this.doEffectTickThrottled(genome, storedData, housing); - } else { - storedData.setInteger(0, ticksPassed + 1); - } - return storedData; - } - - protected abstract IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, - IBeeHousing housing); - - @Override - public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - return FORESTRY_BASE_EFFECT.doFX(genome, storedData, housing); - } -} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java deleted file mode 100644 index a50c0452bb..0000000000 --- a/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java +++ /dev/null @@ -1,61 +0,0 @@ -package gregtech.loaders.misc.bees; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; -import net.minecraft.world.World; - -import forestry.api.apiculture.BeeManager; -import forestry.api.apiculture.IBeeGenome; -import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IBeeModifier; -import forestry.api.genetics.IEffectData; -import forestry.core.genetics.EffectData; -import gregtech.api.metatileentity.BaseMetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; - -public class GT_EffectMachineBoost extends GT_AlleleEffect { - - public GT_EffectMachineBoost() { - super("effectMachineBoost", false, 600); - } - - @Override - public IEffectData validateStorage(IEffectData storedData) { - if (storedData == null) { - storedData = new EffectData(1, 1); - } - return storedData; - } - - @Override - protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - World world = housing.getWorld(); - ChunkCoordinates coords = housing.getCoordinates(); - IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); - - // Get random coords within territory - int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); - int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); - int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); - - int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; - int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; - int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; - - // If gt machine of tier lower equal than ev, boost recipe by 2s - TileEntity tileEntity = world.getTileEntity(xCoord, yCoord, zCoord); - if (tileEntity instanceof BaseMetaTileEntity machine) { - if (machine.getMetaTileEntity() instanceof GT_MetaTileEntity_TieredMachineBlock tieredMachine) { - if (tieredMachine.mTier <= 4) { // EV - if (machine.isActive() && machine.getMaxProgress() > 60) { - machine.increaseProgress(40); - } - } - } - } - - storedData.setInteger(0, 0); - - return storedData; - } -} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java deleted file mode 100644 index a36635db57..0000000000 --- a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java +++ /dev/null @@ -1,87 +0,0 @@ -package gregtech.loaders.misc.bees; - -import static gregtech.api.enums.Mods.GalaxySpace; -import static gregtech.api.enums.Mods.TwilightForest; - -import java.util.Arrays; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChunkCoordinates; -import net.minecraft.world.World; - -import forestry.api.apiculture.BeeManager; -import forestry.api.apiculture.IBeeGenome; -import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IBeeModifier; -import forestry.api.genetics.IEffectData; -import gregtech.GT_Mod; -import gregtech.api.util.GT_ModHandler; - -public class GT_EffectTreeTwister extends GT_AlleleEffect { - - private static final Integer[] ALLOWED_DIMS = { 2, // spectre - 112, // last millenium - 60, // bedrock - 69, // pocket plane - }; - - private static final ItemStack TF_TRANS_SAPLING = GT_ModHandler - .getModItem(TwilightForest.ID, "tile.TFSapling", 1, 6); - private static final ItemStack BARN_SAPLING = GT_ModHandler.getModItem(GalaxySpace.ID, "barnardaCsapling", 1, 1); - - static { - if (TF_TRANS_SAPLING == null) { - GT_Mod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); - } - if (BARN_SAPLING == null) { - GT_Mod.GT_FML_LOGGER.info("GT_EffectTreeTwister(): Could not get ItemStack for BarnardaC sapling"); - } - } - - public GT_EffectTreeTwister() { - super("effectTreetwister", false, 0); - } - - public IEffectData validateStorage(IEffectData storedData) { - return storedData; // unused for this effect - } - - @Override - protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - if (TF_TRANS_SAPLING == null || BARN_SAPLING == null) { - return storedData; - } - World world = housing.getWorld(); - if (!Arrays.asList(ALLOWED_DIMS) - .contains(world.provider.dimensionId)) { - return storedData; - } - ChunkCoordinates coords = housing.getCoordinates(); - IBeeModifier beeModifier = BeeManager.beeRoot.createBeeHousingModifier(housing); - - // Get random coords within territory - int xRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); - int yRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[1]); - int zRange = (int) (beeModifier.getTerritoryModifier(genome, 1f) * genome.getTerritory()[2]); - - int xCoord = coords.posX + world.rand.nextInt(xRange) - xRange / 2; - int yCoord = coords.posY + world.rand.nextInt(yRange) - yRange / 2; - int zCoord = coords.posZ + world.rand.nextInt(zRange) - zRange / 2; - - ItemStack sourceBlock = new ItemStack( - world.getBlock(xCoord, yCoord, zCoord), - 1, - world.getBlockMetadata(xCoord, yCoord, zCoord)); - if (TF_TRANS_SAPLING != null && BARN_SAPLING != null && TF_TRANS_SAPLING.isItemEqual(sourceBlock)) { - world.setBlock( - xCoord, - yCoord, - zCoord, - Block.getBlockFromItem(BARN_SAPLING.getItem()), - BARN_SAPLING.getItemDamage(), - 2); - } - return storedData; - } -} diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java b/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java deleted file mode 100644 index d2ab1d6297..0000000000 --- a/src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java +++ /dev/null @@ -1,135 +0,0 @@ -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 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 getFlowers() { - return new HashSet<>(); - } - - @Override - public Class getAlleleClass() { - return getClass(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot(getUID()); - } -} -- cgit