73 lines
3.3 KiB
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");
|
|
}
|
|
}
|
|
}
|