diff --git a/asset_credits.org b/asset_credits.org index fe7aeb5..6a3ee94 100644 --- a/asset_credits.org +++ b/asset_credits.org @@ -86,3 +86,19 @@ Asset credits *** Author: lmbubec *** License: CC0 + +** grass1.wav - grass5.wav + +*** Retrieved from https://freesound.org/people/mmmtoop/sounds/674030/ + +*** Author: mmmtoop + +*** License: CC0 + +** sand1.wav - sand3.wav + +*** Retrieved from https://freesound.org/people/Elements-Library/sounds/683785/ + +*** Author: Elements-Library + +*** License: CC0 diff --git a/asset_dev/audio/366597__jittels__golf-ball-bounce.wav b/asset_dev/audio/366597__jittels__golf-ball-bounce.wav new file mode 100644 index 0000000..560a351 --- /dev/null +++ b/asset_dev/audio/366597__jittels__golf-ball-bounce.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa922bf6e1ccbb2836d48e301afa531bc692c87b1da77034aebdb22c455219d +size 1581262 diff --git a/asset_dev/audio/399294__komitwav__synth-sparkle.wav b/asset_dev/audio/399294__komitwav__synth-sparkle.wav new file mode 100644 index 0000000..a5af577 --- /dev/null +++ b/asset_dev/audio/399294__komitwav__synth-sparkle.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48a5b05a071d4fdeb8eb7cba69c2c762731caeb9bee6e4af386226319d79e0fe +size 5627786 diff --git a/asset_dev/audio/674030__mmmtoop__230104-037_normalized_floor_mat_golf_ball_potential_kick_hit.wav b/asset_dev/audio/674030__mmmtoop__230104-037_normalized_floor_mat_golf_ball_potential_kick_hit.wav new file mode 100644 index 0000000..eed5cd2 --- /dev/null +++ b/asset_dev/audio/674030__mmmtoop__230104-037_normalized_floor_mat_golf_ball_potential_kick_hit.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a209a15779e58b3ae7cd926b717351d745d3190e8c3dfb0b028a440ab819781 +size 2734752 diff --git a/asset_dev/audio/683785__elements-library__hard-impact-on-sand.wav b/asset_dev/audio/683785__elements-library__hard-impact-on-sand.wav new file mode 100644 index 0000000..812dd75 --- /dev/null +++ b/asset_dev/audio/683785__elements-library__hard-impact-on-sand.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c0fe482386406afe36a29e9f431aac39b47a4b37b8bc55af380314f7d5704ff +size 3585984 diff --git a/assets/sound/sfx/ball/concrete1.wav b/assets/sound/sfx/ball/concrete1.wav new file mode 100644 index 0000000..b34c636 --- /dev/null +++ b/assets/sound/sfx/ball/concrete1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35066285345b5f22baf6e1a27626c8178402581215364c02675196e1805a22d9 +size 144892 diff --git a/assets/sound/sfx/ball/concrete1.wav.import b/assets/sound/sfx/ball/concrete1.wav.import new file mode 100644 index 0000000..720445a --- /dev/null +++ b/assets/sound/sfx/ball/concrete1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bp2iaowkqvtj8" +path="res://.godot/imported/concrete1.wav-fd53edddc2b6023804ce5ffb1713f99a.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete1.wav" +dest_files=["res://.godot/imported/concrete1.wav-fd53edddc2b6023804ce5ffb1713f99a.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete2.wav b/assets/sound/sfx/ball/concrete2.wav new file mode 100644 index 0000000..4cf57ab --- /dev/null +++ b/assets/sound/sfx/ball/concrete2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e3b79241c84dab6aa8a910d0cb22542e710abb089d6fbd14e2719b287d9bea1 +size 119770 diff --git a/assets/sound/sfx/ball/concrete2.wav.import b/assets/sound/sfx/ball/concrete2.wav.import new file mode 100644 index 0000000..638893c --- /dev/null +++ b/assets/sound/sfx/ball/concrete2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://4355dy0meqbm" +path="res://.godot/imported/concrete2.wav-ca6360ffedc83e3ef200990602e8177f.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete2.wav" +dest_files=["res://.godot/imported/concrete2.wav-ca6360ffedc83e3ef200990602e8177f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete3.wav b/assets/sound/sfx/ball/concrete3.wav new file mode 100644 index 0000000..700a997 --- /dev/null +++ b/assets/sound/sfx/ball/concrete3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e5f2473537ecb4abfb12b170e7c57ef0da1d2cec23aef37bd6433bacb63d589 +size 92044 diff --git a/assets/sound/sfx/ball/concrete3.wav.import b/assets/sound/sfx/ball/concrete3.wav.import new file mode 100644 index 0000000..ae91bf7 --- /dev/null +++ b/assets/sound/sfx/ball/concrete3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://orisjdcj3mes" +path="res://.godot/imported/concrete3.wav-fd28bbeb346240f5e96bc491f8e0a16f.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete3.wav" +dest_files=["res://.godot/imported/concrete3.wav-fd28bbeb346240f5e96bc491f8e0a16f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete4.wav b/assets/sound/sfx/ball/concrete4.wav new file mode 100644 index 0000000..d70e3af --- /dev/null +++ b/assets/sound/sfx/ball/concrete4.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ae490dbfb6f42bffa94a5c522355658fac4d9c3864b30d1dbb5e2f864283e2c +size 116596 diff --git a/assets/sound/sfx/ball/concrete4.wav.import b/assets/sound/sfx/ball/concrete4.wav.import new file mode 100644 index 0000000..d8331b7 --- /dev/null +++ b/assets/sound/sfx/ball/concrete4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://o4whyv43rr1u" +path="res://.godot/imported/concrete4.wav-4a18f12d2767719d7c6842841fd8d85b.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete4.wav" +dest_files=["res://.godot/imported/concrete4.wav-4a18f12d2767719d7c6842841fd8d85b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete5.wav b/assets/sound/sfx/ball/concrete5.wav new file mode 100644 index 0000000..ec265ca --- /dev/null +++ b/assets/sound/sfx/ball/concrete5.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c18fa7d4ebe0722e806858771155e2a46de67d0e3fb7f1c0e649c07d767f0cbb +size 107818 diff --git a/assets/sound/sfx/ball/concrete5.wav.import b/assets/sound/sfx/ball/concrete5.wav.import new file mode 100644 index 0000000..2c28ba0 --- /dev/null +++ b/assets/sound/sfx/ball/concrete5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://3csnnhxndt67" +path="res://.godot/imported/concrete5.wav-bfae0b04558dbd1d5e4feefb4d59d6b9.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete5.wav" +dest_files=["res://.godot/imported/concrete5.wav-bfae0b04558dbd1d5e4feefb4d59d6b9.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete6.wav b/assets/sound/sfx/ball/concrete6.wav new file mode 100644 index 0000000..d47d5cb --- /dev/null +++ b/assets/sound/sfx/ball/concrete6.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63739a079c957da565ceb20f1a89398e071f60d0ad12362118ffa8294cbd0da1 +size 88078 diff --git a/assets/sound/sfx/ball/concrete6.wav.import b/assets/sound/sfx/ball/concrete6.wav.import new file mode 100644 index 0000000..83ee703 --- /dev/null +++ b/assets/sound/sfx/ball/concrete6.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://duayjxkje12ey" +path="res://.godot/imported/concrete6.wav-ba9216b4a836ae83a36866e8d77787dc.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete6.wav" +dest_files=["res://.godot/imported/concrete6.wav-ba9216b4a836ae83a36866e8d77787dc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/concrete7.wav b/assets/sound/sfx/ball/concrete7.wav new file mode 100644 index 0000000..625b9d5 --- /dev/null +++ b/assets/sound/sfx/ball/concrete7.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16555a12ab855990a90b46b7cf687262387d8318c61496ae472573d47e218dc4 +size 78106 diff --git a/assets/sound/sfx/ball/concrete7.wav.import b/assets/sound/sfx/ball/concrete7.wav.import new file mode 100644 index 0000000..d0c8013 --- /dev/null +++ b/assets/sound/sfx/ball/concrete7.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bhhts1tkvv236" +path="res://.godot/imported/concrete7.wav-053d67f927d1311d4f9640a798e1807e.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/concrete7.wav" +dest_files=["res://.godot/imported/concrete7.wav-053d67f927d1311d4f9640a798e1807e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/grass1.wav b/assets/sound/sfx/ball/grass1.wav new file mode 100644 index 0000000..4a2304d --- /dev/null +++ b/assets/sound/sfx/ball/grass1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a148412e64a8f8c533bcdc50cb2eb94aece36488c2f3f659c93891280e0995 +size 155530 diff --git a/assets/sound/sfx/ball/grass1.wav.import b/assets/sound/sfx/ball/grass1.wav.import new file mode 100644 index 0000000..10c289e --- /dev/null +++ b/assets/sound/sfx/ball/grass1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cwpyh41qbh8js" +path="res://.godot/imported/grass1.wav-b4216b08493666f75784d0642045864f.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/grass1.wav" +dest_files=["res://.godot/imported/grass1.wav-b4216b08493666f75784d0642045864f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/grass2.wav b/assets/sound/sfx/ball/grass2.wav new file mode 100644 index 0000000..8c44610 --- /dev/null +++ b/assets/sound/sfx/ball/grass2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c75eae05d8026fe49fbeff6c806b5772f4bce327a73968e430d4c220d81b732 +size 104188 diff --git a/assets/sound/sfx/ball/grass2.wav.import b/assets/sound/sfx/ball/grass2.wav.import new file mode 100644 index 0000000..6c91ed1 --- /dev/null +++ b/assets/sound/sfx/ball/grass2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cayyndwmxua5x" +path="res://.godot/imported/grass2.wav-430d8da851839bd8347aa77dc113d7ff.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/grass2.wav" +dest_files=["res://.godot/imported/grass2.wav-430d8da851839bd8347aa77dc113d7ff.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/grass3.wav b/assets/sound/sfx/ball/grass3.wav new file mode 100644 index 0000000..bdb1565 --- /dev/null +++ b/assets/sound/sfx/ball/grass3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94fb62d1c74e7c730620964be99d19f762b97a59da462ddd9c5cf44d73f9a4a +size 110608 diff --git a/assets/sound/sfx/ball/grass3.wav.import b/assets/sound/sfx/ball/grass3.wav.import new file mode 100644 index 0000000..7222f0d --- /dev/null +++ b/assets/sound/sfx/ball/grass3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b87bneqvovibi" +path="res://.godot/imported/grass3.wav-1d9817728f47ac5124105d7c1f50eeb0.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/grass3.wav" +dest_files=["res://.godot/imported/grass3.wav-1d9817728f47ac5124105d7c1f50eeb0.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/grass4.wav b/assets/sound/sfx/ball/grass4.wav new file mode 100644 index 0000000..8a4ef23 --- /dev/null +++ b/assets/sound/sfx/ball/grass4.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea0b20daaea60f9b0a223b5d112d638cb408e11deae1cb54807b9fabff8b0a7b +size 153388 diff --git a/assets/sound/sfx/ball/grass4.wav.import b/assets/sound/sfx/ball/grass4.wav.import new file mode 100644 index 0000000..9bc4c40 --- /dev/null +++ b/assets/sound/sfx/ball/grass4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b0fup7btd0b1k" +path="res://.godot/imported/grass4.wav-29729dac6e9ca8db822b77925ab1a78e.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/grass4.wav" +dest_files=["res://.godot/imported/grass4.wav-29729dac6e9ca8db822b77925ab1a78e.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/grass5.wav b/assets/sound/sfx/ball/grass5.wav new file mode 100644 index 0000000..1cb57e4 --- /dev/null +++ b/assets/sound/sfx/ball/grass5.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47ae2d7a2306cea6745a04fcaacbbf89c33cbf2f224f5bb9b54d6fa05299cc5e +size 113812 diff --git a/assets/sound/sfx/ball/grass5.wav.import b/assets/sound/sfx/ball/grass5.wav.import new file mode 100644 index 0000000..cc31d79 --- /dev/null +++ b/assets/sound/sfx/ball/grass5.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c6d1rse1aveiy" +path="res://.godot/imported/grass5.wav-c1b5dcb7a89369922bcbafb0da9e769f.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/grass5.wav" +dest_files=["res://.godot/imported/grass5.wav-c1b5dcb7a89369922bcbafb0da9e769f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/sand1.wav b/assets/sound/sfx/ball/sand1.wav new file mode 100644 index 0000000..630e1e3 --- /dev/null +++ b/assets/sound/sfx/ball/sand1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3be77db6ec4a06c160b7feb077dd9fbb72dd219d87ea6818f2a2395602a34061 +size 124038 diff --git a/assets/sound/sfx/ball/sand1.wav.import b/assets/sound/sfx/ball/sand1.wav.import new file mode 100644 index 0000000..9780f67 --- /dev/null +++ b/assets/sound/sfx/ball/sand1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bbbp6wrkuhkek" +path="res://.godot/imported/sand1.wav-adf26d7ca3003a8860fb46cc0758e7bd.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/sand1.wav" +dest_files=["res://.godot/imported/sand1.wav-adf26d7ca3003a8860fb46cc0758e7bd.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/sand2.wav b/assets/sound/sfx/ball/sand2.wav new file mode 100644 index 0000000..f112b89 --- /dev/null +++ b/assets/sound/sfx/ball/sand2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9086cf13e0985b6cc3687795d04af62f9c81400c4b19cb16ace4992f7ace19b8 +size 134828 diff --git a/assets/sound/sfx/ball/sand2.wav.import b/assets/sound/sfx/ball/sand2.wav.import new file mode 100644 index 0000000..84e86d5 --- /dev/null +++ b/assets/sound/sfx/ball/sand2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b5xx5t050i4p" +path="res://.godot/imported/sand2.wav-8556fd9b18e6810c91fc69b1f24a839b.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/sand2.wav" +dest_files=["res://.godot/imported/sand2.wav-8556fd9b18e6810c91fc69b1f24a839b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sound/sfx/ball/sand3.wav b/assets/sound/sfx/ball/sand3.wav new file mode 100644 index 0000000..456d3da --- /dev/null +++ b/assets/sound/sfx/ball/sand3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b123f7eb6278502ad61d0412739a154c847190a638b9d81a7f7b984a797c7820 +size 128420 diff --git a/assets/sound/sfx/ball/sand3.wav.import b/assets/sound/sfx/ball/sand3.wav.import new file mode 100644 index 0000000..c041848 --- /dev/null +++ b/assets/sound/sfx/ball/sand3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c35jy105xr640" +path="res://.godot/imported/sand3.wav-708a3206418fb40e4b4f401186c037b1.sample" + +[deps] + +source_file="res://assets/sound/sfx/ball/sand3.wav" +dest_files=["res://.godot/imported/sand3.wav-708a3206418fb40e4b4f401186c037b1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/levels/debug_level/debug_level.tscn b/levels/debug_level/debug_level.tscn index edf1bf9..e6cd11e 100644 --- a/levels/debug_level/debug_level.tscn +++ b/levels/debug_level/debug_level.tscn @@ -1,17 +1,10 @@ -[gd_scene load_steps=51 format=3 uid="uid://bm2o3mex10v11"] +[gd_scene load_steps=37 format=3 uid="uid://bm2o3mex10v11"] -[ext_resource type="Texture2D" path="res://assets/textures/grass_fairway/grass_fairway_albedo.dds" id="2_e4m27"] -[ext_resource type="Texture2D" path="res://assets/textures/grass_rough/grass_rough_albedo.dds" id="4_p0awb"] -[ext_resource type="Texture2D" path="res://assets/textures/grass_rough/grass_rough_normal.dds" id="4_yhjhv"] -[ext_resource type="Texture2D" path="res://assets/textures/grass_fairway/grass_fairway_normal.dds" id="5_o361t"] +[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"] [ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"] [ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="6_ectru"] -[ext_resource type="Texture2D" path="res://assets/textures/sand_trap/sand_trap_albedo.dds" id="6_nlea7"] -[ext_resource type="Texture2D" path="res://assets/textures/sand_trap/sand_trap_normal.dds" id="7_f25dn"] [ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="7_t86h2"] -[ext_resource type="Texture2D" path="res://assets/textures/mountain_rock/mountain_rock_albedo.dds" id="8_ujbjy"] [ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"] -[ext_resource type="Texture2D" path="res://assets/textures/mountain_rock/mountain_rock_normal.dds" id="9_rrguh"] [ext_resource type="PackedScene" uid="uid://dagh38vap4t1d" path="res://src/props/scenery/city/concrete_building_1.tscn" id="10_lf15j"] [ext_resource type="PackedScene" uid="uid://cjubxs7peir5k" path="res://src/props/scenery/city/kana_signboard.tscn" id="11_evxup"] [ext_resource type="PackedScene" uid="uid://di7aql54lksn7" path="res://src/props/scenery/trees/palm_tree/palm_tree.tscn" id="12_sswxf"] @@ -61,53 +54,6 @@ world_background = 2 texture_filtering = 1 auto_shader = true -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_l1sla"] -transparency = 4 -cull_mode = 2 -vertex_color_use_as_albedo = true -backlight_enabled = true -backlight = Color(0.5, 0.5, 0.5, 1) -distance_fade_mode = 1 -distance_fade_min_distance = 960.0 -distance_fade_max_distance = 480.0 - -[sub_resource type="Terrain3DMeshAsset" id="Terrain3DMeshAsset_iaq2t"] -height_offset = 0.5 -density = 10.0 -material_override = SubResource("StandardMaterial3D_l1sla") -generated_type = 1 - -[sub_resource type="Terrain3DTextureAsset" id="Terrain3DTextureAsset_kocfk"] -name = "Rough Grass" -albedo_texture = ExtResource("4_p0awb") -normal_texture = ExtResource("4_yhjhv") -uv_scale = 0.01 - -[sub_resource type="Terrain3DTextureAsset" id="Terrain3DTextureAsset_vmhlw"] -name = "Fairway Grass" -id = 1 -albedo_texture = ExtResource("2_e4m27") -normal_texture = ExtResource("5_o361t") -uv_scale = 0.01 - -[sub_resource type="Terrain3DTextureAsset" id="Terrain3DTextureAsset_k6h8c"] -name = "sand_trap_albedo" -id = 2 -albedo_texture = ExtResource("6_nlea7") -normal_texture = ExtResource("7_f25dn") -uv_scale = 0.01 - -[sub_resource type="Terrain3DTextureAsset" id="Terrain3DTextureAsset_13d2a"] -name = "mountain_rock_albedo" -id = 3 -albedo_texture = ExtResource("8_ujbjy") -normal_texture = ExtResource("9_rrguh") -uv_scale = 0.02 - -[sub_resource type="Terrain3DAssets" id="Terrain3DAssets_eq5uw"] -mesh_list = Array[Terrain3DMeshAsset]([SubResource("Terrain3DMeshAsset_iaq2t")]) -texture_list = Array[Terrain3DTextureAsset]([SubResource("Terrain3DTextureAsset_kocfk"), SubResource("Terrain3DTextureAsset_vmhlw"), SubResource("Terrain3DTextureAsset_k6h8c"), SubResource("Terrain3DTextureAsset_13d2a")]) - [sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_h8tes"] panorama = ExtResource("6_ectru") @@ -243,7 +189,7 @@ point_count = 5 [node name="Terrain3D" type="Terrain3D" parent="."] data_directory = "res://levels/debug_level/terrain_3d_data" material = SubResource("Terrain3DMaterial_woy2k") -assets = SubResource("Terrain3DAssets_eq5uw") +assets = ExtResource("1_5smdk") mesh_size = 64 top_level = true metadata/_edit_lock_ = true @@ -260,6 +206,8 @@ shadow_blur = 4.0 [node name="Course" type="Node3D" parent="."] [node name="Fairway" type="Area3D" parent="Course"] +gravity_point_center = Vector3(0, 1, 0) +gravity_direction = Vector3(0, 1, 0) script = ExtResource("9_jwlau") terrain_angular_damping = 2.0 diff --git a/levels/debug_level/terrain_assets.res b/levels/debug_level/terrain_assets.res new file mode 100644 index 0000000..923f8f6 --- /dev/null +++ b/levels/debug_level/terrain_assets.res @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cac6bd6fb7f3c8a67944fb14f15cb05dc12c164460b8c2d8340a1c95f5c942b +size 1657 diff --git a/project.godot b/project.godot index 2e9c7e3..ac685ba 100644 --- a/project.godot +++ b/project.godot @@ -197,6 +197,7 @@ ball_previous={ 3d_physics/layer_1="Collision Geometry" 3d_physics/layer_2="Layer 3" +3d_physics/layer_32="Grass Audio" [physics] diff --git a/src/equipment/balls/physics_ball/ball_sfx.gd b/src/equipment/balls/physics_ball/ball_sfx.gd new file mode 100644 index 0000000..9f08411 --- /dev/null +++ b/src/equipment/balls/physics_ball/ball_sfx.gd @@ -0,0 +1,53 @@ +class_name BallSFX extends Node3D +## Controller for ball sound effects. + +const BASE_VOLUME := -36.0 +const MAX_VOLUME := 3.0 +const VELOCITY_ATTENUATION_SCALE := 400.0 + +const GRASS_PHYSICAL_LAYER := 1 << 32 +const SAND_PHYSICAL_LAYER := 1 << 31 + +@onready var parent: GameBall = $".." + +@onready var grass_sfx_player: AudioStreamPlayer3D = %GrassSFXPlayer +@onready var concrete_sfx_player: AudioStreamPlayer3D = %ConcreteSFXPlayer +@onready var sand_sfx_player: AudioStreamPlayer3D = %SandSFXPlayer + + +func _force_attenuated_volume() -> float: + # Attenuate volume based on impact force + return lerpf( + BASE_VOLUME, + MAX_VOLUME, + clampf(parent.linear_velocity.length_squared() / VELOCITY_ATTENUATION_SCALE, 0, 1) + ) + + +func _play_sfx(player: AudioStreamPlayer3D) -> void: + player.volume_db = _force_attenuated_volume() + print("PLAYING: ", player, "... VOLUME: ", player.volume_db) + player.play() + + +func play_terrain_sfx(tex_id: int) -> void: + var player := grass_sfx_player + match tex_id: + 2: # sand + player = sand_sfx_player + 3: # rock + player = concrete_sfx_player + + _play_sfx(player) + + +## Select the appropriate SFX to play based on the collision layer of the collider. +## +## We use the upper bits of the collision layer to indicate standard SFX. +func play_physical_sfx(collision_mask: int) -> void: + var player := concrete_sfx_player + if collision_mask & GRASS_PHYSICAL_LAYER: + player = grass_sfx_player + elif collision_mask & SAND_PHYSICAL_LAYER: + player = sand_sfx_player + _play_sfx(player) diff --git a/src/equipment/balls/physics_ball/game_ball.gd b/src/equipment/balls/physics_ball/game_ball.gd index 5fc9bb4..3db9f12 100644 --- a/src/equipment/balls/physics_ball/game_ball.gd +++ b/src/equipment/balls/physics_ball/game_ball.gd @@ -52,6 +52,8 @@ var _position_on_last_wake: Vector3 var _awake := false var _zones: Array[BallZone] = [] +@onready var sfx: BallSFX = %SFX + @onready var normal_physics: PhysicsMaterial = preload( "res://src/equipment/balls/physics_ball/normal_physics.tres" ) @@ -142,3 +144,21 @@ func _on_sleeping_state_changed() -> void: if sleeping: # Trigger to reassign on wake _awake = false + + +func _on_collision(body: Node) -> void: + if body is Terrain3D: + var texture_blend: Vector3 = (body as Terrain3D).data.get_texture_id(global_position) + print("T3D texture blend: ", texture_blend) + # TODO maybe blend audio? + + # Figure out audio for autoshader + var tex_id: float = 0 if texture_blend.x == 3 and texture_blend.z == 0 else texture_blend.x + + sfx.play_terrain_sfx(tex_id) + elif body is CSGShape3D: + sfx.play_physical_sfx((body as CSGShape3D).collision_layer) + elif body is CollisionObject3D: + sfx.play_physical_sfx((body as CollisionObject3D).collision_layer) + else: + print_debug("COLLIDER: ", body) diff --git a/src/equipment/balls/physics_ball/physics_ball.tscn b/src/equipment/balls/physics_ball/physics_ball.tscn index 69b0c25..f3524e3 100644 --- a/src/equipment/balls/physics_ball/physics_ball.tscn +++ b/src/equipment/balls/physics_ball/physics_ball.tscn @@ -1,9 +1,16 @@ -[gd_scene load_steps=9 format=3 uid="uid://dfttci386ohip"] +[gd_scene load_steps=19 format=3 uid="uid://dfttci386ohip"] [ext_resource type="Script" path="res://src/equipment/balls/physics_ball/game_ball.gd" id="1_iwh2u"] [ext_resource type="PhysicsMaterial" uid="uid://3bih72l068ic" path="res://src/equipment/balls/physics_ball/normal_physics.tres" id="1_l23pw"] [ext_resource type="Texture2D" uid="uid://ckhiq6rfjv63u" path="res://assets/textures/gfolfball/gfolfball.png" id="1_y3q5j"] [ext_resource type="Texture2D" uid="uid://btntjs7mbdigu" path="res://assets/textures/gfolfball/gfolfball_normal.png" id="2_mx7l6"] +[ext_resource type="Script" path="res://src/equipment/balls/physics_ball/ball_sfx.gd" id="5_bhshl"] +[ext_resource type="AudioStream" uid="uid://cayyndwmxua5x" path="res://assets/sound/sfx/ball/grass2.wav" id="7_l22cv"] +[ext_resource type="AudioStream" uid="uid://orisjdcj3mes" path="res://assets/sound/sfx/ball/concrete3.wav" id="7_t2ak2"] +[ext_resource type="AudioStream" uid="uid://o4whyv43rr1u" path="res://assets/sound/sfx/ball/concrete4.wav" id="8_0anjl"] +[ext_resource type="AudioStream" uid="uid://3csnnhxndt67" path="res://assets/sound/sfx/ball/concrete5.wav" id="9_p0lmw"] +[ext_resource type="AudioStream" uid="uid://bbbp6wrkuhkek" path="res://assets/sound/sfx/ball/sand1.wav" id="10_b64mx"] +[ext_resource type="AudioStream" uid="uid://b5xx5t050i4p" path="res://assets/sound/sfx/ball/sand2.wav" id="11_ed8je"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xqofq"] albedo_texture = ExtResource("1_y3q5j") @@ -66,6 +73,25 @@ func _draw() -> void: draw_line(start, end, COLOR_MAGNUS, WIDTH) " +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gc38m"] +playback_mode = 1 +random_pitch = 1.1 +streams_count = 1 +stream_0/stream = ExtResource("7_l22cv") + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_tg0n0"] +random_pitch = 1.1 +streams_count = 3 +stream_0/stream = ExtResource("7_t2ak2") +stream_1/stream = ExtResource("8_0anjl") +stream_2/stream = ExtResource("9_p0lmw") + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_uu1f8"] +playback_mode = 1 +streams_count = 2 +stream_0/stream = ExtResource("10_b64mx") +stream_1/stream = ExtResource("11_ed8je") + [node name="PhysicsBall" type="RigidBody3D"] mass = 0.05 physics_material_override = ExtResource("1_l23pw") @@ -97,4 +123,28 @@ grow_vertical = 2 script = SubResource("GDScript_p4v7o") draw_reoriented_basis = false +[node name="SFX" type="Node3D" parent="."] +unique_name_in_owner = true +script = ExtResource("5_bhshl") + +[node name="GrassSFXPlayer" type="AudioStreamPlayer3D" parent="SFX"] +unique_name_in_owner = true +stream = SubResource("AudioStreamRandomizer_gc38m") +unit_size = 40.0 +bus = &"SFX" + +[node name="ConcreteSFXPlayer" type="AudioStreamPlayer3D" parent="SFX"] +unique_name_in_owner = true +stream = SubResource("AudioStreamRandomizer_tg0n0") +unit_size = 40.0 +bus = &"SFX" + +[node name="SandSFXPlayer" type="AudioStreamPlayer3D" parent="SFX"] +unique_name_in_owner = true +stream = SubResource("AudioStreamRandomizer_uu1f8") +unit_size = 40.0 +max_db = 0.0 +bus = &"SFX" + +[connection signal="body_entered" from="." to="." method="_on_collision"] [connection signal="sleeping_state_changed" from="." to="." method="_on_sleeping_state_changed"] diff --git a/src/player/shot_setup/shot_setup.gd b/src/player/shot_setup/shot_setup.gd index a335203..df5e435 100644 --- a/src/player/shot_setup/shot_setup.gd +++ b/src/player/shot_setup/shot_setup.gd @@ -247,13 +247,14 @@ func take_shot() -> void: # Impact screenshake & hitlag if game: if shot_power > BIG_POWER_THRESHOLD: - game.viewport.hit_lag_big() + #game.viewport.hit_lag_big() var shake_intensity: float = ( 10.0 * (shot_power - BIG_POWER_THRESHOLD) / (1.0 - BIG_POWER_THRESHOLD) ) game.viewport.screen_shake(shake_intensity, 1.0) else: - game.viewport.hit_lag_small() + pass + #game.viewport.hit_lag_small() print_debug("WHACK!\nPower: ", shot_power, "\nCurve: ", shot_curve) diff --git a/src/props/scenery/trees/palm_tree/palm_tree.tscn b/src/props/scenery/trees/palm_tree/palm_tree.tscn index a47a604..63bb384 100644 --- a/src/props/scenery/trees/palm_tree/palm_tree.tscn +++ b/src/props/scenery/trees/palm_tree/palm_tree.tscn @@ -45,6 +45,7 @@ bones/10/scale = Vector3(1, 1, 1) bones/11/rotation = Quaternion(-0.13894, 0.0183908, 0.000355869, 0.99013) [node name="StaticBody3D" type="StaticBody3D" parent="." index="2"] +collision_layer = 2147483649 [node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D" index="0"] shape = SubResource("ConcavePolygonShape3D_bp5t6")