start von Commits

This commit is contained in:
kevadesu 2025-04-14 02:27:59 +02:00
commit f35baec2ee
80 changed files with 1747 additions and 0 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# Godot 4+ specific ignores
.godot/
/android/

15
DiscordRPC.gd Normal file
View file

@ -0,0 +1,15 @@
extends Node
func _ready():
DiscordRPC.app_id = 1351181457938186354 # Application ID
DiscordRPC.details = "projektLuzid"
DiscordRPC.state = ProjectSettings.get_setting("application/config/name")
DiscordRPC.large_image = "example_game" # Image key from "Art Assets"
DiscordRPC.large_image_text = "TEST!"
DiscordRPC.small_image = "boss" # Image key from "Art Assets"
DiscordRPC.small_image_text = "TEST"
DiscordRPC.start_timestamp = int(Time.get_unix_time_from_system()) # "02:46 elapsed"
# DiscordRPC.end_timestamp = int(Time.get_unix_time_from_system()) + 3600 # +1 hour in unix time / "01:00:00 remaining"
DiscordRPC.refresh() # Always refresh after changing the values!

1
DiscordRPC.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://fd6uc4j11t5a

Binary file not shown.

View file

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c0deno8y61t32"
path="res://.godot/imported/InstrumentSans-Italic-VariableFont_wdth,wght.ttf-3da43071b972ad7fffdc3c068311e047.fontdata"
[deps]
source_file="res://InstrumentSans-Italic-VariableFont_wdth,wght.ttf"
dest_files=["res://.godot/imported/InstrumentSans-Italic-VariableFont_wdth,wght.ttf-3da43071b972ad7fffdc3c068311e047.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View file

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://rswq6vrwr2nx"
path="res://.godot/imported/InstrumentSans-VariableFont_wdth,wght.ttf-b2433b142cf6031f64aaf2de88699e1f.fontdata"
[deps]
source_file="res://InstrumentSans-VariableFont_wdth,wght.ttf"
dest_files=["res://.godot/imported/InstrumentSans-VariableFont_wdth,wght.ttf-b2433b142cf6031f64aaf2de88699e1f.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
InstrumentSerif-Italic.ttf Normal file

Binary file not shown.

View file

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dhn2iwihgai4c"
path="res://.godot/imported/InstrumentSerif-Italic.ttf-bd90659153ae8d4aedbe7c1b02a78249.fontdata"
[deps]
source_file="res://InstrumentSerif-Italic.ttf"
dest_files=["res://.godot/imported/InstrumentSerif-Italic.ttf-bd90659153ae8d4aedbe7c1b02a78249.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
InstrumentSerif-Regular.ttf Normal file

Binary file not shown.

View file

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://bulwhh7xjiip0"
path="res://.godot/imported/InstrumentSerif-Regular.ttf-b87f4977a56bc3c53a6f935dc4b42962.fontdata"
[deps]
source_file="res://InstrumentSerif-Regular.ttf"
dest_files=["res://.godot/imported/InstrumentSerif-Regular.ttf-b87f4977a56bc3c53a6f935dc4b42962.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

159
Level_Core.tscn Normal file
View file

@ -0,0 +1,159 @@
[gd_scene load_steps=10 format=3 uid="uid://bn20cqfwvm2oe"]
[ext_resource type="Script" uid="uid://wr38f8q1w7yq" path="res://pause_menu.gd" id="1_fwt2i"]
[ext_resource type="PackedScene" uid="uid://bs6yq6gy7k2sb" path="res://player.tscn" id="1_lsi31"]
[ext_resource type="FontFile" uid="uid://rswq6vrwr2nx" path="res://InstrumentSans-VariableFont_wdth,wght.ttf" id="2_fq2vn"]
[ext_resource type="PackedScene" uid="uid://daoyebc0vm7sd" path="res://pause_menu.tscn" id="3_i8tni"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_rv2mx"]
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
[sub_resource type="Sky" id="Sky_lsi31"]
sky_material = SubResource("ProceduralSkyMaterial_rv2mx")
[sub_resource type="Environment" id="Environment_fq2vn"]
background_mode = 2
sky = SubResource("Sky_lsi31")
tonemap_mode = 2
glow_enabled = true
[sub_resource type="PlaneMesh" id="PlaneMesh_rv2mx"]
size = Vector2(10, 10)
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_lsi31"]
data = PackedVector3Array(5, 0, 5, -5, 0, 5, 5, 0, -5, -5, 0, 5, -5, 0, -5, 5, 0, -5)
[node name="LevelCore" type="Node3D"]
script = ExtResource("1_fwt2i")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_fq2vn")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
shadow_enabled = true
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.976672, -0.214735, 0, 0.214735, 0.976672, 0, 1.05, -9.898)
mesh = SubResource("PlaneMesh_rv2mx")
skeleton = NodePath("../MeshInstance3D")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_lsi31")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="."]
transform = Transform3D(1, -1.31134e-07, 4.37114e-08, -4.37114e-08, 4.37114e-08, 1, -1.31134e-07, -1, 4.37114e-08, 4.76837e-07, 5, 5)
mesh = SubResource("PlaneMesh_rv2mx")
skeleton = NodePath("../MeshInstance3D3")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D5"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D5/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_lsi31")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="."]
transform = Transform3D(4.37114e-08, 1, -8.74228e-08, 1, -4.37114e-08, 0, -3.82137e-15, -8.74228e-08, -1, -5, 5, 0)
mesh = SubResource("PlaneMesh_rv2mx")
skeleton = NodePath("../MeshInstance3D3")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D4"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D4/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_lsi31")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 5, 5, 0)
mesh = SubResource("PlaneMesh_rv2mx")
skeleton = NodePath("../MeshInstance3D")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D3"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_lsi31")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("PlaneMesh_rv2mx")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_lsi31")
[node name="Player" parent="." instance=ExtResource("1_lsi31")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 1.3736)
top_level = true
linear_damp = 3.0
[node name="Label3D3" type="Label3D" parent="."]
transform = Transform3D(0.971861, -0.161859, -0.171136, 0.212847, 0.914655, 0.34366, 0.100906, -0.370415, 0.923369, 0.568496, 0.970887, 0.103196)
offset = Vector2(1, 0)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "Drücke W um dich vorwärts zu bewegen
Drücke A um nach links zu bewegen
Drücke S um dich rückwarts zu bewegen
Drücke D um nach rechts zu bewegen"
font = ExtResource("2_fq2vn")
[node name="Label3D4" type="Label3D" parent="."]
transform = Transform3D(0.840144, -0.185681, 0.509588, -0.0870775, 0.881203, 0.464649, -0.535327, -0.434746, 0.724169, -1.7922, 0.550958, 0.267265)
offset = Vector2(1, 0)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "Nutze die Maus um die
Kamera zu bewegen"
font = ExtResource("2_fq2vn")
[node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(0.838238, -0.221545, -0.498273, 0.249063, 0.968418, -0.0115887, 0.485104, -0.114387, 0.866943, 0.590198, 2.30211, 0)
offset = Vector2(1, 0)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "Press W to move forwards
Press A to move left
Press S to move backwards
Press D to move right"
font = ExtResource("2_fq2vn")
[node name="Label3D2" type="Label3D" parent="."]
transform = Transform3D(0.898036, -0.118361, 0.423701, -0.130811, 0.847719, 0.514063, -0.420025, -0.517071, 0.745799, -1.80393, 2.14448, -0.355839)
offset = Vector2(1, 0)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "Use your mouse to
move the camera"
font = ExtResource("2_fq2vn")
[node name="Label3D7" type="Label3D" parent="."]
transform = Transform3D(0.940367, 0.267816, 0.209726, -0.311519, 0.925659, 0.214735, -0.136625, -0.267264, 0.953889, 0, 1.50331, -4.83472)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "To open the menu, press Q"
font = ExtResource("2_fq2vn")
[node name="Label3D8" type="Label3D" parent="."]
transform = Transform3D(0.940367, 0.267816, 0.209726, -0.311519, 0.925659, 0.214735, -0.136625, -0.267264, 0.953889, 0, 1.86351, -4.91946)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "If you're stuck, press R to reset"
font = ExtResource("2_fq2vn")
[node name="Label3D6" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.45129, -2.41736)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "To lock/recapture the cursor, press Shift+G"
font = ExtResource("2_fq2vn")
[node name="Label3D5" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8115, -2.5021)
modulate = Color(0.943031, 0.787658, 0.994854, 1)
outline_modulate = Color(0.00803253, 9.36218e-06, 0.0382829, 1)
text = "To unlock/free the cursor, press Shift+Enter"
font = ExtResource("2_fq2vn")
[node name="PauseMenu" parent="." instance=ExtResource("3_i8tni")]
visible = false

BIN
ProjektLuzidLogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0hcyy1njk5tu"
path="res://.godot/imported/ProjektLuzidLogo.png-2fb04efa1a6e4a71c5850f10cac84350.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ProjektLuzidLogo.png"
dest_files=["res://.godot/imported/ProjektLuzidLogo.png-2fb04efa1a6e4a71c5850f10cac84350.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

38
ProjektLuzidLogo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 82 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fad7xr2jj2nu"
path="res://.godot/imported/ProjektLuzidLogo.svg-6b4418cd7d6827c99660ac42e54c65e6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ProjektLuzidLogo.svg"
dest_files=["res://.godot/imported/ProjektLuzidLogo.svg-6b4418cd7d6827c99660ac42e54c65e6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btbycsdclf56y"
path="res://.godot/imported/Screenshot From 2025-03-17 14-25-26.png-0164230af794a0770dffad19630b8b58.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Screenshot From 2025-03-17 14-25-26.png"
dest_files=["res://.godot/imported/Screenshot From 2025-03-17 14-25-26.png-0164230af794a0770dffad19630b8b58.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

View file

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_110_26)">
<path d="M13.3334 5.33333H11.4601C11.1594 4.81182 10.7446 4.36512 10.2467 4.02667L11.3334 2.94L10.3934 2L8.94675 3.44667C8.64008 3.37333 8.32675 3.33333 8.00008 3.33333C7.67341 3.33333 7.36008 3.37333 7.06008 3.44667L5.60675 2L4.66675 2.94L5.74675 4.02667C5.25341 4.36667 4.84008 4.81333 4.54008 5.33333H2.66675V6.66667H4.06008C4.02675 6.88667 4.00008 7.10667 4.00008 7.33333V8H2.66675V9.33333H4.00008V10C4.00008 10.2267 4.02675 10.4467 4.06008 10.6667H2.66675V12H4.54008C5.23341 13.1933 6.52008 14 8.00008 14C9.48008 14 10.7667 13.1933 11.4601 12H13.3334V10.6667H11.9401C11.9734 10.4467 12.0001 10.2267 12.0001 10V9.33333H13.3334V8H12.0001V7.33333C12.0001 7.10667 11.9734 6.88667 11.9401 6.66667H13.3334V5.33333ZM9.33341 10.6667H6.66675V9.33333H9.33341V10.6667ZM9.33341 8H6.66675V6.66667H9.33341V8Z" fill="#5865F2"/>
</g>
<defs>
<clipPath id="clip0_110_26">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ufh1hha1ehui"
path="res://.godot/imported/Debug.svg-d4cb8599fa7926b76a2d6e40d2efd949.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/Debug.svg"
dest_files=["res://.godot/imported/Debug.svg-d4cb8599fa7926b76a2d6e40d2efd949.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://csl0e2px0cwc1"
path="res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/Logo_V2_No_Bg.png"
dest_files=["res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.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

View file

@ -0,0 +1,7 @@
MINIMUM GODOT VERSION: 4.2
PLEASE ACTIVATE THE PLUGIN UNDER Project -> Project Settings... -> Plugins -> DiscordRPC -> Status
IGNORE THE RED ERRORS ON THE FIRST 2 RESTARTS
READ THE TUTORIAL LINKED IN THE WINDOW THAT WILL OPEN ON PLUGIN ENABLE
If nothing works, enable the plugin and delete /addons/discord-rpc-gd/bin/.gdignore

View file

@ -0,0 +1,29 @@
[configuration]
entry_symbol = "discordrpcgd_library_init"
compatibility_minimum = 4.1
[libraries]
macos.debug = "macos/libdiscord_game_sdk_binding_debug.dylib"
macos.release = "macos/libdiscord_game_sdk_binding.dylib"
windows.debug.x86_64 = "windows/discord_game_sdk_binding_debug.dll"
windows.release.x86_64 = "windows/discord_game_sdk_binding.dll"
linux.debug.x86_64 = "linux/libdiscord_game_sdk_binding_debug.so"
linux.release.x86_64 = "linux/libdiscord_game_sdk_binding.so"
linux.debug.arm64 = "linux/libdiscord_game_sdk_binding_debug.so"
linux.release.arm64 = "linux/libdiscord_game_sdk_binding.so"
linux.debug.rv64 = "linux/libdiscord_game_sdk_binding_debug.so"
linux.release.rv64 = "linux/libdiscord_game_sdk_binding.so"
[dependencies]
macos = { "macos/libdiscord_game_sdk.dylib": "" }
windows.debug.x86_64 = { "windows/discord_game_sdk.dll": "" }
windows.release.x86_64 = { "windows/discord_game_sdk.dll": "" }
linux.debug.x86_64 = { "linux/libdiscord_game_sdk.so": "" }
linux.release.x86_64 = { "linux/libdiscord_game_sdk.so": "" }
linux.debug.arm64 = { "linux/libdiscord_game_sdk.so": "" }
linux.release.arm64 = { "linux/libdiscord_game_sdk.so": "" }
linux.debug.rv64 = { "linux/libdiscord_game_sdk.so": "" }
linux.release.rv64 = { "linux/libdiscord_game_sdk.so": "" }

View file

@ -0,0 +1 @@
uid://dgohlxm6f3r83

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,38 @@
class_name DiscordRPCTutorial
extends Node
## 1. Put the addons/ folder in your Godot project[br]
## 2. Enable the addon in your Project Settings under "Plugins" and "DiscordRPC". [br](if it doesn't show up restart your project and try again)[br]
## 3. Restart your project[br]
## 4. Create an Application under https://discord.com/developers/applications and get the Application ID br]
## 5. (optional) Set images under "Rich Presence" and "Art Assets" and remember the keys[br]
##
## This is your [code]_ready()[/code] function wich could be anywhere
## [codeblock]
## func _ready():
## # Application ID
## DiscordRPC.app_id = 1099618430065324082
## # this is boolean if everything worked
## print("Discord working: " + str(DiscordRPC.get_is_discord_working()))
## # Set the first custom text row of the activity here
## DiscordRPC.details = "A demo activity by vaporvee#1231"
## # Set the second custom text row of the activity here
## DiscordRPC.state = "Checkpoint 23/23"
## # Image key for small image from "Art Assets" from the Discord Developer website
## DiscordRPC.large_image = "game"
## # Tooltip text for the large image
## DiscordRPC.large_image_text = "Try it now!"
## # Image key for large image from "Art Assets" from the Discord Developer website
## DiscordRPC.small_image = "boss"
## # Tooltip text for the small image
## DiscordRPC.small_image_text = "Fighting the end boss! D:"
## # "02:41 elapsed" timestamp for the activity
## DiscordRPC.start_timestamp = int(Time.get_unix_time_from_system())
## # "59:59 remaining" timestamp for the activity
## DiscordRPC.end_timestamp = int(Time.get_unix_time_from_system()) + 3600
## # Always refresh after changing the values!
## DiscordRPC.refresh()
## [/codeblock]
##
## @tutorial(More information here): https://github.com/vaporvee/discord-rpc-godot/wiki/Quick-start
## @tutorial(Make your Application ID and else here): https://discord.com/developers/applications

View file

@ -0,0 +1 @@
uid://qal05hig1a7b

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://csl0e2px0cwc1"
path="res://.godot/imported/logo.png-bacb448eabae556bdb0659359ea4e4af.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/logo.png"
dest_files=["res://.godot/imported/logo.png-bacb448eabae556bdb0659359ea4e4af.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

View file

@ -0,0 +1,267 @@
[gd_scene load_steps=9 format=3 uid="uid://c1slhdnlsv2qt"]
[ext_resource type="Texture2D" uid="uid://dnfq6kug4x6o2" path="res://addons/discord-rpc-gd/nodes/assets/Checked.svg" id="2_q6tao"]
[ext_resource type="Texture2D" uid="uid://compmm3kviqqe" path="res://addons/discord-rpc-gd/nodes/assets/Unchecked.svg" id="3_5cyem"]
[ext_resource type="Texture2D" uid="uid://dtc6ckladq0td" path="res://addons/discord-rpc-gd/nodes/assets/circle.svg" id="3_goflf"]
[sub_resource type="GDScript" id="GDScript_ak1tp"]
resource_name = "Debug"
script/source = "extends Node
func _ready():
DiscordRPC.connect(\"activity_join_request\",_on_activity_join_request)
func _process(_delta):
if(DiscordRPC.get_is_discord_working()):
$Panel/TextureRect.self_modulate = Color(\"#3eff8d\")
$Panel/TextureRect/AnimationPlayer.play(\"pulsate\")
debug_text_update()
else:
$Panel/TextureRect.self_modulate = Color(\"#797979\")
$Panel/TextureRect/AnimationPlayer.stop()
debug_text_update()
func debug_text_update():
$Panel/Info.text = \"Application ID : {id}
Details: {details}
State: {state}
Large image key: {lkey}
Large image text: {ltext}
Small image key: {skey}
Small image text: {stext}
Start timestamp: {stimestamp}
End timestamp: {etimestamp}
Party ID: {partyid}
Current party size: {cpartysize}
Max party size: {mpartysize}
Match secret: {msecret}
Join secret: {jsecret}
Spectate secret: {ssecret}
Is party public: {ppublic} (needs to be activated in Discord client settings)
Is instanced: {instanced}
\"
$Panel/Info.text = $Panel/Info.text.replace(\"{ppublic}\",str(DiscordRPC.is_public_party)).replace(\"{instanced}\",str(DiscordRPC.instanced)).replace(\"{ssecret}\",DiscordRPC.spectate_secret).replace(\"{jsecret}\",DiscordRPC.join_secret).replace(\"{msecret}\",DiscordRPC.match_secret).replace(\"{mpartysize}\",str(DiscordRPC.max_party_size)).replace(\"{cpartysize}\",str(DiscordRPC.current_party_size)).replace(\"{partyid}\",DiscordRPC.party_id).replace(\"{id}\",str(DiscordRPC.app_id)).replace(\"{details}\",DiscordRPC.details).replace(\"{state}\",DiscordRPC.state).replace(\"{lkey}\",DiscordRPC.large_image).replace(\"{ltext}\",DiscordRPC.large_image_text).replace(\"{skey}\",DiscordRPC.small_image).replace(\"{stext}\",DiscordRPC.small_image_text).replace(\"{stimestamp}\",str(DiscordRPC.start_timestamp)).replace(\"{etimestamp}\",str(DiscordRPC.end_timestamp))
var user_request = {};
func _on_activity_join_request(user_requesting):
print(user_requesting)
user_request = user_requesting
func _on_accept_join_request_pressed():
if(!user_request.is_empty()):
DiscordRPC.accept_join_request(user_request.id)
func _on_invite_with_user_id_text_submitted(new_text):
DiscordRPC.send_invite(int(new_text),true,\"this is a test invite sent from godot\")
func _on_accept_with_user_id_text_submitted(new_text):
DiscordRPC.accept_invite(int(new_text))
func _on_print_current_user_on_console_pressed():
print(DiscordRPC.get_current_user())
func _on_toggle_sdk_toggled(button_pressed):
if(button_pressed):
DiscordRPC.unclear()
else:
DiscordRPC.clear(false)
func _on_print_friends_pressed():
print(DiscordRPC.get_all_relationships())
"
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8abo6"]
[sub_resource type="Animation" id="Animation_mmtmn"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
[sub_resource type="Animation" id="Animation_5u02v"]
resource_name = "pulsate"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(0.8, 0.8), Vector2(0.5, 0.5)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a7ofc"]
_data = {
"RESET": SubResource("Animation_mmtmn"),
"pulsate": SubResource("Animation_5u02v")
}
[node name="DebugNodeGroup" type="Node"]
editor_description = "This is a Debug Node wich will show (only if the project runs) some usefull info and buttons/input"
script = SubResource("GDScript_ak1tp")
[node name="Panel" type="Panel" parent="."]
anchors_preset = -1
anchor_right = 0.373
anchor_bottom = 1.0
offset_left = -5.0
offset_right = 0.303955
grow_horizontal = 2
grow_vertical = 2
[node name="Info" type="RichTextLabel" parent="Panel"]
layout_mode = 0
offset_left = 12.0
offset_top = 21.0
offset_right = 429.0
offset_bottom = 461.0
theme_override_font_sizes/normal_font_size = 14
text = "Application ID : {id}
Details: {details}
State: {state}
Large image key: {lkey}
Large image text: {ltext}
Small image key: {skey}
Small image text: {stext}
Start timestamp: {stimestamp}
End timestamp: {etimestamp}
Party ID: {partyid}
Current party size: {cpartysize}
Max party size: {mpartysize}
Match secret: {msecret}
Join secret: {jsecret}
Spectate secret: {ssecret}
Is party public: {ppublic} (needs to be activated in Discord client settings)
Is instanced: {instanced}
"
fit_content = true
[node name="PrintCurrentUserOnConsole" type="Button" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 12.0
offset_top = 138.375
offset_right = 245.0
offset_bottom = 171.375
grow_vertical = 2
text = "Print current user on console"
[node name="PrintFriends" type="Button" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 12.0
offset_top = 176.5
offset_right = 204.0
offset_bottom = 207.5
grow_vertical = 2
text = "Print friends on console"
[node name="AcceptJoinRequest" type="Button" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 12.0
offset_top = 212.875
offset_right = 154.0
offset_bottom = 243.875
grow_vertical = 2
text = "ACCEPT REQUEST"
[node name="InviteWithUserID" type="LineEdit" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 11.0
offset_top = 250.375
offset_right = 210.0
offset_bottom = 281.375
grow_vertical = 2
size_flags_horizontal = 0
placeholder_text = "Invite with user_id here"
[node name="AcceptWithUserID" type="LineEdit" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 11.0
offset_top = 286.875
offset_right = 260.0
offset_bottom = 317.875
grow_vertical = 2
placeholder_text = "Accept Invite with user_id here"
[node name="ToggleSDK" type="CheckButton" parent="Panel"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 298.0
offset_top = 157.375
offset_right = 1144.0
offset_bottom = 665.375
grow_vertical = 2
scale = Vector2(0.05, 0.05)
theme_override_icons/checked = ExtResource("2_q6tao")
theme_override_icons/unchecked = ExtResource("3_5cyem")
theme_override_styles/focus = SubResource("StyleBoxEmpty_8abo6")
button_pressed = true
[node name="TextureRect" type="TextureRect" parent="Panel"]
self_modulate = Color(0.47451, 0.47451, 0.47451, 1)
layout_mode = 1
anchors_preset = -1
anchor_left = 0.88
anchor_top = 0.762
anchor_right = 0.88
anchor_bottom = 0.762
offset_left = -28.8
offset_top = -28.776
offset_right = 28.0841
offset_bottom = 28.1082
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.5, 0.5)
pivot_offset = Vector2(29.0693, 29.0693)
texture = ExtResource("3_goflf")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Panel/TextureRect"]
libraries = {
"": SubResource("AnimationLibrary_a7ofc")
}
[connection signal="pressed" from="Panel/PrintCurrentUserOnConsole" to="." method="_on_print_current_user_on_console_pressed"]
[connection signal="pressed" from="Panel/PrintFriends" to="." method="_on_print_friends_pressed"]
[connection signal="pressed" from="Panel/AcceptJoinRequest" to="." method="_on_accept_join_request_pressed"]
[connection signal="text_submitted" from="Panel/InviteWithUserID" to="." method="_on_invite_with_user_id_text_submitted"]
[connection signal="text_submitted" from="Panel/AcceptWithUserID" to="." method="_on_accept_with_user_id_text_submitted"]
[connection signal="toggled" from="Panel/ToggleSDK" to="." method="_on_toggle_sdk_toggled"]

View file

@ -0,0 +1,18 @@
<svg width="834" height="500" viewBox="0 0 834 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_162_85)">
<rect width="833.333" height="500" rx="250" fill="#23A55A"/>
<g clip-path="url(#clip1_162_85)">
<path d="M791.667 250C791.667 134.941 698.393 41.6666 583.333 41.6666C468.274 41.6666 375 134.941 375 250C375 365.059 468.274 458.333 583.333 458.333C698.393 458.333 791.667 365.059 791.667 250Z" fill="white"/>
<path d="M539.491 351.121L506.345 317.977L673.122 151.199L706.268 184.345L539.491 351.121Z" fill="#23A55A"/>
<path d="M460.134 272.714L493.279 239.568L571.844 318.133L538.698 351.279L460.134 272.714Z" fill="#23A55A"/>
</g>
</g>
<defs>
<clipPath id="clip0_162_85">
<rect width="833.333" height="500" rx="250" fill="white"/>
</clipPath>
<clipPath id="clip1_162_85">
<rect width="583.333" height="416.667" fill="white" transform="translate(291.667 41.6666)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 926 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnfq6kug4x6o2"
path="res://.godot/imported/Checked.svg-80704e37f30c24e2ec3dfc0955f5f21c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/nodes/assets/Checked.svg"
dest_files=["res://.godot/imported/Checked.svg-80704e37f30c24e2ec3dfc0955f5f21c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,18 @@
<svg width="834" height="500" viewBox="0 0 834 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_162_79)">
<rect x="0.666687" width="833.333" height="500" rx="250" fill="#80848E"/>
<g clip-path="url(#clip1_162_79)">
<path d="M459 250C459 134.941 365.726 41.6666 250.667 41.6666C135.607 41.6666 42.3333 134.941 42.3333 250C42.3333 365.059 135.607 458.333 250.667 458.333C365.726 458.333 459 365.059 459 250Z" fill="white"/>
<path d="M149.257 181.868L182.402 148.722L351.813 318.134L318.667 351.28L149.257 181.868Z" fill="#80848E"/>
<path d="M318.801 148.722L351.946 181.868L182.535 351.28L149.389 318.134L318.801 148.722Z" fill="#80848E"/>
</g>
</g>
<defs>
<clipPath id="clip0_162_79">
<rect x="0.666687" width="833.333" height="500" rx="250" fill="white"/>
</clipPath>
<clipPath id="clip1_162_79">
<rect width="583.333" height="416.667" fill="white" transform="translate(-41 41.6666)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 942 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://compmm3kviqqe"
path="res://.godot/imported/Unchecked.svg-b526adfd78f7b1577fc3c10a8ea626ee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/nodes/assets/Unchecked.svg"
dest_files=["res://.godot/imported/Unchecked.svg-b526adfd78f7b1577fc3c10a8ea626ee.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44.72 44.72">
<defs>
<style>
.cls-1 {
fill: #fff;
}
</style>
</defs>
<circle class="cls-1" cx="22.36" cy="22.36" r="22.36"/>
</svg>

After

Width:  |  Height:  |  Size: 290 B

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtc6ckladq0td"
path="res://.godot/imported/circle.svg-d0b0579c9433c6250a5869daf4f70024.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/discord-rpc-gd/nodes/assets/circle.svg"
dest_files=["res://.godot/imported/circle.svg-d0b0579c9433c6250a5869daf4f70024.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,11 @@
## This is a Debug Node wich will show some usefull info and buttons/input
##
## The DiscordRPC Debug Node will show info about the current values of its variables and some buttons to change them.
##
## @tutorial: https://github.com/vaporvee/discord-rpc-godot/wiki
@tool
extends Node
func _ready() -> void:
const DebugNodeGroup: PackedScene = preload("res://addons/discord-rpc-gd/nodes/Debug.tscn")
add_child(DebugNodeGroup.instantiate())

View file

@ -0,0 +1 @@
uid://dh3xp3q241t4n

View file

@ -0,0 +1,13 @@
## This is a GDscript Node wich gets automatically added as Autoload while installing the addon.
##
## It can run in the background to comunicate with Discord.
## You don't need to use it. If you remove it make sure to run [code]DiscordRPC.run_callbacks()[/code] in a [code]_process[/code] function.
##
## @tutorial: https://github.com/vaporvee/discord-rpc-godot/wiki
extends Node
func _ready() -> void:
pass
func _process(_delta) -> void:
DiscordRPC.run_callbacks()

View file

@ -0,0 +1 @@
uid://cklriqkegrqw3

View file

@ -0,0 +1,7 @@
[plugin]
name="DiscordRPC"
description="Discord RPC Plugin for GDScript in Godot"
author="vaporvee"
version="1.3.1"
script="plugin.gd"

View file

@ -0,0 +1,56 @@
@tool
extends EditorPlugin
const DiscordRPCDebug = preload("res://addons/discord-rpc-gd/nodes/debug.gd")
const DiscordRPCDebug_icon = preload("res://addons/discord-rpc-gd/Debug.svg")
var loaded_DiscordRPCDebug = DiscordRPCDebug.new()
var restart_window: ConfirmationDialog = preload("res://addons/discord-rpc-gd/restart_window.tscn").instantiate()
var plugin_cfg: ConfigFile = ConfigFile.new()
const plugin_data_filename = "/plugin_data.cfg"
func _enter_tree() -> void:
add_custom_type("DiscordRPCDebug","Node",DiscordRPCDebug,DiscordRPCDebug_icon)
get_editor_interface().get_editor_settings().settings_changed.connect(_on_editor_settings_changed)
func _ready() -> void:
await get_tree().create_timer(0.5).timeout
plugin_cfg.load(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename)
if !get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled"):
get_editor_interface().get_editor_settings().set_setting("DiscordRPC/EditorPresence/enabled",plugin_cfg.get_value("Discord","editor_presence",false))
func _exit_tree():
if get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled"):
get_editor_interface().get_editor_settings().erase("DiscordRPC/EditorPresence/enabled")
func _enable_plugin() -> void:
if FileAccess.file_exists(ProjectSettings.globalize_path("res://") + "addons/discord-rpc-gd/bin/.gdignore"):
DirAccess.remove_absolute(ProjectSettings.globalize_path("res://") + "addons/discord-rpc-gd/bin/.gdignore")
add_autoload_singleton("DiscordRPCLoader","res://addons/discord-rpc-gd/nodes/discord_autoload.gd")
restart_window.connect("confirmed", save_no_restart)
restart_window.connect("canceled", save_and_restart)
get_editor_interface().popup_dialog_centered(restart_window)
print("IGNORE RED ERROR MESSAGES BEFORE THE SECOND RESTART!")
func _disable_plugin() -> void:
remove_autoload_singleton("DiscordRPCLoader")
FileAccess.open("res://addons/discord-rpc-gd/bin/.gdignore",FileAccess.WRITE)
remove_custom_type("DiscordRPCDebug")
get_editor_interface().get_editor_settings().erase("DiscordRPC/EditorPresence/enabled")
push_warning("Please restart the editor to fully disable the DiscordRPC plugin")
func save_and_restart() -> void:
get_editor_interface().restart_editor(true)
func save_no_restart() -> void:
get_editor_interface().restart_editor(false)
var editor_presence: Node
func _on_editor_settings_changed() -> void:
plugin_cfg.set_value("Discord","editor_presence",get_editor_interface().get_editor_settings().get_setting("DiscordRPC/EditorPresence/enabled"))
plugin_cfg.save(get_editor_interface().get_editor_paths().get_data_dir() + plugin_data_filename)
if ClassDB.class_exists("EditorPresence") && editor_presence == null:
editor_presence = ClassDB.instantiate("EditorPresence")
if get_editor_interface().get_editor_settings().has_setting("DiscordRPC/EditorPresence/enabled") && get_editor_interface().get_editor_settings().get_setting("DiscordRPC/EditorPresence/enabled"):
add_child(editor_presence)
else:
editor_presence.queue_free()

View file

@ -0,0 +1 @@
uid://dmcu7r3vlc750

View file

@ -0,0 +1,112 @@
[gd_scene load_steps=8 format=3 uid="uid://byc4c6d5tpomq"]
[ext_resource type="Texture2D" uid="uid://csl0e2px0cwc1" path="res://addons/discord-rpc-gd/Logo_V2_No_Bg.png" id="1_0svbg"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1t7mm"]
[sub_resource type="Theme" id="Theme_swwco"]
Button/styles/focus = SubResource("StyleBoxEmpty_1t7mm")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5vqdt"]
[sub_resource type="Image" id="Image_v4whe"]
data = {
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 168, 224, 224, 224, 233, 224, 224, 224, 236, 224, 224, 224, 170, 231, 231, 231, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 234, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 239, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 168, 224, 224, 224, 255, 224, 224, 224, 186, 224, 224, 224, 32, 224, 224, 224, 33, 224, 224, 224, 187, 224, 224, 224, 255, 225, 225, 225, 167, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 255, 224, 224, 224, 234, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 229, 229, 229, 38, 224, 224, 224, 255, 224, 224, 224, 229, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 164, 224, 224, 224, 255, 224, 224, 224, 187, 225, 225, 225, 34, 227, 227, 227, 36, 224, 224, 224, 192, 224, 224, 224, 255, 224, 224, 224, 162, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 225, 225, 225, 215, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 229, 224, 224, 224, 32, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 224, 224, 224, 216, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 161, 224, 224, 224, 232, 224, 224, 224, 231, 225, 225, 225, 159, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 107, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 105, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 224, 224, 224, 130, 255, 255, 255, 1, 255, 255, 255, 1, 225, 225, 225, 134, 224, 224, 224, 224, 225, 225, 225, 223, 224, 224, 224, 132, 255, 255, 255, 1, 255, 255, 255, 6, 224, 224, 224, 137, 224, 224, 224, 231, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 130, 225, 225, 225, 133, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 129, 224, 224, 224, 137, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 220, 225, 225, 225, 223, 224, 224, 224, 255, 226, 226, 226, 61, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 222, 224, 224, 224, 231, 224, 224, 224, 255, 227, 227, 227, 62, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 222, 224, 224, 224, 255, 227, 227, 227, 63, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 230, 224, 224, 224, 255, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 127, 224, 224, 224, 129, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 126, 225, 225, 225, 135, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 1, 224, 224, 224, 128, 224, 224, 224, 220, 224, 224, 224, 219, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 134, 224, 224, 224, 229, 224, 224, 224, 255, 255, 255, 255, 0),
"format": "RGBA8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id="ImageTexture_gdtpn"]
image = SubResource("Image_v4whe")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7v0rg"]
[node name="RestartWindow" type="ConfirmationDialog"]
title = "Restart required"
initial_position = 2
size = Vector2i(430, 500)
visible = true
transient = false
unresizable = true
theme = SubResource("Theme_swwco")
ok_button_text = "Restart"
cancel_button_text = "Save and restart"
[node name="Panel" type="Panel" parent="."]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -207.0
offset_top = 8.0
offset_right = 207.0
offset_bottom = 451.0
grow_horizontal = 2
mouse_filter = 1
[node name="VBoxContainer" type="VBoxContainer" parent="Panel"]
custom_minimum_size = Vector2(400, 0)
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -200.0
offset_right = 200.0
offset_bottom = 389.0
grow_horizontal = 2
[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer"]
layout_mode = 2
mouse_filter = 1
theme_override_constants/separation = 15
theme_override_styles/separator = SubResource("StyleBoxEmpty_5vqdt")
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 10
[node name="DocsIcon" type="TextureRect" parent="Panel/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 8
size_flags_vertical = 4
texture = SubResource("ImageTexture_gdtpn")
stretch_mode = 2
[node name="LinkButton" type="LinkButton" parent="Panel/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
mouse_default_cursor_shape = 16
theme_override_font_sizes/font_size = 20
text = "HOW TO USE"
uri = "https://vaporvee.com/docs/discord-rpc-godot#quick-start"
[node name="TextureRect" type="TextureRect" parent="Panel/VBoxContainer"]
custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
texture = ExtResource("1_0svbg")
expand_mode = 1
[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer"]
custom_minimum_size = Vector2(400, 250)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
mouse_filter = 1
theme_override_font_sizes/normal_font_size = 16
theme_override_styles/normal = SubResource("StyleBoxEmpty_7v0rg")
bbcode_enabled = true
text = "[center]Thanks for enabling the
[rainbow]Discord Game SDK Plugin[/rainbow]
made by vaporvee. ❤️
You need to [wave]restart[/wave] the editor to fully enable this plugin!
Do you want to [wave]save[/wave] your project before restarting?
Error messages after the first two restarts are normal. Please ignore them!"

1
animation_player.gd Normal file
View file

@ -0,0 +1 @@
extends AnimationPlayer

1
animation_player.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://x6bi0h4rircc

8
button_2.gd Normal file
View file

@ -0,0 +1,8 @@
extends Button
func _ready():
var button = self
button.pressed.connect(_button_pressed)
func _button_pressed():
get_tree().change_scene_to_file("res://Level_Core.tscn")

1
button_2.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cax1b0y8uvwj3

1
icon.svg Normal file
View file

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 994 B

37
icon.svg.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bnmet0ec7irdl"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

4
in_game_ui.gd Normal file
View file

@ -0,0 +1,4 @@
extends Control
func main():
print("Hey!")

1
in_game_ui.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://t2iw8p1c6rq3

174
in_game_ui.tscn Normal file
View file

@ -0,0 +1,174 @@
[gd_scene load_steps=10 format=3 uid="uid://bciy4rskxlowb"]
[ext_resource type="Script" uid="uid://t2iw8p1c6rq3" path="res://in_game_ui.gd" id="1_4v80v"]
[ext_resource type="Texture2D" uid="uid://btbycsdclf56y" path="res://Screenshot From 2025-03-17 14-25-26.png" id="1_e6quo"]
[ext_resource type="Texture2D" uid="uid://0hcyy1njk5tu" path="res://ProjektLuzidLogo.png" id="1_onc8m"]
[ext_resource type="Script" uid="uid://x6bi0h4rircc" path="res://animation_player.gd" id="2_e6quo"]
[ext_resource type="Script" uid="uid://cax1b0y8uvwj3" path="res://button_2.gd" id="5_4v80v"]
[ext_resource type="Script" uid="uid://dti3q3vy3rysn" path="res://quit_button.gd" id="6_0qsvx"]
[sub_resource type="FontFile" id="FontFile_db7xr"]
cache/0/16/0/ascent = 0.0
cache/0/16/0/descent = 0.0
cache/0/16/0/underline_position = 0.0
cache/0/16/0/underline_thickness = 0.0
cache/0/16/0/scale = 1.0
cache/0/17/0/ascent = 0.0
cache/0/17/0/descent = 0.0
cache/0/17/0/underline_position = 0.0
cache/0/17/0/underline_thickness = 0.0
cache/0/17/0/scale = 1.0
cache/0/18/0/ascent = 0.0
cache/0/18/0/descent = 0.0
cache/0/18/0/underline_position = 0.0
cache/0/18/0/underline_thickness = 0.0
cache/0/18/0/scale = 1.0
cache/0/19/0/ascent = 0.0
cache/0/19/0/descent = 0.0
cache/0/19/0/underline_position = 0.0
cache/0/19/0/underline_thickness = 0.0
cache/0/19/0/scale = 1.0
cache/0/20/0/ascent = 0.0
cache/0/20/0/descent = 0.0
cache/0/20/0/underline_position = 0.0
cache/0/20/0/underline_thickness = 0.0
cache/0/20/0/scale = 1.0
cache/0/21/0/ascent = 0.0
cache/0/21/0/descent = 0.0
cache/0/21/0/underline_position = 0.0
cache/0/21/0/underline_thickness = 0.0
cache/0/21/0/scale = 1.0
cache/0/22/0/ascent = 0.0
cache/0/22/0/descent = 0.0
cache/0/22/0/underline_position = 0.0
cache/0/22/0/underline_thickness = 0.0
cache/0/22/0/scale = 1.0
cache/0/23/0/ascent = 0.0
cache/0/23/0/descent = 0.0
cache/0/23/0/underline_position = 0.0
cache/0/23/0/underline_thickness = 0.0
cache/0/23/0/scale = 1.0
cache/0/24/0/ascent = 0.0
cache/0/24/0/descent = 0.0
cache/0/24/0/underline_position = 0.0
cache/0/24/0/underline_thickness = 0.0
cache/0/24/0/scale = 1.0
cache/0/25/0/ascent = 0.0
cache/0/25/0/descent = 0.0
cache/0/25/0/underline_position = 0.0
cache/0/25/0/underline_thickness = 0.0
cache/0/25/0/scale = 1.0
cache/0/26/0/ascent = 0.0
cache/0/26/0/descent = 0.0
cache/0/26/0/underline_position = 0.0
cache/0/26/0/underline_thickness = 0.0
cache/0/26/0/scale = 1.0
cache/0/1/0/ascent = 0.0
cache/0/1/0/descent = 0.0
cache/0/1/0/underline_position = 0.0
cache/0/1/0/underline_thickness = 0.0
cache/0/1/0/scale = 1.0
cache/0/50/0/ascent = 0.0
cache/0/50/0/descent = 0.0
cache/0/50/0/underline_position = 0.0
cache/0/50/0/underline_thickness = 0.0
cache/0/50/0/scale = 1.0
cache/0/60/0/ascent = 0.0
cache/0/60/0/descent = 0.0
cache/0/60/0/underline_position = 0.0
cache/0/60/0/underline_thickness = 0.0
cache/0/60/0/scale = 1.0
[sub_resource type="LabelSettings" id="LabelSettings_kenku"]
font = SubResource("FontFile_db7xr")
font_size = 60
shadow_size = 3
[sub_resource type="LabelSettings" id="LabelSettings_onc8m"]
font_size = 64
[node name="inGameUI" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_4v80v")
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("1_e6quo")
[node name="MarginContainer" type="MarginContainer" parent="TextureRect"]
layout_mode = 2
offset_right = 1280.0
offset_bottom = 720.0
[node name="HBoxContainer" type="HBoxContainer" parent="TextureRect/MarginContainer"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="TextureRect/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 2
size_flags_vertical = 4
[node name="TextureRect" type="TextureRect" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer"]
layout_direction = 2
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 0
texture = ExtResource("1_onc8m")
stretch_mode = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer/TextureRect"]
script = ExtResource("2_e6quo")
[node name="Label" type="Label" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer"]
visible = false
layout_mode = 2
size_flags_horizontal = 0
text = "projektLuzid"
label_settings = SubResource("LabelSettings_kenku")
vertical_alignment = 1
[node name="PlayButton" type="Button" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
text = " play"
flat = true
script = ExtResource("5_4v80v")
[node name="QuitButton" type="Button" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
text = " quit"
flat = true
script = ExtResource("6_0qsvx")
[node name="VBoxContainer2" type="VBoxContainer" parent="TextureRect/MarginContainer/HBoxContainer"]
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="Label" type="Label" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer2"]
layout_mode = 2
text = "Saves"
label_settings = SubResource("LabelSettings_onc8m")
horizontal_alignment = 2
[node name="Button2" type="Button" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
text = "text"
[node name="Button" type="Button" parent="TextureRect/MarginContainer/HBoxContainer/VBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
text = "text"

10
in_game_ui_leftpanel.gd Normal file
View file

@ -0,0 +1,10 @@
extends VBoxContainer
func _ready():
var button = get_node("Button2")
button.pressed.connect(_button_pressed)
func _button_pressed():
var button = get_node("Button2")
button.text = "You pressed me!"
print("Hello world!")

View file

@ -0,0 +1 @@
uid://2oadyu63hmbb

16
main game.tscn Normal file
View file

@ -0,0 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://csv14jqunay0s"]
[sub_resource type="Environment" id="Environment_v4kxd"]
background_mode = 1
background_color = Color(0.6242, 0.697431, 1, 1)
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_em7y1"]
[sub_resource type="Compositor" id="Compositor_dpk2q"]
[node name="MainGame" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_v4kxd")
camera_attributes = SubResource("CameraAttributesPhysical_em7y1")
compositor = SubResource("Compositor_dpk2q")

18
pause_menu.gd Normal file
View file

@ -0,0 +1,18 @@
extends Node3D
@onready var pause_menu = $PauseMenu
var paused = false
func _process(delta):
if Input.is_action_just_pressed("ui_cancel"):
pauseMenu()
func pauseMenu():
if paused:
pause_menu.hide()
Engine.time_scale = 1
else:
pause_menu.show()
Engine.time_scale = 0
paused = !paused

1
pause_menu.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://wr38f8q1w7yq

32
pause_menu.tscn Normal file
View file

@ -0,0 +1,32 @@
[gd_scene load_steps=2 format=3 uid="uid://daoyebc0vm7sd"]
[ext_resource type="Script" uid="uid://4v86257e5prv" path="res://pause_menu_itself.gd" id="1_hdmo1"]
[node name="PauseMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_hdmo1")
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
[node name="ResumeButton" type="Button" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
text = "resume game"
[node name="ExitButton" type="Button" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
text = "quit to main menu"
[connection signal="pressed" from="MarginContainer/VBoxContainer/ResumeButton" to="." method="_on_resume_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/ResumeButton" to="." method="_on_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/ExitButton" to="." method="_on_exit_button_pressed"]

10
pause_menu_itself.gd Normal file
View file

@ -0,0 +1,10 @@
extends Control
@onready var main = $"../"
func _on_resume_button_pressed() -> void:
main.pauseMenu()
func _on_exit_button_pressed() -> void:
get_tree().change_scene_to_file("res://in_game_ui.tscn")

1
pause_menu_itself.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://4v86257e5prv

38
player.gd Normal file
View file

@ -0,0 +1,38 @@
extends RigidBody3D
# Configure options
var mouse_sensitivity := 0.001
var twist_input := 0.0
var pitch_input := 0.0
@onready var twist_pivot := $TwistPivot
@onready var pitch_pivot := $TwistPivot/PitchPivot
# Do not touch this part of the code
func _ready() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func _process(delta: float) -> void:
var input := Vector3.ZERO
input.x = Input.get_axis("move_left", "move_right")
input.z = Input.get_axis("move_forward", "move_back")
apply_central_force(twist_pivot.basis * input * 1600.0 * delta)
if Input.is_action_just_pressed("proluz_ui_pause"):
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
if Input.is_action_just_pressed("proluz_ui_grab"):
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
twist_pivot.rotate_y(twist_input)
pitch_pivot.rotate_x(pitch_input)
pitch_pivot.rotation.x = clamp(pitch_pivot.rotation.x, deg_to_rad(-30), deg_to_rad(30))
twist_input = 0.0
pitch_input = 0.0
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
twist_input = - event.relative.x * mouse_sensitivity
pitch_input = - event.relative.y * mouse_sensitivity

1
player.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://b0r17riyugkt0

27
player.tscn Normal file
View file

@ -0,0 +1,27 @@
[gd_scene load_steps=4 format=3 uid="uid://bs6yq6gy7k2sb"]
[ext_resource type="Script" uid="uid://b0r17riyugkt0" path="res://player.gd" id="1_4flbx"]
[sub_resource type="CapsuleMesh" id="CapsuleMesh_onrkg"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_i3pqv"]
points = PackedVector3Array(-0.125207, -0.532801, -0.480507, 0.0227831, 0.47607, 0.498884, 0.169713, 0.559144, 0.464172, 0.231051, -0.803591, 0.320455, 0.40741, 0.651043, -0.243523, -0.482789, 0.594843, 0.0822132, -0.362868, -0.682312, 0.289697, 0.469044, -0.654529, -0.0662713, -0.127444, 0.842701, -0.338103, -0.393435, -0.683942, -0.244717, 0.438255, 0.623309, 0.200849, 0.0841477, 0.977454, 0.114795, -0.0682023, -0.976458, -0.12927, 0.20055, -0.563129, -0.451454, -0.185527, 0.595453, -0.453475, -0.273363, 0.592268, 0.407754, -0.00693649, -0.476823, 0.49966, 0.375821, -0.588614, 0.316955, 0.111579, 0.563059, -0.481177, -0.41725, 0.527866, -0.270497, -0.484546, -0.596972, -0.0665097, -0.279747, 0.908561, 0.0533361, -0.250197, -0.880712, 0.205319, 0.263647, -0.902771, -0.127394, 0.293368, 0.871526, -0.157196, 0.373412, -0.526319, -0.328246, 0.499663, 0.476641, -0.00688856, 0.0531056, 0.875001, 0.324703, -0.154543, -0.590854, 0.465879, -0.0972799, -0.782358, -0.398188, -0.387649, -0.498171, 0.31565, -0.30068, -0.587995, -0.388901)
[node name="Player" type="RigidBody3D"]
lock_rotation = true
script = ExtResource("1_4flbx")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("CapsuleMesh_onrkg")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("ConvexPolygonShape3D_i3pqv")
[node name="TwistPivot" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
[node name="PitchPivot" type="Node3D" parent="TwistPivot"]
transform = Transform3D(1, 0, 0, 0, 0.984808, 0.173648, 0, -0.173648, 0.984808, 0, 0, 0)
[node name="Camera3D" type="Camera3D" parent="TwistPivot/PitchPivot"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3)

70
project.godot Normal file
View file

@ -0,0 +1,70 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="ProjektLuzid"
config/name_localized={
"es": "ProyectoLucida"
}
run/main_scene="res://in_game_ui.tscn"
config/features=PackedStringArray("4.4", "Forward Plus")
config/icon="uid://fad7xr2jj2nu"
[autoload]
DiscordRPCLoader="*res://addons/discord-rpc-gd/nodes/discord_autoload.gd"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
[editor_plugins]
enabled=PackedStringArray("res://addons/discord-rpc-gd/plugin.cfg")
[input]
move_forward={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
move_back={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
move_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
proluz_ui_grab={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":71,"location":0,"echo":false,"script":null)
]
}
proluz_ui_pause={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
[rendering]
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3
anti_aliasing/quality/msaa_3d=1

8
quit_button.gd Normal file
View file

@ -0,0 +1,8 @@
extends Button
func _ready():
var button = self
button.pressed.connect(_button_pressed)
func _button_pressed():
get_tree().quit()

1
quit_button.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://dti3q3vy3rysn