Working weapon switching
This commit is contained in:
parent
6c1c5ca12e
commit
a45b7488ba
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dfeced37123c7e12907f8c5c3882aa970013d96167d07df1d71a464e2f91fd0d
|
||||
size 42429
|
||||
oid sha256:2ffa922873f3999c8ef2d7ff492cedee047c6e06cc8b56c6ee9aaeab08d8fbad
|
||||
size 42684
|
||||
|
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
(Stored with Git LFS)
BIN
EndlessVendetta/Content/LevelPrototyping/Scenes/TutorialHit.umap
(Stored with Git LFS)
Binary file not shown.
@ -138,16 +138,19 @@ void AEndlessVendettaCharacter::Interact()
|
||||
QueryParams.AddIgnoredActor(this);
|
||||
FVector LT_Start = FirstPersonCameraComponent->GetComponentLocation();
|
||||
FVector LT_End = LT_Start + (FirstPersonCameraComponent->GetForwardVector() * InteractionRange);
|
||||
if(IsValid(PrimaryWeapon))
|
||||
{
|
||||
QueryParams.AddIgnoredActor(PrimaryWeapon);
|
||||
}
|
||||
if(IsValid(SecondaryWeapon))
|
||||
{
|
||||
QueryParams.AddIgnoredActor(SecondaryWeapon);
|
||||
}
|
||||
if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams)) return;
|
||||
|
||||
AActor* HitActor = OutHit.GetActor();
|
||||
UE_LOG(LogTemp, Warning, TEXT("Hit actor: %s"), *HitActor->GetName());
|
||||
IInteractionInterface* InteractableActor = Cast<IInteractionInterface>(HitActor);
|
||||
if (InteractableActor)
|
||||
{
|
||||
InteractableActor->Interact();
|
||||
WeaponSwitcher(OutHit);
|
||||
}
|
||||
if (InteractableActor) InteractableActor->Interact();
|
||||
}
|
||||
|
||||
|
||||
@ -274,11 +277,15 @@ void AEndlessVendettaCharacter::EquipSecondary()
|
||||
SecondaryWeapon = Cast<ABaseWeaponClass>(SecondaryWeaponActor);
|
||||
}
|
||||
|
||||
void AEndlessVendettaCharacter::WeaponSwitcher(FHitResult Outhit)
|
||||
void AEndlessVendettaCharacter::WeaponSwitcher(AActor* Outhit)
|
||||
{
|
||||
if (IsValid(PrimaryWeapon)) PrimaryWeapon->Destroy();
|
||||
PrimaryWeapon = Cast<ABaseWeaponClass>(Outhit.GetActor());
|
||||
Outhit.GetActor()->Destroy();
|
||||
if (IsValid(PrimaryWeapon))
|
||||
{
|
||||
EquipPrimary();
|
||||
}
|
||||
PrimaryWeaponClass = Outhit->GetClass();
|
||||
Outhit->Destroy();
|
||||
EquipPrimary();
|
||||
}
|
||||
|
||||
//Calls the fire function in the baseWeaponClass
|
||||
|
@ -176,5 +176,5 @@ public:
|
||||
void EquipPrimary();
|
||||
void EquipSecondary();
|
||||
|
||||
void WeaponSwitcher(FHitResult Outhit);
|
||||
void WeaponSwitcher(AActor* Outhit);
|
||||
};
|
||||
|
@ -234,6 +234,7 @@ void ABaseWeaponClass::Interact()
|
||||
{
|
||||
if(!IsValid(this)) return;
|
||||
GLog->Log("Interact Called");
|
||||
endlessVendettaChar->WeaponSwitcher(this);
|
||||
}
|
||||
|
||||
void ABaseWeaponClass::InteractPrompt()
|
||||
@ -251,8 +252,8 @@ void ABaseWeaponClass::InteractPrompt()
|
||||
// {
|
||||
// endlessVendettaChar->EquipPrimary();
|
||||
// }
|
||||
// //HitActor = Cast<ABaseWeaponClass>(endlessVendettaChar->PrimaryWeaponClass);
|
||||
// //endlessVendettaChar->PrimaryWeapon = Cast<ABaseWeaponClass>(HitActor);
|
||||
// AActor* HitActor = Cast<ABaseWeaponClass>(endlessVendettaChar->PrimaryWeaponClass);
|
||||
// endlessVendettaChar->PrimaryWeapon = Cast<ABaseWeaponClass>(HitActor);
|
||||
// }
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user