AlexMog / Longship

Valheim Dedicated server Fixes, Optimizations and High-Level API
MIT License
29 stars 3 forks source link

[Optimization] Optimize GetCharactersInRange #11

Open AlexMog opened 3 years ago

AlexMog commented 3 years ago

Another instance of #6 but with characters. Again, Bruteforce usage, should use a geohash instead.

Class: Character

public static void GetCharactersInRange(Vector3 point, float radius, List<Character> characters)
    {
        foreach (Character character in m_characters)
        {
            if (Vector3.Distance(character.transform.position, point) < radius)
            {
                characters.Add(character);
            }
        }
    }
AlexMog commented 3 years ago

Apply the same for

public static bool IsCharacterInRange(Vector3 point, float range)
    {
        foreach (Character character in m_characters)
        {
            if (Vector3.Distance(character.transform.position, point) < range)
            {
                return true;
            }
        }
        return false;
    }

in the same class