コード例 #1
0
    private static MeleeTargetComponentData FindClosest(MeleeFindTargetSettingsComponentData findingSettings, FactionComponentData faction, NativeMultiHashMap <int, QuadrantSystem.QuadrandEntityData> quadrantMap, float3 pos, int key, MeleeTargetComponentData closest)
    {
        NativeMultiHashMapIterator <int> iterator;

        QuadrantSystem.QuadrandEntityData qdata;

        if (quadrantMap.TryGetFirstValue(key, out qdata, out iterator))
        {
            do
            {
                if (qdata.faction != faction.value &&
                    qdata.corps == QuadrantSystem.QuadrandEntityData.Corps.SWORDSMAN &&
                    qdata.position.EqualsEpsilon(pos, findingSettings.findingRadius) &&
                    (closest.target == Entity.Null || pos.CompareToAnother(qdata.position, closest.targetPosition) < 0)
                    )
                {
                    closest.targetPosition = qdata.position;
                    closest.target         = qdata.entity;
                }
            }while (quadrantMap.TryGetNextValue(out qdata, ref iterator));
        }
        return(closest);
    }