@addField(PlayerSystem) private let m_customizationPuppet: wref; @addField(PlayerSystem) private let m_inventoryPuppet: wref; @addField(PlayerSystem) private let m_photoPuppet: wref; @addMethod(PlayerSystem) public func GetPlayer() -> ref { return this.GetLocalPlayerControlledGameObject() as PlayerPuppet; } @addMethod(PlayerSystem) public func GetCustomizationPuppet() -> wref { return this.m_customizationPuppet; } @addMethod(PlayerSystem) public func GetInventoryPuppet() -> wref { return this.m_inventoryPuppet; } @addMethod(PlayerSystem) public func GetPhotoPuppet() -> wref { return this.m_photoPuppet; } @wrapMethod(inkPuppetPreviewGameController) protected cb func OnPreviewInitialized() -> Bool { wrappedMethod(); switch this.GetClassName() { case n"gameuiInventoryPuppetPreviewGameController": GameInstance.GetPlayerSystem(this.GetPlayerControlledObject().GetGame()).m_inventoryPuppet = this.GetGamePuppet(); break; case n"gameuiCharacterCreationPuppetPreviewGameController": GameInstance.GetPlayerSystem(this.GetPlayerControlledObject().GetGame()).m_customizationPuppet = this.GetGamePuppet(); break; } } @wrapMethod(PhotoModePlayerEntityComponent) private final func SetupInventory(isCurrentPlayerObjectCustomizable: Bool) { wrappedMethod(isCurrentPlayerObjectCustomizable); GameInstance.GetPlayerSystem(this.GetOwner().GetGame()).m_photoPuppet = this.fakePuppet; }