arkparse 0.4.0__tar.gz → 0.4.1__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.
Files changed (180) hide show
  1. {arkparse-0.4.0 → arkparse-0.4.1}/PKG-INFO +1 -1
  2. {arkparse-0.4.0 → arkparse-0.4.1}/pyproject.toml +1 -1
  3. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/ark_game_object.py +36 -3
  4. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_custom_item_data.py +9 -1
  5. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/saves/save_connection.py +5 -6
  6. {arkparse-0.4.0 → arkparse-0.4.1}/.gitignore +0 -0
  7. {arkparse-0.4.0 → arkparse-0.4.1}/LICENSE +0 -0
  8. {arkparse-0.4.0 → arkparse-0.4.1}/README.md +0 -0
  9. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/__init__.py +0 -0
  10. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/__init__.py +0 -0
  11. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/base_api.py +0 -0
  12. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/dino_api.py +0 -0
  13. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/equipment_api.py +0 -0
  14. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/general_api.py +0 -0
  15. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/json_api.py +0 -0
  16. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/player_api.py +0 -0
  17. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/rcon_api.py +0 -0
  18. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/stackable_api.py +0 -0
  19. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/api/structure_api.py +0 -0
  20. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/ark_tribe.py +0 -0
  21. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/ABERRATION.PNG +0 -0
  22. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/RAGNAROK.PNG +0 -0
  23. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/THE_ISLAND.PNG +0 -0
  24. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/__init__.py +0 -0
  25. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/heavy_inventory +0 -0
  26. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/tamable_dinos.txt +0 -0
  27. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/armor +0 -0
  28. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/armor_bp +0 -0
  29. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/armor_bp_n.json +0 -0
  30. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/armor_n.json +0 -0
  31. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/saddle +0 -0
  32. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/saddle_bp +0 -0
  33. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/saddle_bp_n.json +0 -0
  34. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/saddle_n.json +0 -0
  35. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/shield +0 -0
  36. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/shield_bp +0 -0
  37. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/shield_bp_n.json +0 -0
  38. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/shield_n.json +0 -0
  39. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/weapon +0 -0
  40. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/weapon_bp +0 -0
  41. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/weapon_bp_n.json +0 -0
  42. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/equipment/weapon_n.json +0 -0
  43. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/inventory/with_item_n.json +0 -0
  44. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/stackable/stackable +0 -0
  45. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/assets/templates/stackable/stackable_n.json +0 -0
  46. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/__init__.py +0 -0
  47. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/consumables.py +0 -0
  48. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/dinos.py +0 -0
  49. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/equipment.py +0 -0
  50. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/placed_structures.py +0 -0
  51. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/player.py +0 -0
  52. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/classes/resources.py +0 -0
  53. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/__init__.py +0 -0
  54. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_dino_trait.py +0 -0
  55. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_enum.py +0 -0
  56. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_equipment_stat.py +0 -0
  57. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_item_quality.py +0 -0
  58. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_map.py +0 -0
  59. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/enums/ark_stat.py +0 -0
  60. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/ftp/__init__.py +0 -0
  61. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/ftp/ark_ftp_client.py +0 -0
  62. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/helpers/dino/is_wild_tamed.py +0 -0
  63. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/logging/__init__.py +0 -0
  64. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/logging/ark_save_logger.py +0 -0
  65. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/bases/base.py +0 -0
  66. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/cluster_data/ark_cluster_data.py +0 -0
  67. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/cluster_data/cluster_data_dino.py +0 -0
  68. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/cluster_data/cluster_data_item.py +0 -0
  69. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/cryopods/cryopod.py +0 -0
  70. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/__init__.py +0 -0
  71. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/baby.py +0 -0
  72. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/dino.py +0 -0
  73. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/dino_ai_controller.py +0 -0
  74. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/dino_id.py +0 -0
  75. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/pedigree.py +0 -0
  76. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/stats.py +0 -0
  77. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/tamed_baby.py +0 -0
  78. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/dinos/tamed_dino.py +0 -0
  79. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/__armor_defaults.py +0 -0
  80. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/__equipment.py +0 -0
  81. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/__equipment_with_armor.py +0 -0
  82. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/__equipment_with_durability.py +0 -0
  83. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/__init__.py +0 -0
  84. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/armor.py +0 -0
  85. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/saddle.py +0 -0
  86. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/shield.py +0 -0
  87. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/equipment/weapon.py +0 -0
  88. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/__parsed_object_base.py +0 -0
  89. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/dino_owner.py +0 -0
  90. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/inventory.py +0 -0
  91. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/inventory_item.py +0 -0
  92. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/object_crafter.py +0 -0
  93. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/misc/object_owner.py +0 -0
  94. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/stackables/__init__.py +0 -0
  95. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/stackables/_stackable.py +0 -0
  96. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/stackables/ammo.py +0 -0
  97. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/stackables/resource.py +0 -0
  98. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/structures/__init__.py +0 -0
  99. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/structures/structure.py +0 -0
  100. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/object_model/structures/structure_with_inventory.py +0 -0
  101. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/__init__.py +0 -0
  102. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_base_value_parser.py +0 -0
  103. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_base_value_validator.py +0 -0
  104. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_binary_reader_base.py +0 -0
  105. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_byte_operator.py +0 -0
  106. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/__init__.py +0 -0
  107. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/_property_insertor.py +0 -0
  108. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/_property_parser.py +0 -0
  109. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/_property_replacer.py +0 -0
  110. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/ark_binary_parser.py +0 -0
  111. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/ark_property.py +0 -0
  112. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/__init__.py +0 -0
  113. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_dino_ancestor_entry.py +0 -0
  114. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_item_net_id.py +0 -0
  115. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_my_persistent_buff_datas.py +0 -0
  116. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_object_property.py +0 -0
  117. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_struct_type.py +0 -0
  118. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_tracked_actor_id_category_pair_with_bool.py +0 -0
  119. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_unique_net_id_repl.py +0 -0
  120. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_vector.py +0 -0
  121. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_legacy_parsing/struct/ark_vector_bool_pair.py +0 -0
  122. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_property_insertor.py +0 -0
  123. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_property_parser.py +0 -0
  124. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/_property_replacer.py +0 -0
  125. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_archive.py +0 -0
  126. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_binary_parser.py +0 -0
  127. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_object.py +0 -0
  128. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_property.py +0 -0
  129. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_property_container.py +0 -0
  130. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_set.py +0 -0
  131. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/ark_value_type.py +0 -0
  132. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/array_property.py +0 -0
  133. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/game_object_reader_configuration.py +0 -0
  134. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/__init__.py +0 -0
  135. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/actor_transform.py +0 -0
  136. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_color.py +0 -0
  137. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_crafting_resource_requirement.py +0 -0
  138. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_dino_ancestor_entry.py +0 -0
  139. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_dino_order_id.py +0 -0
  140. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_gacha_resource_struct.py +0 -0
  141. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_gene_trait_struct.py +0 -0
  142. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_gigantoraptor_bonded_struct.py +0 -0
  143. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_int_point.py +0 -0
  144. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_item_craft_queue_entry.py +0 -0
  145. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_item_net_id.py +0 -0
  146. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_key_value_pair.py +0 -0
  147. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_linear_color.py +0 -0
  148. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_my_persistent_buff_datas.py +0 -0
  149. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_object_property.py +0 -0
  150. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_painting_key_value.py +0 -0
  151. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_player_death_reason.py +0 -0
  152. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_primal_saddle_structure.py +0 -0
  153. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_quat.py +0 -0
  154. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_rotator.py +0 -0
  155. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_server_custom_folder.py +0 -0
  156. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_struct_type.py +0 -0
  157. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_tracked_actor_id_category_pair.py +0 -0
  158. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_tracked_actor_id_category_pair_with_bool.py +0 -0
  159. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_tribe_alliance.py +0 -0
  160. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_tribe_rank_group.py +0 -0
  161. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_unique_net_id_repl.py +0 -0
  162. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_vector.py +0 -0
  163. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/ark_vector_bool_pair.py +0 -0
  164. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/object_reference.py +0 -0
  165. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/parsing/struct/unknown_struct.py +0 -0
  166. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/player/ark_character_config.py +0 -0
  167. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/player/ark_character_stats.py +0 -0
  168. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/player/ark_persistent_buff_data.py +0 -0
  169. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/player/ark_player.py +0 -0
  170. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/player/ark_tribute_item.py +0 -0
  171. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/saves/__init__.py +0 -0
  172. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/saves/asa_save.py +0 -0
  173. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/saves/header_location.py +0 -0
  174. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/saves/save_context.py +0 -0
  175. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/__init__.py +0 -0
  176. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/heatmap_visualization.py +0 -0
  177. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/import_file.py +0 -0
  178. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/json_utils.py +0 -0
  179. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/map_images.py +0 -0
  180. {arkparse-0.4.0 → arkparse-0.4.1}/src/arkparse/utils/tm_files.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arkparse
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A package to parse and modify ark save files
5
5
  Project-URL: Homepage, https://github.com/VincentHenauGithub/ark-save-parser
6
6
  Author-email: Vincent Henau <vincent.henau.github@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "arkparse"
7
- version = "0.4.0"
7
+ version = "0.4.1"
8
8
  dependencies = [
9
9
  "rcon>=2.4.9",
10
10
  "numpy>=2.3.2",
@@ -41,6 +41,7 @@ class ArkGameObject(ArkPropertyContainer):
41
41
  self.parser_type = ArkProperty if (isinstance(binary_reader, ArkBinaryParser) or binary_reader is None) else LegacyArkProperty
42
42
  self.uuid = uuid
43
43
  self.blueprint = blueprint
44
+ string_name = False
44
45
  super().__init__()
45
46
  if binary_reader:
46
47
  ArkSaveLogger.set_file(binary_reader, "debug.bin")
@@ -51,7 +52,8 @@ class ArkGameObject(ArkPropertyContainer):
51
52
  self.uuid2: UUID = None
52
53
  binary_reader.set_position(0)
53
54
 
54
- self.blueprint = binary_reader.read_name()
55
+ self.blueprint, string_name = ArkGameObject.read_name(uuid, binary_reader)
56
+ ArkSaveLogger.parser_log(f"Read Blueprint: {self.blueprint} (String name: {string_name})")
55
57
 
56
58
  sContext : SaveContext = binary_reader.save_context
57
59
  self.location = sContext.get_actor_transform(uuid) or None
@@ -60,11 +62,14 @@ class ArkGameObject(ArkPropertyContainer):
60
62
  self.uuid = binary_reader.read_uuid()
61
63
  self.blueprint = binary_reader.read_string()
62
64
  ArkSaveLogger.parser_log(f"Read UUID: {self.uuid}, Blueprint: {self.blueprint}")
63
-
65
+
64
66
  binary_reader.validate_uint32(0)
67
+ if string_name:
68
+ binary_reader.read_uint16()
65
69
 
66
70
  try:
67
- if not no_header:
71
+ if not (no_header or string_name):
72
+ ArkSaveLogger.parser_log(f"Reading names for object {self.blueprint} ({self.uuid})")
68
73
  offsets = []
69
74
  if not from_custom_bytes:
70
75
  nr_names = binary_reader.read_int()
@@ -100,6 +105,7 @@ class ArkGameObject(ArkPropertyContainer):
100
105
  binary_reader.validate_uint32(0)
101
106
 
102
107
  if not from_custom_bytes:
108
+ ArkSaveLogger.parser_log(f"Reading properties for object {self.blueprint} ({self.uuid})")
103
109
  self.read_properties(binary_reader, self.parser_type, binary_reader.size())
104
110
 
105
111
  if binary_reader.size() - binary_reader.position >= 20:
@@ -231,6 +237,33 @@ class ArkGameObject(ArkPropertyContainer):
231
237
  buffer.validate_uint32(0)
232
238
  return name
233
239
 
240
+ @staticmethod
241
+ def read_name(obj_uuid: UUID, reader: ArkBinaryParser) -> str:
242
+ reader.set_position(0)
243
+ string_name = False
244
+
245
+ try:
246
+ class_name = reader.read_name()
247
+ except Exception as e:
248
+ # Check for string name instead of name table reference, this sometimes happens since Lost Colony
249
+ # To be ivestigated why this happens
250
+ reader.set_position(0)
251
+ try:
252
+ unknow_id = reader.read_uint32()
253
+ reader.validate_uint64(0)
254
+ reader.validate_uint32(1)
255
+ class_name = reader.read_string()
256
+ # reader.validate_uint32(0)
257
+ string_name = True
258
+ ArkSaveLogger.parser_log(f"Object {obj_uuid} has string class name {class_name} instead of name table reference")
259
+ except Exception as e:
260
+ ArkSaveLogger.error_log(f"Error reading class name for object {obj_uuid}: {e}")
261
+ reader.structured_print(to_default_file=True)
262
+ input("Press Enter to continue...")
263
+ class_name = "UnknownClass"
264
+
265
+ return class_name, string_name
266
+
234
267
  def get_short_name(self) -> str:
235
268
  to_strip_end = [
236
269
  "_C",
@@ -47,6 +47,8 @@ class ArkCustomItemData:
47
47
  skins: list[str] = None
48
48
 
49
49
  def __init__(self, ark_binary_data: "ArkBinaryParser"):
50
+ ark_binary_data.save_context.generate_unknown = True
51
+
50
52
  total_size = self.__read_header(ark_binary_data)
51
53
  data_start = ark_binary_data.position
52
54
  ArkSaveLogger.parser_log(f"Reading CustomItemData at position {data_start}, expected size: {total_size} bytes")
@@ -63,16 +65,20 @@ class ArkCustomItemData:
63
65
  self.strings = self.__read_custom_data_strings(ark_binary_data)
64
66
  self.floats = self._read_custom_data_floats(ark_binary_data)
65
67
  if ark_binary_data.peek_name() == "CustomDataObjects": # check if CustomDataObjects is present
68
+ ArkSaveLogger.parser_log("CustomDataObjects found, reading objects...")
66
69
  self.objects = self.__read_custom_data_objects(ark_binary_data)
67
70
  self.classes = self.__read_custom_data_classes(ark_binary_data)
68
71
  self.names = self.__read_custom_data_names(ark_binary_data)
69
72
 
70
73
  if ark_binary_data.peek_name() == "UniquePaintingIdMap": # check if UniquePaintingIdMap is present
74
+ ArkSaveLogger.parser_log("UniquePaintingIdMap found, reading painting ID map...")
71
75
  self.painting_id_map = self.__read_painting_id_map(ark_binary_data)
72
76
  if ark_binary_data.peek_name() == "PaintingRevisionMap": # check if PaintingRevisionMap is present
77
+ ArkSaveLogger.parser_log("PaintingRevisionMap found, reading painting revision map...")
73
78
  self.painting_revision_map = self.__read_painting_revision_map(ark_binary_data)
74
79
  self.custom_data_name = self.__read_custom_data_name(ark_binary_data)
75
80
  if ark_binary_data.peek_name() == "CustomDataSoftClasses": # check if CustomDataSoftClasses is present
81
+ ArkSaveLogger.parser_log("CustomDataSoftClasses found, reading custom data soft classes...")
76
82
  self.custom_data_soft_classes = self.__read_custom_data_soft_classes(ark_binary_data)
77
83
 
78
84
  # Check for any extra strings
@@ -99,6 +105,8 @@ class ArkCustomItemData:
99
105
  ArkSaveLogger.parser_log(f"Float: {float_value}")
100
106
  for name in self.names:
101
107
  ArkSaveLogger.parser_log(f"Name: {name}")
108
+
109
+ ark_binary_data.save_context.generate_unknown = False
102
110
 
103
111
  def to_json_obj(self, include_byte_arrays: bool = False):
104
112
  json_obj = { "doubles": self.doubles,
@@ -318,7 +326,7 @@ class ArkCustomItemData:
318
326
  ark_binary_data.validate_name("SoftObjectProperty")
319
327
  ark_binary_data.validate_uint32(0)
320
328
  data_size = ark_binary_data.read_uint32()
321
- ark_binary_data.validate_byte(0)
329
+ ark_binary_data.validate_byte(0)
322
330
 
323
331
  if data_size == 4:
324
332
  ark_binary_data.validate_uint32(0)
@@ -354,7 +354,10 @@ class SaveConnection:
354
354
  return self.parsed_objects[obj_uuid]
355
355
  bin = self.get_game_obj_binary(obj_uuid)
356
356
  reader = ArkBinaryParser(bin, self.save_context)
357
- obj = SaveConnection.parse_as_predefined_object(obj_uuid, reader.read_name(), reader)
357
+
358
+ class_name, string_name = ArkGameObject.read_name(obj_uuid, reader)
359
+
360
+ obj = SaveConnection.parse_as_predefined_object(obj_uuid, class_name, reader)
358
361
 
359
362
  if obj:
360
363
  self.parsed_objects[obj_uuid] = obj
@@ -392,11 +395,7 @@ class SaveConnection:
392
395
 
393
396
  byte_buffer = ArkBinaryParser(row[1], self.save_context)
394
397
  ArkSaveLogger.set_file(byte_buffer, "game_object.bin")
395
- try:
396
- class_name = byte_buffer.read_name()
397
- except Exception as e:
398
- ArkSaveLogger.error_log(f"Error reading class name for object {obj_uuid}: {e}")
399
- class_name = "UnknownClass"
398
+ class_name, string_name = ArkGameObject.read_name(obj_uuid, byte_buffer)
400
399
  ArkSaveLogger.enter_struct(class_name)
401
400
 
402
401
  if reader_config.blueprint_name_filter and not reader_config.blueprint_name_filter(class_name):
File without changes
File without changes
File without changes