2022-06-20 09:55:51 -05:00
|
|
|
package fathertoast.specialmobs.common.entity;
|
|
|
|
|
2022-07-10 16:07:07 -05:00
|
|
|
import fathertoast.specialmobs.common.bestiary.MobFamily;
|
2022-06-20 09:55:51 -05:00
|
|
|
import net.minecraft.entity.LivingEntity;
|
|
|
|
import net.minecraft.pathfinding.PathNodeType;
|
|
|
|
|
|
|
|
public interface ISpecialMob<T extends LivingEntity & ISpecialMob<T>> {
|
2022-07-10 16:07:07 -05:00
|
|
|
|
2022-06-20 09:55:51 -05:00
|
|
|
/** @return This mob's special data. */
|
|
|
|
SpecialMobData<T> getSpecialData();
|
|
|
|
|
2022-07-10 16:07:07 -05:00
|
|
|
/** @return This mob's species. */
|
|
|
|
MobFamily.Species<? extends T> getSpecies();
|
|
|
|
|
2022-06-20 14:04:57 -05:00
|
|
|
/** @return The experience that should be dropped by this entity. */
|
2022-06-20 09:55:51 -05:00
|
|
|
int getExperience();
|
|
|
|
|
2022-06-20 14:04:57 -05:00
|
|
|
/** Sets the experience that should be dropped by this entity. */
|
2022-06-20 09:55:51 -05:00
|
|
|
void setExperience( int xp );
|
|
|
|
|
|
|
|
/** Sets the entity's pathfinding malus for a particular node type; negative value is un-walkable. */
|
|
|
|
void setPathfindingMalus( PathNodeType nodeType, float malus );
|
|
|
|
}
|