animals
BIN
assets/plants/abre1.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
34
assets/plants/abre1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxbv1inffa2bq"
|
||||
path="res://.godot/imported/abre1.png-f601649dd5438d649bcae9d45d57e08e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/abre1.png"
|
||||
dest_files=["res://.godot/imported/abre1.png-f601649dd5438d649bcae9d45d57e08e.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
|
||||
BIN
assets/plants/abre2.png
Normal file
|
After Width: | Height: | Size: 547 KiB |
34
assets/plants/abre2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dwm660gppiset"
|
||||
path="res://.godot/imported/abre2.png-dbc62f82a9df3e4e731aa07d232ec7c2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/abre2.png"
|
||||
dest_files=["res://.godot/imported/abre2.png-dbc62f82a9df3e4e731aa07d232ec7c2.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
|
||||
BIN
assets/plants/evolution1.1.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
34
assets/plants/evolution1.1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://br1olfut3p0tx"
|
||||
path="res://.godot/imported/evolution1.1.png-862fdeb0c2cb7e40b7a0aab50ab4eaa0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution1.1.png"
|
||||
dest_files=["res://.godot/imported/evolution1.1.png-862fdeb0c2cb7e40b7a0aab50ab4eaa0.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
|
||||
BIN
assets/plants/evolution1.2.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
34
assets/plants/evolution1.2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://jmyn1g18nyql"
|
||||
path="res://.godot/imported/evolution1.2.png-3579a06e9a063a1c3322c950ba78bd0f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution1.2.png"
|
||||
dest_files=["res://.godot/imported/evolution1.2.png-3579a06e9a063a1c3322c950ba78bd0f.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
|
||||
BIN
assets/plants/evolution1.3.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
34
assets/plants/evolution1.3.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clnrdh4ygkrr8"
|
||||
path="res://.godot/imported/evolution1.3.png-4fef6bf34fd31b95858584ccf2aa7dfa.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution1.3.png"
|
||||
dest_files=["res://.godot/imported/evolution1.3.png-4fef6bf34fd31b95858584ccf2aa7dfa.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
|
||||
BIN
assets/plants/evolution1.4.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
34
assets/plants/evolution1.4.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ouxdlglbbnme"
|
||||
path="res://.godot/imported/evolution1.4.png-4be3232285255c83c3e62686593d3946.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution1.4.png"
|
||||
dest_files=["res://.godot/imported/evolution1.4.png-4be3232285255c83c3e62686593d3946.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
|
||||
BIN
assets/plants/evolution1.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
34
assets/plants/evolution1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://hkcjtfch0kub"
|
||||
path="res://.godot/imported/evolution1.png-c3196fbd934aece5b1154621cfb192c7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution1.png"
|
||||
dest_files=["res://.godot/imported/evolution1.png-c3196fbd934aece5b1154621cfb192c7.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
|
||||
BIN
assets/plants/evolution2.1.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
34
assets/plants/evolution2.1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://24ift4wt1h2h"
|
||||
path="res://.godot/imported/evolution2.1.png-2d43b2276eb11648b1b94a07509f79a7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution2.1.png"
|
||||
dest_files=["res://.godot/imported/evolution2.1.png-2d43b2276eb11648b1b94a07509f79a7.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
|
||||
BIN
assets/plants/evolution2.2.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
34
assets/plants/evolution2.2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bklqkrqhw6fdf"
|
||||
path="res://.godot/imported/evolution2.2.png-7f74eb41a03e02df62bc5905650c12ff.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution2.2.png"
|
||||
dest_files=["res://.godot/imported/evolution2.2.png-7f74eb41a03e02df62bc5905650c12ff.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
|
||||
BIN
assets/plants/evolution2.3.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
34
assets/plants/evolution2.3.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://34v3ub405uwp"
|
||||
path="res://.godot/imported/evolution2.3.png-4cd5fc3415c649729c042cbbef6952e2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution2.3.png"
|
||||
dest_files=["res://.godot/imported/evolution2.3.png-4cd5fc3415c649729c042cbbef6952e2.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
|
||||
BIN
assets/plants/evolution2.4.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
34
assets/plants/evolution2.4.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d02mdx460lfgm"
|
||||
path="res://.godot/imported/evolution2.4.png-f635a8185aa3545d67cab448e50792bc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution2.4.png"
|
||||
dest_files=["res://.godot/imported/evolution2.4.png-f635a8185aa3545d67cab448e50792bc.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
|
||||
BIN
assets/plants/evolution2.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
34
assets/plants/evolution2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0xlqgttxwkgh"
|
||||
path="res://.godot/imported/evolution2.png-595e80eed2d6cecf62c70a924f5e5d34.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution2.png"
|
||||
dest_files=["res://.godot/imported/evolution2.png-595e80eed2d6cecf62c70a924f5e5d34.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
|
||||
BIN
assets/plants/evolution3.1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
34
assets/plants/evolution3.1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cmhajduampeuf"
|
||||
path="res://.godot/imported/evolution3.1.png-f52a394593a2d6fb74281528b9bd583b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution3.1.png"
|
||||
dest_files=["res://.godot/imported/evolution3.1.png-f52a394593a2d6fb74281528b9bd583b.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
|
||||
BIN
assets/plants/evolution3.2.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
34
assets/plants/evolution3.2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhqhdoxql4odd"
|
||||
path="res://.godot/imported/evolution3.2.png-c599ac7ef9cfa3de1171e724262666b8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution3.2.png"
|
||||
dest_files=["res://.godot/imported/evolution3.2.png-c599ac7ef9cfa3de1171e724262666b8.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
|
||||
BIN
assets/plants/evolution3.3.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
34
assets/plants/evolution3.3.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bi08m8a3ikw7j"
|
||||
path="res://.godot/imported/evolution3.3.png-aec0f4b0d2a35906ddb8ce16786e6ec3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution3.3.png"
|
||||
dest_files=["res://.godot/imported/evolution3.3.png-aec0f4b0d2a35906ddb8ce16786e6ec3.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
|
||||
BIN
assets/plants/evolution3.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
34
assets/plants/evolution3.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhofpsc2gk2s8"
|
||||
path="res://.godot/imported/evolution3.png-b73f0eb0e69607e1716f3de4fbc6f27d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/evolution3.png"
|
||||
dest_files=["res://.godot/imported/evolution3.png-b73f0eb0e69607e1716f3de4fbc6f27d.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
|
||||
BIN
assets/plants/herbe1.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
34
assets/plants/herbe1.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://damy6xcp3jd0s"
|
||||
path="res://.godot/imported/herbe1.png-503251ac0e36e68233f9f2e067d84bde.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe1.png"
|
||||
dest_files=["res://.godot/imported/herbe1.png-503251ac0e36e68233f9f2e067d84bde.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
|
||||
BIN
assets/plants/herbe2.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
34
assets/plants/herbe2.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cy7qtqt64y38m"
|
||||
path="res://.godot/imported/herbe2.png-7cb37f4da9ba8e2f66958b30033f2166.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe2.png"
|
||||
dest_files=["res://.godot/imported/herbe2.png-7cb37f4da9ba8e2f66958b30033f2166.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
|
||||
BIN
assets/plants/herbe3.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
34
assets/plants/herbe3.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dt8v2pphu18fu"
|
||||
path="res://.godot/imported/herbe3.png-dbbc6eb834dc62d6239ee0ccaf2c35dc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe3.png"
|
||||
dest_files=["res://.godot/imported/herbe3.png-dbbc6eb834dc62d6239ee0ccaf2c35dc.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
|
||||
BIN
assets/plants/herbe4.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
34
assets/plants/herbe4.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://be2g1u7d8lwc8"
|
||||
path="res://.godot/imported/herbe4.png-198eac5abf4b39c0aabbfe1d299e4bf4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe4.png"
|
||||
dest_files=["res://.godot/imported/herbe4.png-198eac5abf4b39c0aabbfe1d299e4bf4.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
|
||||
BIN
assets/plants/herbe5.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
34
assets/plants/herbe5.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cp5ibidl71imr"
|
||||
path="res://.godot/imported/herbe5.png-aacf4dd80ee8eaf15eb1d91537b29226.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe5.png"
|
||||
dest_files=["res://.godot/imported/herbe5.png-aacf4dd80ee8eaf15eb1d91537b29226.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
|
||||
BIN
assets/plants/herbe6.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
34
assets/plants/herbe6.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6o2re3hk5g0o"
|
||||
path="res://.godot/imported/herbe6.png-7b252676dadcd6fa41f9486f688a6ea8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe6.png"
|
||||
dest_files=["res://.godot/imported/herbe6.png-7b252676dadcd6fa41f9486f688a6ea8.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
|
||||
BIN
assets/plants/herbe7.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
34
assets/plants/herbe7.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bohhdvvgpqtvy"
|
||||
path="res://.godot/imported/herbe7.png-6e0337ed6cd939a45e3d6a682624a585.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe7.png"
|
||||
dest_files=["res://.godot/imported/herbe7.png-6e0337ed6cd939a45e3d6a682624a585.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
|
||||
BIN
assets/plants/herbe8.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
34
assets/plants/herbe8.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b8rmpitmxeobx"
|
||||
path="res://.godot/imported/herbe8.png-a4fa1c4e9587627b8f6fdc9481be7ab1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/plants/herbe8.png"
|
||||
dest_files=["res://.godot/imported/herbe8.png-a4fa1c4e9587627b8f6fdc9481be7ab1.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
|
||||
23
objects/Animal.tscn
Normal file
@ -0,0 +1,23 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://cj457q2fx5mim"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/animal.gd" id="1_bjim0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cxbv1inffa2bq" path="res://assets/plants/abre1.png" id="2_n8edq"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_5dvar"]
|
||||
radius = 599.083
|
||||
|
||||
[node name="Animal" type="Node2D"]
|
||||
script = ExtResource("1_bjim0")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
scale = Vector2(0.3, 0.3)
|
||||
texture = ExtResource("2_n8edq")
|
||||
offset = Vector2(170, -550)
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
collision_layer = 2
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("CircleShape2D_5dvar")
|
||||
|
||||
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]
|
||||
@ -1,166 +1,8 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://x4kv2y5f52cm"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/plant.gd" id="1_drvq1"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3kjaw1hajc6s" path="res://assets/grille_seeds.png" id="1_n5onq"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_x3g5o"]
|
||||
script/source = "class_name Plant
|
||||
|
||||
extends Node2D
|
||||
|
||||
enum PlantState { SAPLING, GROWN, DEAD}
|
||||
|
||||
signal grown
|
||||
signal died
|
||||
|
||||
@onready var growing_timer: Timer = $Growing
|
||||
@onready var need_checker: Timer = $NeedChecker
|
||||
@onready var sapling_count_down: Timer = $SaplingCountDown
|
||||
@onready var reproduction: Timer = $Reproduction
|
||||
@onready var sprite_node: AnimatedSprite2D = $AnimatedSprite2D
|
||||
|
||||
const NEED_CHECK_PERIOD := 0.5
|
||||
const SAPLING_LIFETIME_MULT := 2.0 # this multiplies the time to grow to tell the time it can stay as a sapling
|
||||
const OFFSET_REPRODUCTION_PERCT_DIST := 0.5
|
||||
|
||||
var parameter: PlantType
|
||||
var state := PlantState.SAPLING
|
||||
var sapling_time_left: float
|
||||
var can_grow := true
|
||||
|
||||
func init(plant_parameter: PlantType):
|
||||
parameter = plant_parameter
|
||||
sapling_count_down.start(SAPLING_LIFETIME_MULT * parameter.growing_time)
|
||||
sprite_node.sprite_frames = parameter.sprite_frames
|
||||
need_checker.start(NEED_CHECK_PERIOD)
|
||||
|
||||
|
||||
func _on_need_checker_timeout() -> void:
|
||||
can_grow = check_terrain_viability()
|
||||
growing_timer.paused = not can_grow and state == PlantState.SAPLING
|
||||
reproduction.paused = not can_grow
|
||||
|
||||
func check_terrain_viability() -> bool:
|
||||
var water := GameTerrain.get_stat(position, GameTerrain.Stats.WATER)
|
||||
if water < parameter.water_need[0] or water > parameter.water_need[1]:
|
||||
return false
|
||||
|
||||
var fertility := GameTerrain.get_stat(position, GameTerrain.Stats.FERTILITY)
|
||||
if fertility < parameter.fertility_need[0] or fertility > parameter.fertility_need[1]:
|
||||
return false
|
||||
|
||||
var presence := GameTerrain.get_stat(position, GameTerrain.Stats.PRESENCE)
|
||||
presence += GameTerrain.LEVELS_NUMBER / 2
|
||||
if presence < parameter.presence_need[0] or presence > parameter.presence_need[1]:
|
||||
return false
|
||||
|
||||
return true
|
||||
|
||||
|
||||
func _on_growing_timeout() -> void:
|
||||
if state == PlantState.SAPLING:
|
||||
can_grow = check_terrain_viability()
|
||||
if not can_grow:
|
||||
growing_timer.start()
|
||||
return
|
||||
|
||||
match state:
|
||||
PlantState.SAPLING:
|
||||
grow()
|
||||
PlantState.GROWN:
|
||||
die()
|
||||
PlantState.DEAD:
|
||||
remove()
|
||||
|
||||
|
||||
func plant(new_position: Vector2):
|
||||
position = new_position
|
||||
state = PlantState.SAPLING
|
||||
growing_timer.start(parameter.growing_time)
|
||||
sprite_node.play(\"SAPLING\")
|
||||
|
||||
|
||||
func grow():
|
||||
if state != PlantState.SAPLING:
|
||||
push_error(\"Tried to grow \" + parameter.type + \", but was not at sapling state\")
|
||||
return
|
||||
state = PlantState.GROWN
|
||||
sapling_count_down.stop()
|
||||
growing_timer.start(parameter.dying_time)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
parameter.water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
parameter.fertility_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.PRESENCE,
|
||||
parameter.presence_prod)
|
||||
|
||||
reproduction.start(parameter.dying_time / (parameter.offspring_per_lifetime + 1) + 0.1)
|
||||
|
||||
grown.emit()
|
||||
sprite_node.play(\"GROWN\")
|
||||
|
||||
|
||||
func die():
|
||||
state = PlantState.DEAD
|
||||
# remove alive prod and add dead prod
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
-parameter.water_prod + parameter.dead_water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
-parameter.fertility_prod + parameter.dead_fertility_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.PRESENCE,
|
||||
-parameter.presence_prod)
|
||||
growing_timer.start(parameter.dead_time)
|
||||
died.emit()
|
||||
sprite_node.play(\"DEAD\")
|
||||
|
||||
func remove(was_dead: bool = true):
|
||||
if was_dead:
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
-parameter.dead_water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
-parameter.dead_fertility_prod)
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_sapling_count_down_timeout() -> void:
|
||||
remove(false)
|
||||
|
||||
|
||||
func _on_reproduction_timeout() -> void:
|
||||
var min_dist := parameter.distance_prod - parameter.distance_prod * OFFSET_REPRODUCTION_PERCT_DIST
|
||||
var max_dist := parameter.distance_prod + parameter.distance_prod * OFFSET_REPRODUCTION_PERCT_DIST
|
||||
var plant_pos = position + (Vector2.RIGHT * randf_range(min_dist, max_dist)).rotated(randf_range(0, PI))
|
||||
|
||||
var space := get_world_2d().direct_space_state
|
||||
var parameters = PhysicsPointQueryParameters2D.new()
|
||||
parameters.position = plant_pos
|
||||
parameters.collide_with_areas = true
|
||||
parameters.collide_with_bodies = false
|
||||
var result := space.intersect_point(parameters, 1)
|
||||
if result.size() > 0:
|
||||
return
|
||||
|
||||
var offspring = self.duplicate()
|
||||
self.get_parent().add_child(offspring)
|
||||
offspring.init(parameter)
|
||||
offspring.plant(plant_pos)
|
||||
"
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5did5"]
|
||||
atlas = ExtResource("1_n5onq")
|
||||
region = Rect2(810, 540, 270, 270)
|
||||
@ -180,7 +22,7 @@ animations = [{
|
||||
radius = 36.0
|
||||
|
||||
[node name="Plant" type="Node2D"]
|
||||
script = SubResource("GDScript_x3g5o")
|
||||
script = ExtResource("1_drvq1")
|
||||
|
||||
[node name="Growing" type="Timer" parent="."]
|
||||
one_shot = true
|
||||
|
||||
@ -1,30 +1,20 @@
|
||||
[gd_resource type="Resource" script_class="PlantType" load_steps=9 format=3 uid="uid://bgi2lo7kb3d2v"]
|
||||
[gd_resource type="Resource" script_class="PlantType" load_steps=8 format=3 uid="uid://bgi2lo7kb3d2v"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/plant_type.gd" id="1_i8xe4"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3kjaw1hajc6s" path="res://assets/grille_seeds.png" id="2_4rpny"]
|
||||
[ext_resource type="Texture2D" uid="uid://r1bq2tgt1yxf" path="res://assets/gamejam_plantes_props1.png" id="2_gaemm"]
|
||||
[ext_resource type="Texture2D" uid="uid://hkcjtfch0kub" path="res://assets/plants/evolution1.png" id="3_5jw8q"]
|
||||
[ext_resource type="Texture2D" uid="uid://24ift4wt1h2h" path="res://assets/plants/evolution2.1.png" id="4_1u64t"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0xlqgttxwkgh" path="res://assets/plants/evolution2.png" id="5_2ybgr"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1lwna"]
|
||||
atlas = ExtResource("2_4rpny")
|
||||
region = Rect2(0, 0, 270, 270)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fxqnu"]
|
||||
atlas = ExtResource("2_gaemm")
|
||||
region = Rect2(1920, 1620, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_sjq1e"]
|
||||
atlas = ExtResource("2_gaemm")
|
||||
region = Rect2(320, 1080, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_jsm3j"]
|
||||
atlas = ExtResource("2_gaemm")
|
||||
region = Rect2(0, 1080, 320, 540)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_fxtnk"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_fxqnu")
|
||||
"texture": ExtResource("3_5jw8q")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"DEAD",
|
||||
@ -32,7 +22,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_sjq1e")
|
||||
"texture": ExtResource("4_1u64t")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"GROWN",
|
||||
@ -40,7 +30,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_jsm3j")
|
||||
"texture": ExtResource("5_2ybgr")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"SAPLING",
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
[ext_resource type="Script" path="res://scripts/plant_type.gd" id="1_meppe"]
|
||||
[ext_resource type="Texture2D" uid="uid://r1bq2tgt1yxf" path="res://assets/gamejam_plantes_props1.png" id="2_jkmk8"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3kjaw1hajc6s" path="res://assets/grille_seeds.png" id="2_m81be"]
|
||||
[ext_resource type="Texture2D" uid="uid://dwm660gppiset" path="res://assets/plants/abre2.png" id="4_1v11a"]
|
||||
[ext_resource type="Texture2D" uid="uid://d02mdx460lfgm" path="res://assets/plants/evolution2.4.png" id="5_d75nd"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bqj8q"]
|
||||
atlas = ExtResource("2_m81be")
|
||||
@ -12,14 +14,6 @@ region = Rect2(270, 0, 270, 270)
|
||||
atlas = ExtResource("2_jkmk8")
|
||||
region = Rect2(2880, 1080, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7r8et"]
|
||||
atlas = ExtResource("2_jkmk8")
|
||||
region = Rect2(2880, 540, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_oy8ng"]
|
||||
atlas = ExtResource("2_jkmk8")
|
||||
region = Rect2(3200, 0, 320, 540)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_shufc"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
@ -32,7 +26,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7r8et")
|
||||
"texture": ExtResource("4_1v11a")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"GROWN",
|
||||
@ -40,7 +34,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_oy8ng")
|
||||
"texture": ExtResource("5_d75nd")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"SAPLING",
|
||||
|
||||
@ -1,30 +1,20 @@
|
||||
[gd_resource type="Resource" script_class="PlantType" load_steps=9 format=3 uid="uid://dnahox31xqy6l"]
|
||||
[gd_resource type="Resource" script_class="PlantType" load_steps=8 format=3 uid="uid://dnahox31xqy6l"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/plant_type.gd" id="1_mhtmv"]
|
||||
[ext_resource type="Texture2D" uid="uid://r1bq2tgt1yxf" path="res://assets/gamejam_plantes_props1.png" id="2_gcjog"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3kjaw1hajc6s" path="res://assets/grille_seeds.png" id="2_od2qm"]
|
||||
[ext_resource type="Texture2D" uid="uid://jmyn1g18nyql" path="res://assets/plants/evolution1.2.png" id="3_n58s0"]
|
||||
[ext_resource type="Texture2D" uid="uid://br1olfut3p0tx" path="res://assets/plants/evolution1.1.png" id="4_ulvmw"]
|
||||
[ext_resource type="Texture2D" uid="uid://hkcjtfch0kub" path="res://assets/plants/evolution1.png" id="5_6gtba"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_dkacp"]
|
||||
atlas = ExtResource("2_od2qm")
|
||||
region = Rect2(540, 0, 270, 270)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ncq3n"]
|
||||
atlas = ExtResource("2_gcjog")
|
||||
region = Rect2(0, 540, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_slfxf"]
|
||||
atlas = ExtResource("2_gcjog")
|
||||
region = Rect2(1280, 1080, 320, 540)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gsxj4"]
|
||||
atlas = ExtResource("2_gcjog")
|
||||
region = Rect2(2240, 0, 320, 540)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_d15np"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ncq3n")
|
||||
"texture": ExtResource("3_n58s0")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"DEAD",
|
||||
@ -32,7 +22,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_slfxf")
|
||||
"texture": ExtResource("4_ulvmw")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"GROWN",
|
||||
@ -40,7 +30,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gsxj4")
|
||||
"texture": ExtResource("5_6gtba")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"SAPLING",
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://d3hul8b7hlmj7"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://d3hul8b7hlmj7"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/map.gd" id="1_3np0o"]
|
||||
[ext_resource type="PackedScene" uid="uid://6ferubyu2uy1" path="res://scenes/Scanners.tscn" id="1_6mlj0"]
|
||||
[ext_resource type="Texture2D" uid="uid://dtvde6oxrfuk1" path="res://assets/texture/ground.jpg" id="3_20ci8"]
|
||||
[ext_resource type="PackedScene" uid="uid://cj457q2fx5mim" path="res://objects/Animal.tscn" id="4_pkphc"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
script = ExtResource("1_3np0o")
|
||||
@ -15,3 +16,23 @@ texture_repeat = 2
|
||||
texture = ExtResource("3_20ci8")
|
||||
texture_scale = Vector2(5, 5)
|
||||
polygon = PackedVector2Array(571, 76, 228, 282, 987, 657, 1379, 208)
|
||||
|
||||
[node name="Animals" type="Node" parent="."]
|
||||
|
||||
[node name="Animal" parent="Animals" instance=ExtResource("4_pkphc")]
|
||||
position = Vector2(2121, 394)
|
||||
plant_need = "Chardon"
|
||||
|
||||
[node name="Animal2" parent="Animals" instance=ExtResource("4_pkphc")]
|
||||
position = Vector2(382, 2220)
|
||||
plant_need = "Chardon"
|
||||
|
||||
[node name="Animal3" parent="Animals" instance=ExtResource("4_pkphc")]
|
||||
position = Vector2(1858, 2027)
|
||||
plant_need = "Buisson"
|
||||
|
||||
[node name="Animal4" parent="Animals" instance=ExtResource("4_pkphc")]
|
||||
position = Vector2(853, 1193)
|
||||
plant_need = "Chene"
|
||||
|
||||
[connection signal="liberated" from="Animals/Animal" to="." method="_on_animal_liberated"]
|
||||
|
||||
15
scripts/animal.gd
Normal file
@ -0,0 +1,15 @@
|
||||
extends Node2D
|
||||
|
||||
signal liberated
|
||||
|
||||
@export var plant_need: String
|
||||
|
||||
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||
var plant = area.get_parent()
|
||||
if plant is Plant:
|
||||
if plant_need == plant.parameter.type:
|
||||
plant.grown.connect(tracked_plant_grew)
|
||||
|
||||
func tracked_plant_grew():
|
||||
print("Liberated !!")
|
||||
liberated.emit()
|
||||
@ -1,6 +1,9 @@
|
||||
class_name Map
|
||||
|
||||
extends Node2D
|
||||
|
||||
@export var n_animals_to_liberate := 4
|
||||
|
||||
func _ready():
|
||||
var map_size = GameTerrain.TERRAIN_SIZE * GameTerrain.MAP_RATIO
|
||||
|
||||
@ -13,3 +16,9 @@ func _ready():
|
||||
|
||||
func _on_gui_scanner_selected(type : Scanners.Type):
|
||||
$Scanners.select_scanner(type)
|
||||
|
||||
|
||||
func _on_animal_liberated() -> void:
|
||||
n_animals_to_liberate -= 1
|
||||
if n_animals_to_liberate == 0:
|
||||
print("YOU WIN")
|
||||
|
||||
162
scripts/plant.gd
Normal file
@ -0,0 +1,162 @@
|
||||
class_name Plant
|
||||
|
||||
extends Node2D
|
||||
|
||||
enum PlantState { SAPLING, GROWN, DEAD}
|
||||
|
||||
signal grown
|
||||
signal died
|
||||
|
||||
@onready var growing_timer: Timer = $Growing
|
||||
@onready var need_checker: Timer = $NeedChecker
|
||||
@onready var sapling_count_down: Timer = $SaplingCountDown
|
||||
@onready var reproduction: Timer = $Reproduction
|
||||
@onready var sprite_node: AnimatedSprite2D = $AnimatedSprite2D
|
||||
|
||||
const NEED_CHECK_PERIOD := 0.5
|
||||
const SAPLING_LIFETIME_MULT := 2.0 # this multiplies the time to grow to tell the time it can stay as a sapling
|
||||
const OFFSET_REPRODUCTION_PERCT_DIST := 0.5
|
||||
|
||||
var parameter: PlantType
|
||||
var state := PlantState.SAPLING
|
||||
var sapling_time_left: float
|
||||
var can_grow := true
|
||||
|
||||
func init(plant_parameter: PlantType):
|
||||
parameter = plant_parameter
|
||||
sapling_count_down.start(SAPLING_LIFETIME_MULT * parameter.growing_time)
|
||||
sprite_node.sprite_frames = parameter.sprite_frames
|
||||
need_checker.start(NEED_CHECK_PERIOD)
|
||||
|
||||
|
||||
func _on_need_checker_timeout() -> void:
|
||||
can_grow = check_terrain_viability()
|
||||
growing_timer.paused = not can_grow and state == PlantState.SAPLING
|
||||
reproduction.paused = not can_grow
|
||||
|
||||
func check_terrain_viability() -> bool:
|
||||
var water := GameTerrain.get_stat(position, GameTerrain.Stats.WATER)
|
||||
if water < parameter.water_need[0] or water > parameter.water_need[1]:
|
||||
return false
|
||||
|
||||
var fertility := GameTerrain.get_stat(position, GameTerrain.Stats.FERTILITY)
|
||||
if fertility < parameter.fertility_need[0] or fertility > parameter.fertility_need[1]:
|
||||
return false
|
||||
|
||||
var presence := GameTerrain.get_stat(position, GameTerrain.Stats.PRESENCE)
|
||||
presence += GameTerrain.LEVELS_NUMBER / 2
|
||||
if presence < parameter.presence_need[0] or presence > parameter.presence_need[1]:
|
||||
return false
|
||||
|
||||
return true
|
||||
|
||||
|
||||
func _on_growing_timeout() -> void:
|
||||
if state == PlantState.SAPLING:
|
||||
can_grow = check_terrain_viability()
|
||||
if not can_grow:
|
||||
growing_timer.start()
|
||||
return
|
||||
|
||||
match state:
|
||||
PlantState.SAPLING:
|
||||
grow()
|
||||
PlantState.GROWN:
|
||||
die()
|
||||
PlantState.DEAD:
|
||||
remove()
|
||||
|
||||
|
||||
func plant(new_position: Vector2):
|
||||
if not GameTerrain.is_on_map(new_position):
|
||||
push_error("Planting out of the map")
|
||||
position = new_position
|
||||
state = PlantState.SAPLING
|
||||
growing_timer.start(parameter.growing_time)
|
||||
sprite_node.play("SAPLING")
|
||||
|
||||
|
||||
func grow():
|
||||
if state != PlantState.SAPLING:
|
||||
push_error("Tried to grow " + parameter.type + ", but was not at sapling state")
|
||||
return
|
||||
state = PlantState.GROWN
|
||||
sapling_count_down.stop()
|
||||
growing_timer.start(parameter.dying_time)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
parameter.water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
parameter.fertility_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.PRESENCE,
|
||||
parameter.presence_prod)
|
||||
|
||||
reproduction.start(parameter.dying_time / (parameter.offspring_per_lifetime + 1) + 0.1)
|
||||
|
||||
grown.emit()
|
||||
sprite_node.play("GROWN")
|
||||
|
||||
|
||||
func die():
|
||||
state = PlantState.DEAD
|
||||
# remove alive prod and add dead prod
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
-parameter.water_prod + parameter.dead_water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
-parameter.fertility_prod + parameter.dead_fertility_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.PRESENCE,
|
||||
-parameter.presence_prod)
|
||||
growing_timer.start(parameter.dead_time)
|
||||
died.emit()
|
||||
sprite_node.play("DEAD")
|
||||
|
||||
func remove(was_dead: bool = true):
|
||||
if was_dead:
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.WATER,
|
||||
-parameter.dead_water_prod)
|
||||
GameTerrain.modify_zone(position,
|
||||
parameter.distance_prod,
|
||||
GameTerrain.Stats.FERTILITY,
|
||||
-parameter.dead_fertility_prod)
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_sapling_count_down_timeout() -> void:
|
||||
remove(false)
|
||||
|
||||
|
||||
func _on_reproduction_timeout() -> void:
|
||||
var min_dist := parameter.distance_prod - parameter.distance_prod * OFFSET_REPRODUCTION_PERCT_DIST
|
||||
var max_dist := parameter.distance_prod + parameter.distance_prod * OFFSET_REPRODUCTION_PERCT_DIST
|
||||
var plant_pos = position + (Vector2.RIGHT * randf_range(min_dist, max_dist)).rotated(randf_range(0, PI))
|
||||
|
||||
if not GameTerrain.is_on_map(plant_pos):
|
||||
return
|
||||
|
||||
var space := get_world_2d().direct_space_state
|
||||
var parameters = PhysicsPointQueryParameters2D.new()
|
||||
parameters.position = plant_pos
|
||||
parameters.collide_with_areas = true
|
||||
parameters.collide_with_bodies = false
|
||||
parameters.collision_mask = 1
|
||||
var result := space.intersect_point(parameters, 1)
|
||||
if result.size() > 0:
|
||||
return
|
||||
|
||||
var offspring = self.duplicate()
|
||||
self.get_parent().add_child(offspring)
|
||||
offspring.init(parameter)
|
||||
offspring.plant(plant_pos)
|
||||
@ -33,6 +33,7 @@ func _process(delta: float) -> void:
|
||||
parameters.position = camera.get_global_mouse_position()
|
||||
parameters.collide_with_areas = true
|
||||
parameters.collide_with_bodies = false
|
||||
parameters.collision_mask = 1
|
||||
var result := space.intersect_point(parameters, 1)
|
||||
can_plant = result.size() == 0
|
||||
|
||||
@ -43,10 +44,15 @@ func take_next_seed() -> PlantType:
|
||||
return plants[plant_ind]
|
||||
|
||||
func _unhandled_input(_event: InputEvent) -> void:
|
||||
if can_plant and Input.is_action_just_pressed("plant") and timer.is_stopped():
|
||||
var chosen_type: PlantType = take_next_seed()
|
||||
var plant = plant_scene.instantiate()
|
||||
add_child(plant)
|
||||
plant.init(chosen_type)
|
||||
plant.plant(camera.get_global_mouse_position())
|
||||
timer.start()
|
||||
|
||||
if Input.is_action_just_pressed("plant") :
|
||||
var mouse_pos = camera.get_global_mouse_position()
|
||||
var click_on_map = GameTerrain.is_on_map(mouse_pos)
|
||||
|
||||
if can_plant and click_on_map and timer.is_stopped():
|
||||
var chosen_type: PlantType = take_next_seed()
|
||||
var plant = plant_scene.instantiate()
|
||||
add_child(plant)
|
||||
plant.init(chosen_type)
|
||||
plant.plant(mouse_pos)
|
||||
timer.start()
|
||||
|
||||
@ -3,7 +3,7 @@ extends Node2D
|
||||
enum Stats {WATER, FERTILITY, PRESENCE}
|
||||
|
||||
const TERRAIN_SIZE = Vector2i(300, 300)
|
||||
const LEVELS_NUMBER : int = 10
|
||||
const LEVELS_NUMBER : int = 20
|
||||
const MAP_RATIO = 8;
|
||||
|
||||
@onready var image := Image.create_empty(
|
||||
@ -29,6 +29,9 @@ func map_to_pixel(
|
||||
int(position.y / MAP_RATIO)
|
||||
)
|
||||
|
||||
func is_on_map(position: Vector2) -> bool:
|
||||
return position.x >= 0 and position.x <= TERRAIN_SIZE.x * MAP_RATIO and position.y >= 0 and position.y <= TERRAIN_SIZE.y * MAP_RATIO
|
||||
|
||||
func color_value_to_level(
|
||||
color_value : float
|
||||
) -> int:
|
||||
@ -104,6 +107,8 @@ func modify_zone(
|
||||
var pixel_radius = int(radius / MAP_RATIO)
|
||||
for x in range(pixel_center.x - pixel_radius, pixel_center.x + pixel_radius + 1) :
|
||||
for y in range(pixel_center.y - pixel_radius, pixel_center.y + pixel_radius + 1):
|
||||
if not is_on_map(Vector2i(x, y)):
|
||||
continue
|
||||
if pow(x - pixel_center.x,2) + pow(y - pixel_center.y,2) <= pow(pixel_radius,2):
|
||||
modify_pixel(
|
||||
Vector2i(x, y),
|
||||
|
||||