Generalise isAllied to all living entities

This commit is contained in:
Electroblob77
2020-06-20 13:10:44 +01:00
parent e9093b9360
commit dfe6ecadac
@@ -190,13 +190,23 @@ public final class AllyDesignationSystem {
}
/** Umbrella method that covers both {@link AllyDesignationSystem#isPlayerAlly(EntityPlayer, EntityPlayer)} and
* {@link AllyDesignationSystem#isOwnerAlly(EntityPlayer, IEntityOwnable)}, returning true if the given
* {@link EntityLivingBase} is either owned by the given player, an ally of the given player or owned by an ally
* of the given player. This is generally used to determine targets for healing or other group buffs. */
public static boolean isAllied(EntityPlayer allyOf, EntityLivingBase possibleAlly){
return (possibleAlly instanceof EntityPlayer && isPlayerAlly(allyOf, (EntityPlayer)possibleAlly))
|| (possibleAlly instanceof IEntityOwnable && (((IEntityOwnable)possibleAlly).getOwner() == allyOf
|| isOwnerAlly(allyOf, (IEntityOwnable)possibleAlly)));
* {@link AllyDesignationSystem#isOwnerAlly(EntityPlayer, IEntityOwnable)}, returning true if the second entity is
* either owned by the first entity, an ally of the first entity, or owned by an ally of the first entity. This is
* generally used to determine targets for healing or other group buffs. */
public static boolean isAllied(EntityLivingBase allyOf, EntityLivingBase possibleAlly){
if(allyOf instanceof EntityPlayer && possibleAlly instanceof EntityPlayer
&& isPlayerAlly((EntityPlayer)allyOf, (EntityPlayer)possibleAlly)){
return true;
}
if(possibleAlly instanceof IEntityOwnable){
IEntityOwnable pet = (IEntityOwnable)possibleAlly;
if(pet.getOwner() == allyOf) return true;
if(allyOf instanceof EntityPlayer && isOwnerAlly((EntityPlayer)allyOf, pet)) return true;
}
return false;
}
/** Helper method for testing if the second player is an ally of the first player. Makes the code neater.