mirror of
https://github.com/KAMKEEL/CustomNPC-Plus-API.git
synced 2026-11-15 18:24:44 +00:00
Remove all Legacy Ability Content, cleanup API.
- Add Script Tab to Abilities - Add Custom Ability - Add Icon Support for Abilities / Default Icon Support - Remove Icon Tab and throw it into Effects with allowed Override - Removed Deprecated API Sources
This commit is contained in:
1 parent
aac5f98be8
commit
ae98d12faf
8 files changed
+149
-30
No files matched your search
@@ -0,0 +1,42 @@
|
||||
package noppes.npcs.api.ability;
|
||||
|
||||
/**
|
||||
* A custom (script-driven) ability whose behavior is entirely defined by script event hooks.
|
||||
* Supports both instant execution mode and toggle mode.
|
||||
*/
|
||||
public interface ICustomAbility extends IAbility {
|
||||
|
||||
/**
|
||||
* Get the duration in ticks for instant mode (non-toggle).
|
||||
*/
|
||||
int getDurationTicks();
|
||||
|
||||
/**
|
||||
* Set the duration in ticks for instant mode.
|
||||
*/
|
||||
void setDurationTicks(int ticks);
|
||||
|
||||
/**
|
||||
* Get the telegraph shape type ordinal.
|
||||
* @return ordinal of TelegraphType: 0=CIRCLE, 1=RING, 2=LINE, 3=CONE, 4=POINT, 5=SQUARE, 6=NONE
|
||||
*/
|
||||
int getTelegraphShapeType();
|
||||
|
||||
/**
|
||||
* Set the telegraph shape type by ordinal.
|
||||
* @param type ordinal of TelegraphType
|
||||
*/
|
||||
void setTelegraphShapeType(int type);
|
||||
|
||||
/**
|
||||
* Get the targeting mode ordinal.
|
||||
* @return ordinal of TargetingMode: 0=AGGRO_TARGET, 1=SELF, 2=AOE_SELF, 3=AOE_TARGET
|
||||
*/
|
||||
int getTargetingModeType();
|
||||
|
||||
/**
|
||||
* Set the targeting mode by ordinal.
|
||||
* @param type ordinal of TargetingMode
|
||||
*/
|
||||
void setTargetingModeType(int type);
|
||||
}
|
||||
@@ -80,6 +80,11 @@ public interface IDataAbilities {
|
||||
*/
|
||||
void interruptCurrentAbility();
|
||||
|
||||
/**
|
||||
* Signal the current ability to complete immediately.
|
||||
*/
|
||||
void completeCurrentAbility();
|
||||
|
||||
/**
|
||||
* Get the global cooldown timer in ticks.
|
||||
*/
|
||||
|
||||
@@ -70,6 +70,11 @@ public interface IPlayerAbilityData {
|
||||
*/
|
||||
void interruptCurrentAbility();
|
||||
|
||||
/**
|
||||
* Signal the current ability to complete immediately.
|
||||
*/
|
||||
void completeCurrentAbility();
|
||||
|
||||
/**
|
||||
* Check if the player is on universal cooldown.
|
||||
*/
|
||||
|
||||
@@ -54,16 +54,6 @@ public interface IAbilityDisc extends IAbilityEnergyProjectile {
|
||||
|
||||
void setFireDelay(int delay);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getFireDelay()}
|
||||
*/
|
||||
int getDualFireDelay();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setFireDelay(int)}
|
||||
*/
|
||||
void setDualFireDelay(int delay);
|
||||
|
||||
// Indexed accessors
|
||||
int getInnerColor(int projectileIndex);
|
||||
|
||||
|
||||
@@ -42,16 +42,6 @@ public interface IAbilityEnergyBeam extends IAbilityEnergyProjectile {
|
||||
|
||||
void setFireDelay(int delay);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getFireDelay()}
|
||||
*/
|
||||
int getDualFireDelay();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setFireDelay(int)}
|
||||
*/
|
||||
void setDualFireDelay(int delay);
|
||||
|
||||
// Indexed accessors
|
||||
int getInnerColor(int projectileIndex);
|
||||
|
||||
|
||||
@@ -38,16 +38,6 @@ public interface IAbilityOrb extends IAbilityEnergyProjectile {
|
||||
|
||||
void setFireDelay(int delay);
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #getFireDelay()}
|
||||
*/
|
||||
int getDualFireDelay();
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #setFireDelay(int)}
|
||||
*/
|
||||
void setDualFireDelay(int delay);
|
||||
|
||||
// Indexed accessors
|
||||
int getInnerColor(int projectileIndex);
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@ package noppes.npcs.api.event;
|
||||
import cpw.mods.fml.common.eventhandler.Cancelable;
|
||||
import noppes.npcs.api.IDamageSource;
|
||||
import noppes.npcs.api.ability.IAbility;
|
||||
import noppes.npcs.api.entity.ICustomNpc;
|
||||
import noppes.npcs.api.entity.IEntityLivingBase;
|
||||
import noppes.npcs.api.entity.IPlayer;
|
||||
|
||||
/**
|
||||
* Events related to NPC ability execution.
|
||||
@@ -11,6 +13,21 @@ import noppes.npcs.api.entity.IEntityLivingBase;
|
||||
*/
|
||||
public interface IAbilityEvent extends INpcEvent {
|
||||
|
||||
/**
|
||||
* Get the entity executing the ability (NPC or Player).
|
||||
*/
|
||||
IEntityLivingBase getEntity();
|
||||
|
||||
/**
|
||||
* Get the player executing the ability, or null if the caster is an NPC.
|
||||
*/
|
||||
IPlayer getPlayer();
|
||||
|
||||
/**
|
||||
* Whether the entity executing the ability is an NPC.
|
||||
*/
|
||||
boolean isNPC();
|
||||
|
||||
/**
|
||||
* Get the ability involved in this event.
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
package noppes.npcs.api.event;
|
||||
|
||||
import noppes.npcs.api.IDamageSource;
|
||||
import noppes.npcs.api.ability.IChainedAbility;
|
||||
import noppes.npcs.api.entity.ICustomNpc;
|
||||
import noppes.npcs.api.entity.IEntityLivingBase;
|
||||
import noppes.npcs.api.entity.IPlayer;
|
||||
|
||||
/**
|
||||
* Events related to chained ability execution lifecycle.
|
||||
* These fire at chain-level transitions, not per-ability.
|
||||
* Unified for both NPCs and Players.
|
||||
*/
|
||||
public interface IChainEvent extends ICustomNPCsEvent {
|
||||
|
||||
/**
|
||||
* Get the entity executing the chain (NPC or Player).
|
||||
*/
|
||||
IEntityLivingBase getEntity();
|
||||
|
||||
/**
|
||||
* Get the player executing the chain, or null if the caster is an NPC.
|
||||
*/
|
||||
IPlayer getPlayer();
|
||||
|
||||
/**
|
||||
* Get the NPC executing the chain, or null if the caster is a player.
|
||||
*/
|
||||
ICustomNpc<?> getNpc();
|
||||
|
||||
/**
|
||||
* Whether the entity executing the chain is an NPC.
|
||||
*/
|
||||
boolean isNPC();
|
||||
|
||||
/**
|
||||
* Get the chained ability being executed.
|
||||
*/
|
||||
IChainedAbility getChain();
|
||||
|
||||
/**
|
||||
* Get the target of the chain, or null if no target.
|
||||
*/
|
||||
IEntityLivingBase getTarget();
|
||||
|
||||
/**
|
||||
* Get the current entry index within the chain (0-based).
|
||||
*/
|
||||
int getEntryIndex();
|
||||
|
||||
/**
|
||||
* Fired when a chained ability sequence starts executing.
|
||||
*/
|
||||
interface StartEvent extends IChainEvent {}
|
||||
|
||||
/**
|
||||
* Fired when the chain advances to the next entry in the sequence.
|
||||
*/
|
||||
interface NextEvent extends IChainEvent {}
|
||||
|
||||
/**
|
||||
* Fired when a chained ability sequence completes all entries.
|
||||
*/
|
||||
interface CompleteEvent extends IChainEvent {}
|
||||
|
||||
/**
|
||||
* Fired when a chained ability is interrupted by damage.
|
||||
*/
|
||||
interface InterruptEvent extends IChainEvent {
|
||||
/**
|
||||
* Get the damage source that caused the interruption.
|
||||
*/
|
||||
IDamageSource getDamageSource();
|
||||
|
||||
/**
|
||||
* Get the amount of damage that caused the interruption.
|
||||
*/
|
||||
float getDamage();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user