Files
CustomNPC-Plus/src/main/java/noppes/npcs/scripted/entity/ScriptEnergyBarrier.java
T

127 lines
3.3 KiB
Java
Raw Normal View History

package noppes.npcs.scripted.entity;
2026-02-21 14:40:14 -05:00
import kamkeel.npcs.entity.EntityAbilityBarrier;
import kamkeel.npcs.entity.EntityAbilityDome;
import noppes.npcs.api.entity.IEnergyBarrier;
import noppes.npcs.scripted.constants.EntityType;
/**
* Base script wrapper for energy barrier entities (Dome, Panel).
2026-02-21 14:40:14 -05:00
* All shared methods delegate directly to EntityAbilityBarrier base.
*/
2026-02-21 14:40:14 -05:00
public class ScriptEnergyBarrier<T extends EntityAbilityBarrier> extends ScriptEnergyAbility<T> implements IEnergyBarrier {
public ScriptEnergyBarrier(T entity) {
super(entity);
}
@Override
public int getType() {
return EntityType.ENERGY_BARRIER;
}
@Override
public boolean typeOf(int type) {
return type == EntityType.ENERGY_BARRIER || super.typeOf(type);
}
// ==================== HEALTH ====================
public float getCurrentHealth() {
return entity.getCurrentHealth();
}
public void setCurrentHealth(float health) {
entity.setCurrentHealth(health);
}
public float getHealthPercent() {
return entity.getHealthPercent();
}
public float getMaxHealth() {
return entity.getBarrierData().maxHealth;
}
public void setMaxHealth(float maxHealth) {
entity.getBarrierData().setMaxHealth(maxHealth);
}
public boolean isUseHealth() {
return entity.getBarrierData().useHealth;
}
public void setUseHealth(boolean useHealth) {
entity.getBarrierData().useHealth = useHealth;
}
// ==================== DURATION ====================
public int getDuration() {
return entity.getBarrierData().durationTicks;
}
public void setDuration(int ticks) {
entity.getBarrierData().setDurationTicks(ticks);
}
public boolean isUseDuration() {
return entity.getBarrierData().useDuration;
}
public void setUseDuration(boolean useDuration) {
entity.getBarrierData().useDuration = useDuration;
}
// ==================== STATE (BARRIER-SPECIFIC) ====================
public int getTicksAlive() {
return entity.getTicksAlive();
}
// ==================== BARRIER ====================
2026-02-18 05:13:51 -05:00
public float getDefaultMultiplier() {
return entity.getBarrierData().defaultMultiplier;
}
public void setDefaultMultiplier(float multiplier) {
entity.getBarrierData().defaultMultiplier = multiplier;
}
2026-02-21 01:09:39 -05:00
public boolean isSolid() {
return entity.getBarrierData().solid;
}
public void setSolid(boolean solid) {
entity.getBarrierData().solid = solid;
}
2026-02-18 05:13:51 -05:00
public boolean isKnockbackEnabled() {
return entity.getBarrierData().knockbackEnabled;
}
public void setKnockbackEnabled(boolean enabled) {
entity.getBarrierData().knockbackEnabled = enabled;
}
public float getKnockbackStrength() {
return entity.getBarrierData().knockbackStrength;
}
2026-02-18 05:13:51 -05:00
public void setKnockbackStrength(float strength) {
entity.getBarrierData().knockbackStrength = strength;
}
2026-02-21 01:09:39 -05:00
public boolean isAbsorbing() {
return entity.getBarrierData().absorbing;
2026-02-18 05:13:51 -05:00
}
2026-02-21 01:09:39 -05:00
public void setAbsorbing(boolean absorbing) {
entity.getBarrierData().absorbing = absorbing;
2026-02-18 05:13:51 -05:00
}
public int getBarrierType() {
2026-02-21 14:40:14 -05:00
return entity instanceof EntityAbilityDome ? 0 : 1;
}
}