arkparser 0.4.3__tar.gz → 0.4.4__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.4.3 → arkparser-0.4.4}/PKG-INFO +2 -3
- {arkparser-0.4.3 → arkparser-0.4.4}/README.md +1 -2
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/__init__.py +1 -1
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/export.py +7 -3
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/world_save.py +7 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser.egg-info/PKG-INFO +2 -3
- {arkparser-0.4.3 → arkparser-0.4.4}/pyproject.toml +1 -1
- {arkparser-0.4.3 → arkparser-0.4.4}/LICENSE +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/__init__.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/binary_reader.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/exceptions.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/map_config.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/normalization.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/types.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/common/version_detection.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/data_models.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/__init__.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/base.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/cloud_inventory.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/profile.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/files/tribe.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/game_objects/__init__.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/game_objects/container.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/game_objects/game_object.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/game_objects/location.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/__init__.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/base.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/byte_property.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/compound.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/primitives.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/properties/registry.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/__init__.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/base.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/colors.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/misc.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/property_list.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/registry.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser/structs/vectors.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser.egg-info/SOURCES.txt +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser.egg-info/dependency_links.txt +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser.egg-info/requires.txt +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/arkparser.egg-info/top_level.txt +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/setup.cfg +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_asa_header_position.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_binary_reader.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_binary_reader_layouts.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_cloud_export.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_cloud_inventory.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_cryopod_export.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_current_stats.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_data_models.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_export.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_game_objects.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_profile.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_review_fixes.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_tribe.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_v13_property_layouts.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_version_detection.py +0 -0
- {arkparser-0.4.3 → arkparser-0.4.4}/tests/test_world_save.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arkparser
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Pure Python parser for ARK: Survival Evolved and ARK: Survival Ascended save files
|
|
5
5
|
Author: Vertyco
|
|
6
6
|
License-Expression: MIT
|
|
@@ -359,8 +359,7 @@ For the richest output, hand `export_players` **both**, assemble a wrapper for e
|
|
|
359
359
|
| `created` | legacy (richer) | ISO 8601 datetime with the local TZ of the parser machine, computed `save.file_mtime + (OriginalCreationTime - game_time)` (mirrors legacy `ContentContainer.GetApproxDateTimeOf`). `null` when the anchors are missing. |
|
|
360
360
|
| `inventory` | legacy | items from `MyInventoryComponent.InventoryItems` |
|
|
361
361
|
| `lat`, `lon`, `ccc` | legacy | location via `MapConfig`, **rounded to 2 decimals** (parser-only nicety, not legacy parity) |
|
|
362
|
-
| `
|
|
363
|
-
| `switched_on` | added | `bContainerActivated` (lamps / fridges / etc.) |
|
|
362
|
+
| `isSwitchedOn` | legacy | `bContainerActivated`, emitted only when the structure is powered (`bIsPowered` or `bHasFuel`); omitted otherwise. Mirrors legacy `ContentStructure.cs` / `ContentPack.cs` (`IsSwitchedOn.HasValue`). |
|
|
364
363
|
| `decay_reset` | added | `bHasResetDecayTime` |
|
|
365
364
|
| `last_ally_in_range_seconds` | added | raw `LastInAllyRangeTime` / `LastInAllyRangeTimeSerialized` / `LastInAllyRangeSerialized` (in-game seconds, float) |
|
|
366
365
|
| `last_ally_in_range` | added | ISO 8601 datetime with local TZ. `null` when the save lacks the anchors. |
|
|
@@ -325,8 +325,7 @@ For the richest output, hand `export_players` **both**, assemble a wrapper for e
|
|
|
325
325
|
| `created` | legacy (richer) | ISO 8601 datetime with the local TZ of the parser machine, computed `save.file_mtime + (OriginalCreationTime - game_time)` (mirrors legacy `ContentContainer.GetApproxDateTimeOf`). `null` when the anchors are missing. |
|
|
326
326
|
| `inventory` | legacy | items from `MyInventoryComponent.InventoryItems` |
|
|
327
327
|
| `lat`, `lon`, `ccc` | legacy | location via `MapConfig`, **rounded to 2 decimals** (parser-only nicety, not legacy parity) |
|
|
328
|
-
| `
|
|
329
|
-
| `switched_on` | added | `bContainerActivated` (lamps / fridges / etc.) |
|
|
328
|
+
| `isSwitchedOn` | legacy | `bContainerActivated`, emitted only when the structure is powered (`bIsPowered` or `bHasFuel`); omitted otherwise. Mirrors legacy `ContentStructure.cs` / `ContentPack.cs` (`IsSwitchedOn.HasValue`). |
|
|
330
329
|
| `decay_reset` | added | `bHasResetDecayTime` |
|
|
331
330
|
| `last_ally_in_range_seconds` | added | raw `LastInAllyRangeTime` / `LastInAllyRangeTimeSerialized` / `LastInAllyRangeSerialized` (in-game seconds, float) |
|
|
332
331
|
| `last_ally_in_range` | added | ISO 8601 datetime with local TZ. `null` when the save lacks the anchors. |
|
|
@@ -188,7 +188,7 @@ LEGACY_TRIBE_KEYS: frozenset[str] = frozenset({
|
|
|
188
188
|
})
|
|
189
189
|
LEGACY_STRUCT_KEYS: frozenset[str] = frozenset({
|
|
190
190
|
"id", "tribeid", "tribe", "struct", "name", "locked", "created", "inventory",
|
|
191
|
-
"lat", "lon", "ccc",
|
|
191
|
+
"lat", "lon", "ccc", "isSwitchedOn",
|
|
192
192
|
})
|
|
193
193
|
LEGACY_MAP_STRUCT_KEYS: frozenset[str] = frozenset({
|
|
194
194
|
"struct", "inventory", "lat", "lon", "ccc",
|
|
@@ -2212,8 +2212,6 @@ def _structure_dict(
|
|
|
2212
2212
|
"locked": locked,
|
|
2213
2213
|
"created": _structure_created(obj, save),
|
|
2214
2214
|
"inventory": _inventory_items(obj, lookup),
|
|
2215
|
-
"powered": powered,
|
|
2216
|
-
"switched_on": bool(_prop(obj, "bContainerActivated", default=False)),
|
|
2217
2215
|
"decay_reset": bool(_prop(obj, "bHasResetDecayTime", default=False)),
|
|
2218
2216
|
"last_ally_in_range": (
|
|
2219
2217
|
d.isoformat()
|
|
@@ -2256,6 +2254,12 @@ def _structure_dict(
|
|
|
2256
2254
|
"pin_code": _pin_code(obj),
|
|
2257
2255
|
}
|
|
2258
2256
|
data.update(_gps_payload(obj, map_config, ndigits=2))
|
|
2257
|
+
# Legacy ASVExport emits isSwitchedOn only for powered structures (ContentStructure.cs:58):
|
|
2258
|
+
# bContainerActivated when (bIsPowered or bHasFuel), omitted otherwise. Mirror that exactly so
|
|
2259
|
+
# on/off state stays a single field. Kept in LEGACY_STRUCT_KEYS so a powered-but-off False is
|
|
2260
|
+
# not pruned by _compact.
|
|
2261
|
+
if powered:
|
|
2262
|
+
data["isSwitchedOn"] = bool(_prop(obj, "bContainerActivated", default=False))
|
|
2259
2263
|
return _compact(data, LEGACY_STRUCT_KEYS)
|
|
2260
2264
|
|
|
2261
2265
|
|
|
@@ -151,6 +151,13 @@ class WorldSave:
|
|
|
151
151
|
# ASA-specific
|
|
152
152
|
actor_locations: dict[str, LocationData] = field(default_factory=dict)
|
|
153
153
|
|
|
154
|
+
# Caller-assembled sidecars (NOT parsed from the .ark): the orchestrator
|
|
155
|
+
# globs the map dir for *.arkprofile / *.arktribe and assigns these before
|
|
156
|
+
# calling export_all, which reads them to enrich player/tribe records.
|
|
157
|
+
# Default to empty lists so export still runs when no sidecars are loaded.
|
|
158
|
+
profiles: list[t.Any] = field(default_factory=list)
|
|
159
|
+
tribes: list[t.Any] = field(default_factory=list)
|
|
160
|
+
|
|
154
161
|
# ------------------------------------------------------------------
|
|
155
162
|
# Internal state
|
|
156
163
|
# ------------------------------------------------------------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arkparser
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Pure Python parser for ARK: Survival Evolved and ARK: Survival Ascended save files
|
|
5
5
|
Author: Vertyco
|
|
6
6
|
License-Expression: MIT
|
|
@@ -359,8 +359,7 @@ For the richest output, hand `export_players` **both**, assemble a wrapper for e
|
|
|
359
359
|
| `created` | legacy (richer) | ISO 8601 datetime with the local TZ of the parser machine, computed `save.file_mtime + (OriginalCreationTime - game_time)` (mirrors legacy `ContentContainer.GetApproxDateTimeOf`). `null` when the anchors are missing. |
|
|
360
360
|
| `inventory` | legacy | items from `MyInventoryComponent.InventoryItems` |
|
|
361
361
|
| `lat`, `lon`, `ccc` | legacy | location via `MapConfig`, **rounded to 2 decimals** (parser-only nicety, not legacy parity) |
|
|
362
|
-
| `
|
|
363
|
-
| `switched_on` | added | `bContainerActivated` (lamps / fridges / etc.) |
|
|
362
|
+
| `isSwitchedOn` | legacy | `bContainerActivated`, emitted only when the structure is powered (`bIsPowered` or `bHasFuel`); omitted otherwise. Mirrors legacy `ContentStructure.cs` / `ContentPack.cs` (`IsSwitchedOn.HasValue`). |
|
|
364
363
|
| `decay_reset` | added | `bHasResetDecayTime` |
|
|
365
364
|
| `last_ally_in_range_seconds` | added | raw `LastInAllyRangeTime` / `LastInAllyRangeTimeSerialized` / `LastInAllyRangeSerialized` (in-game seconds, float) |
|
|
366
365
|
| `last_ally_in_range` | added | ISO 8601 datetime with local TZ. `null` when the save lacks the anchors. |
|
|
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
|