Created
February 15, 2020 06:10
-
-
Save sarkahn/53e0edfedb233b2937f3a69bddde98d7 to your computer and use it in GitHub Desktop.
PlayerSpeedSort
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Sort so that players are first, and everything else is sorted by speed | |
struct PlayerSpeedSort : IComparer<Entity> | |
{ | |
ComponentDataFromEntity<Speed> speedFromEntity; | |
ComponentDataFromEntity<Player> playerFromEntity; | |
public PlayerSpeedSort(ComponentDataFromEntity<Speed> speedFromEntity, ComponentDataFromEntity<Player> playerFromEntity) | |
{ | |
this.speedFromEntity = speedFromEntity; | |
this.playerFromEntity = playerFromEntity; | |
} | |
public int Compare(Entity a, Entity b) | |
{ | |
bool aIsPlayer = playerFromEntity.HasComponent(a); | |
bool bIsPlayer = playerFromEntity.HasComponent(b); | |
if (aIsPlayer && !bIsPlayer) return -1; | |
if (!aIsPlayer && bIsPlayer) return 1; | |
int aSpeed = speedFromEntity[a].value; | |
int bSpeed = speedFromEntity[b].value; | |
if (aSpeed > bSpeed) return -1; | |
if (aSpeed < bSpeed) return 1; | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment