diff --git a/Binaries/Win64/LegumeMixEditor.target b/Binaries/Win64/LegumeMixEditor.target index 314c033..a7ca2f1 100644 --- a/Binaries/Win64/LegumeMixEditor.target +++ b/Binaries/Win64/LegumeMixEditor.target @@ -21,18 +21,6 @@ "BuildId": "37670630" }, "BuildProducts": [ - { - "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-LegumeMix.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-LegumeMix.pdb", - "Type": "SymbolFile" - }, - { - "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, { "Path": "$(EngineDir)/Binaries/ThirdParty/USD/UsdResources/Win64/plugins/ar/resources/plugInfo.json", "Type": "RequiredResource" @@ -4816,13 +4804,21 @@ { "Path": "$(EngineDir)/Plugins/XGEController/Binaries/Win64/UnrealEditor.modules", "Type": "RequiredResource" + }, + { + "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-LegumeMix.dll", + "Type": "DynamicLibrary" + }, + { + "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor-LegumeMix.pdb", + "Type": "SymbolFile" + }, + { + "Path": "$(ProjectDir)/Binaries/Win64/UnrealEditor.modules", + "Type": "RequiredResource" } ], "RuntimeDependencies": [ - { - "Path": "$(ProjectDir)/LegumeMix.uproject", - "Type": "UFS" - }, { "Path": "$(EngineDir)/Binaries/ThirdParty/DbgHelp/dbghelp.dll", "Type": "NonUFS" @@ -30546,6 +30542,10 @@ { "Path": "$(EngineDir)/Plugins/XGEController/XGEController.uplugin", "Type": "UFS" + }, + { + "Path": "$(ProjectDir)/LegumeMix.uproject", + "Type": "UFS" } ], "BuildPlugins": [ diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.exp b/Binaries/Win64/UnrealEditor-LegumeMix.exp index 14ff2fc..a3c29bb 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:fd20eee524ff1258fcc9e57bdfe893c54dcc262a33d53450e88f1f137c581105 -size 62628 +oid sha256:4819b18f3a30cd8f1f9dd4262ff07f8ad4761c4dc66764b1c56d680901f73001 +size 46500 diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.pdb b/Binaries/Win64/UnrealEditor-LegumeMix.pdb index b27929e..0c410ee 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:7a53ca02ff4ea16ec35044f5ff34db3b66eed5064e880795f22c4e00262fc765 -size 60215296 +oid sha256:953b61f6b9c8407afb0be82725d98136bad5a38c72477cc8992dfc8ddf979d68 +size 60887040 diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini index e69de29..e1711df 100644 --- a/Config/DefaultEditor.ini +++ b/Config/DefaultEditor.ini @@ -0,0 +1,4 @@ +[/Script/AdvancedPreviewScene.SharedProfiles] ++Profiles=(ProfileName="Epic Headquarters",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,bShowGrid=False,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=True,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=-10.000000,AutoExposureMaxBrightness=20.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-10.000000,HistogramLogMax=20.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=True,bShowMeshEdges=False) ++Profiles=(ProfileName="Grey Wireframe",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=False,bShowFloor=False,bShowGrid=True,EnvironmentColor=(R=0.039216,G=0.039216,B=0.039216,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=-10.000000,AutoExposureMaxBrightness=20.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-10.000000,HistogramLogMax=20.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=True) + diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 666bf2f..0b7008a 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -1,8 +1,9 @@ [/Script/EngineSettings.GameMapsSettings] -GameDefaultMap=/Engine/Maps/Templates/OpenWorld.OpenWorld +GameDefaultMap=/Game/Legumix/Levels/LVL_GYM_00.LVL_GYM_00 GlobalDefaultGameMode=/Game/Legumix/BP_GameMode.BP_GameMode_C +EditorStartupMap=/Game/Legumix/Levels/LVL_GYM_00.LVL_GYM_00 [/Script/Engine.RendererSettings] r.AllowStaticLighting=False @@ -91,3 +92,69 @@ ConnectionType=USBOnly bUseManualIPAddress=False ManualIPAddress= +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) +-Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) +-Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) +-Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) +-Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) +-Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision") ++Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.") ++Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ") ++Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ") ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.") ++Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.") ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors") ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors") ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.") ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.") ++Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.") ++Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.") ++Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Block,bTraceType=True,bStaticObject=False,Name="Bullet") ++EditProfiles=(Name="NoCollision",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) ++EditProfiles=(Name="OverlapAll",CustomResponses=((Channel="Bullet",Response=ECR_Overlap))) ++EditProfiles=(Name="CharacterMesh",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) ++EditProfiles=(Name="OverlapAllDynamic",CustomResponses=((Channel="Bullet",Response=ECR_Overlap))) ++EditProfiles=(Name="OverlapOnlyPawn",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) ++EditProfiles=(Name="Pawn",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) ++EditProfiles=(Name="Trigger",CustomResponses=((Channel="Bullet",Response=ECR_Overlap))) ++EditProfiles=(Name="Ragdoll",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) ++EditProfiles=(Name="UI",CustomResponses=((Channel="Bullet",Response=ECR_Ignore))) +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + diff --git a/Content/Legumix/Ennemy/BP_Dummy.uasset b/Content/Legumix/Ennemy/BP_Dummy.uasset new file mode 100644 index 0000000..bda3659 --- /dev/null +++ b/Content/Legumix/Ennemy/BP_Dummy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1933dce93a57661446fefa27890945a25cf15f21e5307130b46876a95e844da +size 68088 diff --git a/Content/Legumix/Ennemy/BP_HealthComponent.uasset b/Content/Legumix/Ennemy/BP_HealthComponent.uasset new file mode 100644 index 0000000..a9562d5 --- /dev/null +++ b/Content/Legumix/Ennemy/BP_HealthComponent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:915c0b02b161011d27d37d553bb135325dba261d6502638d155d7da5abef84d7 +size 40475 diff --git a/Content/Legumix/Ennemy/BP_HitBox_Body.uasset b/Content/Legumix/Ennemy/BP_HitBox_Body.uasset new file mode 100644 index 0000000..48a67b1 --- /dev/null +++ b/Content/Legumix/Ennemy/BP_HitBox_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d294c368e9577ce8771ba1666ac8a798ae8ab41b91627619bca73778889534fa +size 17036 diff --git a/Content/Legumix/Ennemy/BP_HitBox_Head.uasset b/Content/Legumix/Ennemy/BP_HitBox_Head.uasset new file mode 100644 index 0000000..57b7562 --- /dev/null +++ b/Content/Legumix/Ennemy/BP_HitBox_Head.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f17cfcdf2d455e6314807c481c12c80d66f8b42ac4a4e4715322bef39dcf18a0 +size 17013 diff --git a/Content/Legumix/Levels/Assets/Carott_Container.uasset b/Content/Legumix/Levels/Assets/Carott_Container.uasset new file mode 100644 index 0000000..18b358b --- /dev/null +++ b/Content/Legumix/Levels/Assets/Carott_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e5586b63a35ff75b6342089b8af7197a21b3ecae4af87a32643901c6c1558cf +size 1579 diff --git a/Content/Legumix/Levels/Assets/Container/Carott_Container.uasset b/Content/Legumix/Levels/Assets/Container/Carott_Container.uasset new file mode 100644 index 0000000..836de6b --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Carott_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8768c610b6f694643cd08c1f49a10bf1108083f5f3f0a073e72d2760a95f7a6a +size 164965 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Green.uasset b/Content/Legumix/Levels/Assets/Container/Container_Green.uasset new file mode 100644 index 0000000..5fc3a89 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Green.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:189e93c0a5464662c970e52ba4af9f43bbff5a432ca0744a9b73b9335986b0fb +size 53114 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Green2.uasset b/Content/Legumix/Levels/Assets/Container/Container_Green2.uasset new file mode 100644 index 0000000..8a41c53 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Green2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f3bee80fb70403774274243de1ee555740950a0f9b81a429ed7e3d63b1dbc3d +size 55534 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Grey.uasset b/Content/Legumix/Levels/Assets/Container/Container_Grey.uasset new file mode 100644 index 0000000..c07bb2c --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Grey.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38369f6598870bd69d71f08f6f680306afd4e243e5fc009c88f596b8bcd00b67 +size 55519 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Light.uasset b/Content/Legumix/Levels/Assets/Container/Container_Light.uasset new file mode 100644 index 0000000..f44a1f8 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Light.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:154fdd56c98f248d034ca85fe2d20e46c806c349cc7e60856852e910f3bb30d7 +size 53533 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Magenta.uasset b/Content/Legumix/Levels/Assets/Container/Container_Magenta.uasset new file mode 100644 index 0000000..96ad7a3 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Magenta.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac4fdf02b952938a96900e646477001e768c990f6a3f6590c850565352358a25 +size 55425 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Orange.uasset b/Content/Legumix/Levels/Assets/Container/Container_Orange.uasset new file mode 100644 index 0000000..2a95c87 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Orange.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:076d52e756b0296c75ce246a98d5003a4b53194bf8e9f0d953433cfc54df60e0 +size 53104 diff --git a/Content/Legumix/Levels/Assets/Container/Container_White.uasset b/Content/Legumix/Levels/Assets/Container/Container_White.uasset new file mode 100644 index 0000000..305126b --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_White.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3d50722cba165a526d23988194d679e30dbbc4b1bd2601570181fa10f0e0245 +size 53012 diff --git a/Content/Legumix/Levels/Assets/Container/Container_Yellow.uasset b/Content/Legumix/Levels/Assets/Container/Container_Yellow.uasset new file mode 100644 index 0000000..f501bf7 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Container_Yellow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d801b18d66e6f848560d4438a2e551aa73624a6106bf478dc7efe724c374fb63 +size 55760 diff --git a/Content/Legumix/Levels/Assets/Container/Corn_Container.uasset b/Content/Legumix/Levels/Assets/Container/Corn_Container.uasset new file mode 100644 index 0000000..fd0657d --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Corn_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:470c5f8197437f3b77fa5322c51af8dc262b5beb3b1b3a922ef5575bce7f2e93 +size 164836 diff --git a/Content/Legumix/Levels/Assets/Container/Radish_Container.uasset b/Content/Legumix/Levels/Assets/Container/Radish_Container.uasset new file mode 100644 index 0000000..579191e --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Radish_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:590a58639e66fc7e37c670a84e27cac49f225aefa908e012fe47bc0b8bd05f5f +size 164986 diff --git a/Content/Legumix/Levels/Assets/Container/Salad_Container.uasset b/Content/Legumix/Levels/Assets/Container/Salad_Container.uasset new file mode 100644 index 0000000..6b09753 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Container/Salad_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94ca7830c1e9759a7e78e43a93f549d27ed14478c3d063b412d7bfd9a3e3d491 +size 164808 diff --git a/Content/Legumix/Levels/Assets/Radish_Container.uasset b/Content/Legumix/Levels/Assets/Radish_Container.uasset new file mode 100644 index 0000000..ac7e186 --- /dev/null +++ b/Content/Legumix/Levels/Assets/Radish_Container.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc0c91a01e026189b2e0e0e3001a503b13e9bd7bdaf73257ffb26954f234bca +size 1579 diff --git a/Content/Legumix/Levels/LVL_00.umap b/Content/Legumix/Levels/LVL_00.umap new file mode 100644 index 0000000..d3b26ec --- /dev/null +++ b/Content/Legumix/Levels/LVL_00.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff7802316a2825862b3f744cab558f19365a0554ad66c6a778ce4d27eaace81 +size 47715 diff --git a/Content/Legumix/Levels/LVL_GYM_00.umap b/Content/Legumix/Levels/LVL_GYM_00.umap index 202adb4..e104dc7 100644 --- a/Content/Legumix/Levels/LVL_GYM_00.umap +++ b/Content/Legumix/Levels/LVL_GYM_00.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02a3e5240840e4086eea8b689538c778fb26536f32e99535e6ed5c5ae2c6ea67 -size 62710 +oid sha256:58e1830d8daaecddb4f46fee63b40c87f48829325b93cad9cf28d1439c9905be +size 409777 diff --git a/Content/Legumix/Levels/T_GabaritChecker_Gray.uasset b/Content/Legumix/Levels/T_GabaritChecker_Gray.uasset new file mode 100644 index 0000000..c889a52 --- /dev/null +++ b/Content/Legumix/Levels/T_GabaritChecker_Gray.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c898b2856411ccbe7548209cdb752d65c31e58de33306547ccca994a0583f09 +size 18032 diff --git a/Content/Legumix/Levels/T_GabaritChecker_Gray_Mat.uasset b/Content/Legumix/Levels/T_GabaritChecker_Gray_Mat.uasset new file mode 100644 index 0000000..33c8982 --- /dev/null +++ b/Content/Legumix/Levels/T_GabaritChecker_Gray_Mat.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65ed160760c280c0a6f9dbb1a8ddb9ff6d01347b5df7d6fb668d8cacfbf42278 +size 10716 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_01BFF3FC.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_01BFF3FC.uasset new file mode 100644 index 0000000..facfca7 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_01BFF3FC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82523919ef5c6c4939c15008ead82e3a4f448c4197bc9b036e38cedfce89eb24 +size 22328 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_022C40EA.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_022C40EA.uasset index c49944d..7987fe7 100644 --- a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_022C40EA.uasset +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_022C40EA.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee509b43b22dece2577eab6adc2fca89a65ec852b249bfc5b485858964b40a75 -size 16447 +oid sha256:81363dd959c68575abac1216a0377e80f673af9592c3268f5fd814bc1f4d54c9 +size 32884 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16725CDB.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16725CDB.uasset new file mode 100644 index 0000000..b65bad6 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16725CDB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14506f34496fc568fd441938d03b92a79809cefca7f26008741c07b2980b09cc +size 19473 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16A9CB10.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16A9CB10.uasset new file mode 100644 index 0000000..468c498 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_16A9CB10.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cfc69c601e0c0412a487463def5347751e2d28ba9ca1f7eca6eb296ce3f781b +size 16564 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_1F8A3999.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_1F8A3999.uasset new file mode 100644 index 0000000..108c4a1 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_1F8A3999.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef826c3e06a95c0e58caa1b3f3a602a932961fa24fd127a0cf7ea64e960259ba +size 15685 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_2FFAD046.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_2FFAD046.uasset new file mode 100644 index 0000000..3bac7ef --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_2FFAD046.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c0e8a633876ce8c43b74f3aa113cd1a442d54063af5cdf95a6f739d276876da +size 159995 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_372876E4.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_372876E4.uasset new file mode 100644 index 0000000..651d206 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_372876E4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3bb230aa733590043fd22052fdaaf8af9a965b4f1443824514528e039df0cd +size 39747 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3808D550.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3808D550.uasset new file mode 100644 index 0000000..8a94478 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3808D550.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f379844739a17589bdaa48ccbad9506f721fa24b743d3875480a8fd9a301869c +size 37553 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3F40FE5B.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3F40FE5B.uasset new file mode 100644 index 0000000..050010b --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_3F40FE5B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61cf6240ca26ac9a11b5e456c419003943d2a6e2e36acda726bac2b092acb5e9 +size 19617 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5C8D6B0A.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5C8D6B0A.uasset new file mode 100644 index 0000000..f5d6aaa --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5C8D6B0A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21b04cd8948ebf436e29df61e60cdd593c6358febb965c33afd4e13fe0c8b85a +size 19867 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5F577DD6.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5F577DD6.uasset index fe0f395..22dca7f 100644 --- a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5F577DD6.uasset +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_5F577DD6.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfdae45015374f16e4d4aba918f9d36e564fe5b22b3b7c5c431c39f61d06183b -size 22306 +oid sha256:85520ee0f43a76d5d7b70faa2552df1b9c67236ae0ed16b1c42725ab9c08bf73 +size 40086 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8028E7A7.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8028E7A7.uasset new file mode 100644 index 0000000..624c074 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8028E7A7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a7c1512722314dea9a887ef08e46d9436af781b0355b2a1d908c6899c06e54d +size 15316 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_87EB3798.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_87EB3798.uasset new file mode 100644 index 0000000..6d0d12e --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_87EB3798.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fab1e0ed1cf3de8a67a5acbc57ad29998b6f6733fe3eace3a08e007e61f5147e +size 22130 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8893C126.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8893C126.uasset new file mode 100644 index 0000000..7457a71 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_8893C126.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37127da5d4340947da9429ac0fb423cfbb4036301c0c93a1f64b1e52bbdef5ce +size 30483 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_AD080CE9.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_AD080CE9.uasset index 470e7bf..a7b6ddb 100644 --- a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_AD080CE9.uasset +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_AD080CE9.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:55aa967c777a6d7be251b715fcc2a7a21842c28fe651a781aed128caa0251c2b -size 42457 +oid sha256:1af47ab41e16f19f6d0525b038aa9d2bc50384d0aad0536cb145f40894ca5e4d +size 77274 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_E3DAEC0B.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_E3DAEC0B.uasset new file mode 100644 index 0000000..ab177a5 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_E3DAEC0B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ae4cfbe535e745a449fc7d25c9175f176841a1f9ff593d2f19ef144bcca41a +size 17245 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_EDBDD289.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_EDBDD289.uasset new file mode 100644 index 0000000..9a3bb5a --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_EDBDD289.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00b5a607522419009a09c3685c63bcb70d00f8721d84171d22bc5fd3003199cf +size 15205 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F57C4A5B.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F57C4A5B.uasset new file mode 100644 index 0000000..aa0ebba --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F57C4A5B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e56d4837d80f867ce0002f33a306790fd53a7fd796bdbacf4df4f5d404389473 +size 112554 diff --git a/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F8C43B3B.uasset b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F8C43B3B.uasset new file mode 100644 index 0000000..cfb8c32 --- /dev/null +++ b/Content/Legumix/Levels/_GENERATED/Antoine/CubeGridToolOutput_F8C43B3B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8891fe96c86766d3e877843de5167b91a4d216b70a42ba0b42a54525d684e6b +size 19166 diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset new file mode 100644 index 0000000..7d17031 --- /dev/null +++ b/Content/Legumix/Player/BP_Play.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:117dcad18ae2b8db60ac853d81d9eb3b19cdb45994e1fa7691d9c3d26319a456 +size 51420 diff --git a/Content/Legumix/Player/BP_Player.uasset b/Content/Legumix/Player/BP_Player.uasset index a92705a..2f17b6b 100644 --- a/Content/Legumix/Player/BP_Player.uasset +++ b/Content/Legumix/Player/BP_Player.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a1b36ac7333d2d6b72f26ce3e384ba1dcee67208a17231d67c021037a7e9f4f0 -size 42647 +oid sha256:753ea5e4b6acedce454e964d906df3a3a0532fa7f9c6535a87505bf4e8f60a21 +size 60088 diff --git a/Content/Legumix/Player/Input/IA_Shoot.uasset b/Content/Legumix/Player/Input/IA_Shoot.uasset index 4e8c799..27c446c 100644 --- a/Content/Legumix/Player/Input/IA_Shoot.uasset +++ b/Content/Legumix/Player/Input/IA_Shoot.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:08c6295c098e9397372285219b1b5d37bc166e40d82eeeb81766dd85d10e91b9 -size 1387 +oid sha256:2d635494781c3c33aa1c50811caaa2351f6a6d4a0b9c8d469a37920cf4cb06c6 +size 1691 diff --git a/Content/Legumix/Weapon/Ammo/DT_Munitions.uasset b/Content/Legumix/Weapon/Ammo/DT_Munitions.uasset new file mode 100644 index 0000000..4e1a0d1 --- /dev/null +++ b/Content/Legumix/Weapon/Ammo/DT_Munitions.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b8a4e01b6a9b5e9ac6893103961ed7f3bfc48ffae60b90a24a5c98d21798a13 +size 2597 diff --git a/Content/Legumix/Weapon/BP_Bazoucorn.uasset b/Content/Legumix/Weapon/BP_Bazoucorn.uasset deleted file mode 100644 index c6b7034..0000000 --- a/Content/Legumix/Weapon/BP_Bazoucorn.uasset +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index b7332c1..0000000 --- a/Content/Legumix/Weapon/BP_Radivolver.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f69c9db90342e0aebf72a4fb844725eb3f0c3d4586902cacfed87339b2c90182 -size 11857 diff --git a/Content/Legumix/Weapon/BP_WeaponManager.uasset b/Content/Legumix/Weapon/BP_WeaponManager.uasset index 0d3685c..1766bc8 100644 --- a/Content/Legumix/Weapon/BP_WeaponManager.uasset +++ b/Content/Legumix/Weapon/BP_WeaponManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76dde9bd31fe7b9c92b2537215bc3a2b4fc67a3ea9fd83ccf9faa93d1af0d962 -size 15175 +oid sha256:7d89abfa10726185ffc32e9647ed361ef386ffb4bee6fab3a5608f4333e6422d +size 7487 diff --git a/Content/Legumix/Weapon/Revolver/BP_Revolver.uasset b/Content/Legumix/Weapon/Revolver/BP_Revolver.uasset new file mode 100644 index 0000000..d05f3ef --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/BP_Revolver.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:518819fa1779bbb1b3ec35f67b9ac0967ba613befeda1e45216d5f2593820d9f +size 52339 diff --git a/Content/Legumix/Weapon/Revolver/C_Falloff_Revolver.uasset b/Content/Legumix/Weapon/Revolver/C_Falloff_Revolver.uasset new file mode 100644 index 0000000..f5a1fce --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/C_Falloff_Revolver.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dc0fdb2874e210976edc815a88ea9ea882091fd5c6fb54fb6d5709c821f4ec3 +size 3581 diff --git a/Content/Legumix/Weapon/Revolver/Pistolet.uasset b/Content/Legumix/Weapon/Revolver/Pistolet.uasset new file mode 100644 index 0000000..5727954 --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/Pistolet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00e6e640c9e335790ce11331010db12e65d7c7e61b45f51791d935cea4a98b22 +size 54259 diff --git a/Content/Legumix/Weapon/Revolver/RevolverFirePlaceholder.uasset b/Content/Legumix/Weapon/Revolver/RevolverFirePlaceholder.uasset new file mode 100644 index 0000000..d329270 --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/RevolverFirePlaceholder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:036bca67064653a2b0513a2ee7dac5e62623db1515d6d9abc7ed4976e6c8db0d +size 101109 diff --git a/Content/Legumix/Weapon/Revolver/RevolverReloadPlaceholder.uasset b/Content/Legumix/Weapon/Revolver/RevolverReloadPlaceholder.uasset new file mode 100644 index 0000000..c31cfaa --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/RevolverReloadPlaceholder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57c7c63389c2e75f6c1a47c2a2bada37d1da349bb84537a83340554a95d3b587 +size 91266 diff --git a/Content/Legumix/Weapon/Revolver/Revolvert.uasset b/Content/Legumix/Weapon/Revolver/Revolvert.uasset new file mode 100644 index 0000000..4ce189d --- /dev/null +++ b/Content/Legumix/Weapon/Revolver/Revolvert.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6af3be98d4611ba85bf8ea0a156be856f8e3ef586a6572e22fff30b1c4f850d7 +size 217331 diff --git a/Content/Legumix/Weapon/Shotgun/02_-_Default.uasset b/Content/Legumix/Weapon/Shotgun/02_-_Default.uasset new file mode 100644 index 0000000..01ecea8 --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/02_-_Default.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73b4932692b8e0aa07dcf77cc33fb2197ebaefdf476773ed4806790379df8e7b +size 54826 diff --git a/Content/Legumix/Weapon/Shotgun/BP_Shotgun.uasset b/Content/Legumix/Weapon/Shotgun/BP_Shotgun.uasset new file mode 100644 index 0000000..e33519d --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/BP_Shotgun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dd0a8e5040d5424636e6702e52106f5b214a756aa6be25262a44713f92200ac +size 56008 diff --git a/Content/Legumix/Weapon/Shotgun/C_Falloff_Shotgun.uasset b/Content/Legumix/Weapon/Shotgun/C_Falloff_Shotgun.uasset new file mode 100644 index 0000000..849e20f --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/C_Falloff_Shotgun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a75d0924c1827034d2fd569cfaab7eab8c3f441ef9a5570618f03e343a722ab7 +size 3574 diff --git a/Content/Legumix/Weapon/Shotgun/Pistolet.uasset b/Content/Legumix/Weapon/Shotgun/Pistolet.uasset new file mode 100644 index 0000000..46848a0 --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/Pistolet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39af226052b05a1dd0f1622a7f7a2976b4a4df2d4d70826927371fb57153aded +size 54256 diff --git a/Content/Legumix/Weapon/Shotgun/Plane002.uasset b/Content/Legumix/Weapon/Shotgun/Plane002.uasset new file mode 100644 index 0000000..e231db4 --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/Plane002.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f050d1901629deea421bd2b998ee660793cd69b7e32b553d0474b86b49828bde +size 113624 diff --git a/Content/Legumix/Weapon/Shotgun/ShotgunFirePlaceholder.uasset b/Content/Legumix/Weapon/Shotgun/ShotgunFirePlaceholder.uasset new file mode 100644 index 0000000..1a180f1 --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/ShotgunFirePlaceholder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:006bd9a3cde010fb80632c6f7d2f376cbd0549a2e4d3cc5c47f07e5b53b84e61 +size 98953 diff --git a/Content/Legumix/Weapon/Shotgun/ShotgunReloadPlaceholder.uasset b/Content/Legumix/Weapon/Shotgun/ShotgunReloadPlaceholder.uasset new file mode 100644 index 0000000..6c6e9c4 --- /dev/null +++ b/Content/Legumix/Weapon/Shotgun/ShotgunReloadPlaceholder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d970d50da167138ae50db286487da236f3f39591543997106ad35e203b955a12 +size 64615 diff --git a/Content/Legumix/Weapon/WeaponSwitchPlaceholder.uasset b/Content/Legumix/Weapon/WeaponSwitchPlaceholder.uasset new file mode 100644 index 0000000..bf4e006 --- /dev/null +++ b/Content/Legumix/Weapon/WeaponSwitchPlaceholder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2a914a72c13cdfbf14e2b9c847c35fcf8e066559637c2702d4d8c275556fe51 +size 87809 diff --git a/Content/_GENERATED/Antoine/CubeGridToolOutput_4F03E9CA.uasset b/Content/_GENERATED/Antoine/CubeGridToolOutput_4F03E9CA.uasset new file mode 100644 index 0000000..45f4f62 --- /dev/null +++ b/Content/_GENERATED/Antoine/CubeGridToolOutput_4F03E9CA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7189b5d0b7624a6aa4cc00c6e1568c2b992d43e242231444d47f1113b826b64 +size 14953 diff --git a/Source/LegumeMix/Private/Weapon/LMAmmo.cpp b/Source/LegumeMix/Private/Ammo/LMAmmo.cpp similarity index 94% rename from Source/LegumeMix/Private/Weapon/LMAmmo.cpp rename to Source/LegumeMix/Private/Ammo/LMAmmo.cpp index 2fee821..e5bd484 100644 --- a/Source/LegumeMix/Private/Weapon/LMAmmo.cpp +++ b/Source/LegumeMix/Private/Ammo/LMAmmo.cpp @@ -1,9 +1,8 @@ // Fill out your copyright notice in the Description page of Project Settings. -#include "Weapon/LMAmmo.h" +#include "Ammo/LMAmmo.h" -#include "Components/BoxComponent.h" #include "Components/SphereComponent.h" #include "Player/LMPlayer.h" diff --git a/Source/LegumeMix/Private/Player/LMHealthComponent.cpp b/Source/LegumeMix/Private/Player/LMHealthComponent.cpp new file mode 100644 index 0000000..8be1033 --- /dev/null +++ b/Source/LegumeMix/Private/Player/LMHealthComponent.cpp @@ -0,0 +1,62 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Player/LMHealthComponent.h" + +#include "Player/LMHitBox.h" + + +ULMHealthComponent::ULMHealthComponent() +{ + PrimaryComponentTick.bCanEverTick = true; +} + +void ULMHealthComponent::BeginPlay() +{ + Super::BeginPlay(); + + if (bMaxHealthOnStart) + Health = MaxHealth; + + RegisterHitBoxes(); +} + +void ULMHealthComponent::RegisterHitBoxes() +{ + GetOwner()->GetComponents(HitBoxes); + for (const auto HitBox : HitBoxes) + { + HitBox->OnHitBoxHit.AddUniqueDynamic(this, &ULMHealthComponent::HitBoxHit); + } +} + +void ULMHealthComponent::TakeDamage_Implementation(const float Damage) +{ + if (Damage <= 0.0f) + return; + + OnHit(Damage); + OnHealthChanged.Broadcast(Health, Damage); + + if (Health <= 0.0f) + Kill(); +} + +void ULMHealthComponent::OnHit_Implementation(const float Damage) +{ + Health = FMath::Clamp(Health - Damage, 0.0f, MaxHealth); +} + + +void ULMHealthComponent::Kill() +{ + OnKill(); + OnDeath.Broadcast(); +} + +void ULMHealthComponent::HitBoxHit(ULMHitBox* HitBox, float Damage) +{ + TakeDamage(Damage); +} + + diff --git a/Source/LegumeMix/Private/Player/LMHitBox.cpp b/Source/LegumeMix/Private/Player/LMHitBox.cpp new file mode 100644 index 0000000..ec2603a --- /dev/null +++ b/Source/LegumeMix/Private/Player/LMHitBox.cpp @@ -0,0 +1,38 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Player/LMHitBox.h" + +#include "Player/LMBulletInfo.h" + + +ULMHitBox::ULMHitBox() +{ + PrimaryComponentTick.bCanEverTick = true; +} + +void ULMHitBox::OnHit(const FLMBulletInfo& BulletInfo) +{ + const float Damage = BulletInfo.Damage; + const double Distance = FVector::Distance(BulletInfo.Origin, GetComponentLocation()); + + const float TotalDamage = CalculateDamage(Damage, Distance, BulletInfo.Falloff, BulletInfo.MaxDistance); + OnHitBoxHit.Broadcast(this, TotalDamage); +} + +float ULMHitBox::CalculateDamage_Implementation(const float Damage, const float Distance, UCurveFloat* Falloff, const float MaxDistance) +{ + const float Absorption = Damage - FlatDamageAbsorption; + const float FalloffModifier = Falloff->GetFloatValue(Distance / MaxDistance); + UE_LOG(LogTemp, Display, TEXT("Falloff : %f"), FalloffModifier); + + const float FalloffDamage = Absorption * FalloffModifier; + UE_LOG(LogTemp, Display, TEXT("Damage With Fallof: %f"), FalloffDamage) + + const float FinalDamage = FalloffDamage * DamageModifier; + UE_LOG(LogTemp, Display, TEXT("Final Damages: %f"), FinalDamage) + + return FinalDamage; +} + + diff --git a/Source/LegumeMix/Private/Player/LMPlayer.cpp b/Source/LegumeMix/Private/Player/LMPlayer.cpp index b3b65f5..63d08d4 100644 --- a/Source/LegumeMix/Private/Player/LMPlayer.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayer.cpp @@ -3,8 +3,12 @@ #include "Player/LMPlayer.h" +#include "KismetTraceUtils.h" +#include "LMUtils.h" #include "Camera/CameraComponent.h" -#include "Weapon/LMAmmo.h" +#include "Ammo/LMAmmo.h" +#include "Player/LMBulletInfo.h" +#include "Player/LMHitBox.h" #include "Weapon/LMWeaponManager.h" ALMPlayer::ALMPlayer() @@ -17,8 +21,10 @@ ALMPlayer::ALMPlayer() Camera->bUsePawnControlRotation = true; Camera->SetRelativeLocation(FVector(20, 0, 90)); - WeaponSkeletalMeshComponent = CreateDefaultSubobject(TEXT("Weapon Mesh")); - WeaponSkeletalMeshComponent->SetupAttachment(Camera); + ArmsMesh = CreateDefaultSubobject(TEXT("Arms Mesh")); + ArmsMesh->SetupAttachment(Camera); + + SpreadStream = FRandomStream(FMath::Rand()); } // Called when the game starts or when spawned @@ -38,6 +44,16 @@ void ALMPlayer::PickUpAmmo(ALMAmmo* Ammo) WeaponManager->AddAmmoType(Ammo->GetAmmoType(), Ammo->GetAmmoAmount()); } +int ALMPlayer::GetAmmoCount(const EAmmoType AmmoType) const +{ + return WeaponManager->GetAmmoCount(AmmoType); +} + +int ALMPlayer::RemoveAmmo(const EAmmoType AmmoType, const int Count) const +{ + return WeaponManager->RemoveAmmo(AmmoType, Count); +} + void ALMPlayer::SetWeaponManager(ULMWeaponManager* Manager) { UE_LOG(LogTemp, Warning, TEXT("Set weapon manager")) @@ -48,16 +64,61 @@ void ALMPlayer::SetWeaponManager(ULMWeaponManager* Manager) } WeaponManager = Manager; - WeaponManager->Initialize(WeaponSkeletalMeshComponent); + WeaponManager->Initialize(ArmsMesh); } -// Called every frame +void ALMPlayer::PlayAnimation(UAnimMontage* Animation) +{ +} + +void ALMPlayer::FireBullets(const FLMBulletInfo Settings) +{ + FVector EndLocation; + FVector ShotVector; + FHitResult OutHit = FHitResult(); + + DrawDebugLine(GetWorld(), Settings.Origin, Settings.Origin + (Settings.Direction * Settings.MaxDistance), FColor::Blue, false, 2.f); + + for (int Shots = 0; Shots < Settings.BulletCount; Shots++) + { + ShotVector = UKismetMathLibrary::RandomUnitVectorInConeInDegreesFromStream(SpreadStream, Settings.Direction, Settings.Spread); + EndLocation = Settings.Origin + (ShotVector * Settings.MaxDistance); + + const bool HasHit = GetWorld()->LineTraceSingleByChannel(OutHit, Settings.Origin, EndLocation, TRACE_BULLET); + DrawDebugLineTraceSingle(GetWorld(), Settings.Origin, EndLocation, EDrawDebugTrace::ForDuration, HasHit, OutHit, FColor::Green, FColor::Red, 2.f); + + if (!HasHit) + continue; + + FString Hit = FString::Printf(TEXT("Hit %s"), *OutHit.Component->GetName()); + // GEngine->AddOnScreenDebugMessage(INDEX_NONE, 2.f, FColor::Red, Hit); + UE_LOG(LogTemp, Display, TEXT("%s"), *Hit); + + if (ULMHitBox* HitBox = Cast(OutHit.Component)) + { + UE_LOG(LogTemp, Warning, TEXT("Hit Hitbox")); + HitBox->OnHit(Settings); + } + } +} + +FVector ALMPlayer::GetWeaponFiringOrigin() const +{ + if (!Camera) + { + GEngine->AddOnScreenDebugMessage(INDEX_NONE, 10.f, FColor::Silver, TEXT("No camera ???")); + return FVector::ZeroVector; + } + return Camera->GetComponentTransform().GetLocation(); +} +FVector ALMPlayer::GetAimVector() const { return Camera->GetForwardVector(); } + + void ALMPlayer::Tick(float DeltaTime) { Super::Tick(DeltaTime); } -// Called to bind functionality to input void ALMPlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); diff --git a/Source/LegumeMix/Private/Weapon/LMRevolver.cpp b/Source/LegumeMix/Private/Weapon/LMRevolver.cpp new file mode 100644 index 0000000..f7d379a --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMRevolver.cpp @@ -0,0 +1,46 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon/LMRevolver.h" + +#include "Player/LMBulletInfo.h" +#include "Player/LMPlayer.h" + + +ALMRevolver::ALMRevolver() +{ + PrimaryActorTick.bCanEverTick = true; +} + +void ALMRevolver::PrimaryFire() +{ + if (!Player) + return; + + State = EWeaponState::EWS_Firing; + + if (ClipAmmo <= 0) + { + if (!Reload()) + { + PlaySound(DryFireSound, true); + GetWorldTimerManager().SetTimer(FireTimer, this, &ALMRevolver::AllowRefire, RefireDelay / 2); + } + return; + } + + + PlaySound(FireSound, true); + PlayAnimation(PrimaryFireAnimation); + + const FVector Origin = Player->GetWeaponFiringOrigin(); + const FVector Direction = Player->GetAimVector(); + + ClipAmmo--; + + FLMBulletInfo ShotInfo = FLMBulletInfo(1, Origin, Direction, WeaponSpread, MaxDistance, DamageFalloff, AmmoType, Damage); + + Player->FireBullets(ShotInfo); + GetWorldTimerManager().SetTimer(FireTimer, this, &ALMRevolver::AllowRefire, RefireDelay); +} + diff --git a/Source/LegumeMix/Private/Weapon/LMShotgun.cpp b/Source/LegumeMix/Private/Weapon/LMShotgun.cpp new file mode 100644 index 0000000..d6557ff --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMShotgun.cpp @@ -0,0 +1,45 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon/LMShotgun.h" + +#include "Player/LMBulletInfo.h" +#include "Player/LMPlayer.h" + + +ALMShotgun::ALMShotgun() +{ + PrimaryActorTick.bCanEverTick = true; +} + +void ALMShotgun::PrimaryFire() +{ + if (!Player) + return; + + State = EWeaponState::EWS_Firing; + + if (ClipAmmo <= 0) + { + if (!Reload()) + { + PlaySound(DryFireSound, true); + GetWorldTimerManager().SetTimer(FireTimer, this, &ALMShotgun::AllowRefire, RefireDelay / 2); + } + return; + } + + PlaySound(FireSound, true); + PlayAnimation(PrimaryFireAnimation); + + const FVector Origin = Player->GetWeaponFiringOrigin(); + const FVector Direction = Player->GetAimVector(); + + ClipAmmo--; + + FLMBulletInfo ShotInfo = FLMBulletInfo(PelletCount, Origin, Direction, WeaponSpread, MaxDistance, DamageFalloff, AmmoType, Damage); + + Player->FireBullets(ShotInfo); + GetWorldTimerManager().SetTimer(FireTimer, this, &ALMShotgun::AllowRefire, RefireDelay); +} + diff --git a/Source/LegumeMix/Private/Weapon/LMWeaponBase.cpp b/Source/LegumeMix/Private/Weapon/LMWeaponBase.cpp new file mode 100644 index 0000000..9b83164 --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMWeaponBase.cpp @@ -0,0 +1,115 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon/LMWeaponBase.h" + +#include "Components/AudioComponent.h" +#include "Player/LMPlayer.h" + + +ALMWeaponBase::ALMWeaponBase() +{ + PrimaryActorTick.bCanEverTick = true; + + RootComponent = CreateDefaultSubobject(TEXT("Root")); + + AudioComponent = CreateDefaultSubobject(TEXT("Audio")); + AudioComponent->SetupAttachment(RootComponent); + + WeaponMesh = CreateDefaultSubobject(TEXT("Mesh")); + WeaponMesh->SetupAttachment(RootComponent); + + WeaponSocket = FName(); +} + +void ALMWeaponBase::BeginPlay() +{ + Super::BeginPlay(); + +} + +void ALMWeaponBase::Setup(USkeletalMeshComponent* Mesh, AActor* CharOwner) +{ + SetActorHiddenInGame(true); + FAttachmentTransformRules Rules = FAttachmentTransformRules(EAttachmentRule::SnapToTarget, + EAttachmentRule::KeepRelative, + EAttachmentRule::KeepRelative, + false); + + AttachToComponent(Mesh, Rules); + Player = Cast(CharOwner); +} + +void ALMWeaponBase::OnEquip_Implementation() +{ + PlaySound(EquipSound); +} + +bool ALMWeaponBase::Reload() +{ + return DefaultReload(); +} + +void ALMWeaponBase::PrimaryFire() +{ +} + +void ALMWeaponBase::PlaySound(USoundWave* Sound, const bool Replacing) +{ + if (AudioComponent->IsPlaying() && !Replacing) + return; + + AudioComponent->Stop(); + AudioComponent->SetSound(Sound); + AudioComponent->Play(); +} + +void ALMWeaponBase::PlayAnimation(UAnimMontage* Animation) +{ + UAnimInstance* AnimInstance = WeaponMesh->GetAnimInstance(); + + if (Animation && AnimInstance) + { + AnimInstance->Montage_Play(Animation); + } +} + +bool ALMWeaponBase::DefaultReload() +{ + if (State != EWeaponState::EWS_Idle) + return false; + + const int AmmoCount = Player->GetAmmoCount(AmmoType); + if (AmmoCount <= 0) + return false; + + if (ClipAmmo >= MaxClip) + return false; + + PlaySound(ReloadSound, true); + PlayAnimation(ReloadAnimation); + + State = EWeaponState::EWS_Reloading; + + // TODO: Use Animations + OnDefaultReload(); + GetWorldTimerManager().SetTimer(ReloadTimer, this, &ALMWeaponBase::AllowRefire, ReloadDelay); + + return true; +} + +void ALMWeaponBase::AllowRefire() +{ + // TODO : improve this + if (FireTimer.IsValid()) + GetWorldTimerManager().ClearTimer(FireTimer); + else if (ReloadTimer.IsValid()) + GetWorldTimerManager().ClearTimer(ReloadTimer); + + State = EWeaponState::EWS_Idle; + + if (ClipAmmo <= 0) + { + Reload(); + } +} diff --git a/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp b/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp deleted file mode 100644 index 1a3991c..0000000 --- a/Source/LegumeMix/Private/Weapon/LMWeaponDataStructure.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "Weapon/LMWeaponDataStructure.h" diff --git a/Source/LegumeMix/Private/Weapon/LMWeaponManager.cpp b/Source/LegumeMix/Private/Weapon/LMWeaponManager.cpp index fcea7aa..55a9c8f 100644 --- a/Source/LegumeMix/Private/Weapon/LMWeaponManager.cpp +++ b/Source/LegumeMix/Private/Weapon/LMWeaponManager.cpp @@ -3,7 +3,7 @@ #include "Weapon/LMWeaponManager.h" -#include "Weapon/LMWeapon.h" +#include "Weapon/LMWeaponBase.h" ULMWeaponManager::ULMWeaponManager() @@ -14,21 +14,70 @@ ULMWeaponManager::ULMWeaponManager() void ULMWeaponManager::BeginPlay() { Super::BeginPlay(); + + if (AmmoData.IsEmpty()) + SetupAmmoData(); +} + +void ULMWeaponManager::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) +{ + Super::PostEditChangeProperty(PropertyChangedEvent); + + if (AmmoDataTable) + SetupAmmoData(); +} + +void ULMWeaponManager::SetupAmmoData() +{ + TArray Rows; + AmmoData.Empty(); + + AmmoDataTable->GetAllRows(TEXT(""), Rows); + for (const auto Data : Rows) + { + if (AmmoData.Contains(Data->AmmoType)) + continue; + + AmmoData.Add(Data->AmmoType, *Data); + } +} + +int ULMWeaponManager::RemoveAmmo(const EAmmoType Ammo, const int Count) +{ + if (AmmoData.Contains(Ammo)) + { + FLMAmmoData &Data = AmmoData[Ammo]; + + int Difference = Data.AmmoCount - Count; + UE_LOG(LogTemp, Display, TEXT("Difference: %i | Removing: %i | Storage: %i"), Difference, Count, Data.AmmoCount) + if (Difference < 0) + { + UE_LOG(LogTemp, Error, TEXT("%i - %i = %i"), Data.AmmoCount, Count, Data.AmmoCount - Count); + Data.AmmoCount = FMath::Clamp(Data.AmmoCount - Count, 0, Data.MaxAmmo); + UE_LOG(LogTemp, Warning, TEXT("Difference < 0 | Munition to add: %i | Removed: %i | New Munition: %i"), Count + Difference, Count, Data.AmmoCount) + return Count + Difference; + } + + Data.AmmoCount -= Count; + UE_LOG(LogTemp, Warning, TEXT("New munition: %i | Removed: %i"), Data.AmmoCount, Count) + return Count; + } + + return 0; } void ULMWeaponManager::Initialize(USkeletalMeshComponent* Mesh) { - SetWeaponMeshComponent(Mesh); - - for (auto Weapon : StartingWeapons) - { - if (Weapon) - { - ULMWeapon* Instance = NewObject(this, Weapon); - Weapons.Add(Instance); + ArmsMesh = Mesh; - Instance->Initialize(Mesh->GetRelativeLocation()); - } + for (auto WeaponTemplate : StartingWeapons) + { + if (!WeaponTemplate) + continue; + + ALMWeaponBase* Instance = GetWorld()->SpawnActor(WeaponTemplate); + Instance->Setup(ArmsMesh, GetOwner()); + Weapons.Add(Instance); } if (!Weapons.IsEmpty()) @@ -41,30 +90,45 @@ void ULMWeaponManager::AddAmmoType(EAmmoType 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) - { - if (Weapon->WeaponDataStructure.AmmoType != AmmoType) - continue; - Weapon->AddAmmo(AmmoCount); + if (AmmoData.Contains(AmmoType)) + { + AmmoData[AmmoType].AddAmmo(AmmoCount); } + else + { + const FString Warning = FString::Printf(TEXT("Ammo type %i not found"), AmmoType); + GEngine->AddOnScreenDebugMessage(1, 2.f, FColor::Orange, Warning); + + FLMAmmoData Data = FLMAmmoData(); + Data.AmmoType = AmmoType; + Data.AmmoCount = AmmoCount; + AmmoData[AmmoType] = Data; + } +} + +int ULMWeaponManager::GetAmmoCount(const EAmmoType AmmoType) +{ + if (AmmoData.Contains(AmmoType)) + return AmmoData[AmmoType].AmmoCount; + + return 0; } void ULMWeaponManager::Fire() { - ULMWeapon* Weapon = GetCurrentWeapon(); - - GEngine->AddOnScreenDebugMessage(2, 1.f, FColor::Cyan, "Fire"); - Weapon->Fire(); + ALMWeaponBase* Weapon = GetCurrentWeapon(); + + if (Weapon->State == EWeaponState::EWS_Idle) + Weapon->PrimaryFire(); } void ULMWeaponManager::Reload() { - GEngine->AddOnScreenDebugMessage(3, 1.f, FColor::Cyan, "Reloading"); + ALMWeaponBase* Weapon = GetCurrentWeapon(); - ULMWeapon* Weapon = GetCurrentWeapon(); - Weapon->Reload(); + if (Weapon->State == EWeaponState::EWS_Idle) + Weapon->Reload(); } void ULMWeaponManager::SwitchWeapon(const int Direction) @@ -91,13 +155,10 @@ void ULMWeaponManager::SetWeapon(const int Index) return; } + GetCurrentWeapon()->SetActorHiddenInGame(true); CurrentWeaponIndex = Index; + GetCurrentWeapon()->SetActorHiddenInGame(false); - if (WeaponMeshComponent) - { - GEngine->AddOnScreenDebugMessage(INDEX_NONE, 5, FColor::Red, "Has Mesh"); - - WeaponMeshComponent->SetSkeletalMeshAsset(GetCurrentWeapon()->WeaponDataStructure.MeshWeapon); - } + GetCurrentWeapon()->OnEquip(); } diff --git a/Source/LegumeMix/Public/Weapon/LMAmmo.h b/Source/LegumeMix/Public/Ammo/LMAmmo.h similarity index 86% rename from Source/LegumeMix/Public/Weapon/LMAmmo.h rename to Source/LegumeMix/Public/Ammo/LMAmmo.h index d397a72..a799d5a 100644 --- a/Source/LegumeMix/Public/Weapon/LMAmmo.h +++ b/Source/LegumeMix/Public/Ammo/LMAmmo.h @@ -3,17 +3,12 @@ #pragma once #include "CoreMinimal.h" +#include "LMAmmoType.h" #include "GameFramework/Actor.h" #include "LMAmmo.generated.h" class USphereComponent; -UENUM(BlueprintType) -enum class EAmmoType : uint8 -{ - EAT_RadishAmmo UMETA(DisplayName = "Radish Ammo"), - EAT_CornAmmo UMETA(DisplayName = "Corn Ammo") -}; UCLASS() class LEGUMEMIX_API ALMAmmo : public AActor diff --git a/Source/LegumeMix/Public/Ammo/LMAmmoData.h b/Source/LegumeMix/Public/Ammo/LMAmmoData.h new file mode 100644 index 0000000..06eb078 --- /dev/null +++ b/Source/LegumeMix/Public/Ammo/LMAmmoData.h @@ -0,0 +1,30 @@ +#pragma once + +#include "LMAmmoType.h" +#include "Kismet/KismetMathLibrary.h" +#include "LMAmmoData.generated.h" + + +USTRUCT(BlueprintType) +struct FLMAmmoData : public FTableRowBase +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + EAmmoType AmmoType; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin=1, ClampMax=1000, Uimin=1, Uimax=1000)) + int MaxAmmo = 32; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(ClampMin=0, Uimin=0)) + int AmmoCount = 8; + + /** + * An utility method to add and + * @param Quantity The quantity of ammo to add. + */ + void AddAmmo(const int Quantity) + { + AmmoCount += UKismetMathLibrary::Clamp(Quantity, 0, MaxAmmo); + } +}; diff --git a/Source/LegumeMix/Public/Ammo/LMAmmoType.h b/Source/LegumeMix/Public/Ammo/LMAmmoType.h new file mode 100644 index 0000000..3d84e1d --- /dev/null +++ b/Source/LegumeMix/Public/Ammo/LMAmmoType.h @@ -0,0 +1,8 @@ +#pragma once + +UENUM(BlueprintType) +enum class EAmmoType : uint8 +{ + EAT_RadishAmmo UMETA(DisplayName = "Radish Ammo"), + EAT_CornAmmo UMETA(DisplayName = "Corn Ammo") +}; \ No newline at end of file diff --git a/Source/LegumeMix/Public/LMUtils.h b/Source/LegumeMix/Public/LMUtils.h new file mode 100644 index 0000000..ea4c804 --- /dev/null +++ b/Source/LegumeMix/Public/LMUtils.h @@ -0,0 +1,4 @@ +#pragma once + +/** The Trace Channel for Bullets. */ +#define TRACE_BULLET ECC_GameTraceChannel1 diff --git a/Source/LegumeMix/Public/Player/LMBulletInfo.h b/Source/LegumeMix/Public/Player/LMBulletInfo.h new file mode 100644 index 0000000..98d4d3c --- /dev/null +++ b/Source/LegumeMix/Public/Player/LMBulletInfo.h @@ -0,0 +1,41 @@ +#pragma once +#include "Ammo/LMAmmoType.h" +#include "LMBulletInfo.generated.h" + +USTRUCT(BlueprintType) +struct FLMBulletInfo +{ + GENERATED_BODY() + + /** The number of bullets to fire. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + int BulletCount = 1; + + /** The bullets' origins. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector Origin = FVector::ZeroVector; + + /** The main direction vector. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector Direction = FVector::ForwardVector; + + /** The Random bullet spread angle deviation. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float Spread = 0.0f; + + /** The maximum distance before the bullet reaches minimum damages. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float MaxDistance = 100000.f; + + /** A curve multiplicating the damage of a bullet depending on the distance of the target. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + UCurveFloat* Falloff = nullptr; + + /** The type of bullet that was fired. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + EAmmoType AmmoType = EAmmoType::EAT_CornAmmo; + + /** The default amount of damage to apply per bullet. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float Damage = 10.f; +}; diff --git a/Source/LegumeMix/Public/Player/LMHealthComponent.h b/Source/LegumeMix/Public/Player/LMHealthComponent.h new file mode 100644 index 0000000..cb9a577 --- /dev/null +++ b/Source/LegumeMix/Public/Player/LMHealthComponent.h @@ -0,0 +1,103 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Components/ActorComponent.h" +#include "LMHealthComponent.generated.h" + + +class ULMHitBox; + +UCLASS(Blueprintable, ClassGroup=(Legumix), meta=(BlueprintSpawnableComponent)) +class LEGUMEMIX_API ULMHealthComponent : public UActorComponent +{ + GENERATED_BODY() + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnHealthChangedSignature, float, Health, float, Damage); + DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnDeathSignature); + +public: + ULMHealthComponent(); + virtual void BeginPlay() override; + void Kill(); + +public: + /** + * Applies an amount of damage to the component. + * @param Damage The damage to apply the Health to. + */ + UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category=Legumix) + void TakeDamage(float Damage); + + /** + * Called automatically when the component hits zero health. + */ + UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category=Legumix) + void OnKill(); + + /** + * Register all hitboxes associated with this component owner. + */ + UFUNCTION(BlueprintCallable, Category=Legumix, CallInEditor) + void RegisterHitBoxes(); + + /** + * Called automatically when a hitbox is hit. + * @param HitBox The hitbox that was hit. + * @param Damage The damage received by the hitbox. + */ + UFUNCTION() + void HitBoxHit(ULMHitBox* HitBox, float Damage); + + /** + * Applies the amount of damage received to the component. + * + * Called automatically when one of this component's LMHitBox is hit. + * @param Damage The damage received. + */ + UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category=Legumix) + void OnHit(float Damage); + + /** + * Adds an amount of health to the character. + * @param AddedHealth The amount of health to add. + * @param NoLimits If sets, ignore the component's MaxHealth value. + */ + UFUNCTION(BlueprintCallable, Category=Legumix, meta=(Keywords = "Refill, Health")) + void AddHealth(const float AddedHealth, const bool NoLimits = false) { Health = FMath::Clamp(Health + AddedHealth, 0.0f, NoLimits ? INT_MAX : MaxHealth); } + + /** + * Completely refill the health of the component. + */ + UFUNCTION(BlueprintCallable, Category=Legumix, meta=(Keywords = "Refill, Health")) + void FillHealth() { Health = MaxHealth; } + +public: + /** Delegate called when this component receives damages. */ + UPROPERTY(BlueprintAssignable, Category=Legumix) + FOnHealthChangedSignature OnHealthChanged; + + /** Delegate called when this component is killed, aka. Health reaches 0.*/ + UPROPERTY(BlueprintAssignable, Category=Legumix) + FOnDeathSignature OnDeath; + +private: + /** + * If set, the Health will be initialized to MaxHealth. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) + bool bMaxHealthOnStart = true; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true, ClampMin=0, UIMin=0)) + float Health = 100.f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true, ClampMin=0, UIMin=0, UIMax=1000)) + float MaxHealth = 100.f; + + /** + * A list of all associated LMHitboxes. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) + TArray> HitBoxes; +}; diff --git a/Source/LegumeMix/Public/Player/LMHitBox.h b/Source/LegumeMix/Public/Player/LMHitBox.h new file mode 100644 index 0000000..1990ebc --- /dev/null +++ b/Source/LegumeMix/Public/Player/LMHitBox.h @@ -0,0 +1,46 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LMBulletInfo.h" +#include "Components/CapsuleComponent.h" +#include "LMHitBox.generated.h" + + +UCLASS(Blueprintable, ClassGroup=(Legumix), meta=(BlueprintSpawnableComponent)) +class LEGUMEMIX_API ULMHitBox : public UCapsuleComponent +{ + GENERATED_BODY() + + DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FHitBoxHitSignature, ULMHitBox*, HitBox, float, Damage); + +public: + ULMHitBox(); + void OnHit(const FLMBulletInfo& BulletInfo); + +public: + UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category=Legumix) + float CalculateDamage(float Damage, float Distance, UCurveFloat* Falloff, float MaxDistance); + +public: + /** Delegate called when the hitbox is hit. + * @param HitBox: The Hitbox that was hit. + * @param Damage: The amount of damage done to the hitbox. + */ + UPROPERTY(BlueprintAssignable, BlueprintCallable) + FHitBoxHitSignature OnHitBoxHit; + +private: + /** + * A value to multiply the damage received by. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) + float DamageModifier = 1.0f; + + /** + * The Amount of damage removed when hit. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true, ClampMin=0.0f, UIMin=0.0f)) + float FlatDamageAbsorption = 0.f; +}; diff --git a/Source/LegumeMix/Public/Player/LMPlayer.h b/Source/LegumeMix/Public/Player/LMPlayer.h index 4027c1b..2c66c4a 100644 --- a/Source/LegumeMix/Public/Player/LMPlayer.h +++ b/Source/LegumeMix/Public/Player/LMPlayer.h @@ -3,6 +3,8 @@ #pragma once #include "CoreMinimal.h" +#include "LMBulletInfo.h" +#include "Camera/CameraComponent.h" #include "GameFramework/Character.h" #include "LMPlayer.generated.h" @@ -22,9 +24,26 @@ public: virtual void Tick(float DeltaTime) override; virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; - UFUNCTION() + UFUNCTION(BlueprintCallable) void PickUpAmmo(ALMAmmo* Ammo); + /** + * Gets the number of ammo from the given type. + * @param AmmoType The ammo type to get. + * @return The amount of ammo from the given type. + */ + UFUNCTION(BlueprintCallable) + int GetAmmoCount(EAmmoType AmmoType) const; + + /** + * Removes a given amount of ammo from the type. + * @param AmmoType The type of ammo to remove. + * @param Count The amount of ammo to remove. + * @return The amount that was removed. + */ + UFUNCTION(BlueprintCallable) + int RemoveAmmo(EAmmoType AmmoType, int Count) const; + protected: // Called when the game starts or when spawned virtual void BeginPlay() override; @@ -36,13 +55,28 @@ public: UFUNCTION(BlueprintCallable) void SetWeaponManager(ULMWeaponManager* Manager); + UFUNCTION(BlueprintCallable) + void PlayAnimation(UAnimMontage* Animation); + + UFUNCTION(BlueprintCallable) + void FireBullets(const FLMBulletInfo Settings); + + UFUNCTION(BlueprintCallable) + FVector GetWeaponFiringOrigin() const; + + UFUNCTION(BlueprintCallable) + FVector GetAimVector() const; + private: - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Legumix", meta = (AllowPrivateAccess = true)) + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) TObjectPtr WeaponManager; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Legumix", meta = (AllowPrivateAccess = true)) - TObjectPtr WeaponSkeletalMeshComponent; + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + TObjectPtr ArmsMesh; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Legumix", meta = (AllowPrivateAccess = true)) + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) TObjectPtr Camera; + +private: + FRandomStream SpreadStream; }; diff --git a/Source/LegumeMix/Public/Weapon/LMRevolver.h b/Source/LegumeMix/Public/Weapon/LMRevolver.h new file mode 100644 index 0000000..17c1c87 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMRevolver.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LMWeaponBase.h" +#include "LMRevolver.generated.h" + +UCLASS() +class LEGUMEMIX_API ALMRevolver : public ALMWeaponBase +{ + GENERATED_BODY() + +public: + ALMRevolver(); + virtual void PrimaryFire() override; +}; diff --git a/Source/LegumeMix/Public/Weapon/LMShotgun.h b/Source/LegumeMix/Public/Weapon/LMShotgun.h new file mode 100644 index 0000000..7fca267 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMShotgun.h @@ -0,0 +1,22 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LMWeaponBase.h" +#include "LMShotgun.generated.h" + +UCLASS() +class LEGUMEMIX_API ALMShotgun : public ALMWeaponBase +{ + GENERATED_BODY() + +public: + ALMShotgun(); + virtual void PrimaryFire() override; + +private: + /** The number of pellets fired by the shotgun. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta = (AllowPrivateAccess = true)) + int PelletCount = 8; +}; diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponBase.h b/Source/LegumeMix/Public/Weapon/LMWeaponBase.h new file mode 100644 index 0000000..5816319 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMWeaponBase.h @@ -0,0 +1,135 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Ammo/LMAmmo.h" +#include "LMWeaponState.h" +#include "GameFramework/Actor.h" +#include "LMWeaponBase.generated.h" + + +class ALMPlayer; + +UCLASS() +class LEGUMEMIX_API ALMWeaponBase : public AActor +{ + GENERATED_BODY() + +public: + ALMWeaponBase(); + virtual void BeginPlay() override; + void Setup(USkeletalMeshComponent* Mesh, AActor* CharOwner); + +public: + UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category=Legumix) + void OnEquip(); + virtual void OnEquip_Implementation(); + + UFUNCTION(BlueprintCallable) + virtual bool Reload(); + + UFUNCTION(BlueprintCallable) + virtual void PrimaryFire(); + + UFUNCTION(BlueprintCallable) + void PlaySound(USoundWave* Sound, bool Replacing = false); + + UFUNCTION(BlueprintCallable) + void PlayAnimation(UAnimMontage* Animation); + + /** The socket to attach the weapon to. + * @return The socket. + */ + UFUNCTION(BlueprintCallable) + FName GetAttachmentSocketName() const { return WeaponSocket; } + + UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) + void OnDefaultReload(); + +protected: + UFUNCTION(BlueprintCallable) + void AllowRefire(); + +private: + bool DefaultReload(); + +public: + /** The current state of the weapon. */ + UPROPERTY(VisibleInstanceOnly, BlueprintReadWrite, Category="Legumix|Weapon") + EWeaponState State; + +protected: /* Weapon Data */ + FTimerHandle FireTimer; + FTimerHandle ReloadTimer; + + /** The sound to play when firing. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite,Category="Legumix|Sounds") + TObjectPtr FireSound; + + UPROPERTY(EditAnywhere, BlueprintReadWrite,Category="Legumix|Sounds") + TObjectPtr ReloadSound; + + UPROPERTY(EditAnywhere, BlueprintReadWrite,Category="Legumix|Sounds") + TObjectPtr DryFireSound; + + UPROPERTY(EditAnywhere, BlueprintReadWrite,Category="Legumix|Sounds") + TObjectPtr EquipSound; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Animations", meta=(AllowPrivateAccess=true)) + TObjectPtr PrimaryFireAnimation; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Legumix|Animations", meta=(AllowPrivateAccess=true)) + TObjectPtr ReloadAnimation; + + /** The number of seconds before being able to fire again. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + float RefireDelay = 0.5f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + float ReloadDelay = 0.5f; + + /** The flat damage number of one bullet. */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + float Damage = 10.f; + + /** The max angle deviation of a bullet from the original ray. In degrees.*/ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true, UIMin=0, UIMax=180)) + float WeaponSpread = 10; + + /** The max distance (cm) between the origin and the target before doing minimal damage. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + float MaxDistance = 100000.f; + + /** The damage falloff distance in a 0-1 scale. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + TObjectPtr DamageFalloff; + + /** The type of ammo used by this weapon. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + EAmmoType AmmoType; + + /** The current number of ammo in the clip. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + int ClipAmmo; + + /** The maximum amount of ammo in a clip. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Weapon", meta=(AllowPrivateAccess=true)) + int MaxClip; + + UPROPERTY(VisibleInstanceOnly, BlueprintReadWrite, Category=Legumix) + TObjectPtr Player; + +private: + /** An optional socket to attach the weapon to. */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) + FName WeaponSocket; + +private: /* Components */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta=(AllowPrivateAccess=true)) + TObjectPtr AudioComponent; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta=(AllowPrivateAccess=true)) + TObjectPtr WeaponMesh; +}; + diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h index 3225a52..7c608af 100644 --- a/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h +++ b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h @@ -1,6 +1,4 @@ #pragma once - -#include "LMAmmo.h" #include "LMWeaponDataStructure.generated.h" USTRUCT(BlueprintType) @@ -8,18 +6,11 @@ struct FLMWeaponDataStructure : public FTableRowBase { GENERATED_BODY() + /** Max ammo in clip. */ UPROPERTY(EditAnywhere, BlueprintReadWrite) - int MaxAmmo; // Max ammo in "inventory" + int MaxClipAmmo; + /** The animation blueprint to animate the mesh. */ 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) - EAmmoType AmmoType; //Type of ammo, which ammo this weapon is using - - UPROPERTY(EditAnywhere, BlueprintReadWrite) - TObjectPtr AnimationBluePrint; //The animation blueprint to animate the mesh + TObjectPtr AnimationBluePrint; }; diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponManager.h b/Source/LegumeMix/Public/Weapon/LMWeaponManager.h index 7103bfb..57a0803 100644 --- a/Source/LegumeMix/Public/Weapon/LMWeaponManager.h +++ b/Source/LegumeMix/Public/Weapon/LMWeaponManager.h @@ -3,59 +3,77 @@ #pragma once #include "CoreMinimal.h" -#include "LMAmmo.h" +#include "Ammo/LMAmmoData.h" #include "Components/ActorComponent.h" #include "LMWeaponManager.generated.h" +class ALMWeaponBase; class ULMWeapon; -UCLASS(Blueprintable, BlueprintType, ClassGroup="Legumix", meta=(BlueprintSpawnableComponent)) +UCLASS(Blueprintable, BlueprintType, ClassGroup=Legumix, meta=(BlueprintSpawnableComponent)) class LEGUMEMIX_API ULMWeaponManager : public UActorComponent { GENERATED_BODY() public: ULMWeaponManager(); - void SetWeaponMeshComponent(USkeletalMeshComponent* Mesh) { WeaponMeshComponent = Mesh; } + void SetArmsMesh(USkeletalMeshComponent* Mesh) { ArmsMesh = Mesh; } public: /** * Get the Weapon currently equipped. * @return The Current Weapon. */ - UFUNCTION(BlueprintCallable, Category="Legumix") - ULMWeapon* GetCurrentWeapon() { return Weapons[CurrentWeaponIndex]; } + UFUNCTION(BlueprintCallable, Category=Legumix) + ALMWeaponBase* GetCurrentWeapon() { return Weapons[CurrentWeaponIndex]; } - UFUNCTION(BlueprintCallable, Category="Legumix") + UFUNCTION(BlueprintCallable, Category=Legumix) void SetWeapon(int Index); - UFUNCTION(BlueprintCallable, Category="Legumix") + UFUNCTION(BlueprintCallable, Category=Legumix) void AddAmmoType(EAmmoType AmmoType, int AmmoCount); + UFUNCTION(BlueprintCallable, Category=Legumix) + int GetAmmoCount(EAmmoType AmmoType); - UFUNCTION(BlueprintCallable, Category="Legumix") + UFUNCTION(BlueprintCallable, Category=Legumix) void Fire(); - UFUNCTION(BlueprintCallable, Category="Legumix") + UFUNCTION(BlueprintCallable, Category=Legumix) void Reload(); void SwitchWeapon(int Direction); void Initialize(USkeletalMeshComponent* Mesh); + UFUNCTION(BlueprintCallable, Category="Legumix|Ammo") + void SetupAmmoData(); + UFUNCTION(BlueprintCallable, Category="Legumix|Ammo") + int RemoveAmmo(EAmmoType Ammo, int Count); + protected: virtual void BeginPlay() override; + virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; private: - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix", meta = (AllowPrivateAccess = "true")) - TObjectPtr WeaponMeshComponent; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = "true")) + TObjectPtr ArmsMesh; + +private: + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Ammo", meta=(AllowPrivateAccess=true)) + TObjectPtr AmmoDataTable; /** The weapons the player starts with. */ - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix", meta=(AllowPrivateAccess=true)) - TArray> StartingWeapons; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) + TArray> StartingWeapons; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Legumix", meta=(AllowPrivateAccess=true)) - TArray> Weapons; + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta=(AllowPrivateAccess=true)) + TArray> Weapons; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix", meta=(AllowPrivateAccess=true)) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta=(AllowPrivateAccess=true)) int CurrentWeaponIndex = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Legumix|Ammo", meta=(AllowPrivateAccess=true)) + TMap AmmoData; + + }; diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponState.h b/Source/LegumeMix/Public/Weapon/LMWeaponState.h new file mode 100644 index 0000000..286d769 --- /dev/null +++ b/Source/LegumeMix/Public/Weapon/LMWeaponState.h @@ -0,0 +1,9 @@ +#pragma once + +UENUM(Blueprintable) +enum class EWeaponState : uint8 +{ + EWS_Idle = 0 UMETA(DisplayName = "Idle"), + EWS_Firing = 1 UMETA(DisplayName = "Firing"), + EWS_Reloading = 2 UMETA(DisplayName = "Reloading"), +}; \ No newline at end of file