public static bool toIsFriendly(Relations rel) { if (rel.HasAnyFlag(Relations.Enemy)) { return(false); } return(rel.HasAnyFlag(Relations.Friendly)); }
public static byte PriorityOrder(this Relations rel) { for (byte i = 0; i < relationsPriority.Length; i++) { if (rel.HasAnyFlag(relationsPriority[i])) { return(i); } } return((byte)relationsPriority.Length); }
public static Relations highestPriority(this Relations rel) { foreach (Relations flag in relationsPriority) { if (rel.HasAnyFlag(flag)) { return(flag); } } return(Relations.NoOwner); }
public static Relations getRelationsTo(this long identityId, IMyCubeGrid target, Relations breakOn = Relations.NoOwner) { if (identityId == 0L) { return(Relations.NoOwner); } IMyPlayer controlling = MyAPIGateway.Players.GetPlayerControllingEntity(target); if (controlling != null) { return(getRelationsTo(identityId, controlling.IdentityId)); } if (target.BigOwners.Count == 0 && target.SmallOwners.Count == 0) // grid has no owner { return(Relations.NoOwner); } Relations relationsToGrid = Relations.NoOwner; foreach (long gridOwner in target.BigOwners) { relationsToGrid |= getRelationsTo(identityId, gridOwner); if (breakOn != Relations.NoOwner && relationsToGrid.HasAnyFlag(breakOn)) { return(relationsToGrid); } } foreach (long gridOwner in target.SmallOwners) { relationsToGrid |= getRelationsTo(identityId, gridOwner); if (breakOn != Relations.NoOwner && relationsToGrid.HasAnyFlag(breakOn)) { return(relationsToGrid); } } return(relationsToGrid); }
public static bool toIsHostile(Relations rel, bool ownerlessHostile = true) { if (rel.HasAnyFlag(Relations.Enemy)) { return(true); } if (rel == Relations.NoOwner) { return(ownerlessHostile); } return(false); }
public static bool toIsHostile(Relations rel) { if (rel.HasAnyFlag(Relations.Enemy)) return true; if (rel == Relations.None) return true; return false; }
public static bool toIsFriendly(Relations rel) { if (rel.HasAnyFlag(Relations.Enemy)) return false; return rel.HasAnyFlag(Relations.Owner) || rel.HasAnyFlag(Relations.Faction); }