Skip to content

Commit 73f5f99

Browse files
committed
initial commit
0 parents  commit 73f5f99

File tree

99 files changed

+18711
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+18711
-0
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Normalize EOL for all files that Git considers text files.
2+
* text=auto eol=lf

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Godot 4+ specific ignores
2+
.godot/
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# GDQuest ColorPicker Presets
2+
3+
Reads a color presets `gpl` (GIMP Palette) file in the addon local directory, called `presets.gpl`. It adds the colors to the editor ColorPicker for quick access.
4+
5+
This repository includes a `presets.gpl` file as an example. It's the official GDQuest color palette.
6+
7+
## ✗ WARNING
8+
9+
> Compatible: Godot `>= v4.0`
10+
11+
The addon:
12+
13+
1. Doesn't check the length of the color palette/file.
14+
1. Overwrites the _ColorPicker_ presets whenever you reopen the project or re-enable the addon.
15+
16+
## ✓ Install
17+
18+
### Manual
19+
20+
1. Copy the contents of this folder into `res://addons/gdquest_colorpicker_presets/`.
21+
1. Replace `res://addons/colorpicker_presets/presets.gpl` with your preferred version.
22+
1. Enable the addon from `Project > Project Settings... > Plugins`.
23+
1. Profit.
24+
25+
### gd-plug
26+
27+
1. Install **gd-plug** using the Godot Asset Library.
28+
1. Save the following code into the file `res://plug.gd` (create the file if necessary):
29+
30+
```gdscript
31+
#!/usr/bin/env -S godot --headless --script
32+
extends "res://addons/gd-plug/plug.gd"
33+
34+
35+
func _plugging() -> void:
36+
plug(
37+
"[email protected]:GDQuest/godot-addons.git",
38+
{include = ["addons/gdquest_colorpicker_presets"]}
39+
)
40+
```
41+
42+
1. On Linux, make the `res://plug.gd` script executable with `chmod +x plug.gd`.
43+
1. Using the command line, run `./plug.gd install` or `godot --headless --script plug.gd install`.
44+
45+
![install project settings](readme/install_project_settings.png)
46+
47+
## Where do I find the presets?
48+
49+
They'll be available in the editor _ColorPicker_.
50+
51+
![ColorPicker presets](readme/colorpicker_presets.png)
52+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
@tool
2+
extends EditorPlugin
3+
4+
5+
const PRESETS_FILENAME := 'presets.gpl'
6+
7+
8+
func _enter_tree() -> void:
9+
var presets_path: String = get_script().resource_path.get_base_dir().path_join(PRESETS_FILENAME)
10+
var presets_file := FileAccess.open(presets_path, FileAccess.READ)
11+
12+
if FileAccess.get_open_error() == OK:
13+
var presets_raw := presets_file.get_as_text(true).strip_edges().split("\n")
14+
presets_file.close()
15+
presets_raw = presets_raw.slice(presets_raw.find("#") + 1)
16+
var presets := Array(presets_raw).map(
17+
func(s: String):
18+
var rgb := (Array(s.strip_edges().split(" ").slice(0, -1))
19+
.filter(func(s: String): return not s.is_empty())
20+
.map(func(s: String): return s.to_int())
21+
)
22+
return Color8(rgb[0], rgb[1], rgb[2])
23+
)
24+
get_editor_interface().get_editor_settings().set_project_metadata(
25+
"color_picker", "presets", presets
26+
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[plugin]
2+
3+
name="GDQuest ColorPicker Presets"
4+
description="Sets the editor color picker presets from
5+
`presets.hex`, if it exists. The file is local to the
6+
addon folder."
7+
author="razcore-rad"
8+
version="0.0.2-beta"
9+
script="colorpicker_presets.gd"
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
GIMP Palette
2+
Name: gdquest.gpl
3+
#
4+
0 122 195 Blue
5+
16 178 239 BlueAlt
6+
6 29 84 BlueDark
7+
207 221 255 BlueLight
8+
108 44 218 Purple
9+
141 25 215 PurpleAlt
10+
40 20 78 PurpleDark
11+
235 224 255 PurpleLight
12+
196 29 61 Red
13+
255 65 125 RedAlt/Pink
14+
115 39 92 RedDark
15+
255 219 244 RedLight
16+
255 183 48 Yellow
17+
255 213 0 YellowAlt
18+
222 80 43 YellowDark/Orange
19+
255 236 201 YellowLight
20+
99 204 95 Green
21+
159 221 81 GreenAlt/Lime
22+
21 89 63 GreenDark
23+
221 255 242 GreenLight/Mint
24+
109 61 44 Brown
25+
176 87 55 BrownAlt
26+
106 25 0 BrownDark
27+
255 227 227 BrownLight
28+
202 202 202 Gray
29+
255 255 255 White
30+
39 43 48 Deep
31+
243 248 254 Light

addons/gdquest_colorpicker_presets/readme/.gdignore

Whitespace-only changes.
Loading
Loading

autoload/events.gd

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
extends Node
2+
3+
signal kill_plane_touched(body: PhysicsBody3D)
4+
signal flag_reached

default_bus_layout.tres

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[gd_resource type="AudioBusLayout" format=3 uid="uid://bjew6xi7wqh2a"]
2+
3+
[resource]
4+
bus/1/name = &"Player sounds"
5+
bus/1/solo = false
6+
bus/1/mute = false
7+
bus/1/bypass_fx = false
8+
bus/1/volume_db = -0.152718
9+
bus/1/send = &"Master"

icon.png

19.4 KB
Loading

icon.png.import

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[remap]
2+
3+
importer="texture"
4+
type="CompressedTexture2D"
5+
uid="uid://cayijcbshcn4g"
6+
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
7+
metadata={
8+
"vram_texture": false
9+
}
10+
11+
[deps]
12+
13+
source_file="res://icon.png"
14+
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
15+
16+
[params]
17+
18+
compress/mode=0
19+
compress/high_quality=false
20+
compress/lossy_quality=0.7
21+
compress/hdr_compression=1
22+
compress/normal_map=0
23+
compress/channel_pack=0
24+
mipmaps/generate=false
25+
mipmaps/limit=-1
26+
roughness/mode=0
27+
roughness/src_normal=""
28+
process/fix_alpha_border=true
29+
process/premult_alpha=false
30+
process/normal_map_invert_y=false
31+
process/hdr_as_srgb=false
32+
process/hdr_clamp_exposure=false
33+
process/size_limit=0
34+
detect_3d/compress_to=1

level/game.gd

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
extends Node
2+
3+
4+
func _input(event: InputEvent) -> void:
5+
if event.is_action_pressed("toggle_fullscreen"):
6+
get_viewport().mode = Window.MODE_FULLSCREEN
7+
elif event.is_action_pressed("ui_cancel"):
8+
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
9+
elif event.is_action_pressed("left_click"):
10+
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED

level/game.tscn

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
[gd_scene load_steps=15 format=3 uid="uid://bvt4747kc5u2t"]
2+
3+
[ext_resource type="Script" path="res://level/game.gd" id="1_1il7v"]
4+
[ext_resource type="Shader" uid="uid://cdlt3ujrpad32" path="res://sky_with_stars.tres" id="2_vppo7"]
5+
[ext_resource type="PackedScene" uid="uid://ciqrpd5675boy" path="res://player/player_3d.tscn" id="4_i8755"]
6+
[ext_resource type="PackedScene" uid="uid://c6uew1wfpkt16" path="res://level/interactable/flag/flag_3d.tscn" id="7_l2nua"]
7+
[ext_resource type="Material" uid="uid://da188d7yrcfr8" path="res://level/platforms.tres" id="8_2hueg"]
8+
[ext_resource type="PackedScene" uid="uid://bij84ol81kcts" path="res://level/interactable/kill_plane/kill_plane_3d.tscn" id="18_psymw"]
9+
[ext_resource type="PackedScene" uid="uid://bxg6oejpaitdt" path="res://level/interactable/flag/flag_reached_screen.tscn" id="19_cpgj4"]
10+
11+
[sub_resource type="Curve" id="Curve_vfy0b"]
12+
_data = [Vector2(0.331719, 0.0391753), 0.0, 0.0, 0, 0, Vector2(0.697336, 1), 0.51276, 0.0, 0, 0]
13+
point_count = 2
14+
15+
[sub_resource type="CurveTexture" id="CurveTexture_moxc7"]
16+
curve = SubResource("Curve_vfy0b")
17+
18+
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d1ecl"]
19+
20+
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_83fre"]
21+
noise = SubResource("FastNoiseLite_d1ecl")
22+
23+
[sub_resource type="ShaderMaterial" id="ShaderMaterial_r6vx4"]
24+
shader = ExtResource("2_vppo7")
25+
shader_parameter/top_color = Color(0.288469, 0.182916, 1, 1)
26+
shader_parameter/bottom_color = Color(1, 0.46805, 0, 1)
27+
shader_parameter/gradient_curve = SubResource("CurveTexture_moxc7")
28+
shader_parameter/noise_texture = SubResource("NoiseTexture2D_83fre")
29+
30+
[sub_resource type="Sky" id="Sky_0h0bb"]
31+
sky_material = SubResource("ShaderMaterial_r6vx4")
32+
33+
[sub_resource type="Environment" id="Environment_mm38n"]
34+
background_mode = 2
35+
sky = SubResource("Sky_0h0bb")
36+
ambient_light_source = 3
37+
ambient_light_color = Color(0.74902, 0.742654, 0.615273, 1)
38+
ambient_light_sky_contribution = 0.0
39+
tonemap_mode = 2
40+
tonemap_exposure = 1.05
41+
tonemap_white = 0.95
42+
ssao_enabled = true
43+
ssao_radius = 2.0
44+
ssao_intensity = 1.4
45+
glow_normalized = true
46+
glow_strength = 0.25
47+
fog_light_color = Color(0.843137, 0.737255, 0.329412, 1)
48+
fog_density = 0.0
49+
fog_aerial_perspective = 1.0
50+
fog_sky_affect = 0.0
51+
fog_height_density = 0.1
52+
volumetric_fog_density = 0.01
53+
volumetric_fog_albedo = Color(0.843137, 0.737255, 0.329412, 1)
54+
volumetric_fog_emission = Color(0.843137, 0.737255, 0.329412, 1)
55+
56+
[node name="Game" type="Node"]
57+
script = ExtResource("1_1il7v")
58+
59+
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
60+
environment = SubResource("Environment_mm38n")
61+
62+
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
63+
transform = Transform3D(0.226294, 0.780723, -0.582463, 0.688764, 0.294578, 0.662441, 0.688764, -0.551086, -0.471072, 0, 7.88323, -13.3427)
64+
light_energy = 0.53
65+
shadow_enabled = true
66+
directional_shadow_max_distance = 40.0
67+
68+
[node name="Player3D" parent="." instance=ExtResource("4_i8755")]
69+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -39)
70+
71+
[node name="PlatformGoal" type="CSGCombiner3D" parent="."]
72+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 4, 9)
73+
use_collision = true
74+
75+
[node name="CSGBox3D5" type="CSGBox3D" parent="PlatformGoal"]
76+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, -6.5, -15)
77+
use_collision = true
78+
size = Vector3(8, 23, 4)
79+
material = ExtResource("8_2hueg")
80+
81+
[node name="CSGBox3D6" type="CSGBox3D" parent="PlatformGoal"]
82+
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -21, -6.5, -15)
83+
use_collision = true
84+
size = Vector3(8, 23, 8)
85+
material = ExtResource("8_2hueg")
86+
87+
[node name="CSGBox3D7" type="CSGBox3D" parent="PlatformGoal"]
88+
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -32, -4.5, -15)
89+
use_collision = true
90+
size = Vector3(15, 23, 14)
91+
material = ExtResource("8_2hueg")
92+
93+
[node name="CSGPolygon3D5" type="CSGPolygon3D" parent="PlatformGoal"]
94+
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -22, 5, -19)
95+
use_collision = true
96+
polygon = PackedVector2Array(0, 0, 3, 2, 3, 0)
97+
depth = 8.0
98+
material = ExtResource("8_2hueg")
99+
100+
[node name="CSGBox3D7" type="CSGBox3D" parent="."]
101+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, -5.5, -14)
102+
material_override = ExtResource("8_2hueg")
103+
use_collision = true
104+
size = Vector3(4, 25, 4)
105+
106+
[node name="CSGBox3D8" type="CSGBox3D" parent="."]
107+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, -4.5, -6)
108+
material_override = ExtResource("8_2hueg")
109+
use_collision = true
110+
size = Vector3(4, 25, 4)
111+
112+
[node name="StartPlatform" type="CSGCombiner3D" parent="."]
113+
material_override = ExtResource("8_2hueg")
114+
use_collision = true
115+
116+
[node name="CSGBox3D4" type="CSGBox3D" parent="StartPlatform"]
117+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 1, -29)
118+
material_override = ExtResource("8_2hueg")
119+
use_collision = true
120+
size = Vector3(4, 2, 4)
121+
122+
[node name="CSGBox3D5" type="CSGBox3D" parent="StartPlatform"]
123+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 2, -22)
124+
material_override = ExtResource("8_2hueg")
125+
use_collision = true
126+
size = Vector3(7, 4, 4)
127+
128+
[node name="CSGBox3D6" type="CSGBox3D" parent="StartPlatform"]
129+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 3, -22)
130+
material_override = ExtResource("8_2hueg")
131+
use_collision = true
132+
size = Vector3(4, 6, 4)
133+
134+
[node name="CSGBox3D2" type="CSGBox3D" parent="StartPlatform"]
135+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, -9.5, -31)
136+
material_override = ExtResource("8_2hueg")
137+
use_collision = true
138+
size = Vector3(11, 19, 22)
139+
140+
[node name="CSGPolygon3D6" type="CSGPolygon3D" parent="StartPlatform"]
141+
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 3, 0, -34)
142+
use_collision = true
143+
polygon = PackedVector2Array(0, 0, 3, 2, 3, 0)
144+
depth = 4.0
145+
material = ExtResource("8_2hueg")
146+
147+
[node name="CSGPolygon3D7" type="CSGPolygon3D" parent="StartPlatform"]
148+
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 3, 4, -24)
149+
use_collision = true
150+
polygon = PackedVector2Array(0, 0, 3, 2, 3, 0)
151+
depth = 4.0
152+
material = ExtResource("8_2hueg")
153+
154+
[node name="KillPlane" parent="." instance=ExtResource("18_psymw")]
155+
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -5.22359, 0)
156+
metadata/_edit_lock_ = true
157+
158+
[node name="FlagReachedScreen" parent="." instance=ExtResource("19_cpgj4")]
159+
160+
[node name="Flag3D" parent="." instance=ExtResource("7_l2nua")]
161+
transform = Transform3D(-0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, -0.707107, -31, 11, -6)

level/interactable/flag/flag.glb

17.7 KB
Binary file not shown.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[remap]
2+
3+
importer="scene"
4+
importer_version=1
5+
type="PackedScene"
6+
uid="uid://drkqkt2fp2jca"
7+
path="res://.godot/imported/flag.glb-ebc1857c12ef908900d303365d47fa61.scn"
8+
9+
[deps]
10+
11+
source_file="res://level/interactable/flag/flag.glb"
12+
dest_files=["res://.godot/imported/flag.glb-ebc1857c12ef908900d303365d47fa61.scn"]
13+
14+
[params]
15+
16+
nodes/root_type="Node3D"
17+
nodes/root_name="Scene Root"
18+
nodes/apply_root_scale=true
19+
nodes/root_scale=1.0
20+
meshes/ensure_tangents=true
21+
meshes/generate_lods=true
22+
meshes/create_shadow_meshes=true
23+
meshes/light_baking=1
24+
meshes/lightmap_texel_size=0.2
25+
meshes/force_disable_compression=false
26+
skins/use_named_skins=true
27+
animation/import=true
28+
animation/fps=30
29+
animation/trimming=false
30+
animation/remove_immutable_tracks=true
31+
import_script/path=""
32+
_subresources={}
33+
gltf/naming_version=0
34+
gltf/embedded_image_handling=1

level/interactable/flag/flag_3d.gd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
extends Node3D
2+
3+
@onready var _area_3d: Area3D = %Area3D
4+
5+
6+
func _ready() -> void:
7+
_area_3d.body_entered.connect(func (_body_that_entered: PhysicsBody3D) -> void:
8+
Events.flag_reached.emit()
9+
)

0 commit comments

Comments
 (0)