mirror of
https://github.com/yoncodes/BD2PS.git
synced 2026-08-04 22:02:15 +02:00
112 lines
5.8 KiB
Rust
112 lines
5.8 KiB
Rust
use std::path::Path;
|
|
|
|
fn main() {
|
|
let proto_files = [
|
|
"proto/Network_TCP.proto",
|
|
"proto/NLD_MID.proto",
|
|
"proto/PvpBattleDBInfo.proto",
|
|
"proto/PvpBattleRankDetailInfo.proto",
|
|
"proto/PvpBattleUserInfo.proto",
|
|
"proto/block.db/BlockListTable/Proto_Design_block.proto",
|
|
"proto/common.db/AchievementTable/Proto_Design_common.proto",
|
|
"proto/Commons/CashShopDBInfo.proto",
|
|
"proto/Commons/HuntingGroundInfo.proto",
|
|
"proto/Commons/NpcReputationAvgDBInfo.proto",
|
|
"proto/Commons/NpcReputationDBInfo.proto",
|
|
"proto/Commons/proto_net.proto",
|
|
"proto/Commons/WorldBuffDBInfo.proto",
|
|
"proto/FieldObjectSceneData.db/FieldObjectSceneDataTable/Proto_Design_FieldObjectSceneData.proto",
|
|
"proto/pack1.db/BattleTable/Proto_Design_pack1.proto",
|
|
"proto/pack10.db/BattleTable/Proto_Design_pack10.proto",
|
|
"proto/pack10001.db/BattleTable/Proto_Design_pack10001.proto",
|
|
"proto/pack10004.db/BattleTable/Proto_Design_pack10004.proto",
|
|
"proto/pack10006.db/BattleTable/Proto_Design_pack10006.proto",
|
|
"proto/pack1001.db/BattleTable/Proto_Design_pack1001.proto",
|
|
"proto/pack1002.db/BattleTable/Proto_Design_pack1002.proto",
|
|
"proto/pack1003.db/BattleTable/Proto_Design_pack1003.proto",
|
|
"proto/pack1004.db/BattleTable/Proto_Design_pack1004.proto",
|
|
"proto/pack1005.db/BattleTable/Proto_Design_pack1005.proto",
|
|
"proto/pack1006.db/BattleTable/Proto_Design_pack1006.proto",
|
|
"proto/pack1007.db/BattleTable/Proto_Design_pack1007.proto",
|
|
"proto/pack11.db/BattleTable/Proto_Design_pack11.proto",
|
|
"proto/pack11001.db/BattleTable/Proto_Design_pack11001.proto",
|
|
"proto/pack11002.db/BattleTable/Proto_Design_pack11002.proto",
|
|
"proto/pack11003.db/BattleTable/Proto_Design_pack11003.proto",
|
|
"proto/pack11004.db/BattleTable/Proto_Design_pack11004.proto",
|
|
"proto/pack11005.db/BattleTable/Proto_Design_pack11005.proto",
|
|
"proto/pack11006.db/BattleTable/Proto_Design_pack11006.proto",
|
|
"proto/pack11007.db/BattleTable/Proto_Design_pack11007.proto",
|
|
"proto/pack12.db/BattleTable/Proto_Design_pack12.proto",
|
|
"proto/pack12001.db/BattleTable/Proto_Design_pack12001.proto",
|
|
"proto/pack12002.db/BattleTable/Proto_Design_pack12002.proto",
|
|
"proto/pack12003.db/BattleTable/Proto_Design_pack12003.proto",
|
|
"proto/pack12004.db/BattleTable/Proto_Design_pack12004.proto",
|
|
"proto/pack12005.db/BattleTable/Proto_Design_pack12005.proto",
|
|
"proto/pack12006.db/BattleTable/Proto_Design_pack12006.proto",
|
|
"proto/pack12007.db/BattleTable/Proto_Design_pack12007.proto",
|
|
"proto/pack13.db/BattleTable/Proto_Design_pack13.proto",
|
|
"proto/pack14.db/BattleTable/Proto_Design_pack14.proto",
|
|
"proto/pack15.db/BattleTable/Proto_Design_pack15.proto",
|
|
"proto/pack16.db/BattleTable/Proto_Design_pack16.proto",
|
|
"proto/pack17.db/BattleTable/Proto_Design_pack17.proto",
|
|
"proto/pack18.db/BattleTable/Proto_Design_pack18.proto",
|
|
"proto/pack2.db/BattleTable/Proto_Design_pack2.proto",
|
|
"proto/pack2001.db/BattleTable/Proto_Design_pack2001.proto",
|
|
"proto/pack2002.db/BattleTable/Proto_Design_pack2002.proto",
|
|
"proto/pack2003.db/BattleTable/Proto_Design_pack2003.proto",
|
|
"proto/pack2004.db/BattleTable/Proto_Design_pack2004.proto",
|
|
"proto/pack2005.db/BattleTable/Proto_Design_pack2005.proto",
|
|
"proto/pack2006.db/BattleTable/Proto_Design_pack2006.proto",
|
|
"proto/pack2007.db/BattleTable/Proto_Design_pack2007.proto",
|
|
"proto/pack3.db/BattleTable/Proto_Design_pack3.proto",
|
|
"proto/pack3001.db/BattleTable/Proto_Design_pack3001.proto",
|
|
"proto/pack3002.db/BattleTable/Proto_Design_pack3002.proto",
|
|
"proto/pack3003.db/BattleTable/Proto_Design_pack3003.proto",
|
|
"proto/pack3004.db/BattleTable/Proto_Design_pack3004.proto",
|
|
"proto/pack3005.db/BattleTable/Proto_Design_pack3005.proto",
|
|
"proto/pack3006.db/BattleTable/Proto_Design_pack3006.proto",
|
|
"proto/pack3007.db/BattleTable/Proto_Design_pack3007.proto",
|
|
"proto/pack4.db/BattleTable/Proto_Design_pack4.proto",
|
|
"proto/pack5.db/BattleTable/Proto_Design_pack5.proto",
|
|
"proto/pack6.db/BattleTable/Proto_Design_pack6.proto",
|
|
"proto/pack7.db/BattleTable/Proto_Design_pack7.proto",
|
|
"proto/pack8.db/BattleTable/Proto_Design_pack8.proto",
|
|
"proto/pack9.db/BattleTable/Proto_Design_pack9.proto",
|
|
"proto/Request/ChargeCostRequest.proto",
|
|
"proto/Request/EvilCastleMyRankingInfoRequest.proto",
|
|
"proto/Request/ImmortalQuestResetRequest.proto",
|
|
"proto/Request/NpcReputationInfoRequest.proto",
|
|
"proto/Request/NpcReputationRecoveryRequest.proto",
|
|
"proto/Request/SendLogRequest.proto",
|
|
"proto/Response/NpcReputationInfoResponse.proto",
|
|
"proto/Response/NpcReputationRecoveryResponse.proto",
|
|
"proto/Response/SendLogResponse.proto",
|
|
];
|
|
|
|
for proto in &proto_files {
|
|
println!("cargo::rerun-if-changed={proto}");
|
|
}
|
|
|
|
// Filter only files that actually exist
|
|
let existing: Vec<_> = proto_files
|
|
.iter()
|
|
.filter(|f| Path::new(f).exists())
|
|
.collect();
|
|
|
|
if existing.is_empty() {
|
|
eprintln!(" No .proto files found — check your proto/ directory paths!");
|
|
return;
|
|
}
|
|
|
|
prost_build::Config::new()
|
|
.type_attribute(
|
|
".",
|
|
"#[derive(serde::Serialize, serde::Deserialize)]\n#[serde(rename_all = \"PascalCase\")]",
|
|
)
|
|
.message_attribute(".", r#"#[serde(default)]"#)
|
|
.field_attribute("*.type", "#[serde(rename = \"type\")]")
|
|
.out_dir("include/")
|
|
.compile_protos(&existing, &["proto"])
|
|
.expect("Failed to compile proto files");
|
|
}
|