Compare commits
	
		
			10 Commits
		
	
	
		
			cb39aae3fd
			...
			eb6a5538b8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| eb6a5538b8 | |||
| d38d87f0a3 | |||
| 6f34c70848 | |||
| bd7e67e6b0 | |||
| d9f3216793 | |||
| 285aacd6e4 | |||
| 90d472e3c1 | |||
| 392ec5372c | |||
| 493420acdd | |||
| f24419a86a | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -3,6 +3,7 @@ | ||||
| /android/ | ||||
| 
 | ||||
| /art/* | ||||
| /build/* | ||||
| 
 | ||||
| !.gdignore | ||||
| 
 | ||||
|  | ||||
| @ -4,6 +4,8 @@ The theme was **Tiny creatures**. Insects are pretty tiny. So I decided to make | ||||
| 
 | ||||
| If you want to clone the repo, make sure you have [Git LFS](https://git-lfs.com/) installed. | ||||
| 
 | ||||
| I post updates in our [Twitter](https://twitter.com/23cmline) and [Bluesky](https://bsky.app/profile/23cmline.com). | ||||
| 
 | ||||
| ## Tools used | ||||
| ### For development | ||||
| - Game engine - Godot | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_1.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_1.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_1.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_1.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://4jawklhwlrav" | ||||
| path="res://.godot/imported/aphid_poop_1.wav-33f37c4812e25b8962c552b6a1c0fc52.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_1.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_1.wav-33f37c4812e25b8962c552b6a1c0fc52.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_2.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_2.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_2.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_2.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://dqf8u6iyp2gyj" | ||||
| path="res://.godot/imported/aphid_poop_2.wav-83a83cce31a628fbc3073b451ac4b57f.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_2.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_2.wav-83a83cce31a628fbc3073b451ac4b57f.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_3.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_3.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_3.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_3.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://d3r846ccllj1i" | ||||
| path="res://.godot/imported/aphid_poop_3.wav-72f748591dc8803d12958e3ee9523e7c.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_3.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_3.wav-72f748591dc8803d12958e3ee9523e7c.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_4.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_4.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_4.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_4.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://bv1qc7ig8kcov" | ||||
| path="res://.godot/imported/aphid_poop_4.wav-65fe0cbebdfa264fc54f1fa70e2d9785.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_4.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_4.wav-65fe0cbebdfa264fc54f1fa70e2d9785.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_5.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_5.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_5.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_5.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://dygm3jfrbsnl3" | ||||
| path="res://.godot/imported/aphid_poop_5.wav-457add9ec6ed9d68fec96c6c4624adde.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_5.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_5.wav-457add9ec6ed9d68fec96c6c4624adde.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_6.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/audio/units/aphid_poop_6.wav
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								assets/audio/units/aphid_poop_6.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								assets/audio/units/aphid_poop_6.wav.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="wav" | ||||
| type="AudioStreamWAV" | ||||
| uid="uid://c1536rlvmor6l" | ||||
| path="res://.godot/imported/aphid_poop_6.wav-c99d1a6bae426c9c90ffc4a2e3355f35.sample" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/audio/units/aphid_poop_6.wav" | ||||
| dest_files=["res://.godot/imported/aphid_poop_6.wav-c99d1a6bae426c9c90ffc4a2e3355f35.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 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/models/ant.glb
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/models/ant.glb
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								assets/models/anthill.glb
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/models/anthill.glb
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										43
									
								
								assets/models/anthill.glb.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								assets/models/anthill.glb.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="scene" | ||||
| importer_version=1 | ||||
| type="PackedScene" | ||||
| uid="uid://b0koc3o63etu1" | ||||
| path="res://.godot/imported/anthill.glb-5b6c8f58d961f196bcc8e93454476786.scn" | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://assets/models/anthill.glb" | ||||
| dest_files=["res://.godot/imported/anthill.glb-5b6c8f58d961f196bcc8e93454476786.scn"] | ||||
| 
 | ||||
| [params] | ||||
| 
 | ||||
| nodes/root_type="" | ||||
| nodes/root_name="Anthill" | ||||
| nodes/apply_root_scale=true | ||||
| nodes/root_scale=1.0 | ||||
| nodes/import_as_skeleton_bones=false | ||||
| meshes/ensure_tangents=true | ||||
| meshes/generate_lods=true | ||||
| meshes/create_shadow_meshes=true | ||||
| meshes/light_baking=1 | ||||
| meshes/lightmap_texel_size=0.2 | ||||
| meshes/force_disable_compression=false | ||||
| skins/use_named_skins=true | ||||
| animation/import=true | ||||
| animation/fps=30 | ||||
| animation/trimming=false | ||||
| animation/remove_immutable_tracks=true | ||||
| animation/import_rest_as_RESET=false | ||||
| import_script/path="" | ||||
| _subresources={ | ||||
| "materials": { | ||||
| "anthill_mat": { | ||||
| "use_external/enabled": true, | ||||
| "use_external/path": "res://resources/materials/anthill_material.tres" | ||||
| } | ||||
| } | ||||
| } | ||||
| gltf/naming_version=1 | ||||
| gltf/embedded_image_handling=1 | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/models/aphid.glb
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/models/aphid.glb
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								assets/textures/structures/anthill_albedo.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/textures/structures/anthill_albedo.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -2,8 +2,8 @@ | ||||
| 
 | ||||
| importer="texture" | ||||
| type="CompressedTexture2D" | ||||
| uid="uid://cn2v03dkwjdbd" | ||||
| path.s3tc="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex" | ||||
| uid="uid://b7m104tc2wch3" | ||||
| path.bptc="res://.godot/imported/anthill_albedo.png-bbaa35e5b6a354eec93c815c4147a0e5.bptc.ctex" | ||||
| metadata={ | ||||
| "imported_formats": ["s3tc_bptc"], | ||||
| "vram_texture": true | ||||
| @ -11,13 +11,13 @@ metadata={ | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://icon.svg" | ||||
| dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex"] | ||||
| source_file="res://assets/textures/structures/anthill_albedo.png" | ||||
| dest_files=["res://.godot/imported/anthill_albedo.png-bbaa35e5b6a354eec93c815c4147a0e5.bptc.ctex"] | ||||
| 
 | ||||
| [params] | ||||
| 
 | ||||
| compress/mode=2 | ||||
| compress/high_quality=false | ||||
| compress/high_quality=true | ||||
| compress/lossy_quality=0.7 | ||||
| compress/hdr_compression=1 | ||||
| compress/normal_map=0 | ||||
| @ -33,6 +33,3 @@ process/hdr_as_srgb=false | ||||
| process/hdr_clamp_exposure=false | ||||
| process/size_limit=0 | ||||
| detect_3d/compress_to=0 | ||||
| svg/scale=1.0 | ||||
| editor/scale_with_editor_scale=false | ||||
| editor/convert_colors_with_editor_theme=false | ||||
							
								
								
									
										0
									
								
								build/.gdignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								build/.gdignore
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										64
									
								
								export_presets.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								export_presets.cfg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,64 @@ | ||||
| [preset.0] | ||||
| 
 | ||||
| name="Windows Desktop" | ||||
| platform="Windows Desktop" | ||||
| runnable=true | ||||
| advanced_options=true | ||||
| dedicated_server=false | ||||
| custom_features="" | ||||
| export_filter="all_resources" | ||||
| include_filter="" | ||||
| exclude_filter="" | ||||
| export_path="build/windows/tli.exe" | ||||
| encryption_include_filters="" | ||||
| encryption_exclude_filters="" | ||||
| encrypt_pck=false | ||||
| encrypt_directory=false | ||||
| script_export_mode=2 | ||||
| 
 | ||||
| [preset.0.options] | ||||
| 
 | ||||
| custom_template/debug="" | ||||
| custom_template/release="" | ||||
| debug/export_console_wrapper=1 | ||||
| binary_format/embed_pck=false | ||||
| texture_format/s3tc_bptc=true | ||||
| texture_format/etc2_astc=false | ||||
| binary_format/architecture="x86_64" | ||||
| codesign/enable=false | ||||
| codesign/timestamp=true | ||||
| codesign/timestamp_server_url="" | ||||
| codesign/digest_algorithm=1 | ||||
| codesign/description="" | ||||
| codesign/custom_options=PackedStringArray() | ||||
| application/modify_resources=true | ||||
| application/icon="" | ||||
| application/console_wrapper_icon="" | ||||
| application/icon_interpolation=4 | ||||
| application/file_version="" | ||||
| application/product_version="" | ||||
| application/company_name="" | ||||
| application/product_name="" | ||||
| application/file_description="" | ||||
| application/copyright="" | ||||
| application/trademarks="" | ||||
| application/export_angle=0 | ||||
| application/export_d3d12=0 | ||||
| application/d3d12_agility_sdk_multiarch=true | ||||
| ssh_remote_deploy/enabled=false | ||||
| ssh_remote_deploy/host="user@host_ip" | ||||
| ssh_remote_deploy/port="22" | ||||
| ssh_remote_deploy/extra_args_ssh="" | ||||
| ssh_remote_deploy/extra_args_scp="" | ||||
| ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' | ||||
| $action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' | ||||
| $trigger = New-ScheduledTaskTrigger -Once -At 00:00 | ||||
| $settings = New-ScheduledTaskSettingsSet | ||||
| $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings | ||||
| Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true | ||||
| Start-ScheduledTask -TaskName godot_remote_debug | ||||
| while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } | ||||
| Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" | ||||
| ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue | ||||
| Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue | ||||
| Remove-Item -Recurse -Force '{temp_dir}'" | ||||
							
								
								
									
										34
									
								
								icon.png.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								icon.png.import
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| [remap] | ||||
| 
 | ||||
| importer="texture" | ||||
| type="CompressedTexture2D" | ||||
| uid="uid://be03qpceooh16" | ||||
| path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" | ||||
| metadata={ | ||||
| "vram_texture": false | ||||
| } | ||||
| 
 | ||||
| [deps] | ||||
| 
 | ||||
| source_file="res://icon.png" | ||||
| dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.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 | ||||
							
								
								
									
										1
									
								
								icon.svg
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								icon.svg
									
									
									
									
									
								
							| @ -1 +0,0 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg> | ||||
| Before Width: | Height: | Size: 994 B | 
| @ -16,7 +16,7 @@ run/main_scene="res://scenes/world.tscn" | ||||
| config/features=PackedStringArray("4.3", "Forward Plus") | ||||
| boot_splash/bg_color=Color(0, 0, 0, 1) | ||||
| boot_splash/show_image=false | ||||
| config/icon="res://icon.svg" | ||||
| config/icon="res://icon.png" | ||||
| 
 | ||||
| [autoload] | ||||
| 
 | ||||
| @ -50,6 +50,10 @@ window/stretch/aspect="expand" | ||||
| mouse_cursor/custom_image="res://assets/textures/gui/cursor.png" | ||||
| mouse_cursor/custom_image_hotspot=Vector2(32, 32) | ||||
| 
 | ||||
| [editor] | ||||
| 
 | ||||
| movie_writer/movie_file="E:/Projects/Games/tli/build/recording.avi" | ||||
| 
 | ||||
| [filesystem] | ||||
| 
 | ||||
| import/fbx2gltf/enabled=false | ||||
|  | ||||
							
								
								
									
										7
									
								
								resources/materials/anthill_material.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								resources/materials/anthill_material.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bgc0omqgojp6n"] | ||||
| 
 | ||||
| [ext_resource type="Texture2D" uid="uid://b7m104tc2wch3" path="res://assets/textures/structures/anthill_albedo.png" id="1_3h7nr"] | ||||
| 
 | ||||
| [resource] | ||||
| shading_mode = 0 | ||||
| albedo_texture = ExtResource("1_3h7nr") | ||||
| @ -37,6 +37,6 @@ mesh = SubResource("QuadMesh_qwehm") | ||||
| [node name="Decal" type="Decal" parent="."] | ||||
| size = Vector3(0.5, 0.5, 0.5) | ||||
| texture_albedo = ExtResource("4_goini") | ||||
| modulate = Color(0, 0, 0, 1) | ||||
| modulate = Color(0.242208, 0.2075, 0.25, 1) | ||||
| albedo_mix = 0.25 | ||||
| cull_mask = 32 | ||||
|  | ||||
| @ -3,8 +3,7 @@ | ||||
| [ext_resource type="Script" path="res://scripts/anthill.gd" id="1_8k02d"] | ||||
| [ext_resource type="Material" uid="uid://f0nlf4tdpvbd" path="res://resources/materials/indicators/hover_indicator_mat.tres" id="2_44p2d"] | ||||
| [ext_resource type="Script" path="res://scripts/sound_effects_player.gd" id="3_vp3nf"] | ||||
| 
 | ||||
| [sub_resource type="CapsuleMesh" id="CapsuleMesh_x8apu"] | ||||
| [ext_resource type="PackedScene" uid="uid://b0koc3o63etu1" path="res://assets/models/anthill.glb" id="4_tp2c4"] | ||||
| 
 | ||||
| [sub_resource type="BoxShape3D" id="BoxShape3D_ruupa"] | ||||
| 
 | ||||
| @ -17,24 +16,31 @@ orientation = 1 | ||||
| collision_mask = 0 | ||||
| script = ExtResource("1_8k02d") | ||||
| 
 | ||||
| [node name="MeshInstance3D" type="MeshInstance3D" parent="."] | ||||
| mesh = SubResource("CapsuleMesh_x8apu") | ||||
| [node name="Anthill" parent="." instance=ExtResource("4_tp2c4")] | ||||
| 
 | ||||
| [node name="Anthill" parent="Anthill" index="0"] | ||||
| layers = 32 | ||||
| 
 | ||||
| [node name="CollisionShape3D" type="CollisionShape3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) | ||||
| shape = SubResource("BoxShape3D_ruupa") | ||||
| 
 | ||||
| [node name="UiOrigin" type="Marker3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.15587, 0) | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0356, 0) | ||||
| 
 | ||||
| [node name="HoverIndicator" type="MeshInstance3D" parent="."] | ||||
| transform = Transform3D(1.62268, 0, 0, 0, 1.62268, 0, 0, 0, 1.62268, 0, 0, 0) | ||||
| transform = Transform3D(2.703, 0, 0, 0, 2.703, 0, 0, 0, 2.703, 0, 0, 0) | ||||
| cast_shadow = 0 | ||||
| mesh = SubResource("QuadMesh_2gykr") | ||||
| 
 | ||||
| [node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."] | ||||
| radius = 0.57 | ||||
| 
 | ||||
| [node name="SoundEffectsPlayer" type="AudioStreamPlayer3D" parent="."] | ||||
| unit_size = 20.0 | ||||
| script = ExtResource("3_vp3nf") | ||||
| 
 | ||||
| [node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."] | ||||
| radius = 0.6 | ||||
| 
 | ||||
| [node name="DepositPoint" type="Marker3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.102205, 0.382582, 0.248212) | ||||
| 
 | ||||
| [editable path="Anthill"] | ||||
|  | ||||
| @ -1,30 +1,50 @@ | ||||
| [gd_scene load_steps=11 format=3 uid="uid://lbs0vilymbum"] | ||||
| [gd_scene load_steps=14 format=3 uid="uid://lbs0vilymbum"] | ||||
| 
 | ||||
| [ext_resource type="PackedScene" uid="uid://cidd3q2tet7ku" path="res://scenes/units/abstract/controlled_unit.tscn" id="1_66kao"] | ||||
| [ext_resource type="Script" path="res://scripts/units/abstract/controlled_ant_unit.gd" id="2_77pj2"] | ||||
| [ext_resource type="PackedScene" uid="uid://bi231xk2sp410" path="res://assets/models/ant.glb" id="2_e21vo"] | ||||
| [ext_resource type="AudioStream" uid="uid://ds7c5gkf1mssj" path="res://assets/audio/units/ant_move.wav" id="4_80pw8"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jem3o"] | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lip5d"] | ||||
| animation = &"idle" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f5jro"] | ||||
| [sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7c5f2"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0h55w"] | ||||
| animation = &"plop_down" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_wsc5y"] | ||||
| filter_enabled = true | ||||
| filters = ["Armature/Skeleton3D:Body", "Armature/Skeleton3D:Leg_back_mid_L", "Armature/Skeleton3D:Leg_back_mid_R", "Armature/Skeleton3D:Leg_back_root_L", "Armature/Skeleton3D:Leg_back_root_R", "Armature/Skeleton3D:Leg_back_tip_L", "Armature/Skeleton3D:Leg_back_tip_R", "Armature/Skeleton3D:Leg_front_mid_L", "Armature/Skeleton3D:Leg_front_mid_R", "Armature/Skeleton3D:Leg_front_root_L", "Armature/Skeleton3D:Leg_front_root_R", "Armature/Skeleton3D:Leg_front_tip_L", "Armature/Skeleton3D:Leg_front_tip_R", "Armature/Skeleton3D:Leg_mid_mid_L", "Armature/Skeleton3D:Leg_mid_mid_R", "Armature/Skeleton3D:Leg_mid_root_L", "Armature/Skeleton3D:Leg_mid_root_R", "Armature/Skeleton3D:Leg_mid_tip_L", "Armature/Skeleton3D:Leg_mid_tip_R"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3qepx"] | ||||
| animation = &"plop_up" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_4ftkg"] | ||||
| filter_enabled = true | ||||
| filters = ["Armature/Skeleton3D:Body", "Armature/Skeleton3D:Leg_back_mid_L", "Armature/Skeleton3D:Leg_back_mid_R", "Armature/Skeleton3D:Leg_back_root_L", "Armature/Skeleton3D:Leg_back_root_R", "Armature/Skeleton3D:Leg_back_tip_L", "Armature/Skeleton3D:Leg_back_tip_R", "Armature/Skeleton3D:Leg_front_mid_L", "Armature/Skeleton3D:Leg_front_mid_R", "Armature/Skeleton3D:Leg_front_root_L", "Armature/Skeleton3D:Leg_front_root_R", "Armature/Skeleton3D:Leg_front_tip_L", "Armature/Skeleton3D:Leg_front_tip_R", "Armature/Skeleton3D:Leg_mid_mid_L", "Armature/Skeleton3D:Leg_mid_mid_R", "Armature/Skeleton3D:Leg_mid_root_L", "Armature/Skeleton3D:Leg_mid_root_R", "Armature/Skeleton3D:Leg_mid_tip_L", "Armature/Skeleton3D:Leg_mid_tip_R"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_grmq1"] | ||||
| animation = &"walk" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_0mwos"] | ||||
| blend_point_0/node = SubResource("AnimationNodeAnimation_jem3o") | ||||
| blend_point_0/pos = 0.0 | ||||
| blend_point_1/node = SubResource("AnimationNodeAnimation_f5jro") | ||||
| blend_point_1/pos = 1.0 | ||||
| min_space = 0.0 | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_pwnkm"] | ||||
| advance_mode = 2 | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_v8drs"] | ||||
| states/locomotion/node = SubResource("AnimationNodeBlendSpace1D_0mwos") | ||||
| states/locomotion/position = Vector2(334, 100) | ||||
| transitions = ["Start", "locomotion", SubResource("AnimationNodeStateMachineTransition_pwnkm")] | ||||
| [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4gyt5"] | ||||
| graph_offset = Vector2(-327.784, 80.2142) | ||||
| nodes/idle_anim/node = SubResource("AnimationNodeAnimation_lip5d") | ||||
| nodes/idle_anim/position = Vector2(-320, 80) | ||||
| nodes/locomotion_blend/node = SubResource("AnimationNodeBlend2_7c5f2") | ||||
| nodes/locomotion_blend/position = Vector2(-100, 120) | ||||
| nodes/output/position = Vector2(680, 160) | ||||
| nodes/plop_down_anim/node = SubResource("AnimationNodeAnimation_0h55w") | ||||
| nodes/plop_down_anim/position = Vector2(-40, 360) | ||||
| nodes/plop_down_oneshot/node = SubResource("AnimationNodeOneShot_wsc5y") | ||||
| nodes/plop_down_oneshot/position = Vector2(180, 140) | ||||
| nodes/plop_up_anim/node = SubResource("AnimationNodeAnimation_3qepx") | ||||
| nodes/plop_up_anim/position = Vector2(260, 400) | ||||
| nodes/plop_up_oneshot/node = SubResource("AnimationNodeOneShot_4ftkg") | ||||
| nodes/plop_up_oneshot/position = Vector2(440, 140) | ||||
| nodes/walk_anim/node = SubResource("AnimationNodeAnimation_grmq1") | ||||
| nodes/walk_anim/position = Vector2(-320, 220) | ||||
| node_connections = [&"locomotion_blend", 0, &"idle_anim", &"locomotion_blend", 1, &"walk_anim", &"output", 0, &"plop_up_oneshot", &"plop_down_oneshot", 0, &"locomotion_blend", &"plop_down_oneshot", 1, &"plop_down_anim", &"plop_up_oneshot", 0, &"plop_down_oneshot", &"plop_up_oneshot", 1, &"plop_up_anim"] | ||||
| 
 | ||||
| [sub_resource type="CylinderShape3D" id="CylinderShape3D_8admi"] | ||||
| height = 0.5 | ||||
| @ -40,20 +60,37 @@ bones/6/rotation = Quaternion(0.330686, -3.0116e-14, -4.44141e-07, 0.943741) | ||||
| bones/9/rotation = Quaternion(0.587858, 5.43255e-07, 3.94772e-07, 0.808964) | ||||
| bones/11/rotation = Quaternion(0.330686, 3.0116e-14, 4.44141e-07, 0.943741) | ||||
| bones/14/rotation = Quaternion(4.60304e-08, 0.0294697, 0.999566, -5.43234e-07) | ||||
| bones/14/scale = Vector3(1, 1, 1) | ||||
| bones/15/rotation = Quaternion(4.55913e-08, 0.0294697, 0.999566, -4.34329e-07) | ||||
| bones/15/scale = Vector3(1, 1, 1) | ||||
| bones/16/rotation = Quaternion(4.55913e-08, 0.0294697, 0.999566, -4.34329e-07) | ||||
| bones/16/scale = Vector3(1, 1, 1) | ||||
| bones/18/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/19/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/20/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/21/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/22/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/23/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/24/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/25/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/26/rotation = Quaternion(-0.221628, 0.221633, -0.671475, 0.671477) | ||||
| bones/27/rotation = Quaternion(0.583948, -8.29882e-08, 2.36539e-06, 0.811791) | ||||
| bones/27/scale = Vector3(1, 1, 1) | ||||
| bones/28/rotation = Quaternion(-0.84146, 6.60837e-08, -6.26108e-06, 0.54032) | ||||
| bones/30/rotation = Quaternion(0.583949, -2.24752e-07, 2.46641e-06, 0.811791) | ||||
| bones/31/rotation = Quaternion(-0.84146, 1.69298e-07, -6.42962e-06, 0.54032) | ||||
| bones/32/scale = Vector3(1, 1, 1) | ||||
| bones/34/rotation = Quaternion(-0.841459, 1.31575e-07, -6.3826e-06, 0.540321) | ||||
| bones/34/scale = Vector3(1, 1, 1) | ||||
| bones/35/rotation = Quaternion(-0.221628, -0.221633, 0.671475, 0.671477) | ||||
| bones/36/rotation = Quaternion(0.583948, 8.29882e-08, -2.36539e-06, 0.811791) | ||||
| bones/36/scale = Vector3(1, 1, 1) | ||||
| bones/37/rotation = Quaternion(-0.84146, -6.60837e-08, 6.26108e-06, 0.54032) | ||||
| bones/39/rotation = Quaternion(0.583949, 2.24752e-07, -2.46641e-06, 0.811791) | ||||
| bones/40/rotation = Quaternion(-0.84146, -1.69298e-07, 6.42962e-06, 0.54032) | ||||
| bones/41/scale = Vector3(1, 1, 1) | ||||
| bones/43/rotation = Quaternion(-0.841459, -1.31575e-07, 6.3826e-06, 0.540321) | ||||
| bones/43/scale = Vector3(1, 1, 1) | ||||
| 
 | ||||
| [node name="GathererMesh" parent="AntModel/Armature/Skeleton3D" index="0"] | ||||
| visible = false | ||||
| @ -61,11 +98,20 @@ visible = false | ||||
| [node name="NitwitMesh" parent="AntModel/Armature/Skeleton3D" index="1"] | ||||
| visible = false | ||||
| 
 | ||||
| [node name="AnimationPlayer" parent="AntModel" index="1"] | ||||
| deterministic = true | ||||
| 
 | ||||
| [node name="AnimationTree" parent="." index="1"] | ||||
| root_node = NodePath("../AntModel") | ||||
| tree_root = SubResource("AnimationNodeStateMachine_v8drs") | ||||
| tree_root = SubResource("AnimationNodeBlendTree_4gyt5") | ||||
| anim_player = NodePath("../AntModel/AnimationPlayer") | ||||
| parameters/locomotion/blend_position = 0.023431 | ||||
| parameters/locomotion_blend/blend_amount = 0 | ||||
| parameters/plop_down_oneshot/active = false | ||||
| parameters/plop_down_oneshot/internal_active = false | ||||
| parameters/plop_down_oneshot/request = 0 | ||||
| parameters/plop_up_oneshot/active = false | ||||
| parameters/plop_up_oneshot/internal_active = false | ||||
| parameters/plop_up_oneshot/request = 0 | ||||
| 
 | ||||
| [node name="CollisionShape3D" parent="." index="2"] | ||||
| shape = SubResource("CylinderShape3D_8admi") | ||||
| @ -82,10 +128,11 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0) | ||||
| [node name="SelectionIndicator" parent="." index="7"] | ||||
| transform = Transform3D(0.772715, 0, 0, 0, 0.772715, 0, 0, 0, 0.772715, 0, 0, 0) | ||||
| 
 | ||||
| [node name="MoveSoundPlayer" parent="." index="10"] | ||||
| [node name="MoveSoundPlayer" parent="." index="11"] | ||||
| stream = ExtResource("4_80pw8") | ||||
| attenuation_filter_db = 0.0 | ||||
| 
 | ||||
| [node name="Decal" parent="." index="11"] | ||||
| [node name="Decal" parent="." index="12"] | ||||
| size = Vector3(1.5, 1, 1.5) | ||||
| 
 | ||||
| [editable path="AntModel"] | ||||
|  | ||||
| @ -48,16 +48,16 @@ mesh = SubResource("BoxMesh_hvf81") | ||||
| 
 | ||||
| [node name="SoundEffectsPlayer" type="AudioStreamPlayer3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0) | ||||
| attenuation_model = 1 | ||||
| script = ExtResource("3_wl62h") | ||||
| 
 | ||||
| [node name="MoveSoundPlayer" type="AudioStreamPlayer3D" parent="."] | ||||
| transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0) | ||||
| attenuation_model = 1 | ||||
| attenuation_filter_db = 0.0 | ||||
| 
 | ||||
| [node name="Decal" type="Decal" parent="."] | ||||
| size = Vector3(1, 1, 1) | ||||
| texture_albedo = ExtResource("4_iixjt") | ||||
| modulate = Color(0, 0, 0, 1) | ||||
| modulate = Color(0.242208, 0.2075, 0.25, 1) | ||||
| albedo_mix = 0.5 | ||||
| cull_mask = 32 | ||||
|  | ||||
| @ -11,27 +11,6 @@ radius = 15.0 | ||||
| [node name="AntGatherer" instance=ExtResource("1_m5yy7")] | ||||
| script = ExtResource("2_7pblm") | ||||
| 
 | ||||
| [node name="Skeleton3D" parent="AntModel/Armature" index="0"] | ||||
| bones/14/scale = Vector3(1, 1, 1) | ||||
| bones/15/scale = Vector3(1, 1, 1) | ||||
| bones/16/scale = Vector3(1, 1, 1) | ||||
| bones/18/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/19/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/20/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/21/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/22/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/23/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/24/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566) | ||||
| bones/25/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566) | ||||
| bones/26/scale = Vector3(1, 1, 1) | ||||
| bones/27/scale = Vector3(1, 1, 1) | ||||
| bones/32/scale = Vector3(1, 1, 1) | ||||
| bones/34/scale = Vector3(1, 1, 1) | ||||
| bones/35/scale = Vector3(1, 1, 1) | ||||
| bones/36/scale = Vector3(1, 1, 1) | ||||
| bones/41/scale = Vector3(1, 1, 1) | ||||
| bones/43/scale = Vector3(1, 1, 1) | ||||
| 
 | ||||
| [node name="GathererMesh" parent="AntModel/Armature/Skeleton3D" index="0"] | ||||
| visible = true | ||||
| 
 | ||||
|  | ||||
| @ -1,30 +1,39 @@ | ||||
| [gd_scene load_steps=11 format=3 uid="uid://bw8cabkva3k4f"] | ||||
| [gd_scene load_steps=12 format=3 uid="uid://bw8cabkva3k4f"] | ||||
| 
 | ||||
| [ext_resource type="PackedScene" uid="uid://c70vx0utm5knp" path="res://scenes/units/abstract/unit.tscn" id="1_ghhpv"] | ||||
| [ext_resource type="Script" path="res://scripts/units/aphid.gd" id="2_c6sy4"] | ||||
| [ext_resource type="PackedScene" uid="uid://ch02ae8fj2lhh" path="res://assets/models/aphid.glb" id="2_vtmi4"] | ||||
| [ext_resource type="AudioStream" uid="uid://bqt1xdorarhoi" path="res://assets/audio/units/aphid_move.wav" id="5_f4mon"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f1f0e"] | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vr4bn"] | ||||
| animation = &"idle" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_mfl87"] | ||||
| [sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6hdai"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_la1j2"] | ||||
| animation = &"plop" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_qspit"] | ||||
| filter_enabled = true | ||||
| filters = ["Armature/Skeleton3D:Root"] | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g6qll"] | ||||
| animation = &"walk" | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_lgt8u"] | ||||
| blend_point_0/node = SubResource("AnimationNodeAnimation_f1f0e") | ||||
| blend_point_0/pos = 0.0 | ||||
| blend_point_1/node = SubResource("AnimationNodeAnimation_mfl87") | ||||
| blend_point_1/pos = 1.0 | ||||
| min_space = 0.0 | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_17r08"] | ||||
| advance_mode = 2 | ||||
| 
 | ||||
| [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_38sa4"] | ||||
| states/locomotion/node = SubResource("AnimationNodeBlendSpace1D_lgt8u") | ||||
| states/locomotion/position = Vector2(333, 100) | ||||
| transitions = ["Start", "locomotion", SubResource("AnimationNodeStateMachineTransition_17r08")] | ||||
| [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_a3xja"] | ||||
| graph_offset = Vector2(-418.868, 27.0018) | ||||
| nodes/idle_anim/node = SubResource("AnimationNodeAnimation_vr4bn") | ||||
| nodes/idle_anim/position = Vector2(-180, 100) | ||||
| nodes/locomotion_blend/node = SubResource("AnimationNodeBlend2_6hdai") | ||||
| nodes/locomotion_blend/position = Vector2(20, 140) | ||||
| nodes/output/position = Vector2(500, 160) | ||||
| nodes/plop_anim/node = SubResource("AnimationNodeAnimation_la1j2") | ||||
| nodes/plop_anim/position = Vector2(100, 380) | ||||
| nodes/plop_oneshot/node = SubResource("AnimationNodeOneShot_qspit") | ||||
| nodes/plop_oneshot/position = Vector2(300, 220) | ||||
| nodes/walk_anim/node = SubResource("AnimationNodeAnimation_g6qll") | ||||
| nodes/walk_anim/position = Vector2(-180, 260) | ||||
| node_connections = [&"locomotion_blend", 0, &"idle_anim", &"locomotion_blend", 1, &"walk_anim", &"output", 0, &"plop_oneshot", &"plop_oneshot", 0, &"locomotion_blend", &"plop_oneshot", 1, &"plop_anim"] | ||||
| 
 | ||||
| [sub_resource type="SphereShape3D" id="SphereShape3D_t1vrx"] | ||||
| radius = 0.3 | ||||
| @ -46,11 +55,17 @@ bones/13/rotation = Quaternion(-0.235443, -0.235445, 0.666758, 0.666758) | ||||
| bones/14/rotation = Quaternion(-0.235443, -0.235445, 0.666758, 0.666758) | ||||
| bones/15/scale = Vector3(1, 1, 1) | ||||
| 
 | ||||
| [node name="AnimationPlayer" parent="AphidModel" index="1"] | ||||
| deterministic = true | ||||
| 
 | ||||
| [node name="AnimationTree" parent="." index="1"] | ||||
| root_node = NodePath("../AphidModel") | ||||
| tree_root = SubResource("AnimationNodeStateMachine_38sa4") | ||||
| tree_root = SubResource("AnimationNodeBlendTree_a3xja") | ||||
| anim_player = NodePath("../AphidModel/AnimationPlayer") | ||||
| parameters/locomotion/blend_position = 0 | ||||
| parameters/locomotion_blend/blend_amount = 0.0 | ||||
| parameters/plop_oneshot/active = false | ||||
| parameters/plop_oneshot/internal_active = false | ||||
| parameters/plop_oneshot/request = 0 | ||||
| 
 | ||||
| [node name="CollisionShape3D" parent="." index="2"] | ||||
| shape = SubResource("SphereShape3D_t1vrx") | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| extends AudioStreamPlayer | ||||
| 
 | ||||
| const ZOOMED_IN_CUTOFF = 10000 | ||||
| const ZOOMED_IN_CUTOFF = 7500 | ||||
| const ZOOMED_OUT_CUTOFF = 0 | ||||
| 
 | ||||
| var _audio_1 := preload("res://assets/audio/ambient/ambient_1.ogg") | ||||
|  | ||||
| @ -13,6 +13,8 @@ var _nitwit_scene := preload("res://scenes/units/ant_nitwit.tscn") | ||||
| var _gatherer_scene := preload("res://scenes/units/ant_gatherer.tscn") | ||||
| 
 | ||||
| @onready var ui_origin: Node3D = $UiOrigin | ||||
| @onready var deposit_point: Node3D = $DepositPoint | ||||
| @onready var animation_player: AnimationPlayer = $Anthill/AnimationPlayer | ||||
| @onready var audio_player: SoundEffectsPlayer = ( | ||||
| 		$SoundEffectsPlayer | ||||
| ) | ||||
| @ -39,6 +41,8 @@ func deposit_honeydew(amount: int) -> int: | ||||
| 		leftover = new_honeydew_amount - max_honeydew | ||||
| 	else: | ||||
| 		honeydew = new_honeydew_amount | ||||
| 	animation_player.stop() | ||||
| 	animation_player.play("plop_down") | ||||
| 	return leftover | ||||
| 
 | ||||
| 
 | ||||
| @ -84,5 +88,8 @@ func _create_unit( | ||||
| 	) | ||||
| 	if ding: | ||||
| 		audio_player.play_sound(SoundManager.ding()) | ||||
| 		animation_player.stop() | ||||
| 		animation_player.play("plop_up") | ||||
| 
 | ||||
| 	buy_ant.emit() | ||||
| 	return new_unit | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| extends Node | ||||
| ## Handles selection of units. | ||||
| 
 | ||||
| signal deselect | ||||
| 
 | ||||
| const MIN_DRAG_DISTANCE: float = 15 | ||||
| const UNIT_SELECT_OFFSET: float = 0.25 | ||||
| 
 | ||||
| @ -50,6 +52,7 @@ func _input(event: InputEvent) -> void: | ||||
| 				_selection_rect.size = Vector2.ZERO | ||||
| 			elif selecting: | ||||
| 				_set_selection_state(false) | ||||
| 				deselect.emit() | ||||
| 	 | ||||
| 	if event is InputEventMouseMotion: | ||||
| 		if _mouse_pressed: | ||||
| @ -73,6 +76,11 @@ func remove_unit_from_visible(unit: Unit) -> void: | ||||
| 	_visible_units.erase(unit_id) | ||||
| 
 | ||||
| 
 | ||||
| func is_unit_visible(unit: Unit) -> bool: | ||||
| 	var unit_id := unit.get_instance_id() | ||||
| 	return _visible_units.keys().has(unit_id) | ||||
| 
 | ||||
| 
 | ||||
| func _handle_advance_anim_step() -> void: | ||||
| 	var remapped_unclamped := remap( | ||||
| 			_visible_units.size(), | ||||
|  | ||||
| @ -66,6 +66,15 @@ var _press_up_streams: Array[AudioStream] = [ | ||||
| 	preload("res://assets/audio/ui/press_up_6.wav"), | ||||
| ] | ||||
| 
 | ||||
| var _aphid_poop_streams: Array[AudioStream] = [ | ||||
| 	preload("res://assets/audio/units/aphid_poop_1.wav"), | ||||
| 	preload("res://assets/audio/units/aphid_poop_2.wav"), | ||||
| 	preload("res://assets/audio/units/aphid_poop_3.wav"), | ||||
| 	preload("res://assets/audio/units/aphid_poop_4.wav"), | ||||
| 	preload("res://assets/audio/units/aphid_poop_5.wav"), | ||||
| 	preload("res://assets/audio/units/aphid_poop_6.wav"), | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
| func _ready() -> void: | ||||
| 	process_mode = Node.PROCESS_MODE_ALWAYS | ||||
| @ -101,3 +110,7 @@ func press_down() -> AudioStream: | ||||
| 
 | ||||
| func press_up() -> AudioStream: | ||||
| 	return _press_up_streams.pick_random() | ||||
| 
 | ||||
| 
 | ||||
| func aphid_poop() -> AudioStream: | ||||
| 	return _aphid_poop_streams.pick_random() | ||||
|  | ||||
| @ -65,6 +65,7 @@ func _ready() -> void: | ||||
| 	assert(listener != null, "listener missing!") | ||||
| 	_target_position = StaticNodesManager.player_anthill.global_position | ||||
| 	listener.make_current() | ||||
| 	UiManager.unit_info.closed.connect(_on_unit_info_closed) | ||||
| 
 | ||||
| 
 | ||||
| func _process(delta: float) -> void: | ||||
| @ -90,7 +91,6 @@ func _process(delta: float) -> void: | ||||
| 	listener.global_position = _target_position + (Vector3.UP * distance) | ||||
| 	listener.global_rotation = global_rotation | ||||
| 
 | ||||
| 	UiManager.unit_info.closed.connect(_on_unit_info_closed) | ||||
| 
 | ||||
| 	DebugManager.marker("mc_target", _target_position, 0.05) | ||||
| 	DebugManager.marker("mc_listener", listener.global_position, 0.05, Color.GREEN) | ||||
|  | ||||
| @ -28,6 +28,7 @@ func _init() -> void: | ||||
| func _ready() -> void: | ||||
| 	assert(selection_indicator != null, "selection_indicator missing!") | ||||
| 	nav_agent.navigation_finished.connect(_on_nav_agent_navigation_finished) | ||||
| 	SelectionManager.deselect.connect(_on_selection_manager_deselect) | ||||
| 	super._ready() | ||||
| 
 | ||||
| 
 | ||||
| @ -98,3 +99,8 @@ func _click_raycast(mouse_pos: Vector2) -> Vector3: | ||||
| 
 | ||||
| func _on_nav_agent_navigation_finished() -> void: | ||||
| 	_wandering_center = nav_agent.get_final_position() | ||||
| 
 | ||||
| 
 | ||||
| func _on_selection_manager_deselect() -> void: | ||||
| 	if _selected and not SelectionManager.is_unit_visible(self): | ||||
| 		set_selected(false) | ||||
|  | ||||
| @ -113,7 +113,7 @@ func _handle_animation(delta: float) -> void: | ||||
| 			velocity.length() / _move_speed, | ||||
| 			delta * LOCOMOTION_CHANGE_SPEED | ||||
| 	) | ||||
| 	animation_tree.set("parameters/locomotion/blend_position", _locomotion_value) | ||||
| 	animation_tree["parameters/locomotion_blend/blend_amount"] = _locomotion_value | ||||
| 
 | ||||
| 	_advance_anim_delta_accum += delta | ||||
| 
 | ||||
|  | ||||
| @ -9,7 +9,7 @@ const BONE_SCALE_VARIATION: float = 0.25 | ||||
| 
 | ||||
| const HONEYDEW_INTERVAL_MIN: float = 5 | ||||
| const HONEYDEW_INTERVAL_MAX: float = 60 | ||||
| const HONEYDEW_SPAWN_SPREAD: float = 0.5 | ||||
| const HONEYDEW_SPAWN_SPREAD: float = 0.25 | ||||
| const HONEYDEWS_MAX: int = 5 | ||||
| 
 | ||||
| var state: State = State.WANDERING | ||||
| @ -87,6 +87,11 @@ func _handle_honeydew_spawn(delta: float) -> void: | ||||
| 	new_honeydew.global_position = global_position + new_pos | ||||
| 	_put_honeydew(new_honeydew) | ||||
| 
 | ||||
| 	audio_player.play_sound(SoundManager.aphid_poop()) | ||||
| 	animation_tree["parameters/plop_oneshot/request"] = ( | ||||
| 			AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE | ||||
| 	) | ||||
| 
 | ||||
| 	_set_spawn_timer() | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -146,8 +146,15 @@ func _pick_up() -> void: | ||||
| 			_get_nth_pile_pos(_carrying_items.size() - 1) | ||||
| 	).tween_finished | ||||
| 	audio_player.play_sound(SoundManager.pop()) | ||||
| 	_unit.animation_tree["parameters/plop_down_oneshot/request"] = ( | ||||
| 			AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE | ||||
| 	) | ||||
| 
 | ||||
| 	await get_tree().create_timer(_pickup_interval).timeout | ||||
| 	 | ||||
| 	if state == State.STOP: | ||||
| 		return | ||||
| 
 | ||||
| 	var nearest := _find_nearest(_nearby_items.values()) | ||||
| 	if _carrying_items.size() == _max_carrying or nearest == null: | ||||
| 		_go_deposit() | ||||
| @ -157,7 +164,6 @@ func _pick_up() -> void: | ||||
| 
 | ||||
| 
 | ||||
| func _deposit() -> void: | ||||
| 	await get_tree().create_timer(0.5).timeout | ||||
| 	while _carrying_items.size() > 0: | ||||
| 		if state != State.DEPOSITING: | ||||
| 			return | ||||
| @ -167,9 +173,14 @@ func _deposit() -> void: | ||||
| 			return | ||||
| 
 | ||||
| 		var item := _carrying_items.pop_back() as Honeydew | ||||
| 		_unit.animation_tree["parameters/plop_up_oneshot/request"] = ( | ||||
| 				AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE | ||||
| 		) | ||||
| 		audio_player.play_sound(SoundManager.swoosh()) | ||||
| 
 | ||||
| 		await item.start_tweening(_unit.anthill.global_position).tween_finished | ||||
| 		await item.start_tweening( | ||||
| 				_unit.anthill.deposit_point.global_position | ||||
| 		).tween_finished | ||||
| 
 | ||||
| 		audio_player.play_sound(SoundManager.tok()) | ||||
| 		item.remove_from_spawner() | ||||
| @ -178,6 +189,9 @@ func _deposit() -> void: | ||||
| 		_unit.anthill.deposit_honeydew(1) | ||||
| 		await get_tree().create_timer(_drop_interval).timeout | ||||
| 	 | ||||
| 	if state == State.STOP: | ||||
| 		return | ||||
| 
 | ||||
| 	var nearest := _find_nearest(_nearby_items.values()) | ||||
| 	if nearest == null: | ||||
| 		state = State.WAITING_FOR_NEW_ITEMS | ||||
| @ -242,7 +256,7 @@ func _on_nav_agent_navigation_finished() -> void: | ||||
| 
 | ||||
| 	if ( | ||||
| 			state == State.DEPOSITING | ||||
| 			and global_position.distance_to(_unit.anthill.global_position) < 2 | ||||
| 			# and global_position.distance_to(_unit.anthill.global_position) < 2 | ||||
| 	): | ||||
| 		_deposit() | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user