Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,21 @@

import com.google.common.base.Predicates;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.ai.EntityAIAttackMelee;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry;
import net.minecraft.entity.monster.IMob;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.subtile.RadiusDescriptor;
import vazkii.botania.api.subtile.SubTileFunctional;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibObfuscation;

import java.util.ArrayList;
import java.util.List;

public class SubTileHeiseiDream extends SubTileFunctional {
Expand Down Expand Up @@ -61,6 +59,10 @@ public void onUpdate() {
}

public static boolean brainwashEntity(EntityLiving entity, List<IMob> mobs) {
if(isImmune(entity)) {
return false;
}

EntityLivingBase target = entity.getAttackTarget();
boolean did = false;

Expand Down Expand Up @@ -91,6 +93,10 @@ public static boolean brainwashEntity(EntityLiving entity, List<IMob> mobs) {
return did;
}

private static boolean isImmune(EntityLiving entity) {
return ConfigHandler.heiseiDreamImmuneEntitiesSet.contains(EntityList.getKey(entity));
}

@Override
public RadiusDescriptor getRadius() {
return new RadiusDescriptor.Square(toBlockPos(), RANGE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import java.util.Set;
import java.util.stream.IntStream;

import net.minecraft.util.ResourceLocation;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.config.Config;
import net.minecraftforge.common.config.ConfigManager;
Expand Down Expand Up @@ -379,6 +380,11 @@ public final class ConfigHandler {
@Config.Comment("Should Mana Enchanter be able to add enchantments to items that are already enchanted?")
public static boolean opManaEnchanter = false;

@Config.Name("ceu.heiseiDream.immuneEntities")
@Config.LangKey("botania.config.heiseiDreamImmuneEntities")
Comment thread
WinDanesz marked this conversation as resolved.
@Config.Comment("Entities immune to Heisei Dream. Syntax is modid:entity_name.")
public static String[] heiseiDreamImmuneEntities = {};

@Config.Ignore
public static Set<String> runicAltarCatalystsSet = new HashSet<>();

Expand All @@ -388,6 +394,9 @@ public final class ConfigHandler {
@Config.Ignore
public static Set<String> petalApothecaryCatalystsSet = new HashSet<>();

@Config.Ignore
public static Set<ResourceLocation> heiseiDreamImmuneEntitiesSet = new HashSet<>();

@Config.Ignore
private static File configFolder;

Expand All @@ -401,6 +410,16 @@ public final class ConfigHandler {
@Config.Ignore
public static boolean useVanillaParticleLimiter = true;

public static void loadHeiseiDreamImmuneEntities() {
heiseiDreamImmuneEntitiesSet.clear();
for(String entry : heiseiDreamImmuneEntities) {
String entityId = entry.trim();
if(!entityId.isEmpty()) {
heiseiDreamImmuneEntitiesSet.add(new ResourceLocation(entityId));
}
}
}

@Config.LangKey("botania.config.generatingFlowers")
@Config.Comment("Configure generation values for all the flowers. Note! You should not edit this unless you are very experienced with Botania, since it can change the brittle balance of the mod.")
public static GeneratingFlowers genFlowers = new GeneratingFlowers();
Expand Down Expand Up @@ -592,6 +611,7 @@ private static void loadItemSets() {
runicAltarRetainedItemsSet.addAll(InventoryHelper.expandMetaInStringifiedStacks(runicAltarRetainedItems));
petalApothecaryCatalystsSet.clear();
petalApothecaryCatalystsSet.addAll(InventoryHelper.expandMetaInStringifiedStacks(petalApothecaryCatalysts));
loadHeiseiDreamImmuneEntities();

SheddingHandler.loadFromConfig(new Configuration(new File(configFolder, "botaniashedding.cfg")));
}
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/assets/botania/lang/en_us.lang
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,8 @@ botania.config.harvestLevelBore.tooltip=The harvest level of the Mana Lens: Bore
botania.config.harvestLevelBore=Bore Lens Harvest Level
botania.config.harvestLevelWeight.tooltip=The harvest level of the Mana Lens: Weight. 3 is diamond level. Defaults to 2 (iron level)
botania.config.harvestLevelWeight=Weight Lens Harvest Level
botania.config.heiseiDreamImmuneEntities.tooltip=Entities immune to Heisei Dream. Syntax is modid:entity_name.
botania.config.heiseiDreamImmuneEntities=Heisei Dream Immune Entities
botania.config.invertMagnetRing.tooltip=Set this to true to invert the Ring of Magnetization's controls (from shift to stop to shift to work)
botania.config.invertMagnetRing=Inverted Magnet Ring Controls
botania.config.lexicaOfflineMode.tooltip=Set this to true to disable the wiki lookup feature of the lexica, for offline usage.
Expand Down