This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Scripts/verify_player_core_replication.py
T

56 lines
2.1 KiB
Python

from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
HEADER = ROOT / "Source" / "AgrarianGame" / "AgrarianGameCharacter.h"
SOURCE = ROOT / "Source" / "AgrarianGame" / "AgrarianGameCharacter.cpp"
EXPECTED_HEADER_SNIPPETS = [
"ReplicatedUsing = OnRep_SprintState",
"ReplicatedUsing = OnRep_ProneState",
"ReplicatedUsing = OnRep_MovementModifierState",
"void OnRep_MovementModifierState();",
"void ServerSetWantsToSprint(bool bNewWantsToSprint);",
"void ServerSetProne(bool bNewProne);",
"void ServerSetTerrainMovementMultiplier(float NewTerrainMovementMultiplier);",
]
EXPECTED_SOURCE_SNIPPETS = [
"bReplicates = true;",
"SetReplicateMovement(true);",
"DOREPLIFETIME(AAgrarianGameCharacter, bWantsToSprint);",
"DOREPLIFETIME(AAgrarianGameCharacter, bIsProne);",
"DOREPLIFETIME(AAgrarianGameCharacter, AgeYears);",
"DOREPLIFETIME(AAgrarianGameCharacter, PhysicalConditionMultiplier);",
"DOREPLIFETIME(AAgrarianGameCharacter, StrengthMultiplier);",
"DOREPLIFETIME(AAgrarianGameCharacter, EnduranceMultiplier);",
"DOREPLIFETIME(AAgrarianGameCharacter, TerrainMovementMultiplier);",
"void AAgrarianGameCharacter::OnRep_SprintState()",
"void AAgrarianGameCharacter::OnRep_ProneState()",
"void AAgrarianGameCharacter::OnRep_MovementModifierState()",
"void AAgrarianGameCharacter::ServerSetWantsToSprint_Implementation",
"void AAgrarianGameCharacter::ServerSetProne_Implementation",
"void AAgrarianGameCharacter::ServerSetTerrainMovementMultiplier_Implementation",
]
def assert_contains(label, text, snippets):
missing = [snippet for snippet in snippets if snippet not in text]
if missing:
raise RuntimeError(f"{label} is missing expected replication snippets: {missing}")
def main():
header_text = HEADER.read_text(encoding="utf-8")
source_text = SOURCE.read_text(encoding="utf-8")
assert_contains("AgrarianGameCharacter.h", header_text, EXPECTED_HEADER_SNIPPETS)
assert_contains("AgrarianGameCharacter.cpp", source_text, EXPECTED_SOURCE_SNIPPETS)
print("Agrarian player core replication verification complete.")
if __name__ == "__main__":
main()