From 6da5f750890c2f24d91bbf4cbd182a65e6808c7f Mon Sep 17 00:00:00 2001 From: sSebster Date: Mon, 20 Jan 2025 18:42:26 +0100 Subject: [PATCH] Added weapons radivolver and bazoucorn added bp radivolver and bazoucorn added dt weapon data --- Binaries/Win64/UnrealEditor-LegumeMix.exp | 4 +-- Binaries/Win64/UnrealEditor-LegumeMix.pdb | 4 +-- Content/Legumix/Weapon/BP_Bazoucorn.uasset | 3 ++ Content/Legumix/Weapon/BP_Radivolver.uasset | 3 ++ Content/Legumix/Weapon/DT_WeaponData.uasset | 3 ++ Source/LegumeMix/Private/Weapon/Bazoucorn.cpp | 4 +++ .../LegumeMix/Private/Weapon/LMRadivolver.cpp | 4 +++ Source/LegumeMix/Private/Weapon/LMWeapon.cpp | 32 +++++++++++++++++++ .../Private/Weapon/LMWeaponDataStructure.cpp | 1 + Source/LegumeMix/Public/Weapon/Bazoucorn.h | 16 ++++++++++ Source/LegumeMix/Public/Weapon/LMRadivolver.h | 16 ++++++++++ Source/LegumeMix/Public/Weapon/LMWeapon.h | 31 +++++++++++++++++- .../Public/Weapon/LMWeaponDataStructure.h | 24 ++++++++++++++ 13 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 Content/Legumix/Weapon/BP_Bazoucorn.uasset create mode 100644 Content/Legumix/Weapon/BP_Radivolver.uasset create mode 100644 Content/Legumix/Weapon/DT_WeaponData.uasset create mode 100644 Source/LegumeMix/Private/Weapon/Bazoucorn.cpp create mode 100644 Source/LegumeMix/Private/Weapon/LMRadivolver.cpp create mode 100644 Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp create mode 100644 Source/LegumeMix/Public/Weapon/Bazoucorn.h create mode 100644 Source/LegumeMix/Public/Weapon/LMRadivolver.h create mode 100644 Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.exp b/Binaries/Win64/UnrealEditor-LegumeMix.exp index 3fed5c4..a6c8e31 100644 --- a/Binaries/Win64/UnrealEditor-LegumeMix.exp +++ b/Binaries/Win64/UnrealEditor-LegumeMix.exp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ed528cbcb22fab1d12ed581a7c24a30e0e61e49413780f3299c63208ab77ccc -size 11558 +oid sha256:2c7dbeab63810375b3130700a96467f2ff19c4a5ce65ef643464f197fbd48968 +size 21132 diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.pdb b/Binaries/Win64/UnrealEditor-LegumeMix.pdb index 7d674df..0e11f92 100644 --- a/Binaries/Win64/UnrealEditor-LegumeMix.pdb +++ b/Binaries/Win64/UnrealEditor-LegumeMix.pdb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:857367d1cbd5cf6e376a48fdc7e5322bcb5ac0fb89152955790a09ce2bae9bb9 -size 60223488 +oid sha256:c9a69dc83569b529cbab9a41a0b4a673d1954c0706a7d4fa86941384f9f7ec04 +size 60411904 diff --git a/Content/Legumix/Weapon/BP_Bazoucorn.uasset b/Content/Legumix/Weapon/BP_Bazoucorn.uasset new file mode 100644 index 0000000..c6b7034 --- /dev/null +++ b/Content/Legumix/Weapon/BP_Bazoucorn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:444084ec12a0a30ee30f4edb07c0277d94408ac55ae151ec9d0899e90935cdac +size 6095 diff --git a/Content/Legumix/Weapon/BP_Radivolver.uasset b/Content/Legumix/Weapon/BP_Radivolver.uasset new file mode 100644 index 0000000..b7332c1 --- /dev/null +++ b/Content/Legumix/Weapon/BP_Radivolver.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f69c9db90342e0aebf72a4fb844725eb3f0c3d4586902cacfed87339b2c90182 +size 11857 diff --git a/Content/Legumix/Weapon/DT_WeaponData.uasset b/Content/Legumix/Weapon/DT_WeaponData.uasset new file mode 100644 index 0000000..b51c224 --- /dev/null +++ b/Content/Legumix/Weapon/DT_WeaponData.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cfe70137cb69fab53bd2763dd2e3dd1545953a6fa9d88e84cebbcccf6562962 +size 2501 diff --git a/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp b/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp new file mode 100644 index 0000000..49fe2af --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp @@ -0,0 +1,4 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon/Bazoucorn.h" diff --git a/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp b/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp new file mode 100644 index 0000000..f401218 --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp @@ -0,0 +1,4 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon/LMRadivolver.h" diff --git a/Source/LegumeMix/Private/Weapon/LMWeapon.cpp b/Source/LegumeMix/Private/Weapon/LMWeapon.cpp index 837977b..21931da 100644 --- a/Source/LegumeMix/Private/Weapon/LMWeapon.cpp +++ b/Source/LegumeMix/Private/Weapon/LMWeapon.cpp @@ -1 +1,33 @@ #include "Weapon/LMWeapon.h" + +#include "Weapon/LMWeaponDataStructure.h" + +void ULMWeapon::Initialize() +{ + WeaponDataStructure =* WeaponRow.GetRow(TEXT("")); +} + +bool ULMWeapon::HasAmmoInClip() +{ + if(CurrentClipAmmo > 0) + { + return true; + } + return false; +} + +bool ULMWeapon::HasAmmoInInventory() +{ + if (CurrentAmmoInInventory > 0) + { + return true; + } + return false; +} + +void ULMWeapon::Reload() +{ + //Do design reload logic + OnReload(); +} + diff --git a/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp b/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp new file mode 100644 index 0000000..1a3991c --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp @@ -0,0 +1 @@ +#include "Weapon/LMWeaponDataStructure.h" diff --git a/Source/LegumeMix/Public/Weapon/Bazoucorn.h b/Source/LegumeMix/Public/Weapon/Bazoucorn.h new file mode 100644 index 0000000..b644cb3 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/Bazoucorn.h @@ -0,0 +1,16 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LMWeapon.h" +#include "Bazoucorn.generated.h" + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class LEGUMEMIX_API UBazoucorn : public ULMWeapon +{ + GENERATED_BODY() +}; diff --git a/Source/LegumeMix/Public/Weapon/LMRadivolver.h b/Source/LegumeMix/Public/Weapon/LMRadivolver.h new file mode 100644 index 0000000..3261c68 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMRadivolver.h @@ -0,0 +1,16 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LMWeapon.h" +#include "LMRadivolver.generated.h" + +/** + * + */ +UCLASS(BlueprintType, Blueprintable) +class LEGUMEMIX_API ULMRadivolver : public ULMWeapon +{ + GENERATED_BODY() +}; diff --git a/Source/LegumeMix/Public/Weapon/LMWeapon.h b/Source/LegumeMix/Public/Weapon/LMWeapon.h index dd1b279..4dda398 100644 --- a/Source/LegumeMix/Public/Weapon/LMWeapon.h +++ b/Source/LegumeMix/Public/Weapon/LMWeapon.h @@ -1,9 +1,38 @@ #pragma once #include "CoreMinimal.h" +#include "LMWeaponDataStructure.h" +#include "LMWeapon.generated.h" -UCLASS() +struct FLMWeaponDataStructure; + +UCLASS(BlueprintType, Blueprintable) class LEGUMEMIX_API ULMWeapon : public UObject { GENERATED_BODY() + +public: + + UPROPERTY() + FLMWeaponDataStructure WeaponDataStructure; + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Legumix") + FDataTableRowHandle WeaponRow; + + UPROPERTY() + int CurrentClipAmmo; + + UPROPERTY() + int CurrentAmmoInInventory; + + void Initialize(); + + void Fire(); + UFUNCTION(BlueprintCallable) + void Reload(); + UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) + void OnReload(); //To call in blueprint for design utilities + void AddAmmo(); + + bool HasAmmoInClip(); + bool HasAmmoInInventory(); }; diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h new file mode 100644 index 0000000..1fe5db6 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h @@ -0,0 +1,24 @@ +#pragma once +#include "AnimationBlueprintEditorSettings.h" +#include "LMWeaponDataStructure.generated.h" + +USTRUCT(BlueprintType) +struct FLMWeaponDataStructure : public FTableRowBase +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int MaxAmmo; // Max ammo in "inventory" + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int MaxClipAmmo; // Max ammo in clip + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr MeshWeapon; //Mesh of the weapon display in the scene + + //UPROPERTY(EditAnywhere, BlueprintReadWrite) + //enum AmmoType; //Type of ammo, which ammo this weapon is using + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TObjectPtr AnimationBluePrint; //The animation blueprint to animate the mesh +};