commit ba14820cddaae4b4114469e89b9c5a11c26f96ad Author: Jordonbc Date: Tue Apr 17 23:43:50 2018 +0100 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3e8f1d6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +Content/** filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4334a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +Binaries +DerivedDataCache +Intermediate +Saved +.vscode +.vs +*.VC.db +*.opensdf +*.opendb +*.sdf +*.sln +*.suo +*.xcodeproj +*.xcworkspace \ No newline at end of file diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini new file mode 100644 index 0000000..139597f --- /dev/null +++ b/Config/DefaultEditor.ini @@ -0,0 +1,2 @@ + + diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini new file mode 100644 index 0000000..4bdde4f --- /dev/null +++ b/Config/DefaultEngine.ini @@ -0,0 +1,83 @@ +[URL] + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Maps/Game.Game +GameDefaultMap=/Game/Maps/Game.Game +GlobalDefaultGameMode=/Game/FirstPersonBP/Blueprints/FirstPersonGameMode.FirstPersonGameMode_C + +[/Script/Engine.GarbageCollectionSettings] +gc.TimeBetweenPurgingPendingKillObjects=60.000000 +gc.ActorClusteringEnabled=True +gc.BlueprintClusteringEnabled=True +gc.MergeGCClusters=True + +[/Script/Engine.RendererSettings] +r.ReflectionCaptureResolution=64 +r.DefaultFeature.AntiAliasing=3 +r.DefaultFeature.LensFlare=True +r.DefaultFeature.AutoExposure=False + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +Compiler=VisualStudio2017 +-TargetedRHIs=PCD3D_SM5 +-TargetedRHIs=PCD3D_SM4 ++TargetedRHIs=SF_VULKAN_SM5 +MinimumOSVersion=MSOS_Vista +AudioDevice= +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +ReverbPlugin= +OcclusionPlugin= + +[/Script/Engine.PhysicsSettings] +DefaultGravityZ=-980.000000 +DefaultTerminalVelocity=4000.000000 +DefaultFluidFriction=0.300000 +SimulateScratchMemorySize=262144 +RagdollAggregateThreshold=4 +TriangleMeshTriangleMinAreaThreshold=5.000000 +bEnableAsyncScene=False +bEnableShapeSharing=False +bEnablePCM=True +bEnableStabilization=False +bWarnMissingLocks=True +bEnable2DPhysics=False +LockedAxis=Invalid +DefaultDegreesOfFreedom=Full3D +BounceThresholdVelocity=200.000000 +FrictionCombineMode=Average +RestitutionCombineMode=Average +MaxAngularVelocity=3600.000000 +MaxDepenetrationVelocity=0.000000 +ContactOffsetMultiplier=0.020000 +MinContactOffset=2.000000 +MaxContactOffset=8.000000 +bSimulateSkeletalMeshOnDedicatedServer=True +DefaultShapeComplexity=CTF_UseSimpleAndComplex +bDefaultHasComplexCollision=True +bSuppressFaceRemapTable=False +bSupportUVFromHitResults=False +bDisableActiveActors=False +bDisableCCD=False +bEnableEnhancedDeterminism=False +MaxPhysicsDeltaTime=0.033333 +bSubstepping=False +bSubsteppingAsync=False +MaxSubstepDeltaTime=0.016667 +MaxSubsteps=6 +SyncSceneSmoothingFactor=0.000000 +AsyncSceneSmoothingFactor=0.990000 +InitialAverageFrameRate=0.016667 +PhysXTreeRebuildRate=10 + + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini new file mode 100644 index 0000000..a94cd3e --- /dev/null +++ b/Config/DefaultGame.ini @@ -0,0 +1,9 @@ +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=46080C45406BC8BC3065A492454DFB11 + +[/Script/UnrealEd.ProjectPackagingSettings] +BlueprintNativizationMethod=Inclusive +BuildConfiguration=PPBC_Development +bGenerateChunks=True +ForDistribution=False + diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini new file mode 100644 index 0000000..cc6125d --- /dev/null +++ b/Config/DefaultInput.ini @@ -0,0 +1,68 @@ + +[/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="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="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="MotionController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Left_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Left_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Left_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",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)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +FOVScale=0.011110 +DoubleClickTime=0.200000 +bCaptureMouseOnLaunch=True +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +bDefaultViewportMouseLock=False +DefaultViewportMouseLockMode=LockOnCapture ++ActionMappings=(ActionName="Fire",Key=Gamepad_RightTrigger,bShift=False,bCtrl=False,bAlt=False,bCmd=False) ++ActionMappings=(ActionName="Fire",Key=LeftMouseButton,bShift=False,bCtrl=False,bAlt=False,bCmd=False) ++ActionMappings=(ActionName="Jump",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False) ++ActionMappings=(ActionName="Sprint",Key=LeftControl,bShift=False,bCtrl=False,bAlt=False,bCmd=False) ++AxisMappings=(AxisName="LookUp",Key=MouseY,Scale=-1.000000) ++AxisMappings=(AxisName="LookUpRate",Key=Gamepad_RightY,Scale=1.000000) ++AxisMappings=(AxisName="MoveForward",Key=Down,Scale=-1.000000) ++AxisMappings=(AxisName="MoveForward",Key=Gamepad_LeftY,Scale=1.000000) ++AxisMappings=(AxisName="MoveForward",Key=S,Scale=-1.000000) ++AxisMappings=(AxisName="MoveForward",Key=Up,Scale=1.000000) ++AxisMappings=(AxisName="MoveForward",Key=W,Scale=1.000000) ++AxisMappings=(AxisName="MoveRight",Key=A,Scale=-1.000000) ++AxisMappings=(AxisName="MoveRight",Key=D,Scale=1.000000) ++AxisMappings=(AxisName="MoveRight",Key=Gamepad_LeftX,Scale=1.000000) ++AxisMappings=(AxisName="Turn",Key=MouseX,Scale=1.000000) ++AxisMappings=(AxisName="TurnRate",Key=Gamepad_RightX,Scale=1.000000) ++AxisMappings=(AxisName="TurnRate",Key=Left,Scale=-1.000000) ++AxisMappings=(AxisName="TurnRate",Key=Right,Scale=1.000000) ++AxisMappings=(AxisName="Jump",Key=SpaceBar,Scale=1.000000) ++AxisMappings=(AxisName="Jump",Key=LeftShift,Scale=-1.000000) +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks +ConsoleKey=None +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + + diff --git a/Content/Blueprints/Block.uasset b/Content/Blueprints/Block.uasset new file mode 100644 index 0000000..5c82465 --- /dev/null +++ b/Content/Blueprints/Block.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf806afcd1e5e7d06a490bbf8f233e43f647393e53ec67b30ea9d398e4a8f657 +size 203667 diff --git a/Content/Blueprints/NewPlayerController.uasset b/Content/Blueprints/NewPlayerController.uasset new file mode 100644 index 0000000..31d78ed --- /dev/null +++ b/Content/Blueprints/NewPlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f70301dc240c9586324dbc3d4c53fe4467b0c0a749ee40002023609e439ad766 +size 443737 diff --git a/Content/Blueprints/VoxelActor_BP.uasset b/Content/Blueprints/VoxelActor_BP.uasset new file mode 100644 index 0000000..fab46bf --- /dev/null +++ b/Content/Blueprints/VoxelActor_BP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a369e46627f5336bff7761258f623e2f6d732e0c760612f63f2a9163951eae +size 180958 diff --git a/Content/FirstPerson/Animations/FirstPersonFire_Montage.uasset b/Content/FirstPerson/Animations/FirstPersonFire_Montage.uasset new file mode 100644 index 0000000..8ab194c --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPersonFire_Montage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c062929532060ee14ae4528e72cafbbf4ba4bb5669b1ed1c65b3f108e4c44698 +size 86930 diff --git a/Content/FirstPerson/Animations/FirstPerson_AnimBP.uasset b/Content/FirstPerson/Animations/FirstPerson_AnimBP.uasset new file mode 100644 index 0000000..c1ee2ab --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_AnimBP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58268ab61a53c4cea7f1a05ce95a06e7416c7b44921c96aedde59e5b4cc2a6f8 +size 262269 diff --git a/Content/FirstPerson/Animations/FirstPerson_Fire.uasset b/Content/FirstPerson/Animations/FirstPerson_Fire.uasset new file mode 100644 index 0000000..cf7d643 --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ab9d20f28673941764e9f5807e431b0f8635796b9d607688f11462583c71ed1 +size 99485 diff --git a/Content/FirstPerson/Animations/FirstPerson_Idle.uasset b/Content/FirstPerson/Animations/FirstPerson_Idle.uasset new file mode 100644 index 0000000..2279dc6 --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4194fc57aba12ec44e709e522e5ad42c839b7db25db3239aaec28c290016a2c8 +size 110866 diff --git a/Content/FirstPerson/Animations/FirstPerson_JumpEnd.uasset b/Content/FirstPerson/Animations/FirstPerson_JumpEnd.uasset new file mode 100644 index 0000000..92bb24a --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_JumpEnd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3ed79c7057e1d9d144727f0a858288a9e9860985800b66dd7f02cc457c8783 +size 96688 diff --git a/Content/FirstPerson/Animations/FirstPerson_JumpLoop.uasset b/Content/FirstPerson/Animations/FirstPerson_JumpLoop.uasset new file mode 100644 index 0000000..2941ff8 --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_JumpLoop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:805dc112872b470a1b3f2ab250a1faea364f804bcdc8cc7d49c18812a3a0b648 +size 103538 diff --git a/Content/FirstPerson/Animations/FirstPerson_JumpStart.uasset b/Content/FirstPerson/Animations/FirstPerson_JumpStart.uasset new file mode 100644 index 0000000..cd91349 --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_JumpStart.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82a743f4c3b7591471a992ce67536aa4c5f642520519975b302f5f918d26fdee +size 100662 diff --git a/Content/FirstPerson/Animations/FirstPerson_Run.uasset b/Content/FirstPerson/Animations/FirstPerson_Run.uasset new file mode 100644 index 0000000..a9e52f4 --- /dev/null +++ b/Content/FirstPerson/Animations/FirstPerson_Run.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44c9cb56c404e076572ad42410a39938ab3069224e8f0e1ebb797cc149d87385 +size 101621 diff --git a/Content/FirstPerson/Audio/FirstPersonTemplateWeaponFire02.uasset b/Content/FirstPerson/Audio/FirstPersonTemplateWeaponFire02.uasset new file mode 100644 index 0000000..4bab3ee --- /dev/null +++ b/Content/FirstPerson/Audio/FirstPersonTemplateWeaponFire02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e3d482181ac218e21bcdf8611dcdb0433fcb1daaec9430edc3aff9f1eda537f +size 305548 diff --git a/Content/FirstPerson/Character/Materials/M_UE4Man_Body.uasset b/Content/FirstPerson/Character/Materials/M_UE4Man_Body.uasset new file mode 100644 index 0000000..24775ef --- /dev/null +++ b/Content/FirstPerson/Character/Materials/M_UE4Man_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7eea3e7ae34812ba0d0549dd36f34fd456f1203356c931c7bb5c8ac474479b5 +size 148401 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset new file mode 100644 index 0000000..597fec3 --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b5e0f9ecba3c5fea0179ccb95432700fa2a5a842a33cf965279520ab29a1b7a +size 103617 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset new file mode 100644 index 0000000..81bf162 --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7183641ac47e6a14d3c62d03d51fa9eef79e8a2f7ead78710d5d71de4d373e81 +size 99182 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset new file mode 100644 index 0000000..df96a62 --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7474f68cd727a90a6775a4b1eaaca9e6847f2fca9b601d801cbacd061bcd7c7f +size 100571 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset new file mode 100644 index 0000000..135f21f --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98ea32fb2846846d0fdd5a2de0d6ca97488fa41b2859b098f96a35f8e0ebd6ec +size 104480 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset new file mode 100644 index 0000000..0b0d14d --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ca8fc4a0a03e2896276557886681adcddf1a4f69fd67b19291c1a551ec4235 +size 8754268 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset new file mode 100644 index 0000000..4e24f06 --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe1279bb5de2bf2536f2ea1bcc2896874d7602f7ac79f1a27ada7cc5f73bde35 +size 4448796 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset new file mode 100644 index 0000000..0e9268a --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9a4d04c0b986a4083dbe45e50e704ac16aa8275d5f9f8e799a1b88910bed008 +size 5504679 diff --git a/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset new file mode 100644 index 0000000..3dc48cd --- /dev/null +++ b/Content/FirstPerson/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483bb50529ecc683e7796a0b78aae3853b9de64a4e5c79788bf9aea14dfa4ecf +size 4903167 diff --git a/Content/FirstPerson/Character/Mesh/FirstPersonAnimBlueprint_Copy.uasset b/Content/FirstPerson/Character/Mesh/FirstPersonAnimBlueprint_Copy.uasset new file mode 100644 index 0000000..a687fa7 --- /dev/null +++ b/Content/FirstPerson/Character/Mesh/FirstPersonAnimBlueprint_Copy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad07ad95c39e9e07b93f9998a7d470aff0f736f13af7df7fa16177c829f28540 +size 2067 diff --git a/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms.uasset b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms.uasset new file mode 100644 index 0000000..6db34f2 --- /dev/null +++ b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:485071b96124b80b644061a4d18eefbdad16ba8822b1ad99ccfc9362f090c954 +size 1880328 diff --git a/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_PhysicsAsset.uasset b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_PhysicsAsset.uasset new file mode 100644 index 0000000..f76b398 --- /dev/null +++ b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:240b37a31c602b0e2cbd71e49aea5d3926cbd8793469ab08a6f6c7cb986c10ec +size 8587 diff --git a/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset new file mode 100644 index 0000000..c4e3a72 --- /dev/null +++ b/Content/FirstPerson/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4527805ca162362bc0414da18cf5ab2f12e3e8e5239fd40d129b06be6d79db11 +size 11876 diff --git a/Content/FirstPerson/Character/Textures/UE4_LOGO_CARD.uasset b/Content/FirstPerson/Character/Textures/UE4_LOGO_CARD.uasset new file mode 100644 index 0000000..54dd2b5 --- /dev/null +++ b/Content/FirstPerson/Character/Textures/UE4_LOGO_CARD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e8ff4286a531332fbd5690bbe41d1d35699db4c8477832c2edcd7e125b54a14 +size 87470 diff --git a/Content/FirstPerson/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset b/Content/FirstPerson/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset new file mode 100644 index 0000000..525a413 --- /dev/null +++ b/Content/FirstPerson/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09bf24519aa066b369086e2769d25eec38dc7884178b1c698886705a83f7a2ab +size 224648 diff --git a/Content/FirstPerson/Character/Textures/UE4_Mannequin__normals.uasset b/Content/FirstPerson/Character/Textures/UE4_Mannequin__normals.uasset new file mode 100644 index 0000000..d8445c9 --- /dev/null +++ b/Content/FirstPerson/Character/Textures/UE4_Mannequin__normals.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7eb427ccf0f56520f21053e1a92b91d057826f053840e7f291967c1ec46a263 +size 5532358 diff --git a/Content/FirstPerson/FPWeapon/Materials/M_FPGun.uasset b/Content/FirstPerson/FPWeapon/Materials/M_FPGun.uasset new file mode 100644 index 0000000..c86e041 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/M_FPGun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4123dc9bded3cc647aee20bcb40bb048d663839bf6b743849873c294afdde14b +size 154697 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset new file mode 100644 index 0000000..20eaaf8 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1478d796bbcfcafdd0015786046b50618a5ba275698730fdae233140f497ac35 +size 103723 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset new file mode 100644 index 0000000..8b398ea --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56815475b3e4755609990348b2678c22ebfc5e85ae884e3e609c82b0f92d4d4f +size 99007 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset new file mode 100644 index 0000000..acbce45 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f99cb9b9a3496cad597ccb4cdfedb6f469daa89acd1f767d4905f3250360b387 +size 114175 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Screen.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Screen.uasset new file mode 100644 index 0000000..e6cb752 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_Screen.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84f8ab6e7c2117ee8f7a6f9c20f3bb1d9d44ed4b2f8c95b84d50d7069ea57637 +size 96590 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset new file mode 100644 index 0000000..9cdbfd8 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b19abcee3c8cfe2d33bd0f24e3a61b859c7c6134c6acb6bd283f03217f33b74c +size 104649 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01.uasset new file mode 100644 index 0000000..4c4e70c --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fda38b7222415bde3a7b44e711c78feaf8f1a75bca0645c3ae4101c983a13216 +size 8753839 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset new file mode 100644 index 0000000..deeba26 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb297b2d2966af5cd4c4c019e3c65a81b55f31ac33657dcbc772851e35ea62c6 +size 4448460 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_FineRubber.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_FineRubber.uasset new file mode 100644 index 0000000..fb6172f --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_FineRubber.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0beafa8dc8fc41f7c027397c4706ab6d03176032a3539202b0f9ee094bd468be +size 6357504 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset new file mode 100644 index 0000000..c14aec2 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5729fdd2f679bde8db97927a11052d7df6bd6282508ce082076f2d09b04d1c40 +size 5504250 diff --git a/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset new file mode 100644 index 0000000..5cbf264 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edbfb81b6f0a67e846e3ea0c707f1e727041828192efa42590ee6aebeebb3db9 +size 4902831 diff --git a/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset new file mode 100644 index 0000000..83e442f --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983edf70d20c55d2981b4ce7098953425bd4830ceecf3ee01037081def4f94d9 +size 1247286 diff --git a/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset new file mode 100644 index 0000000..a65f1f8 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4278a0685e85f1b25929d2b7c09d9650d598747db33a8181fe2cbfbfddd5052d +size 3326 diff --git a/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset new file mode 100644 index 0000000..65c13c6 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed61f2912f36a1df1eed74fed1be43399f677258837a80acfa076d2298f8bfc2 +size 2931 diff --git a/Content/FirstPerson/FPWeapon/Textures/T_FPGun_M.uasset b/Content/FirstPerson/FPWeapon/Textures/T_FPGun_M.uasset new file mode 100644 index 0000000..672feb4 --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Textures/T_FPGun_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ff19857498031c943afcb0e715a6b5c0ef521cec80a9fc8b7666ead7254ecd +size 266945 diff --git a/Content/FirstPerson/FPWeapon/Textures/T_FPGun_N.uasset b/Content/FirstPerson/FPWeapon/Textures/T_FPGun_N.uasset new file mode 100644 index 0000000..f80858c --- /dev/null +++ b/Content/FirstPerson/FPWeapon/Textures/T_FPGun_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d69f0fc65a0795826eb997a5a1f7705fe286dbb0f4a3e1882a92f8536a4fe3b4 +size 2109563 diff --git a/Content/FirstPerson/Meshes/BaseMaterial.uasset b/Content/FirstPerson/Meshes/BaseMaterial.uasset new file mode 100644 index 0000000..cd7a1e5 --- /dev/null +++ b/Content/FirstPerson/Meshes/BaseMaterial.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcbd6a3c1739e97c3596de25ebba08289b524b48c8a1abfe8fecca2952d2f2ef +size 112794 diff --git a/Content/FirstPerson/Meshes/CubeMaterialOverride.uasset b/Content/FirstPerson/Meshes/CubeMaterialOverride.uasset new file mode 100644 index 0000000..9897a88 --- /dev/null +++ b/Content/FirstPerson/Meshes/CubeMaterialOverride.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f5aaa0ff6a237aa29dad4035cfccb45d96b849fc7ffa79303d6f2d2db0ca10b +size 90663 diff --git a/Content/FirstPerson/Meshes/FirstPersonProjectileMaterial.uasset b/Content/FirstPerson/Meshes/FirstPersonProjectileMaterial.uasset new file mode 100644 index 0000000..6a3fd53 --- /dev/null +++ b/Content/FirstPerson/Meshes/FirstPersonProjectileMaterial.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae77f487e35f5ae8177b50bcdfbde5dde195b8deec312f6a1c4e0737224f7af2 +size 96145 diff --git a/Content/FirstPerson/Meshes/FirstPersonProjectileMesh.uasset b/Content/FirstPerson/Meshes/FirstPersonProjectileMesh.uasset new file mode 100644 index 0000000..8d87c1e --- /dev/null +++ b/Content/FirstPerson/Meshes/FirstPersonProjectileMesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0cfc1cc76f525a6183fc1edf7bbbcd5c04884a5620df6e35c924ca2a19a8d96 +size 123407 diff --git a/Content/FirstPerson/Textures/FirstPersonCrosshair.uasset b/Content/FirstPerson/Textures/FirstPersonCrosshair.uasset new file mode 100644 index 0000000..7307ed3 --- /dev/null +++ b/Content/FirstPerson/Textures/FirstPersonCrosshair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd1ace857d141872dba993c6dca0b4cf7c379daed86cf645635ab3eabd15f7bf +size 3075 diff --git a/Content/FirstPersonBP/Blueprints/FirstPersonCharacter.uasset b/Content/FirstPersonBP/Blueprints/FirstPersonCharacter.uasset new file mode 100644 index 0000000..a7e114a --- /dev/null +++ b/Content/FirstPersonBP/Blueprints/FirstPersonCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02958acd9e5e98adf2ecb48a5d9089fb2917fad66c3f932b8a05ac4a5b3b1a5b +size 216326 diff --git a/Content/FirstPersonBP/Blueprints/FirstPersonGameMode.uasset b/Content/FirstPersonBP/Blueprints/FirstPersonGameMode.uasset new file mode 100644 index 0000000..ea096f5 --- /dev/null +++ b/Content/FirstPersonBP/Blueprints/FirstPersonGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86c0ab42b7a5cfaa9604e45b7639b6d263f6f2cf2b81db2a3225175796810be +size 13721 diff --git a/Content/FirstPersonBP/Blueprints/FirstPersonHUD.uasset b/Content/FirstPersonBP/Blueprints/FirstPersonHUD.uasset new file mode 100644 index 0000000..c709a49 --- /dev/null +++ b/Content/FirstPersonBP/Blueprints/FirstPersonHUD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe15336d78e92a94597c7de5ed4f543dc17cf9a840e5aeb66c8423ddb97f9ea4 +size 58477 diff --git a/Content/FirstPersonBP/Blueprints/Hud.uasset b/Content/FirstPersonBP/Blueprints/Hud.uasset new file mode 100644 index 0000000..cfa265e --- /dev/null +++ b/Content/FirstPersonBP/Blueprints/Hud.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24324b21fcba2e7dd20f25b641c7926fd4ffe2a9f0ef997cd43eeaa123649e9e +size 82235 diff --git a/Content/FirstPersonBP/FirstPersonOverview.uasset b/Content/FirstPersonBP/FirstPersonOverview.uasset new file mode 100644 index 0000000..780c6e5 --- /dev/null +++ b/Content/FirstPersonBP/FirstPersonOverview.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d2505863ba557de8720526434e4d39ba6dc027d070620bc1950500b1b092264 +size 32520 diff --git a/Content/FirstPersonBP/Maps/FirstPersonExampleMap.umap b/Content/FirstPersonBP/Maps/FirstPersonExampleMap.umap new file mode 100644 index 0000000..ed1c87f --- /dev/null +++ b/Content/FirstPersonBP/Maps/FirstPersonExampleMap.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a61d65c6c49869bfe20bda64b720caa7fabe69ccb1d97df12b019fb560c08bc3 +size 20794480 diff --git a/Content/Geometry/Meshes/1M_Cube.uasset b/Content/Geometry/Meshes/1M_Cube.uasset new file mode 100644 index 0000000..5919b81 --- /dev/null +++ b/Content/Geometry/Meshes/1M_Cube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:349245bef4ee3ebbf1922aabdaf5a098a7f26f0625d48f3dfcaeb3bb2e650415 +size 74831 diff --git a/Content/Geometry/Meshes/1M_Cube_Chamfer.uasset b/Content/Geometry/Meshes/1M_Cube_Chamfer.uasset new file mode 100644 index 0000000..6d0f85f --- /dev/null +++ b/Content/Geometry/Meshes/1M_Cube_Chamfer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e1b503aeb4bfb06c23f1291e529b4a3732d3893981bb6882bb60e48dc39ddd9 +size 107373 diff --git a/Content/Geometry/Meshes/CubeMaterial.uasset b/Content/Geometry/Meshes/CubeMaterial.uasset new file mode 100644 index 0000000..2c5928b --- /dev/null +++ b/Content/Geometry/Meshes/CubeMaterial.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77cd376502dd771075cddb753e267691c46a5e9a72f7b2f24af009ad8cd3d3ea +size 92461 diff --git a/Content/Geometry/Meshes/TemplateFloor.uasset b/Content/Geometry/Meshes/TemplateFloor.uasset new file mode 100644 index 0000000..38de739 --- /dev/null +++ b/Content/Geometry/Meshes/TemplateFloor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51aa7e4e6709c59e5bf9e0128df1c285f982c691b00b0f9b20385fc47ba35132 +size 96163 diff --git a/Content/Geometry/Plane_1M.uasset b/Content/Geometry/Plane_1M.uasset new file mode 100644 index 0000000..837c573 --- /dev/null +++ b/Content/Geometry/Plane_1M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc64dd136e6dc10d6a33a0b949f8987338fe0a8e58513a23bb056ec81eaf6377 +size 79709 diff --git a/Content/Maps/Game.umap b/Content/Maps/Game.umap new file mode 100644 index 0000000..0c0fcf9 --- /dev/null +++ b/Content/Maps/Game.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b114249a58e7ba81a95aed4c58a0c1bfa4dcf22c24fe5e895ebd335163e09bbf +size 734903 diff --git a/Content/Maps/Game_BuiltData.uasset b/Content/Maps/Game_BuiltData.uasset new file mode 100644 index 0000000..9eaed0d --- /dev/null +++ b/Content/Maps/Game_BuiltData.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:441e0e82cae3894a4f9058f1075f8fe45248048f8b58e129c46d0e9fe8f6847f +size 21663 diff --git a/Content/Materials/Blank.uasset b/Content/Materials/Blank.uasset new file mode 100644 index 0000000..1748478 --- /dev/null +++ b/Content/Materials/Blank.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f15a01233f80c64de44f5f2cd733b4b1cb50ba494c4b8314d4bd8e0b135f80b +size 83964 diff --git a/Content/Materials/Block.uasset b/Content/Materials/Block.uasset new file mode 100644 index 0000000..ec4efa9 --- /dev/null +++ b/Content/Materials/Block.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:609853247152c5416d892b658f352321128465bdd08f17410f0869914478e7db +size 121774 diff --git a/Content/Materials/Dirt.uasset b/Content/Materials/Dirt.uasset new file mode 100644 index 0000000..3eaba14 --- /dev/null +++ b/Content/Materials/Dirt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d17a4eb40c98102039d29f2b4e48047003eca8ee2846baba0570987ced7d37e +size 114596 diff --git a/Content/Materials/Grass.uasset b/Content/Materials/Grass.uasset new file mode 100644 index 0000000..a02286d --- /dev/null +++ b/Content/Materials/Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dcbecf08b7802ed146a45d78f6040987d9c547463179ff18e4478c2cd754467 +size 115148 diff --git a/Content/Materials/Leaf.uasset b/Content/Materials/Leaf.uasset new file mode 100644 index 0000000..8efba54 --- /dev/null +++ b/Content/Materials/Leaf.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d88be8835ec484874f0bf8554e321f28f816104482939d264d32518eefc54d3 +size 89652 diff --git a/Content/Materials/Stone.uasset b/Content/Materials/Stone.uasset new file mode 100644 index 0000000..cad3c1f --- /dev/null +++ b/Content/Materials/Stone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6462e38e284206fede243d3be8d3c29c0a85ad70fe5bdf0d056590cf75b11306 +size 97078 diff --git a/Content/Materials/Wood.uasset b/Content/Materials/Wood.uasset new file mode 100644 index 0000000..0afaeaf --- /dev/null +++ b/Content/Materials/Wood.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f0807e996fba2faca753281c58b33c14f5500ddf18437e44ad1a9f9443c137 +size 73009 diff --git a/Content/textures/Brown_Dirt_Grass_Side.uasset b/Content/textures/Brown_Dirt_Grass_Side.uasset new file mode 100644 index 0000000..90f625f --- /dev/null +++ b/Content/textures/Brown_Dirt_Grass_Side.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30bc3d16670fb6373bcd7714119a31c02b2dd7dcbb4f2721bf3881e5222ae85a +size 3904 diff --git a/Content/textures/Dirt/Brown_Dirt_16.uasset b/Content/textures/Dirt/Brown_Dirt_16.uasset new file mode 100644 index 0000000..bc111a3 --- /dev/null +++ b/Content/textures/Dirt/Brown_Dirt_16.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee79364a9bc4543e8c4c7fabc7548d1caa73f30003e0ef8fe7c35fca23982939 +size 3598 diff --git a/Content/textures/Grass/Colour/_Green_Grass_16.uasset b/Content/textures/Grass/Colour/_Green_Grass_16.uasset new file mode 100644 index 0000000..419b211 --- /dev/null +++ b/Content/textures/Grass/Colour/_Green_Grass_16.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ca11df9b4dd760f70a96552232582b00abd508ee79f0254e72ee21674cfb6d2 +size 3823 diff --git a/Content/textures/Leaf/Leaf.uasset b/Content/textures/Leaf/Leaf.uasset new file mode 100644 index 0000000..3cb0e5a --- /dev/null +++ b/Content/textures/Leaf/Leaf.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd4b4ed77f0e80aba1a0a9397e77a8cd4d32efce57ea1b12dd251379a8199c6 +size 59405 diff --git a/Content/textures/Stone/Stone_16.uasset b/Content/textures/Stone/Stone_16.uasset new file mode 100644 index 0000000..166eb5c --- /dev/null +++ b/Content/textures/Stone/Stone_16.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b120d29cf8ce215fd95684bf2b53afb8b0540264a67acc8d0f95fec1cf0e6206 +size 3908 diff --git a/Content/textures/Textures.uasset b/Content/textures/Textures.uasset new file mode 100644 index 0000000..08054c0 --- /dev/null +++ b/Content/textures/Textures.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cda1b73cb4ae462e1faed39fc184b772d909876ee92b3adf8a729ca48b538e60 +size 4891 diff --git a/Content/textures/Wood/Wood_16.uasset b/Content/textures/Wood/Wood_16.uasset new file mode 100644 index 0000000..cc85355 --- /dev/null +++ b/Content/textures/Wood/Wood_16.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6394c5c0a1637602deef23f69c8f26eb66ca6c441cf182c0ad1dfeaf082c92fe +size 3582 diff --git a/Minecraft.uproject b/Minecraft.uproject new file mode 100644 index 0000000..dd14d09 --- /dev/null +++ b/Minecraft.uproject @@ -0,0 +1,35 @@ +{ + "FileVersion": 3, + "EngineAssociation": "4.19", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "Minecraft", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine" + ] + } + ], + "Plugins": [ + { + "Name": "OculusVR", + "Enabled": false + }, + { + "Name": "SteamVR", + "Enabled": false + }, + { + "Name": "PluginPlayground", + "Enabled": false + } + ], + "TargetPlatforms": [ + "AllDesktop", + "WindowsNoEditor", + "HTML5" + ] +} \ No newline at end of file diff --git a/Source/Minecraft.Target.cs b/Source/Minecraft.Target.cs new file mode 100644 index 0000000..d691ad0 --- /dev/null +++ b/Source/Minecraft.Target.cs @@ -0,0 +1,14 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class MinecraftTarget : TargetRules +{ + public MinecraftTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + + ExtraModuleNames.AddRange( new string[] { "Minecraft" } ); + } +} diff --git a/Source/Minecraft/CPPController.cpp b/Source/Minecraft/CPPController.cpp new file mode 100644 index 0000000..811377c --- /dev/null +++ b/Source/Minecraft/CPPController.cpp @@ -0,0 +1,19 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "CPPController.h" + +void ACPPController::BeginPlay() +{ + Super::BeginPlay(); + + ChunkSize = ChunkLineElements * VoxelSize; + + ChunkSizeHalf = ChunkSize / 1; + +} + +void ACPPController::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} \ No newline at end of file diff --git a/Source/Minecraft/CPPController.h b/Source/Minecraft/CPPController.h new file mode 100644 index 0000000..2d88416 --- /dev/null +++ b/Source/Minecraft/CPPController.h @@ -0,0 +1,48 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "CPPController.generated.h" + +/** + * + */ +UCLASS() +class MINECRAFT_API ACPPController : public APlayerController +{ + GENERATED_BODY() + + public: + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float RandomSeed = 12345; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector2D chunkCoords; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray Chunks; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float ChunkX; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float ChunkY; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FVector CharacterPosition; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float ChunkSizeHalf; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float ChunkSize; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float VoxelSize = 100; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float ChunkLineElements = 20; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float RenderRange = 3; + + public: + virtual void Tick(float DeltaTime) override; + + + protected: + virtual void BeginPlay() override; + +}; diff --git a/Source/Minecraft/Minecraft.Build.cs b/Source/Minecraft/Minecraft.Build.cs new file mode 100644 index 0000000..ccb557a --- /dev/null +++ b/Source/Minecraft/Minecraft.Build.cs @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class Minecraft : ModuleRules +{ + public Minecraft(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); + + PrivateDependencyModuleNames.AddRange(new string[] { "ProceduralMeshComponent" }); + + // Uncomment if you are using Slate UI + // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + // PrivateDependencyModuleNames.Add("OnlineSubsystem"); + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/Source/Minecraft/Minecraft.cpp b/Source/Minecraft/Minecraft.cpp new file mode 100644 index 0000000..cbe7bcf --- /dev/null +++ b/Source/Minecraft/Minecraft.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Minecraft.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, Minecraft, "Minecraft" ); diff --git a/Source/Minecraft/Minecraft.h b/Source/Minecraft/Minecraft.h new file mode 100644 index 0000000..90aad9e --- /dev/null +++ b/Source/Minecraft/Minecraft.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/Source/Minecraft/MinecraftGameModeBase.cpp b/Source/Minecraft/MinecraftGameModeBase.cpp new file mode 100644 index 0000000..cc1103a --- /dev/null +++ b/Source/Minecraft/MinecraftGameModeBase.cpp @@ -0,0 +1,7 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "MinecraftGameModeBase.h" + + + + diff --git a/Source/Minecraft/MinecraftGameModeBase.h b/Source/Minecraft/MinecraftGameModeBase.h new file mode 100644 index 0000000..985d582 --- /dev/null +++ b/Source/Minecraft/MinecraftGameModeBase.h @@ -0,0 +1,20 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameModeBase.h" +#include "MinecraftGameModeBase.generated.h" + +/** + * + */ +UCLASS() +class MINECRAFT_API AMinecraftGameModeBase : public AGameModeBase +{ + GENERATED_BODY() + + + + +}; diff --git a/Source/Minecraft/VoxelActor.cpp b/Source/Minecraft/VoxelActor.cpp new file mode 100644 index 0000000..d761ddc --- /dev/null +++ b/Source/Minecraft/VoxelActor.cpp @@ -0,0 +1,435 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "VoxelActor.h" + +const int32 bTriangles[] = { 2, 1, 0, 0, 3, 2 }; +const FVector2D bUVs[] = {FVector2D(0.0, 0.0), FVector2D(0.0, 1.0), FVector2D(1.0, 1.0), FVector2D(1.0, 0.0)}; +const FVector bNormals0[] = {FVector(0, 0, 1), FVector(0, 0, 1), FVector(0, 0, 1), FVector(0, 0, 1)}; +const FVector bNormals1[] = { FVector(0, 0, -1), FVector(0, 0, -1), FVector(0, 0, -1), FVector(0, 0, -1) }; +const FVector bNormals2[] = { FVector(0, 1, 0), FVector(0, 1, 0), FVector(0, 1, 0), FVector(0, 1, 0) }; +const FVector bNormals3[] = { FVector(0, -1, 0), FVector(0, -1, 0), FVector(0, -1, 0), FVector(0, -1, 0) }; +const FVector bNormals4[] = { FVector(1, 0, 0), FVector(1, 0, 0), FVector(1, 0, 0), FVector(1, 0, 0) }; +const FVector bNormals5[] = { FVector(-1, 0, 0), FVector(-1, 0, 0), FVector(-1, 0, 0), FVector(-1, 0, 0) }; +const FVector bMask[] = { FVector(0, 0, 1), FVector(0, 0, -1), FVector(0, 1, 0), FVector(0, -1, 0), FVector(1, 0, 0), FVector(-1, 0, 0) }; + + + +// Sets default values +AVoxelActor::AVoxelActor() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = false; + +} + +// Called when the game starts or when spawned +void AVoxelActor::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AVoxelActor::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + +void AVoxelActor::OnConstruction(const FTransform & Transform) +{ + FName YourObjectName("Test"); + chunkZElements = 80; + chunkTotalElements = chunkLineElements * chunkLineElements * chunkZElements; + chunkLineElementsP2 = chunkLineElements * chunkLineElements; + VoxelSizeHalf = voxelSize / 2; + + FString string = "voxel_" + FString::FromInt(chunkXindex) + "+" + FString::FromInt(chunkYindex); + FName name = FName(*string); + proceduralComponent = NewObject(this, name); + proceduralComponent->RegisterComponent(); + + RootComponent = proceduralComponent; + RootComponent->SetWorldTransform(Transform); + + RootComponent->SetMobility(EComponentMobility::Static); + + + Super::OnConstruction(Transform); + + GenerateChunk(); + UpdateMesh(); +} + + +void AVoxelActor::GenerateChunk() +{ + FRandomStream RandomStream = FRandomStream(randomSeed); + TArray TreeCenters; + + chunkFields.SetNumUninitialized(chunkTotalElements); + + TArray noise = calculateNoise(); + + + for (int32 x = 0; x < chunkLineElements; x++) + { + for (int32 y = 0; y < chunkLineElements; y++) + { + for (int32 z = 0; z < chunkZElements; z++) + { + int32 index = x + (y * chunkLineElements) + (z * chunkLineElementsP2); + + //chunkFields[index] = (z < 30) ? 1 : 0; // Generate no noise + + if (z == 31 + noise[x + y * chunkLineElements] && RandomStream.FRand() < 0.02) + TreeCenters.Add(FIntVector(x, y, z)); // WOOD + else if (z == 30 + noise[x + y * chunkLineElements]) + chunkFields[index] = 1; // GRASS + else if (z >= 30 - 3 + noise[x + y * chunkLineElements] && z < 30 + noise[x + y * chunkLineElements]) + chunkFields[index] = 2; // DIRT + + else if (z < 30 - 3 + noise[x + y * chunkLineElements]) + chunkFields[index] = 3; // STONE + else chunkFields[index] = 0; // AIR + + + + + /*if (z == 30 + noise[x + y * chunkLineElements]) + chunkFields[index] = 1; + else if (z >= 27 + noise[x + y * chunkLineElements] && z < 30 + noise[x + y * chunkLineElements]) + chunkFields[index] = 2; + + else if (z < 27 + noise[x + y * chunkLineElements]) + chunkFields[index] = 3; + else chunkFields[index] = 0;*/ + + //chunkFields[index] = (z == 29 + noise[x + y * chunkLineElements]) ? 2 : 0; + //chunkFields[index] = (z < 29 + noise[x + y * chunkLineElements]) ? 3 : 0; + } + } + } + + for (FIntVector TreeCenter : TreeCenters) + { + int32 TreeHeight = RandomStream.RandRange(3, 6); + int32 randomX = RandomStream.RandRange(0, 2); + int32 randomY = RandomStream.RandRange(0, 2); + int32 randomZ = RandomStream.RandRange(0, 2); + + for (int32 TreeX = -2; TreeX < 3; TreeX++) + { + for (int32 TreeY = -2; TreeY < 3; TreeY++) + { + for (int32 TreeZ = -2; TreeZ < 3; TreeZ++) + { + if (inRange(TreeX + TreeCenter.X, chunkLineElements) && inRange(TreeY + TreeCenter.Y, chunkLineElements) && inRange(TreeZ + TreeCenter.Z, chunkZElements)) + { + float radius = FVector(TreeX * randomX, TreeY * randomY, TreeZ * randomZ).Size(); + + if (radius <= 2.8) + { + if (RandomStream.FRand() < 0.5 || radius <= 1.2) + { + chunkFields[TreeCenter.X + TreeX + (chunkLineElements * (TreeCenter.Y + TreeY)) + (chunkLineElementsP2 * (TreeCenter.Z + TreeZ + TreeHeight))] = 21;// LEAF + } + } + } + } + } + } + + } +} + +void AVoxelActor::UpdateMesh() +{ + TArray meshSections; + meshSections.SetNum(Materials.Num()); + int32 el_num = 0; + + for (int32 x = 0; x < chunkLineElements; x++) + { + for (int32 y = 0; y < chunkLineElements; y++) + { + for (int32 z = 0; z < chunkZElements; z++) + { + int32 index = x + (chunkLineElements * y) + (chunkLineElementsP2 * z); + int32 meshIndex = chunkFields[index]; + + if (meshIndex > 0) + { + meshIndex--; + + TArray &Vertices = meshSections[meshIndex].Vertices; + TArray &Triangles = meshSections[meshIndex].Triangles; + TArray &Normals = meshSections[meshIndex].Normals; + TArray &UVs = meshSections[meshIndex].UVs; + TArray &Tangents = meshSections[meshIndex].Tangents; + TArray &VertexColors = meshSections[meshIndex].VertexColors; + int32 ElementID = meshSections[meshIndex].ElementID; + + int triangle_num = 0; + for (int i = 0; i < 6; i++) + { + int NewIndex = index + bMask[i].X + (bMask[i].Y * chunkLineElements) + (bMask[i].Z * chunkLineElementsP2); + + bool flag = false; + if (meshIndex >= 20) flag = true; + else if ((x + bMask[i].X < chunkLineElements) && (x + bMask[i].X >= 0) && (y + bMask[i].Y < chunkLineElements) && (y + bMask[i].Y >= 0)) + { + if (NewIndex < chunkFields.Num() && NewIndex >= 0) + if (chunkFields[NewIndex] < 1) flag = true; + } + else flag = true; + if (flag) + { + Triangles.Add(bTriangles[0] + triangle_num + ElementID); + Triangles.Add(bTriangles[1] + triangle_num + ElementID); + Triangles.Add(bTriangles[2] + triangle_num + ElementID); + Triangles.Add(bTriangles[3] + triangle_num + ElementID); + Triangles.Add(bTriangles[4] + triangle_num + ElementID); + Triangles.Add(bTriangles[5] + triangle_num + ElementID); + triangle_num += 4; + + switch (i) + { + case 0: { + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals0, ARRAY_COUNT(bNormals0)); + break; + } + + case 1: { + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals1, ARRAY_COUNT(bNormals1)); + break; + } + + case 2: { + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals2, ARRAY_COUNT(bNormals2)); + break; + } + + case 3: { + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals3, ARRAY_COUNT(bNormals3)); + break; + } + + case 4: { + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals4, ARRAY_COUNT(bNormals4)); + break; + } + + case 5: { + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); + Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); + + Normals.Append(bNormals5, ARRAY_COUNT(bNormals5)); + break; + } + } + UVs.Append(bUVs, ARRAY_COUNT(bUVs)); + + FColor color = FColor(255, 255, 255, i); + VertexColors.Add(color); VertexColors.Add(color); VertexColors.Add(color); VertexColors.Add(color); + } + } + el_num += triangle_num; + meshSections[meshIndex].ElementID += triangle_num; + } + } + } + } + + proceduralComponent->ClearAllMeshSections(); + + for (int i = 0; i < meshSections.Num(); i++) + { + if (meshSections[i].Vertices.Num() > 0) + proceduralComponent->CreateMeshSection(i, meshSections[i].Vertices, meshSections[i].Triangles, meshSections[i].Normals, meshSections[i].UVs, meshSections[i].VertexColors, meshSections[i].Tangents, collision); + } + + + int s = 0; + while (s < Materials.Num()) + { + proceduralComponent->SetMaterial(s, Materials[s]); + s++; + } + +} + +TArray AVoxelActor::calculateNoise_Implementation() +{ + TArray aa; + aa.SetNum(chunkLineElementsP2); + return aa; +} + +bool AVoxelActor::inRange(int32 value, int32 range) +{ + return (value >= 0 && value < range); +} + + + + + + + + +//void AVoxelActor::UpdateMesh() // NO NOISE WORKING +//{ +// TArray Vertices; +// TArray Triangles; +// TArray Normals; +// TArray UVs; +// TArray Tangents; +// TArray VertexColors; +// +// int32 ElementID = 0; +// +// for (int32 x = 0; x < chunkLineElements; x++) +// { +// for (int32 y = 0; y < chunkLineElements; y++) +// { +// for (int32 z = 0; z < chunkZElements; z++) +// { +// int32 index = x + (chunkLineElements * y) + (chunkLineElementsP2 * z); +// int32 meshIndex = chunkFields[index]; +// +// if (meshIndex > 0) +// { +// +// meshIndex--; +// +// int triangle_num = 0; +// for (int i = 0; i < 6; i++) +// { +// int NewIndex = index + bMask[i].X + (bMask[i].Y * chunkLineElements) + (bMask[i].Z * chunkLineElementsP2); +// +// bool flag = false; +// if (meshIndex >= 20) flag = true; +// else if ((x + bMask[i].X < chunkLineElements) && (x + bMask[i].X >= 0) && (y + bMask[i].Y < chunkLineElements) && (y + bMask[i].Y >= 0)) +// { +// if (NewIndex < chunkFields.Num() && NewIndex >= 0) +// if (chunkFields[NewIndex] < 1) flag = true; +// } +// else flag = true; +// if (flag) +// { +// Triangles.Add(bTriangles[0] + triangle_num + ElementID); +// Triangles.Add(bTriangles[1] + triangle_num + ElementID); +// Triangles.Add(bTriangles[2] + triangle_num + ElementID); +// Triangles.Add(bTriangles[3] + triangle_num + ElementID); +// Triangles.Add(bTriangles[4] + triangle_num + ElementID); +// Triangles.Add(bTriangles[5] + triangle_num + ElementID); +// triangle_num += 4; +// +// switch (i) +// { +// case 0: { +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals0, ARRAY_COUNT(bNormals0)); +// break; +// } +// +// case 1: { +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals1, ARRAY_COUNT(bNormals1)); +// break; +// } +// +// case 2: { +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals2, ARRAY_COUNT(bNormals2)); +// break; +// } +// +// case 3: { +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals3, ARRAY_COUNT(bNormals3)); +// break; +// } +// +// case 4: { +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals4, ARRAY_COUNT(bNormals4)); +// break; +// } +// +// case 5: { +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), -VoxelSizeHalf + (z * voxelSize))); +// Vertices.Add(FVector(-VoxelSizeHalf + (x * voxelSize), -VoxelSizeHalf + (y * voxelSize), VoxelSizeHalf + (z * voxelSize))); +// +// Normals.Append(bNormals5, ARRAY_COUNT(bNormals5)); +// break; +// } +// } +// UVs.Append(bUVs, ARRAY_COUNT(bUVs)); +// +// FColor color = FColor(255, 255, 255, i); +// VertexColors.Add(color); VertexColors.Add(color); VertexColors.Add(color); VertexColors.Add(color); +// } +// } +// ElementID += triangle_num; +// } +// } +// } +// } +// +// +// proceduralComponent->ClearAllMeshSections(); +// proceduralComponent->CreateMeshSection(0, Vertices, Triangles, Normals, UVs, VertexColors, Tangents, true); +// +//} diff --git a/Source/Minecraft/VoxelActor.h b/Source/Minecraft/VoxelActor.h new file mode 100644 index 0000000..e343a30 --- /dev/null +++ b/Source/Minecraft/VoxelActor.h @@ -0,0 +1,91 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "ProceduralMeshComponent.h" +#include "VoxelActor.generated.h" + +struct FMeshSection +{ + TArray Vertices; + TArray Triangles; + TArray Normals; + TArray UVs; + TArray Tangents; + TArray VertexColors; + int32 ElementID = 0; +}; + + +UCLASS() +class MINECRAFT_API AVoxelActor : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + AVoxelActor(); + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TArray Materials; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Meta = (ExposeOnSpawn = true)) + int32 randomSeed = 0; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Meta = (ExposeOnSpawn = true)) + int32 voxelSize = 200; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Meta = (ExposeOnSpawn = true)) + int32 chunkLineElements = 10; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Meta = (ExposeOnSpawn = true)) + int32 chunkXindex = 0; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Meta = (ExposeOnSpawn = true)) + int32 chunkYindex = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool collision = false; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float xMult = 1; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float yMult = 1; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float Weight = 1; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + float freq = 1; + + + UPROPERTY() + int32 chunkTotalElements; + UPROPERTY() + int32 chunkZElements; + UPROPERTY() + int32 chunkLineElementsP2; + UPROPERTY() + int32 VoxelSizeHalf; + UPROPERTY() + TArray chunkFields; + + UPROPERTY() + UProceduralMeshComponent* proceduralComponent; + + UFUNCTION(BlueprintNativeEvent) + TArray calculateNoise(); + virtual TArray calculateNoise_Implementation(); + +private: + void GenerateChunk(); + void UpdateMesh(); + bool inRange(int32 value, int32 range); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + + virtual void OnConstruction(const FTransform & Transform) override; + + + +}; diff --git a/Source/MinecraftEditor.Target.cs b/Source/MinecraftEditor.Target.cs new file mode 100644 index 0000000..c0e8992 --- /dev/null +++ b/Source/MinecraftEditor.Target.cs @@ -0,0 +1,14 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class MinecraftEditorTarget : TargetRules +{ + public MinecraftEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + + ExtraModuleNames.AddRange( new string[] { "Minecraft" } ); + } +}