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 | |
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')
13 files changed, 356 insertions, 8 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index e803318906..a11bb7ea6e 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -2067,6 +2067,7 @@ public enum ItemList implements IItemContainer { TierdDrone1, TierdDrone2, Hatch_DroneDownLink, + ElectronicsLump, Casing_Shielded_Accelerator, WormholeGenerator, Hatch_pHSensor, diff --git a/src/main/java/gregtech/common/items/CombType.java b/src/main/java/gregtech/common/items/CombType.java index d227c6c4ae..84ca2fa493 100644 --- a/src/main/java/gregtech/common/items/CombType.java +++ b/src/main/java/gregtech/common/items/CombType.java @@ -213,10 +213,10 @@ public enum CombType { ItemComb.Voltage.MV), PALLADIUM(164, "palladium", true, Materials.Palladium, 50, 0x8B8B8B, 0xF1D9D9, ItemComb.Voltage.MV), INFUSEDGOLD(165, "infused_gold", true, Materials.InfusedGold, 50, 0x80641E, 0xFFC83C, ItemComb.Voltage.IV), - // Additions to rare metals, moved here so we don't shift all comb IDs NEODYMIUM(166, "neodymium", true, Materials.Neodymium, 50, 0x555555, 0x4F4F4F, ItemComb.Voltage.HV), EUROPIUM(167, "europium", true, Materials.Europium, 10, 0xDAA0E2, 0xAB7EB1, ItemComb.Voltage.LuV), + MACHINIST(168, "machinist", true, Materials._NULL, 100, 0x552582, 0xFDB927, ItemComb.Voltage.MV), // ALWAYS KEEP _NULL AT THE BOTTOM _NULL(-1, "INVALIDCOMB", false, Materials._NULL, 0, 0, 0); diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java index f7463ae576..b7380d9eff 100644 --- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java +++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java @@ -1676,6 +1676,58 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 { new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 512L), new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 512L))); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_LV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.IronMagnetic), 'R', + OrePrefixes.stick.get(Materials.AnyIron), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_LV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.Steel), 'W', OrePrefixes.wireGt01.get(Materials.AnyCopper), 'C', + OrePrefixes.cableGt01.get(Materials.Tin) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_MV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.Aluminium), 'W', OrePrefixes.wireGt02.get(Materials.Cupronickel), 'C', + OrePrefixes.cableGt01.get(Materials.AnyCopper) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_HV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.SteelMagnetic), 'R', + OrePrefixes.stick.get(Materials.StainlessSteel), 'W', OrePrefixes.wireGt04.get(Materials.Electrum), 'C', + OrePrefixes.cableGt02.get(Materials.Silver) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_EV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R', + OrePrefixes.stick.get(Materials.Titanium), 'W', OrePrefixes.wireGt04.get(Materials.BlackSteel), 'C', + OrePrefixes.cableGt02.get(Materials.Aluminium) }); + GT_ModHandler.addCraftingRecipe( + ItemList.Electric_Motor_IV.get(1L), + GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE + | GT_ModHandler.RecipeBits.REVERSIBLE, + new Object[] { "CWR", "WIW", "RWC", 'I', OrePrefixes.stick.get(Materials.NeodymiumMagnetic), 'R', + OrePrefixes.stick.get(Materials.TungstenSteel), 'W', OrePrefixes.wireGt04.get(Materials.Graphene), 'C', + OrePrefixes.cableGt02.get(Materials.Tungsten) }); + + ItemList.ElectronicsLump.set( + addItem( + 414, + "Lump of Electronics", + "How did they even produce this?", + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L), + new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 1L))); + ItemList.Tesseract.set( addItem( Tesseract.ID, diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index 0d86237c2e..eaecd19f73 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -5,7 +5,9 @@ import static gregtech.api.enums.GT_Values.NF; import static gregtech.api.enums.GT_Values.NI; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.Mods.AE2FluidCraft; +import static gregtech.api.enums.Mods.ExtraBees; import static gregtech.api.enums.Mods.ExtraUtilities; +import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.enums.Mods.MagicBees; @@ -730,6 +732,15 @@ public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer { new int[] { 100 * 100 }, Voltage.LV); } + addCentrifugeToItemStack( + CombType.MACHINIST, + new ItemStack[] { GT_ModHandler.getModItem(Forestry.ID, "royalJelly", 1L, 0), + GT_ModHandler.getModItem(Forestry.ID, "pollen", 1L, 0), + GT_ModHandler.getModItem(Forestry.ID, "honeyDrop", 1L, 0), + GT_ModHandler.getModItem(ExtraBees.ID, "honeyDrop", 1L, 6), + GT_ModHandler.getModItem(Forestry.ID, "beeswax", 1L, 0), ItemList.ElectronicsLump.get(1) }, + new int[] { 10 * 100, 10 * 100, 20 * 100, 10 * 100, 20 * 100, 5 * 100 }, + Voltage.ULV); // Space Line addCentrifugeToItemStack( CombType.SPACE, diff --git a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java index ec73782238..87292ced62 100644 --- a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java +++ b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java @@ -103,6 +103,7 @@ import gregtech.common.bees.GT_Bee_Mutation; import gregtech.common.items.CombType; import gregtech.common.items.DropType; import gregtech.common.items.PropolisType; +import gregtech.loaders.misc.bees.GT_Flowers; /** * Bride Class for Lambdas @@ -1661,6 +1662,26 @@ public enum GT_BeeDefinition implements IBeeDefinition { tMutation.requireResource(GameRegistry.findBlock(ExtraCells2.ID, "walrus"), 0); } }), + MACHINIST(GT_BranchDefinition.ORGANIC, "Machinist", true, new Color(85, 37, 130), new Color(253, 185, 39), + beeSpecies -> { + beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.MACHINIST), 0.2f); + beeSpecies.setHumidity(EnumHumidity.NORMAL); + beeSpecies.setTemperature(NORMAL); + beeSpecies.setHasEffect(); + }, template -> { + AlleleHelper.instance.set(template, SPEED, Speed.FASTEST); + AlleleHelper.instance.set(template, LIFESPAN, Lifespan.LONGEST); + AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); + AlleleHelper.instance.set(template, NOCTURNAL, true); + AlleleHelper.instance.set(template, FLOWER_PROVIDER, GT_Flowers.FLAMING); + AlleleHelper.instance.set(template, FERTILITY, Fertility.MAXIMUM); + AlleleHelper.instance.set(template, EFFECT, getEffect(GREGTECH, "MachineBoost")); + }, dis -> { + IBeeMutationCustom tMutation = dis + .registerMutation(getSpecies(FORESTRY, "Industrious"), getSpecies(FORESTRY, "Imperial"), 1); + tMutation.addMutationCondition(new GT_Bees.ActiveGTMachineMutationCondition()); + }), // Space Bees SPACE(GT_BranchDefinition.SPACE, "Space", true, new Color(0x003366), new Color(0xC0C0C0), beeSpecies -> { beeSpecies.addProduct(GT_Bees.combs.getStackForType(CombType.SPACE), 0.02f); @@ -2655,16 +2676,20 @@ public enum GT_BeeDefinition implements IBeeDefinition { String species = WordUtils.capitalize(lowercaseName); String uid = "gregtech.bee.species" + species; - String description = "for.description." + species; + String description = "for.description." + lowercaseName; String name = "for.bees.species." + lowercaseName; GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species); + String authority = GT_LanguageManager.getTranslation("for.bees.authority." + lowercaseName); + if (authority.equals("for.bees.authority." + lowercaseName)) { + authority = "GTNH"; + } this.branch = branch; this.species = new GT_AlleleBeeSpecies( uid, dominant, name, - "GTNH", + authority, description, branch.getBranch(), binomial, diff --git a/src/main/java/gregtech/loaders/misc/GT_Bees.java b/src/main/java/gregtech/loaders/misc/GT_Bees.java index 497105d75c..a8246360cf 100644 --- a/src/main/java/gregtech/loaders/misc/GT_Bees.java +++ b/src/main/java/gregtech/loaders/misc/GT_Bees.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GalaxySpace; import static gregtech.api.enums.Mods.TwilightForest; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -20,13 +21,16 @@ import forestry.api.genetics.IMutationCondition; import forestry.core.genetics.alleles.Allele; import forestry.core.utils.StringUtil; import gregtech.GT_Mod; +import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.common.bees.GT_AlleleHelper; import gregtech.common.items.ItemComb; import gregtech.common.items.ItemDrop; import gregtech.common.items.ItemPollen; import gregtech.common.items.ItemPropolis; import gregtech.loaders.misc.bees.GT_AlleleEffect; +import gregtech.loaders.misc.bees.GT_EffectMachineBoost; import gregtech.loaders.misc.bees.GT_EffectTreeTwister; +import gregtech.loaders.misc.bees.GT_Flowers; public class GT_Bees { @@ -47,6 +51,7 @@ public class GT_Bees { public static IAlleleInteger superLife; public static IAlleleBeeEffect treetwisterEffect; + public static IAlleleBeeEffect machineBoostEffect; public static ItemPropolis propolis; public static ItemPollen pollen; @@ -57,7 +62,7 @@ public class GT_Bees { if (!(Forestry.isModLoaded() && GT_Mod.gregtechproxy.mGTBees)) { return; } - + GT_Flowers.doInit(); GT_AlleleHelper.initialisation(); setupGTAlleles(); propolis = new ItemPropolis(); @@ -91,6 +96,7 @@ public class GT_Bees { blinkLife = new AlleleInteger("lifeBlink", 2, false, EnumBeeChromosome.LIFESPAN); superLife = new AlleleInteger("lifeEon", 600, false, EnumBeeChromosome.LIFESPAN); + machineBoostEffect = new GT_EffectMachineBoost(); if (GalaxySpace.isModLoaded() && TwilightForest.isModLoaded()) { GT_Mod.GT_FML_LOGGER.info("treetwisterEffect: GalaxySpace and TwilightForest loaded, using default impl"); @@ -198,4 +204,28 @@ public class GT_Bees { return ""; } } + + public static class ActiveGTMachineMutationCondition implements IMutationCondition { + + public ActiveGTMachineMutationCondition() { + + } + + @Override + public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, + IGenome genome1, IClimateProvider climate) { + TileEntity tileEntity = world.getTileEntity(x, y - 1, z); + if (tileEntity instanceof BaseMetaTileEntity machine) { + if (machine.isActive()) { + return 1; + } + } + return 0; + } + + @Override + public String getDescription() { + return "Needs a running GT Machine below to breed"; + } + } } diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java index bb0d9eef8b..25198968d2 100644 --- a/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java +++ b/src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java @@ -14,11 +14,13 @@ 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) { + 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 @@ -35,7 +37,18 @@ public abstract class GT_AlleleEffect extends Allele implements IAlleleBeeEffect public abstract IEffectData validateStorage(IEffectData storedData); @Override - public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); + 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) { diff --git a/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java b/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java new file mode 100644 index 0000000000..a50c0452bb --- /dev/null +++ b/src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.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.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 index d188a3eb9b..a36635db57 100644 --- a/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java +++ b/src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java @@ -40,14 +40,15 @@ public class GT_EffectTreeTwister extends GT_AlleleEffect { } public GT_EffectTreeTwister() { - super("effectTreetwister", false); + super("effectTreetwister", false, 0); } public IEffectData validateStorage(IEffectData storedData) { return storedData; // unused for this effect } - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { + @Override + protected IEffectData doEffectTickThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { if (TF_TRANS_SAPLING == null || BARN_SAPLING == null) { 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 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()); + } +} diff --git a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java index 8d3614d76a..3a34cc3536 100644 --- a/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java +++ b/src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java @@ -1,6 +1,9 @@ package gregtech.loaders.postload.recipes; +import static gregtech.api.enums.Mods.EnderIO; +import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.recipe.RecipeMaps.sifterRecipes; +import static gregtech.api.util.GT_ModHandler.getModItem; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.init.Blocks; @@ -8,6 +11,7 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; @@ -43,5 +47,15 @@ public class SifterRecipes implements Runnable { .duration(30 * SECONDS) .eut(16) .addTo(sifterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.ElectronicsLump.get(1)) + .itemOutputs( + ItemList.Electric_Motor_LV.get(1), + getModItem(Forestry.ID, "thermionicTubes", 1L, 5), + getModItem(EnderIO.ID, "itemPowerConduit", 1L, 0)) + .outputChances(25 * 100, 25 * 100, 25 * 100) + .duration(30 * SECONDS) + .eut(16) + .addTo(sifterRecipes); } } diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang index 65c9709122..c981c982bb 100644 --- a/src/main/resources/assets/gregtech/lang/en_US.lang +++ b/src/main/resources/assets/gregtech/lang/en_US.lang @@ -1416,9 +1416,13 @@ for.bees.species.nethershard=Nether Shard for.bees.species.endshard=Ender Shard for.bees.species.dragonblood=Dragonblood +for.bees.authority.machinist=Diddy & Nilau + for.mutation.condition.biomeid=Required Biome for.mutation.condition.dim=Required Dimension +for.flowers.flaming=Fire + itemGroup.GTtools=Prebuild Tools gregtech.fertilitySterile=Sterile @@ -1432,6 +1436,7 @@ gregtech.speedAccelerated=Accelerated gregtech.lifeBlink=Blink gregtech.lifeEon=Eon gregtech.effectTreetwister=Treetwister +gregtech.effectMachineBoost=Machine Booster entity.gregtech.GT_Entity_Arrow.name= a GregTech arrow diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png Binary files differnew file mode 100644 index 0000000000..c6d3568b6d --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png |