Combit/src/main/java/io/gitlab/jfronny/combit/config/Cfg.java

73 lines
3.3 KiB
Java

package io.gitlab.jfronny.combit.config;
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Category;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry.Gui.TransitiveObject;
import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment;
import java.util.HashSet;
@Config(name = "Combit")
public class Cfg implements ConfigData {
@Comment(value = "Allows modifying/removing the attack delay and related things")
@Category("attackDelay")
@TransitiveObject
public AttackDelay attackDelay = new AttackDelay();
@Comment(value = "Allows disabling invulnerability frames")
@Category("invulnerability")
@TransitiveObject
public Invulnerability invulnerability = new Invulnerability();
@Override
public void validatePostLoad() throws ValidationException {
if (attackDelay == null)
attackDelay = new AttackDelay();
if (invulnerability == null)
invulnerability = new Invulnerability();
if (attackDelay.cooldownProgressOverride < 0)
attackDelay.cooldownProgressOverride = -0.1f;
if (attackDelay.cooldownProgressOverride > 1)
attackDelay.cooldownProgressOverride = 1;
if (attackDelay.cooldownProgressPerTickOverride < 0)
attackDelay.cooldownProgressPerTickOverride = -0.1f;
if (attackDelay.cooldownProgressPerTickOverride > 1)
attackDelay.cooldownProgressPerTickOverride = 1;
if (attackDelay.axeAttackDamageFactor < 0)
attackDelay.axeAttackDamageFactor = 0;
if (attackDelay.axeAttackDamageFactor > 2)
attackDelay.axeAttackDamageFactor = 2;
if (invulnerability.attackCancelThreshold < 0)
invulnerability.attackCancelThreshold = -0.1f;
if (invulnerability.attackCancelThreshold > 1)
invulnerability.attackCancelThreshold = 1;
if (invulnerability.knockbackCancelThreshold < 0)
invulnerability.knockbackCancelThreshold = -0.1f;
if (invulnerability.knockbackCancelThreshold > 1)
invulnerability.knockbackCancelThreshold = 1;
if (invulnerability.attackExcludedEntities == null) {
invulnerability.attackExcludedEntities = new HashSet<>();
invulnerability.attackExcludedEntities.add("minecraft:slime");
invulnerability.attackExcludedEntities.add("tconstruct:blueslime");
invulnerability.attackExcludedEntities.add("thaumcraft:thaumslime");
}
if (invulnerability.dmgReceiveExcludedEntities == null) {
invulnerability.dmgReceiveExcludedEntities = new HashSet<>();
}
if (invulnerability.damageSrcWhitelist == null) {
invulnerability.damageSrcWhitelist = new HashSet<>();
invulnerability.damageSrcWhitelist.add("inFire");
invulnerability.damageSrcWhitelist.add("lava");
invulnerability.damageSrcWhitelist.add("cactus");
invulnerability.damageSrcWhitelist.add("lightningBolt");
invulnerability.damageSrcWhitelist.add("inWall");
invulnerability.damageSrcWhitelist.add("hotFloor");
invulnerability.damageSrcWhitelist.add("outOfWorld");
}
}
}