Add portable RV homes and decor prototype

This commit is contained in:
Alexander Sellite 2026-08-30 21:37:26 -04:00
parent 81decf2b71
commit fe099f47dd
56 changed files with 5459 additions and 112 deletions

View file

@ -22,11 +22,24 @@ func _run() -> void:
var save_manager := main.get("_save_manager") as PlayerSaveManager
var player := main.get("_player") as Player
var data_root := main.get("_data_root") as PlayerDataRoot
assert(save_manager != null and player != null and data_root != null)
var home_state := main.get("_home_state") as PlayerHomeState
assert(
save_manager != null
and player != null
and data_root != null
and home_state != null
)
assert(save_manager.initialize_new_game(864209))
save_manager.set_autosave_enabled(true)
assert(player.wallet.restore_balance(4321))
assert(player.bag.add_item(&"coffee"))
assert(home_state.add_owned_decor(&"basic_cube"))
assert(not home_state.place_decor(
&"basic_cube",
Vector3.ZERO,
0.0,
PlayerHomeState.PlacementMode.GRID,
).is_empty())
assert(save_manager.save_now())
var save_path: String = str(save_manager.get("_save_path"))
@ -38,7 +51,14 @@ func _run() -> void:
_assert_opaque(save_path)
var decoded: Dictionary = ProgressionSaveCodec.read_local_save(save_path)
assert(bool(decoded.get("ok", false)))
assert(int((decoded["data"] as Dictionary)["save_version"]) == 10)
assert(int((decoded["data"] as Dictionary)["save_version"]) == 11)
assert(not PlayerHomeState.sanitize_save_data(
(decoded["data"] as Dictionary).get("home", {})
).is_empty())
assert(
((decoded["data"] as Dictionary)["home"] as Dictionary)
.get("placements", []).size() == 1
)
var legacy_container_path: String = data_root.progression_backup_directory().path_join(
"netfishing-container.nfsave"
)
@ -74,6 +94,8 @@ func _run() -> void:
assert(save_manager.load_player_data())
assert(player.wallet.get_balance() == 4321)
assert(save_manager.get_world_seed() == 864209)
assert(home_state.get_owned_count(&"basic_cube") == 1)
assert(home_state.get_placed_count(&"basic_cube") == 1)
var legacy_data: Dictionary = (
ProgressionSaveCodec.read_local_save(save_path)["data"]