arkparser 0.1.6__tar.gz → 0.1.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arkparser-0.1.6 → arkparser-0.1.7}/PKG-INFO +1 -1
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/__init__.py +2 -2
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/game_objects/container.py +10 -7
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser.egg-info/PKG-INFO +1 -1
- {arkparser-0.1.6 → arkparser-0.1.7}/pyproject.toml +1 -1
- {arkparser-0.1.6 → arkparser-0.1.7}/LICENSE +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/README.md +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/binary_reader.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/exceptions.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/map_config.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/normalization.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/types.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/common/version_detection.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/data_models.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/export.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/base.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/cloud_inventory.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/profile.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/tribe.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/files/world_save.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/game_objects/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/game_objects/game_object.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/game_objects/location.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/character.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/creature.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/item.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/player.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/stats.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/structure.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/models/tribe.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/base.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/byte_property.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/compound.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/primitives.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/properties/registry.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/__init__.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/base.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/colors.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/misc.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/property_list.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/registry.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser/structs/vectors.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser.egg-info/SOURCES.txt +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser.egg-info/dependency_links.txt +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser.egg-info/requires.txt +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/arkparser.egg-info/top_level.txt +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/setup.cfg +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_binary_reader.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_cloud_inventory.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_data_models.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_export.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_game_objects.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_models.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_profile.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_tribe.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_version_detection.py +0 -0
- {arkparser-0.1.6 → arkparser-0.1.7}/tests/test_world_save.py +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""
|
|
2
2
|
ARK Save Parser - Parse ARK: Survival Evolved/Ascended save files.
|
|
3
3
|
|
|
4
4
|
This package provides tools to parse various ARK save file formats:
|
|
@@ -115,4 +115,4 @@ __all__ = [
|
|
|
115
115
|
"ArkParseError",
|
|
116
116
|
]
|
|
117
117
|
|
|
118
|
-
__version__ = "0.1.
|
|
118
|
+
__version__ = "0.1.7"
|
|
@@ -141,23 +141,26 @@ class GameObjectContainer:
|
|
|
141
141
|
def get_structures(self) -> list[GameObject]:
|
|
142
142
|
"""Get all tribe-owned placed structures.
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
names pointing back to the parent.
|
|
144
|
+
ASE saves include the same actor in both the main level and sub-levels,
|
|
145
|
+
producing duplicate entries with identical Names[0]. Deduplicating by
|
|
146
|
+
primary_name matches the C# ASVPack reference (ContentContainer.cs:1049):
|
|
147
|
+
.GroupBy(x => x.Names[0]).Select(s => s.First())
|
|
149
148
|
"""
|
|
149
|
+
seen_names: set[str] = set()
|
|
150
150
|
results: list[GameObject] = []
|
|
151
151
|
for obj in self.objects:
|
|
152
152
|
cn = obj.class_name
|
|
153
|
-
if obj.has_parent_names:
|
|
154
|
-
continue
|
|
155
153
|
if obj.get_property_value("TargetingTeam") is None:
|
|
156
154
|
continue
|
|
157
155
|
if obj.get_property_value("DinoID1") is not None:
|
|
158
156
|
continue
|
|
159
157
|
if any(pat in cn for pat in self._NON_STRUCTURE_PATTERNS):
|
|
160
158
|
continue
|
|
159
|
+
name = obj.primary_name
|
|
160
|
+
if name is not None:
|
|
161
|
+
if name in seen_names:
|
|
162
|
+
continue
|
|
163
|
+
seen_names.add(name)
|
|
161
164
|
results.append(obj)
|
|
162
165
|
return results
|
|
163
166
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|