Ignore:
Timestamp:
Aug 7, 2022, 3:02:24 PM (2 years ago)
Author:
alloc
Message:

Major refactoring/cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/7dtd-server-fixes/src/LandClaimList.cs

    r369 r391  
    2020                        Dictionary<PersistentPlayerData, List<Vector3i>> owners =
    2121                                new Dictionary<PersistentPlayerData, List<Vector3i>> ();
    22                         foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
     22                        foreach ((Vector3i claimPos, PersistentPlayerData owner) in d) {
    2323                                bool allowed = true;
    2424                                if (_positionFilters != null) {
    2525                                        foreach (PositionFilter pf in _positionFilters) {
    26                                                 if (!pf (kvp.Key)) {
    27                                                         allowed = false;
    28                                                         break;
     26                                                if (pf (claimPos)) {
     27                                                        continue;
    2928                                                }
     29
     30                                                allowed = false;
     31                                                break;
    3032                                        }
    3133                                }
    3234
    33                                 if (allowed) {
    34                                         if (!owners.ContainsKey (kvp.Value)) {
    35                                                 owners.Add (kvp.Value, new List<Vector3i> ());
    36                                         }
     35                                if (!allowed) {
     36                                        continue;
     37                                }
    3738
    38                                         owners [kvp.Value].Add (kvp.Key);
     39                                if (!owners.ContainsKey (owner)) {
     40                                        owners.Add (owner, new List<Vector3i> ());
    3941                                }
     42
     43                                owners [owner].Add (claimPos);
    4044                        }
    4145
    42                         foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
    43                                 Player p = PersistentContainer.Instance.Players [kvp.Key.UserIdentifier, false];
    44                                 if (p == null) {
    45                                         p = new Player (kvp.Key.UserIdentifier);
    46                                 }
     46                        foreach ((PersistentPlayerData owner, List<Vector3i> claimPositions) in owners) {
     47                                Player p = PersistentContainer.Instance.Players [owner.UserIdentifier, false] ?? new Player (owner.UserIdentifier);
    4748
    4849                                bool allowed = true;
    4950                                if (_ownerFilters != null) {
    5051                                        foreach (OwnerFilter of in _ownerFilters) {
    51                                                 if (!of (p)) {
    52                                                         allowed = false;
    53                                                         break;
     52                                                if (of (p)) {
     53                                                        continue;
    5454                                                }
     55
     56                                                allowed = false;
     57                                                break;
    5558                                        }
    5659                                }
    5760
    58                                 if (allowed) {
    59                                         result.Add (p, new List<Vector3i> ());
    60                                         foreach (Vector3i v in kvp.Value) {
    61                                                 result [p].Add (v);
    62                                         }
     61                                if (!allowed) {
     62                                        continue;
     63                                }
     64
     65                                result.Add (p, new List<Vector3i> ());
     66                                foreach (Vector3i v in claimPositions) {
     67                                        result [p].Add (v);
    6368                                }
    6469                        }
Note: See TracChangeset for help on using the changeset viewer.