diff --git a/trivialkart/trivialkart_unreal/.gitattributes b/trivialkart/trivialkart_unreal/.gitattributes new file mode 100644 index 00000000..d0949bde --- /dev/null +++ b/trivialkart/trivialkart_unreal/.gitattributes @@ -0,0 +1,23 @@ +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text + +# Raw Content types +*.fbx filter=lfs diff=lfs merge=lfs -text +*.3ds filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.xcf filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.uexp filter=lfs diff=lfs merge=lfs -text +*.bank filter=lfs diff=lfs merge=lfs -text +*.tmp filter=lfs diff=lfs merge=lfs -text +*.vox filter=lfs diff=lfs merge=lfs -text + +# Libraries and executables +*.a filter=lfs diff=lfs merge=lfs -text +*.lib filter=lfs diff=lfs merge=lfs -text +*.exe filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/trivialkart/trivialkart_unreal/.gitignore b/trivialkart/trivialkart_unreal/.gitignore new file mode 100644 index 00000000..6e21aa18 --- /dev/null +++ b/trivialkart/trivialkart_unreal/.gitignore @@ -0,0 +1,76 @@ +### UnrealEngine template +# Visual Studio 2015 user specific files +.vs/ + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# These project files can be generated by the engine +*.xcodeproj +*.xcworkspace +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* + diff --git a/trivialkart/trivialkart_unreal/Config/DefaultEditor.ini b/trivialkart/trivialkart_unreal/Config/DefaultEditor.ini new file mode 100644 index 00000000..e69de29b diff --git a/trivialkart/trivialkart_unreal/Config/DefaultEngine.ini b/trivialkart/trivialkart_unreal/Config/DefaultEngine.ini new file mode 100644 index 00000000..2c953e89 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Config/DefaultEngine.ini @@ -0,0 +1,426 @@ + + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Maps/L_TrivialKart.L_TrivialKart +LocalMapOptions= +TransitionMap=None +bUseSplitscreen=False +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +FourPlayerSplitscreenLayout=Grid +bShowAllPlayerWidgetsWhenSplitscreenDisabled=False +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Game/Blueprints/Game/BP_GameInstance.BP_GameInstance_C +GameDefaultMap=/Game/Maps/L_TrivialKart.L_TrivialKart +ServerDefaultMap=/Engine/Maps/Entry.Entry +GlobalDefaultGameMode=/Game/Blueprints/Game/BP_GameMode.BP_GameMode_C +GlobalDefaultServerGameMode=None + +[/Script/Engine.RendererSettings] +r.Mobile.ShadingPath=1 +r.Mobile.AntiAliasing=2 +r.Mobile.FloatPrecisionMode=0 +r.Mobile.AllowDitheredLODTransition=False +r.Mobile.VirtualTextures=False +r.DiscardUnusedQuality=False +r.AllowOcclusionQueries=True +r.MinScreenRadiusForLights=0.030000 +r.MinScreenRadiusForDepthPrepass=0.030000 +r.PrecomputedVisibilityWarning=False +r.TextureStreaming=True +Compat.UseDXT5NormalMaps=False +r.VirtualTextures=True +r.VirtualTexturedLightmaps=False +r.VT.TileSize=128 +r.VT.TileBorderSize=4 +r.VT.AnisotropicFiltering=False +r.VT.EnableAutoImport=False +bEnableVirtualTextureOpacityMask=True +r.MeshPaintVirtualTexture.Support=True +r.MeshPaintVirtualTexture.TileSize=32 +r.MeshPaintVirtualTexture.TileBorderSize=2 +r.MeshPaintVirtualTexture.UseCompression=True +r.StaticMesh.DefaultMeshPaintTextureSupport=True +r.MeshPaintVirtualTexture.DefaultTexelsPerVertex=4 +r.MeshPaintVirtualTexture.MaxTextureSize=4096 +r.vt.rvt.EnableBaseColor=True +r.vt.rvt.EnableBaseColorRoughness=True +r.vt.rvt.EnableBaseColorSpecular=True +r.vt.rvt.EnableMask4=True +r.vt.rvt.EnableWorldHeight=True +r.vt.rvt.EnableDisplacement=True +r.vt.rvt.HighQualityPerPixelHeight=True +WorkingColorSpaceChoice=sRGB +RedChromaticityCoordinate=(X=0.640000,Y=0.330000) +GreenChromaticityCoordinate=(X=0.300000,Y=0.600000) +BlueChromaticityCoordinate=(X=0.150000,Y=0.060000) +WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000) +r.LegacyLuminanceFactors=False +r.ClearCoatNormal=False +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.ReflectionCaptureResolution=128 +r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True +r.Lumen.HardwareRayTracing=True +r.Lumen.HardwareRayTracing.LightingMode=0 +r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False +r.Lumen.TraceMeshSDFs=0 +r.Lumen.ScreenTracingSource=0 +r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject=True +r.MegaLights.EnableForProject=False +r.RayTracing.Shadows=False +r.Shadow.Virtual.Enable=1 +r.RayTracing=True +r.RayTracing.RayTracingProxies.ProjectEnabled=True +r.RayTracing.UseTextureLod=False +r.PathTracing=True +r.GenerateMeshDistanceFields=True +r.DistanceFields.DefaultVoxelDensity=0.200000 +r.Nanite.ProjectEnabled=True +r.AllowStaticLighting=False +r.NormalMapsForStaticLighting=False +r.ForwardShading=False +r.VertexFoggingForOpaque=True +r.SeparateTranslucency=False +r.TranslucentSortPolicy=0 +TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) +r.LocalFogVolume.ApplyOnTranslucent=False +xr.VRS.FoveationLevel=0 +xr.VRS.DynamicFoveation=False +r.CustomDepth=1 +r.CustomDepthTemporalAAJitter=True +r.PostProcessing.PropagateAlpha=False +r.Deferred.SupportPrimitiveAlphaHoldout=False +r.DefaultFeature.Bloom=False +r.DefaultFeature.AmbientOcclusion=False +r.DefaultFeature.AmbientOcclusionStaticFraction=True +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.AutoExposure.Method=0 +r.DefaultFeature.AutoExposure.Bias=1.000000 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.LocalExposure.HighlightContrastScale=0.800000 +r.DefaultFeature.LocalExposure.ShadowContrastScale=0.800000 +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.LensFlare=False +r.TemporalAA.Upsampling=True +r.AntiAliasingMethod=0 +r.MSAACount=4 +r.DefaultFeature.LightUnits=1 +r.DefaultBackBufferPixelFormat=4 +r.ScreenPercentage.Default=100.000000 +r.ScreenPercentage.Default.Desktop.Mode=1 +r.ScreenPercentage.Default.Mobile.Mode=0 +r.ScreenPercentage.Default.VR.Mode=0 +r.ScreenPercentage.Default.PathTracer.Mode=0 +r.Shadow.UnbuiltPreviewInGame=True +r.StencilForLODDither=False +r.EarlyZPass=3 +r.EarlyZPassOnlyMaterialMasking=False +r.Shadow.CSMCaching=False +r.DBuffer=True +r.ClearSceneMethod=1 +r.VelocityOutputPass=0 +r.Velocity.EnableVertexDeformation=2 +r.SelectiveBasePassOutputs=False +bDefaultParticleCutouts=False +fx.GPUSimulationTextureSizeX=1024 +fx.GPUSimulationTextureSizeY=1024 +r.AllowGlobalClipPlane=False +r.GBufferFormat=1 +r.MorphTarget.Mode=True +r.MorphTarget.MaxBlendWeight=5.000000 +r.SupportSkyAtmosphere=True +r.SupportSkyAtmosphereAffectsHeightFog=True +r.SupportExpFogMatchesVolumetricFog=False +r.SupportLocalFogVolumes=True +r.SupportCloudShadowOnForwardLitTranslucent=False +r.ClusteredDeferredShading.EnableForProject=True +r.LightFunctionAtlas.Format=0 +r.VolumetricFog.LightFunction=True +r.Deferred.UsesLightFunctionAtlas=True +r.SingleLayerWater.UsesLightFunctionAtlas=False +r.Translucent.UsesLightFunctionAtlas=False +r.Translucent.UsesIESProfiles=False +r.Translucent.UsesRectLights=False +r.Translucent.UsesShadowedLocalLights=False +r.GPUCrashDebugging=False +vr.InstancedStereo=False +r.MobileHDR=True +vr.MobileMultiView=False +r.Mobile.UseHWsRGBEncoding=False +vr.RoundRobinOcclusion=False +r.MeshStreaming=False +r.HeterogeneousVolumes=True +r.HeterogeneousVolumes.Shadows=False +r.Translucency.HeterogeneousVolumes=False +r.WireframeCullThreshold=5.000000 +r.SupportStationarySkylight=True +r.SupportLowQualityLightmaps=True +r.SupportPointLightWholeSceneShadows=True +r.Shadow.TranslucentPerObject.ProjectEnabled=False +r.Water.SingleLayerWater.SupportCloudShadow=False +r.Substrate=True +r.Substrate.ProjectGBufferFormat=0 +r.Substrate.ProjectClosuresPerPixel=4 +r.Substrate.ProjectClosuresPerPixelOverride=0 +r.Substrate.BytesPerPixel=80 +r.Substrate.OpaqueMaterialRoughRefraction=False +r.Refraction.Blur=True +r.Substrate.Debug.AdvancedVisualizationShaders=False +r.Substrate.EnableLayerSupport=False +r.Material.RoughDiffuse=False +r.Material.EnergyConservation=False +r.Material.DefaultAutoMaterialUsage=True +r.OIT.SortedPixels=False +r.HairStrands.LODMode=True +r.SkinCache.CompileShaders=True +r.VRS.Support=True +r.SkinCache.SkipCompilingGPUSkinVF=False +r.SkinCache.DefaultBehavior=1 +r.SkinCache.SceneMemoryLimitInMB=128.000000 +r.Mobile.EnableStaticAndCSMShadowReceivers=True +r.Mobile.EnableMovableLightCSMShaderCulling=True +r.Mobile.Forward.EnableLocalLights=1 +r.Mobile.Forward.EnableClusteredReflections=False +r.Mobile.AllowDistanceFieldShadows=True +r.Mobile.EnableMovableSpotlightsShadow=False +r.GPUSkin.Support16BitBoneIndex=False +r.GPUSkin.Limit2BoneInfluences=False +r.SupportDepthOnlyIndexBuffers=False +r.SupportReversedIndexBuffers=False +r.Mobile.AmbientOcclusion=False +r.Mobile.ScreenSpaceReflections=False +r.Mobile.DBuffer=False +r.Mobile.PropagateAlpha=False +r.GPUSkin.UnlimitedBoneInfluences=False +r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences=False +r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 +DefaultBoneInfluenceLimit=(Default=0,PerPlatform=()) +MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256))) +r.Nanite.Foliage=False +bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) +bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) +VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor +VisualizeCalibrationCustomMaterialPath=None +VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + +[/Script/LinuxTargetPlatform.LinuxTargetSettings] +-TargetedRHIs=SF_VULKAN_SM5 ++TargetedRHIs=SF_VULKAN_SM6 + +[/Script/MacTargetPlatform.MacTargetSettings] +-TargetedRHIs=SF_METAL_SM5 ++TargetedRHIs=SF_METAL_SM6 + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Mobile +AppliedTargetedHardwareClass=Mobile +DefaultGraphicsPerformance=Scalable +AppliedDefaultGraphicsPerformance=Scalable + +[/Script/WorldPartitionEditor.WorldPartitionEditorSettings] +CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' + +[/Script/Engine.UserInterfaceSettings] +bAuthorizeAutomaticWidgetVariableCreation=False +FontDPIPreset=Standard +FontDPI=72 + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/TrivialKart_Unreal") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/TrivialKart_Unreal") + +[/Script/Slate.SlateSettings] +bExplicitCanvasChildZOrder=True + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=924B1CB8E24E0D6B186D64B27B9ED4A0 +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + + +[CoreRedirects] ++ClassRedirects=(OldName="/Script/TrivialKart_Unreal.TrivalKartGameInstance",NewName="/Script/TrivialKart_Unreal.TrivialKartGameInstance") ++PropertyRedirects=(OldName="/Script/TrivialKart_Unreal.PGSLayoutText.Widget",NewName="/Script/TrivialKart_Unreal.PGSLayoutText.PGSText") ++PropertyRedirects=(OldName="/Script/TrivialKart_Unreal.StoreWidget.LevelCheckBox",NewName="/Script/TrivialKart_Unreal.StoreWidget.CoinCheckBox") ++EnumRedirects=(OldName="/Script/TrivialKart_Unreal.ECoinPurchaseObject",NewName="/Script/TrivialKart_Unreal.EPurchaseObject") ++PropertyRedirects=(OldName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinItemID",NewName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinOfferIDs") ++PropertyRedirects=(OldName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinOfferId",NewName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinOfferIDs") ++PropertyRedirects=(OldName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinOfferID",NewName="/Script/TrivialKart_Unreal.TrivialKartPlayerState.CoinOfferIDs") + +[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] +PackageName=com.gamesamples.trivialkartunreal +StoreVersion=3 +StoreVersionOffsetArm64=0 +StoreVersionOffsetX8664=0 +ApplicationDisplayName= +VersionDisplayName=1.0 +MinSDKVersion=26 +TargetSDKVersion=35 +InstallLocation=InternalOnly +bEnableLint=False +bPackageDataInsideApk=True +bCreateAllPlatformsInstall=True +bDisableVerifyOBBOnStartUp=False +bForceSmallOBBFiles=False +bAllowLargeOBBFiles=False +bAllowPatchOBBFile=False +bAllowOverflowOBBFiles=False +bDontBundleLibrariesInAPK=False +bUseExternalFilesDir=False +bPublicLogFiles=True +Orientation=SensorLandscape +MinAspectRatio=0.000000 +MaxAspectRatio=2.400000 +bUseDisplayCutout=False +RoundedEdgeSafeZone=None +bAllowResizing=True +bSupportSizeChanges=True +bRestoreNotificationsOnReboot=False +bFullScreen=True +bEnableNewKeyboard=True +DepthBufferPreference=Default +bValidateTextureFormats=True +bForceCompressNativeLibs=False +bEnableAdvancedBinaryCompression=True +bEnableBundle=True +bEnableUniversalAPK=True +bBundleABISplit=True +bBundleLanguageSplit=True +bBundleDensitySplit=True +ExtraApplicationSettings= +ExtraActivitySettings= ++ExtraPermissions=android.permission.READ_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.WRITE_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.INTERNET +bAndroidVoiceEnabled=False +bRecordPermissionAtStartupEnabled=False +bEnableMulticastSupport=False +bPackageForMetaQuest=False +bRemoveOSIG=False +KeyStore= +KeyAlias= +KeyStorePassword= +KeyPassword= +DebugKeyStore= +DebugKeyAlias= +DebugKeyStorePassword= +DebugKeyPassword= +bBuildForArm64=True +bBuildForX8664=False +bBuildForES31=True +bSupportsVulkan=True +bSupportsVulkanSM5=False +DebugVulkanLayerDirectory=(Path="") +bAndroidOpenGLSupportsBackbufferSampling=False +bForceEmulatorProfileSelectionInNonShippingBuilds=True +bDetectVulkanByDefault=True +bBuildWithHiddenSymbolVisibility=True +bCompressDebugSymbols=True +bDisableStackProtector=False +bDisableLibCppSharedDependencyValidation=False +bSaveSymbols=False +bStripShaderReflection=True +bEnableGooglePlaySupport=True +RequestCodeForPlayGamesActivities=80002 +PlayGamesClientId= +bForceRefreshToken=False +GamesAppID= ++AchievementMap=(Name="tk_achievement_login",AchievementID="") ++AchievementMap=(Name="tk_achievement_drive",AchievementID="") ++AchievementMap=(Name="tk_achievement_fuel",AchievementID="") +bSupportAdMob=False +AdMobAppID= +TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED +TagForUnderAgeOfConsent=TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED +MaxAdContentRating=MAX_AD_CONTENT_RATING_G +AdMobAdUnitID= +GooglePlayLicenseKey= +GCMClientSenderID= +bShowLaunchImage=True +bAllowIMU=False +bAllowControllers=True +bBlockAndroidKeysOnControllers=False +bControllersBlockDeviceFeedback=False +AudioSampleRate=44100 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=4 +AudioMaxChannels=0 +AudioNumSourceWorkers=0 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +SoundCueCookQualityIndex=-1 +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +AndroidGraphicsDebugger=None +MaliGraphicsDebuggerPath=(Path="") +bEnableMaliPerfCounters=False +bMultiTargetFormat_ETC2=True +bMultiTargetFormat_DXT=True +bMultiTargetFormat_ASTC=True +TextureFormatPriority_ETC2=0.200000 +TextureFormatPriority_DXT=0.600000 +TextureFormatPriority_ASTC=0.900000 +bASTCUseRDO=False +SDKAPILevelOverride= +NDKAPILevelOverride= +BuildToolsOverride= +bStreamLandscapeMeshLODs=False +bEnableDomStorage=False + +[OnlineSubsystem] +DefaultPlatformService=GooglePlay + +[OnlineSubsystemGooglePlay.Store] +bSupportsInAppPurchasing=True + diff --git a/trivialkart/trivialkart_unreal/Config/DefaultGame.ini b/trivialkart/trivialkart_unreal/Config/DefaultGame.ini new file mode 100644 index 00000000..fce179d1 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Config/DefaultGame.ini @@ -0,0 +1,14 @@ + +[/Script/CommonUI.CommonUISettings] +CommonButtonAcceptKeyHandling=TriggerClick + +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=C958FA925B4F85EF31EC53B627AD4809 +CopyrightNotice= + +[/Script/UnrealEd.ProjectPackagingSettings] +BuildConfiguration=PPBC_Shipping +ForDistribution=True +FullRebuild=True +IncludeDebugFiles=True + diff --git a/trivialkart/trivialkart_unreal/Config/DefaultInput.ini b/trivialkart/trivialkart_unreal/Config/DefaultInput.ini new file mode 100644 index 00000000..bd574f99 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Config/DefaultInput.ini @@ -0,0 +1,84 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=None +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/FlipBook/S_FlagRed_Down_Flipbook.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/FlipBook/S_FlagRed_Down_Flipbook.uasset new file mode 100644 index 00000000..39c114db --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/FlipBook/S_FlagRed_Down_Flipbook.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e67fb3fe190ff0e6146f01c61a4824e500b9c8175bc5e240ebfa543f474126ec +size 9316 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed2_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed2_Sprite.uasset new file mode 100644 index 00000000..83be8776 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed2_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af0059a171e0884c203a88e58936c90d9b2dc7f6a759701cda1f926f658bef31 +size 13328 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Down_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Down_Sprite.uasset new file mode 100644 index 00000000..c94388b3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Down_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51a73fdb1b152afd1c415122e57e9bba65651cb9f1c8ebb0a9ff44b3d3e8b41b +size 13927 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Sprite.uasset new file mode 100644 index 00000000..ebe7ed77 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Sprites/S_FlagRed_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:051f94dcbe7dfe22c58e3c80a5b39cb79199e15ff34f8aa26017cae493c559ed +size 13248 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed.uasset new file mode 100644 index 00000000..5a9974fc --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:571d0653e6e55871820b1922e9e7cff768f676bc60d0e012343969d346c09880 +size 14173 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed2.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed2.uasset new file mode 100644 index 00000000..af49df12 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9f85d6d80f39c4f1d637b1e8680ac4e6702c856e206bbc6a4010a81581e6890 +size 14197 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed_Down.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed_Down.uasset new file mode 100644 index 00000000..e1f21d49 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Flag/Textures/T_FlagRed_Down.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:601433eef5c7af326816f29f61d7101a963c0d6fd3d9175fca41a578256ea8a7 +size 13202 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Bush_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Bush_Sprite.uasset new file mode 100644 index 00000000..2a50faac --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Bush_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f9a6780612b3035a615a920706c5a582339f92d9c59466b0e886420e6e3ce1 +size 12377 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_GrassMid_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_GrassMid_Sprite.uasset new file mode 100644 index 00000000..37ba6fbb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_GrassMid_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c532fae4ad79e362a1037846ed89b54fdd9ba9d7fe74a023e96ada7599b5c484 +size 8758 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Grass_1_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Grass_1_Sprite.uasset new file mode 100644 index 00000000..24aa000f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Grass_1_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef361da6f739bd5f5e3914d80e9e2ed4b19abb027e1ca35011418924d7d5734f +size 13010 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Green_Land_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Green_Land_Sprite.uasset new file mode 100644 index 00000000..8d630121 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Green_Land_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d7b5786e2a89ead796bb1eb1d8b3f5a169828b6466befad69e86e2fd1c12973 +size 14092 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_RoadRampLong_SE_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_RoadRampLong_SE_Sprite.uasset new file mode 100644 index 00000000..a6f48c1e --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_RoadRampLong_SE_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:659a0a5a345fd6b07de9e3160923d2ad74ca06a0294c11e46499df64db44c636 +size 14800 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Rock_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Rock_Sprite.uasset new file mode 100644 index 00000000..01b44d60 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_Rock_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b71a23ed0bb6f3b613c910e2a73a67d3ad412fa974bae73b195c48e82815ae9 +size 12273 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_SignRight_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_SignRight_Sprite.uasset new file mode 100644 index 00000000..6154304e --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Sprites/T_SignRight_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04470033787f6fe09b1de6e150b5f839c549405757fd44e4762dca870ef1f61e +size 12600 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Bush.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Bush.uasset new file mode 100644 index 00000000..3ffde167 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Bush.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0000289d33670e0c19b7b1c4a21b66e7868e699f2a952517f03c1eeab7051462 +size 14162 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_GrassMid.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_GrassMid.uasset new file mode 100644 index 00000000..5d33ee0d --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_GrassMid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33de0d14c895cc23b24ed47057a1cc6135174aa14db515c127812c7ae9e8edb1 +size 14506 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Grass_1.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Grass_1.uasset new file mode 100644 index 00000000..580da6d1 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Grass_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfa38410db7ef28af17bfe3de8b513c2acc09f7f44893a7dd44948b28e3082bd +size 13283 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Green_Land.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Green_Land.uasset new file mode 100644 index 00000000..00c6ca76 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Green_Land.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3939f2a94223e5d39cf4283e490f28c410a825e41cd99a626e9ed4d63425557 +size 11626 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_RoadRampLong_SE.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_RoadRampLong_SE.uasset new file mode 100644 index 00000000..cd88c822 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_RoadRampLong_SE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57792cb5c175cbf459b110d8900a5fd95533759a601c55b08ac034799848db82 +size 26255 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Rock.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Rock.uasset new file mode 100644 index 00000000..486a392d --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_Rock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f0bf10618c59d3083acc7c50a1dd5a95888e40ba3d090a6146a83f33ffde62b +size 14428 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_SignRight.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_SignRight.uasset new file mode 100644 index 00000000..8a24781f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/Textures/T_SignRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f470a96df91880161531698f0a195eb8e2bc2d829263b0b5693b5a6bfb8ac15 +size 13798 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Bush_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Bush_TileSet.uasset new file mode 100644 index 00000000..860afff7 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Bush_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:056f109feb3822ea6e840bf257c34c86baba594a77229e56e91a82c8316b5dd1 +size 9995 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_GrassMid_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_GrassMid_TileSet.uasset new file mode 100644 index 00000000..bbc3835e --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_GrassMid_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ffe2ff5214e31eb080310c79b43b60a14bafa051f22ba667380fbc28afabc1d +size 6005 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Grass_1_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Grass_1_TileSet.uasset new file mode 100644 index 00000000..f8ee9acb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Grass_1_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5718e53e3ee8bb43d501ec47c4b21fecb69700adb48ca5491999a03a16984ae3 +size 12526 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Green_Land_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Green_Land_TileSet.uasset new file mode 100644 index 00000000..c129d8d8 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Green_Land_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbec116379f2a49ba9869309e98016d19c20782896d70cf7c25a795500bae5b0 +size 28210 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_RoadRampLong_SE_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_RoadRampLong_SE_TileSet.uasset new file mode 100644 index 00000000..dff7a2e0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_RoadRampLong_SE_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d121c6f94bf1bd45477eabc6ef10cf3e1fecbdeaded17f4ae5ed23b136e42ab4 +size 13070 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Rock_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Rock_TileSet.uasset new file mode 100644 index 00000000..c82a15e7 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_Rock_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e15acd6572010cc7fac9aae17f171f181a09ca7dc225934851038ea90ea22a5d +size 10022 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_SignRight_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_SignRight_TileSet.uasset new file mode 100644 index 00000000..ce191fb3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Items/TileSets/T_SignRight_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cff03b8be0c8b6412a56248d9250561fbbc4b20b5de40796a65d119c3dd3b8b1 +size 10536 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueDesert_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueDesert_Sprite.uasset new file mode 100644 index 00000000..98abc2f1 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueDesert_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98d3113d7b71eacce776acd57098ed44d46e0924967c6bb631363038d1eb1a7c +size 7696 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueGrass_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueGrass_Sprite.uasset new file mode 100644 index 00000000..5fbf2443 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueGrass_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51d0a141e9012c289d1e5c5aabbc69f66c7eeafea8446b7a15ce5b95cb74b999 +size 7720 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueLand_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueLand_Sprite.uasset new file mode 100644 index 00000000..7a57a666 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueLand_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d12ad0e0484281d6a9d2335d8ce61fe87f604648b370b503db57bc7bb7ae3043 +size 7546 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueShroom_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueShroom_Sprite.uasset new file mode 100644 index 00000000..081e1112 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_BlueShroom_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55c4773e75dd742d1e9d4d34817fc1af5ad187ea012c9a5356f7f23a20452c30 +size 7758 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredDesert_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredDesert_Sprite.uasset new file mode 100644 index 00000000..cd433674 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredDesert_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e867cd1ce8319dc90edd6f6e2211d3c24bfd2bd3dff01919d2b0b3866aad416 +size 8248 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredGrass_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredGrass_Sprite.uasset new file mode 100644 index 00000000..8b2529e6 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredGrass_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e095a9301023a32519f381aa280556afad4f863af45a2a2c3232773ea4f8f7c2 +size 8524 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredLand_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredLand_Sprite.uasset new file mode 100644 index 00000000..f5dc2eb9 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredLand_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb04da91da815ced896ad2de773432aac7a582dcb2d2702f4962f3f0c6bfa205 +size 7880 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredShroom_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredShroom_Sprite.uasset new file mode 100644 index 00000000..6153052a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Sprites/S_ColoredShroom_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a37b40b94f59f9075ecb1c41873915ad9c1e6faef87ccf44359d8a58fbfef27c +size 8568 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueDesert.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueDesert.uasset new file mode 100644 index 00000000..56d54bbf --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueDesert.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c12ae124e6b0d0a4ee781605aa408e059f27122dd22e56c93cfa7153c0a9aa +size 26916 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueGrass.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueGrass.uasset new file mode 100644 index 00000000..0b74e83d --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueGrass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eff5f6cd631b8c0054464a5ada1e3ab50508f047e1a43c12375d54831b733ff5 +size 26115 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueLand.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueLand.uasset new file mode 100644 index 00000000..8f172c0b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueLand.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c72c61c375f96319dc4c76cacdb3bd92a921978d21a888f9110edd1650d62c56 +size 23929 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueShroom.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueShroom.uasset new file mode 100644 index 00000000..cfec327f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_BlueShroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab96f7942469c959258c4ca877868be270ccbe4a627d0d714acbe8b9f115c41 +size 27793 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredDesert.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredDesert.uasset new file mode 100644 index 00000000..acecb520 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredDesert.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1df6b570900d33c39eaa17f2842421aab7a090528bde455eb188b29b35eaab50 +size 32116 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredGrass.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredGrass.uasset new file mode 100644 index 00000000..e9bdce5d --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredGrass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48768b834abbd38de53561793629ea6a8af94cd5758da1db44198273e68f4678 +size 32513 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredLand.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredLand.uasset new file mode 100644 index 00000000..c56ee3a4 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredLand.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dcd6d2837e96b41de92c6c0fa1fa89f8d9edc8373d01d9a259812dc36133748 +size 28574 diff --git a/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredShroom.uasset b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredShroom.uasset new file mode 100644 index 00000000..8b5887fb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/Textures/T_ColoredShroom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc512f004cc4cd643ec311b52ad7d909438c643bd593ef2b62fe451379b6274a +size 33310 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileMaps/TM_TrivialKart.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileMaps/TM_TrivialKart.uasset new file mode 100644 index 00000000..064a1364 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileMaps/TM_TrivialKart.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:994a36d7efdb999429cae70059c912216f37a74b9d5b127a3dcf1cc3dcf84325 +size 1010492 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueDesert_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueDesert_TileSet.uasset new file mode 100644 index 00000000..0eb307a5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueDesert_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eda41375944b417b8455cfca64e029f62044c3af367918616a8c4c180ba7e409 +size 522490 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueGrass_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueGrass_TileSet.uasset new file mode 100644 index 00000000..7f9c02ac --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueGrass_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f947c55f9f59d4e94b280cad5d12ab6678e58beb611d2d1ad3bf4057fb840b1 +size 4969 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueLand_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueLand_TileSet.uasset new file mode 100644 index 00000000..75db5b82 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueLand_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d80294004e530380bc87587669d5a12345e8e3348295b43999d5224ab07dd445 +size 522344 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueShroom_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueShroom_TileSet.uasset new file mode 100644 index 00000000..06e537c8 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_BlueShroom_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e2aedc2c348423b1ebf4304be5f6d96367881841c8aa15274ccb5f9bff727f6 +size 522552 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredDesert_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredDesert_TileSet.uasset new file mode 100644 index 00000000..2b66e9eb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredDesert_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fefe4b9b8f26dcd5387de523cb73f567ee07cfc4b350d0bde48399b442848a8 +size 523036 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredGrass_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredGrass_TileSet.uasset new file mode 100644 index 00000000..8459b389 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredGrass_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ebaf70451a88060a59c80ea5a492d4de426c0917bd53a3a2e3295e744bfe319 +size 523314 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredLand_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredLand_TileSet.uasset new file mode 100644 index 00000000..14d00618 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredLand_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1582f8efb0307b091eeea47a8eaeb23cb6847be5661b5dd8e00c7caaa07aa990 +size 522672 diff --git a/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredShroom_TileSet.uasset b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredShroom_TileSet.uasset new file mode 100644 index 00000000..70f468f0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Background/TileSets/T_ColoredShroom_TileSet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a46c7b78931b7089bbf3f721e3aff769f6e14be88d5c47eed1a3c32c4cd8ef82 +size 523356 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/BP_GameInstance.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/BP_GameInstance.uasset new file mode 100644 index 00000000..a448c0f2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/BP_GameInstance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23b3a123feca6a5ae8b62128ee519f15c9aab0866a20bf8383c0de76264b2eac +size 2316 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameInstance.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameInstance.uasset new file mode 100644 index 00000000..01a86015 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameInstance.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63a8bacb087158afbc4d870be19304fcd71d4a5b7f9a77f5ab0ab5d6fe362098 +size 6311 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameMode.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameMode.uasset new file mode 100644 index 00000000..d06b392f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_GameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1b5049278967c70392a9905b8a96a2766f5a35d56612f1506b2a282ad809110 +size 21568 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_SaveGame.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_SaveGame.uasset new file mode 100644 index 00000000..249b0482 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Game/BP_SaveGame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4378ab14a406ea06056d24db1cb4b344ec80babd85e0ebe0e31ee0f6e18f804f +size 5882 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_HUD.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_HUD.uasset new file mode 100644 index 00000000..aa7fea21 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_HUD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ee70b255c4699e5f9d5f2ab8987513216316abfee8e425124267acc00ab3632 +size 25327 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_Kart.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_Kart.uasset new file mode 100644 index 00000000..3784725c --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_Kart.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a59e5e1f90e1b2214b703de2e83516fb873631681da2b272c874ee145878ed95 +size 25986 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerController.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerController.uasset new file mode 100644 index 00000000..48878d0e --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94626df155bbcfaacc7ac57180d7dacd90b4298fd1eeeaea685121945c3715f9 +size 20802 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerState.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerState.uasset new file mode 100644 index 00000000..f661082a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Player/BP_PlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153a5aca4be5a547f7564798cec0236c5402203031cc13a25bd43ccf13816684 +size 21806 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Garage.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Garage.uasset new file mode 100644 index 00000000..e9bc7450 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Garage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d4230448d1efb93fba20f250de32697b8e488d458e961d753f4a5ea8430659 +size 73870 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PGS.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PGS.uasset new file mode 100644 index 00000000..669de8fc --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PGS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d17b8be2a0c97b3fd74db57c22fd5f847f386dadfd18097985f60963a87d4ca8 +size 47649 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PlayBoard.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PlayBoard.uasset new file mode 100644 index 00000000..7a577aab --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_PlayBoard.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0689914868b14d825eb3bf5746e9921ee170ee0f5f20d2ef9e02f0089b95e50b +size 47049 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Store.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Store.uasset new file mode 100644 index 00000000..14b91a45 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WBP_Store.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19001b06c0f6cceeb2ca498a5a71355c6f6654934412fd5f599cc11d5d26779c +size 259630 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_PGSLayoutText.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_PGSLayoutText.uasset new file mode 100644 index 00000000..aea3b615 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_PGSLayoutText.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00b96d5ab575c7ecf52e3b288a6ff531812a51ce51030dbd72041ce6ddcfce8c +size 26286 diff --git a/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_SelectableItem.uasset b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_SelectableItem.uasset new file mode 100644 index 00000000..6a7737f2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Blueprints/Widgets/WB_SelectableItem.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:241a6fe86b1fed60e0155882b35db1e64b5feb318e84ff1144face27741e71f7 +size 30419 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/FlipBook/PFB_CarKartStatus.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/FlipBook/PFB_CarKartStatus.uasset new file mode 100644 index 00000000..665c7ca7 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/FlipBook/PFB_CarKartStatus.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0817f1d257585c065b851016533ec22a94b7fe44707ba5c69aacd62e0fc02914 +size 11865 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus1_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus1_Sprite.uasset new file mode 100644 index 00000000..b0d5d847 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus1_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:608bd1a8980e58fc6e0e09541f7c377e63e63f64aa9a98fe47512ddacd5052da +size 15249 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus2_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus2_Sprite.uasset new file mode 100644 index 00000000..2cc8cc5b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus2_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9ad869ce1f64b7f3b890d8998395c51f6319edc6eb6483f5b7bf5f2dd2decc7 +size 15266 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus3_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus3_Sprite.uasset new file mode 100644 index 00000000..d170dae3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus3_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17f1cf305321cb39de38ac52e4ae886bff61d9bc50703b7bd91f3ec420d1f85d +size 15389 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus4_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus4_Sprite.uasset new file mode 100644 index 00000000..b13c2fd7 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Sprites/S_CarKartStatus4_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f518f464a35ea613ac3fa4fca934153ab831591c3b76b696f68cb481017792 +size 15307 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus1.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus1.uasset new file mode 100644 index 00000000..9ae5fe53 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7f23c7635e58b5b665df05e40214a184f2cdf64e5ecaace473c56a20a99f922 +size 35541 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus2.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus2.uasset new file mode 100644 index 00000000..90b70eb0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c94e6ee044bdd0050066eb70a4e50931ef83808b315ce71ef62165189fc4ad7b +size 35564 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus3.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus3.uasset new file mode 100644 index 00000000..1049ca7b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d27a2da0bbfb5f342945105ba202d2fd96911b8391d2c7b8cae8fe33005b8c3 +size 35812 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus4.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus4.uasset new file mode 100644 index 00000000..37b41e6b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarKart/Textures/T_CarKartStatus4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d6752e8e6ccfb3369ac95084c251bd838af380bc35b513209a4b68422dd9dd +size 35568 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/FlipBook/PFB_CarOffroadStatus.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/FlipBook/PFB_CarOffroadStatus.uasset new file mode 100644 index 00000000..287f29d2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/FlipBook/PFB_CarOffroadStatus.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe4d4a3288297a567cd036d54cc9e9e7583c9e465fa0033a060ba114119599e8 +size 11125 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus1_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus1_Sprite.uasset new file mode 100644 index 00000000..40beda50 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus1_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5b6d946d8f1523d2383d39429aba1f275da5504f1bd2ebfe4bfcb41c7dfc454 +size 14764 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus2_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus2_Sprite.uasset new file mode 100644 index 00000000..71813130 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus2_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0261dda0e889bd2d41ba49dcfab1d1ad9d82bee66a513dbc498d799b2afa14be +size 14797 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus3_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus3_Sprite.uasset new file mode 100644 index 00000000..b41d2d25 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus3_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b274171af70b9cbb393fe991b495d0ffbeb32d4acaa9bcee7ec55b542f611b2a +size 14627 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus4_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus4_Sprite.uasset new file mode 100644 index 00000000..da067ca0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Sprites/S_CarOffroadStatus4_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1696227ec0806b13164cea6b4be214b5967970515653802fe905af5cb0a482c2 +size 14792 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus1.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus1.uasset new file mode 100644 index 00000000..84750103 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a29b1e8e587c3a6385de12fb638295502dda1ec53df1e0d1cd183f80876ab2a +size 31606 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus2.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus2.uasset new file mode 100644 index 00000000..9ab134df --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9957054cc50e0de871895ae4298aab9c3771efcbd0e531dddb0d2d084927c005 +size 31577 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus3.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus3.uasset new file mode 100644 index 00000000..66a2a040 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbad8c7eef0df8ee23f1cbeda71ad54f1fb082c301f64f5e48549d61090adeeb +size 31640 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus4.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus4.uasset new file mode 100644 index 00000000..b056bd37 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarOffroad/Textures/T_CarOffroadStatus4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:429153f44a151ed68a2b7b16533b4efb54f8a6b466f511e65286e36052a3280a +size 31586 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/FlipBook/PFB_Red_Car_Status.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/FlipBook/PFB_Red_Car_Status.uasset new file mode 100644 index 00000000..af077286 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/FlipBook/PFB_Red_Car_Status.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3052cd16976f4356e42265e9328cebe1b3711d5d2ee8b6e01e6aa16e6a2a8dd +size 11790 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_1_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_1_Sprite.uasset new file mode 100644 index 00000000..d762f89a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_1_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:810804b7a6342cfb77cbb0e9a513de4dae0ddbf44fb79a0df06d1344c681a8f5 +size 15249 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_2_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_2_Sprite.uasset new file mode 100644 index 00000000..7edd2d48 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_2_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9053ecb2b2833d1df30246ddde76be060a8f95f724b20795f6893b669c6f5ca +size 15187 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_3_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_3_Sprite.uasset new file mode 100644 index 00000000..5a67cb18 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_3_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df779af24b5d5219dc4ad81f9caa356e8c4d88d31809076954915216413b4ae0 +size 15235 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_4_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_4_Sprite.uasset new file mode 100644 index 00000000..3ebd96b6 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Sprites/S_Red_Car_Status_4_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7a7892650d06e4702da2594599d592b9ff4c0d1cf33be6061b07c3fced93a3b +size 15175 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_1.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_1.uasset new file mode 100644 index 00000000..3df1d5c2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4823b04e9a47053638ad6e681d168953b224cf3117633ee1cb7a9e067b8d5bcb +size 27730 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_2.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_2.uasset new file mode 100644 index 00000000..733ddb17 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11363977f481674cdea44ba72fad9dc9ded9fdf0c30fe554fca530ab45780e9a +size 27291 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_3.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_3.uasset new file mode 100644 index 00000000..de011727 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bfa56b4dc56a6221dd1f3b57421f3474927b66f1407aaa4c9bb68d93f46bf16 +size 27323 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_4.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_4.uasset new file mode 100644 index 00000000..86ff8c9c --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarSedan/Textures/T_Red_Car_Status_4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bd2c813514c093eeac7f79adab7962885ac2d3dfba47c82cd49a01fefd884ab +size 27244 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/FlipBook/PFB_CarTruckStatus.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/FlipBook/PFB_CarTruckStatus.uasset new file mode 100644 index 00000000..a34f07be --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/FlipBook/PFB_CarTruckStatus.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f541b0117f537df9dbf4f6b9c2cd35a2b2f6a44be3ea13418df394145635d157 +size 11880 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus1_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus1_Sprite.uasset new file mode 100644 index 00000000..3e363d4b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus1_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a96d4908f675ac7bbb05e6a7cdd3590f56fccc2c0d4ae07bf5ed056b4cce8226 +size 15352 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus2_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus2_Sprite.uasset new file mode 100644 index 00000000..6c7ee8e5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus2_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf500ce6d92d3cae0002c42ac7e65edce0d022fd7138167cb1f8007ac74b51df +size 15335 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus3_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus3_Sprite.uasset new file mode 100644 index 00000000..3ae9c134 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus3_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aa1e4e853728566102d72f07d4b405d978a81ed1f6ba257cab52dd7223c8d2d +size 15383 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus4_Sprite.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus4_Sprite.uasset new file mode 100644 index 00000000..deda645b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Sprites/S_CarTruckStatus4_Sprite.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:537e8ba1999d58741bec1f8ef0d3d9d7a15c13e76603e1d6e3947fecf3593e0a +size 15363 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus1.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus1.uasset new file mode 100644 index 00000000..61792bb5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d92d3e04004eb388ae9b5f89f3da9627b1d19fe6ba0c93cc5b4c9ddefe0f625 +size 30638 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus2.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus2.uasset new file mode 100644 index 00000000..5e073df1 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:365587c8028ad4c28db34b1c4ef320be77a5e37512e016cbdfedac750e7989de +size 30792 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus3.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus3.uasset new file mode 100644 index 00000000..7d708f89 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32031f9f10be3e57cc3830fd9e7858d64e5e0d3a51b0a8daeab4e49e72e2908c +size 30759 diff --git a/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus4.uasset b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus4.uasset new file mode 100644 index 00000000..886b9f3a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Cars/CarTruck/Textures/T_CarTruckStatus4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25bd12e614035ddb84898a8250584d8a2c0b08359539e1719271be09bb0ca1bb +size 30795 diff --git a/trivialkart/trivialkart_unreal/Content/Font/FF_kenpixel.uasset b/trivialkart/trivialkart_unreal/Content/Font/FF_kenpixel.uasset new file mode 100644 index 00000000..fbb37823 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Font/FF_kenpixel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ce5acf3d7f979d1e900659ba1ff05280a0542f21c0e1b9845b16059a44fe14e +size 19574 diff --git a/trivialkart/trivialkart_unreal/Content/Font/F_kenpixel.uasset b/trivialkart/trivialkart_unreal/Content/Font/F_kenpixel.uasset new file mode 100644 index 00000000..a133dafc --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Font/F_kenpixel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1f515d67fd5b1ea4ea53b08d7dbe2368c534477d7d0c2a19eb92d14a30875a4 +size 6784 diff --git a/trivialkart/trivialkart_unreal/Content/Input/Actions/IA_Move.uasset b/trivialkart/trivialkart_unreal/Content/Input/Actions/IA_Move.uasset new file mode 100644 index 00000000..decb1741 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Input/Actions/IA_Move.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78ad6154e4d0c164b63529444cab52dd804143c9508737ed0f83edafda5e7cbf +size 1150 diff --git a/trivialkart/trivialkart_unreal/Content/Input/IMC_Default.uasset b/trivialkart/trivialkart_unreal/Content/Input/IMC_Default.uasset new file mode 100644 index 00000000..5fcb2d49 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Input/IMC_Default.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1702b1e260aec8ba756ca32da386292c2cec378f198638c018145d59fce1a27 +size 2963 diff --git a/trivialkart/trivialkart_unreal/Content/Maps/L_TrivialKart.umap b/trivialkart/trivialkart_unreal/Content/Maps/L_TrivialKart.umap new file mode 100644 index 00000000..d8a1e4df --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/Maps/L_TrivialKart.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eed57c3906e801199d0ce334957baaed7e40a311ab15cfe9389c178f6107bd3 +size 72426 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_0.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_0.uasset new file mode 100644 index 00000000..24bcef01 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0a60c7490d03afcb2db2c22d3cde892636303f7b66117d0131586634ccb123 +size 12387 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_1.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_1.uasset new file mode 100644 index 00000000..9b649789 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d5ff342d9b14f75c29905679981bbab0748a5dc556b4ba3bbb7173ec95ec22 +size 12640 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_2.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_2.uasset new file mode 100644 index 00000000..35792514 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a4bbbdad9d98b4d7f4eba94b3d9c217057a1fcbd6c4ed243235240d457c617f +size 12747 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_3.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_3.uasset new file mode 100644 index 00000000..5ad56e47 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61aae0c52294a2235d5fcd98ff530fffa7fcd027c37e1d8f15596ce995c37e25 +size 12702 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_4.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_4.uasset new file mode 100644 index 00000000..3eddbac8 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf7543f321a20d1b935572d4ea878568aac22552eb57c56d8b9c19a3c10a05da +size 12775 diff --git a/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_5.uasset b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_5.uasset new file mode 100644 index 00000000..9eacf370 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/GasBar/T_Gas_Status_5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e216e6dfc366197f75621fcadeb7ba04a431a30e62ba118c5eec3f055681b9a +size 12808 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Kart_In_Sale.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Kart_In_Sale.uasset new file mode 100644 index 00000000..10d3339f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Kart_In_Sale.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24ef08909f8e266985d98f17ecb98c6904ca3e3398d541927855d83baaf61059 +size 37659 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Offroad_In_Sale.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Offroad_In_Sale.uasset new file mode 100644 index 00000000..1d466a62 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Offroad_In_Sale.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb15105bfd0fed3db765d0eae16edbd25475c928f45a7e72bd284b84a8ae687e +size 41212 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Sedan_In_Sale.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Sedan_In_Sale.uasset new file mode 100644 index 00000000..a6255d1f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Sedan_In_Sale.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b191acfc967f86709bbc7d6d58c042f5882acb287216a86ca457348ab8b7a5c1 +size 37138 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Truck_In_Sale.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Truck_In_Sale.uasset new file mode 100644 index 00000000..ba60bba2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/CarsInSale/T_Truck_In_Sale.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606bb3a686ae7830efb183af6c68d81a8512088b7e6f2add986a723920b1a0e7 +size 39560 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_EmptyBg.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_EmptyBg.uasset new file mode 100644 index 00000000..373783a3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_EmptyBg.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d59b309e63ab15a2208552ac1935c26f020ede0b96f002b4d864d27c312992c +size 13970 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_FillGasBg.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_FillGasBg.uasset new file mode 100644 index 00000000..02dbe5e9 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_FillGasBg.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d18e48fc4eb43a5911efcdffee5af1bbcdc2e13e85129d4ece933209f0f5525 +size 18908 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left.uasset new file mode 100644 index 00000000..34e090e9 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f65585c43837232d49f4214898292f8c6fc9a5172132120b155acdb45ebdeadd +size 11669 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Bottom.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Bottom.uasset new file mode 100644 index 00000000..dcedbbcd --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Bottom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e0a992b18b10babc61c40af6a0eecd166b5903b5ea23c1fb360399ff4e1a95c +size 12277 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Top.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Top.uasset new file mode 100644 index 00000000..170da2ec --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Left_Top.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f2f5659a8c7984da53b6bf079f9a0161126d0c0ceb43bb57b8e7dcf8309cbbe +size 11911 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid.uasset new file mode 100644 index 00000000..27d76bf2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6383fcb058463af6ed9ee57ae12776b3f055fb1ee1c92d2ff3a9de2adf904898 +size 11417 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Bottom.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Bottom.uasset new file mode 100644 index 00000000..6115b925 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Bottom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:074940c4c8f283e43b06ee236e132484130564fc2d286be2c79ec9e44be5c8d8 +size 12096 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Top.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Top.uasset new file mode 100644 index 00000000..beb3ce87 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Mid_Top.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b77d9de5a51f221bd505fde8c1264894fe1dd7b9ce5f5648d8e2479eaf165803 +size 11695 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Bottom.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Bottom.uasset new file mode 100644 index 00000000..55e0c2e3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Bottom.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bfca884c6768a1a78a589c2907f3af1cbce1567f8a1d8b0a6c86329b889f281 +size 12384 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Mid.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Mid.uasset new file mode 100644 index 00000000..b21ac0bf --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Mid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5e8d977400aded1ae40463018aee531d98f872803d510490b3e8041a4edb66 +size 11915 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Top.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Top.uasset new file mode 100644 index 00000000..f791e7bb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_Right_Top.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4793dcd1c056ee8437715ac91b3f22edfc4458ac4524b7e399f2a3019ae36ad9 +size 12045 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_StoreBg.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_StoreBg.uasset new file mode 100644 index 00000000..3b3d1bd6 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_StoreBg.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ea2f3796a2761c4276ad6d77a2c1b12f2a63eac0f840f0697cfa2376b228f8 +size 14070 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_SubcriptionBg.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_SubcriptionBg.uasset new file mode 100644 index 00000000..e1b22eb0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/StoreBg/T_SubcriptionBg.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:346cd8a70fc917ccb4703baa604a7c97a70727f41aafaee4e3fda6f282cc1f2c +size 17716 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/T_Gas.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Gas.uasset new file mode 100644 index 00000000..1cedad47 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Gas.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdae5278ab15b163e9b80e8140e2772bd55d77620ec3ea01ca10989a9171eea7 +size 26255 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/T_Rectangle.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Rectangle.uasset new file mode 100644 index 00000000..6eb02d84 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Rectangle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60744c29985b8e1cfb27c010c9a90714be19baaf734017de9d0e2d4a2da9aa23 +size 11615 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/T_SubscriptionButton.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/T_SubscriptionButton.uasset new file mode 100644 index 00000000..2221eb3a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/T_SubscriptionButton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db9edce46942cf0c7260c7a94eec88c54f4be74f785d16122e668b6c757ed646 +size 13410 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/T_Subscription_Button.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Subscription_Button.uasset new file mode 100644 index 00000000..d3e67afa --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/T_Subscription_Button.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31bf4fca4bbd579cb81950f8d6c8d3a3a69f114a1bf453a4722fc81750f7b229 +size 13373 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Car.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Car.uasset new file mode 100644 index 00000000..a5fe7413 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Car.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ebb54a4782232eb7d80cc1c3f089dec53c3a5b60a64393f6dc24f92de444584 +size 26804 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_CarSelected.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_CarSelected.uasset new file mode 100644 index 00000000..87a6edd6 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_CarSelected.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4600aa0ede892821bf57b1427001865de75c03ce32f10cad7704d5893ffe7cd +size 30258 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabSelected.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabSelected.uasset new file mode 100644 index 00000000..715fb861 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabSelected.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:250c06076b0cb9ebb05efc49db3862ddb4dcde6ad8a7e51137d70d8257882141 +size 11398 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabUnselected.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabUnselected.uasset new file mode 100644 index 00000000..b63bf96c --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_TabUnselected.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa7b13e4f00ff84b2c8c918fc506219d1c682ce5201975b3f5048788eadd887 +size 11435 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Selected.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Selected.uasset new file mode 100644 index 00000000..d9434b6c --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Selected.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0036c1e4bc4f24b5188b32649d4c591a01d29cd44a56306a3774b68cd6cac8bf +size 27851 diff --git a/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Unselected.uasset b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Unselected.uasset new file mode 100644 index 00000000..11e8c196 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/Store/Tabs/T_Vip_Star_Unselected.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d2a220c5a65f240dd4e6bf79e5445874d33aeef1378862a7bf89f95073c83f +size 19231 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_CoinBar.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_CoinBar.uasset new file mode 100644 index 00000000..0f36e219 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_CoinBar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed8c195d2cb1db1db8ffdea5e25747fe0fa799e8203b9e24db42148c4a5d6987 +size 15589 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold.uasset new file mode 100644 index 00000000..b69d4396 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55f2bcf59500549af611bcd8580ce94360a38a535be0d35dbd1793b4913f06ad +size 14042 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold_Small.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold_Small.uasset new file mode 100644 index 00000000..a9863868 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_CoinGold_Small.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f2b0183f5cf7325abe7597a6eb21a228a86fce38db9ea360ed09d8289714583 +size 13861 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_Gear.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_Gear.uasset new file mode 100644 index 00000000..a650721a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_Gear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e6a9d6d92209faf13c1f8c33a18038c13df4bf9abe1ba2e3ff381079d871110 +size 15043 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_LeaderboardsComplex.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_LeaderboardsComplex.uasset new file mode 100644 index 00000000..d527e742 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_LeaderboardsComplex.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24fe8d5db58f1336460c00bc1d172f7323d8146c507244902e6f90fb5a0ea055 +size 12546 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_MassiveMultiplayer.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_MassiveMultiplayer.uasset new file mode 100644 index 00000000..b0c729fd --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_MassiveMultiplayer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d48d6676782f7edf71fca2991474b366f93bc0662fa42f5a742ca6db5e40d48 +size 12768 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_RestorePurchase.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_RestorePurchase.uasset new file mode 100644 index 00000000..c25a1b1f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_RestorePurchase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b2d2e88e0a12030da07e8b9d698a9e85ad719d933deb514d2b087288d48fc3 +size 19659 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_Singleplayer.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_Singleplayer.uasset new file mode 100644 index 00000000..e8ff0c64 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_Singleplayer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2fd02d61958299bd58113a2ec313bde72c31e75cda7283b40740141c04915d8 +size 12390 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_Triangle.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_Triangle.uasset new file mode 100644 index 00000000..90541255 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_Triangle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066d6b2a94d2a1cfe01428d46c13833cd118ae11024f51fc217bffbe6cae757b +size 11387 diff --git a/trivialkart/trivialkart_unreal/Content/UI/T_Trophy.uasset b/trivialkart/trivialkart_unreal/Content/UI/T_Trophy.uasset new file mode 100644 index 00000000..df33d1fe --- /dev/null +++ b/trivialkart/trivialkart_unreal/Content/UI/T_Trophy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6870c4f1d5504b40b848e360e32ea0862166059eba12b7cf7e39c4f5710be25f +size 12097 diff --git a/trivialkart/trivialkart_unreal/README.md b/trivialkart/trivialkart_unreal/README.md new file mode 100644 index 00000000..67252cc0 --- /dev/null +++ b/trivialkart/trivialkart_unreal/README.md @@ -0,0 +1,139 @@ +# TrivialKart Unreal + +A sample game demonstrating the use of Google Play technologies on Android with **Unreal Engine**. + +This version of TrivialKart demonstrates: + +* **Play Games Services (v2)**: For sign-in, achievements. +* **In-App Purchases (IAP)**. + +--- + +## Pre-requisites + +* **Unreal Engine**: Version 5.4 or higher (Recommended). +* **Android Studio**: Properly configured for the specific version of Unreal Engine being used. +* **Google Play Games Unreal Plugin**: Ensure the official plugin is enabled. + +### Pre-requisites for enabling Google Play features +* Google Play developer account. +* A configured project in the [Google Play Console](https://play.google.com/apps/publish). + +--- + +## Getting started + +1. Clone the repository and navigate to `trivialkart/trivialkart_unreal`. +2. Right-click `TrivialKart.uproject` and select **Generate Visual Studio project files**. +3. Open the `.sln` file in Visual Studio (or the `.uproject` in Unreal Editor). +4. Open the `L_TrivialKart` found in `Content/Maps`. + +By default, Google Play features are simulated or disabled unless the Google Play plugin is active and configured with a valid App ID. + +--- + +## Overview + +In TrivialKart, the player has a vehicle which they can drive by tapping on it. +Driving the car uses gas. When the car runs out of gas, to continue driving, +more must be purchased using in-game currency. If the player runs out of +in-game currency, they may buy more via in-app purchases. +In-game currency is an example of a consumable purchase that may be repeated. + +The game has different cars available for unlock. One car is purchasable using +in-game currency; other cars require unlocking via in-app purchase. +These unlocks are permanent one-time purchases. + +The game features: +* **Consumable Purchases**: Coin packs. + +--- + +## Enabling In-App Purchases + +### 1. Google Play Console Setup +1. Go to the [Google Play Developer Console](https://play.google.com/apps/publish) +and create a new application. +2. Navigate to `Monetise with Play -> Monetisation Setup` +Copy the Base64-encoded public key text in the `Licensing` area. You will need +to use this key when configuring IAP. + +### 2. Project Configuration +1. In Unreal Editor, go to **Project Settings > Platforms > Android**. +2. Under **Google Play Services**: + * Enable **Support Google Play Services**. + * Copy your **License Key** from the Play Console into the **Google Play License Key** field. +3. Under **Advanced APK Packaging**, ensure your **Package Name** matches the Console. + +### Setting up the purchase items in Google Play + +*Note:* you must upload a build to Google Play to be able to create your +in-app purchasing items in the Google Play Developer Console Console. + +1. Return to the Google Play Developer Console. +2. Under `Monetize -> Products -> In-app products`, create the following +in-app products: + | Product ID | Price| + | :---: | :---: | + | five_coins | $0.99 | + | ten_coins | $1.99 | + |twenty_coints | $2.49 | + |fifty_coins | $4.99 | + +4. Publish your build to the testing channel. It may take up to a few hours to +process the build. Running a build before processing complete can result in +errors such as Google Play reporting that "this version of the application is +not enabled for in-app billing". +5. Add tester accounts to your game. This will allow you to test purchases and +subscriptions without being charged. Test accounts also have greatly reduced +subscription periods, allowing for easier testing of subscription features. + +--- + +## Enabling Play Games Services + +### 1. Set Up LogIn Credentioals +1. Go to the [Google Play Developer Console](https://play.google.com/apps/publish) +and create a new application. +2. Navigate to `Grow Users -> Play Games Services -> Setup and Management -> Configurations` +3. Generate a Game server credentials by making a credential of type Web Application. +5. Go to **Google Play Services** in **Unreal Engine** via `Project Settings -> Android -> Google Play Services` +6. Copy your **Crednetials** from the Play Console into the **Google Play Games Oauth Client ID Register for Game Server** field. + + + +### 2. Define Achievements +In the Play Games Services section of your Play Console entry +for your app, access the **Achievements** sections +to add the following achievements: + +**Achievements** +Name: `tk_achievement_drive` +Description: `Drive a while` +Initial State: `Revealed` +Incremental: `Unchecked` +Points: `5` + +Name: `tk_achievement_fuel` +Description: `Empty the fuel tank` +Initial State: `Revealed` +Incremental: `Unchecked` +Points: `5` + +Name: `tk_achievement_login` +Description: `LogIn 5 times` +Initial State: `Revealed` +Incremental: `Checked` +Points: `5` + +--- + +## Support + +If you've found any errors or bugs in this sample game, please +[file an issue](https://github.com/android/games-samples/issues). + +--- + +## Graphical Asset Credits +Assets provided by [Kenney.nl](https://kenney.nl/) under [Creative Commons Zero](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal.Target.cs b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal.Target.cs new file mode 100644 index 00000000..f7b68a32 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal.Target.cs @@ -0,0 +1,30 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TrivialKart_UnrealTarget : TargetRules +{ + public TrivialKart_UnrealTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V6; + IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_7; + ExtraModuleNames.Add("TrivialKart_Unreal"); + } +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/KartPawn.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/KartPawn.cpp new file mode 100644 index 00000000..c52ff7a2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/KartPawn.cpp @@ -0,0 +1,136 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Actors/KartPawn.h" + +#include "EnhancedInputComponent.h" +#include "PaperFlipbookComponent.h" +#include "Camera/CameraComponent.h" +#include "Components/BoxComponent.h" +#include "GameFramework/PlayerStart.h" +#include "GameFramework/SpringArmComponent.h" +#include "GameInstances/TrivialKartGameInstance.h" +#include "Infos/TrivialKartPlayerState.h" +#include "Kismet/GameplayStatics.h" +#include "Objects/TrivialKartSaveGame.h" + +// Sets default values +AKartPawn::AKartPawn() +{ + // Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = false; + + CollisionComponent = CreateDefaultSubobject(TEXT("CollisionComponent")); + CollisionComponent->SetCollisionProfileName(UCollisionProfile::Pawn_ProfileName); + CollisionComponent->InitBoxExtent(FVector(100.0f, 32.0f, 50.0f)); + + Sprite = CreateDefaultSubobject(TEXT("SpriteComponent")); + if (Sprite) + { + Sprite->AlwaysLoadOnClient = true; + Sprite->AlwaysLoadOnServer = true; + Sprite->bOwnerNoSee = false; + Sprite->bAffectDynamicIndirectLighting = true; + Sprite->PrimaryComponentTick.TickGroup = TG_PrePhysics; + Sprite->SetupAttachment(CollisionComponent); + static FName CollisionProfileName(TEXT("CharacterMesh")); + Sprite->SetCollisionProfileName(CollisionProfileName); + Sprite->SetGenerateOverlapEvents(false); + } + + SpringArm = CreateDefaultSubobject(TEXT("SpringArmComponent")); + SpringArm->SetupAttachment(RootComponent); + SpringArm->TargetArmLength = 400.0f; + SpringArm->SocketOffset = FVector(400.0f, 400.0f, 0.0f); + SpringArm->bUsePawnControlRotation = true; + + Camera = CreateDefaultSubobject(TEXT("CameraComponent")); + Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName); + Camera->SetRelativeRotation(FRotator(0.0f, -90.0f, 0.0f)); + Camera->bUsePawnControlRotation = false; + Camera->SetProjectionMode(ECameraProjectionMode::Orthographic); + Camera->SetOrthoWidth(400.0f); + +} + +// Called when the game starts or when spawned +void AKartPawn::BeginPlay() +{ + Super::BeginPlay(); + if (const TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + SwitchCar(Save->ActiveCarType); + } + } +} + +void AKartPawn::NotifyActorBeginOverlap(AActor* OtherActor) +{ + Super::NotifyActorBeginOverlap(OtherActor); + if (OtherActor->ActorHasTag("Finish")) + { + if (TWeakObjectPtr CurrentActor = + UGameplayStatics::GetActorOfClass(GetWorld(), APlayerStart::StaticClass()); + CurrentActor.IsValid()) + { + + SetActorLocation(CurrentActor->GetActorLocation()); + } + } +} + +// Called to bind functionality to input +void AKartPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + Super::SetupPlayerInputComponent(PlayerInputComponent); + + if (UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerInputComponent)) + { + // Moving + EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AKartPawn::Move); + } +} + +void AKartPawn::SwitchCar(const FString& CarName) +{ + if (CarTypes.Contains(CarName)) + { + Sprite->SetFlipbook(CarTypes[CarName]); + } +} + +void AKartPawn::Move() +{ + if (GetController() != nullptr) + { + if (TWeakObjectPtr CurrentPlayerState = + Cast(GetPlayerState()); CurrentPlayerState.IsValid()) + { + if (CurrentPlayerState->GetFuel() <= 0.0f) + return; + AddActorLocalOffset(FVector(MoveSpeed * GetWorld()->DeltaTimeSeconds, 0.0f, 0.0f)); + + CurrentPlayerState->ConsumeFuel(FuelConsumptionRate); + const float Distance = FMath::Abs(MoveSpeed * GetWorld()->DeltaTimeSeconds)/100; + CurrentPlayerState->AddDistance(Distance); + } + } +} + diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/TrivialKartHUD.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/TrivialKartHUD.cpp new file mode 100644 index 00000000..30262ae5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Actors/TrivialKartHUD.cpp @@ -0,0 +1,65 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Actors/TrivialKartHUD.h" + +#include "Blueprint/UserWidget.h" + +DEFINE_LOG_CATEGORY(LogTemplateHUD); + +void ATrivialKartHUD::BeginPlay() +{ + Super::BeginPlay(); + AddWidgetToScreen(EWidgetType::PlayBoard); +} + +void ATrivialKartHUD::AddWidgetToScreen(const EWidgetType WidgetType, int32 ZOrder) +{ + if (!WidgetTemplates.Contains(WidgetType)) + { +UE_LOG(LogTemplateHUD, Warning, TEXT("Widget template does not exist")); + return; + } + const TWeakObjectPtr CurrentWidget = CreateWidget(GetOwningPlayerController(), + WidgetTemplates[WidgetType]); + if (CurrentWidget.IsValid()) + { + CurrentWidget->AddToViewport(ZOrder); + ActiveWidgets.Emplace(WidgetType, CurrentWidget); + } +} + +void ATrivialKartHUD::RemoveWidgetFromScreen(const EWidgetType WidgetType) +{ + if (!ActiveWidgets.Contains(WidgetType)) + { + UE_LOG(LogTemplateHUD, Warning, TEXT("Widget is not on Screen")); + return; + } + ActiveWidgets[WidgetType]->RemoveFromParent(); + ActiveWidgets.Remove(WidgetType); +} + +UUserWidget* ATrivialKartHUD::GetWidgetOfType(const EWidgetType WidgetType) +{ + if (!ActiveWidgets.Contains(WidgetType)) + { + UE_LOG(LogTemplateHUD, Warning, TEXT("Active widget does not exist")); + return nullptr; + } + return ActiveWidgets[WidgetType].Get(); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Controllers/TrivialKartPlayerController.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Controllers/TrivialKartPlayerController.cpp new file mode 100644 index 00000000..7c0322e3 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Controllers/TrivialKartPlayerController.cpp @@ -0,0 +1,38 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Controllers/TrivialKartPlayerController.h" + +#include "EnhancedInputSubsystems.h" + +ATrivialKartPlayerController::ATrivialKartPlayerController() +{ + bShowMouseCursor = true; +} + +void ATrivialKartPlayerController::SetupInputComponent() +{ + Super::SetupInputComponent(); + if (IsLocalPlayerController()) + { + // Add Input Mapping Contexts + if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(GetLocalPlayer())) + { + Subsystem->AddMappingContext(DefaultMappingContext, 0); + } + } +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/GameInstances/TrivialKartGameInstance.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/GameInstances/TrivialKartGameInstance.cpp new file mode 100644 index 00000000..f22e9def --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/GameInstances/TrivialKartGameInstance.cpp @@ -0,0 +1,206 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "GameInstances/TrivialKartGameInstance.h" + +#include "OnlineSubsystem.h" +#include "OnlineSubsystemUtils.h" +#include "Interfaces/OnlineAchievementsInterface.h" +#include "Interfaces/OnlineIdentityInterface.h" +#include "Interfaces/OnlinePurchaseInterface.h" +#include "Kismet/GameplayStatics.h" +#include "Objects/TrivialKartSaveGame.h" + +DEFINE_LOG_CATEGORY(LogTemplateGameInstance); + +void UTrivialKartGameInstance::Init() +{ + Super::Init(); + InitiateAutoLogin(); +} + +void UTrivialKartGameInstance::InitiateAutoLogin() +{ + if (const IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld())) + { + IdentityInterface->AutoLogin(0); + IdentityInterface->AddOnLoginCompleteDelegate_Handle(0, + FOnLoginCompleteDelegate::CreateUObject(this, + &UTrivialKartGameInstance::OnLoginCompleted)); + } +} + +bool UTrivialKartGameInstance::GetLoginStatus() const +{ + if (const IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld())) + { + return IdentityInterface->GetLoginStatus(0) == ELoginStatus::LoggedIn; + } + return false; +} + +FString UTrivialKartGameInstance::GetPlayerName() const +{ + if (const IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld())) + { + return IdentityInterface->GetPlayerNickname(0); + } + return FString(); +} + +void UTrivialKartGameInstance::AddAchievementProgress(const float Progress, const FString& AchievementName) +{ + if (AchievementName.IsEmpty()) + return; + if (const IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld()); + IdentityInterface.IsValid()) + { + if (const IOnlineAchievementsPtr AchievementsInterface = + Online::GetAchievementsInterface(GetWorld()); AchievementsInterface.IsValid()) + { + FOnlineAchievement CurrentAchievement; + AchievementsInterface->GetCachedAchievement(*IdentityInterface->GetUniquePlayerId(0), AchievementName, CurrentAchievement); + if (CurrentAchievement.Progress < 100.0) + { + const float CurrentProgress = CurrentAchievement.Progress + Progress; + const FOnlineAchievementsWritePtr AchievementPtr = MakeShareable(new FOnlineAchievementsWrite()); + AchievementPtr->SetFloatStat(AchievementName, CurrentProgress); + FOnlineAchievementsWriteRef AchievementRef = AchievementPtr.ToSharedRef(); + AchievementsInterface->WriteAchievements(*IdentityInterface->GetUniquePlayerId(0), + AchievementRef); + } + } + } +} + +void UTrivialKartGameInstance::StartPurchasing(const FUniqueOfferId& PurchaseItemID, int32 Quantity, bool bIsConsumable) +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlineStoreV2Ptr StoreV2Interface = Subsystem->GetStoreV2Interface()) + { + if (const TSharedPtr CurrentOrder = StoreV2Interface->GetOffer(PurchaseItemID); + CurrentOrder.IsValid()) + { + if (const IOnlinePurchasePtr PurchaseInterface = + Subsystem->GetPurchaseInterface(); PurchaseInterface.IsValid()) + { + if (PurchaseInterface->IsAllowedToPurchase(*IdentityInterface->GetUniquePlayerId(0))) + { + FPurchaseCheckoutRequest CheckoutRequest; + + // Use the product ID from the Google Play Console (OfferId). + CheckoutRequest.AddPurchaseOffer( + "", + CurrentOrder->OfferId, + Quantity, + bIsConsumable + ); + PurchaseInterface->Checkout(*IdentityInterface->GetUniquePlayerId(0), + CheckoutRequest, + FOnPurchaseCheckoutComplete::CreateWeakLambda(this, + [this, Subsystem, IdentityInterface, PurchaseItemID, Quantity] + (const FOnlineError& OnlineError, const TSharedRef& PurchaseReceipt) + { + if (!OnlineError.WasSuccessful()) + return; + if (OnPurchaseReceived.IsBound()) + { + OnPurchaseReceived.Broadcast(PurchaseItemID, Quantity); + } + // The Purchase Token is passed as the ReceiptId to tell the platform which purchase to finalize (consume/acknowledge). + Subsystem->GetPurchaseInterface()->FinalizePurchase(*IdentityInterface->GetUniquePlayerId(0), PurchaseReceipt->TransactionId); + })); + } + } + } + } + } + } +} + +UTrivialKartSaveGame* UTrivialKartGameInstance::LoadGame() +{ + SaveGameInstance = Cast(UGameplayStatics::LoadGameFromSlot("TrivialKart", 0)); + if (!IsValid(SaveGameInstance)) + { + SaveGameInstance = Cast(UGameplayStatics::CreateSaveGameObject(SaveGameTemplate)); + } + return SaveGameInstance; +} + +void UTrivialKartGameInstance::SaveGame(UTrivialKartSaveGame* SaveData) +{ + if (!IsValid(SaveData)) + return; + UGameplayStatics::SaveGameToSlot(SaveData, "TrivialKart", 0); +} + +void UTrivialKartGameInstance::OnLoginCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, + const FString& Error) +{ +UE_LOG(LogTemplateGameInstance, Log, TEXT("Local User: %d of Unique ID: %s has logged in with Status: %s"), + LocalUserNum, *UserId.ToDebugString(), bWasSuccessful ? TEXT("Success") : *Error); + if (bWasSuccessful) + { + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlineAchievementsPtr AchievementsInterface = + Subsystem->GetAchievementsInterface()) + { + AchievementsInterface->QueryAchievements(*IdentityInterface->GetUniquePlayerId(0), + FOnQueryAchievementsCompleteDelegate::CreateUObject(this, + &UTrivialKartGameInstance::OnQueryAchievementsCompleted)); + } + if (const IOnlineStoreV2Ptr StoreInterface = Subsystem->GetStoreV2Interface()) + { + StoreInterface->QueryOffersById(*IdentityInterface->GetUniquePlayerId(0), StoreListItemIDs, + FOnQueryOnlineStoreOffersComplete::CreateUObject(this, &UTrivialKartGameInstance::OnQueryOnlineStoreOfferCompleted)); + } + } + } + } +} + +void UTrivialKartGameInstance::OnQueryAchievementsCompleted(const FUniqueNetId& UniqueNetId, bool bWasSuccessful) +{ + UE_LOG(LogTemplateGameInstance, Log, TEXT("Achievements Cached for User: %s has %s"), *UniqueNetId.ToString(), bWasSuccessful ? TEXT("Succeeded") : TEXT("Failed")); + if (bWasSuccessful) + { + AddAchievementProgress(20, LogInAchievementName); + } +} + +void UTrivialKartGameInstance::OnQueryOnlineStoreOfferCompleted(bool bWasSuccessful, + const TArray& OfferIds, const FString& Error) +{ + if (bWasSuccessful) + { + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineStoreV2Ptr StoreInterface = Subsystem->GetStoreV2Interface()) + { + StoreInterface->GetOffers(StoreOffers); + } + } + } +} + diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Infos/TrivialKartPlayerState.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Infos/TrivialKartPlayerState.cpp new file mode 100644 index 00000000..b7d791be --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Infos/TrivialKartPlayerState.cpp @@ -0,0 +1,169 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Infos/TrivialKartPlayerState.h" + +#include "GameInstances/TrivialKartGameInstance.h" +#include "Objects/TrivialKartSaveGame.h" + +void ATrivialKartPlayerState::BeginPlay() +{ + Super::BeginPlay(); + + Refuel(); + Distance = 0.0f; + + UpdateDistance(); + + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + CarsOwned = Save->CarsOwned; + CoinCount = Save->CurrentCoins; + } + CoinPurchaseHandle = Instance->OnPurchaseReceived.AddUObject(this, &ATrivialKartPlayerState::OnPurchaseReceived); + } +} + +void ATrivialKartPlayerState::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + Instance->OnPurchaseReceived.Remove(CoinPurchaseHandle); + } + Super::EndPlay(EndPlayReason); +} + +void ATrivialKartPlayerState::ConsumeFuel(const float FuelConsumption) +{ + Fuel -= FuelConsumption; + UpdateFuel(); + if (Fuel <= 0.0f) + { + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + Instance->AddAchievementProgress(100, FuelAchievementName); + } + } +} + +void ATrivialKartPlayerState::AddDistance(const float DistanceTravelled) +{ + Distance += DistanceTravelled; + UpdateDistance(); + if (Distance >= DistanceAchievementThreshold) + { + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + Instance->AddAchievementProgress(100, DistanceAchievementName); + } + } +} + +void ATrivialKartPlayerState::ConsumeCoins(const int CoinsUsed) +{ + CoinCount -= CoinsUsed; + if (CoinCount <= 0) + { + CoinCount = 0; + } + UpdateCoin(); +} + +void ATrivialKartPlayerState::AddCarToInventory(const FString& CarID) +{ + if (CarsOwned.Contains(CarID)) + return; + CarsOwned.Add(CarID); + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + Save->CarsOwned = CarsOwned; + Instance->SaveGame(Save.Get()); + } + } +} + +float ATrivialKartPlayerState::GetFuel() const +{ + return Fuel; +} + +float ATrivialKartPlayerState::GetDistance() const +{ + return Distance; +} + +int ATrivialKartPlayerState::GetCoinCount() const +{ + return CoinCount; +} + +void ATrivialKartPlayerState::Refuel() +{ + Fuel = 100.0f; + UpdateFuel(); +} + +#if UE_EDITOR +void ATrivialKartPlayerState::AddCoins(int CoinQuantity) +{ + CoinCount += CoinQuantity; + UpdateCoin(); +} +#endif + +void ATrivialKartPlayerState::UpdateFuel() +{ + const float FuelPercentage = Fuel / 100.0f; + OnFuelUpdated.ExecuteIfBound(FuelPercentage); +} + +void ATrivialKartPlayerState::UpdateDistance() +{ + OnDistanceUpdated.ExecuteIfBound(Distance); +} + +void ATrivialKartPlayerState::UpdateCoin() +{ + OnCoinUpdated.ExecuteIfBound(CoinCount); + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + Save->CurrentCoins = CoinCount; + Instance->SaveGame(Save.Get()); + } + } +} + +void ATrivialKartPlayerState::OnPurchaseReceived(const FString& PurchaseItemID, int Quantity) +{ + if (CoinOfferIDs.Contains(PurchaseItemID)) + { + CoinCount += Quantity; + UpdateCoin(); + } +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Objects/TrivialKartSaveGame.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Objects/TrivialKartSaveGame.cpp new file mode 100644 index 00000000..98531a14 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Objects/TrivialKartSaveGame.cpp @@ -0,0 +1,19 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Objects/TrivialKartSaveGame.h" + diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/GarageWidget.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/GarageWidget.cpp new file mode 100644 index 00000000..39bf3210 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/GarageWidget.cpp @@ -0,0 +1,87 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Widgets/GarageWidget.h" + +#include "Actors/TrivialKartHUD.h" +#include "Components/Button.h" +#include "Components/CheckBox.h" +#include "Components/WidgetSwitcher.h" + +void UGarageWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + BackButton->OnClicked.AddUniqueDynamic(this, &UGarageWidget::OnBackButtonClicked); + CheckBoxes.Empty(); + CheckBoxes.Add(KartCheckBox); + CheckBoxes.Add(LevelCheckBox); + KartCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UGarageWidget::OnKartBoxStateChanged); + LevelCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UGarageWidget::OnLevelBoxStateChange); +} + +void UGarageWidget::NativeDestruct() +{ + BackButton->OnClicked.RemoveDynamic(this, &UGarageWidget::OnBackButtonClicked); + KartCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UGarageWidget::OnKartBoxStateChanged); + LevelCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UGarageWidget::OnLevelBoxStateChange); + Super::NativeDestruct(); +} + +void UGarageWidget::OnBackButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::PlayBoard); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::Garage); + } + } +} + +void UGarageWidget::SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex) +{ + if (CheckBox == nullptr) + return; + if (bIsChecked) + { + ContentSwitcher->SetActiveWidgetIndex(ActiveWidgetIndex); + for (auto CurrentCheckBox : CheckBoxes) + { + if (CurrentCheckBox != CheckBox) + { + CurrentCheckBox->SetCheckedState(ECheckBoxState::Unchecked); + } + } + } + else + { + CheckBox->SetCheckedState(ECheckBoxState::Checked); + } +} + +void UGarageWidget::OnKartBoxStateChanged(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, KartCheckBox, 0); +} + +void UGarageWidget::OnLevelBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, LevelCheckBox, 1); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSLayoutText.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSLayoutText.cpp new file mode 100644 index 00000000..7b2faa64 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSLayoutText.cpp @@ -0,0 +1,24 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Widgets/PGSLayoutText.h" + +#include "Components/TextBlock.h" + +void UPGSLayoutText::SetPGSText(const FString& Property, const FString& Value) +{ + PGSText->SetText(FText::FromString(Property + " : " + Value)); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSWidget.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSWidget.cpp new file mode 100644 index 00000000..ea35e032 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PGSWidget.cpp @@ -0,0 +1,140 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Widgets/PGSWidget.h" + +#include "OnlineSubsystem.h" +#include "OnlineSubsystemUtils.h" +#include "Actors/TrivialKartHUD.h" +#include "Components/Button.h" +#include "Components/CheckBox.h" +#include "Components/ScrollBox.h" +#include "Components/VerticalBox.h" +#include "Components/WidgetSwitcher.h" +#include "GameInstances/TrivialKartGameInstance.h" +#include "Interfaces/OnlineAchievementsInterface.h" +#include "Widgets/PGSLayoutText.h" + +void UPGSWidget::NativeConstruct() +{ + Super::NativeConstruct(); + BackButton->OnClicked.AddUniqueDynamic(this, &UPGSWidget::OnBackButtonClicked); + CheckBoxes.Empty(); + CheckBoxes.Add(AuthenticationCheckBox); + CheckBoxes.Add(AchievementsCheckBox); + CheckBoxes.Add(LeaderboardCheckBox); + AuthenticationCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UPGSWidget::OnAuthCheckBoxStateChanged); + AchievementsCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UPGSWidget::OnAchievementBoxStateChange); + LeaderboardCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UPGSWidget::OnLeaderboardBoxStateChange); + if (TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + const FString AuthStatus = Instance->GetLoginStatus() ? FString("Logged In") : FString("Logged Out"); + if (const auto PgsAuthStatusText = Cast( + CreateWidget(this, PGSTextTemplate))) + { + PgsAuthStatusText->SetPGSText("Auth Status", AuthStatus); + AuthBox->AddChildToVerticalBox(PgsAuthStatusText); + } + if (const auto PgsUsernameText = Cast( + CreateWidget(this, PGSTextTemplate))) + { + PgsUsernameText->SetPGSText("Username", Instance->GetPlayerName()); + AuthBox->AddChildToVerticalBox(PgsUsernameText); + } + } + if (const IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld()); + IdentityInterface.IsValid()) + { + if (const IOnlineAchievementsPtr AchievementsInterface = + Online::GetAchievementsInterface(GetWorld()); AchievementsInterface.IsValid()) + { + TArray Achievements; + if (AchievementsInterface->GetCachedAchievements( + *IdentityInterface->GetUniquePlayerId(0), Achievements) + == EOnlineCachedResult::Success) + { + for (auto Achievement : Achievements) + { + if (auto PGSText = Cast( + CreateWidget(this, PGSTextTemplate))) + { + PGSText->SetPGSText(Achievement.Id, FString::Printf(TEXT("%.1f"), Achievement.Progress)); + AchievementsBox->AddChild(PGSText); + } + } + } + } + } +} + +void UPGSWidget::NativeDestruct() +{ + BackButton->OnClicked.RemoveDynamic(this, &UPGSWidget::OnBackButtonClicked); + AuthenticationCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UPGSWidget::OnAuthCheckBoxStateChanged); + AchievementsCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UPGSWidget::OnAchievementBoxStateChange); + LeaderboardCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UPGSWidget::OnLeaderboardBoxStateChange); + Super::NativeDestruct(); +} + +void UPGSWidget::OnBackButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::PlayBoard); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::PGS); + } + } +} + +void UPGSWidget::SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex) +{ + if (CheckBox == nullptr) + return; + if (bIsChecked) + { + ContentSwitcher->SetActiveWidgetIndex(ActiveWidgetIndex); + for (auto CurrentCheckBox : CheckBoxes) + { + if (CurrentCheckBox != CheckBox) + { + CurrentCheckBox->SetCheckedState(ECheckBoxState::Unchecked); + } + } + } + else + { + CheckBox->SetCheckedState(ECheckBoxState::Checked); + } +} + +void UPGSWidget::OnAuthCheckBoxStateChanged(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, AuthenticationCheckBox, 0); +} + +void UPGSWidget::OnAchievementBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, AchievementsCheckBox, 1); +} + +void UPGSWidget::OnLeaderboardBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, LeaderboardCheckBox, 2); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PlayBoardWidget.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PlayBoardWidget.cpp new file mode 100644 index 00000000..38a192b2 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/PlayBoardWidget.cpp @@ -0,0 +1,113 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "Widgets/PlayBoardWidget.h" + +#include "Actors/TrivialKartHUD.h" +#include "Components/Button.h" +#include "Components/ProgressBar.h" +#include "Components/TextBlock.h" +#include "Infos/TrivialKartPlayerState.h" + + +void UPlayBoardWidget::NativeConstruct() +{ + Super::NativeConstruct(); + GarageButton->OnClicked.AddUniqueDynamic(this, &ThisClass::OnGarageButtonClicked); + PGSButton->OnClicked.AddUniqueDynamic(this, &ThisClass::OnPGSButtonClicked); + StoreButton->OnClicked.AddUniqueDynamic(this, &ThisClass::OnStoreButtonClicked); + + if (TWeakObjectPtr PlayerState = Cast(GetOwningPlayerState()); PlayerState.IsValid()) + { + PlayerState->OnFuelUpdated.BindUObject(this, &UPlayBoardWidget::UpdateFuelBar); + PlayerState->OnDistanceUpdated.BindUObject(this, &UPlayBoardWidget::UpdateDistanceText); + PlayerState->OnCoinUpdated.BindUObject(this, &UPlayBoardWidget::UpdateCoinText); + const float FuelPercentage = PlayerState->GetFuel() / 100.0f; + UpdateFuelBar(FuelPercentage); + UpdateDistanceText(PlayerState->GetDistance()); + UpdateCoinText(PlayerState->GetCoinCount()); + } +} + +void UPlayBoardWidget::NativeDestruct() +{ + GarageButton->OnClicked.RemoveDynamic(this, &ThisClass::OnGarageButtonClicked); + PGSButton->OnClicked.RemoveDynamic(this, &ThisClass::OnPGSButtonClicked); + StoreButton->OnClicked.RemoveDynamic(this, &ThisClass::OnStoreButtonClicked); + + if (TWeakObjectPtr PlayerState = Cast(GetOwningPlayerState()); PlayerState.IsValid()) + { + PlayerState->OnFuelUpdated.Unbind(); + PlayerState->OnDistanceUpdated.Unbind(); + PlayerState->OnCoinUpdated.Unbind(); + } + Super::NativeDestruct(); +} + +void UPlayBoardWidget::OnGarageButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::Garage); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::PlayBoard); + } + } +} + +void UPlayBoardWidget::OnPGSButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::PGS); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::PlayBoard); + } + } +} + +void UPlayBoardWidget::OnStoreButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::Store); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::PlayBoard); + } + } +} + +void UPlayBoardWidget::UpdateFuelBar(const float FuelBarPercentage) const +{ + FuelBar->SetPercent(FuelBarPercentage); +} + +void UPlayBoardWidget::UpdateDistanceText(const float Distance) const +{ + DistanceText->SetText(FText::FromString(FString::FromInt(FMath::RoundToInt(Distance)))); +} + +void UPlayBoardWidget::UpdateCoinText(const int Quantity) const +{ + CoinText->SetText(FText::FromString(FString::FromInt(Quantity))); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/SelectableItem.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/SelectableItem.cpp new file mode 100644 index 00000000..7e21b556 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/SelectableItem.cpp @@ -0,0 +1,142 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Widgets/SelectableItem.h" + +#include "Actors/KartPawn.h" +#include "Components/Button.h" +#include "GameInstances/TrivialKartGameInstance.h" +#include "Infos/TrivialKartPlayerState.h" +#include "Objects/TrivialKartSaveGame.h" + +void USelectableItem::NativePreConstruct() +{ + Super::NativePreConstruct(); + SelectionButton->SetStyle(SelectionButtonStyle); +} + +void USelectableItem::NativeConstruct() +{ + Super::NativeConstruct(); + SelectionButton->OnClicked.AddUniqueDynamic(this, &USelectableItem::OnSelectionButtonClicked); + if (const TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + bool bIsOwned = Save->CarsOwned.Contains(CarType); + switch (SelectionOperationType) + { + case ESelectableOperationType::CoinPurchase: + { + SetIsEnabled(!bIsOwned); + } + break; + case ESelectableOperationType::ObjectSelection: + { + SetVisibility(bIsOwned ? ESlateVisibility::Visible : ESlateVisibility::Collapsed); + } + break; + } + } + } +} + +void USelectableItem::NativeDestruct() +{ + SelectionButton->OnClicked.RemoveDynamic(this, &USelectableItem::OnSelectionButtonClicked); + Super::NativeDestruct(); +} + +void USelectableItem::OnSelectionButtonClicked() +{ + switch (SelectionOperationType) + { + case ESelectableOperationType::InAppPurchase: + { +#if UE_EDITOR + switch (PurchaseObject) + { + case EPurchaseObject::Coin: + if (PurchaseObject == EPurchaseObject::Coin) + { + if (const TWeakObjectPtr PlayerState = Cast(GetOwningPlayerState()); + PlayerState.IsValid()) + { + PlayerState->AddCoins(PurchaseQuantity); + } + } + break; + } +#endif + if (const TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + Instance->StartPurchasing(PurchaseID, PurchaseQuantity, bIsConsumable); + } + } + break; + case ESelectableOperationType::CoinPurchase: + { + if (const TWeakObjectPtr PlayerState = Cast(GetOwningPlayerState()); + PlayerState.IsValid()) + { + if (PlayerState->GetCoinCount() >= CoinQuantity) + { + switch (PurchaseObject) + { + case EPurchaseObject::Car: + { + if (CarType.IsEmpty()) + return; + PlayerState->AddCarToInventory(CarType); + SetIsEnabled(false); + } + break; + case EPurchaseObject::Fuel: + { + PlayerState->Refuel(); + } + break; + } + PlayerState->ConsumeCoins(CoinQuantity); + } + } + } + break; + case ESelectableOperationType::ObjectSelection: + { + if (IsValid(GetOwningPlayer())) + { + if (TWeakObjectPtr Pawn = Cast(GetOwningPlayer()->GetPawn()); + Pawn.IsValid()) + { + Pawn->SwitchCar(CarType); + if (const TWeakObjectPtr Instance = Cast(GetGameInstance()); + Instance.IsValid()) + { + if (TWeakObjectPtr Save = Instance->LoadGame(); Save.IsValid()) + { + Save->ActiveCarType = CarType; + Instance->SaveGame(Save.Get()); + } + } + } + } + } + break; + } +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/StoreWidget.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/StoreWidget.cpp new file mode 100644 index 00000000..91fd105c --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Private/Widgets/StoreWidget.cpp @@ -0,0 +1,103 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Widgets/StoreWidget.h" + +#include "Actors/TrivialKartHUD.h" +#include "Components/Button.h" +#include "Components/CheckBox.h" +#include "Components/WidgetSwitcher.h" + +void UStoreWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + BackButton->OnClicked.AddUniqueDynamic(this, &UStoreWidget::OnBackButtonClicked); + CheckBoxes.Empty(); + CheckBoxes.Add(FuelCheckBox); + CheckBoxes.Add(CoinCheckBox); + CheckBoxes.Add(CarCheckBox); + CheckBoxes.Add(SubscriptionCheckBox); + FuelCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UStoreWidget::OnFuelBoxStateChanged); + CoinCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UStoreWidget::OnCoinBoxStateChange); + CarCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UStoreWidget::OnCarBoxStateChange); + SubscriptionCheckBox->OnCheckStateChanged.AddUniqueDynamic(this, &UStoreWidget::OnSubscriptionBoxStateChange); +} + +void UStoreWidget::NativeDestruct() +{ + BackButton->OnClicked.RemoveDynamic(this, &UStoreWidget::OnBackButtonClicked); + FuelCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UStoreWidget::OnFuelBoxStateChanged); + CoinCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UStoreWidget::OnCoinBoxStateChange); + CarCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UStoreWidget::OnCarBoxStateChange); + SubscriptionCheckBox->OnCheckStateChanged.RemoveDynamic(this, &UStoreWidget::OnSubscriptionBoxStateChange); + CheckBoxes.Empty(); + Super::NativeDestruct(); +} + +void UStoreWidget::OnBackButtonClicked() +{ + if (TWeakObjectPtr PlayerController = GetOwningPlayer(); PlayerController.IsValid()) + { + if (const TWeakObjectPtr CurrentHUD = Cast(PlayerController->GetHUD()); + CurrentHUD.IsValid()) + { + CurrentHUD->AddWidgetToScreen(EWidgetType::PlayBoard); + CurrentHUD->RemoveWidgetFromScreen(EWidgetType::Store); + } + } +} + +void UStoreWidget::SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex) +{ + if (CheckBox == nullptr) + return; + if (bIsChecked) + { + ContentSwitcher->SetActiveWidgetIndex(ActiveWidgetIndex); + for (auto CurrentCheckBox : CheckBoxes) + { + if (CurrentCheckBox != CheckBox) + { + CurrentCheckBox->SetCheckedState(ECheckBoxState::Unchecked); + } + } + } + else + { + CheckBox->SetCheckedState(ECheckBoxState::Checked); + } +} + +void UStoreWidget::OnFuelBoxStateChanged(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, FuelCheckBox, 0); +} + +void UStoreWidget::OnCoinBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, CoinCheckBox, 1); +} + +void UStoreWidget::OnCarBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, CarCheckBox, 2); +} + +void UStoreWidget::OnSubscriptionBoxStateChange(bool bIsChecked) +{ + SetCheckBoxState(bIsChecked, SubscriptionCheckBox, 3); +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/KartPawn.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/KartPawn.h new file mode 100644 index 00000000..48525fb1 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/KartPawn.h @@ -0,0 +1,79 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Pawn.h" +#include "KartPawn.generated.h" + +class UPaperFlipbook; +struct FInputActionValue; +class UBoxComponent; +class UInputAction; +class UPaperFlipbookComponent; +class UCameraComponent; +class USpringArmComponent; + +UCLASS() +class TRIVIALKART_UNREAL_API AKartPawn : public APawn +{ + GENERATED_BODY() + +private: + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + TObjectPtr CollisionComponent; + + UPROPERTY(Category = Character, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true")) + TObjectPtr Sprite; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + TObjectPtr SpringArm; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + TObjectPtr Camera; + + UPROPERTY(EditAnywhere, Category ="Input|Input Mappings") + TObjectPtr MoveAction; + + UPROPERTY(EditAnywhere, Category ="Car|Movement") + float MoveSpeed; + + UPROPERTY(EditAnywhere, Category ="Car|Movement") + float FuelConsumptionRate; + + UPROPERTY(EditAnywhere, Category ="Car") + TMap CarTypes; + +public: + // Sets default values for this pawn's properties + AKartPawn(); + + // Called when the game starts or when spawned + virtual void BeginPlay() override; + + virtual void NotifyActorBeginOverlap(AActor* OtherActor) override; + + // Called to bind functionality to input + virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; + + void SwitchCar(const FString& CarName); + +protected: + virtual void Move(); + +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/TrivialKartHUD.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/TrivialKartHUD.h new file mode 100644 index 00000000..2e488483 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Actors/TrivialKartHUD.h @@ -0,0 +1,60 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/HUD.h" +#include "TrivialKartHUD.generated.h" + + +DECLARE_LOG_CATEGORY_EXTERN(LogTemplateHUD, Log, All); + +UENUM(BlueprintType) +enum class EWidgetType : uint8 +{ + None, + PlayBoard, + Garage, + PGS, + Store +}; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API ATrivialKartHUD : public AHUD +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere) + TMap> WidgetTemplates; + + UPROPERTY() + TMap> ActiveWidgets; + +public: + virtual void BeginPlay() override; + + void AddWidgetToScreen(const EWidgetType WidgetType, int ZOrder = 0); + + void RemoveWidgetFromScreen(const EWidgetType WidgetType); + + UUserWidget* GetWidgetOfType(const EWidgetType WidgetType); + + +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Controllers/TrivialKartPlayerController.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Controllers/TrivialKartPlayerController.h new file mode 100644 index 00000000..6d011734 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Controllers/TrivialKartPlayerController.h @@ -0,0 +1,38 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "TrivialKartPlayerController.generated.h" + +class UInputMappingContext; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API ATrivialKartPlayerController : public APlayerController +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, Category ="Input|Input Mappings") + TObjectPtr DefaultMappingContext; + +public: + ATrivialKartPlayerController(); + + virtual void SetupInputComponent() override; +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/GameInstances/TrivialKartGameInstance.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/GameInstances/TrivialKartGameInstance.h new file mode 100644 index 00000000..36641ab4 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/GameInstances/TrivialKartGameInstance.h @@ -0,0 +1,82 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#pragma once + +#include "CoreMinimal.h" +#include "Interfaces/OnlineExternalUIInterface.h" +#include "Interfaces/OnlineStoreInterfaceV2.h" +#include "Kismet/BlueprintPlatformLibrary.h" +#include "TrivialKartGameInstance.generated.h" + +class USaveGame; +class UTrivialKartSaveGame; +DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPurchase, const FUniqueOfferId&, const int); +class FPurchaseReceipt; +DECLARE_LOG_CATEGORY_EXTERN(LogTemplateGameInstance, Log, All); +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UTrivialKartGameInstance : public UPlatformGameInstance +{ + GENERATED_BODY() + +public: + FOnPurchase OnPurchaseReceived; + + virtual void Init() override; + + UFUNCTION(BlueprintCallable, Category = "GameInstance|Authentication") + void InitiateAutoLogin(); + + UFUNCTION(BlueprintCallable, Category = "GameInstance|Authentication") + bool GetLoginStatus() const; + + UFUNCTION(BlueprintCallable, Category = "GameInstance|Authentication") + FString GetPlayerName() const; + + void AddAchievementProgress(const float Progress, const FString& AchievementName); + void StartPurchasing(const FString& OfferID, const int32 Quantity, bool bIsConsumable); + + UTrivialKartSaveGame* LoadGame(); + void SaveGame(UTrivialKartSaveGame* SaveData); + +protected: + UPROPERTY(EditAnywhere) + TArray StoreListItemIDs; + + TArray StoreOffers; + + UPROPERTY(EditAnywhere) + FString LogInAchievementName; + + UPROPERTY(EditAnywhere) + TSubclassOf SaveGameTemplate; + + UPROPERTY() + UTrivialKartSaveGame* SaveGameInstance; + +private: + void OnLoginCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, + const FString& Error); + + void OnQueryAchievementsCompleted(const FUniqueNetId& UniqueNetId, bool bWasSuccessful); + + void OnQueryOnlineStoreOfferCompleted(bool bWasSuccessful, const TArray& OfferIds, const FString& Error); + +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Infos/TrivialKartPlayerState.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Infos/TrivialKartPlayerState.h new file mode 100644 index 00000000..b4573c2b --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Infos/TrivialKartPlayerState.h @@ -0,0 +1,91 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerState.h" +#include "TrivialKartPlayerState.generated.h" + +DECLARE_DELEGATE_OneParam(FDistanceUpdated, const float); +DECLARE_DELEGATE_OneParam(FFuelUpdated, const float); +DECLARE_DELEGATE_OneParam(FCoinUpdated, const int); + +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API ATrivialKartPlayerState : public APlayerState +{ + GENERATED_BODY() + + float Fuel; + + float Distance; + + int CoinCount; + + UPROPERTY(EditAnywhere) + TArray CarsOwned; + + UPROPERTY(EditAnywhere) + FString FuelAchievementName; + + UPROPERTY(EditAnywhere) + FString DistanceAchievementName; + + UPROPERTY(EditAnywhere) + FString DistanceAchievementID; + + UPROPERTY(EditAnywhere) + float DistanceAchievementThreshold; + + UPROPERTY(EditAnywhere) + TArray CoinOfferIDs; + + FDelegateHandle CoinPurchaseHandle; + +public: + virtual void BeginPlay() override; + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; + + void ConsumeFuel(const float FuelConsumption); + void AddDistance(const float DistanceTravelled); + void ConsumeCoins(const int CoinsUsed); + void AddCarToInventory(const FString& CarID); + + float GetFuel() const; + float GetDistance() const; + int GetCoinCount() const; + + void Refuel(); + + FDistanceUpdated OnDistanceUpdated; + FFuelUpdated OnFuelUpdated; + FCoinUpdated OnCoinUpdated; + +#if UE_EDITOR + void AddCoins(int CoinQuantity); +#endif + +private: + void UpdateFuel(); + void UpdateDistance(); + void UpdateCoin(); + + UFUNCTION() + void OnPurchaseReceived(const FString& PurchaseItemID, int Quantity); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Objects/TrivialKartSaveGame.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Objects/TrivialKartSaveGame.h new file mode 100644 index 00000000..44d3fb9f --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Objects/TrivialKartSaveGame.h @@ -0,0 +1,41 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/SaveGame.h" +#include "TrivialKartSaveGame.generated.h" + +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UTrivialKartSaveGame : public USaveGame +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere) + int CurrentCoins; + + UPROPERTY(EditAnywhere) + TArray CarsOwned; + + UPROPERTY(EditAnywhere) + FString ActiveCarType; + +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/GarageWidget.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/GarageWidget.h new file mode 100644 index 00000000..b880011d --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/GarageWidget.h @@ -0,0 +1,61 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "GarageWidget.generated.h" + +class UWidgetSwitcher; +class UCheckBox; +class UButton; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UGarageWidget : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr BackButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr KartCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr LevelCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr ContentSwitcher; + +protected: + UPROPERTY() + TArray CheckBoxes; +public: + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + +private: + UFUNCTION() + void OnBackButtonClicked(); + void SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex); + UFUNCTION() + void OnKartBoxStateChanged(bool bIsChecked); + UFUNCTION() + void OnLevelBoxStateChange(bool bIsChecked); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSLayoutText.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSLayoutText.h new file mode 100644 index 00000000..f16de245 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSLayoutText.h @@ -0,0 +1,36 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "PGSLayoutText.generated.h" + +class UTextBlock; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UPGSLayoutText : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr PGSText; + +public: + void SetPGSText(const FString& Property, const FString& Value); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSWidget.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSWidget.h new file mode 100644 index 00000000..500a3ed5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PGSWidget.h @@ -0,0 +1,81 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "Components/TextBlock.h" +#include "PGSWidget.generated.h" + +class UVerticalBox; +class UPGSLayoutText; +class UScrollBox; +class UWidgetSwitcher; +class UCheckBox; +class UButton; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UPGSWidget : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr BackButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr AuthenticationCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr AchievementsCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr LeaderboardCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr ContentSwitcher; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr AuthBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr AchievementsBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr LeaderboardBox; + + UPROPERTY(EditAnywhere) + TSubclassOf PGSTextTemplate; + +protected: + UPROPERTY() + TArray CheckBoxes; +public: + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + +private: + UFUNCTION() + void OnBackButtonClicked(); + void SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex); + UFUNCTION() + void OnAuthCheckBoxStateChanged(bool bIsChecked); + UFUNCTION() + void OnAchievementBoxStateChange(bool bIsChecked); + UFUNCTION() + void OnLeaderboardBoxStateChange(bool bIsChecked); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PlayBoardWidget.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PlayBoardWidget.h new file mode 100644 index 00000000..6bdc11cf --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/PlayBoardWidget.h @@ -0,0 +1,66 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "PlayBoardWidget.generated.h" + +class UProgressBar; +class UTextBlock; +class UButton; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UPlayBoardWidget : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr GarageButton; + UPROPERTY(meta=(BindWidget)) + TObjectPtr PGSButton; + UPROPERTY(meta=(BindWidget)) + TObjectPtr StoreButton; + UPROPERTY(meta=(BindWidget)) + TObjectPtr DistanceText; + UPROPERTY(meta=(BindWidget)) + TObjectPtr CoinText; + UPROPERTY(meta=(BindWidget)) + TObjectPtr FuelBar; + +public: + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + +private: + UFUNCTION() + void OnGarageButtonClicked(); + UFUNCTION() + void OnPGSButtonClicked(); + UFUNCTION() + void OnStoreButtonClicked(); + + UFUNCTION() + void UpdateFuelBar(const float FuelBarPercentage) const; + UFUNCTION() + void UpdateDistanceText(const float Distance) const; + UFUNCTION() + void UpdateCoinText(const int Quantity) const; +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/SelectableItem.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/SelectableItem.h new file mode 100644 index 00000000..393dd662 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/SelectableItem.h @@ -0,0 +1,86 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "SelectableItem.generated.h" + + +UENUM() +enum class ESelectableOperationType : uint8 +{ + None, + InAppPurchase, + CoinPurchase, + ObjectSelection, +}; + +UENUM() +enum class EPurchaseObject : uint8 +{ + None, + Fuel, + Car, + Coin +}; +class UButtonWidgetStyle; +class UButton; +class SButton; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API USelectableItem : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr SelectionButton; + + UPROPERTY(EditAnywhere) + FButtonStyle SelectionButtonStyle; + + UPROPERTY(EditAnywhere) + ESelectableOperationType SelectionOperationType; + + UPROPERTY(EditAnywhere, meta = (EditCondition = "SelectionOperationType == ESelectableOperationType::InAppPurchase", EditConditionHides)) + FString PurchaseID; + + UPROPERTY(EditAnywhere, meta = (EditCondition = "SelectionOperationType == ESelectableOperationType::InAppPurchase", EditConditionHides)) + int PurchaseQuantity; + + UPROPERTY(EditAnywhere, meta = (EditCondition = "SelectionOperationType == ESelectableOperationType::InAppPurchase", EditConditionHides)) + bool bIsConsumable; + + UPROPERTY(EditAnywhere, meta = (EditCondition = "SelectionOperationType == ESelectableOperationType::CoinPurchase", EditConditionHides)) + int CoinQuantity; + + UPROPERTY(EditAnywhere) + EPurchaseObject PurchaseObject; + + UPROPERTY(EditAnywhere, meta = (EditCondition = "PurchaseObject == EPurchaseObject::Car", EditConditionHides)) + FString CarType; + +public: + virtual void NativePreConstruct() override; + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + + UFUNCTION() + void OnSelectionButtonClicked(); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/StoreWidget.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/StoreWidget.h new file mode 100644 index 00000000..547c5ad4 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/Public/Widgets/StoreWidget.h @@ -0,0 +1,70 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "StoreWidget.generated.h" + +class UWidgetSwitcher; +class UCheckBox; +class UButton; +/** + * + */ +UCLASS() +class TRIVIALKART_UNREAL_API UStoreWidget : public UUserWidget +{ + GENERATED_BODY() + + UPROPERTY(meta=(BindWidget)) + TObjectPtr BackButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr FuelCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr CoinCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr CarCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr SubscriptionCheckBox; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr ContentSwitcher; + +protected: + UPROPERTY() + TArray CheckBoxes; +public: + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + +private: + UFUNCTION() + void OnBackButtonClicked(); + void SetCheckBoxState(bool bIsChecked, UCheckBox* CheckBox, int ActiveWidgetIndex); + UFUNCTION() + void OnFuelBoxStateChanged(bool bIsChecked); + UFUNCTION() + void OnCoinBoxStateChange(bool bIsChecked); + UFUNCTION() + void OnCarBoxStateChange(bool bIsChecked); + UFUNCTION() + void OnSubscriptionBoxStateChange(bool bIsChecked); +}; diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs new file mode 100644 index 00000000..cb147ee5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs @@ -0,0 +1,47 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +using UnrealBuildTool; + +public class TrivialKart_Unreal : ModuleRules +{ + public TrivialKart_Unreal(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { + "Core", + "CoreUObject", + "Engine", + "InputCore", + "EnhancedInput", + "Paper2D", + "Slate", + "SlateCore" + }); + + PrivateDependencyModuleNames.AddRange(new string[] { + "OnlineSubsystem", + "OnlineSubsystemUtils" + }); + + if (Target.Platform == UnrealTargetPlatform.Android) + { + DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay"); + } + } +} diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.cpp b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.cpp new file mode 100644 index 00000000..cb197a12 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.cpp @@ -0,0 +1,21 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "TrivialKart_Unreal.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, TrivialKart_Unreal, "TrivialKart_Unreal" ); diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.h b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.h new file mode 100644 index 00000000..053b0d5a --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.h @@ -0,0 +1,21 @@ +/* +* Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#pragma once + +#include "CoreMinimal.h" + diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_UnrealEditor.Target.cs b/trivialkart/trivialkart_unreal/Source/TrivialKart_UnrealEditor.Target.cs new file mode 100644 index 00000000..eba0a3eb --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_UnrealEditor.Target.cs @@ -0,0 +1,30 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +using UnrealBuildTool; +using System.Collections.Generic; + +public class TrivialKart_UnrealEditorTarget : TargetRules +{ + public TrivialKart_UnrealEditorTarget( TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V6; + IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_7; + ExtraModuleNames.Add("TrivialKart_Unreal"); + } +} diff --git a/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject b/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject new file mode 100644 index 00000000..a0069640 --- /dev/null +++ b/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject @@ -0,0 +1,26 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.7", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "TrivialKart_Unreal", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine", + "UMG" + ] + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + } + ] +} \ No newline at end of file diff --git a/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject.DotSettings.user b/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject.DotSettings.user new file mode 100644 index 00000000..2d5c57b5 --- /dev/null +++ b/trivialkart/trivialkart_unreal/TrivialKart_Unreal.uproject.DotSettings.user @@ -0,0 +1,6 @@ + + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded \ No newline at end of file