From d37e73b1f0a4162c784ea596a2de254c0f53694b Mon Sep 17 00:00:00 2001 From: Joey Pollack Date: Thu, 1 Jun 2023 14:14:13 -0400 Subject: [PATCH] New repo for project --- .gitattributes | 5 + .gitignore | 4 + Environment Asset Workflow.txt | 7 + assets/Cliff1.glb | 3 + assets/Cliff1.glb.import | 32 ++ assets/Cliff2.glb | 3 + assets/Cliff2.glb.import | 32 ++ assets/Cliff_Wall.glb | 3 + assets/Cliff_Wall.glb.import | 32 ++ assets/Club.glb | 3 + assets/Club.glb.import | 32 ++ assets/Pond.glb | 3 + assets/Pond.glb.import | 32 ++ assets/Stream1.glb | 3 + assets/Stream1.glb.import | 32 ++ assets/Terrain_All.glb | 3 + assets/Terrain_All.glb.import | 32 ++ assets/Terrain_All_Terrain-0_1.png | 3 + assets/Terrain_All_Terrain-0_1.png.import | 36 +++ assets/Tree1.glb | 3 + assets/Tree1.glb.import | 32 ++ assets/asset source files/.gdignore | 0 assets/asset source files/Boulder.blend | 3 + assets/asset source files/Boulder2.blend | 3 + assets/asset source files/Boulders.blend | 3 + assets/asset source files/Cliff1.blend | 3 + assets/asset source files/Club.blend | 3 + assets/asset source files/Plant1.blend | 3 + assets/asset source files/Rock.blend | 3 + assets/asset source files/Rock2.blend | 3 + assets/asset source files/Rock3.blend | 3 + assets/asset source files/Stream_Grass1.blend | 3 + assets/asset source files/TEST.blend | 3 + assets/asset source files/Terrain-0_1.png | 3 + assets/asset source files/Terrain.blend | 3 + assets/asset source files/Terrain_0-1.png | 3 + .../Terrain_Sculpt_Example.blend | 3 + .../Terrain_StreamAdjusted.blend | 3 + .../Tileable Dirt Textures/Dirt_01.png | 3 + .../Tileable Dirt Textures/Dirt_01_Nrm.png | 3 + .../Tileable Dirt Textures/Dirt_02.png | 3 + .../Tileable Dirt Textures/Dirt_02_Nrm.png | 3 + .../Tileable Dirt Textures/Dirt_03.png | 3 + .../Tileable Dirt Textures/Dirt_03_Nrm.png | 3 + .../Tileable Dirt Textures/Dirt_04.png | 3 + .../Tileable Dirt Textures/Dirt_04_Nrm.png | 3 + .../Tileable Dirt Textures/Preview.png | 3 + .../Grass_01.png | 3 + .../Grass_01_Nrm.png | 3 + .../Grass_02.png | 3 + .../Grass_02_Nrm.png | 3 + .../Grass_03.png | 3 + .../Grass_03_Nrm.png | 3 + .../Grass_04.png | 3 + .../Grass_04_Nrm.png | 3 + assets/asset source files/Textures/grass.ptex | 1 + .../asset source files/Textures/grass2.tres | 35 ++ .../Textures/grass2_albedo.png | 3 + .../Textures/grass2_emission.png | 3 + .../Textures/grass2_heightmap.png | 3 + .../Textures/grass2_normal.png | 3 + .../Textures/grass2_orm.png | 3 + .../Textures/grass_albedo.png | 3 + .../Textures/grass_displace.exr | 3 + .../Textures/grass_normal.png | 3 + .../Textures/grass_occlusion.exr | 3 + .../handpainted-style-textures-3/hp_01.png | 3 + .../handpainted-style-textures-3/hp_01_h.png | 3 + .../handpainted-style-textures-3/hp_01_n.png | 3 + .../handpainted-style-textures-3/hp_01_r.png | 3 + .../handpainted-style-textures-3/hp_01_s.png | 3 + .../handpainted-style-textures-3/hp_02.png | 3 + .../handpainted-style-textures-3/hp_02_h.png | 3 + .../handpainted-style-textures-3/hp_02_n.png | 3 + .../handpainted-style-textures-3/hp_02_r.png | 3 + .../handpainted-style-textures-3/hp_02_s.png | 3 + .../handpainted-style-textures-3/hp_03.png | 3 + .../handpainted-style-textures-3/hp_03_h.png | 3 + .../handpainted-style-textures-3/hp_03_n.png | 3 + .../handpainted-style-textures-3/hp_03_r.png | 3 + .../handpainted-style-textures-3/hp_03_s.png | 3 + .../handpainted-style-textures-3/hp_04.png | 3 + .../handpainted-style-textures-3/hp_04_h.png | 3 + .../handpainted-style-textures-3/hp_04_n.png | 3 + .../handpainted-style-textures-3/hp_04_r.png | 3 + .../handpainted-style-textures-3/hp_04_s.png | 3 + .../Textures/rock-raw_albedo.png | 3 + .../Textures/rock-raw_displace.png | 3 + .../Textures/rock-raw_normal.png | 3 + .../Textures/rock-raw_occlusion.png | 3 + .../Textures/rock-raw_rough.png | 3 + .../rock_weathered_1/rock_weathered_02.png | 3 + .../rock_weathered_1/rock_weathered_10.png | 3 + .../rock_weathered_1/rock_weathered_15b.png | 3 + .../rock_weathered_1/rock_weathered_17.png | 3 + assets/asset source files/Trees.blend | 3 + assets/asset source files/dude.blend | 3 + assets/asset source files/ground_0-0.png | 3 + assets/asset source files/ground_0-1.png | 3 + assets/asset source files/tree.blend | 3 + assets/asset source files/tree2.blend | 3 + assets/evening_road_01_puresky_2k.hdr | 3 + assets/evening_road_01_puresky_2k.hdr.import | 35 ++ assets/foliage/Plant1.glb | 3 + assets/foliage/Plant1.glb.import | 32 ++ assets/foliage/Rocks/Boulder1.glb | 3 + assets/foliage/Rocks/Boulder1.glb.import | 32 ++ assets/foliage/Rocks/Boulder2.glb | 3 + assets/foliage/Rocks/Boulder2.glb.import | 32 ++ assets/foliage/Stream_Grass1.glb | 3 + assets/foliage/Stream_Grass1.glb.import | 32 ++ assets/materials/Cliff.tres | 27 ++ assets/materials/Cliff_albedo.png | 3 + assets/materials/Cliff_albedo.png.import | 35 ++ assets/materials/Cliff_heightmap.png | 3 + assets/materials/Cliff_heightmap.png.import | 35 ++ assets/materials/Cliff_normal.png | 3 + assets/materials/Cliff_normal.png.import | 35 ++ assets/materials/Cliff_orm.png | 3 + assets/materials/Cliff_orm.png.import | 35 ++ icon.svg.import | 37 +++ project.godot | 89 ++++++ scenes/PlayerCamera.gd | 17 + scenes/enemy/enemy.gd | 58 ++++ scenes/enemy/enemy.tscn | 218 +++++++++++++ scenes/enemy/states/enemy_attack.gd | 41 +++ scenes/enemy/states/enemy_chase.gd | 37 +++ scenes/enemy/states/enemy_return.gd | 37 +++ scenes/enemy/states/enemy_scanning.gd | 16 + scenes/hit_box.gd | 14 + scenes/hit_box.tscn | 14 + scenes/home_area.gd | 15 + scenes/home_area.tscn | 11 + scenes/hurt_box.gd | 27 ++ scenes/hurt_box.tscn | 14 + scenes/player/player.gd | 165 ++++++++++ scenes/player/player.tscn | 238 ++++++++++++++ scenes/player/states/player_attack.gd | 45 +++ scenes/player/states/player_idle.gd | 40 +++ scenes/player/states/player_in_air.gd | 32 ++ scenes/player/states/player_moving.gd | 45 +++ scenes/player/weapon.tscn | 25 ++ scenes/sandbox.gd | 33 ++ scenes/sandbox.tscn | 301 ++++++++++++++++++ scenes/water features/Pond.tres | 53 +++ scenes/water features/pond.tscn | 9 + scenes/water features/stream.tres | 53 +++ scenes/water features/stream.tscn | 9 + scenes/water features/stream_1.tscn | 9 + scenes/water features/water_plane.tscn | 63 ++++ scripts/state machine/state.gd | 23 ++ scripts/state machine/state_machine.gd | 41 +++ shaders/water.gdshader | 97 ++++++ 153 files changed, 2885 insertions(+) create mode 100644 .gitattributes create mode 100644 Environment Asset Workflow.txt create mode 100644 assets/Cliff1.glb create mode 100644 assets/Cliff1.glb.import create mode 100644 assets/Cliff2.glb create mode 100644 assets/Cliff2.glb.import create mode 100644 assets/Cliff_Wall.glb create mode 100644 assets/Cliff_Wall.glb.import create mode 100644 assets/Club.glb create mode 100644 assets/Club.glb.import create mode 100644 assets/Pond.glb create mode 100644 assets/Pond.glb.import create mode 100644 assets/Stream1.glb create mode 100644 assets/Stream1.glb.import create mode 100644 assets/Terrain_All.glb create mode 100644 assets/Terrain_All.glb.import create mode 100644 assets/Terrain_All_Terrain-0_1.png create mode 100644 assets/Terrain_All_Terrain-0_1.png.import create mode 100644 assets/Tree1.glb create mode 100644 assets/Tree1.glb.import create mode 100644 assets/asset source files/.gdignore create mode 100644 assets/asset source files/Boulder.blend create mode 100644 assets/asset source files/Boulder2.blend create mode 100644 assets/asset source files/Boulders.blend create mode 100644 assets/asset source files/Cliff1.blend create mode 100644 assets/asset source files/Club.blend create mode 100644 assets/asset source files/Plant1.blend create mode 100644 assets/asset source files/Rock.blend create mode 100644 assets/asset source files/Rock2.blend create mode 100644 assets/asset source files/Rock3.blend create mode 100644 assets/asset source files/Stream_Grass1.blend create mode 100644 assets/asset source files/TEST.blend create mode 100644 assets/asset source files/Terrain-0_1.png create mode 100644 assets/asset source files/Terrain.blend create mode 100644 assets/asset source files/Terrain_0-1.png create mode 100644 assets/asset source files/Terrain_Sculpt_Example.blend create mode 100644 assets/asset source files/Terrain_StreamAdjusted.blend create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Dirt Textures/Preview.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03_Nrm.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04.png create mode 100644 assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04_Nrm.png create mode 100644 assets/asset source files/Textures/grass.ptex create mode 100644 assets/asset source files/Textures/grass2.tres create mode 100644 assets/asset source files/Textures/grass2_albedo.png create mode 100644 assets/asset source files/Textures/grass2_emission.png create mode 100644 assets/asset source files/Textures/grass2_heightmap.png create mode 100644 assets/asset source files/Textures/grass2_normal.png create mode 100644 assets/asset source files/Textures/grass2_orm.png create mode 100644 assets/asset source files/Textures/grass_albedo.png create mode 100644 assets/asset source files/Textures/grass_displace.exr create mode 100644 assets/asset source files/Textures/grass_normal.png create mode 100644 assets/asset source files/Textures/grass_occlusion.exr create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_01.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_01_h.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_01_n.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_01_r.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_01_s.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_02.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_02_h.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_02_n.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_02_r.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_02_s.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_03.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_03_h.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_03_n.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_03_r.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_03_s.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_04.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_04_h.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_04_n.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_04_r.png create mode 100644 assets/asset source files/Textures/handpainted-style-textures-3/hp_04_s.png create mode 100644 assets/asset source files/Textures/rock-raw_albedo.png create mode 100644 assets/asset source files/Textures/rock-raw_displace.png create mode 100644 assets/asset source files/Textures/rock-raw_normal.png create mode 100644 assets/asset source files/Textures/rock-raw_occlusion.png create mode 100644 assets/asset source files/Textures/rock-raw_rough.png create mode 100644 assets/asset source files/Textures/rock_weathered_1/rock_weathered_02.png create mode 100644 assets/asset source files/Textures/rock_weathered_1/rock_weathered_10.png create mode 100644 assets/asset source files/Textures/rock_weathered_1/rock_weathered_15b.png create mode 100644 assets/asset source files/Textures/rock_weathered_1/rock_weathered_17.png create mode 100644 assets/asset source files/Trees.blend create mode 100644 assets/asset source files/dude.blend create mode 100644 assets/asset source files/ground_0-0.png create mode 100644 assets/asset source files/ground_0-1.png create mode 100644 assets/asset source files/tree.blend create mode 100644 assets/asset source files/tree2.blend create mode 100644 assets/evening_road_01_puresky_2k.hdr create mode 100644 assets/evening_road_01_puresky_2k.hdr.import create mode 100644 assets/foliage/Plant1.glb create mode 100644 assets/foliage/Plant1.glb.import create mode 100644 assets/foliage/Rocks/Boulder1.glb create mode 100644 assets/foliage/Rocks/Boulder1.glb.import create mode 100644 assets/foliage/Rocks/Boulder2.glb create mode 100644 assets/foliage/Rocks/Boulder2.glb.import create mode 100644 assets/foliage/Stream_Grass1.glb create mode 100644 assets/foliage/Stream_Grass1.glb.import create mode 100644 assets/materials/Cliff.tres create mode 100644 assets/materials/Cliff_albedo.png create mode 100644 assets/materials/Cliff_albedo.png.import create mode 100644 assets/materials/Cliff_heightmap.png create mode 100644 assets/materials/Cliff_heightmap.png.import create mode 100644 assets/materials/Cliff_normal.png create mode 100644 assets/materials/Cliff_normal.png.import create mode 100644 assets/materials/Cliff_orm.png create mode 100644 assets/materials/Cliff_orm.png.import create mode 100644 icon.svg.import create mode 100644 project.godot create mode 100644 scenes/PlayerCamera.gd create mode 100644 scenes/enemy/enemy.gd create mode 100644 scenes/enemy/enemy.tscn create mode 100644 scenes/enemy/states/enemy_attack.gd create mode 100644 scenes/enemy/states/enemy_chase.gd create mode 100644 scenes/enemy/states/enemy_return.gd create mode 100644 scenes/enemy/states/enemy_scanning.gd create mode 100644 scenes/hit_box.gd create mode 100644 scenes/hit_box.tscn create mode 100644 scenes/home_area.gd create mode 100644 scenes/home_area.tscn create mode 100644 scenes/hurt_box.gd create mode 100644 scenes/hurt_box.tscn create mode 100644 scenes/player/player.gd create mode 100644 scenes/player/player.tscn create mode 100644 scenes/player/states/player_attack.gd create mode 100644 scenes/player/states/player_idle.gd create mode 100644 scenes/player/states/player_in_air.gd create mode 100644 scenes/player/states/player_moving.gd create mode 100644 scenes/player/weapon.tscn create mode 100644 scenes/sandbox.gd create mode 100644 scenes/sandbox.tscn create mode 100644 scenes/water features/Pond.tres create mode 100644 scenes/water features/pond.tscn create mode 100644 scenes/water features/stream.tres create mode 100644 scenes/water features/stream.tscn create mode 100644 scenes/water features/stream_1.tscn create mode 100644 scenes/water features/water_plane.tscn create mode 100644 scripts/state machine/state.gd create mode 100644 scripts/state machine/state_machine.gd create mode 100644 shaders/water.gdshader diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..505d1f9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +*.png filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.glb filter=lfs diff=lfs merge=lfs -text +*.hdr filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index bf83296..b3b5a3f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,7 @@ export_presets.cfg data_*/ mono_crash.*.json +*.blend* +!*.blend + +*.zip \ No newline at end of file diff --git a/Environment Asset Workflow.txt b/Environment Asset Workflow.txt new file mode 100644 index 0000000..92b4c7c --- /dev/null +++ b/Environment Asset Workflow.txt @@ -0,0 +1,7 @@ +Assets worked on in blender and saved in .blend files in the ignored ".raw blend" directory. + +Assets exported to .glb files. Then imported with internal textures (this is an import setting, use "Embed as basis universial"). + +Materials created in Godot can be applied to imported assets. Make a new inherieted scene from the imported asset. From there materials can be loaded and modified. + +In Godot materials can be saved by clicking the down arrow on the material selection box and picking "Save". This will save the material as a new material with the current settings. \ No newline at end of file diff --git a/assets/Cliff1.glb b/assets/Cliff1.glb new file mode 100644 index 0000000..ad474e2 --- /dev/null +++ b/assets/Cliff1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0219b29e0f3f5b1f566032bae1cb8e5d74fba7acc9509d7a5d08499baebe9ccc +size 32324 diff --git a/assets/Cliff1.glb.import b/assets/Cliff1.glb.import new file mode 100644 index 0000000..334fda1 --- /dev/null +++ b/assets/Cliff1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://hensmvqwwsdy" +path="res://.godot/imported/Cliff1.glb-e8d4960070fd1ce0ba4c68c032a251c5.scn" + +[deps] + +source_file="res://assets/Cliff1.glb" +dest_files=["res://.godot/imported/Cliff1.glb-e8d4960070fd1ce0ba4c68c032a251c5.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Cliff2.glb b/assets/Cliff2.glb new file mode 100644 index 0000000..cae6b26 --- /dev/null +++ b/assets/Cliff2.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7220304999084b825db33bd0d158bea8a7f7b3b2e80a1f4a929ee2f216af5346 +size 16544 diff --git a/assets/Cliff2.glb.import b/assets/Cliff2.glb.import new file mode 100644 index 0000000..d31cace --- /dev/null +++ b/assets/Cliff2.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bw17wqoa2ufws" +path="res://.godot/imported/Cliff2.glb-9c589cd41e06f3f234fd078d01fc3383.scn" + +[deps] + +source_file="res://assets/Cliff2.glb" +dest_files=["res://.godot/imported/Cliff2.glb-9c589cd41e06f3f234fd078d01fc3383.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Cliff_Wall.glb b/assets/Cliff_Wall.glb new file mode 100644 index 0000000..1a2c485 --- /dev/null +++ b/assets/Cliff_Wall.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61c26426b247b05e2ab2cb44e552a4f155b38554f3bf01cf223237bee7366844 +size 1336 diff --git a/assets/Cliff_Wall.glb.import b/assets/Cliff_Wall.glb.import new file mode 100644 index 0000000..0f324ec --- /dev/null +++ b/assets/Cliff_Wall.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d4cxb60hqh7n0" +path="res://.godot/imported/Cliff_Wall.glb-1869faaba7e2118e52a52905463e9d38.scn" + +[deps] + +source_file="res://assets/Cliff_Wall.glb" +dest_files=["res://.godot/imported/Cliff_Wall.glb-1869faaba7e2118e52a52905463e9d38.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Club.glb b/assets/Club.glb new file mode 100644 index 0000000..2c8eb52 --- /dev/null +++ b/assets/Club.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:698d3bca8fecb48afc60f963912d3c0b06598c9239da16650f0f942d15b5af6f +size 25152 diff --git a/assets/Club.glb.import b/assets/Club.glb.import new file mode 100644 index 0000000..09d6b05 --- /dev/null +++ b/assets/Club.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bs7uftwssc1td" +path="res://.godot/imported/Club.glb-5aff85ea710dce50df0284a6481ac12c.scn" + +[deps] + +source_file="res://assets/Club.glb" +dest_files=["res://.godot/imported/Club.glb-5aff85ea710dce50df0284a6481ac12c.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Pond.glb b/assets/Pond.glb new file mode 100644 index 0000000..84f0c2a --- /dev/null +++ b/assets/Pond.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4418a6f0525dc18de5b99e2a72967aed5b95b515eb136c8dc68e5e44e74f32b +size 1160 diff --git a/assets/Pond.glb.import b/assets/Pond.glb.import new file mode 100644 index 0000000..ad2103f --- /dev/null +++ b/assets/Pond.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://celi53wxxoubl" +path="res://.godot/imported/Pond.glb-1cc42d894932335c2af5d78adf249634.scn" + +[deps] + +source_file="res://assets/Pond.glb" +dest_files=["res://.godot/imported/Pond.glb-1cc42d894932335c2af5d78adf249634.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Stream1.glb b/assets/Stream1.glb new file mode 100644 index 0000000..d2aa012 --- /dev/null +++ b/assets/Stream1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e18ad527e6fd70639166d4e77387a56ca378278eee22e6f561aa86858d85f126 +size 2080 diff --git a/assets/Stream1.glb.import b/assets/Stream1.glb.import new file mode 100644 index 0000000..a936ef2 --- /dev/null +++ b/assets/Stream1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c6qiu24k8msle" +path="res://.godot/imported/Stream1.glb-65aaab19d037f1437915e1861502aa64.scn" + +[deps] + +source_file="res://assets/Stream1.glb" +dest_files=["res://.godot/imported/Stream1.glb-65aaab19d037f1437915e1861502aa64.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Terrain_All.glb b/assets/Terrain_All.glb new file mode 100644 index 0000000..c4e25d5 --- /dev/null +++ b/assets/Terrain_All.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50e1f61124bb19010d48fc4024b804ed9b311b9a8cd46bdb78197ded4924ba56 +size 1074280 diff --git a/assets/Terrain_All.glb.import b/assets/Terrain_All.glb.import new file mode 100644 index 0000000..068cab7 --- /dev/null +++ b/assets/Terrain_All.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c08obw415vv7s" +path="res://.godot/imported/Terrain_All.glb-5c668fbbc2025a6a845d8b4dd9d51ba5.scn" + +[deps] + +source_file="res://assets/Terrain_All.glb" +dest_files=["res://.godot/imported/Terrain_All.glb-5c668fbbc2025a6a845d8b4dd9d51ba5.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/Terrain_All_Terrain-0_1.png b/assets/Terrain_All_Terrain-0_1.png new file mode 100644 index 0000000..0d1392b --- /dev/null +++ b/assets/Terrain_All_Terrain-0_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79c3903b5a08a4d7645efd6168de473c3e350fa5f29656c737f6904cbed255c6 +size 157158 diff --git a/assets/Terrain_All_Terrain-0_1.png.import b/assets/Terrain_All_Terrain-0_1.png.import new file mode 100644 index 0000000..66a75ac --- /dev/null +++ b/assets/Terrain_All_Terrain-0_1.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs0eojfuhu23y" +path.s3tc="res://.godot/imported/Terrain_All_Terrain-0_1.png-9c6456fdbb2b6fb501a852d1d504fef5.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} +generator_parameters={} + +[deps] + +source_file="res://assets/Terrain_All_Terrain-0_1.png" +dest_files=["res://.godot/imported/Terrain_All_Terrain-0_1.png-9c6456fdbb2b6fb501a852d1d504fef5.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/Tree1.glb b/assets/Tree1.glb new file mode 100644 index 0000000..da23d80 --- /dev/null +++ b/assets/Tree1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82d690ff4620c45e079bd7518d8b360fc6c828976661218ab0fac4b9a3623c1e +size 55264 diff --git a/assets/Tree1.glb.import b/assets/Tree1.glb.import new file mode 100644 index 0000000..035e8e9 --- /dev/null +++ b/assets/Tree1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://wd47rbsbib08" +path="res://.godot/imported/Tree1.glb-b8354f2eebef3b300304a93bb9f8939a.scn" + +[deps] + +source_file="res://assets/Tree1.glb" +dest_files=["res://.godot/imported/Tree1.glb-b8354f2eebef3b300304a93bb9f8939a.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/asset source files/.gdignore b/assets/asset source files/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/assets/asset source files/Boulder.blend b/assets/asset source files/Boulder.blend new file mode 100644 index 0000000..c308976 --- /dev/null +++ b/assets/asset source files/Boulder.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e663fd1e4b45149afaee40166d9d318208a01314fe9efbeafffd65d4b8b5787 +size 876612 diff --git a/assets/asset source files/Boulder2.blend b/assets/asset source files/Boulder2.blend new file mode 100644 index 0000000..0d7d1a2 --- /dev/null +++ b/assets/asset source files/Boulder2.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93fc2663938561a3b8c33887914878efc18425c85560ac79978a1d743a707353 +size 898900 diff --git a/assets/asset source files/Boulders.blend b/assets/asset source files/Boulders.blend new file mode 100644 index 0000000..d297973 --- /dev/null +++ b/assets/asset source files/Boulders.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b8b0946928bd15b798f3c1aea204e535a14b1abdaae2bc9e90d792bdcb2b6c7 +size 2462892 diff --git a/assets/asset source files/Cliff1.blend b/assets/asset source files/Cliff1.blend new file mode 100644 index 0000000..d88133d --- /dev/null +++ b/assets/asset source files/Cliff1.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34796cbba061bd2855e7331ec129a8100233b729f05fb7257d31e4b95c95f802 +size 2521184 diff --git a/assets/asset source files/Club.blend b/assets/asset source files/Club.blend new file mode 100644 index 0000000..309dcfc --- /dev/null +++ b/assets/asset source files/Club.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d441e1ae13c3dcd5d7b0f8e4f6940e6c23bb0825973beb453c7b3a8f15fcf847 +size 932660 diff --git a/assets/asset source files/Plant1.blend b/assets/asset source files/Plant1.blend new file mode 100644 index 0000000..e2a1108 --- /dev/null +++ b/assets/asset source files/Plant1.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f8b45dde335e37cd5cef2d9141d8594da55492e5a4a6bb782292374118b9245 +size 841112 diff --git a/assets/asset source files/Rock.blend b/assets/asset source files/Rock.blend new file mode 100644 index 0000000..a247133 --- /dev/null +++ b/assets/asset source files/Rock.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a284b9073a6e726831db085b9d597a2661228ff5e89269d06e08a9136efd1ee9 +size 1053972 diff --git a/assets/asset source files/Rock2.blend b/assets/asset source files/Rock2.blend new file mode 100644 index 0000000..7579a91 --- /dev/null +++ b/assets/asset source files/Rock2.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4240150f4a93cd115e04f8ede74733d789e71e39239fa0e3fa061a64bf86d4 +size 1031668 diff --git a/assets/asset source files/Rock3.blend b/assets/asset source files/Rock3.blend new file mode 100644 index 0000000..8e11bff --- /dev/null +++ b/assets/asset source files/Rock3.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e6f404026945412de02d3e8631e85d803c49c5f1cc7a6967ad1f9af59083a1 +size 1031668 diff --git a/assets/asset source files/Stream_Grass1.blend b/assets/asset source files/Stream_Grass1.blend new file mode 100644 index 0000000..39d11dc --- /dev/null +++ b/assets/asset source files/Stream_Grass1.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb781115cf77659dbf41e6fdb76309ddbc69e12f246b2e185eb83d1ebe4b789 +size 2432400 diff --git a/assets/asset source files/TEST.blend b/assets/asset source files/TEST.blend new file mode 100644 index 0000000..8a59c85 --- /dev/null +++ b/assets/asset source files/TEST.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d173a9b1dbdeb008147d3779619c92bb880cad943ce6838da526cced915afefd +size 2380572 diff --git a/assets/asset source files/Terrain-0_1.png b/assets/asset source files/Terrain-0_1.png new file mode 100644 index 0000000..b535bae --- /dev/null +++ b/assets/asset source files/Terrain-0_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf4a92a9c67dc24002a8cc0b9d45110c2fe3f4528e49927e99f8f6e896c2af61 +size 308187 diff --git a/assets/asset source files/Terrain.blend b/assets/asset source files/Terrain.blend new file mode 100644 index 0000000..61226ad --- /dev/null +++ b/assets/asset source files/Terrain.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34f5ec2839c79ba607d6c7eafd2a47e2b5b781eb1b0a457edd1c7eeb5dd32aa8 +size 2584852 diff --git a/assets/asset source files/Terrain_0-1.png b/assets/asset source files/Terrain_0-1.png new file mode 100644 index 0000000..87696ff --- /dev/null +++ b/assets/asset source files/Terrain_0-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8af08811942a485238aec7417f65ee0b1a3a425414a357f2bde781d2dead025d +size 155319 diff --git a/assets/asset source files/Terrain_Sculpt_Example.blend b/assets/asset source files/Terrain_Sculpt_Example.blend new file mode 100644 index 0000000..6ba56bf --- /dev/null +++ b/assets/asset source files/Terrain_Sculpt_Example.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe19786438e04f0c8cfffbe18636d04408e7c0d4092d52ce08e6b8a4bb1747e +size 10343832 diff --git a/assets/asset source files/Terrain_StreamAdjusted.blend b/assets/asset source files/Terrain_StreamAdjusted.blend new file mode 100644 index 0000000..4c696ea --- /dev/null +++ b/assets/asset source files/Terrain_StreamAdjusted.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1187b7effd75daad39ca01d757377ca77b54344e89336ea0e9170b55752697d5 +size 2587332 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01.png new file mode 100644 index 0000000..c65c443 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc12517a5ae3bcf8ddbb14cb60961db6778d5577a83cd0d83685b7a695356ac +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01_Nrm.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01_Nrm.png new file mode 100644 index 0000000..c54f7f3 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_01_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c702b40c3706292ec7057952a659841734cac3f3e50f3e522f64171d621c6c1 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02.png new file mode 100644 index 0000000..8c97610 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80ce292cd0c9f131d7f995c41f8d135b827fbc721daef8bbf07e0b986988b32f +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02_Nrm.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02_Nrm.png new file mode 100644 index 0000000..246ff49 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_02_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fa9b84cb60f5119fd03501a264d921cf8388a8da8db5581ac9d1f2511118616 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03.png new file mode 100644 index 0000000..d0d70a1 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcac299d389c05088d97c4454a1ec65c40428f3f2badf1f1aa3a9fa36d41d2e1 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03_Nrm.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03_Nrm.png new file mode 100644 index 0000000..88bb8b0 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_03_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1d642cac92eec2a2b30401b0cfb08569f4266e94a33533341881a1820cb5f1e +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04.png new file mode 100644 index 0000000..086137d --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ddef93734e1fdb479ac3b0b5b8e95cd1aa37b4d64b02868e246bdf2ba4a81b7 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04_Nrm.png b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04_Nrm.png new file mode 100644 index 0000000..a7745c5 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Dirt_04_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d07305818831e65f3b0cd8c780bfcfb538c84fb36848a3ef8d38fc0f95ba41 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Dirt Textures/Preview.png b/assets/asset source files/Textures/Tileable Dirt Textures/Preview.png new file mode 100644 index 0000000..24dd318 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Dirt Textures/Preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332f974d9fc8c1bdd2b9a476fb8c027d34e8de886647c6cedc91ac9dd9b7276b +size 1570340 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01.png new file mode 100644 index 0000000..a27bbaa --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ac8299f02267a5539a4f3edfbbca3030c7ff3e13b0d6386d84644aefd1a8bd5 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01_Nrm.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01_Nrm.png new file mode 100644 index 0000000..e8b779e --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_01_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfd946ecf470d1257950ba0ae24de48e15f5a356010e4606ceaf98622fab7283 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02.png new file mode 100644 index 0000000..f51dc61 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8adcdf9cdf0992674cb9fd9853793834dc589def9fa61143e32421ddcd75636 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02_Nrm.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02_Nrm.png new file mode 100644 index 0000000..c9e12d0 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_02_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bd59c0f6aa8528c888475792f3a151b355b758f20ca1dd40a055ebb508df322 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03.png new file mode 100644 index 0000000..98117a4 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32b231bcc8c0bfe4021a764f0a8e82a922083174a5edbb004ac42b4ee6654b67 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03_Nrm.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03_Nrm.png new file mode 100644 index 0000000..5f56cfe --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_03_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf50f84b80e4d79a0d7ca0981d9173054814488ec8db810bd7c7c917a9b71f64 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04.png new file mode 100644 index 0000000..09d9f34 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c62ff730b686d31676ac386a42e94bcfe47dd889bd7b51467563ead12c13065 +size 1050873 diff --git a/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04_Nrm.png b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04_Nrm.png new file mode 100644 index 0000000..08ab9e1 --- /dev/null +++ b/assets/asset source files/Textures/Tileable Grass Textures - Set 1/Grass_04_Nrm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51965b7dc7e5c42b66bc64f3cb5a15abf8019b5d366c383ea60dff65a12f4770 +size 1050873 diff --git a/assets/asset source files/Textures/grass.ptex b/assets/asset source files/Textures/grass.ptex new file mode 100644 index 0000000..1ee806e --- /dev/null +++ b/assets/asset source files/Textures/grass.ptex @@ -0,0 +1 @@ +{"name":"226","type":"graph","parameters":{},"node_position":{"x":0,"y":0},"label":"Graph","shortdesc":"","longdesc":"","nodes":[{"name":"Material","type":"material","parameters":{"albedo_color":{"type":"Color","r":1,"g":1,"b":1,"a":1},"metallic":0,"roughness":1,"emission_energy":0,"normal":1,"ao":1,"depth_scale":0.05,"flags_transparent":false,"sss":0,"size":11},"node_position":{"x":2791,"y":138},"export_paths":{"Godot":"/home/wojtekpil/DataDrive/material_maker/exports/grass_my_game/cloth"}},{"name":"sdrhombus","type":"shader","parameters":{"d":0.89,"r":0.97,"cx":0,"cy":0},"node_position":{"x":-655,"y":-151},"shader_model":{"code":"","global":"float sdVesica(in vec2 i, in float r, in float d)\n{\n\tvec2 p=abs(i);\n\tfloat b=(r*r-d*d);\n\tvec2 a=vec2(p.y*d,p.x+d);\n\ta*=a*sign(a);\n\treturn((a.x/b>a.y))?length(p-vec2(0,sqrt(b)))*sign(d)\n :length(p+vec2(d,0))-r;\n}","inputs":[],"instance":"","longdesc":"Distance to a vesica shape (intersection of two disks).","name":"sdVesica","outputs":[{"longdesc":"The rhombus as a signed distance function","sdf2d":"sdVesica($uv-vec2($cx+0.5, $cy+0.5), $r, $d)","shortdesc":"Output","type":"sdf2d"}],"parameters":[{"control":"None","default":0.5,"label":"D","max":1,"min":0,"name":"d","shortdesc":"D","step":0.01,"type":"float"},{"control":"P1.x","default":1,"label":"R","max":1,"min":0,"name":"r","shortdesc":"R","step":0.01,"type":"float"},{"control":"P1.x","default":0,"label":"Center X","longdesc":"The position of the center on the X axis","max":1,"min":-1,"name":"cx","shortdesc":"Center.x","step":0.01,"type":"float"},{"control":"P1.y","default":0,"label":"Center Y","longdesc":"The position of the center on the Y axis","max":1,"min":-1,"name":"cy","shortdesc":"Center.y","step":0.01,"type":"float"}],"shortdesc":"sdVesica"}},{"name":"sdshow","type":"sdshow","parameters":{"bevel":0.02},"node_position":{"x":-955,"y":181}},{"name":"transform2","type":"transform2","parameters":{"translate_x":0,"translate_y":0.07,"rotate":0,"scale_x":0.3,"scale_y":1,"mode":0},"node_position":{"x":-531,"y":253}},{"name":"tile2x2","type":"tile2x2","parameters":{},"node_position":{"x":-249,"y":271}},{"name":"warp","type":"warp","parameters":{"mode":0,"amount":0.2,"eps":0.1},"node_position":{"x":-6.89856,"y":318}},{"name":"fbm","type":"fbm","parameters":{"noise":1,"scale_x":1,"scale_y":1,"folds":0,"iterations":3,"persistence":0.5},"node_position":{"x":-142.89856,"y":525},"seed_value":-33633},{"name":"blend","type":"blend","parameters":{"blend_type":2,"amount":1},"node_position":{"x":-798.89856,"y":297}},{"name":"gradient","type":"gradient","parameters":{"repeat":1,"rotate":-90,"gradient":{"type":"Gradient","points":[{"pos":0.227273,"r":0,"g":0,"b":0,"a":1},{"pos":0.481818,"r":0.242188,"g":0.237457,"b":0.237457,"a":1},{"pos":1,"r":1,"g":1,"b":1,"a":1}],"interpolation":3}},"node_position":{"x":-1053.89856,"y":439}},{"name":"circle_splatter","type":"circle_splatter","parameters":{"count":9,"rings":1,"select_inputs":1,"scale_x":0.72,"scale_y":0.52,"radius":0.18,"spiral":0,"i_rotate":1,"i_scale":0,"rotate":0,"scale":0,"value":0.67},"node_position":{"x":301.10144,"y":218},"seed_value":38825},{"name":"tiler","type":"tiler","parameters":{"tx":12,"ty":12,"overlap":2,"select_inputs":0,"scale_x":0.4,"scale_y":0.4,"fixed_offset":0.5,"offset":0.1,"rotate":180,"scale":0.2,"value":0.8},"node_position":{"x":1313.10144,"y":377},"seed_value":40070},{"name":"buffer","type":"buffer","parameters":{"size":11,"lod":0},"node_position":{"x":610.10144,"y":259}},{"name":"warp_2","type":"warp","parameters":{"mode":0,"amount":0.1,"eps":0.1},"node_position":{"x":945.35144,"y":480.75}},{"name":"fbm_2","type":"fbm","parameters":{"noise":1,"scale_x":2,"scale_y":2,"folds":0,"iterations":3,"persistence":0.5},"node_position":{"x":759.35144,"y":648.75},"seed_value":18017},{"name":"tile2x2_2","type":"tile2x2","parameters":{},"node_position":{"x":862.60144,"y":278}},{"name":"buffer_2","type":"buffer","parameters":{"size":11,"lod":0},"node_position":{"x":1795.10144,"y":279}},{"name":"normal_map","type":"normal_map","parameters":{"param2":0,"param0":11,"param1":0.1,"param4":1},"node_position":{"x":2133.101562,"y":147}},{"name":"invert","type":"invert","parameters":{},"node_position":{"x":2137.101562,"y":412}},{"name":"occlusion","type":"occlusion","parameters":{"param0":10,"param2":1.5},"node_position":{"x":2084.101562,"y":278}},{"name":"colorize","type":"colorize","parameters":{"gradient":{"type":"Gradient","points":[{"pos":0,"r":0.230791,"g":0.390625,"b":0.100708,"a":1},{"pos":0.267275,"r":0.27124,"g":0.440186,"b":0.108765,"a":1},{"pos":0.353081,"r":0.276855,"g":0.445312,"b":0.122131,"a":1},{"pos":0.469748,"r":0.327881,"g":0.521973,"b":0.171021,"a":1},{"pos":0.564229,"r":0.359375,"g":0.592773,"b":0.186646,"a":1},{"pos":0.679432,"r":0.461426,"g":0.674316,"b":0.25415,"a":1},{"pos":0.827243,"r":0.686275,"g":0.85098,"b":0.301961,"a":1}],"interpolation":1}},"node_position":{"x":2172.101562,"y":-51}},{"name":"tones","type":"tones","parameters":{"in_min":{"type":"Color","r":0,"g":0,"b":0,"a":0},"in_mid":{"type":"Color","r":0.015748,"g":0.015748,"b":0.015748,"a":0.5},"in_max":{"type":"Color","r":0.622047,"g":0.622047,"b":0.622047,"a":1},"out_min":{"type":"Color","r":0,"g":0,"b":0,"a":0},"out_max":{"type":"Color","r":1,"g":1,"b":1,"a":1}},"node_position":{"x":1855.101562,"y":-68}},{"name":"adjust_hsv","type":"adjust_hsv","parameters":{"hue":0,"saturation":1,"value":0.65},"node_position":{"x":2544.625,"y":-81.166656}}],"connections":[{"from":"sdrhombus","from_port":0,"to":"sdshow","to_port":0},{"from":"transform2","from_port":0,"to":"tile2x2","to_port":1},{"from":"transform2","from_port":0,"to":"tile2x2","to_port":2},{"from":"transform2","from_port":0,"to":"tile2x2","to_port":3},{"from":"transform2","from_port":0,"to":"tile2x2","to_port":0},{"from":"tile2x2","from_port":0,"to":"warp","to_port":0},{"from":"fbm","from_port":0,"to":"warp","to_port":1},{"from":"sdshow","from_port":0,"to":"blend","to_port":0},{"from":"blend","from_port":0,"to":"transform2","to_port":0},{"from":"gradient","from_port":0,"to":"blend","to_port":1},{"from":"warp","from_port":0,"to":"circle_splatter","to_port":0},{"from":"circle_splatter","from_port":0,"to":"buffer","to_port":0},{"from":"fbm_2","from_port":0,"to":"warp_2","to_port":1},{"from":"buffer","from_port":0,"to":"tile2x2_2","to_port":1},{"from":"buffer","from_port":0,"to":"tile2x2_2","to_port":0},{"from":"buffer","from_port":0,"to":"tile2x2_2","to_port":2},{"from":"buffer","from_port":0,"to":"tile2x2_2","to_port":3},{"from":"tile2x2_2","from_port":0,"to":"warp_2","to_port":0},{"from":"warp_2","from_port":0,"to":"tiler","to_port":0},{"from":"tiler","from_port":0,"to":"buffer_2","to_port":0},{"from":"buffer_2","from_port":0,"to":"normal_map","to_port":0},{"from":"normal_map","from_port":0,"to":"Material","to_port":4},{"from":"buffer_2","from_port":0,"to":"invert","to_port":0},{"from":"invert","from_port":0,"to":"Material","to_port":6},{"from":"buffer_2","from_port":0,"to":"occlusion","to_port":0},{"from":"occlusion","from_port":0,"to":"Material","to_port":5},{"from":"buffer_2","from_port":0,"to":"tones","to_port":0},{"from":"tones","from_port":0,"to":"colorize","to_port":0},{"from":"colorize","from_port":0,"to":"adjust_hsv","to_port":0},{"from":"adjust_hsv","from_port":0,"to":"Material","to_port":0}]} \ No newline at end of file diff --git a/assets/asset source files/Textures/grass2.tres b/assets/asset source files/Textures/grass2.tres new file mode 100644 index 0000000..1a68600 --- /dev/null +++ b/assets/asset source files/Textures/grass2.tres @@ -0,0 +1,35 @@ +[gd_resource type="StandardMaterial3D" load_steps=5 format=2] +[ext_resource path="grass2_albedo.png" type="Texture" id=1] +[ext_resource path="grass2_orm.png" type="Texture" id=2] +[ext_resource path="grass2_normal.png" type="Texture" id=3] +[ext_resource path="grass2_heightmap.png" type="Texture" id=4] +[ext_resource path="grass2_emission.png" type="Texture" id=5] +[resource] +albedo_color = Color(0.254902, 0.254902, 0.254902, 1) +albedo_texture = ExtResource( 1 ) +metallic = 0 +metallic_texture = ExtResource( 2 ) +metallic_texture_channel = 2 +roughness = 1 +roughness_texture = ExtResource( 2 ) +roughness_texture_channel = 1 +normal_enabled = true +normal_scale = 1 +normal_texture = ExtResource( 3 ) +emission_enabled = true +emission = Color( 0, 0, 0, 1 ) +emission_energy = 1 +emission_operator = 0 +emission_texture = ExtResource( 5 ) +ao_enabled = true +ao_texture = ExtResource( 2 ) +ao_texture_channel = 0 +heightmap_enabled = true +heightmap_scale = 1.875 +heightmap_deep_parallax = true +heightmap_min_layers = 8 +heightmap_max_layers = 32 +heightmap_texture = ExtResource( 4 ) + + + diff --git a/assets/asset source files/Textures/grass2_albedo.png b/assets/asset source files/Textures/grass2_albedo.png new file mode 100644 index 0000000..ee2382a --- /dev/null +++ b/assets/asset source files/Textures/grass2_albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:790b2acc204b0488ec3c6394ef20b6f3edd9352974a7d16134ca54ff9e2397dd +size 27348386 diff --git a/assets/asset source files/Textures/grass2_emission.png b/assets/asset source files/Textures/grass2_emission.png new file mode 100644 index 0000000..72729f6 --- /dev/null +++ b/assets/asset source files/Textures/grass2_emission.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89f386d1f3aa9c865ab7bfee0fe976221c1a31ac1037bfe3755ba252d345c487 +size 49065 diff --git a/assets/asset source files/Textures/grass2_heightmap.png b/assets/asset source files/Textures/grass2_heightmap.png new file mode 100644 index 0000000..19c0cde --- /dev/null +++ b/assets/asset source files/Textures/grass2_heightmap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e0b15e2fade93b6f736edbd2fc4b803ad8d720ff5ef3fa5b61372b79ce8096 +size 13201160 diff --git a/assets/asset source files/Textures/grass2_normal.png b/assets/asset source files/Textures/grass2_normal.png new file mode 100644 index 0000000..3444463 --- /dev/null +++ b/assets/asset source files/Textures/grass2_normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:918fd30bd3f977d02941411781c18827bb04795702bbf7114c8fcf14d61083a6 +size 44302773 diff --git a/assets/asset source files/Textures/grass2_orm.png b/assets/asset source files/Textures/grass2_orm.png new file mode 100644 index 0000000..6a18672 --- /dev/null +++ b/assets/asset source files/Textures/grass2_orm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7816bcc091a8a97ab82725608dd6ae11e214367cc4a612742445d169783c6d3f +size 25089591 diff --git a/assets/asset source files/Textures/grass_albedo.png b/assets/asset source files/Textures/grass_albedo.png new file mode 100644 index 0000000..e1a4575 --- /dev/null +++ b/assets/asset source files/Textures/grass_albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d167f4edc09a2bb0d4a3b9493ed088f6962f92a0a22ad0d0ea28010736ad69f +size 5237570 diff --git a/assets/asset source files/Textures/grass_displace.exr b/assets/asset source files/Textures/grass_displace.exr new file mode 100644 index 0000000..3dc718a --- /dev/null +++ b/assets/asset source files/Textures/grass_displace.exr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64f50c1fc75849cf5331bfb224136dba04e93f0bfb853ad4b0f84d3d0aef4508 +size 5736537 diff --git a/assets/asset source files/Textures/grass_normal.png b/assets/asset source files/Textures/grass_normal.png new file mode 100644 index 0000000..30b1cd9 --- /dev/null +++ b/assets/asset source files/Textures/grass_normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e894994f0736d5d5c1b299a1b2a1b9c3c6fc76bd3b13404a49b34309ee7b7241 +size 8295660 diff --git a/assets/asset source files/Textures/grass_occlusion.exr b/assets/asset source files/Textures/grass_occlusion.exr new file mode 100644 index 0000000..c343b23 --- /dev/null +++ b/assets/asset source files/Textures/grass_occlusion.exr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc6c4970fee52c862ed3fa1c92e17a3db977e2dc92399cb668af97ab195f2a42 +size 3051222 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_01.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01.png new file mode 100644 index 0000000..274fd3f --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e748087c8592f5bb95a0872cf6fdce486d6c20d5ac7fdfcfd2d4234384ab33e +size 1889247 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_h.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_h.png new file mode 100644 index 0000000..85c149b --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_h.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff8113ecd04b7b95ecb348dbee934ceab83b858a4a555a4d52f30e647829425c +size 1903881 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_n.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_n.png new file mode 100644 index 0000000..f1907af --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4adceda0f6f76e646cb7a5cbe5eb4bd4e9065a603d4780987a706b308ff97663 +size 1080371 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_r.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_r.png new file mode 100644 index 0000000..a35cb6f --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_r.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8130c8802e4b878d4f6cc4ef2216740fd6d1f73f4531b44c82fbbb4ff879853 +size 873350 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_s.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_s.png new file mode 100644 index 0000000..37e514e --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_01_s.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69c5b97bdcd46a4590ad034f91339fa5524d85764b5a485eae17c39c2a2822f8 +size 344058 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_02.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02.png new file mode 100644 index 0000000..c4020ff --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5bae8494d3f22b3859491df84fb8dd45603ee7c0fe34f18a23ef44200460376 +size 1879865 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_h.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_h.png new file mode 100644 index 0000000..a03ed6f --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_h.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4728f7bb4f5180fa37b8446abdda903bdc2d61484466aa912e07a37cb973ca36 +size 1725634 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_n.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_n.png new file mode 100644 index 0000000..ba74b14 --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c76646ef4279be36c9638109e4d3fe92cbfeda4c2195e2899a84876e1b6fe78f +size 1360797 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_r.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_r.png new file mode 100644 index 0000000..55f6e22 --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_r.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6204474a4cdc656d11380717ab89e4f2555bba40d0075936b78d217a57c6a1a8 +size 883534 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_s.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_s.png new file mode 100644 index 0000000..6b4f61c --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_02_s.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:985959b3e92712e402cbbe690697235aa396e7092e883e40e51168e82678b745 +size 275672 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_03.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03.png new file mode 100644 index 0000000..5754f15 --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:463244d1a34b61fbe42ab22cc28bbf0f075703cf86a082ceff51ec1e1c4213b6 +size 4086480 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_h.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_h.png new file mode 100644 index 0000000..f8a97ee --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_h.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83f42dca63e1698d9ec2bfa9d7a9a4a58d86205424e64955302267f2ed0fa37c +size 2429465 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_n.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_n.png new file mode 100644 index 0000000..89fce1b --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a1de2fad462829d4ffa390ce21729ae728c6d61b0b6e28d33e250e79598f0f +size 3247134 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_r.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_r.png new file mode 100644 index 0000000..3f633dd --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_r.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ba6a706c5dd45a887ae7733ad43a4d548d7845fc29180a73a11f1cfade0f3da +size 2612272 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_s.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_s.png new file mode 100644 index 0000000..aecce8a --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_03_s.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:784beed0e13a68cb493c833ec51a6a214f3ab23d96a2ddec012182657b54aeab +size 1019686 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_04.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04.png new file mode 100644 index 0000000..024767b --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29f48d463e8007218a3a09d1609a8ffeeea265ab5dc62ccbd7b6b774ae0f85b7 +size 2539372 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_h.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_h.png new file mode 100644 index 0000000..afa439b --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_h.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:119e714ef67a7ef7a0e19baa292fa6a5108b7c09bac7fb85600d43dfea05f448 +size 1431256 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_n.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_n.png new file mode 100644 index 0000000..dd26dc9 --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97518548f1d2ed295748474e3ffa9e391599b002f35e0c450447910ce0b929bd +size 1691253 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_r.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_r.png new file mode 100644 index 0000000..04283d4 --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_r.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:236c51a7aed5bb678ff492f5842b2b344f298177688cd86825145eaebfa51a83 +size 1048030 diff --git a/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_s.png b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_s.png new file mode 100644 index 0000000..e0c89af --- /dev/null +++ b/assets/asset source files/Textures/handpainted-style-textures-3/hp_04_s.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc62c9904d1e26e22ab414fecd2e90cf16c5f0edcd8468907b79cd2d59a4379c +size 489539 diff --git a/assets/asset source files/Textures/rock-raw_albedo.png b/assets/asset source files/Textures/rock-raw_albedo.png new file mode 100644 index 0000000..f948764 --- /dev/null +++ b/assets/asset source files/Textures/rock-raw_albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2432fe9741639748ee657ff45226b21e2627150729ac6eba5fe48c782b8df598 +size 6973655 diff --git a/assets/asset source files/Textures/rock-raw_displace.png b/assets/asset source files/Textures/rock-raw_displace.png new file mode 100644 index 0000000..a8ef480 --- /dev/null +++ b/assets/asset source files/Textures/rock-raw_displace.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2adf53d792198a594c8aa257e89e1358a1c61165f5bc3e9096879e17d7efeea2 +size 2851915 diff --git a/assets/asset source files/Textures/rock-raw_normal.png b/assets/asset source files/Textures/rock-raw_normal.png new file mode 100644 index 0000000..604ed44 --- /dev/null +++ b/assets/asset source files/Textures/rock-raw_normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c46e6c4b8196bbc66b0e61c620eb0a4f0bbff3f7c6925bac0bd95ca1a2ced478 +size 10573694 diff --git a/assets/asset source files/Textures/rock-raw_occlusion.png b/assets/asset source files/Textures/rock-raw_occlusion.png new file mode 100644 index 0000000..cc11728 --- /dev/null +++ b/assets/asset source files/Textures/rock-raw_occlusion.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc318d5549ad6a51d0bce6de017d2513350d139a5fb501f8745302ad610cb3a2 +size 2294275 diff --git a/assets/asset source files/Textures/rock-raw_rough.png b/assets/asset source files/Textures/rock-raw_rough.png new file mode 100644 index 0000000..69f68eb --- /dev/null +++ b/assets/asset source files/Textures/rock-raw_rough.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:915deae2724caff68049c352078a9ad1184a1676a413729685c71fe7219d99de +size 830214 diff --git a/assets/asset source files/Textures/rock_weathered_1/rock_weathered_02.png b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_02.png new file mode 100644 index 0000000..7770427 --- /dev/null +++ b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69ede6969495fa806ff5ecad52eb496408183da0130f27ab970a619bb263422d +size 9169422 diff --git a/assets/asset source files/Textures/rock_weathered_1/rock_weathered_10.png b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_10.png new file mode 100644 index 0000000..04d3a0a --- /dev/null +++ b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a7745bcfa91188c3a05121124c90af48eb49ea87b573b5d52758337e1bce549 +size 9009062 diff --git a/assets/asset source files/Textures/rock_weathered_1/rock_weathered_15b.png b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_15b.png new file mode 100644 index 0000000..c7fe050 --- /dev/null +++ b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_15b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0aa0676dadc1d1e9040dd04af1537ba5267db6958f603a167a3fd9b9a52f7f03 +size 9132944 diff --git a/assets/asset source files/Textures/rock_weathered_1/rock_weathered_17.png b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_17.png new file mode 100644 index 0000000..d5be427 --- /dev/null +++ b/assets/asset source files/Textures/rock_weathered_1/rock_weathered_17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0ed852ad27fdd6d6e9eaddc6c952fd808f5b7e84bd1d3e7bf7a51ada0940c1e +size 9134790 diff --git a/assets/asset source files/Trees.blend b/assets/asset source files/Trees.blend new file mode 100644 index 0000000..5fa3181 --- /dev/null +++ b/assets/asset source files/Trees.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1715d4e4bb01447272c80dda51a3b0de52fcf7e4f6135fcb7a95fa7b08c87a7f +size 1192248 diff --git a/assets/asset source files/dude.blend b/assets/asset source files/dude.blend new file mode 100644 index 0000000..3e454c3 --- /dev/null +++ b/assets/asset source files/dude.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bff3e660621e72b570310895b277fef7726a0863822c3ea5b6cdef92cb77140 +size 957988 diff --git a/assets/asset source files/ground_0-0.png b/assets/asset source files/ground_0-0.png new file mode 100644 index 0000000..1bb8a61 --- /dev/null +++ b/assets/asset source files/ground_0-0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f2b371b59f200894f26c473f9861b24a86132e57b394ffd79955e0a34f60aa5 +size 238151 diff --git a/assets/asset source files/ground_0-1.png b/assets/asset source files/ground_0-1.png new file mode 100644 index 0000000..acf2dfa --- /dev/null +++ b/assets/asset source files/ground_0-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74b3432c10c5bb69b92504613e5aca5d376a5c3177245bd2af933d97b44f5f07 +size 456740 diff --git a/assets/asset source files/tree.blend b/assets/asset source files/tree.blend new file mode 100644 index 0000000..9f00fbe --- /dev/null +++ b/assets/asset source files/tree.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57af9e230dd613144985a3341115aa210c1ea467c349f2464a91d419804fcc5d +size 883836 diff --git a/assets/asset source files/tree2.blend b/assets/asset source files/tree2.blend new file mode 100644 index 0000000..3fcf927 --- /dev/null +++ b/assets/asset source files/tree2.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75a96c87199f4c64756c41cc205b3adf7f6aafeed59f069519802b599c8f46c6 +size 945024 diff --git a/assets/evening_road_01_puresky_2k.hdr b/assets/evening_road_01_puresky_2k.hdr new file mode 100644 index 0000000..4d1579c --- /dev/null +++ b/assets/evening_road_01_puresky_2k.hdr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c120097c261e61264363f9c85daa07fd362ca35e007a2fc121ff293fa2316552 +size 4989873 diff --git a/assets/evening_road_01_puresky_2k.hdr.import b/assets/evening_road_01_puresky_2k.hdr.import new file mode 100644 index 0000000..6de1e9d --- /dev/null +++ b/assets/evening_road_01_puresky_2k.hdr.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfbyx13bttuqo" +path.bptc="res://.godot/imported/evening_road_01_puresky_2k.hdr-1bf4102f06ce6db1a6e5f5b2ae4ccced.bptc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/evening_road_01_puresky_2k.hdr" +dest_files=["res://.godot/imported/evening_road_01_puresky_2k.hdr-1bf4102f06ce6db1a6e5f5b2ae4ccced.bptc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/foliage/Plant1.glb b/assets/foliage/Plant1.glb new file mode 100644 index 0000000..34895aa --- /dev/null +++ b/assets/foliage/Plant1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9da6d2b3063fceb72c429ffa09d2092b6a178cdae5159902b5ce9b81d52ea1ef +size 4492 diff --git a/assets/foliage/Plant1.glb.import b/assets/foliage/Plant1.glb.import new file mode 100644 index 0000000..49ef827 --- /dev/null +++ b/assets/foliage/Plant1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://clnog38ui1dg3" +path="res://.godot/imported/Plant1.glb-5121700e2888b39372f5bffe593134c5.scn" + +[deps] + +source_file="res://assets/foliage/Plant1.glb" +dest_files=["res://.godot/imported/Plant1.glb-5121700e2888b39372f5bffe593134c5.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/foliage/Rocks/Boulder1.glb b/assets/foliage/Rocks/Boulder1.glb new file mode 100644 index 0000000..4cb7764 --- /dev/null +++ b/assets/foliage/Rocks/Boulder1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ce218a7dcaff936f43fb0f25058e45c383e043608773ac026167e9ed024270d +size 9916 diff --git a/assets/foliage/Rocks/Boulder1.glb.import b/assets/foliage/Rocks/Boulder1.glb.import new file mode 100644 index 0000000..0aa8c19 --- /dev/null +++ b/assets/foliage/Rocks/Boulder1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cspbn7bf5j76d" +path="res://.godot/imported/Boulder1.glb-9f07c9a4fb58fbcf99851d7463c8674d.scn" + +[deps] + +source_file="res://assets/foliage/Rocks/Boulder1.glb" +dest_files=["res://.godot/imported/Boulder1.glb-9f07c9a4fb58fbcf99851d7463c8674d.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/foliage/Rocks/Boulder2.glb b/assets/foliage/Rocks/Boulder2.glb new file mode 100644 index 0000000..28b2ed4 --- /dev/null +++ b/assets/foliage/Rocks/Boulder2.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39475f5f54f543406963a31a349f56da5f536704e57bdc208d3f3a8fdffd59c9 +size 9916 diff --git a/assets/foliage/Rocks/Boulder2.glb.import b/assets/foliage/Rocks/Boulder2.glb.import new file mode 100644 index 0000000..9061c75 --- /dev/null +++ b/assets/foliage/Rocks/Boulder2.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://du76pkl0ai44a" +path="res://.godot/imported/Boulder2.glb-6175f81aa1a7af1fe8b2ba3d54a82326.scn" + +[deps] + +source_file="res://assets/foliage/Rocks/Boulder2.glb" +dest_files=["res://.godot/imported/Boulder2.glb-6175f81aa1a7af1fe8b2ba3d54a82326.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/foliage/Stream_Grass1.glb b/assets/foliage/Stream_Grass1.glb new file mode 100644 index 0000000..f7b921d --- /dev/null +++ b/assets/foliage/Stream_Grass1.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee81b045ac16a62a6e8e766b75724316d85f7bd324509068053dac84aa72b1c5 +size 19188 diff --git a/assets/foliage/Stream_Grass1.glb.import b/assets/foliage/Stream_Grass1.glb.import new file mode 100644 index 0000000..1a36090 --- /dev/null +++ b/assets/foliage/Stream_Grass1.glb.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cptvccyaqy23v" +path="res://.godot/imported/Stream_Grass1.glb-4c6c07c85dd2a2ac1171ec8d044eba55.scn" + +[deps] + +source_file="res://assets/foliage/Stream_Grass1.glb" +dest_files=["res://.godot/imported/Stream_Grass1.glb-4c6c07c85dd2a2ac1171ec8d044eba55.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=2 diff --git a/assets/materials/Cliff.tres b/assets/materials/Cliff.tres new file mode 100644 index 0000000..dcd3f98 --- /dev/null +++ b/assets/materials/Cliff.tres @@ -0,0 +1,27 @@ +[gd_resource type="StandardMaterial3D" load_steps=5 format=2] +[ext_resource path="Cliff_albedo.png" type="Texture" id=1] +[ext_resource path="Cliff_orm.png" type="Texture" id=2] +[ext_resource path="Cliff_normal.png" type="Texture" id=3] +[ext_resource path="Cliff_heightmap.png" type="Texture" id=4] +[resource] +albedo_color = Color(1, 1, 1, 1) +albedo_texture = ExtResource( 1 ) +metallic = 0 +roughness = 1 +roughness_texture = ExtResource( 2 ) +roughness_texture_channel = 1 +normal_enabled = true +normal_scale = 1 +normal_texture = ExtResource( 3 ) +ao_enabled = true +ao_texture = ExtResource( 2 ) +ao_texture_channel = 0 +heightmap_enabled = true +heightmap_scale = 12.5 +heightmap_deep_parallax = true +heightmap_min_layers = 8 +heightmap_max_layers = 32 +depth_texture = ExtResource( 4 ) + + + diff --git a/assets/materials/Cliff_albedo.png b/assets/materials/Cliff_albedo.png new file mode 100644 index 0000000..f948764 --- /dev/null +++ b/assets/materials/Cliff_albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2432fe9741639748ee657ff45226b21e2627150729ac6eba5fe48c782b8df598 +size 6973655 diff --git a/assets/materials/Cliff_albedo.png.import b/assets/materials/Cliff_albedo.png.import new file mode 100644 index 0000000..d967cf6 --- /dev/null +++ b/assets/materials/Cliff_albedo.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://daq7djclmyh24" +path.s3tc="res://.godot/imported/Cliff_albedo.png-d8058badda1213e282d439077a131dd8.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/materials/Cliff_albedo.png" +dest_files=["res://.godot/imported/Cliff_albedo.png-d8058badda1213e282d439077a131dd8.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/materials/Cliff_heightmap.png b/assets/materials/Cliff_heightmap.png new file mode 100644 index 0000000..a8ef480 --- /dev/null +++ b/assets/materials/Cliff_heightmap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2adf53d792198a594c8aa257e89e1358a1c61165f5bc3e9096879e17d7efeea2 +size 2851915 diff --git a/assets/materials/Cliff_heightmap.png.import b/assets/materials/Cliff_heightmap.png.import new file mode 100644 index 0000000..2b07510 --- /dev/null +++ b/assets/materials/Cliff_heightmap.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0oni6s8wl2pn" +path.s3tc="res://.godot/imported/Cliff_heightmap.png-f0da5a43540184eda3a0ccbe7cda46cd.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/materials/Cliff_heightmap.png" +dest_files=["res://.godot/imported/Cliff_heightmap.png-f0da5a43540184eda3a0ccbe7cda46cd.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=7 +roughness/src_normal="res://assets/Materials/Cliff_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/materials/Cliff_normal.png b/assets/materials/Cliff_normal.png new file mode 100644 index 0000000..604ed44 --- /dev/null +++ b/assets/materials/Cliff_normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c46e6c4b8196bbc66b0e61c620eb0a4f0bbff3f7c6925bac0bd95ca1a2ced478 +size 10573694 diff --git a/assets/materials/Cliff_normal.png.import b/assets/materials/Cliff_normal.png.import new file mode 100644 index 0000000..f07de2b --- /dev/null +++ b/assets/materials/Cliff_normal.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpwyptabij5wy" +path.s3tc="res://.godot/imported/Cliff_normal.png-187861817bf302c5a8d2ba29ecba6fe5.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/materials/Cliff_normal.png" +dest_files=["res://.godot/imported/Cliff_normal.png-187861817bf302c5a8d2ba29ecba6fe5.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://assets/Materials/Cliff_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/materials/Cliff_orm.png b/assets/materials/Cliff_orm.png new file mode 100644 index 0000000..0402dcf --- /dev/null +++ b/assets/materials/Cliff_orm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c27cd5c32aa1da40db09427568d4bf69390bf62c5e521d964fc8f75c966f74d +size 2745590 diff --git a/assets/materials/Cliff_orm.png.import b/assets/materials/Cliff_orm.png.import new file mode 100644 index 0000000..78b81ae --- /dev/null +++ b/assets/materials/Cliff_orm.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dft6idadmjfbj" +path.s3tc="res://.godot/imported/Cliff_orm.png-b46e0b0ff2dab13e87d70a47326cee96.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/materials/Cliff_orm.png" +dest_files=["res://.godot/imported/Cliff_orm.png-b46e0b0ff2dab13e87d70a47326cee96.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=8 +roughness/src_normal="res://assets/Materials/Cliff_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..764e38e --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://uex07m1ameg2" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..95396c8 --- /dev/null +++ b/project.godot @@ -0,0 +1,89 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Adventure Prototype" +run/main_scene="res://scenes/sandbox.tscn" +config/features=PackedStringArray("4.0", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 + +[importer_defaults] + +scene={ +"gltf/embedded_image_handling": 2 +} + +[input] + +MoveLeft={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null) +] +} +MoveRight={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +] +} +MoveForward={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) +] +} +MoveBackward={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +] +} +Exit={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Sprint={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Attack={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(102, 12),"global_position":Vector2(106, 55),"factor":1.0,"button_index":1,"pressed":true,"double_click":false,"script":null) +] +} +Block={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(226, 10),"global_position":Vector2(230, 53),"factor":1.0,"button_index":2,"pressed":true,"double_click":false,"script":null) +] +} +DebugAction={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"echo":false,"script":null) +] +} +DebugAction2={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"echo":false,"script":null) +] +} +DebugAction3={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":51,"key_label":0,"unicode":51,"echo":false,"script":null) +] +} + +[physics] + +3d/default_gravity_vector=Vector3(0, -9.8, 0) diff --git a/scenes/PlayerCamera.gd b/scenes/PlayerCamera.gd new file mode 100644 index 0000000..542aaae --- /dev/null +++ b/scenes/PlayerCamera.gd @@ -0,0 +1,17 @@ +extends Camera3D + +@export var Player: Player + +var PlayerLastPos + +# Called when the node enters the scene tree for the first time. +func _ready(): + PlayerLastPos = Player.position + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + position.x += (Player.position.x - PlayerLastPos.x) + position.y += (Player.position.y - PlayerLastPos.y) + position.z += (Player.position.z - PlayerLastPos.z) + PlayerLastPos = Player.position diff --git a/scenes/enemy/enemy.gd b/scenes/enemy/enemy.gd new file mode 100644 index 0000000..ab6f9c1 --- /dev/null +++ b/scenes/enemy/enemy.gd @@ -0,0 +1,58 @@ +extends CharacterBody3D + +@export var Target: Node3D +@export var Home: Area3D +@export var Speed = 3 +@export var ChaseDistance = 45 + +@export var DebugLabel: Label + +@onready var HurtBox = $HurtBox +@onready var StateMachine = $StateMachine +@onready var StateScanning = $StateMachine/EnemyScanning +@onready var StateAttacking = $StateMachine/EnemyAttack +@onready var StateChase = $StateMachine/EnemyChase + + +signal enemy_state_change(new_state) + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") + +func _ready(): + HurtBox.SetDisabled(false) + +func _process(_delta): + var distance = global_position.distance_squared_to(get_home().global_position) + get_debug_label().text += "\nDistance squared from home: %s" % distance + +func _physics_process(delta): + + # Add the gravity. + if not is_on_floor(): + velocity.y -= gravity * delta + + + move_and_slide() + +func get_state_name(): + return StateMachine.get_current_state().as_string() + +func get_target(): + return Target + +func get_speed(): + return Speed + +func get_home(): + return Home + +func get_chase_distance(): + return ChaseDistance + +func get_debug_label(): + return DebugLabel + + +func _on_state_machine_state_change(_entity_name, new_state): + enemy_state_change.emit(new_state) diff --git a/scenes/enemy/enemy.tscn b/scenes/enemy/enemy.tscn new file mode 100644 index 0000000..781c562 --- /dev/null +++ b/scenes/enemy/enemy.tscn @@ -0,0 +1,218 @@ +[gd_scene load_steps=19 format=3 uid="uid://daxv3yicufhql"] + +[ext_resource type="Script" path="res://scenes/enemy/enemy.gd" id="1_gipgt"] +[ext_resource type="PackedScene" uid="uid://dh6gl2iyoja7y" path="res://scenes/hurt_box.tscn" id="1_ui0da"] +[ext_resource type="PackedScene" uid="uid://bs7uftwssc1td" path="res://assets/Club.glb" id="2_5d0nt"] +[ext_resource type="Script" path="res://scripts/state machine/state_machine.gd" id="3_0dkwd"] +[ext_resource type="Script" path="res://scenes/hit_box.gd" id="3_ohgqx"] +[ext_resource type="Script" path="res://scenes/enemy/states/enemy_scanning.gd" id="4_j6ev3"] +[ext_resource type="Script" path="res://scenes/enemy/states/enemy_attack.gd" id="5_ka4y8"] +[ext_resource type="Script" path="res://scenes/enemy/states/enemy_chase.gd" id="8_mknsf"] +[ext_resource type="Script" path="res://scenes/enemy/states/enemy_return.gd" id="9_xecn3"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_vgewg"] +size = Vector3(0.15, 0.3, 0.15) + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ogpnh"] +radius = 0.35 +height = 1.85 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dtes8"] +albedo_color = Color(0.709804, 0, 0.0117647, 1) + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_xev0d"] +material = SubResource("StandardMaterial3D_dtes8") +radius = 0.35 +height = 1.85 + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_hwyxa"] +radius = 1.25 + +[sub_resource type="Animation" id="Animation_y74q0"] +resource_name = "Attack" +length = 0.6 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Club:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector3(-0.727536, -0.0666957, 0.106074), Vector3(-0.727536, -0.0666957, 0.436471), Vector3(-0.309349, -0.0666957, 0.62444), Vector3(-0.727536, -0.0666957, 0.106074)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Club/HitBox/CollisionShape3D:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.3, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Club:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(1.28673, 1.0746, 0.529401), Vector3(0, 0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("StateMachine/EnemyAttack:CanInterrupt") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} + +[sub_resource type="Animation" id="Animation_s1ft1"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Club:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(-0.727536, -0.0666957, 0.106074)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Club/HitBox/CollisionShape3D:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Club:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("StateMachine/EnemyAttack:CanInterrupt") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_8glue"] +_data = { +"Attack": SubResource("Animation_y74q0"), +"RESET": SubResource("Animation_s1ft1") +} + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_qns05"] +radius = 8.0 + +[node name="Enemy" type="CharacterBody3D"] +script = ExtResource("1_gipgt") + +[node name="Club" parent="." instance=ExtResource("2_5d0nt")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.727536, -0.0666957, 0.106074) + +[node name="HitBox" type="Area3D" parent="Club"] +script = ExtResource("3_ohgqx") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Club/HitBox"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000950217, 0.860342, 2.98023e-08) +shape = SubResource("BoxShape3D_vgewg") +disabled = true + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CapsuleShape3D_ogpnh") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("CapsuleMesh_xev0d") + +[node name="HurtBox" parent="." instance=ExtResource("1_ui0da")] +MyName = "Enemy" + +[node name="StateMachine" type="Node" parent="."] +script = ExtResource("3_0dkwd") +InitialState = "EnemyScanning" +EntityName = "Enemy" + +[node name="EnemyScanning" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "AnimPlayer", "state_machine")] +script = ExtResource("4_j6ev3") +Self = NodePath("../..") +AnimPlayer = NodePath("../../AnimationPlayer") +state_machine = NodePath("..") + +[node name="EnemyAttack" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "AnimPlayer", "state_machine")] +script = ExtResource("5_ka4y8") +Self = NodePath("../..") +AnimPlayer = NodePath("../../AnimationPlayer") +CanInterrupt = false +state_machine = NodePath("..") + +[node name="EnemyChase" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "AnimPlayer", "state_machine")] +script = ExtResource("8_mknsf") +Self = NodePath("../..") +AnimPlayer = NodePath("../../AnimationPlayer") +state_machine = NodePath("..") + +[node name="EnemyReturn" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "AnimPlayer", "state_machine")] +script = ExtResource("9_xecn3") +Self = NodePath("../..") +AnimPlayer = NodePath("../../AnimationPlayer") +state_machine = NodePath("..") + +[node name="AttackRange" type="Area3D" parent="."] + +[node name="AttackRangeCollider" type="CollisionShape3D" parent="AttackRange"] +shape = SubResource("CylinderShape3D_hwyxa") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_8glue") +} + +[node name="ChaseRange" type="Area3D" parent="."] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="ChaseRange"] +shape = SubResource("CylinderShape3D_qns05") + +[connection signal="state_change" from="StateMachine" to="." method="_on_state_machine_state_change"] +[connection signal="body_entered" from="AttackRange" to="StateMachine/EnemyAttack" method="_on_attack_range_body_entered"] +[connection signal="body_entered" from="AttackRange" to="StateMachine/EnemyChase" method="_on_attack_range_body_entered"] +[connection signal="body_exited" from="AttackRange" to="StateMachine/EnemyAttack" method="_on_area_3d_body_exited"] +[connection signal="body_entered" from="ChaseRange" to="StateMachine/EnemyScanning" method="_on_chase_range_body_entered"] +[connection signal="body_entered" from="ChaseRange" to="StateMachine/EnemyReturn" method="_on_chase_range_body_entered"] +[connection signal="body_exited" from="ChaseRange" to="StateMachine/EnemyChase" method="_on_chase_range_body_exited"] diff --git a/scenes/enemy/states/enemy_attack.gd b/scenes/enemy/states/enemy_attack.gd new file mode 100644 index 0000000..7a47bce --- /dev/null +++ b/scenes/enemy/states/enemy_attack.gd @@ -0,0 +1,41 @@ +class_name EnemyAttack +extends State + +@export var Self: Node3D +@export var AnimPlayer: AnimationPlayer +@export var CanInterrupt = true + +var target_in_range = true + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func on_process(_delta): + # Code modified based on this post: https://godotengine.org/qa/152739/how-to-rotate-an-object-towards-another-object + var target_vector = Self.get_target().global_position.direction_to(Self.global_position) + var target_basis = Basis.looking_at(target_vector) + Self.basis = Self.basis.slerp(target_basis, 0.5) + + if not target_in_range and CanInterrupt: + state_machine.transition("EnemyChase", {}) + +func enter(_params): + AnimPlayer.play("Attack") + +func exit(): + AnimPlayer.stop() + +func as_string(): + return "EnemyAttack" + + +func _on_area_3d_body_exited(body): + if body == Self.get_target(): + target_in_range = false + + +func _on_attack_range_body_entered(body): + if body == Self.get_target(): + target_in_range = true diff --git a/scenes/enemy/states/enemy_chase.gd b/scenes/enemy/states/enemy_chase.gd new file mode 100644 index 0000000..dc5240b --- /dev/null +++ b/scenes/enemy/states/enemy_chase.gd @@ -0,0 +1,37 @@ +class_name EnemyChase +extends State + +@export var Self: Node3D +@export var AnimPlayer: AnimationPlayer + +func enter(_params): + AnimPlayer.stop() + +func exit(): + Self.velocity = Vector3(0, 0, 0) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func on_process(_delta): + var target_vector = Self.global_position.direction_to(Self.get_target().global_position) + target_vector.y = 0 + target_vector = target_vector.normalized() + Self.velocity = target_vector * Self.get_speed() + + var distance = Self.global_position.distance_squared_to(Self.get_home().global_position) + + if distance >= Self.get_chase_distance(): + state_machine.transition("EnemyReturn", {}) + + +func as_string(): + return "EnemyChase" + + +func _on_attack_range_body_entered(body): + if body == Self.get_target(): + state_machine.transition("EnemyAttack", {}) + + +func _on_chase_range_body_exited(body): + if body == Self.get_target(): + state_machine.transition("EnemyReturn", {}) diff --git a/scenes/enemy/states/enemy_return.gd b/scenes/enemy/states/enemy_return.gd new file mode 100644 index 0000000..c63efa9 --- /dev/null +++ b/scenes/enemy/states/enemy_return.gd @@ -0,0 +1,37 @@ +class_name EnemyReturn +extends State + +var Target: Node3D +@export var Self: Node3D +@export var AnimPlayer: AnimationPlayer + +func enter(_params): + AnimPlayer.stop() + Self.get_home().body_entered.connect(on_enter_home_area) + if Self.get_home().overlaps_body(self): + state_machine.transition("EnemyScanning", {}) + + +func exit(): + Self.velocity = Vector3(0, 0, 0) + Self.get_home().body_entered.disconnect(on_enter_home_area) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func on_process(_delta): + var target_vector = Self.global_position.direction_to(Self.get_home().global_position) + #target_vector.y = 0 + target_vector = target_vector.normalized() + Self.velocity = target_vector * Self.get_speed() + + +func as_string(): + return "EnemyReturn" + +func on_enter_home_area(_area): + state_machine.transition("EnemyScanning", {}) + + +func _on_chase_range_body_entered(body): + var distance = Self.global_position.distance_squared_to(Self.get_home().global_position) + if body == Self.get_target() and distance < Self.get_chase_distance(): + state_machine.transition("EnemyChase", {}) diff --git a/scenes/enemy/states/enemy_scanning.gd b/scenes/enemy/states/enemy_scanning.gd new file mode 100644 index 0000000..bf7dada --- /dev/null +++ b/scenes/enemy/states/enemy_scanning.gd @@ -0,0 +1,16 @@ +class_name EnemyScanning +extends State + +@export var Self: CharacterBody3D +@export var AnimPlayer: AnimationPlayer + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func on_process(_delta): + pass + +func as_string(): + return "EnemyScanning" + +func _on_chase_range_body_entered(body): + if body == Self.get_target(): + state_machine.transition("EnemyChase", {}) diff --git a/scenes/hit_box.gd b/scenes/hit_box.gd new file mode 100644 index 0000000..fa72109 --- /dev/null +++ b/scenes/hit_box.gd @@ -0,0 +1,14 @@ +extends Area3D +class_name HitBox + +@export var Damage = 1 + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + pass diff --git a/scenes/hit_box.tscn b/scenes/hit_box.tscn new file mode 100644 index 0000000..2c46324 --- /dev/null +++ b/scenes/hit_box.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=3 uid="uid://o4ix41hrbuub"] + +[ext_resource type="Script" path="res://scenes/hit_box.gd" id="1_qedd8"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_4iypk"] +resource_local_to_scene = true +size = Vector3(0.5, 0.5, 0.5) + +[node name="HitBox" type="Area3D" groups=["HitBox"]] +script = ExtResource("1_qedd8") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_4iypk") +disabled = true diff --git a/scenes/home_area.gd b/scenes/home_area.gd new file mode 100644 index 0000000..ed6a1e8 --- /dev/null +++ b/scenes/home_area.gd @@ -0,0 +1,15 @@ +class_name HomeArea +extends Area3D + +@export var AreaRadius = 0.5 + +@onready var CollisionShape = $CollisionShape3D + +# Called when the node enters the scene tree for the first time. +func _ready(): + CollisionShape.shape.radius = AreaRadius + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/scenes/home_area.tscn b/scenes/home_area.tscn new file mode 100644 index 0000000..ee2bb71 --- /dev/null +++ b/scenes/home_area.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=3 format=3 uid="uid://d71sobtgrrft"] + +[ext_resource type="Script" path="res://scenes/home_area.gd" id="1_p5bqn"] + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_wijja"] + +[node name="HomeArea" type="Area3D"] +script = ExtResource("1_p5bqn") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CylinderShape3D_wijja") diff --git a/scenes/hurt_box.gd b/scenes/hurt_box.gd new file mode 100644 index 0000000..8186781 --- /dev/null +++ b/scenes/hurt_box.gd @@ -0,0 +1,27 @@ +extends Area3D +class_name HurtBox + +@export var MyName: String + +@onready var Collider = $CollisionShape3D + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + pass + + +func _on_area_entered(area): + #if area.is_in_group("HitBox"): + if area is HitBox: + var hit_box = area as HitBox + print("%s Taken %s damage!" % [MyName, hit_box.Damage]) + + +func SetDisabled(disabled): + Collider.disabled = disabled diff --git a/scenes/hurt_box.tscn b/scenes/hurt_box.tscn new file mode 100644 index 0000000..a1660c5 --- /dev/null +++ b/scenes/hurt_box.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=3 uid="uid://dh6gl2iyoja7y"] + +[ext_resource type="Script" path="res://scenes/hurt_box.gd" id="1_ntuv7"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_df2ie"] + +[node name="HurtBox" type="Area3D" groups=["HurtBox"]] +script = ExtResource("1_ntuv7") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_df2ie") +disabled = true + +[connection signal="area_entered" from="." to="." method="_on_area_entered"] diff --git a/scenes/player/player.gd b/scenes/player/player.gd new file mode 100644 index 0000000..33c96e1 --- /dev/null +++ b/scenes/player/player.gd @@ -0,0 +1,165 @@ +extends CharacterBody3D +class_name Player + +@export var DebugLabel: Label +@export var MoveSpeed = 100.0 +@export var SprintModifier = 2 +@export var Acceleration = 1000.0 +# @export var FrictionCoefficient = 0.15 +@export var AttackTime = .25 + +#@onready var AttackTimer = $AttackTimer +@onready var Weapon = $Weapon +@onready var AnimPlayer = $AnimationPlayer + +var Friction = Acceleration / MoveSpeed +var CanAttack = true +var IsAttacking = false +var Rotating = false +var IsBlocking = false + +signal player_state_change(new_state) + +func get_move_speed(): + return MoveSpeed + +func get_acceleration(): + return Acceleration + +func get_friction(): + return Friction + +func get_sprint_modifier(): + return SprintModifier + +func _physics_process(_delta): + pass + # DebugLabel.text = "" + + +# # MOVEMENT +# var accel_vec = Vector3.ZERO # The player's movement vector. +# if Input.is_action_pressed("MoveRight"): +# accel_vec.x = 1 +# if Input.is_action_pressed("MoveLeft"): +# accel_vec.x = -1 +# if Input.is_action_pressed("MoveForward"): +# accel_vec.z = -1 +# if Input.is_action_pressed("MoveBackward"): +# accel_vec.z = 1 +# +# +# if accel_vec.length() > 0: +# velocity += accel_vec.normalized() * Acceleration * delta +# +# var final_friction = Friction +# if Input.is_action_pressed("Sprint"): +# final_friction = Friction / SprintModifier +# +# # FRICTION +# velocity -= velocity * final_friction * delta +# +# # Attack +# +# +# if Input.is_action_just_pressed("DebugAction") and not Rotating: +# Rotating = true +# +# if Rotating: +# rotation.y += 0.1 +# +# if rotation.y > 2 * PI: +# Rotating = false +# rotation.y = 0 +# +# +# # DebugLabel.text += "\nRotation: %s" % rotation +# if Input.is_action_just_pressed("Attack") and CanAttack: +# CanAttack = false +# rotation.y = face_mouse() +## if mouse_pos.x < viewport_size.x / 2: +## rotation.y = -PI +## else: +## rotation.y = 0 +# AnimPlayer.play("Swing") +# +# +# +# # Block +# # Block to stop on a dime +# if Input.is_action_pressed("Block") and not IsBlocking: +# IsBlocking = true +# CanAttack = true # This is a temporary fix! It allows the player to attack again if they cancel into a block but it will also allow them to skip the attack cooldown. +# AnimPlayer.play("EnterBlock") +# +# elif not Input.is_action_pressed("Block") and IsBlocking: +# IsBlocking = false +# AnimPlayer.play("ExitBlock") +# +# if IsBlocking: +# velocity = Vector3(0.0, 0.0, 0.0) +# +# +# +# rotation.y = face_mouse() +# # MIN SPEED CLAMPING (Make zero when small enough - no infinite sliding) +# # if accel_vec.length() < 1 and velocity.length() < 15.01: +# # velocity = Vector2(0, 0) +# +# move_and_slide(); + + +func _on_animation_player_animation_finished(anim_name): + if anim_name == "Swing": + CanAttack = true + + +func face_mouse(): + var mouse_pos = get_viewport().get_mouse_position() + #var debug_string = "Mouse Pos: (%s, %s)" % [mouse_pos.x, mouse_pos.y] + #DebugLabel.text = DebugLabel.text + debug_string + + var viewport_size = get_viewport().size + var adjusted_mouse_pos = Vector2(mouse_pos.x - (viewport_size.x / 2), (mouse_pos.y - (viewport_size.y / 2)) * -1) + # DebugLabel.text += "\nAdjusted Mouse Coords: %s" % adjusted_mouse_pos + + var vec_right = Vector2(1.0, 0.0) + adjusted_mouse_pos = adjusted_mouse_pos.normalized() + var angle = vec_right.angle_to(adjusted_mouse_pos) + # DebugLabel.text += "\nAngle: %s" % angle + rotation.y = angle + +func do_movement(delta): + + var accel_vec = Vector3.ZERO # The player's movement vector. + var MoveRight = Input.is_action_pressed("MoveRight") + var MoveLeft = Input.is_action_pressed("MoveLeft") + var MoveForward = Input.is_action_pressed("MoveForward") + var MoveBackward = Input.is_action_pressed("MoveBackward") + + + if MoveRight: + accel_vec.x = 1 + if MoveLeft: + accel_vec.x = -1 + if MoveForward: + accel_vec.z = -1 + if MoveBackward: + accel_vec.z = 1 + + + if accel_vec.length() > 0: + velocity += accel_vec.normalized() * Acceleration * delta + + var final_friction = Friction + if Input.is_action_pressed("Sprint"): + final_friction = Friction / SprintModifier + + # FRICTION - prevent friction from affecting the y value + var prev_y = velocity.y + velocity -= velocity * final_friction * delta + velocity.y = prev_y + + +func _on_state_machine_state_change(_entity_name, new_state): + player_state_change.emit(new_state) diff --git a/scenes/player/player.tscn b/scenes/player/player.tscn new file mode 100644 index 0000000..58478d9 --- /dev/null +++ b/scenes/player/player.tscn @@ -0,0 +1,238 @@ +[gd_scene load_steps=17 format=3 uid="uid://dxdomdgegktpc"] + +[ext_resource type="Script" path="res://scenes/player/player.gd" id="1_dph0q"] +[ext_resource type="PackedScene" uid="uid://n4s4px2xqq2u" path="res://scenes/player/weapon.tscn" id="2_8s3rd"] +[ext_resource type="Script" path="res://scenes/hurt_box.gd" id="3_8wbwv"] +[ext_resource type="Script" path="res://scripts/state machine/state_machine.gd" id="4_vojqa"] +[ext_resource type="Script" path="res://scenes/player/states/player_idle.gd" id="5_odcgr"] +[ext_resource type="Script" path="res://scenes/player/states/player_moving.gd" id="6_qawb5"] +[ext_resource type="Script" path="res://scenes/player/states/player_in_air.gd" id="7_akv1d"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ahdjc"] +radius = 0.275 +height = 1.9 + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_vf3yy"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_hxptc"] +resource_local_to_scene = true +size = Vector3(1, 2, 1) + +[sub_resource type="Animation" id="Animation_exmdc"] +resource_name = "EnterBlock" +length = 0.2 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Weapon:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = false +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0.5, 0.086, 0.001), Vector3(0.75025, 0.380557, 0.001)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Weapon:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = false +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 3.14159), Vector3(0.959931, 0, 3.14159)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Weapon/HitBox/CollisionShape3D:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_lk6ve"] +resource_name = "ExitBlock" +length = 0.2 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Weapon:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = false +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0.75025, 0.380557, 0.001), Vector3(0.5, 0, 0.001)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Weapon:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = false +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0.959931, 0, 3.14159), Vector3(0, 0, 3.14159)] +} + +[sub_resource type="Animation" id="Animation_vwdqb"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Weapon:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0.499468, 0.0861932, 0.000701606)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Weapon/HitBox/CollisionShape3D:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Weapon:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 3.14159)] +} + +[sub_resource type="Animation" id="Animation_cthmh"] +resource_name = "Swing" +length = 0.6 +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Weapon:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0.5, 0.086, 0.001), Vector3(1.59287, 0.0861932, 0.000701606), Vector3(0.5, 0.086, 0.001)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Weapon/HitBox/CollisionShape3D:disabled") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.1, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [true, false, true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Weapon:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 3.14159), Vector3(1.5708, 1.5708, 3.14159), Vector3(0, 3.14159, 3.14159)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mwftf"] +_data = { +"EnterBlock": SubResource("Animation_exmdc"), +"ExitBlock": SubResource("Animation_lk6ve"), +"RESET": SubResource("Animation_vwdqb"), +"Swing": SubResource("Animation_cthmh") +} + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_wqdcc"] +radius = 0.25 + +[node name="Player" type="CharacterBody3D"] +script = ExtResource("1_dph0q") +MoveSpeed = 25.0 +Acceleration = 50.0 + +[node name="WorldCollider" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0477077, 0) +shape = SubResource("CapsuleShape3D_ahdjc") + +[node name="PlayerModel" type="MeshInstance3D" parent="."] +transform = Transform3D(0.642447, 0, 0, 0, 1, 0, 0, 0, 0.58538, 0, 0, 0) +mesh = SubResource("CapsuleMesh_vf3yy") + +[node name="Weapon" parent="." instance=ExtResource("2_8s3rd")] +transform = Transform3D(-0.05, -2.1549e-06, 0, 1.26759e-07, -0.85, 0, 0, 0, 0.05, 0.499468, 0.0861932, 0.000701606) + +[node name="CollisionShape3D" parent="Weapon/HitBox" index="0"] +shape = SubResource("BoxShape3D_hxptc") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_mwftf") +} + +[node name="HurtBox" type="Area3D" parent="."] +script = ExtResource("3_8wbwv") +MyName = "Player" + +[node name="CollisionShape3D" type="CollisionShape3D" parent="HurtBox"] +shape = SubResource("CapsuleShape3D_wqdcc") + +[node name="StateMachine" type="Node" parent="."] +script = ExtResource("4_vojqa") +InitialState = "PlayerIdle" +EntityName = "Player" + +[node name="PlayerIdle" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "state_machine")] +script = ExtResource("5_odcgr") +Self = NodePath("../..") +state_machine = NodePath("..") + +[node name="PlayerMoving" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "state_machine")] +script = ExtResource("6_qawb5") +Self = NodePath("../..") +state_machine = NodePath("..") + +[node name="PlayerInAir" type="Node" parent="StateMachine" node_paths=PackedStringArray("Self", "state_machine")] +script = ExtResource("7_akv1d") +Self = NodePath("../..") +state_machine = NodePath("..") + +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] +[connection signal="area_entered" from="HurtBox" to="HurtBox" method="_on_area_entered"] +[connection signal="state_change" from="StateMachine" to="." method="_on_state_machine_state_change"] + +[editable path="Weapon"] +[editable path="Weapon/HitBox"] diff --git a/scenes/player/states/player_attack.gd b/scenes/player/states/player_attack.gd new file mode 100644 index 0000000..328ca91 --- /dev/null +++ b/scenes/player/states/player_attack.gd @@ -0,0 +1,45 @@ +class_name PlayerAttack +extends State + + +@export var Self: CharacterBody3D + +var Acceleration = 1 +var Friction = 1 +var SprintModifier = 1 + +func enter(params: Dictionary): + Acceleration = Self.get_acceleration() + Friction = Self.get_friction() + SprintModifier = Self.get_sprint_modifier() + +func exit(): + pass + +func on_input(event: InputEvent): + pass + +func on_process(delta): + pass + +func on_physics_process(delta): + + if not Self.is_on_floor(): + state_machine.transition("PlayerInAir", {}) + return + + + Self.do_movement(delta) + + if abs(Self.velocity.x) < 0.1 and abs(Self.velocity.z) < 0.1: + Self.velocity = Vector3.ZERO + state_machine.transition("PlayerIdle", {}) + return + + + + Self.face_mouse() + Self.move_and_slide() + +func as_string(): + return "PlayerAttack" diff --git a/scenes/player/states/player_idle.gd b/scenes/player/states/player_idle.gd new file mode 100644 index 0000000..26714a9 --- /dev/null +++ b/scenes/player/states/player_idle.gd @@ -0,0 +1,40 @@ +class_name PlayerIdle +extends State + +@export var Self: CharacterBody3D + +func enter(_params: Dictionary): + pass + +func exit(): + pass + +func on_input(_event: InputEvent): + pass + +func on_process(_delta): + pass + +func on_physics_process(_delta): + + if not Self.is_on_floor(): + state_machine.transition("PlayerInAir", {}) + + if Input.is_action_pressed("MoveRight") \ + or Input.is_action_pressed("MoveLeft") \ + or Input.is_action_pressed("MoveForward") \ + or Input.is_action_pressed("MoveBackward"): + state_machine.transition("PlayerMoving", {}) + + if Input.is_action_just_pressed("Attack"): + state_machine.transition("PlayerAttacking", {}) + + if Input.is_action_pressed("Block"): + state_machine.transition("PlayerBlocking", {}) + + Self.face_mouse() + Self.move_and_slide() + + +func as_string(): + return "PlayerIdle" diff --git a/scenes/player/states/player_in_air.gd b/scenes/player/states/player_in_air.gd new file mode 100644 index 0000000..ef1113e --- /dev/null +++ b/scenes/player/states/player_in_air.gd @@ -0,0 +1,32 @@ +class_name PlayerInAir +extends State + + +@export var Self: CharacterBody3D + +func enter(_params: Dictionary): + pass + +func exit(): + pass + +func on_input(_event: InputEvent): + pass + +func on_process(_delta): + pass + +func on_physics_process(delta): + if not Self.is_on_floor(): + Self.velocity.y = -250 * delta + else: + state_machine.transition("PlayerIdle", {}) + + + Self.do_movement(delta) + + Self.face_mouse() + Self.move_and_slide() + +func as_string(): + return "PlayerInAir" diff --git a/scenes/player/states/player_moving.gd b/scenes/player/states/player_moving.gd new file mode 100644 index 0000000..94ca14b --- /dev/null +++ b/scenes/player/states/player_moving.gd @@ -0,0 +1,45 @@ +class_name PlayerMoving +extends State + + +@export var Self: CharacterBody3D + +var Acceleration = 1 +var Friction = 1 +var SprintModifier = 1 + +func enter(_params: Dictionary): + Acceleration = Self.get_acceleration() + Friction = Self.get_friction() + SprintModifier = Self.get_sprint_modifier() + +func exit(): + pass + +func on_input(_event: InputEvent): + pass + +func on_process(_delta): + pass + +func on_physics_process(delta): + + if not Self.is_on_floor(): + state_machine.transition("PlayerInAir", {}) + return + + + Self.do_movement(delta) + + if abs(Self.velocity.x) < 0.1 and abs(Self.velocity.z) < 0.1: + Self.velocity = Vector3.ZERO + state_machine.transition("PlayerIdle", {}) + return + + + + Self.face_mouse() + Self.move_and_slide() + +func as_string(): + return "PlayerMoving" diff --git a/scenes/player/weapon.tscn b/scenes/player/weapon.tscn new file mode 100644 index 0000000..5787b32 --- /dev/null +++ b/scenes/player/weapon.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=3 uid="uid://n4s4px2xqq2u"] + +[ext_resource type="PackedScene" uid="uid://o4ix41hrbuub" path="res://scenes/hit_box.tscn" id="1_wc05t"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hd7bw"] +albedo_color = Color(0.458824, 0.278431, 0.0352941, 1) + +[sub_resource type="CylinderMesh" id="CylinderMesh_0xtht"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_kfwn0"] +resource_local_to_scene = true +size = Vector3(1, 2, 1) + +[node name="Weapon" type="MeshInstance3D"] +transform = Transform3D(-0.05, -1.28346e-07, 0, 7.54979e-09, -0.85, 0, 0, 0, 0.05, -0.00252438, 0.871676, 0.00699198) +material_override = SubResource("StandardMaterial3D_hd7bw") +mesh = SubResource("CylinderMesh_0xtht") + +[node name="HitBox" parent="." instance=ExtResource("1_wc05t")] + +[node name="CollisionShape3D" parent="HitBox" index="0"] +transform = Transform3D(1, -6.82121e-13, 0, 2.66454e-15, 1, 0, 0, 0, 1, 1.86265e-08, -0.00800419, 0) +shape = SubResource("BoxShape3D_kfwn0") + +[editable path="HitBox"] diff --git a/scenes/sandbox.gd b/scenes/sandbox.gd new file mode 100644 index 0000000..98fb537 --- /dev/null +++ b/scenes/sandbox.gd @@ -0,0 +1,33 @@ +extends Node3D + +@onready var debug_label = $DebugLabel +@onready var enemy = $Enemies/Home/Enemy +@onready var Player = $Player/PlayerBody + +var enemy_state = "NONE" +var player_state = "NONE" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _physics_process(_delta): + #debug_label.text = ""; + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + debug_label.text = ""; + debug_label.text += "Player State: %s" % player_state + debug_label.text += "\nPlayer velocity: %s" % Player.velocity + debug_label.text += "\nEnemy State: %s" % enemy_state + + if Input.is_action_pressed("Exit"): + get_tree().quit() + +func _on_enemy_enemy_state_change(new_state): + enemy_state = new_state + + +func _on_player_body_player_state_change(new_state): + player_state = new_state diff --git a/scenes/sandbox.tscn b/scenes/sandbox.tscn new file mode 100644 index 0000000..ee17f94 --- /dev/null +++ b/scenes/sandbox.tscn @@ -0,0 +1,301 @@ +[gd_scene load_steps=19 format=3 uid="uid://dc3ydo407r1bc"] + +[ext_resource type="Script" path="res://scenes/sandbox.gd" id="1_jkac3"] +[ext_resource type="Texture2D" uid="uid://bfbyx13bttuqo" path="res://assets/evening_road_01_puresky_2k.hdr" id="1_nvhdg"] +[ext_resource type="Script" path="res://scenes/PlayerCamera.gd" id="2_wh563"] +[ext_resource type="PackedScene" uid="uid://dxdomdgegktpc" path="res://scenes/player/player.tscn" id="3_0wfjo"] +[ext_resource type="PackedScene" uid="uid://cuiaus556h6y1" path="res://scenes/water features/stream_1.tscn" id="3_qiqc2"] +[ext_resource type="PackedScene" uid="uid://bh8g52wkteael" path="res://scenes/water features/pond.tscn" id="4_lser0"] +[ext_resource type="PackedScene" uid="uid://dbtavf4t253dd" path="res://scenes/water features/stream.tscn" id="6_1ilio"] +[ext_resource type="PackedScene" uid="uid://c08obw415vv7s" path="res://assets/Terrain_All.glb" id="7_oy5xm"] +[ext_resource type="PackedScene" uid="uid://cptvccyaqy23v" path="res://assets/foliage/Stream_Grass1.glb" id="8_wfx85"] +[ext_resource type="PackedScene" uid="uid://clnog38ui1dg3" path="res://assets/foliage/Plant1.glb" id="9_gyf7e"] +[ext_resource type="PackedScene" uid="uid://wd47rbsbib08" path="res://assets/Tree1.glb" id="10_juqdl"] +[ext_resource type="PackedScene" uid="uid://daxv3yicufhql" path="res://scenes/enemy/enemy.tscn" id="11_dojda"] +[ext_resource type="PackedScene" uid="uid://cspbn7bf5j76d" path="res://assets/foliage/Rocks/Boulder1.glb" id="12_xa4n3"] +[ext_resource type="PackedScene" uid="uid://du76pkl0ai44a" path="res://assets/foliage/Rocks/Boulder2.glb" id="13_q4lrw"] + +[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_tim3g"] +panorama = ExtResource("1_nvhdg") + +[sub_resource type="Sky" id="Sky_tdvby"] +sky_material = SubResource("PanoramaSkyMaterial_tim3g") + +[sub_resource type="Environment" id="Environment_eyan1"] +background_mode = 2 +sky = SubResource("Sky_tdvby") + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_ba4a1"] + +[node name="Sandbox" type="Node3D"] +script = ExtResource("1_jkac3") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.00239105, 0.999997, 0, -0.999997, 0.00239105, 0.00367928, 20.0194, 0.0189295) +visible = false + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.36904, 0.844775, -2.06565) +visible = false +omni_range = 9.54 +omni_attenuation = 0.233258 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_eyan1") + +[node name="DebugLabel" type="Label" parent="." groups=["DebugLabel"]] +offset_right = 62.0 +offset_bottom = 43.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0.964706, 0.964706, 0.964706, 1) + +[node name="Terrain_All" parent="." instance=ExtResource("7_oy5xm")] + +[node name="Player" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.866673, 0, 11.9461) + +[node name="Camera3D" type="Camera3D" parent="Player" node_paths=PackedStringArray("Player")] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0.00477028, 4.45796, 3.58366) +script = ExtResource("2_wh563") +Player = NodePath("../PlayerBody") + +[node name="PlayerBody" parent="Player" node_paths=PackedStringArray("DebugLabel") instance=ExtResource("3_0wfjo")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0878778, 1.00276, 0.0193148) +DebugLabel = NodePath("../../DebugLabel") + +[node name="Terrain Features" type="Node" parent="."] + +[node name="Foliage" type="Node" parent="Terrain Features"] + +[node name="Stream_Grass1" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.78115, 1.86335, -17.1243) + +[node name="Stream_Grass2" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(1, 0, 0, 0, 0.996306, 0.085869, 0, -0.085869, 0.996306, 3.8481, 1.95075, -15.2863) + +[node name="Stream_Grass3" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(1, 0, 0, 0, 0.967445, 0.253083, 0, -0.253083, 0.967445, 3.8481, 2.23381, -13.3377) + +[node name="Stream_Grass4" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(1, 0, 0, 0, 0.997689, -0.00462442, 0, 0.00689566, 0.669078, 4.0194, 2.50086, -11.6698) + +[node name="Stream_Grass5" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(1, 0, 0, 0, 0.973119, -0.147645, 0, 0.220159, 0.652601, 4.04909, 2.39208, -10.8491) + +[node name="Stream_Grass6" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(0.0414314, 0.00450836, 0.668513, 0.00916843, 0.997659, -0.00328041, -0.999099, 0.00934213, 0.0276923, 5.32664, 2.31344, -9.25584) + +[node name="Stream_Grass7" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(0.0416362, 0.0280465, 0.668249, 0.00818832, 0.997275, -0.0190528, -0.999099, 0.00934213, 0.0276923, 6.65273, 2.28077, -9.25584) + +[node name="Stream_Grass8" parent="Terrain Features/Foliage" instance=ExtResource("8_wfx85")] +transform = Transform3D(0.0416362, 0.0280465, 0.668249, 0.00818832, 0.997275, -0.0190528, -0.999099, 0.00934213, 0.0276923, 1.26186, 1.95902, -9.62786) + +[node name="Plant1" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.22948, -0.672325, -9.08673) + +[node name="Plant7" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.43228, -0.672325, -1.13881) + +[node name="Plant8" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.87029, -0.78379, -1.13881) + +[node name="Plant9" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.58401, -0.78379, -0.63015) + +[node name="Plant10" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.64927, -0.610466, -0.74911) + +[node name="Plant11" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.93596, -0.610466, 0.231187) + +[node name="Plant2" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(0.590141, 0, -0.8073, 0, 1, 0, 0.8073, 0, 0.590141, 4.91491, -0.672325, -9.08673) + +[node name="Plant3" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(0.590141, 0, -0.8073, 0, 1, 0, 0.8073, 0, 0.590141, 2.0577, -0.672325, -9.28615) + +[node name="Plant4" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(0.886349, 0, 0.463018, 0, 1, 0, -0.463018, 0, 0.886349, 1.65057, -0.632347, -9.22076) + +[node name="Plant5" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(0.886349, 0, 0.463018, 0, 1, 0, -0.463018, 0, 0.886349, 2.10336, 0.860697, -10.5364) + +[node name="Plant6" parent="Terrain Features/Foliage" instance=ExtResource("9_gyf7e")] +transform = Transform3D(0.886349, 0, 0.463018, 0, 1, 0, -0.463018, 0, 0.886349, 3.70294, 0.692647, -10.5755) + +[node name="Cliffs" type="Node" parent="Terrain Features"] + +[node name="Boulder1" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.08048, 1.24705, -9.78466) + +[node name="Boulder9" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(1.01985, 0, 0.358004, 0, 1, 0, -0.377093, 0, 0.968225, 0.336231, 1.24705, -9.78466) + +[node name="Boulder10" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(-0.0260025, 0, -0.999662, 0, 1, 0, 0.999662, 0, -0.0260025, 0.265977, 1.24705, -8.0025) + +[node name="Boulder12" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(0.268668, 0, -0.963233, 0, 1, 0, 0.963233, 0, 0.268668, 0.00176963, 0.158411, -5.20776) + +[node name="Boulder13" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(1.01985, 0, 0.358004, 0, 1, 0, -0.377093, 0, 0.968225, -7.56736, 1.48692, -9.78466) + +[node name="Boulder14" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(-0.0260025, 0, -0.999662, 0, 1, 0, 0.999662, 0, -0.0260025, -7.63762, 1.24705, -8.0025) + +[node name="Boulder15" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(-0.0260025, 0, -0.999662, -0.414632, 0.909925, 0.0107851, 0.909617, 0.414773, -0.0236603, -7.19164, 0.143414, -5.20776) + +[node name="Boulder7" parent="Terrain Features/Cliffs" instance=ExtResource("12_xa4n3")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5751, -1.00664, -0.826862) + +[node name="Boulder2" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(0.808801, 0.588082, 0, -0.588082, 0.808801, 0, 0, 0, 1, 3.90544, -0.671307, -10.2068) + +[node name="Boulder4" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.994132, 0.108173, 0, -0.108173, -0.994132, 0, 0, 0, 1, 8.15338, 0.859362, -9.67111) + +[node name="Boulder17" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(0.186112, -0.982529, 0, 0.982529, 0.186112, 0, 0, 0, 1, 7.41444, 1.15258, -9.82399) + +[node name="Boulder16" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.994132, 0.108173, 0, -0.108173, -0.994132, 0, 0, 0, 1, -6.92537, -0.594803, -4.20331) + +[node name="Boulder11" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.994132, 0.108173, 0, -0.108173, -0.994132, 0, 0, 0, 1, 0.0658691, 0.363612, -5.54317) + +[node name="Boulder5" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.994132, 0.108173, 0, -0.108173, -0.994132, 0, 0, 0, 1, 3.46304, -1.16678, -0.350676) + +[node name="Boulder8" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.492484, -0.870321, 0, 0.870321, -0.492484, 0, 0, 0, 1, 4.0338, -1.39229, -0.350676) + +[node name="Boulder6" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(0.963007, -0.104786, -0.248267, -0.108173, -0.994132, 0, -0.24681, 0.0268558, -0.968692, 5.38466, -1.16678, -0.350676) + +[node name="Boulder3" parent="Terrain Features/Cliffs" instance=ExtResource("13_q4lrw")] +transform = Transform3D(-0.872103, -0.489322, 0, 0.489322, -0.872103, 0, 0, 0, 1, 2.66911, -0.702674, -10.2068) + +[node name="Trees" type="Node" parent="Terrain Features"] + +[node name="Tree1" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, -5.83392) + +[node name="Tree2" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, -3.26014) + +[node name="Tree15" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, -1.26014) + +[node name="Tree16" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, 1.1331) + +[node name="Tree17" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, 4.90379) + +[node name="Tree18" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, 8.01733) + +[node name="Tree20" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.35696, 0, 9.24551) + +[node name="Tree21" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(0.469133, 0, -0.883128, 0, 1, 0, 0.883128, 0, 0.469133, 1.51639, 0, 9.07487) + +[node name="Tree22" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(0.469133, 0, -0.883128, 0, 1, 0, 0.883128, 0, 0.469133, 7.66113, 0, 5.94153) + +[node name="Tree19" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10055, 0, 11.7557) + +[node name="Tree3" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.23248, 0, -6.0961) + +[node name="Tree23" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5227, 0, -1.0961) + +[node name="Tree4" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -11.3396) + +[node name="Tree10" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.54272, 1.82328, -11.3396) + +[node name="Tree11" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.54272, 1.82328, -15.0206) + +[node name="Tree12" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.54272, 1.82328, -20.492) + +[node name="Tree13" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.54272, 1.82328, -24.3466) + +[node name="Tree14" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.0286, 1.82328, -10.4688) + +[node name="Tree5" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -13.9562) + +[node name="Tree6" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -16.9254) + +[node name="Tree7" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -20.1125) + +[node name="Tree8" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -23.7556) + +[node name="Tree9" parent="Terrain Features/Trees" instance=ExtResource("10_juqdl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.81281, 1.82328, -27.8316) + +[node name="Water Features" type="Node" parent="Terrain Features"] + +[node name="pond" parent="Terrain Features/Water Features" instance=ExtResource("4_lser0")] +transform = Transform3D(9.92304, 0, 0, 0, 1, 0, 0, 0, 9.55153, 3.06944, -0.207308, 3.95083) +visible = false + +[node name="Stream" parent="Terrain Features/Water Features" instance=ExtResource("6_1ilio")] +transform = Transform3D(10.0171, 0, 0, 0, 1, 0, 0, 0, 10.6527, 3.66765, -0.598863, -4.77108) +visible = false + +[node name="Stream2" parent="Terrain Features/Water Features" instance=ExtResource("6_1ilio")] +transform = Transform3D(11.6209, 0, 0, 0, 1, 0, 0, 0, 20.381, 2.75667, 0.921271, -20.2691) +visible = false + +[node name="Waterfall1" type="Node" parent="Terrain Features/Water Features"] + +[node name="Stream3" parent="Terrain Features/Water Features/Waterfall1" instance=ExtResource("6_1ilio")] +transform = Transform3D(-2.00619, 0.000873537, -0.000902448, 0, 1.55613, 0.169662, 0.00346664, 0.505527, -0.522258, 3.12372, 0.787294, -9.9193) +visible = false + +[node name="Stream4" parent="Terrain Features/Water Features/Waterfall1" instance=ExtResource("6_1ilio")] +transform = Transform3D(-2.00619, 0.00216578, -0.000610292, 0, 1.05244, 0.42061, 0.00346664, 1.25336, -0.353184, 3.1242, 0.515674, -9.48855) +visible = false + +[node name="Stream5" parent="Terrain Features/Water Features/Waterfall1" instance=ExtResource("6_1ilio")] +transform = Transform3D(-2.00619, 0.00381309, -0.000645963, 0, 0.667459, 1.23591, 0.00346664, 2.20669, -0.373827, 3.12461, -0.278793, -9.11829) +visible = false + +[node name="Stream1" parent="Terrain Features/Water Features" instance=ExtResource("3_qiqc2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0365787, 0) + +[node name="Pond" parent="Terrain Features/Water Features" instance=ExtResource("4_lser0")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0741181, 0) + +[node name="Enemies" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.58717, 2.92171, -18.2591) + +[node name="Home" type="Area3D" parent="Enemies"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.014904, 0, -0.519306) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Enemies/Home"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00920117, 0.0533814, 0.0702078) +shape = SubResource("CylinderShape3D_ba4a1") + +[node name="Enemy" parent="Enemies/Home" node_paths=PackedStringArray("Target", "Home", "DebugLabel") instance=ExtResource("11_dojda")] +Target = NodePath("../../../Player/PlayerBody") +Home = NodePath("..") +DebugLabel = NodePath("../../../DebugLabel") + +[connection signal="player_state_change" from="Player/PlayerBody" to="." method="_on_player_body_player_state_change"] +[connection signal="enemy_state_change" from="Enemies/Home/Enemy" to="." method="_on_enemy_enemy_state_change"] diff --git a/scenes/water features/Pond.tres b/scenes/water features/Pond.tres new file mode 100644 index 0000000..f702cba --- /dev/null +++ b/scenes/water features/Pond.tres @@ -0,0 +1,53 @@ +[gd_resource type="ShaderMaterial" load_steps=8 format=3 uid="uid://dsdycg1ns46kn"] + +[ext_resource type="Shader" path="res://shaders/water.gdshader" id="1_jdgi7"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_luiqq"] +noise_type = 3 +fractal_type = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_shhxu"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_luiqq") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_12ji5"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_k2wxw"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_12ji5") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_id15d"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_au2vc"] +seamless = true +noise = SubResource("FastNoiseLite_id15d") + +[resource] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_jdgi7") +shader_parameter/albedo = Color(0.627451, 0.752941, 1, 1) +shader_parameter/albedo2 = Color(0.4, 0.72549, 1, 1) +shader_parameter/color_deep = Color(0.105882, 0.294118, 0.329412, 1) +shader_parameter/color_shallow = Color(0, 0.552941, 0.65098, 1) +shader_parameter/alpha = 0.75 +shader_parameter/beers_law = 2.0 +shader_parameter/depth_offset = -0.75 +shader_parameter/metallic = 0.0 +shader_parameter/roughness = 0.02 +shader_parameter/wave_direction = Vector2(1, 1) +shader_parameter/wave_direction2 = Vector2(-1, -1) +shader_parameter/time_scale = 0.005 +shader_parameter/noise_scale = 25.0 +shader_parameter/height_scale = 0.025 +shader_parameter/edge_scale = 0.1 +shader_parameter/near = 0.5 +shader_parameter/far = 100.0 +shader_parameter/edge_color = Color(1, 1, 1, 1) +shader_parameter/wave = SubResource("NoiseTexture2D_au2vc") +shader_parameter/texture_normal = SubResource("NoiseTexture2D_shhxu") +shader_parameter/texture_normal2 = SubResource("NoiseTexture2D_k2wxw") diff --git a/scenes/water features/pond.tscn b/scenes/water features/pond.tscn new file mode 100644 index 0000000..b194a61 --- /dev/null +++ b/scenes/water features/pond.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://bh8g52wkteael"] + +[ext_resource type="PackedScene" uid="uid://celi53wxxoubl" path="res://assets/Pond.glb" id="1_oa3l1"] +[ext_resource type="Material" uid="uid://dsdycg1ns46kn" path="res://scenes/water features/Pond.tres" id="2_d6i7n"] + +[node name="Pond" instance=ExtResource("1_oa3l1")] + +[node name="Pond2" parent="." index="0"] +material_override = ExtResource("2_d6i7n") diff --git a/scenes/water features/stream.tres b/scenes/water features/stream.tres new file mode 100644 index 0000000..64a8b04 --- /dev/null +++ b/scenes/water features/stream.tres @@ -0,0 +1,53 @@ +[gd_resource type="ShaderMaterial" load_steps=8 format=3 uid="uid://miqp45a8we7o"] + +[ext_resource type="Shader" path="res://shaders/water.gdshader" id="1_g1heg"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_luiqq"] +noise_type = 3 +fractal_type = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_shhxu"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_luiqq") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_12ji5"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_k2wxw"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_12ji5") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_id15d"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_au2vc"] +seamless = true +noise = SubResource("FastNoiseLite_id15d") + +[resource] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_g1heg") +shader_parameter/albedo = Color(0.94902, 0.964706, 1, 1) +shader_parameter/albedo2 = Color(0.760784, 0.886275, 1, 1) +shader_parameter/color_deep = Color(0.105882, 0.294118, 0.329412, 1) +shader_parameter/color_shallow = Color(0, 0.552941, 0.65098, 1) +shader_parameter/alpha = 0.3 +shader_parameter/beers_law = 2.0 +shader_parameter/depth_offset = -0.75 +shader_parameter/metallic = 0.0 +shader_parameter/roughness = 0.02 +shader_parameter/wave_direction = Vector2(1, -1) +shader_parameter/wave_direction2 = Vector2(-1, -1) +shader_parameter/time_scale = 0.015 +shader_parameter/noise_scale = 25.0 +shader_parameter/height_scale = 0.025 +shader_parameter/edge_scale = 0.1 +shader_parameter/near = 0.5 +shader_parameter/far = 100.0 +shader_parameter/edge_color = Color(0.94902, 0.964706, 1, 1) +shader_parameter/wave = SubResource("NoiseTexture2D_au2vc") +shader_parameter/texture_normal = SubResource("NoiseTexture2D_shhxu") +shader_parameter/texture_normal2 = SubResource("NoiseTexture2D_k2wxw") diff --git a/scenes/water features/stream.tscn b/scenes/water features/stream.tscn new file mode 100644 index 0000000..98ad906 --- /dev/null +++ b/scenes/water features/stream.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://dbtavf4t253dd"] + +[ext_resource type="PackedScene" uid="uid://cis7uy4tphqw2" path="res://scenes/water features/water_plane.tscn" id="1_1qjlr"] +[ext_resource type="Material" uid="uid://miqp45a8we7o" path="res://scenes/water features/stream.tres" id="2_cgoyq"] + +[node name="Stream" type="Node3D"] + +[node name="WaterPlane" parent="." instance=ExtResource("1_1qjlr")] +surface_material_override/0 = ExtResource("2_cgoyq") diff --git a/scenes/water features/stream_1.tscn b/scenes/water features/stream_1.tscn new file mode 100644 index 0000000..3af4d00 --- /dev/null +++ b/scenes/water features/stream_1.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://cuiaus556h6y1"] + +[ext_resource type="PackedScene" uid="uid://c6qiu24k8msle" path="res://assets/Stream1.glb" id="1_6jxd1"] +[ext_resource type="Material" uid="uid://miqp45a8we7o" path="res://scenes/water features/stream.tres" id="2_ayfu6"] + +[node name="Stream1" instance=ExtResource("1_6jxd1")] + +[node name="Stream12" parent="." index="0"] +material_override = ExtResource("2_ayfu6") diff --git a/scenes/water features/water_plane.tscn b/scenes/water features/water_plane.tscn new file mode 100644 index 0000000..f6a0e1d --- /dev/null +++ b/scenes/water features/water_plane.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=10 format=3 uid="uid://cis7uy4tphqw2"] + +[ext_resource type="Shader" path="res://shaders/water.gdshader" id="1_b41v8"] + +[sub_resource type="QuadMesh" id="QuadMesh_i1rjn"] +subdivide_width = 200 +subdivide_depth = 200 +orientation = 1 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_luiqq"] +noise_type = 3 +fractal_type = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_shhxu"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_luiqq") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_12ji5"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_k2wxw"] +seamless = true +as_normal_map = true +bump_strength = 20.0 +noise = SubResource("FastNoiseLite_12ji5") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_id15d"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_au2vc"] +seamless = true +noise = SubResource("FastNoiseLite_id15d") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gx0ut"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_b41v8") +shader_parameter/albedo = Color(0.627451, 0.752941, 1, 1) +shader_parameter/albedo2 = Color(0.4, 0.72549, 1, 1) +shader_parameter/color_deep = Color(0.105882, 0.294118, 0.329412, 1) +shader_parameter/color_shallow = Color(0, 0.552941, 0.65098, 1) +shader_parameter/alpha = 0.75 +shader_parameter/beers_law = 2.0 +shader_parameter/depth_offset = -0.75 +shader_parameter/metallic = 0.0 +shader_parameter/roughness = 0.02 +shader_parameter/wave_direction = Vector2(1, 1) +shader_parameter/wave_direction2 = Vector2(-1, -1) +shader_parameter/time_scale = 0.005 +shader_parameter/noise_scale = 25.0 +shader_parameter/height_scale = 0.025 +shader_parameter/edge_scale = 0.1 +shader_parameter/near = 0.5 +shader_parameter/far = 100.0 +shader_parameter/edge_color = Color(1, 1, 1, 1) +shader_parameter/wave = SubResource("NoiseTexture2D_au2vc") +shader_parameter/texture_normal = SubResource("NoiseTexture2D_shhxu") +shader_parameter/texture_normal2 = SubResource("NoiseTexture2D_k2wxw") + +[node name="WaterPlane" type="MeshInstance3D"] +cast_shadow = 0 +mesh = SubResource("QuadMesh_i1rjn") +surface_material_override/0 = SubResource("ShaderMaterial_gx0ut") diff --git a/scripts/state machine/state.gd b/scripts/state machine/state.gd new file mode 100644 index 0000000..84072a1 --- /dev/null +++ b/scripts/state machine/state.gd @@ -0,0 +1,23 @@ +class_name State +extends Node + +@export var state_machine: StateMachine + + +func enter(_params: Dictionary): + pass + +func exit(): + pass + +func on_input(_event: InputEvent): + pass + +func on_process(_delta): + pass + +func on_physics_process(_delta): + pass + +func as_string(): + return "Base State" diff --git a/scripts/state machine/state_machine.gd b/scripts/state machine/state_machine.gd new file mode 100644 index 0000000..70317c9 --- /dev/null +++ b/scripts/state machine/state_machine.gd @@ -0,0 +1,41 @@ + +class_name StateMachine +extends Node + +@export var InitialState: String = "" +@export var EntityName: String = "" + +var state: State + +signal state_change(entity_name, new_state) + +# Called when the node enters the scene tree for the first time. +func _ready(): + transition(InitialState, {}) + + +func transition(_state: String, params: Dictionary): + + if not has_node(_state): + push_error("State could not be found: %s" % _state) + return + + state_change.emit(EntityName, _state) + + if not state == null: + state.exit() + + state = get_node(_state) + state.enter(params) + +func _unhandled_input(event): + state.on_input(event) + +func _process(delta): + state.on_process(delta) + +func _physics_process(delta): + state.on_physics_process(delta) + +func get_current_state(): + return state diff --git a/shaders/water.gdshader b/shaders/water.gdshader new file mode 100644 index 0000000..8dfd79b --- /dev/null +++ b/shaders/water.gdshader @@ -0,0 +1,97 @@ + +// Water shader from: +// https://stayathomedev.com/tutorials/3d/single-plane-water-shader/ + +shader_type spatial; + +// PBR and color +uniform vec3 albedo : source_color; +uniform vec3 albedo2 : source_color; +uniform vec4 color_deep : source_color; +uniform vec4 color_shallow : source_color; +uniform float alpha = 0.75; +uniform float beers_law = 2.0; +uniform float depth_offset = -0.75; +uniform float metallic : hint_range(0.0, 1.0) = 0; +uniform float roughness : hint_range(0.0, 1.0) = 0.02; + +uniform sampler2D wave; +uniform sampler2D texture_normal; +uniform sampler2D texture_normal2; + +// Displacement +uniform vec2 wave_direction = vec2(2.0,0.0); +uniform vec2 wave_direction2 = vec2(0.0,1.0); +uniform float time_scale : hint_range(0.0, 0.2, 0.005) = 0.025; +uniform float noise_scale = 10.0; +uniform float height_scale = 0.15; + +// Edge Detection +uniform float edge_scale = 0.1; +uniform float near = 0.5; +uniform float far = 100.0; +uniform vec3 edge_color : source_color; + +varying float height; +varying vec3 world_pos; + +uniform sampler2D DEPTH_TEXTURE: hint_depth_texture, filter_linear_mipmap; +uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; + + + +float fresnel(float amount, vec3 normal, vec3 view) +{ + return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount); +} + +float edge(float depth) +{ + depth = 2.0 * depth - 1.0; + return near * far / (far + depth * (near - far)); +} + +void vertex() +{ + world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; + height = texture(wave, world_pos.xz / noise_scale + TIME * time_scale).r; + VERTEX.y += height * height_scale; +} + +void fragment() +{ + // Time calculations for wave (normal map) movement + vec2 time = (TIME * wave_direction) * time_scale; + vec2 time2 = (TIME * wave_direction2) * time_scale; + + // Blend normal maps into one + vec3 normal_blend = mix(texture(texture_normal,world_pos.xz / noise_scale + time).rgb, texture(texture_normal2,world_pos.xz / noise_scale + time2).rgb, 0.5); + + float depth_texture = texture(DEPTH_TEXTURE, SCREEN_UV).r * 2.0 - 1.0; + float depth = PROJECTION_MATRIX[3][2] / (depth_texture + PROJECTION_MATRIX[2][2]); + float depth_blend = exp((depth+VERTEX.z + depth_offset) * -beers_law); + depth_blend = clamp(1.0 - depth_blend, 0.0, 1.0); + float depth_blend_power = clamp(pow(depth_blend, 2.5), 0.0, 1.0); + + // Retrieving depth color and applying the deep and shallow colors + vec3 screen_color = textureLod(SCREEN_TEXTURE, SCREEN_UV, depth_blend_power * 2.5).rgb; + vec3 depth_color = mix(color_shallow.rgb, color_deep.rgb, depth_blend_power); + vec3 color = mix(screen_color * depth_color, depth_color * 0.25, depth_blend_power * 0.5); + + // Getting edge depth calc + float z_depth = edge(texture(DEPTH_TEXTURE, SCREEN_UV).x); + float z_pos = edge(FRAGCOORD.z); + float z_dif = z_depth - z_pos; + + // Calculate Fresnel + float fresnel = fresnel(5.0, NORMAL, VIEW); + vec3 surface_color = mix(albedo, albedo2, fresnel); // Interpolate albedo values by frensel + + vec3 depth_color_adj = mix(edge_color, color, step(edge_scale, z_dif)); + + ALBEDO = clamp(surface_color + depth_color_adj,vec3(0.0),vec3(1.0)); + METALLIC = metallic; + ROUGHNESS = roughness; + NORMAL_MAP = normal_blend; + ALPHA = alpha; +}