182 - Hit Boxes

This commit is contained in:
Kingsmedia 2022-05-26 18:27:47 +02:00
parent 3c0a358e66
commit 739f9f325b
3 changed files with 131 additions and 0 deletions

View File

@ -11,6 +11,7 @@
#include "Blaster/PlayerState/BlasterPlayerState.h" #include "Blaster/PlayerState/BlasterPlayerState.h"
#include "Blaster/Weapon/Weapon.h" #include "Blaster/Weapon/Weapon.h"
#include "Camera/CameraComponent.h" #include "Camera/CameraComponent.h"
#include "Components/BoxComponent.h"
#include "Components/CapsuleComponent.h" #include "Components/CapsuleComponent.h"
#include "Components/WidgetComponent.h" #include "Components/WidgetComponent.h"
#include "GameFramework/CharacterMovementComponent.h" #include "GameFramework/CharacterMovementComponent.h"
@ -63,6 +64,80 @@ ABlasterCharacter::ABlasterCharacter()
AttachedGrenade = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Attached Grenade")); AttachedGrenade = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Attached Grenade"));
AttachedGrenade->SetupAttachment(GetMesh(), FName("RightHandThrowableSocket")); AttachedGrenade->SetupAttachment(GetMesh(), FName("RightHandThrowableSocket"));
AttachedGrenade->SetCollisionEnabled(ECollisionEnabled::NoCollision); AttachedGrenade->SetCollisionEnabled(ECollisionEnabled::NoCollision);
// Hit boxes for server-side rewind
head = CreateDefaultSubobject<UBoxComponent>(TEXT("head"));
head->SetupAttachment(GetMesh(), FName("head"));
head->SetCollisionEnabled(ECollisionEnabled::NoCollision);
pelvis = CreateDefaultSubobject<UBoxComponent>(TEXT("pelvis"));
pelvis->SetupAttachment(GetMesh(), FName("pelvis"));
pelvis->SetCollisionEnabled(ECollisionEnabled::NoCollision);
spine_02 = CreateDefaultSubobject<UBoxComponent>(TEXT("spine_02"));
spine_02->SetupAttachment(GetMesh(), FName("spine_02"));
spine_02->SetCollisionEnabled(ECollisionEnabled::NoCollision);
spine_03 = CreateDefaultSubobject<UBoxComponent>(TEXT("spine_03"));
spine_03->SetupAttachment(GetMesh(), FName("spine_03"));
spine_03->SetCollisionEnabled(ECollisionEnabled::NoCollision);
upperarm_l = CreateDefaultSubobject<UBoxComponent>(TEXT("upperarm_l"));
upperarm_l->SetupAttachment(GetMesh(), FName("upperarm_l"));
upperarm_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
upperarm_r = CreateDefaultSubobject<UBoxComponent>(TEXT("upperarm_r"));
upperarm_r->SetupAttachment(GetMesh(), FName("upperarm_r"));
upperarm_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
lowerarm_l = CreateDefaultSubobject<UBoxComponent>(TEXT("lowerarm_l"));
lowerarm_l->SetupAttachment(GetMesh(), FName("lowerarm_l"));
lowerarm_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
lowerarm_r = CreateDefaultSubobject<UBoxComponent>(TEXT("lowerarm_r"));
lowerarm_r->SetupAttachment(GetMesh(), FName("lowerarm_r"));
lowerarm_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
hand_l = CreateDefaultSubobject<UBoxComponent>(TEXT("hand_l"));
hand_l->SetupAttachment(GetMesh(), FName("hand_l"));
hand_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
hand_r = CreateDefaultSubobject<UBoxComponent>(TEXT("hand_r"));
hand_r->SetupAttachment(GetMesh(), FName("hand_r"));
hand_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
backpack = CreateDefaultSubobject<UBoxComponent>(TEXT("backpack"));
backpack->SetupAttachment(GetMesh(), FName("backpack"));
backpack->SetCollisionEnabled(ECollisionEnabled::NoCollision);
blanket = CreateDefaultSubobject<UBoxComponent>(TEXT("blanket"));
blanket->SetupAttachment(GetMesh(), FName("backpack"));
blanket->SetCollisionEnabled(ECollisionEnabled::NoCollision);
thigh_l = CreateDefaultSubobject<UBoxComponent>(TEXT("thigh_l"));
thigh_l->SetupAttachment(GetMesh(), FName("thigh_l"));
thigh_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
thigh_r = CreateDefaultSubobject<UBoxComponent>(TEXT("thigh_r"));
thigh_r->SetupAttachment(GetMesh(), FName("thigh_r"));
thigh_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
calf_l = CreateDefaultSubobject<UBoxComponent>(TEXT("calf_l"));
calf_l->SetupAttachment(GetMesh(), FName("calf_l"));
calf_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
calf_r = CreateDefaultSubobject<UBoxComponent>(TEXT("calf_r"));
calf_r->SetupAttachment(GetMesh(), FName("calf_r"));
calf_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
foot_l = CreateDefaultSubobject<UBoxComponent>(TEXT("foot_l"));
foot_l->SetupAttachment(GetMesh(), FName("foot_l"));
foot_l->SetCollisionEnabled(ECollisionEnabled::NoCollision);
foot_r = CreateDefaultSubobject<UBoxComponent>(TEXT("foot_r"));
foot_r->SetupAttachment(GetMesh(), FName("foot_r"));
foot_r->SetCollisionEnabled(ECollisionEnabled::NoCollision);
} }
void ABlasterCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const void ABlasterCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const

View File

@ -46,6 +46,62 @@ public:
void UpdateHUDAmmo(); void UpdateHUDAmmo();
void SpawnDefaultWeapon(); void SpawnDefaultWeapon();
// Hit boxes used for server-side rewind
UPROPERTY(EditAnywhere)
class UBoxComponent* head;
UPROPERTY(EditAnywhere)
UBoxComponent* pelvis;
UPROPERTY(EditAnywhere)
UBoxComponent* spine_02;
UPROPERTY(EditAnywhere)
UBoxComponent* spine_03;
UPROPERTY(EditAnywhere)
UBoxComponent* upperarm_l;
UPROPERTY(EditAnywhere)
UBoxComponent* upperarm_r;
UPROPERTY(EditAnywhere)
UBoxComponent* lowerarm_l;
UPROPERTY(EditAnywhere)
UBoxComponent* lowerarm_r;
UPROPERTY(EditAnywhere)
UBoxComponent* hand_l;
UPROPERTY(EditAnywhere)
UBoxComponent* hand_r;
UPROPERTY(EditAnywhere)
UBoxComponent* backpack;
UPROPERTY(EditAnywhere)
UBoxComponent* blanket;
UPROPERTY(EditAnywhere)
UBoxComponent* thigh_l;
UPROPERTY(EditAnywhere)
UBoxComponent* thigh_r;
UPROPERTY(EditAnywhere)
UBoxComponent* calf_l;
UPROPERTY(EditAnywhere)
UBoxComponent* calf_r;
UPROPERTY(EditAnywhere)
UBoxComponent* foot_l;
UPROPERTY(EditAnywhere)
UBoxComponent* foot_r;
protected: protected:
virtual void BeginPlay() override; virtual void BeginPlay() override;