generated from krampus/template-godot4
Compare commits
No commits in common. "424ee2f2ae4e702d12e4549ea37c28c6930c61ef" and "b1dead039febc98b094c265bf01933e869c9f986" have entirely different histories.
424ee2f2ae
...
b1dead039f
BIN
asset_dev/balls/brick/brick.blend (Stored with Git LFS)
BIN
asset_dev/balls/brick/brick.blend (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
asset_dev/balls/brick/brick_uv_layout.png (Stored with Git LFS)
BIN
asset_dev/balls/brick/brick_uv_layout.png (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
|
@ -1,120 +0,0 @@
|
||||||
{
|
|
||||||
"asset":{
|
|
||||||
"generator":"Khronos glTF Blender I/O v4.2.60",
|
|
||||||
"version":"2.0"
|
|
||||||
},
|
|
||||||
"scene":0,
|
|
||||||
"scenes":[
|
|
||||||
{
|
|
||||||
"name":"Scene",
|
|
||||||
"nodes":[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"nodes":[
|
|
||||||
{
|
|
||||||
"mesh":0,
|
|
||||||
"name":"Brick"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"materials":[
|
|
||||||
{
|
|
||||||
"doubleSided":true,
|
|
||||||
"name":"Brick",
|
|
||||||
"pbrMetallicRoughness":{
|
|
||||||
"baseColorFactor":[
|
|
||||||
0.6121358871459961,
|
|
||||||
0.21650230884552002,
|
|
||||||
0.09049086272716522,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"metallicFactor":0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"meshes":[
|
|
||||||
{
|
|
||||||
"name":"Cube",
|
|
||||||
"primitives":[
|
|
||||||
{
|
|
||||||
"attributes":{
|
|
||||||
"POSITION":0,
|
|
||||||
"NORMAL":1,
|
|
||||||
"TEXCOORD_0":2
|
|
||||||
},
|
|
||||||
"indices":3,
|
|
||||||
"material":0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"accessors":[
|
|
||||||
{
|
|
||||||
"bufferView":0,
|
|
||||||
"componentType":5126,
|
|
||||||
"count":24,
|
|
||||||
"max":[
|
|
||||||
0.09207499027252197,
|
|
||||||
0.05715000629425049,
|
|
||||||
0.1936749815940857
|
|
||||||
],
|
|
||||||
"min":[
|
|
||||||
-0.09207499027252197,
|
|
||||||
-0.05715000629425049,
|
|
||||||
-0.1936749815940857
|
|
||||||
],
|
|
||||||
"type":"VEC3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView":1,
|
|
||||||
"componentType":5126,
|
|
||||||
"count":24,
|
|
||||||
"type":"VEC3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView":2,
|
|
||||||
"componentType":5126,
|
|
||||||
"count":24,
|
|
||||||
"type":"VEC2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bufferView":3,
|
|
||||||
"componentType":5123,
|
|
||||||
"count":36,
|
|
||||||
"type":"SCALAR"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"bufferViews":[
|
|
||||||
{
|
|
||||||
"buffer":0,
|
|
||||||
"byteLength":288,
|
|
||||||
"byteOffset":0,
|
|
||||||
"target":34962
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer":0,
|
|
||||||
"byteLength":288,
|
|
||||||
"byteOffset":288,
|
|
||||||
"target":34962
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer":0,
|
|
||||||
"byteLength":192,
|
|
||||||
"byteOffset":576,
|
|
||||||
"target":34962
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"buffer":0,
|
|
||||||
"byteLength":72,
|
|
||||||
"byteOffset":768,
|
|
||||||
"target":34963
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"buffers":[
|
|
||||||
{
|
|
||||||
"byteLength":840,
|
|
||||||
"uri":"brick.bin"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://b1aslqfbciwg8"
|
|
||||||
path="res://.godot/imported/brick.gltf-c734431c3027107f004874542c5d8b9c.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://assets/models/balls/brick/brick.gltf"
|
|
||||||
dest_files=["res://.godot/imported/brick.gltf-c734431c3027107f004874542c5d8b9c.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
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={}
|
|
||||||
gltf/naming_version=1
|
|
||||||
gltf/embedded_image_handling=1
|
|
|
@ -19,9 +19,6 @@ SETTINGS_GAME_ACCESSIBILITY_HEADING,Accessibility
|
||||||
SETTINGS_GAME_CAMERA_HEADING,Camera
|
SETTINGS_GAME_CAMERA_HEADING,Camera
|
||||||
SETTINGS_SCREEN_SHAKE,"Enable Screen Shake"
|
SETTINGS_SCREEN_SHAKE,"Enable Screen Shake"
|
||||||
SETTINGS_HIT_LAG,"Enable Hit Lag Effect"
|
SETTINGS_HIT_LAG,"Enable Hit Lag Effect"
|
||||||
SETTINGS_GAME_GAMEPLAY_HEADING,Gameplay
|
|
||||||
SETTINGS_PROJECTION_COLLISIONS,"Enable Shot Projection Collisions"
|
|
||||||
SETTINGS_PROJECTION_GRAVITY,"Use Local Gravity for Shot Projection"
|
|
||||||
SETTINGS_FREE_CAMERA_SPEED,"Free Camera Speed"
|
SETTINGS_FREE_CAMERA_SPEED,"Free Camera Speed"
|
||||||
SETTINGS_SENSITIVITY_X,"Sensitivity, Horizontal"
|
SETTINGS_SENSITIVITY_X,"Sensitivity, Horizontal"
|
||||||
SETTINGS_SENSITIVITY_Y,"Sensitivity, Vertical"
|
SETTINGS_SENSITIVITY_Y,"Sensitivity, Vertical"
|
||||||
|
@ -30,40 +27,6 @@ SETTINGS_ACCELERATION_Y,"Acceleration, Vertical"
|
||||||
SETTINGS_INVERT_PITCH,"Invert Pitch"
|
SETTINGS_INVERT_PITCH,"Invert Pitch"
|
||||||
SETTINGS_GRAPHICS,Graphics
|
SETTINGS_GRAPHICS,Graphics
|
||||||
SETTINGS_GRAPHICS_HEADING,"Graphics & Display"
|
SETTINGS_GRAPHICS_HEADING,"Graphics & Display"
|
||||||
SETTINGS_GRAPHICS_DISPLAY_HEADING,Display
|
|
||||||
SETTINGS_GRAPHICS_FULLSCREEN,Fullscreen
|
|
||||||
SETTINGS_GRAPHICS_VSYNC,V-Sync
|
|
||||||
SETTINGS_GRAPHICS_AA_HEADING,Antialiasing
|
|
||||||
SETTINGS_GRAPHICS_MSAA,MSAA
|
|
||||||
SETTINGS_GRAPHICS_MSAA_0,"Disabled (Fastest)"
|
|
||||||
SETTINGS_GRAPHICS_MSAA_2,"2× (Average)"
|
|
||||||
SETTINGS_GRAPHICS_MSAA_4,"4× (Slow)"
|
|
||||||
SETTINGS_GRAPHICS_MSAA_8,"8× (Slowest)"
|
|
||||||
SETTINGS_GRAPHICS_FXAA,"Enable FXAA"
|
|
||||||
SETTINGS_GRAPHICS_TAA,"Enable TAA"
|
|
||||||
SETTINGS_GRAPHICS_DEBANDING,"Use Debanding"
|
|
||||||
SETTINGS_GRAPHICS_TEXTURES_HEADING,Textures
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC,"Anisotropic Filtering Level (requires restart)"
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC_0,"Disabled (Fastest)"
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC_1,"2× (Faster)"
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC_2,"4× (Fast)"
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC_3,"8× (Average)"
|
|
||||||
SETTINGS_GRAPHICS_ANISOTROPIC_4,"16× (Slow)"
|
|
||||||
SETTINGS_GRAPHICS_LIGHTING_HEADING,"Light & Shadows"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY,"Directional Shadow Quality (requires restart)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_0,"Lowest (256)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_1,"Low (2048)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_2,"Average (4096)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_3,"High (8192)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_4,"Higher (16384)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_QUALITY_5,"Ultra (32768)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER,"Directional Soft Shadow Filter Quality (requires restart)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_0,"Hard (Fastest)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_1,"Soft Very Low (Faster)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_2,"Soft Low (Fast)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_3,"Soft Medium (Average)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_4,"Soft High (Slow)"
|
|
||||||
SETTINGS_GRAPHICS_SHADOW_FILTER_5,"Soft Ultra (Slowest)"
|
|
||||||
SETTINGS_AUDIO,Audio
|
SETTINGS_AUDIO,Audio
|
||||||
SETTINGS_AUDIO_HEADING,"Audio Settings"
|
SETTINGS_AUDIO_HEADING,"Audio Settings"
|
||||||
SETTINGS_CONTROLS,Controls
|
SETTINGS_CONTROLS,Controls
|
||||||
|
@ -101,4 +64,3 @@ CLUB_PUTTER,Putter
|
||||||
,
|
,
|
||||||
BALL_BASIC,Basic
|
BALL_BASIC,Basic
|
||||||
BALL_PLASMA,Plasma
|
BALL_PLASMA,Plasma
|
||||||
BALL_BRICK,Brick
|
|
||||||
|
|
|
|
@ -1,11 +1,10 @@
|
||||||
[gd_scene load_steps=62 format=3 uid="uid://bm2o3mex10v11"]
|
[gd_scene load_steps=61 format=3 uid="uid://bm2o3mex10v11"]
|
||||||
|
|
||||||
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
||||||
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"]
|
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="6_ectru"]
|
[ext_resource type="Texture2D" uid="uid://c47ern0l2d50r" path="res://assets/vista_2.png" id="6_ectru"]
|
||||||
[ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="7_t86h2"]
|
[ext_resource type="Texture2D" uid="uid://con5a36t6n6sq" path="res://assets/textures/clear_sea_water_2048x2048.png" id="7_t86h2"]
|
||||||
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
||||||
[ext_resource type="PackedScene" uid="uid://1s3gywmoi20e" path="res://src/characters/player_characters/gfolf_girl/gfolf_girl.tscn" id="10_8tu3b"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dagh38vap4t1d" path="res://src/props/scenery/city/concrete_building_1.tscn" id="10_lf15j"]
|
[ext_resource type="PackedScene" uid="uid://dagh38vap4t1d" path="res://src/props/scenery/city/concrete_building_1.tscn" id="10_lf15j"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cjubxs7peir5k" path="res://src/props/scenery/city/kana_signboard.tscn" id="11_evxup"]
|
[ext_resource type="PackedScene" uid="uid://cjubxs7peir5k" path="res://src/props/scenery/city/kana_signboard.tscn" id="11_evxup"]
|
||||||
[ext_resource type="PackedScene" uid="uid://di7aql54lksn7" path="res://src/props/scenery/trees/palm_tree/palm_tree.tscn" id="12_sswxf"]
|
[ext_resource type="PackedScene" uid="uid://di7aql54lksn7" path="res://src/props/scenery/trees/palm_tree/palm_tree.tscn" id="12_sswxf"]
|
||||||
|
@ -313,12 +312,7 @@ camera_attributes = SubResource("CameraAttributesPractical_ypy22")
|
||||||
transform = Transform3D(0.782608, -0.611691, 0.11558, 0, 0.185667, 0.982613, -0.622515, -0.769001, 0.145304, 0, 0, 0)
|
transform = Transform3D(0.782608, -0.611691, 0.11558, 0, 0.185667, 0.982613, -0.622515, -0.769001, 0.145304, 0, 0, 0)
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
shadow_blur = 4.0
|
shadow_blur = 4.0
|
||||||
directional_shadow_split_1 = 0.017
|
directional_shadow_max_distance = 160.0
|
||||||
directional_shadow_split_2 = 0.042
|
|
||||||
directional_shadow_split_3 = 0.247
|
|
||||||
directional_shadow_fade_start = 0.98
|
|
||||||
directional_shadow_max_distance = 750.0
|
|
||||||
directional_shadow_pancake_size = 5.0
|
|
||||||
|
|
||||||
[node name="Course" type="Node3D" parent="."]
|
[node name="Course" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
@ -380,9 +374,6 @@ draw_pass_1 = SubResource("QuadMesh_l4j8a")
|
||||||
[node name="DemoCamera" type="Camera3D" parent="Course" groups=["DemoCamera"]]
|
[node name="DemoCamera" type="Camera3D" parent="Course" groups=["DemoCamera"]]
|
||||||
transform = Transform3D(-0.734269, 0.305072, -0.606448, 0, 0.893336, 0.44939, 0.678858, 0.329973, -0.655949, 143.463, 90.0707, 223.738)
|
transform = Transform3D(-0.734269, 0.305072, -0.606448, 0, 0.893336, 0.44939, 0.678858, 0.329973, -0.655949, 143.463, 90.0707, 223.738)
|
||||||
|
|
||||||
[node name="GfolfGirl" parent="Course" instance=ExtResource("10_8tu3b")]
|
|
||||||
transform = Transform3D(0.909686, 0, 0.415297, 0, 1, 0, -0.415297, 0, 0.909686, 537.767, 4, 452.434)
|
|
||||||
|
|
||||||
[node name="CityBuildings" type="Node3D" parent="."]
|
[node name="CityBuildings" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 129.404, -9.53674e-07, 309.4)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 129.404, -9.53674e-07, 309.4)
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,6 @@ config/controls/camera/invert_pitch=false
|
||||||
config/accessibility/enable_screen_shake=true
|
config/accessibility/enable_screen_shake=true
|
||||||
config/accessibility/enable_hit_lag=true
|
config/accessibility/enable_hit_lag=true
|
||||||
audio/buses/override_bus_layout="user://audio_bus_layout.tres"
|
audio/buses/override_bus_layout="user://audio_bus_layout.tres"
|
||||||
config/gameplay/projection/detect_collision=true
|
|
||||||
config/gameplay/projection/use_local_gravity=true
|
|
||||||
|
|
||||||
[global_group]
|
[global_group]
|
||||||
|
|
||||||
|
@ -244,5 +242,3 @@ jolt_3d/limits/max_temporary_memory=64
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
textures/canvas_textures/default_texture_filter=0
|
textures/canvas_textures/default_texture_filter=0
|
||||||
lights_and_shadows/directional_shadow/size=8192
|
|
||||||
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://cc8molh324unk"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dfttci386ohip" path="res://src/equipment/balls/physics_ball/physics_ball.tscn" id="1_y1dte"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b1aslqfbciwg8" path="res://assets/models/balls/brick/brick.gltf" id="2_ubuxr"]
|
|
||||||
|
|
||||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_f03f4"]
|
|
||||||
rough = true
|
|
||||||
bounce = 1.0
|
|
||||||
absorbent = true
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_7v3re"]
|
|
||||||
size = Vector3(0.147, 0.092, 0.31)
|
|
||||||
|
|
||||||
[node name="Brick" instance=ExtResource("1_y1dte")]
|
|
||||||
mass = 0.08
|
|
||||||
physics_material_override = SubResource("PhysicsMaterial_f03f4")
|
|
||||||
radius = 0.15
|
|
||||||
|
|
||||||
[node name="BrickMesh" parent="." index="0" instance=ExtResource("2_ubuxr")]
|
|
||||||
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
|
|
||||||
|
|
||||||
[node name="BallMesh" parent="." index="1"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="." index="2"]
|
|
||||||
shape = SubResource("BoxShape3D_7v3re")
|
|
|
@ -9,7 +9,6 @@ enum Type {
|
||||||
NONE,
|
NONE,
|
||||||
BASIC,
|
BASIC,
|
||||||
PLASMA,
|
PLASMA,
|
||||||
BRICK,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TERRAIN_DAMPING_EPSILON := 1e-6
|
const TERRAIN_DAMPING_EPSILON := 1e-6
|
||||||
|
@ -39,9 +38,6 @@ const MAGNUS_EPSILON := 1e-3
|
||||||
## Scaling factor for additional force-based damage
|
## Scaling factor for additional force-based damage
|
||||||
@export var damage_force_scale := 0.01
|
@export var damage_force_scale := 0.01
|
||||||
|
|
||||||
## Approximate average radius, for physics purposes
|
|
||||||
@export var radius := 0.05
|
|
||||||
|
|
||||||
var current_gravity: Vector3
|
var current_gravity: Vector3
|
||||||
|
|
||||||
var _last_contact_normal: Vector3 = Vector3.UP
|
var _last_contact_normal: Vector3 = Vector3.UP
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://cefit4bc8akbb"]
|
[gd_scene load_steps=9 format=3 uid="uid://cefit4bc8akbb"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/game/game.gd" id="1_4qa87"]
|
[ext_resource type="Script" path="res://src/game/game.gd" id="1_4qa87"]
|
||||||
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="2_y3adf"]
|
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="2_y3adf"]
|
||||||
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_3vfdb"]
|
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_3vfdb"]
|
||||||
[ext_resource type="Script" path="res://src/ui/game_viewport_container.gd" id="3_rmm5i"]
|
[ext_resource type="Script" path="res://src/ui/game_viewport_container.gd" id="3_rmm5i"]
|
||||||
[ext_resource type="Script" path="res://src/game/game_viewport.gd" id="5_v2qv5"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_c3dlb"]
|
[sub_resource type="Animation" id="Animation_c3dlb"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
@ -193,7 +192,6 @@ use_taa = true
|
||||||
audio_listener_enable_3d = true
|
audio_listener_enable_3d = true
|
||||||
size = Vector2i(1920, 1080)
|
size = Vector2i(1920, 1080)
|
||||||
render_target_update_mode = 4
|
render_target_update_mode = 4
|
||||||
script = ExtResource("5_v2qv5")
|
|
||||||
|
|
||||||
[node name="Content" type="Node" parent="RootControl/Rumbler/ViewportContainer/Viewport"]
|
[node name="Content" type="Node" parent="RootControl/Rumbler/ViewportContainer/Viewport"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
|
@ -13,9 +13,6 @@ var invert_pitch: bool
|
||||||
var enable_screen_shake: bool
|
var enable_screen_shake: bool
|
||||||
var enable_hit_lag: bool
|
var enable_hit_lag: bool
|
||||||
|
|
||||||
var projection_collisions: bool
|
|
||||||
var projection_gravity: bool
|
|
||||||
|
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
ProjectSettings.settings_changed.connect(_read_settings)
|
ProjectSettings.settings_changed.connect(_read_settings)
|
||||||
|
@ -39,13 +36,6 @@ func _read_settings() -> void:
|
||||||
)
|
)
|
||||||
enable_hit_lag = ProjectSettings.get_setting("game/config/accessibility/enable_hit_lag")
|
enable_hit_lag = ProjectSettings.get_setting("game/config/accessibility/enable_hit_lag")
|
||||||
|
|
||||||
projection_collisions = ProjectSettings.get_setting(
|
|
||||||
"game/config/gameplay/projection/detect_collision"
|
|
||||||
)
|
|
||||||
projection_gravity = ProjectSettings.get_setting(
|
|
||||||
"game/config/gameplay/projection/use_local_gravity"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
func _load_audio_bus_override() -> void:
|
func _load_audio_bus_override() -> void:
|
||||||
# Load override audio bus file
|
# Load override audio bus file
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
extends SubViewport
|
|
||||||
## Logic for dynamically resetting viewport graphics settings
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
ProjectSettings.settings_changed.connect(apply_rendering_settings)
|
|
||||||
|
|
||||||
|
|
||||||
func apply_rendering_settings() -> void:
|
|
||||||
print_debug("Applying rendering settings to viewport")
|
|
||||||
|
|
||||||
msaa_2d = ProjectSettings.get_setting("rendering/anti_aliasing/quality/msaa_2d")
|
|
||||||
msaa_3d = ProjectSettings.get_setting("rendering/anti_aliasing/quality/msaa_3d")
|
|
||||||
screen_space_aa = ProjectSettings.get_setting("rendering/anti_aliasing/quality/screen_space_aa")
|
|
||||||
use_taa = ProjectSettings.get_setting("rendering/anti_aliasing/quality/use_taa")
|
|
||||||
use_debanding = ProjectSettings.get_setting("rendering/anti_aliasing/quality/use_debanding")
|
|
|
@ -17,6 +17,5 @@ wedge = ExtResource("5_wm4ae")
|
||||||
putter = ExtResource("3_tytwr")
|
putter = ExtResource("3_tytwr")
|
||||||
_balls = {
|
_balls = {
|
||||||
1: -1,
|
1: -1,
|
||||||
2: 5,
|
2: 5
|
||||||
3: -1
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ signal ball_changed(ball: GameBall)
|
||||||
const SCENE_MAP: Dictionary = {
|
const SCENE_MAP: Dictionary = {
|
||||||
GameBall.Type.BASIC: preload("res://src/equipment/balls/physics_ball/physics_ball.tscn"),
|
GameBall.Type.BASIC: preload("res://src/equipment/balls/physics_ball/physics_ball.tscn"),
|
||||||
GameBall.Type.PLASMA: preload("res://src/equipment/balls/plasma_ball/plasma_ball.tscn"),
|
GameBall.Type.PLASMA: preload("res://src/equipment/balls/plasma_ball/plasma_ball.tscn"),
|
||||||
GameBall.Type.BRICK: preload("res://src/equipment/balls/brick/brick.tscn"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@export var ball: GameBall:
|
@export var ball: GameBall:
|
||||||
|
|
|
@ -39,9 +39,6 @@ const WATER_DAMAGE := 10.0
|
||||||
## Angle of influence that shot curve has, in radians
|
## Angle of influence that shot curve has, in radians
|
||||||
const CURVE_INFLUENCE := PI / 16
|
const CURVE_INFLUENCE := PI / 16
|
||||||
|
|
||||||
## Just enough to make things interesting!
|
|
||||||
const SHOT_OFFSET_Z_FACTOR := 2.0 / 45.0
|
|
||||||
|
|
||||||
## Impulse offset multiplier due to curve, in meters
|
## Impulse offset multiplier due to curve, in meters
|
||||||
const CURVE_FACTOR := 0.002
|
const CURVE_FACTOR := 0.002
|
||||||
|
|
||||||
|
@ -265,16 +262,10 @@ func take_shot() -> void:
|
||||||
print_debug("Shot impulse: ", impulse, "; ", impulse.length(), " N*s")
|
print_debug("Shot impulse: ", impulse, "; ", impulse.length(), " N*s")
|
||||||
|
|
||||||
# Curve the curve
|
# Curve the curve
|
||||||
var curve := shot_curve * absf(shot_curve) * CURVE_FACTOR
|
var curve := direction.global_basis.x.normalized() * shot_curve * absf(shot_curve)
|
||||||
|
|
||||||
# Position where the ball is hit (imparts spin)
|
# Position where the ball is hit (imparts spin)
|
||||||
var offset := direction.global_basis.x.normalized() * -curve
|
var offset := -curve * CURVE_FACTOR
|
||||||
offset += (
|
|
||||||
direction.global_basis.z.normalized()
|
|
||||||
* game_ball.radius
|
|
||||||
* game_ball.radius
|
|
||||||
* SHOT_OFFSET_Z_FACTOR
|
|
||||||
)
|
|
||||||
print_debug("Shot offset: ", offset, "; ", offset.length(), " m")
|
print_debug("Shot offset: ", offset, "; ", offset.length(), " m")
|
||||||
|
|
||||||
if game_ball:
|
if game_ball:
|
||||||
|
|
|
@ -22,7 +22,7 @@ const PUTT_ATTRITION := 0.8325 # green?
|
||||||
## If enabled, project a linear putt instead of an arcing shot
|
## If enabled, project a linear putt instead of an arcing shot
|
||||||
@export var putt_projection := false
|
@export var putt_projection := false
|
||||||
|
|
||||||
@export_category("Collision & Physics")
|
@export_category("Collision")
|
||||||
## Enables collision checking. Projection will end at the point where a collision is detected.
|
## Enables collision checking. Projection will end at the point where a collision is detected.
|
||||||
## Uses continuous collision detection.
|
## Uses continuous collision detection.
|
||||||
@export var check_collision := true
|
@export var check_collision := true
|
||||||
|
@ -32,10 +32,6 @@ const PUTT_ATTRITION := 0.8325 # green?
|
||||||
## This should probably include the ball!
|
## This should probably include the ball!
|
||||||
@export var excluded_bodies: Array[CollisionObject3D] = []
|
@export var excluded_bodies: Array[CollisionObject3D] = []
|
||||||
|
|
||||||
## Enables checking local gravity at each point along the trajectory.
|
|
||||||
## If disabled, global gravity will be used instead.
|
|
||||||
@export var check_gravity := true
|
|
||||||
|
|
||||||
var _tick_counter := 0
|
var _tick_counter := 0
|
||||||
|
|
||||||
var _debug_points: Array[Vector3] = []
|
var _debug_points: Array[Vector3] = []
|
||||||
|
@ -77,17 +73,12 @@ func _process(_delta: float) -> void:
|
||||||
# TODO: smooth curve with bezier handles
|
# TODO: smooth curve with bezier handles
|
||||||
path.curve.add_point(pos - global_position)
|
path.curve.add_point(pos - global_position)
|
||||||
|
|
||||||
# Get local gravity if enabled
|
|
||||||
var local_gravity := gravity * gravity_vec
|
|
||||||
if check_gravity and Game.settings.projection_gravity:
|
|
||||||
local_gravity = _get_gravity(pos)
|
|
||||||
|
|
||||||
# Integrate projectile path
|
# Integrate projectile path
|
||||||
vel += local_gravity * time_step
|
vel += gravity * gravity_vec * time_step
|
||||||
var next_pos := pos + vel * time_step
|
var next_pos := pos + vel * time_step
|
||||||
|
|
||||||
# Collision
|
# Collision
|
||||||
if check_collision and Game.settings.projection_collisions:
|
if check_collision:
|
||||||
var ray_params := PhysicsRayQueryParameters3D.create(
|
var ray_params := PhysicsRayQueryParameters3D.create(
|
||||||
pos, next_pos, collision_mask, excluded_rid
|
pos, next_pos, collision_mask, excluded_rid
|
||||||
)
|
)
|
||||||
|
@ -119,58 +110,6 @@ func _process(_delta: float) -> void:
|
||||||
(%DebugDraw as CanvasItem).queue_redraw()
|
(%DebugDraw as CanvasItem).queue_redraw()
|
||||||
|
|
||||||
|
|
||||||
func _get_gravity(point: Vector3) -> Vector3:
|
|
||||||
# Start with global gravity
|
|
||||||
var local_gravity := gravity * gravity_vec
|
|
||||||
|
|
||||||
# TODO this is awful, surely there has to be a better way than this!!!
|
|
||||||
# Get areas at point
|
|
||||||
var point_params := PhysicsPointQueryParameters3D.new()
|
|
||||||
point_params.collide_with_areas = true
|
|
||||||
point_params.collide_with_bodies = false
|
|
||||||
point_params.collision_mask = collision_mask
|
|
||||||
point_params.position = point
|
|
||||||
var collisions := get_world_3d().direct_space_state.intersect_point(point_params)
|
|
||||||
var gravity_areas: Array[Area3D] = []
|
|
||||||
gravity_areas.assign(
|
|
||||||
collisions.map(func(d: Dictionary) -> Area3D: return d["collider"] as Area3D)
|
|
||||||
)
|
|
||||||
gravity_areas.sort_custom(func(a: Area3D, b: Area3D) -> bool: return a.priority < b.priority)
|
|
||||||
|
|
||||||
# Iteratively integrate gravity
|
|
||||||
for area: Area3D in gravity_areas:
|
|
||||||
var point_local := point - area.global_position
|
|
||||||
var area_gravity: Vector3
|
|
||||||
if area.gravity_point:
|
|
||||||
# TODO: `point` may need to be local
|
|
||||||
var v := area.transform * area.gravity_direction - point_local
|
|
||||||
if area.gravity_point_unit_distance > 0:
|
|
||||||
var v_sq := v.length_squared()
|
|
||||||
if v_sq > 0:
|
|
||||||
area_gravity = (
|
|
||||||
v.normalized()
|
|
||||||
* area.gravity
|
|
||||||
* pow(area.gravity_point_unit_distance, 2)
|
|
||||||
/ v_sq
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
area_gravity = Vector3.ZERO
|
|
||||||
else:
|
|
||||||
area_gravity = v.normalized() * area.gravity
|
|
||||||
else:
|
|
||||||
area_gravity = area.gravity * area.gravity_direction
|
|
||||||
|
|
||||||
match area.gravity_space_override:
|
|
||||||
Area3D.SPACE_OVERRIDE_COMBINE, Area3D.SPACE_OVERRIDE_COMBINE_REPLACE:
|
|
||||||
local_gravity += area_gravity
|
|
||||||
Area3D.SPACE_OVERRIDE_REPLACE_COMBINE, Area3D.SPACE_OVERRIDE_REPLACE:
|
|
||||||
local_gravity = area_gravity
|
|
||||||
Area3D.SPACE_OVERRIDE_COMBINE_REPLACE, Area3D.SPACE_OVERRIDE_REPLACE:
|
|
||||||
break
|
|
||||||
|
|
||||||
return local_gravity
|
|
||||||
|
|
||||||
|
|
||||||
func _on_visibility_changed() -> void:
|
func _on_visibility_changed() -> void:
|
||||||
# Force update as soon as visible
|
# Force update as soon as visible
|
||||||
_tick_counter = 0
|
_tick_counter = 0
|
||||||
|
|
|
@ -2,7 +2,7 @@ class_name OrbitalCamera extends Node3D
|
||||||
|
|
||||||
const POSITION_ACCELERATION := 4.0
|
const POSITION_ACCELERATION := 4.0
|
||||||
const BASIS_ACCELERATION := 4.0
|
const BASIS_ACCELERATION := 4.0
|
||||||
const TARGETER_ACCELERATION := 8.0
|
const TARGETER_ACCELERATION := 4.0
|
||||||
|
|
||||||
@export var target: Node3D
|
@export var target: Node3D
|
||||||
@export var offset := Vector3(0, 1, 0)
|
@export var offset := Vector3(0, 1, 0)
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
extends "res://src/ui/menus/settings_menu/settings/checkbox_setting/checkbox_setting.gd"
|
|
||||||
## Special case setting for fullscreen mode
|
|
||||||
|
|
||||||
|
|
||||||
func initialize_value(value: Variant) -> void:
|
|
||||||
checkbox.button_pressed = (value as Window.Mode) == Window.MODE_FULLSCREEN
|
|
||||||
|
|
||||||
|
|
||||||
func get_value() -> Variant:
|
|
||||||
return Window.MODE_FULLSCREEN if checkbox.button_pressed else Window.MODE_WINDOWED
|
|
|
@ -1,12 +0,0 @@
|
||||||
extends Setting
|
|
||||||
## Setting with a dropdown menu representing an enum value
|
|
||||||
|
|
||||||
@onready var dropdown: OptionButton = %Dropdown
|
|
||||||
|
|
||||||
|
|
||||||
func initialize_value(value: Variant) -> void:
|
|
||||||
dropdown.selected = dropdown.get_item_index(value as int)
|
|
||||||
|
|
||||||
|
|
||||||
func get_value() -> Variant:
|
|
||||||
return dropdown.get_item_id(dropdown.selected)
|
|
|
@ -1,13 +1,9 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://dpry41u0ctikn"]
|
[gd_scene load_steps=2 format=3 uid="uid://dpry41u0ctikn"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dcah6r3ku60g6" path="res://src/ui/menus/settings_menu/settings/setting/setting.tscn" id="1_km84n"]
|
[ext_resource type="PackedScene" uid="uid://dcah6r3ku60g6" path="res://src/ui/menus/settings_menu/settings/setting/setting.tscn" id="1_km84n"]
|
||||||
[ext_resource type="Script" path="res://src/ui/menus/settings_menu/settings/dropdown_setting/dropdown_setting.gd" id="2_ubo13"]
|
|
||||||
|
|
||||||
[node name="DropdownSetting" instance=ExtResource("1_km84n")]
|
[node name="DropdownSetting" instance=ExtResource("1_km84n")]
|
||||||
script = ExtResource("2_ubo13")
|
|
||||||
|
|
||||||
[node name="Dropdown" type="OptionButton" parent="PanelContainer/MarginContainer" index="0"]
|
[node name="OptionButton" type="OptionButton" parent="PanelContainer/MarginContainer" index="0"]
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
selected = 0
|
|
||||||
item_count = 1
|
item_count = 1
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://d3eaqw2rdurct"]
|
[gd_scene load_steps=4 format=3 uid="uid://d3eaqw2rdurct"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ui/menus/settings_menu/settings_menu.gd" id="1_lbcn7"]
|
[ext_resource type="Script" path="res://src/ui/menus/settings_menu/settings_menu.gd" id="1_lbcn7"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bpmpj4n6xp17l" path="res://src/ui/menus/settings_menu/settings/checkbox_setting/checkbox_setting.tscn" id="2_f274v"]
|
[ext_resource type="PackedScene" uid="uid://bpmpj4n6xp17l" path="res://src/ui/menus/settings_menu/settings/checkbox_setting/checkbox_setting.tscn" id="2_f274v"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dut1lj8ju37sq" path="res://src/ui/menus/settings_menu/settings/numeric_setting/numeric_setting.tscn" id="3_jox8e"]
|
[ext_resource type="PackedScene" uid="uid://dut1lj8ju37sq" path="res://src/ui/menus/settings_menu/settings/numeric_setting/numeric_setting.tscn" id="3_jox8e"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dpry41u0ctikn" path="res://src/ui/menus/settings_menu/settings/dropdown_setting/dropdown_setting.tscn" id="4_g7eck"]
|
|
||||||
[ext_resource type="Script" path="res://src/ui/menus/settings_menu/settings/checkbox_setting/fullscreen_setting.gd" id="4_ug1id"]
|
|
||||||
|
|
||||||
[node name="SettingsMenu" type="MarginContainer"]
|
[node name="SettingsMenu" type="MarginContainer"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
@ -80,32 +78,6 @@ key = &"game/config/accessibility/enable_hit_lag"
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HitLag" index="1"]
|
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HitLag" index="1"]
|
||||||
text = "SETTINGS_HIT_LAG"
|
text = "SETTINGS_HIT_LAG"
|
||||||
|
|
||||||
[node name="GameplayHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/GameplayHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderMedium"
|
|
||||||
text = "SETTINGS_GAME_GAMEPLAY_HEADING"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/GameplayHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="ProjectionCollision" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"game/config/gameplay/projection/detect_collision"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ProjectionCollision" index="1"]
|
|
||||||
text = "SETTINGS_PROJECTION_COLLISIONS"
|
|
||||||
|
|
||||||
[node name="ProjectionGravity" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"game/config/gameplay/projection/use_local_gravity"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ProjectionGravity" index="1"]
|
|
||||||
text = "SETTINGS_PROJECTION_GRAVITY"
|
|
||||||
|
|
||||||
[node name="CameraHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
[node name="CameraHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
|
@ -222,169 +194,6 @@ theme_type_variation = &"SettingsListMargin"
|
||||||
[node name="SettingsList" type="VBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer"]
|
[node name="SettingsList" type="VBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="DisplayHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisplayHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderMedium"
|
|
||||||
text = "SETTINGS_GRAPHICS_DISPLAY_HEADING"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DisplayHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="Fullscreen" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
script = ExtResource("4_ug1id")
|
|
||||||
key = &"display/window/size/mode"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Fullscreen" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_FULLSCREEN"
|
|
||||||
|
|
||||||
[node name="VSync" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"display/window/vsync/vsync_mode"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/VSync" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_VSYNC"
|
|
||||||
|
|
||||||
[node name="AntialiasingHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AntialiasingHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderMedium"
|
|
||||||
text = "SETTINGS_GRAPHICS_AA_HEADING"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AntialiasingHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="MSAA" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("4_g7eck")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/anti_aliasing/quality/msaa_3d"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/MSAA" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_MSAA"
|
|
||||||
|
|
||||||
[node name="Dropdown" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/MSAA/PanelContainer/MarginContainer" index="0"]
|
|
||||||
item_count = 4
|
|
||||||
popup/item_0/text = "SETTINGS_GRAPHICS_MSAA_0"
|
|
||||||
popup/item_1/text = "SETTINGS_GRAPHICS_MSAA_2"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "SETTINGS_GRAPHICS_MSAA_4"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
popup/item_3/text = "SETTINGS_GRAPHICS_MSAA_8"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
|
|
||||||
[node name="FXAA" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/anti_aliasing/quality/screen_space_aa"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FXAA" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_FXAA"
|
|
||||||
|
|
||||||
[node name="TAA" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/anti_aliasing/quality/use_taa"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TAA" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_TAA"
|
|
||||||
|
|
||||||
[node name="Debanding" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("2_f274v")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/anti_aliasing/quality/use_debanding"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Debanding" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_DEBANDING"
|
|
||||||
|
|
||||||
[node name="TextureHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TextureHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderMedium"
|
|
||||||
text = "SETTINGS_GRAPHICS_TEXTURES_HEADING"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TextureHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="AnisotropicLevel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("4_g7eck")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/textures/default_filters/anisotropic_filtering_level"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AnisotropicLevel" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_ANISOTROPIC"
|
|
||||||
|
|
||||||
[node name="Dropdown" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AnisotropicLevel/PanelContainer/MarginContainer" index="0"]
|
|
||||||
item_count = 5
|
|
||||||
popup/item_0/text = "SETTINGS_GRAPHICS_ANISOTROPIC_0"
|
|
||||||
popup/item_1/text = "SETTINGS_GRAPHICS_ANISOTROPIC_1"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "SETTINGS_GRAPHICS_ANISOTROPIC_2"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
popup/item_3/text = "SETTINGS_GRAPHICS_ANISOTROPIC_3"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
popup/item_4/text = "SETTINGS_GRAPHICS_ANISOTROPIC_4"
|
|
||||||
popup/item_4/id = 4
|
|
||||||
|
|
||||||
[node name="LightingHeading" type="HBoxContainer" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/LightingHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderMedium"
|
|
||||||
text = "SETTINGS_GRAPHICS_LIGHTING_HEADING"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/LightingHeading"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="DirectionalShadowQuality" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("4_g7eck")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/lights_and_shadows/directional_shadow/size"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowQuality" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_SHADOW_QUALITY"
|
|
||||||
|
|
||||||
[node name="Dropdown" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowQuality/PanelContainer/MarginContainer" index="0"]
|
|
||||||
item_count = 6
|
|
||||||
popup/item_0/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_0"
|
|
||||||
popup/item_0/id = 256
|
|
||||||
popup/item_1/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_1"
|
|
||||||
popup/item_1/id = 2048
|
|
||||||
popup/item_2/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_2"
|
|
||||||
popup/item_2/id = 4096
|
|
||||||
popup/item_3/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_3"
|
|
||||||
popup/item_3/id = 8192
|
|
||||||
popup/item_4/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_4"
|
|
||||||
popup/item_4/id = 16384
|
|
||||||
popup/item_5/text = "SETTINGS_GRAPHICS_SHADOW_QUALITY_5"
|
|
||||||
popup/item_5/id = 32768
|
|
||||||
|
|
||||||
[node name="DirectionalShadowFilter" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("4_g7eck")]
|
|
||||||
layout_mode = 2
|
|
||||||
key = &"rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality"
|
|
||||||
|
|
||||||
[node name="SettingLabel" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowFilter" index="1"]
|
|
||||||
text = "SETTINGS_GRAPHICS_SHADOW_FILTER"
|
|
||||||
|
|
||||||
[node name="Dropdown" parent="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowFilter/PanelContainer/MarginContainer" index="0"]
|
|
||||||
item_count = 6
|
|
||||||
popup/item_0/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_0"
|
|
||||||
popup/item_1/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_1"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_2"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
popup/item_3/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_3"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
popup/item_4/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_4"
|
|
||||||
popup/item_4/id = 4
|
|
||||||
popup/item_5/text = "SETTINGS_GRAPHICS_SHADOW_FILTER_5"
|
|
||||||
popup/item_5/id = 5
|
|
||||||
|
|
||||||
[node name="SETTINGS_AUDIO" type="MarginContainer" parent="TabContainer"]
|
[node name="SETTINGS_AUDIO" type="MarginContainer" parent="TabContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
@ -490,8 +299,6 @@ text = "UI_ACCEPT"
|
||||||
|
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ScreenShake"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ScreenShake"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HitLag"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HitLag"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ProjectionCollision"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/ProjectionGravity"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FreeCameraSpeed"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FreeCameraSpeed"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FreeCameraSpeed/PanelContainer/MarginContainer/NumericSlider"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FreeCameraSpeed/PanelContainer/MarginContainer/NumericSlider"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/SensitivityX"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/SensitivityX"]
|
||||||
|
@ -499,12 +306,3 @@ text = "UI_ACCEPT"
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AccelerationX"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AccelerationX"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AccelerationY"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AccelerationY"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/InvertPitch"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/InvertPitch"]
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Fullscreen"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/VSync"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/MSAA"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/FXAA"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/TAA"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Debanding"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/AnisotropicLevel"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowQuality"]
|
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/DirectionalShadowFilter"]
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ const Y_OFFSET := {
|
||||||
GameBall.Type.NONE: 50,
|
GameBall.Type.NONE: 50,
|
||||||
GameBall.Type.BASIC: 18,
|
GameBall.Type.BASIC: 18,
|
||||||
GameBall.Type.PLASMA: -14,
|
GameBall.Type.PLASMA: -14,
|
||||||
GameBall.Type.BRICK: -46,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@export var value: GameBall.Type:
|
@export var value: GameBall.Type:
|
||||||
|
@ -16,7 +15,6 @@ const Y_OFFSET := {
|
||||||
@onready var ball_list: VBoxContainer = %BallList
|
@onready var ball_list: VBoxContainer = %BallList
|
||||||
@onready var basic_icon: BallIcon = %BasicIcon
|
@onready var basic_icon: BallIcon = %BasicIcon
|
||||||
@onready var plasma_icon: BallIcon = %PlasmaIcon
|
@onready var plasma_icon: BallIcon = %PlasmaIcon
|
||||||
@onready var brick_icon: BallIcon = %BrickIcon
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
@ -27,7 +25,6 @@ func _ready() -> void:
|
||||||
func set_state_for_player(player: WorldPlayer) -> void:
|
func set_state_for_player(player: WorldPlayer) -> void:
|
||||||
basic_icon.quantity = player.get_balls(GameBall.Type.BASIC)
|
basic_icon.quantity = player.get_balls(GameBall.Type.BASIC)
|
||||||
plasma_icon.quantity = player.get_balls(GameBall.Type.PLASMA)
|
plasma_icon.quantity = player.get_balls(GameBall.Type.PLASMA)
|
||||||
brick_icon.quantity = player.get_balls(GameBall.Type.BRICK)
|
|
||||||
if player.shot_setup:
|
if player.shot_setup:
|
||||||
value = player.shot_setup.ball_type
|
value = player.shot_setup.ball_type
|
||||||
player.on_balls_changed.connect(_set_quantity)
|
player.on_balls_changed.connect(_set_quantity)
|
||||||
|
@ -39,8 +36,6 @@ func _get_icon(type: GameBall.Type) -> BallIcon:
|
||||||
return basic_icon
|
return basic_icon
|
||||||
GameBall.Type.PLASMA:
|
GameBall.Type.PLASMA:
|
||||||
return plasma_icon
|
return plasma_icon
|
||||||
GameBall.Type.BRICK:
|
|
||||||
return brick_icon
|
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ custom_minimum_size = Vector2(120, 0)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_top = 50.0
|
offset_top = 50.0
|
||||||
offset_right = 120.0
|
offset_right = 120.0
|
||||||
offset_bottom = 141.0
|
offset_bottom = 109.0
|
||||||
theme_override_constants/separation = 5
|
theme_override_constants/separation = 5
|
||||||
|
|
||||||
[node name="BasicIcon" parent="GradientMask/BallList" instance=ExtResource("1_1v8xg")]
|
[node name="BasicIcon" parent="GradientMask/BallList" instance=ExtResource("1_1v8xg")]
|
||||||
|
@ -60,11 +60,3 @@ unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(120, 27)
|
custom_minimum_size = Vector2(120, 27)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "BALL_PLASMA"
|
text = "BALL_PLASMA"
|
||||||
|
|
||||||
[node name="BrickIcon" parent="GradientMask/BallList" instance=ExtResource("1_1v8xg")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
custom_minimum_size = Vector2(120, 27)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "BALL_BRICK"
|
|
||||||
quantity = 0
|
|
||||||
empty = true
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=13 format=3 uid="uid://dwfckgdxnwwru"]
|
[gd_scene load_steps=13 format=3 uid="uid://dwfckgdxnwwru"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b1bfyk5c003se" path="res://src/world/effects/zephyr/zephyr_scale_curve.tres" id="1_opmvf"]
|
[ext_resource type="Texture2D" uid="uid://c0rf8luj8nbom" path="res://src/world/effects/zephyr/zephyr_scale_curve.tres" id="1_opmvf"]
|
||||||
[ext_resource type="Curve" uid="uid://5vyddepvq1ho" path="res://src/world/effects/zephyr/zephyr_mesh_curve.tres" id="2_5lvg1"]
|
[ext_resource type="Curve" uid="uid://5vyddepvq1ho" path="res://src/world/effects/zephyr/zephyr_mesh_curve.tres" id="2_5lvg1"]
|
||||||
[ext_resource type="Material" uid="uid://b20gam4x6f8gw" path="res://src/world/effects/zephyr/zephyr_mesh_material.tres" id="3_yxxm1"]
|
[ext_resource type="Material" uid="uid://b20gam4x6f8gw" path="res://src/world/effects/zephyr/zephyr_mesh_material.tres" id="3_yxxm1"]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue