Added Binding for firing and reloading

This commit is contained in:
TjgL 2025-01-20 16:55:37 +01:00
parent a107f650c8
commit f39f90b411
8 changed files with 78 additions and 8 deletions

Binary file not shown.

BIN
Content/Legumix/Player/Input/IA_Reload.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

View File

@ -6,6 +6,7 @@
#include "EnhancedInputComponent.h" #include "EnhancedInputComponent.h"
#include "GameFramework/Character.h" #include "GameFramework/Character.h"
#include "Player/LMPlayer.h" #include "Player/LMPlayer.h"
#include "Weapon/LMWeaponManager.h"
void ALMPlayerController::BeginPlay() void ALMPlayerController::BeginPlay()
{ {
@ -22,6 +23,8 @@ void ALMPlayerController::SetupInputComponent()
Input->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Move); Input->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Move);
Input->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Jump); Input->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Jump);
Input->BindAction(LookAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Look); Input->BindAction(LookAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Look);
Input->BindAction(FireAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Fire);
Input->BindAction(ReloadAction, ETriggerEvent::Triggered, this, &ALMPlayerController::Reload);
} }
void ALMPlayerController::Move(const FInputActionValue& InputValue) void ALMPlayerController::Move(const FInputActionValue& InputValue)
@ -41,4 +44,14 @@ void ALMPlayerController::Look(const FInputActionValue& InputValue)
const FVector2d VectorDirection = InputValue.Get<FVector2d>(); const FVector2d VectorDirection = InputValue.Get<FVector2d>();
AddYawInput(VectorDirection.X); AddYawInput(VectorDirection.X);
AddPitchInput(VectorDirection.Y); AddPitchInput(VectorDirection.Y);
} }
void ALMPlayerController::Fire(const FInputActionValue& InputValue)
{
LegumixPlayer->GetWeaponManager()->Fire();
}
void ALMPlayerController::Reload(const FInputActionValue& InputValue)
{
LegumixPlayer->GetWeaponManager()->Reload();
}

View File

@ -21,6 +21,9 @@ void ULMWeaponManager::BeginPlay()
{ {
ULMWeapon* Instance = NewObject<ULMWeapon>(this, Weapon); ULMWeapon* Instance = NewObject<ULMWeapon>(this, Weapon);
Weapons.Add(Instance); Weapons.Add(Instance);
// TODO
// Instance->Initialize();
} }
} }
@ -30,6 +33,39 @@ void ULMWeaponManager::BeginPlay()
} }
} }
void ULMWeaponManager::AddAmmoType(uint8 AmmoType, int AmmoCount)
{
FString Debug = FString::Printf(TEXT("Adding %i ammo of type %i"), AmmoCount, AmmoType);
GEngine->AddOnScreenDebugMessage(1, 1.f, FColor::Cyan, Debug);
for (const auto Weapon : Weapons)
{
// TODO : match weapon ammo type
if (!Weapon)
continue;
// TODO
// Weapon.AddAmmo(AmmoCount);
}
}
void ULMWeaponManager::Fire()
{
// ULMWeapon* Weapon = GetCurrentWeapon();
GEngine->AddOnScreenDebugMessage(2, 1.f, FColor::Cyan, "Fire");
// TODO
}
void ULMWeaponManager::Reload()
{
GEngine->AddOnScreenDebugMessage(3, 1.f, FColor::Cyan, "Reloading");
// ULMWeapon* Weapon = GetCurrentWeapon();
// TODO
// Weapon->Reload();
}
void ULMWeaponManager::SetWeapon(int Index) void ULMWeaponManager::SetWeapon(int Index)
{ {

View File

@ -15,14 +15,15 @@ class LEGUMEMIX_API ALMPlayer : public ACharacter
public: public:
ALMPlayer(); ALMPlayer();
virtual void Tick(float DeltaTime) override;
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
protected: protected:
virtual void BeginPlay() override; virtual void BeginPlay() override;
public: public:
virtual void Tick(float DeltaTime) override; UFUNCTION(BlueprintCallable)
ULMWeaponManager* GetWeaponManager() { return WeaponManager; }
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
private: private:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Legumix", meta = (AllowPrivateAccess = true)) UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Legumix", meta = (AllowPrivateAccess = true))

View File

@ -36,6 +36,12 @@ private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true)) UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> JumpAction; TObjectPtr<UInputAction> JumpAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> FireAction;
UPROPERTY(EditAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<UInputAction> ReloadAction;
UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = true)) UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = true))
TObjectPtr<ALMPlayer> LegumixPlayer; TObjectPtr<ALMPlayer> LegumixPlayer;
@ -43,4 +49,6 @@ private:
void Move(const FInputActionValue& InputValue); void Move(const FInputActionValue& InputValue);
void Jump(const FInputActionValue& InputValue); void Jump(const FInputActionValue& InputValue);
void Look(const FInputActionValue& InputValue); void Look(const FInputActionValue& InputValue);
void Fire(const FInputActionValue& InputValue);
void Reload(const FInputActionValue& InputValue);
}; };

View File

@ -29,6 +29,15 @@ public:
UFUNCTION(BlueprintCallable, Category="Legumix") UFUNCTION(BlueprintCallable, Category="Legumix")
void SetWeapon(int Index); void SetWeapon(int Index);
UFUNCTION(BlueprintCallable, Category="Legumix")
void AddAmmoType(uint8 AmmoType, int AmmoCount);
UFUNCTION(BlueprintCallable, Category="Legumix")
void Fire();
UFUNCTION(BlueprintCallable, Category="Legumix")
void Reload();
protected: protected:
virtual void BeginPlay() override; virtual void BeginPlay() override;