Skip to content

Commit

Permalink
Remove toFind and scene scan from main
Browse files Browse the repository at this point in the history
  • Loading branch information
dbierek committed Jul 31, 2024
1 parent 9ff65be commit 3589606
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 17 deletions.
4 changes: 2 additions & 2 deletions examples/export_scenario.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ pub fn main() {
let mut scan: SceneScan = SceneScan::new(brick_tblu_hashes, args[3].clone());
let partition_manager = PackageScan::scan_packages(args[1].clone(), args[2].clone()).unwrap();

scan.scan_scenario(&partition_manager);
scan.output_to_file(args[4].clone());
//scan.scan_scenario(&partition_manager);
//scan.output_to_file(args[4].clone());

GameConnection::get_entity_list_from_game(args[4].as_str(), args[5].as_str(), args[6].as_str());
let prims_json = EntitiesJson::build_from_prims_file(args[5].clone());
Expand Down
7 changes: 3 additions & 4 deletions src/connect/game_connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,16 @@ impl GameConnection {
return brick_messages;
}

pub fn get_entity_list_from_game(in_file_path: &str, prims_file_path: &str, pf_boxes_file_path: &str) {
pub fn get_entity_list_from_game(prims_file_path: &str, pf_boxes_file_path: &str) {
println!("Connecting to EditorServer on port 46735...");
io::stdout().flush().unwrap();

let mut socket = GameConnection::connect_to_game();

GameConnection::send_hello_message(&mut socket);
let in_file_contents = GameConnection::get_input_file_contents(in_file_path);

GameConnection::send_message(&mut socket, in_file_contents);
GameConnection::send_message(&mut socket, "{\"type\":\"listPfBoxEntities\"}".to_string());
GameConnection::send_message(&mut socket, r#"{"type":"listPrimEntities", "prims":[]}"#.to_string());
GameConnection::send_message(&mut socket, r#"{"type":"listPfBoxEntities"}"#.to_string());

GameConnection::clear_file(prims_file_path);
GameConnection::clear_file(pf_boxes_file_path);
Expand Down
18 changes: 7 additions & 11 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
use std::{env, io::{self, Write}};

use glacier2obj::{connect::game_connection::GameConnection, extract::prim_extraction::PrimExtraction, json_serde::entities_json::EntitiesJson, package::package_scan::PackageScan, scene::scene_scan::SceneScan};
use glacier2obj::{connect::game_connection::GameConnection, extract::prim_extraction::PrimExtraction, json_serde::entities_json::EntitiesJson, package::package_scan::PackageScan};

// Based on mount_game_files example from rpkg-rs
pub fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 9 {
eprintln!("Usage: cargo run <path to a Retail directory> <game version (H2016 | HM2 | HM3)> <path to a hashlist> <path to toFind file> <path to prims.json file> <path to pfBoxes.json file><path to output prims directory> <path to a Runtime directory> <path to output prims directory> <path to output pfBoxes.json file>");
if args.len() < 7 {
eprintln!("Usage: cargo run <path to a Retail directory> <game version (H2016 | HM2 | HM3)> <path to prims.json file> <path to pfBoxes.json file> <path to a Runtime directory> <path to output prim directory>");
return;
}
let brick_tblu_hashes: Vec<String> = EntitiesJson::get_brick_tblu_hashes(GameConnection::get_brick_hashes_from_game());
println!("Scene tblu hashes: {:?}", brick_tblu_hashes);
io::stdout().flush().unwrap();
let mut scan: SceneScan = SceneScan::new(brick_tblu_hashes, args[3].clone());
let partition_manager = PackageScan::scan_packages(args[1].clone(), args[2].clone()).unwrap();

scan.scan_scenario(&partition_manager);
scan.output_to_file(args[4].clone());

GameConnection::get_entity_list_from_game(args[4].as_str(), args[5].as_str(), args[6].as_str());
let prims_json = EntitiesJson::build_from_prims_file(args[5].clone());
let needed_prim_hashes = PrimExtraction::get_needed_prim_hashes(&prims_json, args[8].clone());
GameConnection::get_entity_list_from_game(args[3].as_str(), args[4].as_str());
let prims_json = EntitiesJson::build_from_prims_file(args[3].clone());
let needed_prim_hashes = PrimExtraction::get_needed_prim_hashes(&prims_json, args[6].clone());
if needed_prim_hashes.is_empty() {
println!("All prim files already exist. Skipping extraction.");
io::stdout().flush().unwrap();
Expand All @@ -29,7 +25,7 @@ pub fn main() {
println!("Extracting {} prims.", needed_prim_hashes.len());
io::stdout().flush().unwrap();

PrimExtraction::extract_prims(args[7].clone(), needed_prim_hashes, &partition_manager, args[8].clone());
PrimExtraction::extract_prims(args[5].clone(), needed_prim_hashes, &partition_manager, args[6].clone());
}
println!("Done building prims.json and extracting prims from scenario.");
io::stdout().flush().unwrap();
Expand Down

0 comments on commit 3589606

Please sign in to comment.