aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorNico Spiske <64710705+Nilau1998@users.noreply.github.com>2024-09-01 14:38:40 +0200
committerGitHub <noreply@github.com>2024-09-01 14:38:40 +0200
commit148ff2956dad2377e6043173ad8b33d6acbc6ac6 (patch)
tree409cd58d3b847a0450efd8af7239b1860750e6c5 /src/main
parent784fc5aaca22995a9652ca228484c1833c962db0 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java1
-rw-r--r--src/main/java/gregtech/common/items/CombType.java2
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java52
-rw-r--r--src/main/java/gregtech/common/items/ItemComb.java11
-rw-r--r--src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java29
-rw-r--r--src/main/java/gregtech/loaders/misc/GT_Bees.java32
-rw-r--r--src/main/java/gregtech/loaders/misc/bees/GT_AlleleEffect.java17
-rw-r--r--src/main/java/gregtech/loaders/misc/bees/GT_EffectMachineBoost.java61
-rw-r--r--src/main/java/gregtech/loaders/misc/bees/GT_EffectTreeTwister.java5
-rw-r--r--src/main/java/gregtech/loaders/misc/bees/GT_Flowers.java135
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/SifterRecipes.java14
-rw-r--r--src/main/resources/assets/gregtech/lang/en_US.lang5
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.pngbin0 -> 272 bytes
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
new file mode 100644
index 0000000000..c6d3568b6d
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/414.png
Binary files differ