diff --git a/.gitignore b/.gitignore index 5dfd0d3..ea443f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ # Godot 4+ specific ignores .godot/ + assets/sounds/ +export/ diff --git a/entities/Player.tscn b/entities/Player.tscn index c2d0fd8..4da9b3e 100644 --- a/entities/Player.tscn +++ b/entities/Player.tscn @@ -1,6 +1,7 @@ [gd_scene load_steps=8 format=3 uid="uid://bfyjtfdko3l7o"] [ext_resource type="Script" path="res://entities/Player.gd" id="1_w5gy0"] +[ext_resource type="Material" uid="uid://bxbikke5t70ff" path="res://materials/PlayerMaterial.tres" id="2_jg6ir"] [ext_resource type="AudioStream" uid="uid://bhbhh78j5rkfe" path="res://assets/sounds/pixabay/dash/whoosh-6316.mp3" id="2_ykhbt"] [ext_resource type="AudioStream" uid="uid://qeg12ynvjvy0" path="res://assets/sounds/pixabay/explosion/081895_impact_wav-43951.mp3" id="3_mjsr0"] [ext_resource type="AudioStream" uid="uid://b33xjins3dqpp" path="res://assets/sounds/pixabay/sfx/game-teleport-90735.mp3" id="4_y7abk"] @@ -8,8 +9,6 @@ [sub_resource type="BoxMesh" id="BoxMesh_yle83"] size = Vector3(0.24, 0.75, 0.24) -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y3fq5"] - [sub_resource type="CylinderShape3D" id="CylinderShape3D_rwgp3"] height = 0.75 radius = 0.15 @@ -23,7 +22,7 @@ script = ExtResource("1_w5gy0") [node name="Geometry" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.472656, 0) mesh = SubResource("BoxMesh_yle83") -surface_material_override/0 = SubResource("StandardMaterial3D_y3fq5") +surface_material_override/0 = ExtResource("2_jg6ir") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.496337, 0) diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..8cabc5b --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,108 @@ +[preset.0] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="export/DashBoomColorClash/DashBoomColorClash.x86_64" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +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="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="export/DashBoomColorClash/DashBoomColorClash.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=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="res://ui/Icon.png" +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 +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}'" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false diff --git a/materials/PlayerMaterial.tres b/materials/PlayerMaterial.tres new file mode 100644 index 0000000..4fd227e --- /dev/null +++ b/materials/PlayerMaterial.tres @@ -0,0 +1,3 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://bxbikke5t70ff"] + +[resource] diff --git a/project.godot b/project.godot index b0d0d91..652084b 100644 --- a/project.godot +++ b/project.godot @@ -11,9 +11,15 @@ config_version=5 [application] config/name="DashBoomColorClash" +config/description="Spread your color in the level. Use bombs to mark spots and dash to evade your opponent!" +config/version="1.0" run/main_scene="res://scenes/Game.tscn" config/features=PackedStringArray("4.2", "GL Compatibility") -config/icon="res://icon.svg" +config/icon="res://ui/Icon.png" + +[display] + +window/size/mode=3 [dotnet] diff --git a/scenes/GameUI.gd b/scenes/GameUI.gd index 5554eef..6c852e3 100644 --- a/scenes/GameUI.gd +++ b/scenes/GameUI.gd @@ -92,6 +92,8 @@ func _input(event): if event.is_action_pressed("ui_cancel"): if world.game_state == World.GameState.LevelSelect: world.game_state = World.GameState.Startup + elif world.game_state == World.GameState.Startup: + get_tree().quit() func initialize_level_buttons(): var level_button : Button = level_list_container.get_child(0) diff --git a/scenes/World.gd b/scenes/World.gd index 1b2ee85..74d13a5 100644 --- a/scenes/World.gd +++ b/scenes/World.gd @@ -11,6 +11,7 @@ var players: Array @onready var music_stream_player: AudioStreamPlayer = $MusicAudioStreamPlayer var player_scene = preload("res://entities/Player.tscn") +var player_override_material = preload("res://materials/PlayerMaterial.tres") var level_scenes : Array = [ preload("res://levels/BasicLevel.tscn"), @@ -190,6 +191,7 @@ func spawn_players(): player1.move_down_action += "_p1" player1.dash_action += "_p1" player1.bomb_action += "_p1" + var player2: Player = player_scene.instantiate() player2.name = "Blue" player2.color = Color(0, 0, 1, 1) @@ -209,7 +211,17 @@ func spawn_players(): players.append(player1) players.append(player2) - + + var player1_material : StandardMaterial3D = player_override_material.duplicate() + player1_material.albedo_color = player1.color + player1.geometry.set_surface_override_material(0, player1_material) + player1.name = "Red" + + var player2_material : StandardMaterial3D = player_override_material.duplicate() + player2_material.albedo_color = player2.color + player2.geometry.set_surface_override_material(0, player2_material) + player2.name = "Blue" + if players.size() == 1: world_coloring_material = load("res://materials/WorldColoringMaterialPass.tres") world_coloring_material.set_shader_parameter("world_color_texture", world_coloring_viewport.get_texture()) diff --git a/ui/Icon.png b/ui/Icon.png new file mode 100644 index 0000000..5364985 Binary files /dev/null and b/ui/Icon.png differ diff --git a/ui/Icon.png.import b/ui/Icon.png.import new file mode 100644 index 0000000..090ffc0 --- /dev/null +++ b/ui/Icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://78p6eeqptp1e" +path="res://.godot/imported/Icon.png-4e0acb046e84f1b83d0c49e76b0ec5a4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/Icon.png" +dest_files=["res://.godot/imported/Icon.png-4e0acb046e84f1b83d0c49e76b0ec5a4.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