diff --git a/java/noppes/npcs/api/entity/IAnimatable.java b/java/noppes/npcs/api/entity/IAnimatable.java new file mode 100644 index 0000000..9d7fbc9 --- /dev/null +++ b/java/noppes/npcs/api/entity/IAnimatable.java @@ -0,0 +1,8 @@ +package noppes.npcs.api.entity; + +import noppes.npcs.api.handler.data.IAnimationData; + +public interface IAnimatable { + + IAnimationData getAnimationData(); +} diff --git a/java/noppes/npcs/api/entity/ICustomNpc.java b/java/noppes/npcs/api/entity/ICustomNpc.java index a9388bb..d353206 100644 --- a/java/noppes/npcs/api/entity/ICustomNpc.java +++ b/java/noppes/npcs/api/entity/ICustomNpc.java @@ -13,7 +13,7 @@ import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.jobs.IJob; import noppes.npcs.api.roles.IRole; -public interface ICustomNpc extends IEntityLiving { +public interface ICustomNpc extends IEntityLiving, IAnimatable { /** * @return Returns the current npcs size 1-30 */ diff --git a/java/noppes/npcs/api/entity/IPlayer.java b/java/noppes/npcs/api/entity/IPlayer.java index 185e79b..f8d2432 100644 --- a/java/noppes/npcs/api/entity/IPlayer.java +++ b/java/noppes/npcs/api/entity/IPlayer.java @@ -13,7 +13,7 @@ import noppes.npcs.api.handler.data.ISound; import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.overlay.ICustomOverlay; -public interface IPlayer extends IEntityLivingBase { +public interface IPlayer extends IEntityLivingBase, IAnimatable { /** * @return Returns the displayed name of the player */ diff --git a/java/noppes/npcs/api/event/IAnimationEvent.java b/java/noppes/npcs/api/event/IAnimationEvent.java new file mode 100644 index 0000000..400c597 --- /dev/null +++ b/java/noppes/npcs/api/event/IAnimationEvent.java @@ -0,0 +1,40 @@ +package noppes.npcs.api.event; + +import cpw.mods.fml.common.eventhandler.Cancelable; +import noppes.npcs.api.entity.IAnimatable; +import noppes.npcs.api.handler.data.IAnimation; +import noppes.npcs.api.handler.data.IAnimationData; +import noppes.npcs.api.handler.data.IFrame; + +public interface IAnimationEvent extends ICustomNPCsEvent { + + IAnimation getAnimation(); + + IAnimationData getAnimationData(); + + IAnimatable getEntity(); + + @Cancelable + interface Started extends IAnimationEvent { + + } + + interface Ended extends IAnimationEvent { + + } + + interface IFrameEvent extends IAnimationEvent { + + int getIndex(); + + IFrame getFrame(); + + interface Entered extends IFrameEvent { + + } + + interface Exited extends IFrameEvent { + + } + } +} diff --git a/java/noppes/npcs/api/handler/data/IAnimation.java b/java/noppes/npcs/api/handler/data/IAnimation.java index f502937..469359e 100644 --- a/java/noppes/npcs/api/handler/data/IAnimation.java +++ b/java/noppes/npcs/api/handler/data/IAnimation.java @@ -2,6 +2,8 @@ package noppes.npcs.api.handler.data; public interface IAnimation { + IAnimationData getParent(); + IFrame currentFrame(); IFrame[] getFrames(); diff --git a/java/noppes/npcs/api/handler/data/IAnimationData.java b/java/noppes/npcs/api/handler/data/IAnimationData.java index 82f3bcf..269bedd 100644 --- a/java/noppes/npcs/api/handler/data/IAnimationData.java +++ b/java/noppes/npcs/api/handler/data/IAnimationData.java @@ -1,7 +1,11 @@ package noppes.npcs.api.handler.data; +import noppes.npcs.api.entity.IAnimatable; + public interface IAnimationData { + IAnimatable getEntity(); + void updateClient(); boolean isActive();