mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-13 16:54:08 +00:00
158 lines
6.1 KiB
Java
158 lines
6.1 KiB
Java
package magicbees.bees;
|
|
|
|
import magicbees.main.utils.compat.ArsMagicaHelper;
|
|
import magicbees.main.utils.compat.ThaumcraftHelper;
|
|
import net.minecraft.potion.Potion;
|
|
import forestry.api.apiculture.IAlleleBeeSpecies;
|
|
import forestry.api.apiculture.IBeeRoot;
|
|
import forestry.api.genetics.AlleleManager;
|
|
import forestry.api.genetics.IAllele;
|
|
import forestry.api.genetics.IAlleleEffect;
|
|
import forestry.api.genetics.IAlleleFlowers;
|
|
|
|
public class Allele implements IAllele
|
|
{
|
|
public static IBeeRoot beeRoot;
|
|
|
|
public static AlleleInteger fertilityHighDominant;
|
|
public static AlleleFloat speedBlinding;
|
|
|
|
public static IAlleleFlowers flowerBookshelf;
|
|
public static IAlleleFlowers flowerThaumcraft;
|
|
public static IAlleleFlowers flowerArsMagica;
|
|
public static IAlleleFlowers flowerAuraNode;
|
|
@Deprecated
|
|
public static IAlleleFlowers flowerNodePurify;
|
|
@Deprecated
|
|
public static IAlleleFlowers flowerNodeFluxify;
|
|
|
|
public static IAlleleEffect cleansingEffect;
|
|
public static IAlleleEffect digSpeed;
|
|
public static IAlleleEffect moveSpeed;
|
|
public static IAlleleEffect slowSpeed;
|
|
|
|
public static IAlleleEffect spawnBrainyZombie;
|
|
public static IAlleleEffect spawnWisp;
|
|
public static IAlleleEffect spawnBats;
|
|
public static IAlleleEffect spawnGhast;
|
|
public static IAlleleEffect spawnSpider;
|
|
public static IAlleleEffect spawnManaDrainer;
|
|
public static IAlleleEffect spawnWispOrHecate;
|
|
|
|
public static IAlleleEffect effectNodeAttract;
|
|
public static IAlleleEffect effectNodePurify;
|
|
public static IAlleleEffect effectNodeFlux;
|
|
public static IAlleleEffect effectNodeCharge;
|
|
|
|
public static void setupAdditionalAlleles()
|
|
{
|
|
beeRoot = (IBeeRoot)AlleleManager.alleleRegistry.getSpeciesRoot("rootBees");
|
|
|
|
Allele.fertilityHighDominant = new AlleleInteger("fertilityHighDominant", 3, true);
|
|
Allele.speedBlinding = new AlleleFloat("speedBlinding", 2f, false);
|
|
|
|
Allele.flowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true);
|
|
if (ThaumcraftHelper.isActive())
|
|
{
|
|
FlowerProviderAuraNode provider = new FlowerProviderAuraNode();
|
|
Allele.flowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false);
|
|
Allele.flowerAuraNode = new AlleleFlower("flowerAuraNode", provider, true);
|
|
Allele.flowerNodePurify = new AlleleFlower("flowerAuraNodePurify", provider, false);
|
|
Allele.flowerNodeFluxify = new AlleleFlower("flowerAuraNodeFlux", provider, false);
|
|
|
|
Allele.spawnBrainyZombie = new AlleleEffectSpawnMob("effectBrainy", false, ThaumcraftHelper.Entity.BRAINY_ZOMBIE.entityID)
|
|
.setAggrosPlayerOnSpawn().setThrottle(800).setSpawnsOnPlayerNear(null).setMaxMobsInSpawnZone(2);
|
|
|
|
Allele.spawnBats = new AlleleEffectSpawnMob("effectBatty", false, ThaumcraftHelper.Entity.FIREBAT.entityID)
|
|
.setThrottle(300).setSpawnsOnPlayerNear("Bat");
|
|
|
|
Allele.spawnWisp = new AlleleEffectSpawnWisp("effectWispy", false, ThaumcraftHelper.Entity.WISP.entityID, "thaumcraft.wisplive")
|
|
.setThrottle(1800).setChanceToSpawn(79);
|
|
}
|
|
else
|
|
{
|
|
Allele.flowerThaumcraft = Allele.flowerAuraNode = (IAlleleFlowers)Allele.getBaseAllele("flowersVanilla");
|
|
Allele.flowerNodePurify = Allele.flowerNodeFluxify = (IAlleleFlowers)Allele.getBaseAllele("flowersVanilla");
|
|
|
|
Allele.spawnBrainyZombie = Allele.spawnBats = Allele.spawnWisp = (IAlleleEffect)Allele.getBaseAllele("effectNone");
|
|
}
|
|
|
|
if (ArsMagicaHelper.isActive())
|
|
{
|
|
Allele.flowerArsMagica = new AlleleFlower("flowerArsMagicaPlant", new FlowerProviderArsMagicaFlower(), false);
|
|
//String id, boolean isDominant, int throttle, String[] mobs, int[] chance
|
|
Allele.spawnManaDrainer = new AlleleEffectSpawnMobWeighted("effectManaDrainer", true, 20,
|
|
new String[] { "ArsMagica.MobManaCreeper", "ArsMagica.ManaVortex" },
|
|
new int[] { 60, 2 });
|
|
|
|
Allele.spawnWispOrHecate = new AlleleEffectSpawnMobWeighted("effectAMWisp", true, 20,
|
|
new String[] { "ArsMagica.MobWisp", "ArsMagica.MobHecate" },
|
|
new int[] { 40, 3 });
|
|
}
|
|
else
|
|
{
|
|
Allele.flowerArsMagica = (IAlleleFlowers)Allele.getBaseAllele("flowersVanilla");
|
|
Allele.spawnManaDrainer = Allele.spawnWispOrHecate = (IAlleleEffect)Allele.getBaseAllele("effectNone");
|
|
}
|
|
|
|
Allele.effectNodeAttract = new AlleleEffectAuraNodeAttract("effectNodeGeneration", false, 400);
|
|
Allele.effectNodePurify = new AlleleEffectAuraNodePurify("effectNodePurify", false, 600, 150);
|
|
Allele.effectNodeFlux = new AlleleEffectAuraNodeFlux("effectNodeFlux", true, 300, 300);
|
|
Allele.effectNodeCharge = new AlleleEffectAuraNodeCharge("effectNodeCharge", true, 1200);
|
|
|
|
Allele.cleansingEffect = new AlleleEffectCure("effectCurative", false);
|
|
Allele.digSpeed = new AlleleEffectPotion("effectDigSpeed", Potion.digSpeed, 15, false);
|
|
Allele.moveSpeed = new AlleleEffectPotion("effectMoveSpeed", Potion.moveSpeed, 10, false);
|
|
Allele.slowSpeed = new AlleleEffectPotion("effectSlowSpeed", Potion.moveSlowdown, 3, false);
|
|
|
|
Allele.spawnGhast = new AlleleEffectSpawnMob("Ghast", false, "Ghast", "mob.ghast.moan")
|
|
.setThrottle(2060).setChanceToSpawn(10).setMaxMobsInSpawnZone(1);
|
|
|
|
Allele.spawnSpider = new AlleleEffectSpawnMob("Spider", false, "Spider", "mob.spider.step")
|
|
.setThrottle(400).setChanceToSpawn(70).setMaxMobsInSpawnZone(4);
|
|
}
|
|
|
|
private String uid;
|
|
private boolean dominant;
|
|
|
|
public static IAlleleBeeSpecies getBaseSpecies(String name)
|
|
{
|
|
return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("forestry.species").append(name).toString());
|
|
}
|
|
|
|
public static IAlleleBeeSpecies getExtraSpecies(String name)
|
|
{
|
|
return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("extrabees.species.").append(name).toString());
|
|
}
|
|
|
|
public static IAllele getBaseAllele(String name)
|
|
{
|
|
return AlleleManager.alleleRegistry.getAllele("forestry." + name);
|
|
}
|
|
|
|
public static IAllele getAllele(String name)
|
|
{
|
|
return AlleleManager.alleleRegistry.getAllele(name);
|
|
}
|
|
|
|
public Allele(String id, boolean isDominant)
|
|
{
|
|
this.uid = "thaumicbees." + id;
|
|
this.dominant = isDominant;
|
|
AlleleManager.alleleRegistry.registerAllele(this);
|
|
}
|
|
|
|
@Override
|
|
public String getUID()
|
|
{
|
|
return this.uid;
|
|
}
|
|
|
|
@Override
|
|
public boolean isDominant()
|
|
{
|
|
return this.dominant;
|
|
}
|
|
|
|
}
|