Compare commits
No commits in common. "chase-test" and "master" have entirely different histories.
chase-test
...
master
@ -1,16 +0,0 @@
|
|||||||
extends Node3D
|
|
||||||
|
|
||||||
@export var heartbeat_max_distance: float = 25.0
|
|
||||||
@export_exp_easing("attenuation") var falloff: float = 3.5
|
|
||||||
|
|
||||||
@onready var beat_vibration: VibrationComponent = $BeatVibration
|
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(_delta: float) -> void:
|
|
||||||
var player: PlayerCharacter = GameGlobals.get_player()
|
|
||||||
|
|
||||||
if is_instance_valid(player):
|
|
||||||
var distance: float = Utils.node_distance(self, player)
|
|
||||||
var strength: float = remap(distance, 0.0, heartbeat_max_distance, 1.0, 0.0)
|
|
||||||
strength = ease(strength, falloff)
|
|
||||||
beat_vibration.magnitude_multiplier = strength
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://dybhpfhrqsk6y
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://b57cpxwxpn40j"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dybhpfhrqsk6y" path="res://_development/ayuroo/heartbeat_effect.gd" id="1_gjfos"]
|
|
||||||
[ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="2_h7kji"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_akavr"]
|
|
||||||
resource_name = "heartbeat_anim"
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "method"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("BeatVibration")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.3),
|
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
|
||||||
"values": [{
|
|
||||||
"args": [],
|
|
||||||
"method": &"vibrate"
|
|
||||||
}, {
|
|
||||||
"args": [],
|
|
||||||
"method": &"vibrate"
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_5124f"]
|
|
||||||
_data = {
|
|
||||||
&"heartbeat_anim": SubResource("Animation_akavr")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="HeartbeatEffect" type="Node3D"]
|
|
||||||
script = ExtResource("1_gjfos")
|
|
||||||
heartbeat_max_distance = 60.0
|
|
||||||
falloff = 1.75
|
|
||||||
|
|
||||||
[node name="BeatVibration" type="Node" parent="."]
|
|
||||||
script = ExtResource("2_h7kji")
|
|
||||||
weak_magnitude = 1.0
|
|
||||||
strong_magnitude = 1.0
|
|
||||||
metadata/_custom_type_script = "uid://bbwtct3hoxwws"
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
|
||||||
libraries = {
|
|
||||||
&"": SubResource("AnimationLibrary_5124f")
|
|
||||||
}
|
|
||||||
autoplay = "heartbeat_anim"
|
|
||||||
@ -1,166 +0,0 @@
|
|||||||
[gd_scene load_steps=10 format=3 uid="uid://cer6jlrgjjiud"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://k3edwxkml8dd" path="res://src/gameplay/props/electrics/hologram_projector/hologram_projector_floor.tscn" id="1_rj064"]
|
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_rj064"]
|
|
||||||
sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
|
|
||||||
ground_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_wrunm"]
|
|
||||||
sky_material = SubResource("ProceduralSkyMaterial_rj064")
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_ryav0"]
|
|
||||||
background_mode = 2
|
|
||||||
sky = SubResource("Sky_wrunm")
|
|
||||||
tonemap_mode = 2
|
|
||||||
glow_enabled = true
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rj064"]
|
|
||||||
transparency = 4
|
|
||||||
albedo_color = Color(1, 1, 1, 0.6156863)
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_bl7je"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_wrunm"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Character:scale")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 1, 1)]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("Character:position")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(0, 0, 0)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_rj064"]
|
|
||||||
resource_name = "teleport"
|
|
||||||
length = 2.5
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Character:scale")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0.23333338, 0.33333334, 0.6333333, 0.73333335, 1.0333333, 1.1333332, 1.4666667, 1.5666667, 1.8666668, 1.9666667, 2.2833333, 2.3833334, 2.5),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(1, 1, 1), Vector3(0.5, 0.05, 0.5), Vector3(0.5, 0.05, 0.5), Vector3(1, 1, 1), Vector3(1, 1, 1), Vector3(0.5, 0.05, 0.5), Vector3(0.5, 0.05, 0.5), Vector3(1, 1, 1), Vector3(1, 1, 1), Vector3(0.5, 0.05, 0.5), Vector3(0.5, 0.05, 0.5), Vector3(1, 1, 1), Vector3(1, 1, 1)]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("Character:position")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.33333334, 0.43333334, 0.6333333, 1.1666666, 1.3333334, 1.9999998, 2.2, 2.5),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(4, 0, 0), Vector3(4, 0, 0), Vector3(-3.5992231, 0, -5), Vector3(-3.5992231, 0, -5), Vector3(0, 0, 0), Vector3(0, 0, 0)]
|
|
||||||
}
|
|
||||||
tracks/2/type = "method"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath("HologramProjectorFloor")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PackedFloat32Array(0.33333337, 2.2),
|
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
|
||||||
"values": [{
|
|
||||||
"args": [false],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}, {
|
|
||||||
"args": [true],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
tracks/3/type = "method"
|
|
||||||
tracks/3/imported = false
|
|
||||||
tracks/3/enabled = true
|
|
||||||
tracks/3/path = NodePath("HologramProjectorFloor2")
|
|
||||||
tracks/3/interp = 1
|
|
||||||
tracks/3/loop_wrap = true
|
|
||||||
tracks/3/keys = {
|
|
||||||
"times": PackedFloat32Array(0.6333333, 1.1666667),
|
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
|
||||||
"values": [{
|
|
||||||
"args": [true],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}, {
|
|
||||||
"args": [false],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
tracks/4/type = "method"
|
|
||||||
tracks/4/imported = false
|
|
||||||
tracks/4/enabled = true
|
|
||||||
tracks/4/path = NodePath("HologramProjectorFloor3")
|
|
||||||
tracks/4/interp = 1
|
|
||||||
tracks/4/loop_wrap = true
|
|
||||||
tracks/4/keys = {
|
|
||||||
"times": PackedFloat32Array(1.3333334, 2),
|
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
|
||||||
"values": [{
|
|
||||||
"args": [true],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}, {
|
|
||||||
"args": [false],
|
|
||||||
"method": &"set_glowing"
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ryav0"]
|
|
||||||
_data = {
|
|
||||||
&"RESET": SubResource("Animation_wrunm"),
|
|
||||||
&"teleport": SubResource("Animation_rj064")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D"]
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = SubResource("Environment_ryav0")
|
|
||||||
|
|
||||||
[node name="Character" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Character"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|
||||||
material_override = SubResource("StandardMaterial3D_rj064")
|
|
||||||
mesh = SubResource("CapsuleMesh_bl7je")
|
|
||||||
skeleton = NodePath("../..")
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
|
||||||
libraries = {
|
|
||||||
&"": SubResource("AnimationLibrary_ryav0")
|
|
||||||
}
|
|
||||||
autoplay = "teleport"
|
|
||||||
|
|
||||||
[node name="HologramProjectorFloor" parent="." instance=ExtResource("1_rj064")]
|
|
||||||
|
|
||||||
[node name="HologramProjectorFloor2" parent="." instance=ExtResource("1_rj064")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
|
|
||||||
|
|
||||||
[node name="HologramProjectorFloor3" parent="." instance=ExtResource("1_rj064")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.6, 0, -5)
|
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
|
||||||
transform = Transform3D(0.94264144, 0, -0.33380684, 0, 1, 0, 0.33380684, 0, 0.94264144, 0.175, 1.04, 2.02)
|
|
||||||
fov = 90.0
|
|
||||||
@ -1,84 +0,0 @@
|
|||||||
extends Level
|
|
||||||
|
|
||||||
signal beat_tick(beat: int)
|
|
||||||
|
|
||||||
const SPEED_TRANSITION_DISTANCE: float = 0.1
|
|
||||||
|
|
||||||
@export var chase_anim: StringName = &""
|
|
||||||
@export var debug_from_marker: StringName = &""
|
|
||||||
@export var bpm: float = 160.0
|
|
||||||
@export var debug_play_beat_tick: bool = false
|
|
||||||
|
|
||||||
var _previous_beat: int = 0
|
|
||||||
|
|
||||||
@onready var progress_track: Path3D = $ProgressTrack
|
|
||||||
@onready var player_desired_progress: PathFollow3D = $ProgressTrack/PlayerDesiredProgress
|
|
||||||
@onready var music_animation: AnimationPlayer = $MusicAnimation
|
|
||||||
@onready var debug_visualizer: MeshInstance3D = $ProgressTrack/PlayerDesiredProgress/DebugVisualizer
|
|
||||||
@onready var music: AudioStreamPlayer = $Music
|
|
||||||
@onready var beat_sfx: AudioStreamPlayer = $Beat
|
|
||||||
@onready var bar_sfx: AudioStreamPlayer = $Bar
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
InputManager.set_mouse_captured(true)
|
|
||||||
beat_tick.connect(_on_beat_tick)
|
|
||||||
|
|
||||||
#if OS.is_debug_build():
|
|
||||||
#var spawnpoint := PlayerSpawnPoint.get_spawnpoint_by_identifier(&"ChaseInfrontBeginning")
|
|
||||||
##var spawnpoint := PlayerSpawnPoint.get_spawnpoint_by_identifier(&"ChaseBeginning")
|
|
||||||
#GameGlobals.player.global_position = spawnpoint.global_position
|
|
||||||
|
|
||||||
|
|
||||||
func _process(_delta: float) -> void:
|
|
||||||
if not music_animation.is_playing():
|
|
||||||
return
|
|
||||||
|
|
||||||
# Beat tick
|
|
||||||
var _current_time: float = music_animation.current_animation_position + AudioServer.get_time_since_last_mix()
|
|
||||||
SPrint.print_msgf("Current Music-Time: %s" % _current_time)
|
|
||||||
_current_time -= AudioServer.get_output_latency()
|
|
||||||
var beat := int(_current_time * bpm / 60.0)
|
|
||||||
|
|
||||||
if _previous_beat != beat:
|
|
||||||
_previous_beat = beat
|
|
||||||
beat_tick.emit(beat)
|
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
|
||||||
if not music_animation.is_playing():
|
|
||||||
return
|
|
||||||
|
|
||||||
var player_character: PlayerCharacter = GameGlobals.player
|
|
||||||
|
|
||||||
var local_position: Vector3 = progress_track.to_local(player_character.global_position)
|
|
||||||
var player_offset: float = progress_track.curve.get_closest_offset(local_position)
|
|
||||||
var desired_speed_scale: float = remap(
|
|
||||||
(player_desired_progress.progress - player_offset) + SPEED_TRANSITION_DISTANCE,
|
|
||||||
0.0, SPEED_TRANSITION_DISTANCE,
|
|
||||||
0.1, 1.05
|
|
||||||
)
|
|
||||||
player_character.speed_scale = move_toward(
|
|
||||||
player_character.speed_scale,
|
|
||||||
clampf(desired_speed_scale, 0.1, 1.1),
|
|
||||||
delta
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_start_chase_area_body_entered(_body: Node3D) -> void:
|
|
||||||
if not OS.is_debug_build() or debug_from_marker.is_empty():
|
|
||||||
music_animation.play(chase_anim)
|
|
||||||
else:
|
|
||||||
music_animation.play_section_with_markers(chase_anim, debug_from_marker)
|
|
||||||
await get_tree().process_frame
|
|
||||||
|
|
||||||
var player: PlayerCharacter = GameGlobals.get_player()
|
|
||||||
if is_instance_valid(player):
|
|
||||||
player.global_position = debug_visualizer.global_position
|
|
||||||
|
|
||||||
|
|
||||||
func _on_beat_tick(beat: int) -> void:
|
|
||||||
if debug_play_beat_tick:
|
|
||||||
beat_sfx.play()
|
|
||||||
|
|
||||||
debug_visualizer.scale = Vector3.ONE * (1.25 if beat % 2 == 0 else 1.0)
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cdgei0ihcem0n
|
|
||||||
@ -1,131 +0,0 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://btjepmbw1mq6j"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://8y3swwnmxwg2" path="res://src/core/world/world.tscn" id="1_7hw7e"]
|
|
||||||
[ext_resource type="Script" uid="uid://dfnb036hysorj" path="res://src/core/world/level/level_loader.gd" id="2_5eifk"]
|
|
||||||
[ext_resource type="Script" uid="uid://3hlvt5k34xva" path="res://src/core/spawnpoint/player_spawn_point.gd" id="3_5eifk"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://drr80goa61wrx" path="res://src/core/world/level/level_area.tscn" id="4_clslv"]
|
|
||||||
[ext_resource type="Script" uid="uid://u2s0spt1rud4" path="res://src/core/game_state_overrider.gd" id="6_gynur"]
|
|
||||||
[ext_resource type="Script" uid="uid://bfv3de7iqflhv" path="res://src/core/damage/death_area.gd" id="6_tys81"]
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_77q0j"]
|
|
||||||
size = Vector3(29, 14, 149)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_clslv"]
|
|
||||||
size = Vector3(29, 14, 1175)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gynur"]
|
|
||||||
size = Vector3(29, 14, 1762)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_tys81"]
|
|
||||||
size = Vector3(1, 2, 0.5)
|
|
||||||
|
|
||||||
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_gynur"]
|
|
||||||
|
|
||||||
[node name="ChaseTestWorld" instance=ExtResource("1_7hw7e")]
|
|
||||||
initial_spawn_id = &"Staircase"
|
|
||||||
debug_spawn_point = &"ChaseInfrontBeginning"
|
|
||||||
|
|
||||||
[node name="Spawnpoints" type="Node" parent="." index="0"]
|
|
||||||
|
|
||||||
[node name="SpawnStaircase" type="Marker3D" parent="Spawnpoints" index="0"]
|
|
||||||
script = ExtResource("3_5eifk")
|
|
||||||
spawn_id = &"Staircase"
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="SpawnInfrontChase" type="Marker3D" parent="Spawnpoints" index="1"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -26)
|
|
||||||
script = ExtResource("3_5eifk")
|
|
||||||
spawn_id = &"ChaseInfrontBeginning"
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="SpawnChaseBeginning" type="Marker3D" parent="Spawnpoints" index="2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -28)
|
|
||||||
script = ExtResource("3_5eifk")
|
|
||||||
spawn_id = &"ChaseBeginning"
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="LevelLoaders" type="Node" parent="." index="1"]
|
|
||||||
|
|
||||||
[node name="LoaderLayoutTest" type="Marker3D" parent="LevelLoaders" index="0"]
|
|
||||||
script = ExtResource("2_5eifk")
|
|
||||||
scene_path = "uid://srvm3v1grugk"
|
|
||||||
load_threaded = false
|
|
||||||
override_level_id = false
|
|
||||||
level_id = &"LayoutTest"
|
|
||||||
metadata/_custom_type_script = "uid://dfnb036hysorj"
|
|
||||||
|
|
||||||
[node name="LoaderChaseLGTest" type="Marker3D" parent="LevelLoaders" index="1"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 3.5, -37.5)
|
|
||||||
script = ExtResource("2_5eifk")
|
|
||||||
scene_path = "uid://d013wo01v8lr5"
|
|
||||||
override_level_id = false
|
|
||||||
level_id = &"ChaseTest"
|
|
||||||
metadata/_custom_type_script = "uid://dfnb036hysorj"
|
|
||||||
|
|
||||||
[node name="LoaderChaseEFTest" type="Marker3D" parent="LevelLoaders" index="2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 3.5, -37.5)
|
|
||||||
script = ExtResource("2_5eifk")
|
|
||||||
scene_path = "uid://bdkbqhgw8nhh6"
|
|
||||||
override_level_id = false
|
|
||||||
level_id = &"ChaseTest"
|
|
||||||
metadata/_custom_type_script = "uid://dfnb036hysorj"
|
|
||||||
|
|
||||||
[node name="LevelAreas" type="Node" parent="." index="2"]
|
|
||||||
|
|
||||||
[node name="LayoutTestArea" parent="LevelAreas" index="0" node_paths=PackedStringArray("level_loader", "loaded_if_spawnpoint") instance=ExtResource("4_clslv")]
|
|
||||||
level_loader = NodePath("../../LevelLoaders/LoaderLayoutTest")
|
|
||||||
loaded_if_spawnpoint = [NodePath("../../Spawnpoints/SpawnStaircase"), NodePath("../../Spawnpoints/SpawnChaseBeginning"), NodePath("../../Spawnpoints/SpawnInfrontChase")]
|
|
||||||
keep_loaded_duration = 20.0
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LevelAreas/LayoutTestArea" index="0"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.5, -69)
|
|
||||||
shape = SubResource("BoxShape3D_77q0j")
|
|
||||||
debug_color = Color(1, 1, 0, 0.41960785)
|
|
||||||
|
|
||||||
[node name="ChaseLGArea" parent="LevelAreas" index="1" node_paths=PackedStringArray("level_loader", "loaded_if_spawnpoint") instance=ExtResource("4_clslv")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 0, 0)
|
|
||||||
level_loader = NodePath("../../LevelLoaders/LoaderChaseLGTest")
|
|
||||||
loaded_if_spawnpoint = [NodePath("../../Spawnpoints/SpawnChaseBeginning")]
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LevelAreas/ChaseLGArea" index="0"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.5, -613.54346)
|
|
||||||
shape = SubResource("BoxShape3D_clslv")
|
|
||||||
debug_color = Color(1, 1, 0, 0.41960785)
|
|
||||||
|
|
||||||
[node name="ChaseEFArea" parent="LevelAreas" index="2" node_paths=PackedStringArray("level_loader", "loaded_if_spawnpoint") instance=ExtResource("4_clslv")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 0, 0)
|
|
||||||
level_loader = NodePath("../../LevelLoaders/LoaderChaseEFTest")
|
|
||||||
loaded_if_spawnpoint = [NodePath("../../Spawnpoints/SpawnChaseBeginning")]
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LevelAreas/ChaseEFArea" index="0"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.5, -907.04346)
|
|
||||||
shape = SubResource("BoxShape3D_gynur")
|
|
||||||
debug_color = Color(1, 1, 0, 0.41960785)
|
|
||||||
|
|
||||||
[node name="Checkpoints" type="Node" parent="." index="3"]
|
|
||||||
|
|
||||||
[node name="GameStateOverrider" type="Area3D" parent="Checkpoints" index="0" node_paths=PackedStringArray("level_loader", "spawnpoint")]
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("6_gynur")
|
|
||||||
do_save = false
|
|
||||||
override_chapter_index = false
|
|
||||||
level_loader = NodePath("../../LevelLoaders/LoaderLayoutTest")
|
|
||||||
spawnpoint = NodePath("../../Spawnpoints/SpawnInfrontChase")
|
|
||||||
use_player_transform = false
|
|
||||||
metadata/_custom_type_script = "uid://u2s0spt1rud4"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Checkpoints/GameStateOverrider" index="0"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, -23.751904)
|
|
||||||
shape = SubResource("BoxShape3D_tys81")
|
|
||||||
|
|
||||||
[node name="DeathArea" type="Area3D" parent="." index="4"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -7, 0)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("6_tys81")
|
|
||||||
death_type = 1
|
|
||||||
metadata/_custom_type_script = "uid://bfv3de7iqflhv"
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="DeathArea" index="0"]
|
|
||||||
shape = SubResource("WorldBoundaryShape3D_gynur")
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
[gd_resource type="Resource" script_class="WorldInfo" load_steps=6 format=3 uid="uid://d0y8d244covqn"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dlf1vq0qej6bs" path="res://src/core/world/world_info.gd" id="1_5vaia"]
|
|
||||||
[ext_resource type="Script" uid="uid://dhaus6vq5oigj" path="res://src/core/world/level/level_info.gd" id="1_akwq6"]
|
|
||||||
[ext_resource type="Resource" uid="uid://dc6x0whf4601" path="res://_development/ayuroo/levels/_experimental/level_layout_test.tres" id="2_ik5w1"]
|
|
||||||
[ext_resource type="Resource" uid="uid://stvk354xpola" path="res://_development/ayuroo/levels/_chase_test/everlasting_fun/level_everlasting_fun.tres" id="2_riadp"]
|
|
||||||
[ext_resource type="Resource" uid="uid://o7u7x13isl7e" path="res://_development/ayuroo/levels/_chase_test/liquid_gold/level_liquid_gold.tres" id="3_ik5w1"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("1_5vaia")
|
|
||||||
world_path = "uid://btjepmbw1mq6j"
|
|
||||||
initial_level = &"LayoutTest"
|
|
||||||
levels = Array[ExtResource("1_akwq6")]([ExtResource("2_ik5w1"), ExtResource("2_riadp"), ExtResource("3_ik5w1")])
|
|
||||||
metadata/_custom_type_script = "uid://dlf1vq0qej6bs"
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://bycnxkxch1dmo"
|
|
||||||
path="res://.godot/imported/bar.ogg-ba9604d6d5e0363a87b05d7ba864b7b8.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/bar.ogg"
|
|
||||||
dest_files=["res://.godot/imported/bar.ogg-ba9604d6d5e0363a87b05d7ba864b7b8.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://c6eyxsodomokn"
|
|
||||||
path="res://.godot/imported/beat.ogg-bcda8bfd4ebb685197697e4166af0061.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/beat.ogg"
|
|
||||||
dest_files=["res://.godot/imported/beat.ogg-bcda8bfd4ebb685197697e4166af0061.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="mp3"
|
|
||||||
type="AudioStreamMP3"
|
|
||||||
uid="uid://dxx77jtvkpmdh"
|
|
||||||
path="res://.godot/imported/Everlasting Fun (Derivative Version) 【INDIGO PARK FAN MUSIC VIDEO.mp3-fef5003c96572304e3d1534cc4fc1c8f.mp3str"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/everlasting_fun/Everlasting Fun (Derivative Version) 【INDIGO PARK FAN MUSIC VIDEO.mp3"
|
|
||||||
dest_files=["res://.godot/imported/Everlasting Fun (Derivative Version) 【INDIGO PARK FAN MUSIC VIDEO.mp3-fef5003c96572304e3d1534cc4fc1c8f.mp3str"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0.0
|
|
||||||
bpm=176.0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,126 +0,0 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://bdkbqhgw8nhh6"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cdgei0ihcem0n" path="res://_development/ayuroo/levels/_chase_test/_chase_test.gd" id="1_ksy85"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://bxka3egn4m01r" path="res://_development/ayuroo/levels/_chase_test/tick.ogg" id="2_2frp2"]
|
|
||||||
[ext_resource type="AnimationLibrary" uid="uid://ct8oebsc01o7j" path="res://_development/ayuroo/levels/_chase_test/everlasting_fun/_ef_chase_anim.tres" id="2_r4hpf"]
|
|
||||||
[ext_resource type="Script" uid="uid://dp6jy00a6xuhk" path="res://tools/beat_measurer.gd" id="3_c3hig"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://bji7bb0rrangg" path="res://_development/ayuroo/levels/_chase_test/tack.ogg" id="3_c4bhh"]
|
|
||||||
[ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="4_gmmry"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="5_86lpt"]
|
|
||||||
[ext_resource type="Script" uid="uid://bueqrebp8o36n" path="res://tools/anim_player_editor_calls.gd" id="5_c4bhh"]
|
|
||||||
[ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="6_t80us"]
|
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_2frp2"]
|
|
||||||
playback_mode = 2
|
|
||||||
streams_count = 2
|
|
||||||
stream_0/stream = ExtResource("2_2frp2")
|
|
||||||
stream_1/stream = ExtResource("3_c4bhh")
|
|
||||||
|
|
||||||
[sub_resource type="Curve3D" id="Curve3D_tqtrq"]
|
|
||||||
_data = {
|
|
||||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1533),
|
|
||||||
"tilts": PackedFloat32Array(0, 0)
|
|
||||||
}
|
|
||||||
point_count = 2
|
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_tqtrq"]
|
|
||||||
radius = 0.15
|
|
||||||
height = 0.3
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gsfaw"]
|
|
||||||
size = Vector3(14, 5, 1)
|
|
||||||
|
|
||||||
[node name="ChaseTest" type="Node3D"]
|
|
||||||
script = ExtResource("1_ksy85")
|
|
||||||
chase_anim = &"everlasting_fun"
|
|
||||||
debug_from_marker = &"IntroEnd"
|
|
||||||
bpm = 176.0
|
|
||||||
metadata/_custom_type_script = "uid://cigop0ivp5vvu"
|
|
||||||
|
|
||||||
[node name="Music" type="AudioStreamPlayer" parent="."]
|
|
||||||
volume_db = -6.0
|
|
||||||
|
|
||||||
[node name="Beat" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = SubResource("AudioStreamRandomizer_2frp2")
|
|
||||||
volume_db = -3.0
|
|
||||||
max_polyphony = 4
|
|
||||||
|
|
||||||
[node name="Bar" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource("3_c4bhh")
|
|
||||||
volume_db = -6.0
|
|
||||||
|
|
||||||
[node name="MusicAnimation" type="AnimationPlayer" parent="."]
|
|
||||||
audio_max_polyphony = 1
|
|
||||||
callback_mode_process = 0
|
|
||||||
callback_mode_method = 1
|
|
||||||
libraries = {
|
|
||||||
&"": ExtResource("2_r4hpf")
|
|
||||||
}
|
|
||||||
script = ExtResource("5_c4bhh")
|
|
||||||
audio_player = NodePath("../Music")
|
|
||||||
metadata/_custom_type_script = "uid://jahmwrxb2siw"
|
|
||||||
|
|
||||||
[node name="ProgressTrack" type="Path3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|
||||||
curve = SubResource("Curve3D_tqtrq")
|
|
||||||
|
|
||||||
[node name="PlayerDesiredProgress" type="PathFollow3D" parent="ProgressTrack"]
|
|
||||||
rotation_mode = 0
|
|
||||||
loop = false
|
|
||||||
|
|
||||||
[node name="DebugVisualizer" type="MeshInstance3D" parent="ProgressTrack/PlayerDesiredProgress"]
|
|
||||||
mesh = SubResource("SphereMesh_tqtrq")
|
|
||||||
|
|
||||||
[node name="BeatMeasurer" type="Node" parent="ProgressTrack" node_paths=PackedStringArray("path")]
|
|
||||||
script = ExtResource("3_c3hig")
|
|
||||||
path = NodePath("..")
|
|
||||||
track_duration = 290.06
|
|
||||||
track_bpm = 176
|
|
||||||
metadata/_custom_type_script = "uid://dp6jy00a6xuhk"
|
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -767.75)
|
|
||||||
size = Vector3(14, 1, 1536.5)
|
|
||||||
material = ExtResource("4_gmmry")
|
|
||||||
|
|
||||||
[node name="Saws" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="ResetSaw" parent="Saws" instance=ExtResource("5_86lpt")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 1, -1511.1943)
|
|
||||||
|
|
||||||
[node name="Saw" parent="Saws" instance=ExtResource("5_86lpt")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -46)
|
|
||||||
|
|
||||||
[node name="Saw2" parent="Saws" instance=ExtResource("5_86lpt")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -53)
|
|
||||||
|
|
||||||
[node name="HeavyBeatVibration" type="Node" parent="."]
|
|
||||||
script = ExtResource("6_t80us")
|
|
||||||
duration = 0.075
|
|
||||||
sync_to_audio = true
|
|
||||||
weak_magnitude = 0.25
|
|
||||||
strong_magnitude = 0.5
|
|
||||||
magnitude_multiplier = 0.0
|
|
||||||
metadata/_custom_type_script = "uid://bbwtct3hoxwws"
|
|
||||||
|
|
||||||
[node name="LightBeatVibration" type="Node" parent="."]
|
|
||||||
script = ExtResource("6_t80us")
|
|
||||||
duration = 0.075
|
|
||||||
delay = 0.125
|
|
||||||
sync_to_audio = true
|
|
||||||
strong_magnitude = 0.0
|
|
||||||
metadata/_custom_type_script = "uid://bbwtct3hoxwws"
|
|
||||||
|
|
||||||
[node name="StartChaseArea" type="Area3D" parent="."]
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StartChaseArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
|
||||||
shape = SubResource("BoxShape3D_gsfaw")
|
|
||||||
|
|
||||||
[connection signal="started_vibration" from="HeavyBeatVibration" to="Beat" method="play"]
|
|
||||||
[connection signal="body_entered" from="StartChaseArea" to="." method="_on_start_chase_area_body_entered"]
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
[gd_resource type="Resource" script_class="LevelInfo" load_steps=2 format=3 uid="uid://stvk354xpola"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dhaus6vq5oigj" path="res://src/core/world/level/level_info.gd" id="1_85ilw"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("1_85ilw")
|
|
||||||
level_path = "uid://bdkbqhgw8nhh6"
|
|
||||||
level_id = &"EverlastingFun"
|
|
||||||
metadata/_custom_type_script = "uid://dhaus6vq5oigj"
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://ccsijhfcbaqx0"
|
|
||||||
path="res://.godot/imported/bass_filtered.ogg-2411c7db56777a627b361ecd634f0496.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/everlasting_fun/music/bass_filtered.ogg"
|
|
||||||
dest_files=["res://.godot/imported/bass_filtered.ogg-2411c7db56777a627b361ecd634f0496.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://4kmkg4m5da1u"
|
|
||||||
path="res://.godot/imported/bass_filtered2.ogg-f005cb269ff931fb707dbe27834b4ad9.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/everlasting_fun/music/bass_filtered2.ogg"
|
|
||||||
dest_files=["res://.godot/imported/bass_filtered2.ogg-f005cb269ff931fb707dbe27834b4ad9.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="mp3"
|
|
||||||
type="AudioStreamMP3"
|
|
||||||
uid="uid://ddfnb7m4ufpmu"
|
|
||||||
path="res://.godot/imported/Liquid Gold.mp3-6d2cb1e626d7f1dcf7172550bf2c5308.mp3str"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/liquid_gold/Liquid Gold.mp3"
|
|
||||||
dest_files=["res://.godot/imported/Liquid Gold.mp3-6d2cb1e626d7f1dcf7172550bf2c5308.mp3str"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0.0
|
|
||||||
bpm=80.0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,104 +0,0 @@
|
|||||||
[gd_scene load_steps=13 format=3 uid="uid://d013wo01v8lr5"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cdgei0ihcem0n" path="res://_development/ayuroo/levels/_chase_test/_chase_test.gd" id="1_l86vi"]
|
|
||||||
[ext_resource type="AnimationLibrary" uid="uid://ck15gq8qw1rfg" path="res://_development/ayuroo/levels/_chase_test/liquid_gold/_lg_chase_anim.tres" id="2_kddul"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://c6eyxsodomokn" path="res://_development/ayuroo/levels/_chase_test/beat.ogg" id="2_pwoi6"]
|
|
||||||
[ext_resource type="Script" uid="uid://dp6jy00a6xuhk" path="res://tools/beat_measurer.gd" id="3_pwoi6"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://bycnxkxch1dmo" path="res://_development/ayuroo/levels/_chase_test/bar.ogg" id="3_ytnb7"]
|
|
||||||
[ext_resource type="Material" uid="uid://c38215ysnknyk" path="res://assets/materials/dev/dark/dark_01.tres" id="4_ytnb7"]
|
|
||||||
[ext_resource type="Script" uid="uid://bueqrebp8o36n" path="res://tools/anim_player_editor_calls.gd" id="5_1cy10"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="5_i68vn"]
|
|
||||||
[ext_resource type="Script" uid="uid://bbwtct3hoxwws" path="res://src/core/vibration_component.gd" id="6_1cy10"]
|
|
||||||
|
|
||||||
[sub_resource type="Curve3D" id="Curve3D_tqtrq"]
|
|
||||||
_data = {
|
|
||||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1150),
|
|
||||||
"tilts": PackedFloat32Array(0, 0)
|
|
||||||
}
|
|
||||||
point_count = 2
|
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_tqtrq"]
|
|
||||||
radius = 0.15
|
|
||||||
height = 0.3
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gsfaw"]
|
|
||||||
size = Vector3(14, 5, 1)
|
|
||||||
|
|
||||||
[node name="ChaseTest" type="Node3D"]
|
|
||||||
script = ExtResource("1_l86vi")
|
|
||||||
chase_anim = &"liquid_gold"
|
|
||||||
metadata/_custom_type_script = "uid://cigop0ivp5vvu"
|
|
||||||
|
|
||||||
[node name="Music" type="AudioStreamPlayer" parent="."]
|
|
||||||
volume_db = -6.0
|
|
||||||
|
|
||||||
[node name="Beat" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource("2_pwoi6")
|
|
||||||
volume_db = -6.0
|
|
||||||
|
|
||||||
[node name="Bar" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource("3_ytnb7")
|
|
||||||
volume_db = -6.0
|
|
||||||
|
|
||||||
[node name="MusicAnimation" type="AnimationPlayer" parent="."]
|
|
||||||
callback_mode_process = 0
|
|
||||||
libraries = {
|
|
||||||
&"": ExtResource("2_kddul")
|
|
||||||
}
|
|
||||||
script = ExtResource("5_1cy10")
|
|
||||||
|
|
||||||
[node name="ProgressTrack" type="Path3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|
||||||
curve = SubResource("Curve3D_tqtrq")
|
|
||||||
|
|
||||||
[node name="PlayerDesiredProgress" type="PathFollow3D" parent="ProgressTrack"]
|
|
||||||
rotation_mode = 0
|
|
||||||
loop = false
|
|
||||||
|
|
||||||
[node name="DebugVisualizer" type="MeshInstance3D" parent="ProgressTrack/PlayerDesiredProgress"]
|
|
||||||
mesh = SubResource("SphereMesh_tqtrq")
|
|
||||||
|
|
||||||
[node name="BeatMeasurer" type="Node" parent="ProgressTrack" node_paths=PackedStringArray("path")]
|
|
||||||
script = ExtResource("3_pwoi6")
|
|
||||||
path = NodePath("..")
|
|
||||||
track_duration = 208.54
|
|
||||||
track_bpm = 160
|
|
||||||
metadata/_custom_type_script = "uid://dp6jy00a6xuhk"
|
|
||||||
|
|
||||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -580)
|
|
||||||
size = Vector3(14, 1, 1161)
|
|
||||||
material = ExtResource("4_ytnb7")
|
|
||||||
|
|
||||||
[node name="Saws" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="ResetSaw" parent="Saws" instance=ExtResource("5_i68vn")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 1, -1144.4116)
|
|
||||||
|
|
||||||
[node name="Saw" parent="Saws" instance=ExtResource("5_i68vn")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -46)
|
|
||||||
|
|
||||||
[node name="Saw2" parent="Saws" instance=ExtResource("5_i68vn")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -53)
|
|
||||||
|
|
||||||
[node name="VibrationComponent" type="Node" parent="."]
|
|
||||||
script = ExtResource("6_1cy10")
|
|
||||||
duration = 0.1
|
|
||||||
editor_delay = 0.125
|
|
||||||
sync_to_audio = true
|
|
||||||
weak_magnitude = 0.25
|
|
||||||
strong_magnitude = 0.5
|
|
||||||
metadata/_custom_type_script = "uid://bbwtct3hoxwws"
|
|
||||||
|
|
||||||
[node name="StartChaseArea" type="Area3D" parent="."]
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StartChaseArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
|
||||||
shape = SubResource("BoxShape3D_gsfaw")
|
|
||||||
|
|
||||||
[connection signal="body_entered" from="StartChaseArea" to="." method="_on_start_chase_area_body_entered"]
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
[gd_resource type="Resource" script_class="LevelInfo" load_steps=2 format=3 uid="uid://o7u7x13isl7e"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dhaus6vq5oigj" path="res://src/core/world/level/level_info.gd" id="1_d8a7e"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("1_d8a7e")
|
|
||||||
level_path = "uid://d013wo01v8lr5"
|
|
||||||
level_id = &"LiquidGold"
|
|
||||||
metadata/_custom_type_script = "uid://dhaus6vq5oigj"
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://bji7bb0rrangg"
|
|
||||||
path="res://.godot/imported/tack.ogg-cd39970f45e3a933f4451b2a0a071d52.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/tack.ogg"
|
|
||||||
dest_files=["res://.godot/imported/tack.ogg-cd39970f45e3a933f4451b2a0a071d52.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="oggvorbisstr"
|
|
||||||
type="AudioStreamOggVorbis"
|
|
||||||
uid="uid://bxka3egn4m01r"
|
|
||||||
path="res://.godot/imported/tick.ogg-6c7d8f870a6de2550d73f74e3425f11e.oggvorbisstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_chase_test/tick.ogg"
|
|
||||||
dest_files=["res://.godot/imported/tick.ogg-6c7d8f870a6de2550d73f74e3425f11e.oggvorbisstr"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=false
|
|
||||||
loop_offset=0
|
|
||||||
bpm=0
|
|
||||||
beat_count=0
|
|
||||||
bar_beats=4
|
|
||||||
@ -1,191 +0,0 @@
|
|||||||
[gd_scene load_steps=19 format=3 uid="uid://d3ag4d4r8qcw7"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clhy3kiceqf2o" path="res://src/gameplay/characters/player/player_character.tscn" id="1_uvw2h"]
|
|
||||||
[ext_resource type="Script" uid="uid://bj2bhtdul8xct" path="res://_development/ayuroo/dynamic_area_loader/dynamic_area_loader.gd" id="2_vkr6n"]
|
|
||||||
[ext_resource type="Script" uid="uid://3hlvt5k34xva" path="res://src/core/spawnpoint/player_spawn_point.gd" id="3_1q3mf"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="4_mduwu"]
|
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_g60qb"]
|
|
||||||
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_yaqeo"]
|
|
||||||
sky_material = SubResource("ProceduralSkyMaterial_g60qb")
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_4rgsp"]
|
|
||||||
background_mode = 2
|
|
||||||
sky = SubResource("Sky_yaqeo")
|
|
||||||
tonemap_mode = 2
|
|
||||||
glow_enabled = true
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g60qb"]
|
|
||||||
albedo_color = Color(1, 0.426083, 0.0827108, 1)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_g60qb"]
|
|
||||||
size = Vector3(9, 4, 9)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_yaqeo"]
|
|
||||||
size = Vector3(9, 4, 9)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_4rgsp"]
|
|
||||||
size = Vector3(12, 4, 7)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_m4fap"]
|
|
||||||
size = Vector3(4, 4, 11)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_k1ge7"]
|
|
||||||
size = Vector3(25, 4, 21.3)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ka7nb"]
|
|
||||||
size = Vector3(25, 4, 6)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_kaxur"]
|
|
||||||
size = Vector3(22, 4, 7)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_0qpgw"]
|
|
||||||
size = Vector3(9, 4, 25)
|
|
||||||
|
|
||||||
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_g60qb"]
|
|
||||||
|
|
||||||
[sub_resource type="CylinderMesh" id="CylinderMesh_g60qb"]
|
|
||||||
|
|
||||||
[node name="DynamicLoadTestMap" type="Node"]
|
|
||||||
|
|
||||||
[node name="PlayerCharacter" parent="." instance=ExtResource("1_uvw2h")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10)
|
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
||||||
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
|
|
||||||
shadow_enabled = true
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = SubResource("Environment_4rgsp")
|
|
||||||
|
|
||||||
[node name="Areas" type="Node" parent="."]
|
|
||||||
|
|
||||||
[node name="AlwaysLoaded" type="CSGCombiner3D" parent="Areas"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 9)
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="Areas/AlwaysLoaded"]
|
|
||||||
size = Vector3(8, 1, 7)
|
|
||||||
material = SubResource("StandardMaterial3D_g60qb")
|
|
||||||
|
|
||||||
[node name="PerformanceTestPlatform1" type="Area3D" parent="Areas" node_paths=PackedStringArray("placeholder_node")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 0)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("2_vkr6n")
|
|
||||||
placeholder_node = NodePath("Area1")
|
|
||||||
loaded_if_spawnpoint = Array[int]([0])
|
|
||||||
metadata/_custom_type_script = "uid://bj2bhtdul8xct"
|
|
||||||
|
|
||||||
[node name="Area1" parent="Areas/PerformanceTestPlatform1" instance_placeholder="res://src/maps/_dynamic_load_test/area_1.tscn"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, -2, 2)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Areas/PerformanceTestPlatform1"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 2)
|
|
||||||
shape = SubResource("BoxShape3D_g60qb")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="PerformanceTestPlatform2" type="Area3D" parent="Areas" node_paths=PackedStringArray("placeholder_node")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, -7)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("2_vkr6n")
|
|
||||||
placeholder_node = NodePath("Area2")
|
|
||||||
loaded_if_spawnpoint = Array[int]([1])
|
|
||||||
metadata/_custom_type_script = "uid://bj2bhtdul8xct"
|
|
||||||
|
|
||||||
[node name="Area2" parent="Areas/PerformanceTestPlatform2" instance_placeholder="res://src/maps/_dynamic_load_test/area_2.tscn"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, -2, 2)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Areas/PerformanceTestPlatform2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 2)
|
|
||||||
shape = SubResource("BoxShape3D_yaqeo")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Areas/PerformanceTestPlatform2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 0.5, 3.67773)
|
|
||||||
shape = SubResource("BoxShape3D_4rgsp")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Areas/PerformanceTestPlatform2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 0.5, 5.67773)
|
|
||||||
shape = SubResource("BoxShape3D_m4fap")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="Hallway1Loader" type="Area3D" parent="Areas" node_paths=PackedStringArray("placeholder_node")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, -7)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("2_vkr6n")
|
|
||||||
placeholder_node = NodePath("Hallway1")
|
|
||||||
metadata/_custom_type_script = "uid://bj2bhtdul8xct"
|
|
||||||
|
|
||||||
[node name="Hallway1" parent="Areas/Hallway1Loader" instance_placeholder="res://src/maps/_dynamic_load_test/hallway_1.tscn"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, -2, 15)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Areas/Hallway1Loader"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 17.85)
|
|
||||||
shape = SubResource("BoxShape3D_k1ge7")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="Hallway2Loader" type="Area3D" parent="Areas" node_paths=PackedStringArray("placeholder_node")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, -7)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
script = ExtResource("2_vkr6n")
|
|
||||||
placeholder_node = NodePath("Hallway2")
|
|
||||||
metadata/_custom_type_script = "uid://bj2bhtdul8xct"
|
|
||||||
|
|
||||||
[node name="Hallway2" parent="Areas/Hallway2Loader" instance_placeholder="res://src/maps/_dynamic_load_test/hallway_2.tscn"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, -2, 15)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Areas/Hallway2Loader"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 25.5)
|
|
||||||
shape = SubResource("BoxShape3D_ka7nb")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Areas/Hallway2Loader"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0.5, 3.67773)
|
|
||||||
shape = SubResource("BoxShape3D_kaxur")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Areas/Hallway2Loader"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0.5, 12.6777)
|
|
||||||
shape = SubResource("BoxShape3D_0qpgw")
|
|
||||||
debug_color = Color(0.678973, 0.504376, 0, 0.42)
|
|
||||||
|
|
||||||
[node name="WorldFloor" type="StaticBody3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
|
||||||
metadata/_edit_lock_ = true
|
|
||||||
metadata/_edit_group_ = true
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="WorldFloor"]
|
|
||||||
shape = SubResource("WorldBoundaryShape3D_g60qb")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
|
||||||
transform = Transform3D(5.58473, 6.33307, 0, -6.33307, 5.58473, 0, 0, 0, 8.44375, -13.6652, 0, -15.4998)
|
|
||||||
mesh = SubResource("CylinderMesh_g60qb")
|
|
||||||
|
|
||||||
[node name="PlayerSpawnPoint" type="Marker3D" parent="."]
|
|
||||||
transform = Transform3D(0.330597, 0, 0.943772, 0, 1, 0, -0.943772, 0, 0.330597, 2.60837, 0.5, 3.3168)
|
|
||||||
script = ExtResource("3_1q3mf")
|
|
||||||
spawn_index = 3
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="PlayerSpawnPoint2" type="Marker3D" parent="."]
|
|
||||||
transform = Transform3D(0.330597, 0, 0.943772, 0, 1, 0, -0.943772, 0, 0.330597, 2.60837, 0.5, -2.6832)
|
|
||||||
script = ExtResource("3_1q3mf")
|
|
||||||
spawn_index = 4
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="PlayerSpawnPoint3" type="Marker3D" parent="."]
|
|
||||||
transform = Transform3D(0.43358, 0, -0.901115, 0, 1, 0, 0.901115, 0, 0.43358, -14.3916, 0.5, -2.6832)
|
|
||||||
script = ExtResource("3_1q3mf")
|
|
||||||
spawn_index = 2
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="Saw" parent="." instance=ExtResource("4_mduwu")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.31477, 1.59362, 6.44809)
|
|
||||||
@ -1,56 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://dr0gtcel5qdqg"]
|
|
||||||
|
|
||||||
[node name="Hallway1" type="CSGCombiner3D"]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="Floor" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 1)
|
|
||||||
size = Vector3(8, 1, 3)
|
|
||||||
|
|
||||||
[node name="Floor2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0, 7.5)
|
|
||||||
size = Vector3(3, 1, 10)
|
|
||||||
|
|
||||||
[node name="Floor3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 0, 10.5)
|
|
||||||
size = Vector3(21, 1, 4)
|
|
||||||
|
|
||||||
[node name="Ceiling" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 5, 1)
|
|
||||||
size = Vector3(8, 1, 3)
|
|
||||||
|
|
||||||
[node name="Ceiling2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 5, 7.5)
|
|
||||||
size = Vector3(3, 1, 10)
|
|
||||||
|
|
||||||
[node name="Ceiling3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 5, 10.5)
|
|
||||||
size = Vector3(21, 1, 4)
|
|
||||||
|
|
||||||
[node name="Wall" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2.5, 13)
|
|
||||||
size = Vector3(24, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, -1)
|
|
||||||
size = Vector3(8, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 2.5, 8)
|
|
||||||
size = Vector3(17, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall4" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 2.5, 3)
|
|
||||||
size = Vector3(5, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall5" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.5, 2.5, 6)
|
|
||||||
size = Vector3(1, 6, 15)
|
|
||||||
|
|
||||||
[node name="Wall6" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 2.5, 5.5)
|
|
||||||
size = Vector3(1, 6, 4)
|
|
||||||
|
|
||||||
[node name="Wall7" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 2.5, 11)
|
|
||||||
size = Vector3(1, 6, 5)
|
|
||||||
@ -1,68 +0,0 @@
|
|||||||
[gd_scene format=3 uid="uid://loo81pvlxlhh"]
|
|
||||||
|
|
||||||
[node name="Hallway2" type="CSGCombiner3D"]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="Floor" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 0, 1.5)
|
|
||||||
size = Vector3(3, 1, 14)
|
|
||||||
|
|
||||||
[node name="Floor2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 0, -7)
|
|
||||||
size = Vector3(7, 1, 3)
|
|
||||||
|
|
||||||
[node name="Floor3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.5, 0, -12)
|
|
||||||
size = Vector3(3, 1, 7)
|
|
||||||
|
|
||||||
[node name="Floor4" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 0, -14)
|
|
||||||
size = Vector3(9, 1, 3)
|
|
||||||
|
|
||||||
[node name="Wall" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 2.5, -16)
|
|
||||||
size = Vector3(12, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 2.5, -12)
|
|
||||||
size = Vector3(9, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 2.5, -9)
|
|
||||||
size = Vector3(5, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall4" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.5, 2.5, -5)
|
|
||||||
size = Vector3(5, 6, 1)
|
|
||||||
|
|
||||||
[node name="Wall5" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.5, 2.5, -11)
|
|
||||||
size = Vector3(1, 6, 11)
|
|
||||||
|
|
||||||
[node name="Wall6" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 2.5, -10.5)
|
|
||||||
size = Vector3(1, 6, 2)
|
|
||||||
|
|
||||||
[node name="Wall7" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 2.5, 0)
|
|
||||||
size = Vector3(1, 6, 17)
|
|
||||||
|
|
||||||
[node name="Wall8" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 2.5, 2)
|
|
||||||
size = Vector3(1, 6, 13)
|
|
||||||
|
|
||||||
[node name="Ceiling" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 5, 1.5)
|
|
||||||
size = Vector3(3, 1, 14)
|
|
||||||
|
|
||||||
[node name="Ceiling2" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 5, -7)
|
|
||||||
size = Vector3(7, 1, 3)
|
|
||||||
|
|
||||||
[node name="Ceiling3" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.5, 5, -12)
|
|
||||||
size = Vector3(3, 1, 7)
|
|
||||||
|
|
||||||
[node name="Ceiling4" type="CSGBox3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 5, -14)
|
|
||||||
size = Vector3(9, 1, 3)
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://bootbqfud7nre"
|
|
||||||
path="res://.godot/imported/CircusTent.glb-0b97f9616c16e1aced60e18ac3a57bf0.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_experimental/CircusTent.glb"
|
|
||||||
dest_files=["res://.godot/imported/CircusTent.glb-0b97f9616c16e1aced60e18ac3a57bf0.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/root_script=null
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_name_suffixes=true
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=2
|
|
||||||
meshes/lightmap_texel_size=2.0
|
|
||||||
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=""
|
|
||||||
materials/extract=0
|
|
||||||
materials/extract_format=0
|
|
||||||
materials/extract_path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"Material": {
|
|
||||||
"use_external/enabled": false,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/Material.tres",
|
|
||||||
"use_external/path": "uid://bke0ojvbhqtnt"
|
|
||||||
},
|
|
||||||
"prototype_grid_dark": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_dark.tres",
|
|
||||||
"use_external/path": "uid://bye8jd50tg7wl"
|
|
||||||
},
|
|
||||||
"prototype_grid_orange": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_orange.tres",
|
|
||||||
"use_external/path": "uid://uejce7ra2gcy"
|
|
||||||
},
|
|
||||||
"prototype_grid_red": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_red.tres",
|
|
||||||
"use_external/path": "uid://lvm62memxs5k"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gltf/naming_version=2
|
|
||||||
gltf/embedded_image_handling=0
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="2d_array_texture"
|
|
||||||
type="CompressedTexture2DArray"
|
|
||||||
uid="uid://cwby3s5qgxau"
|
|
||||||
path.bptc="res://.godot/imported/_layout_test.exr-6f5dc0c4020d35a10bdf319a94bdf8f9.bptc.ctexarray"
|
|
||||||
metadata={
|
|
||||||
"imported_formats": ["s3tc_bptc"],
|
|
||||||
"vram_texture": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_experimental/_layout_test.exr"
|
|
||||||
dest_files=["res://.godot/imported/_layout_test.exr-6f5dc0c4020d35a10bdf319a94bdf8f9.bptc.ctexarray"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=2
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/channel_pack=1
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
slices/horizontal=1
|
|
||||||
slices/vertical=2
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://gjyynl2fnvj2"
|
|
||||||
path="res://.godot/imported/_test_level.glb-c15adbbda92bd882ec1270fadbfafbef.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/levels/_experimental/_test_level.glb"
|
|
||||||
dest_files=["res://.godot/imported/_test_level.glb-c15adbbda92bd882ec1270fadbfafbef.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/root_script=null
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_name_suffixes=true
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=2
|
|
||||||
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=""
|
|
||||||
materials/extract=0
|
|
||||||
materials/extract_format=0
|
|
||||||
materials/extract_path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"prototype_grid_dark": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_dark.tres",
|
|
||||||
"use_external/path": "uid://bye8jd50tg7wl"
|
|
||||||
},
|
|
||||||
"prototype_grid_orange": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/levels/_experimental/prototype_grid_orange.tres",
|
|
||||||
"use_external/path": "uid://uejce7ra2gcy"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nodes": {
|
|
||||||
"PATH:Cube": {
|
|
||||||
"generate/occluder": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gltf/naming_version=2
|
|
||||||
gltf/embedded_image_handling=0
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
[gd_resource type="Resource" script_class="LevelInfo" load_steps=2 format=3 uid="uid://dc6x0whf4601"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dhaus6vq5oigj" path="res://src/core/world/level/level_info.gd" id="1_3pj77"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("1_3pj77")
|
|
||||||
level_path = "uid://srvm3v1grugk"
|
|
||||||
level_id = &"LayoutTest"
|
|
||||||
metadata/_custom_type_script = "uid://dhaus6vq5oigj"
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bye8jd50tg7wl"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dw3af4ir446rk" path="res://assets/materials/dev/dark/texture_13.png" id="1_pfrvh"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_name = "prototype_grid_dark"
|
|
||||||
albedo_texture = ExtResource("1_pfrvh")
|
|
||||||
roughness = 0.5
|
|
||||||
uv1_scale = Vector3(2, 2, 1)
|
|
||||||
uv1_offset = Vector3(0, -1, 0)
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://uejce7ra2gcy"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://assets/materials/dev/orange/texture_02.png" id="1_67eg5"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_name = "prototype_grid_orange"
|
|
||||||
albedo_texture = ExtResource("1_67eg5")
|
|
||||||
roughness = 0.5
|
|
||||||
uv1_scale = Vector3(2, 2, 1)
|
|
||||||
uv1_offset = Vector3(0, -1, 0)
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://lvm62memxs5k"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bwo1s4wl34tyt" path="res://assets/materials/dev/red/texture_02.png" id="1_vv0ty"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_name = "prototype_grid_red"
|
|
||||||
albedo_texture = ExtResource("1_vv0ty")
|
|
||||||
roughness = 0.5
|
|
||||||
uv1_scale = Vector3(2, 2, 1)
|
|
||||||
uv1_offset = Vector3(0, -1, 0)
|
|
||||||
@ -1,423 +0,0 @@
|
|||||||
[gd_scene load_steps=28 format=3 uid="uid://bf4p7da201ev5"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dk4pqgs08xphi" path="res://src/core/camera/camera_shaker/camera_trauma_causer.gd" id="1_3ajg4"]
|
|
||||||
[ext_resource type="Script" uid="uid://cigop0ivp5vvu" path="res://src/core/world/level/level.gd" id="1_8yfr8"]
|
|
||||||
[ext_resource type="Environment" uid="uid://xe70va0pjc6c" path="res://resources/game_environment.tres" id="1_f6q7b"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c0jearfhlqcvr" path="res://src/gameplay/hazards/saw/saw.tscn" id="2_amnsq"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://u56f1ks46ob6" path="res://src/gameplay/hazards/saw/saw.blend" id="3_f6q7b"]
|
|
||||||
[ext_resource type="Script" uid="uid://c2w177bb5r70x" path="res://addons/controller_icons/objects/ControllerIconTexture.gd" id="4_8yfr8"]
|
|
||||||
[ext_resource type="Script" uid="uid://cy2248x8tuoj4" path="res://src/gameplay/illusionary/illusionary_wall.gd" id="5_7g5fl"]
|
|
||||||
[ext_resource type="Shader" uid="uid://dvpk3m7f8x5pc" path="res://src/vfx/shaders/dissolving_wall/dissolving_wall.gdshader" id="6_5mjhv"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://jpmuawwwmwci" path="res://src/vfx/shaders/dissolving_wall/dissolving_wall_noise.tres" id="7_wa30a"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bcu5jlicrvor3" path="res://src/core/chapter/chapter_area.tscn" id="8_itwv6"]
|
|
||||||
[ext_resource type="Script" uid="uid://chm33pvd77o5e" path="res://src/core/dialogue/voiceline_component.gd" id="9_b8a7g"]
|
|
||||||
[ext_resource type="Script" uid="uid://3hlvt5k34xva" path="res://src/core/spawnpoint/player_spawn_point.gd" id="10_amnsq"]
|
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_j5wjh"]
|
|
||||||
height = 2.75
|
|
||||||
radius = 0.8
|
|
||||||
|
|
||||||
[sub_resource type="Texture2D" id="Texture2D_mfdv2"]
|
|
||||||
resource_local_to_scene = false
|
|
||||||
resource_name = ""
|
|
||||||
script = ExtResource("4_8yfr8")
|
|
||||||
path = "run"
|
|
||||||
metadata/_custom_type_script = "uid://c2w177bb5r70x"
|
|
||||||
|
|
||||||
[sub_resource type="Texture2D" id="Texture2D_iotsf"]
|
|
||||||
resource_local_to_scene = false
|
|
||||||
resource_name = ""
|
|
||||||
script = ExtResource("4_8yfr8")
|
|
||||||
path = "crouch"
|
|
||||||
metadata/_custom_type_script = "uid://c2w177bb5r70x"
|
|
||||||
|
|
||||||
[sub_resource type="Texture2D" id="Texture2D_hve3p"]
|
|
||||||
resource_local_to_scene = false
|
|
||||||
resource_name = ""
|
|
||||||
script = ExtResource("4_8yfr8")
|
|
||||||
path = "jump"
|
|
||||||
metadata/_custom_type_script = "uid://c2w177bb5r70x"
|
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_lc2xo"]
|
|
||||||
|
|
||||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_215e1"]
|
|
||||||
gradient = SubResource("Gradient_lc2xo")
|
|
||||||
fill_to = Vector2(0.66453, 0.262821)
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_215e1"]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("6_5mjhv")
|
|
||||||
shader_parameter/albedo = Color(1, 1, 1, 1)
|
|
||||||
shader_parameter/texture_albedo = SubResource("GradientTexture2D_215e1")
|
|
||||||
shader_parameter/texture_dissolve = ExtResource("7_wa30a")
|
|
||||||
shader_parameter/alpha_scissor_threshold = 0.0
|
|
||||||
shader_parameter/roughness = 0.0
|
|
||||||
shader_parameter/metallic_texture_channel = Vector4(0, 0, 0, 0)
|
|
||||||
shader_parameter/specular = 0.0
|
|
||||||
shader_parameter/metallic = 0.0
|
|
||||||
shader_parameter/uv1_blend_sharpness = 1.0
|
|
||||||
shader_parameter/uv1_scale = Vector3(1, 1, 1)
|
|
||||||
shader_parameter/uv1_offset = Vector3(0, 0, 0)
|
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_mfdv2"]
|
|
||||||
size = Vector3(4, 3, 1)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lc2xo"]
|
|
||||||
size = Vector3(4, 3, 5)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_iotsf"]
|
|
||||||
size = Vector3(4, 3, 1)
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lc2xo"]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("6_5mjhv")
|
|
||||||
shader_parameter/albedo = Color(1, 1, 1, 1)
|
|
||||||
shader_parameter/texture_albedo = SubResource("GradientTexture2D_215e1")
|
|
||||||
shader_parameter/texture_dissolve = ExtResource("7_wa30a")
|
|
||||||
shader_parameter/alpha_scissor_threshold = 0.0
|
|
||||||
shader_parameter/roughness = 0.0
|
|
||||||
shader_parameter/metallic_texture_channel = Vector4(0, 0, 0, 0)
|
|
||||||
shader_parameter/specular = 0.0
|
|
||||||
shader_parameter/metallic = 0.0
|
|
||||||
shader_parameter/uv1_blend_sharpness = 1.0
|
|
||||||
shader_parameter/uv1_scale = Vector3(1, 1, 1)
|
|
||||||
shader_parameter/uv1_offset = Vector3(0, 0, 0)
|
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_lc2xo"]
|
|
||||||
size = Vector3(4, 3, 4)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_215e1"]
|
|
||||||
size = Vector3(5, 3, 5)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_7sc4i"]
|
|
||||||
size = Vector3(4, 3, 4)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_hve3p"]
|
|
||||||
size = Vector3(31, 8, 21)
|
|
||||||
|
|
||||||
[node name="TestAreas" type="Node3D"]
|
|
||||||
script = ExtResource("1_8yfr8")
|
|
||||||
metadata/_custom_type_script = "uid://cigop0ivp5vvu"
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = ExtResource("1_f6q7b")
|
|
||||||
|
|
||||||
[node name="IntroArea" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="Blockout" type="Node3D" parent="IntroArea"]
|
|
||||||
|
|
||||||
[node name="Outline" type="CSGCombiner3D" parent="IntroArea/Blockout"]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="IntroArea/Blockout/Outline"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -4.5)
|
|
||||||
flip_faces = true
|
|
||||||
size = Vector3(4, 3, 11)
|
|
||||||
|
|
||||||
[node name="CSGBox3D2" type="CSGBox3D" parent="IntroArea/Blockout/Outline"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, -22)
|
|
||||||
flip_faces = true
|
|
||||||
size = Vector3(31, 14, 25)
|
|
||||||
|
|
||||||
[node name="TEMPRamps" type="CSGCombiner3D" parent="IntroArea/Blockout"]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="Ramp" type="CSGBox3D" parent="IntroArea/Blockout/TEMPRamps"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, -12.1053, 2.01959, -23.9749)
|
|
||||||
size = Vector3(4, 1, 10)
|
|
||||||
|
|
||||||
[node name="Ramp2" type="CSGBox3D" parent="IntroArea/Blockout/TEMPRamps"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.965926, -0.258819, 0, 0.258819, 0.965926, -8.1053, 2.01959, -23.9749)
|
|
||||||
size = Vector3(4, 1, 10)
|
|
||||||
|
|
||||||
[node name="Ramp3" type="CSGBox3D" parent="IntroArea/Blockout/TEMPRamps"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.984808, -0.173648, 0, 0.173648, 0.984808, -5.1053, 1.71959, -23.9749)
|
|
||||||
size = Vector3(2, 1, 10)
|
|
||||||
|
|
||||||
[node name="Ramp4" type="CSGBox3D" parent="IntroArea/Blockout/TEMPRamps"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.996195, -0.0871558, 0, 0.0871558, 0.996195, -3.1053, 2.31959, -23.9749)
|
|
||||||
size = Vector3(2, 1, 10)
|
|
||||||
|
|
||||||
[node name="CrouchAndStairTest" type="CSGCombiner3D" parent="IntroArea/Blockout"]
|
|
||||||
use_collision = true
|
|
||||||
|
|
||||||
[node name="CSGBox3D3" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.10534, 0.919588, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D4" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.10534, 1.11959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D5" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.10534, 1.31959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D6" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.10534, 1.51959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D7" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.10534, 1.71959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D8" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.10534, 1.91959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D9" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.10534, 2.11959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D10" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.10534, 2.31959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D11" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1053, 2.51959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D12" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.1053, 2.71959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CSGBox3D13" type="CSGBox3D" parent="IntroArea/Blockout/CrouchAndStairTest"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.1053, 2.91959, -15.1089)
|
|
||||||
|
|
||||||
[node name="CameraTraumaCauser" type="Marker3D" parent="IntroArea/Blockout"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 1, -31)
|
|
||||||
script = ExtResource("1_3ajg4")
|
|
||||||
continues_shake = true
|
|
||||||
distance_falloff = 0.392292
|
|
||||||
max_shake_intensity = 0.1
|
|
||||||
metadata/_custom_type_script = "uid://dk4pqgs08xphi"
|
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="IntroArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, -24)
|
|
||||||
omni_range = 20.0
|
|
||||||
|
|
||||||
[node name="Saw" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw2" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.2, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw3" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.4, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw4" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.6, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw5" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.8, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw6" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="Saw7" parent="IntroArea" instance=ExtResource("2_amnsq")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0.5, -25)
|
|
||||||
|
|
||||||
[node name="SawSkin" parent="IntroArea/Saw7" index="0"]
|
|
||||||
transform = Transform3D(-0.4491593, 0.82250214, 0, -0.82250214, -0.4491593, 0, 0, 0, 1, 0, 0, 0)
|
|
||||||
|
|
||||||
[node name="SawSkin2" parent="IntroArea/Saw7/SawSkin" index="1" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.907697, -0.41963, -2.22045e-16, 0.41963, 0.907697, 0, -3.55271e-15, -3.55271e-15, 1, 0, 0, 0.0999999)
|
|
||||||
|
|
||||||
[node name="SawSkin3" parent="IntroArea/Saw7/SawSkin" index="2" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.438149, 0.898906, -3.55271e-15, -0.898906, 0.438149, 0, 3.55271e-15, 1.77636e-15, 1, 0, 0, 0.2)
|
|
||||||
|
|
||||||
[node name="SawSkin4" parent="IntroArea/Saw7/SawSkin" index="3" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.575553, 0.817769, 3.55271e-15, -0.817769, -0.575553, 5.32907e-15, 7.10543e-15, 0, 1, 0, 0, 0.3)
|
|
||||||
|
|
||||||
[node name="SawSkin5" parent="IntroArea/Saw7/SawSkin" index="4" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.0698509, 0.997561, 3.55271e-15, -0.997561, 0.0698509, 6.38378e-15, 7.32747e-15, -7.10543e-15, 1, 0, 0, 0.4)
|
|
||||||
|
|
||||||
[node name="SawSkin6" parent="IntroArea/Saw7/SawSkin" index="5" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.834063, 0.551677, 0, -0.551677, 0.834063, 7.10543e-15, 1.42109e-14, -6.21725e-15, 1, 0, 0, 0.5)
|
|
||||||
|
|
||||||
[node name="SawSkin7" parent="IntroArea/Saw7/SawSkin" index="6" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.187532, -0.982263, -6.21725e-15, 0.982263, 0.187532, -3.55271e-15, 1.06581e-14, -7.77156e-15, 1, 0, 0, 0.599999)
|
|
||||||
|
|
||||||
[node name="SawSkin8" parent="IntroArea/Saw7/SawSkin" index="7" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.997299, 0.0735269, 3.55271e-15, -0.0735269, -0.997299, -5.32907e-15, -3.55271e-15, -5.32907e-15, 1, 0, 0, 0.599999)
|
|
||||||
|
|
||||||
[node name="SawSkin9" parent="IntroArea/Saw7/SawSkin" index="8" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.861875, -0.507134, -7.10543e-15, 0.507134, 0.861875, 3.55271e-15, -1.06581e-14, 0, 1, 0, 0, 0.699999)
|
|
||||||
|
|
||||||
[node name="SawSkin10" parent="IntroArea/Saw7/SawSkin" index="9" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.642194, 0.766551, 7.10543e-15, -0.766551, -0.642194, -8.88178e-16, -7.10543e-15, 0, 1, 0, 0, 0.799999)
|
|
||||||
|
|
||||||
[node name="SawSkin11" parent="IntroArea/Saw7/SawSkin" index="10" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.986419, -0.16429, -7.10543e-15, 0.16429, 0.986419, 0, -7.10543e-15, -3.55271e-15, 1, 0, 0, 0.899999)
|
|
||||||
|
|
||||||
[node name="SawSkin12" parent="IntroArea/Saw7/SawSkin" index="11" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.962893, 0.269909, 7.10543e-15, -0.269909, -0.962893, 7.77156e-16, -1.06581e-14, -2.66454e-15, 1, 0, 0, 0.999999)
|
|
||||||
|
|
||||||
[node name="SawSkin13" parent="IntroArea/Saw7/SawSkin" index="12" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.569512, -0.821991, -3.55271e-15, 0.821991, 0.569512, -7.10543e-15, -1.42109e-14, -4.44089e-15, 1, 0, 0, 1.1)
|
|
||||||
|
|
||||||
[node name="SawSkin14" parent="IntroArea/Saw7/SawSkin" index="13" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.620221, 0.784436, -1.06581e-14, -0.784436, 0.620221, 5.32907e-15, -1.42109e-14, -5.32907e-15, 1, 0, 0, 1.2)
|
|
||||||
|
|
||||||
[node name="SawSkin15" parent="IntroArea/Saw7/SawSkin" index="14" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.978, -0.208642, 1.06581e-14, 0.208642, -0.978, 3.10862e-15, -1.42109e-14, -3.55271e-15, 1, 0, 0, 1.3)
|
|
||||||
|
|
||||||
[node name="SawSkin16" parent="IntroArea/Saw7/SawSkin" index="15" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.801411, 0.598117, 0, -0.598117, -0.801411, 0, -3.55271e-15, -3.55271e-15, 1, 0, 0, 1.4)
|
|
||||||
|
|
||||||
[node name="SawSkin17" parent="IntroArea/Saw7/SawSkin" index="16" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.61442, -0.788984, 3.55271e-15, 0.788984, -0.61442, 4.44089e-16, 5.32907e-15, 0, 1, 0, 0, 1.5)
|
|
||||||
|
|
||||||
[node name="SawSkin18" parent="IntroArea/Saw7/SawSkin" index="17" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.394174, -0.919041, -3.55271e-15, 0.919041, 0.394174, -5.9952e-15, 3.55271e-15, 0, 1, 0, 0, 1.6)
|
|
||||||
|
|
||||||
[node name="SawSkin19" parent="IntroArea/Saw7/SawSkin" index="18" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.274452, -0.961605, -3.55271e-15, 0.961605, -0.274452, -7.10543e-15, 7.99361e-15, -7.10543e-15, 1, 0, 0, 1.7)
|
|
||||||
|
|
||||||
[node name="SawSkin20" parent="IntroArea/Saw7/SawSkin" index="19" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.93005, -0.367446, 0, 0.367446, -0.93005, -7.10543e-15, 1.77636e-14, -3.55271e-15, 1, 0, 0, 1.8)
|
|
||||||
|
|
||||||
[node name="SawSkin21" parent="IntroArea/Saw7/SawSkin" index="20" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.0194621, 0.999816, 7.10543e-15, -0.999816, 0.0194621, 4.66294e-15, 1.07692e-14, -7.10543e-15, 1, 0, 0, 1.9)
|
|
||||||
|
|
||||||
[node name="SawSkin22" parent="IntroArea/Saw7/SawSkin" index="21" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.96059, -0.277995, -3.55271e-15, 0.277995, 0.96059, 4.44089e-15, -7.10543e-15, -5.32907e-15, 1, 0, 0, 1.9)
|
|
||||||
|
|
||||||
[node name="SawSkin23" parent="IntroArea/Saw7/SawSkin" index="22" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.738498, 0.674265, 7.10543e-15, -0.674265, -0.738498, -2.22045e-15, -1.06581e-14, 0, 1, 0, 0, 2)
|
|
||||||
|
|
||||||
[node name="SawSkin24" parent="IntroArea/Saw7/SawSkin" index="23" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.469959, -0.882696, -7.10543e-15, 0.882696, 0.469959, -6.66134e-16, -5.32907e-15, 3.55271e-15, 1, 0, 0, 2.1)
|
|
||||||
|
|
||||||
[node name="SawSkin25" parent="IntroArea/Saw7/SawSkin" index="24" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.931191, 0.364552, 7.10543e-15, -0.364552, -0.931191, 1.33227e-15, -7.10543e-15, -3.55271e-15, 1, 0, 0, 2.2)
|
|
||||||
|
|
||||||
[node name="SawSkin26" parent="IntroArea/Saw7/SawSkin" index="25" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(0.886351, -0.463031, -7.10543e-15, 0.463031, 0.886351, -2.44249e-15, -1.06581e-14, 0, 1, 0, 0, 2.3)
|
|
||||||
|
|
||||||
[node name="SawSkin27" parent="IntroArea/Saw7/SawSkin" index="26" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.38739, 0.921924, 3.55271e-15, -0.921924, -0.38739, 7.54952e-15, -1.24345e-14, -7.10543e-15, 1, 0, 0, 2.4)
|
|
||||||
|
|
||||||
[node name="SawSkin28" parent="IntroArea/Saw7/SawSkin" index="27" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(-0.768913, -0.639366, 1.06581e-14, 0.639366, -0.768913, -3.33067e-15, -1.06581e-14, 0, 1, 0, 0, 2.5)
|
|
||||||
|
|
||||||
[node name="SawSkin29" parent="IntroArea/Saw7/SawSkin" index="28" instance=ExtResource("3_f6q7b")]
|
|
||||||
transform = Transform3D(1.00001, 0.00207399, -1.06581e-14, -0.00207399, 1.00001, -5.55112e-15, -1.77636e-14, -3.55271e-15, 0.999999, 0, 0, 2.6)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="IntroArea/Saw7/DeathArea" index="0"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 5.96046e-08, 1.275)
|
|
||||||
shape = SubResource("CylinderShape3D_j5wjh")
|
|
||||||
|
|
||||||
[node name="RunPrompt" type="Sprite3D" parent="IntroArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.59307, -4.14257)
|
|
||||||
cast_shadow = 0
|
|
||||||
gi_mode = 0
|
|
||||||
visibility_range_begin = 0.75
|
|
||||||
visibility_range_begin_margin = 0.25
|
|
||||||
visibility_range_end = 5.0
|
|
||||||
visibility_range_end_margin = 1.0
|
|
||||||
visibility_range_fade_mode = 1
|
|
||||||
double_sided = false
|
|
||||||
texture_filter = 1
|
|
||||||
texture = SubResource("Texture2D_mfdv2")
|
|
||||||
|
|
||||||
[node name="CrouchPrompt" type="Sprite3D" parent="IntroArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.59307, -18.1426)
|
|
||||||
cast_shadow = 0
|
|
||||||
gi_mode = 0
|
|
||||||
visibility_range_begin = 0.75
|
|
||||||
visibility_range_begin_margin = 0.25
|
|
||||||
visibility_range_end = 5.0
|
|
||||||
visibility_range_end_margin = 1.0
|
|
||||||
visibility_range_fade_mode = 1
|
|
||||||
double_sided = false
|
|
||||||
texture_filter = 1
|
|
||||||
texture = SubResource("Texture2D_iotsf")
|
|
||||||
|
|
||||||
[node name="JumpPrompt" type="Sprite3D" parent="IntroArea"]
|
|
||||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -3, 3.59307, -19.1426)
|
|
||||||
cast_shadow = 0
|
|
||||||
gi_mode = 0
|
|
||||||
visibility_range_begin = 0.75
|
|
||||||
visibility_range_begin_margin = 0.25
|
|
||||||
visibility_range_end = 5.0
|
|
||||||
visibility_range_end_margin = 1.0
|
|
||||||
visibility_range_fade_mode = 1
|
|
||||||
double_sided = false
|
|
||||||
texture_filter = 1
|
|
||||||
texture = SubResource("Texture2D_hve3p")
|
|
||||||
|
|
||||||
[node name="IllusionaryWall" type="Node3D" parent="IntroArea" node_paths=PackedStringArray("static_body", "mesh", "appear_area", "disappear_area")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -8)
|
|
||||||
script = ExtResource("5_7g5fl")
|
|
||||||
static_body = NodePath("BlockingWall")
|
|
||||||
mesh = NodePath("DissolvingMesh")
|
|
||||||
appear_area = NodePath("AppearArea")
|
|
||||||
disappear_area = NodePath("AppearArea")
|
|
||||||
metadata/_custom_type_script = "uid://cy2248x8tuoj4"
|
|
||||||
|
|
||||||
[node name="DissolvingMesh" type="MeshInstance3D" parent="IntroArea/IllusionaryWall"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0.00292015)
|
|
||||||
material_override = SubResource("ShaderMaterial_215e1")
|
|
||||||
mesh = SubResource("BoxMesh_mfdv2")
|
|
||||||
|
|
||||||
[node name="AppearArea" type="Area3D" parent="IntroArea/IllusionaryWall"]
|
|
||||||
process_mode = 1
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 3
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="IntroArea/IllusionaryWall/AppearArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
|
||||||
shape = SubResource("BoxShape3D_lc2xo")
|
|
||||||
debug_color = Color(0.933125, 2.06e-05, 0.645944, 0.42)
|
|
||||||
|
|
||||||
[node name="BlockingWall" type="StaticBody3D" parent="IntroArea/IllusionaryWall"]
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="IntroArea/IllusionaryWall/BlockingWall"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
|
||||||
shape = SubResource("BoxShape3D_iotsf")
|
|
||||||
|
|
||||||
[node name="IllusionaryWall2" type="Node3D" parent="IntroArea" node_paths=PackedStringArray("static_body", "mesh", "appear_area", "disappear_area")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 1, -32.5)
|
|
||||||
script = ExtResource("5_7g5fl")
|
|
||||||
inverse = true
|
|
||||||
static_body = NodePath("BlockingWall")
|
|
||||||
mesh = NodePath("DissolvingMesh")
|
|
||||||
appear_area = NodePath("AppearArea")
|
|
||||||
disappear_area = NodePath("AppearArea")
|
|
||||||
metadata/_custom_type_script = "uid://cy2248x8tuoj4"
|
|
||||||
|
|
||||||
[node name="DissolvingMesh" type="MeshInstance3D" parent="IntroArea/IllusionaryWall2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
|
||||||
material_override = SubResource("ShaderMaterial_lc2xo")
|
|
||||||
mesh = SubResource("BoxMesh_lc2xo")
|
|
||||||
|
|
||||||
[node name="AppearArea" type="Area3D" parent="IntroArea/IllusionaryWall2"]
|
|
||||||
process_mode = 1
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 3
|
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="IntroArea/IllusionaryWall2/AppearArea"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0.5, 0.5)
|
|
||||||
shape = SubResource("BoxShape3D_215e1")
|
|
||||||
debug_color = Color(0.933125, 2.06e-05, 0.645944, 0.42)
|
|
||||||
|
|
||||||
[node name="BlockingWall" type="StaticBody3D" parent="IntroArea/IllusionaryWall2"]
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="IntroArea/IllusionaryWall2/BlockingWall"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
|
||||||
shape = SubResource("BoxShape3D_7sc4i")
|
|
||||||
|
|
||||||
[node name="ChapterArea" parent="." instance=ExtResource("8_itwv6")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -21)
|
|
||||||
chapter_index = 1
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="ChapterArea"]
|
|
||||||
shape = SubResource("BoxShape3D_hve3p")
|
|
||||||
|
|
||||||
[node name="VoicelineComponent" type="Node" parent="."]
|
|
||||||
script = ExtResource("9_b8a7g")
|
|
||||||
metadata/_custom_type_script = "uid://chm33pvd77o5e"
|
|
||||||
|
|
||||||
[node name="SpawnPoints" type="Node" parent="."]
|
|
||||||
|
|
||||||
[node name="PlayerSpawnPoint" type="Marker3D" parent="SpawnPoints"]
|
|
||||||
script = ExtResource("10_amnsq")
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[node name="PlayerSpawnPoint2" type="Marker3D" parent="SpawnPoints"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -15)
|
|
||||||
script = ExtResource("10_amnsq")
|
|
||||||
metadata/_custom_type_script = "uid://3hlvt5k34xva"
|
|
||||||
|
|
||||||
[editable path="IntroArea/Saw7"]
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://do54no1h1pv8i"
|
|
||||||
path="res://.godot/imported/circus_tent_inside.glb-f2d16e6fd6c77c2210ee6ff3ce64f43d.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/models/circus_tent/circus_tent_inside.glb"
|
|
||||||
dest_files=["res://.godot/imported/circus_tent_inside.glb-f2d16e6fd6c77c2210ee6ff3ce64f43d.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/root_script=null
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_name_suffixes=true
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=2
|
|
||||||
meshes/lightmap_texel_size=2.0
|
|
||||||
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=""
|
|
||||||
materials/extract=0
|
|
||||||
materials/extract_format=0
|
|
||||||
materials/extract_path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"prototype_grid_orange": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/prototype_grid_orange.tres",
|
|
||||||
"use_external/path": "uid://dknefw4cwovq"
|
|
||||||
},
|
|
||||||
"prototype_grid_red": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://assets/materials/cloth/red_cloth.tres",
|
|
||||||
"use_external/path": "uid://d2wd6sxagg32u"
|
|
||||||
},
|
|
||||||
"skylight": {
|
|
||||||
"use_external/enabled": false,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/skylight.tres",
|
|
||||||
"use_external/path": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gltf/naming_version=0
|
|
||||||
gltf/embedded_image_handling=0
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://btcrglmmn74yk"
|
|
||||||
path="res://.godot/imported/circus_tent_outside.glb-f6abe07355e411c161c7737a0c199717.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://_development/ayuroo/models/circus_tent/circus_tent_outside.glb"
|
|
||||||
dest_files=["res://.godot/imported/circus_tent_outside.glb-f6abe07355e411c161c7737a0c199717.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/root_script=null
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_name_suffixes=true
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
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=""
|
|
||||||
materials/extract=0
|
|
||||||
materials/extract_format=0
|
|
||||||
materials/extract_path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"prototype_grid_orange": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/prototype_grid_orange.tres",
|
|
||||||
"use_external/path": "uid://dknefw4cwovq"
|
|
||||||
},
|
|
||||||
"prototype_grid_red": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/fallback_path": "res://_development/ayuroo/models/circus_tent/prototype_grid_red.tres",
|
|
||||||
"use_external/path": "uid://dictg13b71nlf"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gltf/naming_version=2
|
|
||||||
gltf/embedded_image_handling=0
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dknefw4cwovq"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://12e0onm52r6b" path="res://assets/materials/dev/orange/texture_02.png" id="1_8tkn2"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_name = "prototype_grid_orange"
|
|
||||||
albedo_texture = ExtResource("1_8tkn2")
|
|
||||||
roughness = 0.97
|
|
||||||
uv1_scale = Vector3(2, 2, 1)
|
|
||||||
uv1_offset = Vector3(0, -1, 0)
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dictg13b71nlf"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bwo1s4wl34tyt" path="res://assets/materials/dev/red/texture_02.png" id="1_gjyc6"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_name = "prototype_grid_red"
|
|
||||||
albedo_texture = ExtResource("1_gjyc6")
|
|
||||||
roughness = 0.97
|
|
||||||
uv1_scale = Vector3(2, 2, 1)
|
|
||||||
uv1_offset = Vector3(0, -1, 0)
|
|
||||||
@ -1,66 +0,0 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://b3wpm3qll2e6g"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://41co2svrlbkc" path="res://src/ui/rich_effects/loading_text_effect.gd" id="1_f8j4s"]
|
|
||||||
[ext_resource type="Script" uid="uid://ysronki6hr11" path="res://src/ui/rich_effects/loading_text_effect_v2.gd" id="2_yf0e7"]
|
|
||||||
|
|
||||||
[sub_resource type="RichTextEffect" id="RichTextEffect_pk08u"]
|
|
||||||
resource_name = "RichTextLoading"
|
|
||||||
script = ExtResource("1_f8j4s")
|
|
||||||
metadata/_custom_type_script = "uid://41co2svrlbkc"
|
|
||||||
|
|
||||||
[sub_resource type="RichTextEffect" id="RichTextEffect_3pfe6"]
|
|
||||||
resource_name = "RichTextLoadingV2"
|
|
||||||
script = ExtResource("2_yf0e7")
|
|
||||||
metadata/_custom_type_script = "uid://ysronki6hr11"
|
|
||||||
|
|
||||||
[node name="Effects" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Label" type="RichTextLabel" parent="."]
|
|
||||||
clip_contents = false
|
|
||||||
layout_mode = 0
|
|
||||||
offset_left = 122.0
|
|
||||||
offset_top = 91.0
|
|
||||||
offset_right = 197.0
|
|
||||||
offset_bottom = 114.0
|
|
||||||
bbcode_enabled = true
|
|
||||||
text = "[loading]Loading...[/loading]"
|
|
||||||
fit_content = true
|
|
||||||
autowrap_mode = 0
|
|
||||||
custom_effects = [SubResource("RichTextEffect_pk08u")]
|
|
||||||
|
|
||||||
[node name="Panel" type="Panel" parent="Label"]
|
|
||||||
show_behind_parent = true
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Label2" type="RichTextLabel" parent="."]
|
|
||||||
clip_contents = false
|
|
||||||
layout_mode = 0
|
|
||||||
offset_left = 122.0
|
|
||||||
offset_top = 142.0
|
|
||||||
offset_right = 197.0
|
|
||||||
offset_bottom = 165.0
|
|
||||||
bbcode_enabled = true
|
|
||||||
text = "[loadingv2]Loading...[/loadingv2]"
|
|
||||||
fit_content = true
|
|
||||||
autowrap_mode = 0
|
|
||||||
custom_effects = [SubResource("RichTextEffect_3pfe6")]
|
|
||||||
|
|
||||||
[node name="Panel" type="Panel" parent="Label2"]
|
|
||||||
show_behind_parent = true
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="300mm"
|
|
||||||
height="300mm"
|
|
||||||
viewBox="0 0 300 300"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
sodipodi:docname="CloudsDriverIcon.svg"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="true"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:document-units="mm"
|
|
||||||
inkscape:zoom="0.62178608"
|
|
||||||
inkscape:cx="391.61378"
|
|
||||||
inkscape:cy="1083.17"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="1912"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<defs
|
|
||||||
id="defs1">
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect2"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
</defs>
|
|
||||||
<path
|
|
||||||
id="path1"
|
|
||||||
style="fill:#000000;fill-opacity:0;stroke:#e6e6e6;stroke-width:40.7049;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
|
||||||
d="m 107.63242,116.83678 c -35.648665,0.0768 -54.17281,40.5211 -45.353591,74.58516 -47.89015,14.64454 -37.757808,84.71214 -37.757808,84.71214 82.309479,-0.92951 164.765009,1.06968 247.040219,0.4444 3.26145,-58.36035 -23.37281,-76.52904 -97.24363,-81.69025 1.5e-4,-33.86727 -28.63176,-78.05142 -66.68519,-78.05145 z"
|
|
||||||
inkscape:label="Clouds"
|
|
||||||
sodipodi:nodetypes="cccccc"
|
|
||||||
inkscape:path-effect="#path-effect2"
|
|
||||||
inkscape:original-d="m 107.63242,116.83678 c -35.648665,0.0768 -54.17281,40.5211 -45.353591,74.58516 -47.89015,14.64454 -37.757808,84.71214 -37.757808,84.71214 82.309479,-0.92951 164.765009,1.06968 247.040219,0.4444 3.26145,-58.36035 -23.37281,-76.52904 -97.24363,-81.69025 1.5e-4,-33.86727 -28.63176,-78.05142 -66.68519,-78.05145 z" />
|
|
||||||
<path
|
|
||||||
id="path4"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8588;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 226.95252,156.95821 c 15.15331,-10.49881 20.38772,-26.41152 21.06398,-44.70033 1.086,-32.172214 -24.36333,-59.073896 -56.84261,-60.086559 -20.34742,-0.609593 -37.46401,6.164106 -48.74725,22.969734"
|
|
||||||
sodipodi:nodetypes="cccc" />
|
|
||||||
<path
|
|
||||||
id="path2"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8584;stroke-linecap:round;stroke-miterlimit:3.2;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 142.62304,67.212668 c -5.22903,-6.422132 -1.84287,-1.673099 -9.51664,-9.385412 m 29.79425,1.217576"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
<path
|
|
||||||
id="path2-8"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8584;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3.2;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
|
||||||
d="m 187.80165,43.516692 c 0.41414,-8.248856 -0.25037,-2.465605 -0.79247,-13.290068 M 208.4025,50.76432"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
<path
|
|
||||||
id="path2-8-5"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8584;stroke-linecap:round;stroke-miterlimit:3.2;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
|
||||||
d="m 233.97325,61.313695 c 6.31526,-5.404057 1.63011,-1.883634 9.17011,-9.753551 m -0.28878,29.537347"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
<path
|
|
||||||
id="path2-8-5-1"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8584;stroke-linecap:round;stroke-miterlimit:3.2;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 255.77387,109.1385 c 8.32022,0.51722 2.49326,-0.21598 13.4297,-0.61232 m -21.09415,20.92081"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
<path
|
|
||||||
id="path2-8-5-1-7"
|
|
||||||
style="fill:#ff6600;fill-opacity:0;stroke:#fc7f7f;stroke-width:40.8584;stroke-linecap:round;stroke-miterlimit:3.2;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 237.5067,154.62009 c 5.44552,6.24299 1.89903,1.61035 9.8321,9.06083 m -29.82074,-0.21935"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 4.6 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://b404vxesyde33"
|
|
||||||
path="res://.godot/imported/CloudsDriverIcon.svg-faa29143230a8cbda673ccfc6652c810.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/CloudsDriverIcon.svg"
|
|
||||||
dest_files=["res://.godot/imported/CloudsDriverIcon.svg-faa29143230a8cbda673ccfc6652c810.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=true
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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=128
|
|
||||||
detect_3d/compress_to=0
|
|
||||||
svg/scale=1.0
|
|
||||||
editor/scale_with_editor_scale=false
|
|
||||||
editor/convert_colors_with_editor_theme=false
|
|
||||||
@ -1,233 +0,0 @@
|
|||||||
#define SCENE_DATA_FLAGS_USE_AMBIENT_LIGHT (1 << 0)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_AMBIENT_CUBEMAP (1 << 1)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_REFLECTION_CUBEMAP (1 << 2)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_ROUGHNESS_LIMITER (1 << 3)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_FOG (1 << 4)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_UV2_MATERIAL (1 << 5)
|
|
||||||
#define SCENE_DATA_FLAGS_USE_PANCAKE_SHADOWS (1 << 6)
|
|
||||||
#define SCENE_DATA_FLAGS_IN_SHADOW_PASS (1 << 7)
|
|
||||||
#define MAX_VIEWS 2
|
|
||||||
|
|
||||||
#define GODOT_VERSION_MAJOR 4
|
|
||||||
#define GODOT_VERSION_MINOR 5
|
|
||||||
|
|
||||||
|
|
||||||
struct SceneData {
|
|
||||||
#if (GODOT_VERSION_MAJOR == 4) && (GODOT_VERSION_MINOR == 4)
|
|
||||||
|
|
||||||
// godot version 4.4
|
|
||||||
highp mat4 projection_matrix;
|
|
||||||
highp mat4 inv_projection_matrix;
|
|
||||||
highp mat4 inv_view_matrix;
|
|
||||||
highp mat4 view_matrix;
|
|
||||||
|
|
||||||
// only used for multiview
|
|
||||||
highp mat4 projection_matrix_view[MAX_VIEWS];
|
|
||||||
highp mat4 inv_projection_matrix_view[MAX_VIEWS];
|
|
||||||
highp vec4 eye_offset[MAX_VIEWS];
|
|
||||||
|
|
||||||
// Used for billboards to cast correct shadows.
|
|
||||||
highp mat4 main_cam_inv_view_matrix;
|
|
||||||
|
|
||||||
highp vec2 viewport_size;
|
|
||||||
highp vec2 screen_pixel_size;
|
|
||||||
|
|
||||||
// Use vec4s because std140 doesn't play nice with vec2s, z and w are wasted.
|
|
||||||
highp vec4 directional_penumbra_shadow_kernel[32];
|
|
||||||
highp vec4 directional_soft_shadow_kernel[32];
|
|
||||||
highp vec4 penumbra_shadow_kernel[32];
|
|
||||||
highp vec4 soft_shadow_kernel[32];
|
|
||||||
|
|
||||||
mediump mat3 radiance_inverse_xform;
|
|
||||||
|
|
||||||
mediump vec4 ambient_light_color_energy;
|
|
||||||
|
|
||||||
mediump float ambient_color_sky_mix;
|
|
||||||
bool use_ambient_light;
|
|
||||||
bool use_ambient_cubemap;
|
|
||||||
bool use_reflection_cubemap;
|
|
||||||
|
|
||||||
highp vec2 shadow_atlas_pixel_size;
|
|
||||||
highp vec2 directional_shadow_pixel_size;
|
|
||||||
|
|
||||||
uint directional_light_count;
|
|
||||||
mediump float dual_paraboloid_side;
|
|
||||||
highp float z_far;
|
|
||||||
highp float z_near;
|
|
||||||
|
|
||||||
bool roughness_limiter_enabled;
|
|
||||||
mediump float roughness_limiter_amount;
|
|
||||||
mediump float roughness_limiter_limit;
|
|
||||||
mediump float opaque_prepass_threshold;
|
|
||||||
|
|
||||||
bool fog_enabled;
|
|
||||||
uint fog_mode;
|
|
||||||
highp float fog_density;
|
|
||||||
highp float fog_height;
|
|
||||||
|
|
||||||
highp float fog_height_density;
|
|
||||||
highp float fog_depth_curve;
|
|
||||||
highp float fog_depth_begin;
|
|
||||||
highp float taa_frame_count;
|
|
||||||
|
|
||||||
mediump vec3 fog_light_color;
|
|
||||||
highp float fog_depth_end;
|
|
||||||
|
|
||||||
mediump float fog_sun_scatter;
|
|
||||||
mediump float fog_aerial_perspective;
|
|
||||||
highp float time;
|
|
||||||
mediump float reflection_multiplier; // one normally, zero when rendering reflections
|
|
||||||
|
|
||||||
vec2 taa_jitter;
|
|
||||||
bool material_uv2_mode;
|
|
||||||
float emissive_exposure_normalization;
|
|
||||||
|
|
||||||
float IBL_exposure_normalization;
|
|
||||||
bool pancake_shadows;
|
|
||||||
uint camera_visible_layers;
|
|
||||||
float pass_alpha_multiplier;
|
|
||||||
|
|
||||||
#elif (GODOT_VERSION_MAJOR == 4) && (GODOT_VERSION_MINOR == 5)
|
|
||||||
/* 4.5 definition */
|
|
||||||
mat4 projection_matrix;
|
|
||||||
mat4 inv_projection_matrix;
|
|
||||||
mat4 inv_view_matrix;
|
|
||||||
mat4 view_matrix;
|
|
||||||
|
|
||||||
// only used for multiview
|
|
||||||
mat4 projection_matrix_view[MAX_VIEWS];
|
|
||||||
mat4 inv_projection_matrix_view[MAX_VIEWS];
|
|
||||||
vec4 eye_offset[MAX_VIEWS];
|
|
||||||
|
|
||||||
// Used for billboards to cast correct shadows.
|
|
||||||
mat4 main_cam_inv_view_matrix;
|
|
||||||
|
|
||||||
vec2 viewport_size;
|
|
||||||
vec2 screen_pixel_size;
|
|
||||||
|
|
||||||
// Use vec4s because std140 doesn't play nice with vec2s, z and w are wasted.
|
|
||||||
vec4 directional_penumbra_shadow_kernel[32];
|
|
||||||
vec4 directional_soft_shadow_kernel[32];
|
|
||||||
vec4 penumbra_shadow_kernel[32];
|
|
||||||
vec4 soft_shadow_kernel[32];
|
|
||||||
|
|
||||||
vec2 shadow_atlas_pixel_size;
|
|
||||||
vec2 directional_shadow_pixel_size;
|
|
||||||
|
|
||||||
uint directional_light_count;
|
|
||||||
float dual_paraboloid_side;
|
|
||||||
float z_far;
|
|
||||||
float z_near;
|
|
||||||
|
|
||||||
float roughness_limiter_amount;
|
|
||||||
float roughness_limiter_limit;
|
|
||||||
float opaque_prepass_threshold;
|
|
||||||
uint flags;
|
|
||||||
|
|
||||||
mat3 radiance_inverse_xform;
|
|
||||||
|
|
||||||
vec4 ambient_light_color_energy;
|
|
||||||
|
|
||||||
float ambient_color_sky_mix;
|
|
||||||
float fog_density;
|
|
||||||
float fog_height;
|
|
||||||
float fog_height_density;
|
|
||||||
|
|
||||||
float fog_depth_curve;
|
|
||||||
float fog_depth_begin;
|
|
||||||
float fog_depth_end;
|
|
||||||
float fog_sun_scatter;
|
|
||||||
|
|
||||||
vec3 fog_light_color;
|
|
||||||
float fog_aerial_perspective;
|
|
||||||
|
|
||||||
float time;
|
|
||||||
float taa_frame_count;
|
|
||||||
vec2 taa_jitter;
|
|
||||||
|
|
||||||
float emissive_exposure_normalization;
|
|
||||||
float IBL_exposure_normalization;
|
|
||||||
uint camera_visible_layers;
|
|
||||||
float pass_alpha_multiplier;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
struct GenericData{
|
|
||||||
vec3 extralargenoiseposition;
|
|
||||||
float extralargenoisescale;
|
|
||||||
|
|
||||||
vec3 largenoiseposition;
|
|
||||||
float cloud_lighting_sharpness;
|
|
||||||
|
|
||||||
vec3 mediumnoiseposition;
|
|
||||||
float lighting_step_distance;
|
|
||||||
|
|
||||||
vec3 smallnoiseposition;
|
|
||||||
float atmospheric_density;
|
|
||||||
|
|
||||||
vec4 ambientLightColor;
|
|
||||||
vec4 ambientGroundLightColor;
|
|
||||||
vec4 ambientfogdistancecolor;
|
|
||||||
|
|
||||||
float small_noise_scale;
|
|
||||||
float min_step_distance;
|
|
||||||
float max_step_distance;
|
|
||||||
float lod_bias;
|
|
||||||
|
|
||||||
float cloud_sharpness;
|
|
||||||
float directionalLightsCount;
|
|
||||||
float powderStrength;
|
|
||||||
float anisotropy;
|
|
||||||
|
|
||||||
float cloud_floor;
|
|
||||||
float cloud_ceiling;
|
|
||||||
float max_step_count;
|
|
||||||
float max_lighting_step_count;
|
|
||||||
|
|
||||||
float filterIndex;
|
|
||||||
float blurPower;
|
|
||||||
float blurQuality;
|
|
||||||
float curlPower;
|
|
||||||
|
|
||||||
vec2 WindDirection;
|
|
||||||
float fogEffectGround;
|
|
||||||
float samplePointsCount;
|
|
||||||
|
|
||||||
float pointLightsCount;
|
|
||||||
float pointEffectorCount;
|
|
||||||
float windSweptRange;
|
|
||||||
float windSweptPower;
|
|
||||||
|
|
||||||
vec2 raster_size;
|
|
||||||
float large_noise_scale;
|
|
||||||
float medium_noise_scale;
|
|
||||||
|
|
||||||
float time;
|
|
||||||
float cloud_coverage;
|
|
||||||
float cloud_density;
|
|
||||||
float small_noise_strength;
|
|
||||||
|
|
||||||
float cloud_lighting_power;
|
|
||||||
float accumilation_decay;
|
|
||||||
float isAccumulationA;
|
|
||||||
float resolutionscale;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct DirectionalLight {
|
|
||||||
vec4 direction; //w = shadow sample count
|
|
||||||
vec4 color; //a = intensity
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PointLight {
|
|
||||||
vec4 position; //w = radius
|
|
||||||
vec4 color; //a = intensity
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PointEffector {
|
|
||||||
vec3 position; //w = radius
|
|
||||||
float radius;
|
|
||||||
|
|
||||||
float power;
|
|
||||||
float attenuation;
|
|
||||||
vec2 reserved;
|
|
||||||
};
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends Button
|
|
||||||
class_name AccordionButton
|
|
||||||
|
|
||||||
#var downcaret : CompressedTexture2D = preload("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
||||||
#var upcaret : CompressedTexture2D = preload("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
||||||
|
|
||||||
var curvisible : bool = false
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
||||||
expand_icon = true
|
|
||||||
icon_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
|
||||||
if (!pressed.is_connected(ButtonPressed.bind())):
|
|
||||||
pressed.connect(ButtonPressed.bind())
|
|
||||||
|
|
||||||
func ButtonPressed():
|
|
||||||
curvisible = !curvisible
|
|
||||||
_handleVisibility()
|
|
||||||
|
|
||||||
func Open():
|
|
||||||
curvisible = true
|
|
||||||
_handleVisibility()
|
|
||||||
|
|
||||||
func Close():
|
|
||||||
curvisible = false
|
|
||||||
_handleVisibility()
|
|
||||||
|
|
||||||
func _handleVisibility():
|
|
||||||
if (!curvisible):
|
|
||||||
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg")
|
|
||||||
else:
|
|
||||||
icon = ResourceLoader.load("res://addons/SunshineClouds2/Dock/Icons/caret-up-solid.svg")
|
|
||||||
|
|
||||||
for child in get_parent().get_children():
|
|
||||||
if (child != self and child is Control):
|
|
||||||
child.visible = curvisible
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cb3ho8b5lgx55
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends GridContainer
|
|
||||||
|
|
||||||
@export var TargetColumnCount : int = 1
|
|
||||||
@export var MinimumColumnSize : float = 100.0
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
if (!self.resized.is_connected(OnSizeChange.bind())):
|
|
||||||
self.resized.connect(OnSizeChange.bind())
|
|
||||||
|
|
||||||
func OnSizeChange():
|
|
||||||
if (TargetColumnCount <= 0):
|
|
||||||
TargetColumnCount = 0
|
|
||||||
|
|
||||||
var width = size.x
|
|
||||||
var newColumnCount : int = clamp(floor(width / MinimumColumnSize), 1, TargetColumnCount)
|
|
||||||
columns = newColumnCount
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cb12y8ylifwet
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://bqphpk7wftndj"]
|
|
||||||
|
|
||||||
[ext_resource type="Material" uid="uid://b3fgicfsq7yvh" path="res://addons/SunshineClouds2/Dock/Materials/DrawBrushToolsMaterial.tres" id="1_t2125"]
|
|
||||||
|
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_gqrd6"]
|
|
||||||
|
|
||||||
[node name="DrawBrush" type="MeshInstance3D"]
|
|
||||||
mesh = SubResource("PlaneMesh_gqrd6")
|
|
||||||
surface_material_override/0 = ExtResource("1_t2125")
|
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|
||||||
material_override = ExtResource("1_t2125")
|
|
||||||
mesh = SubResource("PlaneMesh_gqrd6")
|
|
||||||
@ -1,982 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends Control
|
|
||||||
class_name CloudsEditorController
|
|
||||||
|
|
||||||
@export_category("Driver Tools")
|
|
||||||
@export var CloudsStatusLabel : Label
|
|
||||||
@export var CloudsActiveToggle : CheckButton
|
|
||||||
@export var CloudsDriverRefresh : Button
|
|
||||||
@export var CloudsDriverAccordianButton : AccordionButton
|
|
||||||
@export_category("Mask Tools")
|
|
||||||
@export var UseMaskToggle : CheckButton
|
|
||||||
@export var MaskStatusLabel : Label
|
|
||||||
@export var MaskFilePath : LineEdit
|
|
||||||
@export var MaskResolution : SpinBox
|
|
||||||
@export var MaskWidth : SpinBox
|
|
||||||
@export_category("Draw Tools")
|
|
||||||
@export var DrawWeightEnable : TextureButton
|
|
||||||
@export var DrawColorEnable : TextureButton
|
|
||||||
@export var DrawColorPicker : ColorPicker
|
|
||||||
|
|
||||||
@export var DrawTools : Control
|
|
||||||
@export var DrawSharpness : HSlider
|
|
||||||
@export var DrawStrength : HSlider
|
|
||||||
|
|
||||||
@export var compute_shader : RDShaderFile
|
|
||||||
@export var DrawingColor : Color
|
|
||||||
@export var InvertedDrawingColor : Color
|
|
||||||
|
|
||||||
@export_range(100,50000,50) var DefaultBrushSize : float = 1000.0
|
|
||||||
@export_range(100,50000,50) var DefaultCloudsHeight : float = 2000.0
|
|
||||||
|
|
||||||
var driver : SunshineCloudsDriverGD
|
|
||||||
|
|
||||||
var currentRoot : Node
|
|
||||||
|
|
||||||
var currentDrawingMask : RID = RID()
|
|
||||||
|
|
||||||
enum DRAWINGMODE {none, weight, color, setValue}
|
|
||||||
|
|
||||||
var drawScale : float
|
|
||||||
var currentCloudsHeight : float
|
|
||||||
var currentDrawMode : DRAWINGMODE = DRAWINGMODE.none
|
|
||||||
var drawingCurrently : bool = false
|
|
||||||
var drawInverted : bool = false
|
|
||||||
var drawBrushToolMaterial : BaseMaterial3D = preload("res://addons/SunshineClouds2/Dock/Materials/DrawBrushToolsMaterial.tres")
|
|
||||||
var drawBrushToolPrefab : PackedScene = preload("res://addons/SunshineClouds2/Dock/CloudsDrawBrush.tscn")
|
|
||||||
var drawBrushTool : MeshInstance3D
|
|
||||||
|
|
||||||
#region Compute Variables
|
|
||||||
var computeEnabled : bool = false
|
|
||||||
var rd : RenderingDevice
|
|
||||||
var shader : RID = RID()
|
|
||||||
var pipeline : RID = RID()
|
|
||||||
|
|
||||||
var uniform_set : RID
|
|
||||||
var push_constants : PackedByteArray
|
|
||||||
|
|
||||||
var last_image_data : PackedByteArray = []
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
var pause_updates : bool = false
|
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
drawScale = DefaultBrushSize
|
|
||||||
|
|
||||||
func _notification(what):
|
|
||||||
if what == NOTIFICATION_PREDELETE and is_instance_valid(self):
|
|
||||||
RenderingServer.call_on_render_thread(ClearCompute)
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
|
|
||||||
if (currentDrawMode != DRAWINGMODE.none):
|
|
||||||
|
|
||||||
var selection = EditorInterface.get_selection()
|
|
||||||
if (selection.get_selected_nodes().size() == 0):
|
|
||||||
if (driver != null):
|
|
||||||
selection.add_node(driver)
|
|
||||||
|
|
||||||
if (currentDrawMode == DRAWINGMODE.color):
|
|
||||||
drawBrushToolMaterial.albedo_color = DrawColorPicker.color
|
|
||||||
|
|
||||||
if (drawingCurrently):
|
|
||||||
|
|
||||||
RenderingServer.call_on_render_thread(ExecuteCompute.bindv([delta, false, Color.WHITE]))
|
|
||||||
|
|
||||||
func InitialSceneLoad() -> void:
|
|
||||||
var sceneRoot = await FindSceneNode()
|
|
||||||
SceneChanged(sceneRoot)
|
|
||||||
print("initial scene load")
|
|
||||||
|
|
||||||
await get_tree().create_timer(0.5).timeout
|
|
||||||
var version_info = Engine.get_version_info()
|
|
||||||
|
|
||||||
var file = FileAccess.open("res://addons/SunshineClouds2/CloudsInc.txt", FileAccess.READ_WRITE)
|
|
||||||
var content = file.get_as_text()
|
|
||||||
var major_index = content.find("GODOT_VERSION_MAJOR") + 20
|
|
||||||
var minor_index = content.find("GODOT_VERSION_MINOR") + 20
|
|
||||||
|
|
||||||
if content[major_index] != str(version_info.major) || content[minor_index] != str(version_info.minor):
|
|
||||||
print("Version conflict, updating and reimporting...")
|
|
||||||
content[major_index] = str(version_info.major)
|
|
||||||
content[minor_index] = str(version_info.minor)
|
|
||||||
file.store_string(content)
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
EditorInterface.get_resource_filesystem().reimport_files(["res://addons/SunshineClouds2/SunshineCloudsCompute.glsl", "res://addons/SunshineClouds2/SunshineCloudsPostCompute.glsl", "res://addons/SunshineClouds2/SunshineCloudsPreCompute.glsl"])
|
|
||||||
await get_tree().create_timer(0.1).timeout
|
|
||||||
if driver != null && driver.clouds_resource != null:
|
|
||||||
driver.clouds_resource.refresh_compute()
|
|
||||||
|
|
||||||
print("Version change may cause some errors during first load, these should not impact functionality, if there is impacted functionality please report it to the creator of the plugin.")
|
|
||||||
print("Version updated, launching normally.")
|
|
||||||
else:
|
|
||||||
print("Version correct, launching normally.")
|
|
||||||
file.close()
|
|
||||||
|
|
||||||
|
|
||||||
func RefreshSceneNode() -> void:
|
|
||||||
var sceneRoot = await FindSceneNode()
|
|
||||||
|
|
||||||
SceneChanged(sceneRoot)
|
|
||||||
|
|
||||||
func FindSceneNode() -> Node:
|
|
||||||
var editorInterface = EditorPlugin.new().get_editor_interface()
|
|
||||||
var sceneRoot = editorInterface.get_edited_scene_root()
|
|
||||||
var iterationcount: int = 300 #30 seconds of checking.
|
|
||||||
while sceneRoot == null && iterationcount > 0:
|
|
||||||
await get_tree().create_timer(0.1).timeout
|
|
||||||
iterationcount -= 1
|
|
||||||
sceneRoot = editorInterface.get_edited_scene_root()
|
|
||||||
|
|
||||||
return sceneRoot
|
|
||||||
|
|
||||||
func SceneChanged(scene_root : Node):
|
|
||||||
|
|
||||||
pause_updates = true
|
|
||||||
DrawWeightEnable.button_pressed = false
|
|
||||||
DrawColorEnable.button_pressed = false
|
|
||||||
last_image_data = []
|
|
||||||
DisableDrawMode()
|
|
||||||
|
|
||||||
currentRoot = scene_root
|
|
||||||
driver = RetrieveCloudsDriver(scene_root)
|
|
||||||
if (driver != null && driver.clouds_resource != null):
|
|
||||||
driver.clouds_resource.maskDrawnRid = RID()
|
|
||||||
|
|
||||||
MaskWidth.value = driver.clouds_resource.mask_width_km
|
|
||||||
UseMaskToggle.button_pressed = driver.clouds_resource.extra_large_used_as_mask
|
|
||||||
|
|
||||||
if ResourceLoader.exists(MaskFilePath.text):
|
|
||||||
var image = ResourceLoader.load(MaskFilePath.text) as Image
|
|
||||||
if image:
|
|
||||||
print("retrieved mask scale")
|
|
||||||
MaskResolution.value = image.get_width()
|
|
||||||
pause_updates = false
|
|
||||||
UpdateStatusDisplay()
|
|
||||||
|
|
||||||
func RetrieveCloudsDriver(scene_root : Node) -> SunshineCloudsDriverGD:
|
|
||||||
if (scene_root != null):
|
|
||||||
for child in scene_root.get_children():
|
|
||||||
if child is SunshineCloudsDriverGD:
|
|
||||||
return child
|
|
||||||
|
|
||||||
var newDriver = RetrieveCloudsDriver(child)
|
|
||||||
if (newDriver):
|
|
||||||
return newDriver
|
|
||||||
|
|
||||||
return null
|
|
||||||
|
|
||||||
func UpdateStatusDisplay():
|
|
||||||
|
|
||||||
if (driver != null):
|
|
||||||
CloudsActiveToggle.disabled = false
|
|
||||||
CloudsActiveToggle.button_pressed = driver.update_continuously
|
|
||||||
CloudsDriverRefresh.visible = false
|
|
||||||
CloudsStatusLabel.text = "Clouds present"
|
|
||||||
|
|
||||||
if ResourceLoader.exists(MaskFilePath.text):
|
|
||||||
MaskStatusLabel.text = "Mask Detected: " + MaskFilePath.text
|
|
||||||
DrawTools.visible = true
|
|
||||||
else:
|
|
||||||
MaskStatusLabel.text = "Mask Not Found."
|
|
||||||
DrawTools.visible = false
|
|
||||||
|
|
||||||
else:
|
|
||||||
CloudsActiveToggle.disabled = true
|
|
||||||
CloudsActiveToggle.button_pressed = false
|
|
||||||
CloudsDriverRefresh.visible = true
|
|
||||||
DrawTools.visible = false
|
|
||||||
CloudsDriverAccordianButton.Open()
|
|
||||||
CloudsStatusLabel.text = "Clouds not present"
|
|
||||||
|
|
||||||
|
|
||||||
if driver != null && driver.clouds_resource != null:
|
|
||||||
UseMaskToggle.disabled = false
|
|
||||||
else:
|
|
||||||
UseMaskToggle.disabled = true
|
|
||||||
UseMaskToggle.button_pressed = false
|
|
||||||
|
|
||||||
|
|
||||||
func UpdateMaskSettings():
|
|
||||||
if (pause_updates):
|
|
||||||
return
|
|
||||||
print("Update mask settings")
|
|
||||||
if (driver != null && driver.clouds_resource != null):
|
|
||||||
driver.clouds_resource.mask_width_km = MaskWidth.value
|
|
||||||
driver.clouds_resource.extra_large_used_as_mask = UseMaskToggle.button_pressed
|
|
||||||
if (!UseMaskToggle.button_pressed):
|
|
||||||
driver.clouds_resource.extra_large_noise_patterns = ResourceLoader.load("res://addons/SunshineClouds2/NoiseTextures/ExtraLargeScaleNoise.tres")
|
|
||||||
elif ResourceLoader.exists(MaskFilePath.text):
|
|
||||||
driver.clouds_resource.extra_large_noise_patterns = ResourceLoader.load(MaskFilePath.text)
|
|
||||||
|
|
||||||
InitializeMaskTexture()
|
|
||||||
|
|
||||||
func InitializeMaskTexture():
|
|
||||||
#if (driver == null):
|
|
||||||
#return
|
|
||||||
|
|
||||||
if not rd:
|
|
||||||
rd = RenderingServer.get_rendering_device()
|
|
||||||
if not rd:
|
|
||||||
return
|
|
||||||
#currentDrawingMask = driver.clouds_resource.mask_rid
|
|
||||||
#var useDriverData : bool = driver != null && driver.clouds_resource != null
|
|
||||||
#
|
|
||||||
print("initializing mask")
|
|
||||||
if ResourceLoader.exists(MaskFilePath.text):
|
|
||||||
print("loading mask")
|
|
||||||
var image = ResourceLoader.load(MaskFilePath.text) as CompressedTexture2D
|
|
||||||
if (!image || image.get_width() != MaskResolution.value):
|
|
||||||
print(MaskFilePath.text)
|
|
||||||
print("mask incorrect size found size:", image.get_width(), " desired:", MaskResolution.value)
|
|
||||||
image = Image.create(MaskResolution.value, MaskResolution.value, false, Image.FORMAT_RGBAF)
|
|
||||||
image.clear_mipmaps()
|
|
||||||
image.save_exr(MaskFilePath.text)
|
|
||||||
|
|
||||||
var editorFileSystem := EditorInterface.get_resource_filesystem()
|
|
||||||
editorFileSystem.scan()
|
|
||||||
else:
|
|
||||||
var image = Image.create(MaskResolution.value, MaskResolution.value, false, Image.FORMAT_RGBAF)
|
|
||||||
image.clear_mipmaps()
|
|
||||||
image.save_exr(MaskFilePath.text)
|
|
||||||
|
|
||||||
var editorFileSystem := EditorInterface.get_resource_filesystem()
|
|
||||||
editorFileSystem.scan()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#driver.clouds_resource.mask_rid = currentDrawingMask
|
|
||||||
#driver.clouds_resource.extra_large_noise_patterns = ResourceLoader.load(MaskFilePath.text)
|
|
||||||
#driver.clouds_resource.last_size = Vector2i.ZERO
|
|
||||||
|
|
||||||
RenderingServer.call_on_render_thread(InitializeCompute)
|
|
||||||
call_deferred("UpdateStatusDisplay")
|
|
||||||
|
|
||||||
#region Draw mode
|
|
||||||
|
|
||||||
#region Compute
|
|
||||||
|
|
||||||
func InitializeCompute():
|
|
||||||
computeEnabled = false
|
|
||||||
#if driver == null:
|
|
||||||
#return
|
|
||||||
|
|
||||||
#currentDrawingMask = driver.clouds_resource.mask_rid
|
|
||||||
#if !currentDrawingMask.is_valid():
|
|
||||||
#return
|
|
||||||
|
|
||||||
if not rd:
|
|
||||||
rd = RenderingServer.get_rendering_device()
|
|
||||||
if not rd:
|
|
||||||
computeEnabled = false
|
|
||||||
printerr("No rendering device on load.")
|
|
||||||
return
|
|
||||||
ClearCompute()
|
|
||||||
if not compute_shader:
|
|
||||||
compute_shader = ResourceLoader.load("res://addons/SunshineClouds2/Dock/MaskDrawingCompute.glsl")
|
|
||||||
|
|
||||||
if not compute_shader:
|
|
||||||
computeEnabled = false
|
|
||||||
printerr("No Shader found for drawing tool.")
|
|
||||||
ClearCompute()
|
|
||||||
return
|
|
||||||
|
|
||||||
var shader_spirv = compute_shader.get_spirv()
|
|
||||||
shader = rd.shader_create_from_spirv(shader_spirv)
|
|
||||||
if shader.is_valid():
|
|
||||||
pipeline = rd.compute_pipeline_create(shader)
|
|
||||||
else:
|
|
||||||
computeEnabled = false
|
|
||||||
printerr("Shader failed to compile.")
|
|
||||||
ClearCompute()
|
|
||||||
return
|
|
||||||
|
|
||||||
var uniforms_array : Array[RDUniform] = []
|
|
||||||
|
|
||||||
var newFormat : RDTextureFormat = RDTextureFormat.new()
|
|
||||||
newFormat.format = RenderingDevice.DATA_FORMAT_R32G32B32A32_SFLOAT
|
|
||||||
newFormat.height = MaskResolution.value
|
|
||||||
newFormat.width = MaskResolution.value
|
|
||||||
newFormat.usage_bits = RenderingDevice.TEXTURE_USAGE_STORAGE_BIT | RenderingDevice.TEXTURE_USAGE_SAMPLING_BIT | RenderingDevice.TEXTURE_USAGE_CAN_COPY_FROM_BIT
|
|
||||||
|
|
||||||
var image : Image
|
|
||||||
if ResourceLoader.exists(MaskFilePath.text):
|
|
||||||
image = (ResourceLoader.load(MaskFilePath.text) as CompressedTexture2D).get_image()
|
|
||||||
|
|
||||||
if image == null:
|
|
||||||
image = Image.create(MaskResolution.value, MaskResolution.value, false, Image.FORMAT_RGBAF)
|
|
||||||
|
|
||||||
currentDrawingMask = rd.texture_create(newFormat, RDTextureView.new(), [image.get_data()])
|
|
||||||
|
|
||||||
if (driver != null && driver.clouds_resource != null):
|
|
||||||
driver.clouds_resource.update_mask(currentDrawingMask)
|
|
||||||
|
|
||||||
var mask_uniform = RDUniform.new()
|
|
||||||
mask_uniform.uniform_type = RenderingDevice.UNIFORM_TYPE_IMAGE
|
|
||||||
mask_uniform.binding = 0
|
|
||||||
mask_uniform.add_id(currentDrawingMask)
|
|
||||||
uniforms_array.append(mask_uniform)
|
|
||||||
|
|
||||||
uniform_set = rd.uniform_set_create(uniforms_array, shader, 0)
|
|
||||||
computeEnabled = true
|
|
||||||
|
|
||||||
func ClearCompute():
|
|
||||||
if rd:
|
|
||||||
if shader.is_valid():
|
|
||||||
rd.free_rid(shader)
|
|
||||||
shader = RID()
|
|
||||||
|
|
||||||
if currentDrawingMask.is_valid():
|
|
||||||
rd.free_rid(currentDrawingMask)
|
|
||||||
currentDrawingMask = RID()
|
|
||||||
|
|
||||||
func ExecuteCompute(delta : float, setvalue : bool, setvalueColor : Color):
|
|
||||||
if (!computeEnabled):
|
|
||||||
return
|
|
||||||
|
|
||||||
var resolution : float = MaskResolution.value
|
|
||||||
var drawPosition : Vector2 = Vector2.ZERO
|
|
||||||
var drawRadius = 0.0
|
|
||||||
|
|
||||||
if (!setvalue):
|
|
||||||
drawPosition = Vector2(drawBrushTool.global_position.x, drawBrushTool.global_position.z)
|
|
||||||
drawPosition = (drawPosition / (MaskWidth.value * 1000.0)) * resolution
|
|
||||||
drawPosition += Vector2(resolution * 0.5, resolution * 0.5)
|
|
||||||
|
|
||||||
drawRadius = (drawBrushTool.scale.x / (MaskWidth.value * 1000.0)) * resolution
|
|
||||||
|
|
||||||
var groups = ceil(resolution / 32) + 1
|
|
||||||
var drawSharpness = DrawSharpness.value
|
|
||||||
var drawStrength = DrawStrength.value * delta
|
|
||||||
if (drawInverted):
|
|
||||||
drawStrength = -drawStrength
|
|
||||||
|
|
||||||
var editingtype : float = 0.0
|
|
||||||
if setvalue:
|
|
||||||
editingtype = 2.0
|
|
||||||
elif currentDrawMode == DRAWINGMODE.color:
|
|
||||||
editingtype = 1.0
|
|
||||||
|
|
||||||
var ms = StreamPeerBuffer.new()
|
|
||||||
ms.put_float(drawPosition.x)
|
|
||||||
ms.put_float(drawPosition.y)
|
|
||||||
ms.put_float(drawRadius)
|
|
||||||
ms.put_float(drawSharpness)
|
|
||||||
|
|
||||||
ms.put_float(drawStrength)
|
|
||||||
ms.put_float(editingtype)
|
|
||||||
ms.put_float(resolution)
|
|
||||||
ms.put_float(0.0)
|
|
||||||
|
|
||||||
if (setvalue):
|
|
||||||
ms.put_float(setvalueColor.r)
|
|
||||||
ms.put_float(setvalueColor.g)
|
|
||||||
ms.put_float(setvalueColor.b)
|
|
||||||
ms.put_float(setvalueColor.a)
|
|
||||||
else:
|
|
||||||
ms.put_float(DrawColorPicker.color.r)
|
|
||||||
ms.put_float(DrawColorPicker.color.g)
|
|
||||||
ms.put_float(DrawColorPicker.color.b)
|
|
||||||
ms.put_float(0.0)
|
|
||||||
|
|
||||||
push_constants = ms.get_data_array()
|
|
||||||
|
|
||||||
var compute_list = rd.compute_list_begin()
|
|
||||||
rd.compute_list_bind_compute_pipeline(compute_list, pipeline)
|
|
||||||
rd.compute_list_bind_uniform_set(compute_list, uniform_set, 0)
|
|
||||||
rd.compute_list_set_push_constant(compute_list, push_constants, push_constants.size())
|
|
||||||
rd.compute_list_dispatch(compute_list, groups, groups, 1)
|
|
||||||
rd.compute_list_end()
|
|
||||||
|
|
||||||
|
|
||||||
await RenderingServer.frame_post_draw
|
|
||||||
|
|
||||||
rd.texture_get_data_async(currentDrawingMask, 0, CompleteRetreval)
|
|
||||||
|
|
||||||
func CompleteRetreval(data):
|
|
||||||
last_image_data = data
|
|
||||||
#for byte in data:
|
|
||||||
#print(byte)
|
|
||||||
#print("RetrevalComplete ", data)
|
|
||||||
#var image = Image.create_from_data(MaskResolution.value, MaskResolution.value, false, Image.FORMAT_RGBAF, data)
|
|
||||||
##rd.texture_update(RenderingServer.texture_get_rd_texture(currentMask.get_rid()),0, data)
|
|
||||||
#image.save_png(MaskFilePath.text)
|
|
||||||
|
|
||||||
#var editorFileSystem := EditorInterface.get_resource_filesystem()
|
|
||||||
#editorFileSystem.scan()
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
func IterateCursorLocation(viewport_camera: Camera3D, event:InputEventMouse):
|
|
||||||
if (is_instance_valid(driver) && driver.clouds_resource != null):
|
|
||||||
currentCloudsHeight = (driver.clouds_resource.cloud_floor + driver.clouds_resource.cloud_ceiling) / 2.0
|
|
||||||
else:
|
|
||||||
currentCloudsHeight = DefaultCloudsHeight
|
|
||||||
var ray_origin = viewport_camera.project_ray_origin(event.position)
|
|
||||||
var ray_dir = viewport_camera.project_ray_normal(event.position)
|
|
||||||
|
|
||||||
var result : float = RetrieveTravelDistance(ray_origin, ray_dir)
|
|
||||||
if (result == -1.0):
|
|
||||||
drawBrushTool.visible = false
|
|
||||||
else:
|
|
||||||
drawBrushTool.visible = true
|
|
||||||
drawBrushTool.global_position = ray_origin + ray_dir * result
|
|
||||||
drawBrushTool.global_position.y = driver.clouds_resource.cloud_floor
|
|
||||||
|
|
||||||
func BeginCursorDraw():
|
|
||||||
drawingCurrently = true
|
|
||||||
|
|
||||||
func EndCursorDraw():
|
|
||||||
drawingCurrently = false
|
|
||||||
|
|
||||||
func ScaleDrawingCircleUp():
|
|
||||||
drawScale = min(drawScale + (drawScale * 0.1), 100000.0)
|
|
||||||
SetDrawScale()
|
|
||||||
|
|
||||||
func ScaleDrawingCircleDown():
|
|
||||||
drawScale = max(drawScale - (drawScale * 0.1), 100.0)
|
|
||||||
SetDrawScale()
|
|
||||||
|
|
||||||
func DrawModeCancel():
|
|
||||||
DrawWeightEnable.button_pressed = false
|
|
||||||
DrawColorEnable.button_pressed = false
|
|
||||||
DisableDrawMode()
|
|
||||||
|
|
||||||
|
|
||||||
func SetDrawScale():
|
|
||||||
if driver != null && driver.clouds_resource != null:
|
|
||||||
drawBrushTool.scale = Vector3(drawScale, driver.clouds_resource.cloud_ceiling - driver.clouds_resource.cloud_floor, drawScale)
|
|
||||||
else:
|
|
||||||
drawBrushTool.scale = Vector3(drawScale, 1000.0, drawScale)
|
|
||||||
|
|
||||||
#region Draw Mode Toggles
|
|
||||||
|
|
||||||
func FloodFill():
|
|
||||||
var resultColor : Color = DrawColorPicker.color
|
|
||||||
resultColor.a = DrawStrength.value / DrawStrength.max_value
|
|
||||||
RenderingServer.call_on_render_thread(ExecuteCompute.bindv([0.0, true, resultColor]))
|
|
||||||
await get_tree().create_timer(0.2).timeout
|
|
||||||
call_deferred("DisableDrawMode")
|
|
||||||
|
|
||||||
func DrawWeightToggled():
|
|
||||||
DrawColorEnable.button_pressed = false
|
|
||||||
|
|
||||||
if DrawWeightEnable.button_pressed && EnableDrawMode():
|
|
||||||
currentDrawMode = DRAWINGMODE.weight
|
|
||||||
else:
|
|
||||||
DrawWeightEnable.button_pressed = false
|
|
||||||
|
|
||||||
func DrawColorToggled():
|
|
||||||
DrawWeightEnable.button_pressed = false
|
|
||||||
|
|
||||||
if DrawColorEnable.button_pressed && EnableDrawMode():
|
|
||||||
currentDrawMode = DRAWINGMODE.color
|
|
||||||
else:
|
|
||||||
DrawColorEnable.button_pressed = false
|
|
||||||
|
|
||||||
func EnableDrawMode() -> bool:
|
|
||||||
if (!computeEnabled):
|
|
||||||
InitializeMaskTexture()
|
|
||||||
|
|
||||||
if (!is_instance_valid(currentRoot)):
|
|
||||||
return false
|
|
||||||
drawBrushToolMaterial.albedo_color = DrawingColor
|
|
||||||
if (!is_instance_valid(drawBrushTool)):
|
|
||||||
drawBrushTool = drawBrushToolPrefab.instantiate() as MeshInstance3D
|
|
||||||
currentRoot.add_child(drawBrushTool)
|
|
||||||
SetDrawScale()
|
|
||||||
|
|
||||||
return true
|
|
||||||
|
|
||||||
func DisableDrawMode():
|
|
||||||
DrawColorEnable.button_pressed = false
|
|
||||||
DrawWeightEnable.button_pressed = false
|
|
||||||
currentDrawMode = DRAWINGMODE.none
|
|
||||||
drawInverted = false
|
|
||||||
if (drawingCurrently):
|
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
|
||||||
drawingCurrently = false
|
|
||||||
|
|
||||||
if (is_instance_valid(drawBrushTool)):
|
|
||||||
drawBrushTool.queue_free()
|
|
||||||
drawBrushTool = null
|
|
||||||
|
|
||||||
if (last_image_data.size() > 0):
|
|
||||||
print("Saved image to disc")
|
|
||||||
var image = Image.create_from_data(MaskResolution.value, MaskResolution.value, false, Image.FORMAT_RGBAF, last_image_data)
|
|
||||||
|
|
||||||
image.save_exr(MaskFilePath.text)
|
|
||||||
var editorFileSystem := EditorInterface.get_resource_filesystem()
|
|
||||||
editorFileSystem.scan()
|
|
||||||
|
|
||||||
last_image_data = []
|
|
||||||
|
|
||||||
if (driver != null && driver.clouds_resource != null):
|
|
||||||
driver.clouds_resource.extra_large_noise_patterns = ResourceLoader.load(MaskFilePath.text)
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
func SetDrawInvert(mode : bool):
|
|
||||||
if (currentDrawMode == DRAWINGMODE.weight && drawInverted != mode):
|
|
||||||
drawInverted = mode
|
|
||||||
drawBrushToolMaterial.albedo_color = InvertedDrawingColor if drawInverted else DrawingColor
|
|
||||||
|
|
||||||
|
|
||||||
#region draw tools helpers
|
|
||||||
|
|
||||||
func RetrieveTravelDistance(pos : Vector3, dir :Vector3) -> float:
|
|
||||||
var t : float = (currentCloudsHeight - pos.y) / dir.y
|
|
||||||
if (dir.y == 0 || t < 0.0):
|
|
||||||
return -1.0
|
|
||||||
|
|
||||||
|
|
||||||
return t * dir.length()
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#Updates
|
|
||||||
func SetCloudsUpdating():
|
|
||||||
if (driver != null):
|
|
||||||
driver.update_continuously = CloudsActiveToggle.button_pressed
|
|
||||||
|
|
||||||
UpdateStatusDisplay()
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#@tool
|
|
||||||
#extends MeshInstance3D
|
|
||||||
#class_name WanderingTerrainDrawnStamp
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#@export var visibleColorMat : ShaderMaterial = preload("res://addons/WanderingTerrain/Materials/StampMaterials/EraseChunkVisibleColorMat.tres")
|
|
||||||
#@export var highlightedColorMat : ShaderMaterial = preload("res://addons/WanderingTerrain/Materials/StampMaterials/EraseChunkHighlightedColorMat.tres")
|
|
||||||
#@export var thisStampIndex : Vector2
|
|
||||||
#@export var currentHeightmapImageTexture: Texture2D
|
|
||||||
#@export var currentColormapImageTexture: Texture2D
|
|
||||||
#@export var currentSplatmapImageTexture: Texture2D
|
|
||||||
#@export var currentMaterial : ShaderMaterial
|
|
||||||
#
|
|
||||||
#var newHeightmapImage : Image
|
|
||||||
#var newColormapImage : Image
|
|
||||||
#var newSplatmapImage : Image
|
|
||||||
#var newHeightmapdrawingDirty : bool = false
|
|
||||||
#var newColormapdrawingDirty : bool = false
|
|
||||||
#var newSplatmapdrawingDirty : bool = false
|
|
||||||
#var pixelChanged : bool = false
|
|
||||||
#
|
|
||||||
#enum DrawingUpdateMode {sculpting, colorpainting, splatpainting}
|
|
||||||
#
|
|
||||||
#var thisRect : Rect2
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#func InitializeDrawnStamp(resolution : int, indexPosition : Vector2, position : Vector3, currentUpdateType : DrawingUpdateMode):
|
|
||||||
#add_to_group("WanderingTerrainSculptingStamps", true);
|
|
||||||
#thisStampIndex = indexPosition
|
|
||||||
#global_position = position
|
|
||||||
#currentMaterial = material_override.duplicate()
|
|
||||||
#material_override = currentMaterial
|
|
||||||
#
|
|
||||||
#UpdateDrawnStamp(resolution, currentUpdateType)
|
|
||||||
#
|
|
||||||
#func SetVisible():
|
|
||||||
#currentMaterial.next_pass = visibleColorMat
|
|
||||||
#
|
|
||||||
#func SetHidden():
|
|
||||||
#currentMaterial.next_pass = null
|
|
||||||
#
|
|
||||||
#func Highlight():
|
|
||||||
#currentMaterial.next_pass = highlightedColorMat
|
|
||||||
#
|
|
||||||
#func Unhightlight():
|
|
||||||
#currentMaterial.next_pass = visibleColorMat
|
|
||||||
#
|
|
||||||
#func CheckHasAnyUpdate() -> bool:
|
|
||||||
#
|
|
||||||
#if (pixelChanged || currentHeightmapImageTexture != null || currentColormapImageTexture != null || currentSplatmapImageTexture != null):
|
|
||||||
#return true
|
|
||||||
#
|
|
||||||
#return false
|
|
||||||
#
|
|
||||||
#func UpdateDrawnStamp(resolution : int, currentUpdateType : DrawingUpdateMode):
|
|
||||||
#
|
|
||||||
#match currentUpdateType:
|
|
||||||
#DrawingUpdateMode.sculpting:
|
|
||||||
#
|
|
||||||
#if (newHeightmapImage == null || newHeightmapImage.get_width() != resolution):
|
|
||||||
#if (currentHeightmapImageTexture != null && currentHeightmapImageTexture.get_width() == resolution):
|
|
||||||
#newHeightmapImage = currentHeightmapImageTexture.get_image()
|
|
||||||
#else:
|
|
||||||
#currentHeightmapImageTexture = null
|
|
||||||
#newHeightmapdrawingDirty = true
|
|
||||||
#newHeightmapImage = Image.create(resolution, resolution, false, Image.FORMAT_RGF)
|
|
||||||
#for x in resolution:
|
|
||||||
#for y in resolution:
|
|
||||||
#newHeightmapImage.set_pixel(x,y, Color(0.0,0.0,0.0,0.0))
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newHeightmapImage)
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", imageTexture)
|
|
||||||
#
|
|
||||||
#DrawingUpdateMode.colorpainting:
|
|
||||||
#
|
|
||||||
#if (newColormapImage == null || newColormapImage.get_width() != resolution):
|
|
||||||
#if (currentColormapImageTexture != null && currentColormapImageTexture.get_width() == resolution):
|
|
||||||
#newColormapImage = currentColormapImageTexture.get_image()
|
|
||||||
#else:
|
|
||||||
#currentColormapImageTexture = null
|
|
||||||
#newColormapdrawingDirty = true
|
|
||||||
#newColormapImage = Image.create(resolution, resolution, false, Image.FORMAT_RGBAF)
|
|
||||||
#for x in resolution:
|
|
||||||
#for y in resolution:
|
|
||||||
#newColormapImage.set_pixel(x,y, Color(0.0,0.0,0.0,0.0))
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newColormapImage)
|
|
||||||
#currentMaterial.set_shader_parameter("ColorMap", imageTexture)
|
|
||||||
#currentMaterial.set_shader_parameter("HasColorMap", true);
|
|
||||||
#
|
|
||||||
#DrawingUpdateMode.splatpainting:
|
|
||||||
#
|
|
||||||
#if (newSplatmapImage == null || newSplatmapImage.get_width() != resolution):
|
|
||||||
#if (currentSplatmapImageTexture != null && currentSplatmapImageTexture.get_width() == resolution):
|
|
||||||
#newSplatmapImage = currentSplatmapImageTexture.get_image()
|
|
||||||
#else:
|
|
||||||
#currentSplatmapImageTexture = null
|
|
||||||
#newSplatmapdrawingDirty = true
|
|
||||||
#newSplatmapImage = Image.create(resolution, resolution, false, Image.FORMAT_RGBAF)
|
|
||||||
#for x in resolution:
|
|
||||||
#for y in resolution:
|
|
||||||
#newSplatmapImage.set_pixel(x,y, Color(0.0,0.0,0.0,0.0))
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newSplatmapImage)
|
|
||||||
#currentMaterial.set_shader_parameter("SplatMap", imageTexture)
|
|
||||||
#currentMaterial.set_shader_parameter("HasSplatMap", true);
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#thisRect = Rect2(Vector2(global_position.x - resolution / 2, global_position.z - resolution / 2),Vector2(resolution, resolution))
|
|
||||||
#
|
|
||||||
#func IsInsideRect(targetPosition : Vector2, stampRadius : float) -> bool:
|
|
||||||
#if thisRect.has_point(targetPosition) || thisRect.has_point(targetPosition + (Vector2(global_position.x, global_position.z) - targetPosition).normalized() * stampRadius):
|
|
||||||
#return true
|
|
||||||
#return false
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#func PackStamp(terrainController : WanderingTerrainController):
|
|
||||||
#if (newHeightmapdrawingDirty && newHeightmapImage != null):
|
|
||||||
#newHeightmapdrawingDirty = false
|
|
||||||
#var resultingResource = await terrainController.Editor_SaveImageToOutputFolder(newHeightmapImage, name + "_height_savedstamp", "exr")
|
|
||||||
#if (resultingResource != null):
|
|
||||||
#currentHeightmapImageTexture = resultingResource
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", currentHeightmapImageTexture)
|
|
||||||
#
|
|
||||||
#if (newColormapdrawingDirty && newColormapImage != null):
|
|
||||||
#newColormapdrawingDirty = false
|
|
||||||
#var resultingResource = await terrainController.Editor_SaveImageToOutputFolder(newColormapImage, name + "_color_savedstamp", "exr")
|
|
||||||
#if (resultingResource != null):
|
|
||||||
#currentColormapImageTexture = resultingResource
|
|
||||||
#currentMaterial.set_shader_parameter("ColorMap", currentColormapImageTexture)
|
|
||||||
#
|
|
||||||
#if (newSplatmapdrawingDirty && newSplatmapImage != null):
|
|
||||||
#newSplatmapdrawingDirty = false
|
|
||||||
#var resultingResource = await terrainController.Editor_SaveImageToOutputFolder(newSplatmapImage, name + "_splatmap_savedstamp", "exr")
|
|
||||||
#if (resultingResource != null):
|
|
||||||
#currentSplatmapImageTexture = resultingResource
|
|
||||||
#currentMaterial.set_shader_parameter("SplatMap", currentSplatmapImageTexture)
|
|
||||||
#
|
|
||||||
#func ColorPainting_DrawOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, power : float, color : Color, layer : DrawingUpdateMode):
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#var currentImage : Image
|
|
||||||
#if (layer == DrawingUpdateMode.colorpainting):
|
|
||||||
#newColormapdrawingDirty = true
|
|
||||||
#currentImage = newColormapImage
|
|
||||||
#else:
|
|
||||||
#newSplatmapdrawingDirty = true
|
|
||||||
#currentImage = newSplatmapImage
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= currentImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= currentImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = currentImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
#
|
|
||||||
#if (thisColor.a == 0):
|
|
||||||
#thisColor.r = color.r
|
|
||||||
#thisColor.g = color.g
|
|
||||||
#thisColor.b = color.b
|
|
||||||
#
|
|
||||||
#thisColor.r = lerpf(thisColor.r, color.r, stampAlpha * power * 0.2)
|
|
||||||
#thisColor.g = lerpf(thisColor.g, color.g, stampAlpha * power * 0.2)
|
|
||||||
#thisColor.b = lerpf(thisColor.b, color.b, stampAlpha * power * 0.2)
|
|
||||||
#
|
|
||||||
### Handles opacity, which always goes up.
|
|
||||||
#thisColor.a = clampf(thisColor.a + (stampAlpha * abs(power) * 0.2), 0.0, 1.0)
|
|
||||||
#currentImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#pixelChanged = true
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(currentImage)
|
|
||||||
#
|
|
||||||
#if (layer == DrawingUpdateMode.colorpainting):
|
|
||||||
#currentMaterial.set_shader_parameter("ColorMap", imageTexture)
|
|
||||||
#newColormapImage = currentImage
|
|
||||||
#else:
|
|
||||||
#currentMaterial.set_shader_parameter("SplatMap", imageTexture)
|
|
||||||
#newSplatmapImage = currentImage
|
|
||||||
#
|
|
||||||
#func ColorPainting_EraseOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, power : float, layer : DrawingUpdateMode):
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#var currentImage : Image
|
|
||||||
#if (layer == DrawingUpdateMode.colorpainting):
|
|
||||||
#newColormapdrawingDirty = true
|
|
||||||
#currentImage = newColormapImage
|
|
||||||
#else:
|
|
||||||
#newSplatmapdrawingDirty = true
|
|
||||||
#currentImage = newSplatmapImage
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= currentImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= currentImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = currentImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
#
|
|
||||||
#thisColor.a = clampf(thisColor.a - stampAlpha * power * 0.2, 0.0, 1.0)
|
|
||||||
#
|
|
||||||
#currentImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(currentImage)
|
|
||||||
#
|
|
||||||
#if (layer == DrawingUpdateMode.colorpainting):
|
|
||||||
#currentMaterial.set_shader_parameter("ColorMap", imageTexture)
|
|
||||||
#newColormapImage = currentImage
|
|
||||||
#else:
|
|
||||||
#currentMaterial.set_shader_parameter("SplatMap", imageTexture)
|
|
||||||
#newSplatmapImage = currentImage
|
|
||||||
#
|
|
||||||
#func Sculpt_EraseOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, power : float):
|
|
||||||
#newHeightmapdrawingDirty = true
|
|
||||||
#
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= newHeightmapImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= newHeightmapImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = newHeightmapImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
##thisColor.r += (0.5 - thisColor.r) * stampAlpha * power * 0.2
|
|
||||||
#thisColor.g = clampf(thisColor.g - stampAlpha * power * 0.2, 0.0, 1.0)
|
|
||||||
#newHeightmapImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newHeightmapImage)
|
|
||||||
#
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", imageTexture)
|
|
||||||
#
|
|
||||||
#func Sculpt_SmoothOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, power : float, worldScale : float):
|
|
||||||
#newHeightmapdrawingDirty = true
|
|
||||||
#
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#var heightValue : float = clamp((targetPosition.y) / worldScale, 0.0, 1.0)
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= newHeightmapImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= newHeightmapImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = newHeightmapImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
#thisColor.r = clampf(thisColor.r + ((heightValue - thisColor.r) * stampAlpha * power * 0.2), 0.0, 1.0)
|
|
||||||
#thisColor.g = clampf(thisColor.g + ((0.0 - thisColor.g) * stampAlpha * power * 0.05), 0.0, 1.0)
|
|
||||||
#
|
|
||||||
#newHeightmapImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#pixelChanged = true
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newHeightmapImage)
|
|
||||||
#
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", imageTexture)
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#func Sculpt_DrawOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, power : float, worldScale : float):
|
|
||||||
#newHeightmapdrawingDirty = true
|
|
||||||
#
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#var heightValue = clamp(targetPosition.y / worldScale, 0.0, 1.0)
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= newHeightmapImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= newHeightmapImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = newHeightmapImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
### Handles actual value.
|
|
||||||
#if (thisColor.g == 0):
|
|
||||||
#thisColor.r = heightValue
|
|
||||||
#thisColor.r = clampf(thisColor.r + (stampAlpha * power * 0.05), 0.0, 1.0)
|
|
||||||
### Handles opacity, which always goes up.
|
|
||||||
#thisColor.g = clampf(thisColor.g + (stampAlpha * abs(power) * 0.05), 0.0, 1.0)
|
|
||||||
#newHeightmapImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#pixelChanged = true
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newHeightmapImage)
|
|
||||||
#
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", imageTexture)
|
|
||||||
#
|
|
||||||
#func Sculpt_SetHeightOnImage(targetPosition : Vector3, stampRadius : float, stampImage : Image, heightValue : float, power : float, worldScale : float):
|
|
||||||
#newHeightmapdrawingDirty = true
|
|
||||||
#
|
|
||||||
#var localPosition : Vector3 = targetPosition - global_position
|
|
||||||
#
|
|
||||||
#var localPositionPixelSpace := Vector2(localPosition.x + 256, localPosition.z + 256)
|
|
||||||
#var stampScale : float = stampImage.get_width() / stampRadius
|
|
||||||
#var stampActualResolution : float = (stampImage.get_width() / stampScale) + 1
|
|
||||||
#
|
|
||||||
#var stampPos : Vector2 = Vector2(localPositionPixelSpace.x, localPositionPixelSpace.y)
|
|
||||||
#var stampTopCornerPos : Vector2 = Vector2(localPositionPixelSpace.x - stampActualResolution / 2, localPositionPixelSpace.y - stampActualResolution / 2 )
|
|
||||||
#var currentPos : Vector2
|
|
||||||
#var thisColor: Color
|
|
||||||
#var stampAlpha: float
|
|
||||||
#var currentHeight = clamp(targetPosition.y / worldScale, 0.0, 1.0)
|
|
||||||
#heightValue = clamp(heightValue / worldScale, 0.0, 1.0)
|
|
||||||
#var hasNoAlpha = stampImage.detect_alpha() == Image.ALPHA_NONE
|
|
||||||
#
|
|
||||||
#for x in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.x + x >= newHeightmapImage.get_width() || x * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#for y in stampActualResolution:
|
|
||||||
#if (stampTopCornerPos.y + y >= newHeightmapImage.get_height() || y * stampScale >= stampImage.get_width()):
|
|
||||||
#break
|
|
||||||
#currentPos.x = stampTopCornerPos.x + x
|
|
||||||
#currentPos.y = stampTopCornerPos.y + y
|
|
||||||
#if (currentPos.x < 0 || currentPos.y < 0):
|
|
||||||
#continue
|
|
||||||
#
|
|
||||||
#thisColor = newHeightmapImage.get_pixelv(currentPos)
|
|
||||||
#if (hasNoAlpha):
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).r
|
|
||||||
#else:
|
|
||||||
#stampAlpha = stampImage.get_pixel(x * stampScale,y * stampScale).a
|
|
||||||
#
|
|
||||||
#if (thisColor.g == 0):
|
|
||||||
#thisColor.r = currentHeight
|
|
||||||
#
|
|
||||||
#thisColor.r = clampf(thisColor.r + ((heightValue - thisColor.r) * stampAlpha * power), 0.0, 1.0)
|
|
||||||
### Handles opacity, which always goes up.
|
|
||||||
#thisColor.g = clampf(thisColor.g + (stampAlpha * abs(power) * 0.2), 0.0, 1.0)
|
|
||||||
#newHeightmapImage.set_pixel(currentPos.x, currentPos.y, thisColor)
|
|
||||||
#pixelChanged = true
|
|
||||||
#
|
|
||||||
#var imageTexture = ImageTexture.create_from_image(newHeightmapImage)
|
|
||||||
#
|
|
||||||
#currentMaterial.set_shader_parameter("HeightMap", imageTexture)
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://dnan3ytl8evv1
|
|
||||||
@ -1,349 +0,0 @@
|
|||||||
[gd_scene load_steps=18 format=3 uid="uid://bsmrb5nocmcin"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dnan3ytl8evv1" path="res://addons/SunshineClouds2/Dock/CloudsEditorController.gd" id="1_c42ej"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://l06i8g7p2msv" path="res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg" id="2_8dri0"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b404vxesyde33" path="res://addons/SunshineClouds2/CloudsDriverIcon.svg" id="2_tc6ic"]
|
|
||||||
[ext_resource type="Script" uid="uid://cb3ho8b5lgx55" path="res://addons/SunshineClouds2/Dock/AccordionButton.gd" id="2_wp1ai"]
|
|
||||||
[ext_resource type="StyleBox" uid="uid://dl1aqqpt5iprl" path="res://addons/SunshineClouds2/Dock/DockPanelStyle.tres" id="2_x2oe8"]
|
|
||||||
[ext_resource type="RDShaderFile" uid="uid://ck1yv82gbxncv" path="res://addons/SunshineClouds2/Dock/MaskDrawingCompute.glsl" id="2_yqrwx"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dwbw6ov5xxrkq" path="res://addons/SunshineClouds2/Dock/Icons/cloud-solid.svg" id="7_8l8c2"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://s862ukpen76d" path="res://addons/SunshineClouds2/Dock/Icons/cloud-solid-toggled.svg" id="8_w3q10"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://lr3flf2kgx3g" path="res://addons/SunshineClouds2/Dock/Icons/cloud-solid-hovered.svg" id="9_kg56n"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dpwhekui78xl1" path="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid.svg" id="10_6j812"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ctwabn07mc0k7" path="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid-toggled.svg" id="11_20jq1"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d0orkqlt3nybm" path="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid-hovered.svg" id="12_lwakg"]
|
|
||||||
[ext_resource type="Script" uid="uid://cb12y8ylifwet" path="res://addons/SunshineClouds2/Dock/AdaptingGridContainer.gd" id="13_w3q10"]
|
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_yqrwx"]
|
|
||||||
font_size = 24
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tc6ic"]
|
|
||||||
bg_color = Color(0.257374, 0.311252, 0.386689, 0.564706)
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yqrwx"]
|
|
||||||
bg_color = Color(0.0680232, 0.0903094, 0.121509, 0.564706)
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ml10g"]
|
|
||||||
|
|
||||||
[node name="CloudsEditor" type="Control" node_paths=PackedStringArray("CloudsStatusLabel", "CloudsActiveToggle", "CloudsDriverRefresh", "CloudsDriverAccordianButton", "UseMaskToggle", "MaskStatusLabel", "MaskFilePath", "MaskResolution", "MaskWidth", "DrawWeightEnable", "DrawColorEnable", "DrawColorPicker", "DrawTools", "DrawSharpness", "DrawStrength")]
|
|
||||||
clip_contents = true
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_bottom = 278.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("1_c42ej")
|
|
||||||
CloudsStatusLabel = NodePath("ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer/Label")
|
|
||||||
CloudsActiveToggle = NodePath("ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer/CheckButton")
|
|
||||||
CloudsDriverRefresh = NodePath("ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer/DriverQueryButton")
|
|
||||||
CloudsDriverAccordianButton = NodePath("ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/AccordionButton")
|
|
||||||
UseMaskToggle = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MaskUsageCheckButton")
|
|
||||||
MaskStatusLabel = NodePath("ScrollContainer/VBoxContainer/MaskStatusOutput")
|
|
||||||
MaskFilePath = NodePath("ScrollContainer/VBoxContainer/HBoxContainer/LineEdit")
|
|
||||||
MaskResolution = NodePath("ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Resolution/SpinBox")
|
|
||||||
MaskWidth = NodePath("ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Width/SpinBox")
|
|
||||||
DrawWeightEnable = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/CloudsWeight")
|
|
||||||
DrawColorEnable = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/CloudsColor")
|
|
||||||
DrawColorPicker = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/ColorPicker")
|
|
||||||
DrawTools = NodePath("ScrollContainer/VBoxContainer/DrawTools")
|
|
||||||
DrawSharpness = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer/Sharpness")
|
|
||||||
DrawStrength = NodePath("ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer/Strength")
|
|
||||||
compute_shader = ExtResource("2_yqrwx")
|
|
||||||
DrawingColor = Color(0.769578, 0.731927, 0.149317, 1)
|
|
||||||
InvertedDrawingColor = Color(0.765928, 0.254294, 0.0203708, 1)
|
|
||||||
|
|
||||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
horizontal_scroll_mode = 0
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
alignment = 1
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer2"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Sunshine Clouds Editor"
|
|
||||||
label_settings = SubResource("LabelSettings_yqrwx")
|
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="ScrollContainer/VBoxContainer/HBoxContainer2"]
|
|
||||||
layout_mode = 2
|
|
||||||
texture = ExtResource("2_tc6ic")
|
|
||||||
expand_mode = 3
|
|
||||||
|
|
||||||
[node name="HSeparator2" type="HSeparator" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(0, 18.49)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="MaskStatusOutput" type="Label" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Mask Detected: res://CloudsMask.png"
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Mask Path:"
|
|
||||||
|
|
||||||
[node name="LineEdit" type="LineEdit" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "res://CloudsMask.exr"
|
|
||||||
|
|
||||||
[node name="MaskBuildButton" type="Button" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 0
|
|
||||||
text = "Refresh Mask Reference"
|
|
||||||
|
|
||||||
[node name="MaskSettings" type="PanelContainer" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_styles/panel = ExtResource("2_x2oe8")
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/MaskSettings"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="AccordionButton" type="Button" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_styles/hover = SubResource("StyleBoxFlat_tc6ic")
|
|
||||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_yqrwx")
|
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_ml10g")
|
|
||||||
text = "Mask Settings"
|
|
||||||
icon = ExtResource("2_8dri0")
|
|
||||||
alignment = 0
|
|
||||||
icon_alignment = 2
|
|
||||||
expand_icon = true
|
|
||||||
script = ExtResource("2_wp1ai")
|
|
||||||
metadata/_custom_type_script = "uid://cb3ho8b5lgx55"
|
|
||||||
|
|
||||||
[node name="Resolution" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer"]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Resolution"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "Mask Resolution"
|
|
||||||
|
|
||||||
[node name="SpinBox" type="SpinBox" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Resolution"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
min_value = 32.0
|
|
||||||
max_value = 1024.0
|
|
||||||
value = 128.0
|
|
||||||
|
|
||||||
[node name="Width" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer"]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Width"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "Mask Width"
|
|
||||||
|
|
||||||
[node name="SpinBox" type="SpinBox" parent="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Width"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
min_value = 12.0
|
|
||||||
max_value = 1024.0
|
|
||||||
value = 32.0
|
|
||||||
suffix = "km"
|
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_styles/panel = ExtResource("2_x2oe8")
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/PanelContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="AccordionButton" type="Button" parent="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_styles/hover = SubResource("StyleBoxFlat_tc6ic")
|
|
||||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_yqrwx")
|
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_ml10g")
|
|
||||||
text = "Driver Controls
|
|
||||||
"
|
|
||||||
icon = ExtResource("2_8dri0")
|
|
||||||
alignment = 0
|
|
||||||
icon_alignment = 2
|
|
||||||
expand_icon = true
|
|
||||||
script = ExtResource("2_wp1ai")
|
|
||||||
metadata/_custom_type_script = "uid://cb3ho8b5lgx55"
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Clouds not present"
|
|
||||||
|
|
||||||
[node name="CheckButton" type="CheckButton" parent="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Clouds Updating"
|
|
||||||
|
|
||||||
[node name="DriverQueryButton" type="Button" parent="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer"]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 0
|
|
||||||
text = "Search for Driver"
|
|
||||||
|
|
||||||
[node name="DrawTools" type="PanelContainer" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_styles/panel = ExtResource("2_x2oe8")
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/DrawTools"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="MaskUsageCheckButton" type="CheckButton" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Clouds Mask Enabled"
|
|
||||||
|
|
||||||
[node name="MarginContainer2" type="MarginContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_constants/margin_left = 10
|
|
||||||
theme_override_constants/margin_top = 10
|
|
||||||
theme_override_constants/margin_right = 10
|
|
||||||
theme_override_constants/margin_bottom = 10
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer2"]
|
|
||||||
custom_minimum_size = Vector2(0, 50)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Draw mode allows for creation of clouds directly using a mask texture.
|
|
||||||
|
|
||||||
When mask mode is disabled, the extra large noise pattern is used to add large scale structures to the world, when mask usage is enabled it is treated as a stationary mask in the world, with rgb being used to tint the clouds, and the alpha used to draw clouds.
|
|
||||||
|
|
||||||
Drawing Controls (When drawing either weight, or color):
|
|
||||||
Scroll Wheel: Scale up and down brush size
|
|
||||||
Left Mouse Button: Paint Clouds
|
|
||||||
Ctrl+Left Mouse Button: Erase Clouds
|
|
||||||
Escape: Disable draw mode"
|
|
||||||
autowrap_mode = 3
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(0, 17.4)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_constants/margin_left = 10
|
|
||||||
theme_override_constants/margin_top = 10
|
|
||||||
theme_override_constants/margin_right = 10
|
|
||||||
theme_override_constants/margin_bottom = 10
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="CloudsWeight" type="TextureButton" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(50, 50)
|
|
||||||
layout_mode = 2
|
|
||||||
tooltip_text = "Draw Cloud Weight"
|
|
||||||
focus_mode = 0
|
|
||||||
toggle_mode = true
|
|
||||||
texture_normal = ExtResource("7_8l8c2")
|
|
||||||
texture_pressed = ExtResource("8_w3q10")
|
|
||||||
texture_hover = ExtResource("9_kg56n")
|
|
||||||
ignore_texture_size = true
|
|
||||||
stretch_mode = 4
|
|
||||||
|
|
||||||
[node name="CloudsColor" type="TextureButton" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(50, 50)
|
|
||||||
layout_mode = 2
|
|
||||||
tooltip_text = "Draw Cloud Color"
|
|
||||||
focus_mode = 0
|
|
||||||
toggle_mode = true
|
|
||||||
texture_normal = ExtResource("10_6j812")
|
|
||||||
texture_pressed = ExtResource("11_20jq1")
|
|
||||||
texture_hover = ExtResource("12_lwakg")
|
|
||||||
ignore_texture_size = true
|
|
||||||
stretch_mode = 4
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
theme_override_constants/separation = 25
|
|
||||||
alignment = 2
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
tooltip_text = "Will fill the mask with the selected color and draw strength (This cannot be undone, make backups of your mask texture)."
|
|
||||||
focus_mode = 0
|
|
||||||
theme_override_colors/font_hover_color = Color(1, 0.1, 0, 0.968627)
|
|
||||||
theme_override_colors/font_color = Color(0.94, 0.313333, 0, 0.682353)
|
|
||||||
text = "Flood Fill mask"
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(0, 17.4)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_override_constants/h_separation = 20
|
|
||||||
columns = 2
|
|
||||||
script = ExtResource("13_w3q10")
|
|
||||||
TargetColumnCount = 2
|
|
||||||
MinimumColumnSize = 250.0
|
|
||||||
|
|
||||||
[node name="ColorPicker" type="ColorPicker" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 0
|
|
||||||
size_flags_vertical = 0
|
|
||||||
theme_override_constants/sv_width = 240
|
|
||||||
theme_override_constants/sv_height = 155
|
|
||||||
edit_alpha = false
|
|
||||||
color_mode = 3
|
|
||||||
sampler_visible = false
|
|
||||||
presets_visible = false
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Draw Strength:"
|
|
||||||
|
|
||||||
[node name="Strength" type="HSlider" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
max_value = 5.0
|
|
||||||
step = 0.0
|
|
||||||
value = 0.5
|
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Draw Sharpness:"
|
|
||||||
|
|
||||||
[node name="Sharpness" type="HSlider" parent="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/GridContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
min_value = 0.05
|
|
||||||
max_value = 0.95
|
|
||||||
step = 0.0
|
|
||||||
value = 0.2
|
|
||||||
|
|
||||||
[node name="HSeparator" type="HSeparator" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(0, 50)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[connection signal="text_submitted" from="ScrollContainer/VBoxContainer/HBoxContainer/LineEdit" to="." method="UpdateMaskSettings" unbinds=1]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/MaskBuildButton" to="." method="UpdateMaskSettings"]
|
|
||||||
[connection signal="value_changed" from="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Resolution/SpinBox" to="." method="UpdateMaskSettings" unbinds=1]
|
|
||||||
[connection signal="value_changed" from="ScrollContainer/VBoxContainer/MaskSettings/VBoxContainer/Width/SpinBox" to="." method="UpdateMaskSettings" unbinds=1]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer/CheckButton" to="." method="SetCloudsUpdating"]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/PanelContainer/VBoxContainer/VBoxContainer/DriverQueryButton" to="." method="RefreshSceneNode"]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MaskUsageCheckButton" to="." method="UpdateMaskSettings"]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/CloudsWeight" to="." method="DrawWeightToggled"]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/CloudsColor" to="." method="DrawColorToggled"]
|
|
||||||
[connection signal="pressed" from="ScrollContainer/VBoxContainer/DrawTools/VBoxContainer/MarginContainer/VBoxContainer/HBoxContainer/HBoxContainer/Button" to="." method="FloodFill"]
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://dl1aqqpt5iprl"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
bg_color = Color(0.1302, 0.16345, 0.21, 0.564706)
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 320 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="caret-down-solid.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="159.88221"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="1912"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ffffff;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://l06i8g7p2msv"
|
|
||||||
path="res://.godot/imported/caret-down-solid.svg-b4d9f42bb77b5f046534db9fb6ce3529.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/caret-down-solid.svg"
|
|
||||||
dest_files=["res://.godot/imported/caret-down-solid.svg-b4d9f42bb77b5f046534db9fb6ce3529.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 320 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="caret-up-solid.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="159.88221"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="1912"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ffffff;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://smkr8vss70le"
|
|
||||||
path="res://.godot/imported/caret-up-solid.svg-d500cf31184acfd701f905947788a1ee.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/caret-up-solid.svg"
|
|
||||||
dest_files=["res://.godot/imported/caret-up-solid.svg-d500cf31184acfd701f905947788a1ee.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 640 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="cloud-solid-hovered.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="320.70674"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#adadad;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://lr3flf2kgx3g"
|
|
||||||
path="res://.godot/imported/cloud-solid-hovered.svg-5915ad0b501f94dd6ac2943fa2d9b9ee.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/cloud-solid-hovered.svg"
|
|
||||||
dest_files=["res://.godot/imported/cloud-solid-hovered.svg-5915ad0b501f94dd6ac2943fa2d9b9ee.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 640 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="cloud-solid-toggled.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#e59000;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff7c6f;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop4" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient1"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#a8e7ff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#eadfdb;stop-opacity:1;"
|
|
||||||
offset="0.88643533"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient1"
|
|
||||||
id="linearGradient2"
|
|
||||||
x1="226.4411"
|
|
||||||
y1="562.0174"
|
|
||||||
x2="413.55896"
|
|
||||||
y2="-50.017536"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<radialGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3"
|
|
||||||
id="radialGradient4"
|
|
||||||
cx="320"
|
|
||||||
cy="256"
|
|
||||||
fx="320"
|
|
||||||
fy="256"
|
|
||||||
r="320.5"
|
|
||||||
gradientTransform="matrix(1,0,0,0.70046802,0,76.680187)"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="320.70674"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:url(#linearGradient2);fill-opacity:1;stroke:url(#radialGradient4);stroke-opacity:1;stroke-width:8.9;stroke-dasharray:none" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 2.8 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://s862ukpen76d"
|
|
||||||
path="res://.godot/imported/cloud-solid-toggled.svg-9ab110cc1532b9330c92af51d0a84250.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/cloud-solid-toggled.svg"
|
|
||||||
dest_files=["res://.godot/imported/cloud-solid-toggled.svg-9ab110cc1532b9330c92af51d0a84250.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 640 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="cloud-solid.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="320.07853"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ffffff;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dwbw6ov5xxrkq"
|
|
||||||
path="res://.godot/imported/cloud-solid.svg-aeca2f6427f3dee8809ef0f3335ef2ec.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/cloud-solid.svg"
|
|
||||||
dest_files=["res://.godot/imported/cloud-solid.svg-aeca2f6427f3dee8809ef0f3335ef2ec.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 576 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="paintbrush-solid-hovered.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="288.66748"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#adadad;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://d0orkqlt3nybm"
|
|
||||||
path="res://.godot/imported/paintbrush-solid-hovered.svg-884c7bfe6963ebc68bd6679cc8b93430.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid-hovered.svg"
|
|
||||||
dest_files=["res://.godot/imported/paintbrush-solid-hovered.svg-884c7bfe6963ebc68bd6679cc8b93430.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 576 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="paintbrush-solid-toggled.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient7"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#00b8dd;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop8" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff7c6f;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop9" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient1"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ff3a79;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop1" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#e7b500;stop-opacity:1;"
|
|
||||||
offset="0.14037855"
|
|
||||||
id="stop4" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#91ff9d;stop-opacity:1;"
|
|
||||||
offset="0.2988959"
|
|
||||||
id="stop5" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#98fffe;stop-opacity:1;"
|
|
||||||
offset="0.45544165"
|
|
||||||
id="stop6" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#fad9ff;stop-opacity:1;"
|
|
||||||
offset="0.6472792"
|
|
||||||
id="stop7" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="0.79179811"
|
|
||||||
id="stop2" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient1"
|
|
||||||
id="linearGradient2"
|
|
||||||
x1="193.32843"
|
|
||||||
y1="504.4082"
|
|
||||||
x2="414.53943"
|
|
||||||
y2="7.5601439"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<radialGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient7"
|
|
||||||
id="radialGradient9"
|
|
||||||
cx="303.93396"
|
|
||||||
cy="255.98415"
|
|
||||||
fx="303.93396"
|
|
||||||
fy="255.98415"
|
|
||||||
r="271.93396"
|
|
||||||
gradientTransform="matrix(1,0,0,0.94146334,0,14.984458)"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="288.66748"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:url(#linearGradient2);fill-opacity:1;stroke:url(#radialGradient9);stroke-width:5.39999971;stroke-dasharray:none" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.3 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://ctwabn07mc0k7"
|
|
||||||
path="res://.godot/imported/paintbrush-solid-toggled.svg-9dba8ea6578f4d62c8d8ac5f0866c965.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid-toggled.svg"
|
|
||||||
dest_files=["res://.godot/imported/paintbrush-solid-toggled.svg-9dba8ea6578f4d62c8d8ac5f0866c965.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 576 512"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
sodipodi:docname="paintbrush-solid.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs1" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:zoom="1.5917969"
|
|
||||||
inkscape:cx="288.03926"
|
|
||||||
inkscape:cy="256"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1017"
|
|
||||||
inkscape:window-x="-8"
|
|
||||||
inkscape:window-y="-8"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" />
|
|
||||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
|
||||||
<path
|
|
||||||
d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"
|
|
||||||
id="path1"
|
|
||||||
style="fill:#ffffff;fill-opacity:1" />
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://dpwhekui78xl1"
|
|
||||||
path="res://.godot/imported/paintbrush-solid.svg-45fae2590479fea3f32802be20a762e4.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/Icons/paintbrush-solid.svg"
|
|
||||||
dest_files=["res://.godot/imported/paintbrush-solid.svg-45fae2590479fea3f32802be20a762e4.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
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/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
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
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
#[compute]
|
|
||||||
#version 450
|
|
||||||
|
|
||||||
layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in;
|
|
||||||
|
|
||||||
layout(rgba16f, binding = 0) uniform image2D mask_image;
|
|
||||||
|
|
||||||
layout(push_constant, std430) uniform Params {
|
|
||||||
vec2 brush_position;
|
|
||||||
float brush_radius;
|
|
||||||
float brush_sharpness;
|
|
||||||
|
|
||||||
float brush_strength;
|
|
||||||
float editingtype;
|
|
||||||
float mask_resolution;
|
|
||||||
float reserved;
|
|
||||||
|
|
||||||
vec4 brush_value;
|
|
||||||
} params;
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
ivec2 uv = ivec2(gl_GlobalInvocationID.xy);
|
|
||||||
ivec2 size = ivec2(params.mask_resolution);
|
|
||||||
|
|
||||||
if (uv.x >= size.x || uv.y >= size.y) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec4 current = imageLoad(mask_image, uv);
|
|
||||||
float delta = 1.0 - smoothstep(params.brush_sharpness, 1.0, clamp(distance(params.brush_position, uv) / params.brush_radius, 0.0, 1.0));
|
|
||||||
switch (int(params.editingtype)) {
|
|
||||||
case 0: //draw weight (alpha channel)
|
|
||||||
if (params.brush_strength > 0.0){
|
|
||||||
current.a = min(current.a + (delta * params.brush_strength), 1.0);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
current.a = max(current.a - (delta * abs(params.brush_strength)), 0.0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1: //draw color rgb
|
|
||||||
current.rgb = mix(current.rgb, params.brush_value.rgb, delta * params.brush_strength);
|
|
||||||
break;
|
|
||||||
case 2: //set value all
|
|
||||||
current = params.brush_value;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
imageStore(mask_image, uv, current);
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="glsl"
|
|
||||||
type="RDShaderFile"
|
|
||||||
uid="uid://ck1yv82gbxncv"
|
|
||||||
path="res://.godot/imported/MaskDrawingCompute.glsl-673e2cf943808157ccf1bdd56ce2cf1f.res"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/SunshineClouds2/Dock/MaskDrawingCompute.glsl"
|
|
||||||
dest_files=["res://.godot/imported/MaskDrawingCompute.glsl-673e2cf943808157ccf1bdd56ce2cf1f.res"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://b3fgicfsq7yvh"]
|
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_t2125"]
|
|
||||||
offsets = PackedFloat32Array(0, 0.911197, 0.945946, 1)
|
|
||||||
colors = PackedColorArray(1, 1, 1, 0.0784314, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0)
|
|
||||||
|
|
||||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_2n21o"]
|
|
||||||
gradient = SubResource("Gradient_t2125")
|
|
||||||
width = 2048
|
|
||||||
height = 2048
|
|
||||||
fill = 1
|
|
||||||
fill_from = Vector2(0.5, 0.5)
|
|
||||||
fill_to = Vector2(1, 0.5)
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
transparency = 1
|
|
||||||
cull_mode = 2
|
|
||||||
depth_draw_mode = 2
|
|
||||||
no_depth_test = true
|
|
||||||
shading_mode = 0
|
|
||||||
disable_fog = true
|
|
||||||
albedo_color = Color(0.769578, 0.731927, 0.149317, 1)
|
|
||||||
albedo_texture = SubResource("GradientTexture2D_2n21o")
|
|
||||||
@ -1,77 +0,0 @@
|
|||||||
[gd_resource type="CompositorEffect" script_class="SunshineCloudsGD" load_steps=11 format=3 uid="uid://lftlvgnckiw"]
|
|
||||||
|
|
||||||
[ext_resource type="RDShaderFile" uid="uid://dx1y5cye1m1hu" path="res://addons/SunshineClouds2/SunshineCloudsCompute.glsl" id="1_yndmv"]
|
|
||||||
[ext_resource type="CompressedTexture3D" uid="uid://dei12lsgrjpyu" path="res://addons/SunshineClouds2/NoiseTextures/curl_noise_varied.tga" id="2_tfvib"]
|
|
||||||
[ext_resource type="CompressedTexture3D" uid="uid://b3uyfsp4in821" path="res://addons/SunshineClouds2/NoiseTextures/bluenoise_Dither.png" id="3_ueybc"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://nqybc2s70fwk" path="res://CloudsMask.exr" id="4_yndmv"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://g02m2ewpwusq" path="res://addons/SunshineClouds2/NoiseTextures/HeightGradient.tres" id="5_mx051"]
|
|
||||||
[ext_resource type="NoiseTexture3D" uid="uid://6ed3lvlpbqmg" path="res://addons/SunshineClouds2/NoiseTextures/LargeScaleNoise.tres" id="6_nhpek"]
|
|
||||||
[ext_resource type="RDShaderFile" uid="uid://chxheyp4eohbc" path="res://addons/SunshineClouds2/SunshineCloudsPostCompute.glsl" id="8_jjdov"]
|
|
||||||
[ext_resource type="RDShaderFile" uid="uid://crfpk8ta4qxsk" path="res://addons/SunshineClouds2/SunshineCloudsPreCompute.glsl" id="9_cr0n2"]
|
|
||||||
[ext_resource type="Script" uid="uid://dnblgqynq1t7l" path="res://addons/SunshineClouds2/SunshineClouds.gd" id="10_08sum"]
|
|
||||||
[ext_resource type="NoiseTexture3D" uid="uid://bnck2kxeg5bkg" path="res://addons/SunshineClouds2/NoiseTextures/SmallScaleNoise.tres" id="11_ea8oe"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
resource_local_to_scene = false
|
|
||||||
resource_name = ""
|
|
||||||
enabled = true
|
|
||||||
effect_callback_type = 3
|
|
||||||
access_resolved_color = true
|
|
||||||
access_resolved_depth = true
|
|
||||||
needs_motion_vectors = true
|
|
||||||
needs_normal_roughness = false
|
|
||||||
script = ExtResource("10_08sum")
|
|
||||||
clouds_coverage = 0.726
|
|
||||||
clouds_density = 1.0
|
|
||||||
atmospheric_density = 0.5
|
|
||||||
lighting_density = 0.55
|
|
||||||
fog_effect_ground = 1.0
|
|
||||||
clouds_anisotropy = 0.057
|
|
||||||
cloud_ambient_color = Color(1, 1, 1, 1)
|
|
||||||
cloud_ambient_tint = Color(0.1276, 0.18766, 0.22, 1)
|
|
||||||
atmosphere_color = Color(0.280153, 0.544962, 0.759771, 1)
|
|
||||||
ambient_occlusion_color = Color(0.693375, 0.223129, 0, 0.466667)
|
|
||||||
accumulation_decay = 0.8
|
|
||||||
extra_large_noise_scale = 298497.0
|
|
||||||
large_noise_scale = 85138.6
|
|
||||||
medium_noise_scale = 20043.3
|
|
||||||
small_noise_scale = 6901.78
|
|
||||||
clouds_sharpness = 0.5
|
|
||||||
clouds_detail_power = 0.0
|
|
||||||
curl_noise_strength = 6184.1
|
|
||||||
lighting_sharpness = 0.34
|
|
||||||
cloud_floor = 1500.0
|
|
||||||
cloud_ceiling = 15000.0
|
|
||||||
max_step_count = 300.0
|
|
||||||
max_lighting_steps = 32.0
|
|
||||||
resolution_scale = 1
|
|
||||||
lod_bias = 1.0
|
|
||||||
dither_noise = ExtResource("3_ueybc")
|
|
||||||
height_gradient = ExtResource("5_mx051")
|
|
||||||
extra_large_noise_patterns = ExtResource("4_yndmv")
|
|
||||||
large_scale_noise = ExtResource("6_nhpek")
|
|
||||||
medium_scale_noise = ExtResource("2_tfvib")
|
|
||||||
small_scale_noise = ExtResource("11_ea8oe")
|
|
||||||
curl_noise = ExtResource("2_tfvib")
|
|
||||||
dither_speed = 100.825
|
|
||||||
blur_power = 1.0
|
|
||||||
blur_quality = 1.0
|
|
||||||
reflections_globalshaderparam = ""
|
|
||||||
min_step_distance = 100.0
|
|
||||||
max_step_distance = 600.0
|
|
||||||
lighting_travel_distance = 8000.0
|
|
||||||
extra_large_used_as_mask = true
|
|
||||||
mask_width_km = 512.0
|
|
||||||
pre_pass_compute_shader = ExtResource("9_cr0n2")
|
|
||||||
compute_shader = ExtResource("1_yndmv")
|
|
||||||
post_pass_compute_shader = ExtResource("8_jjdov")
|
|
||||||
origin_offset = Vector3(0, 0, 0)
|
|
||||||
wind_direction = Vector3(1, 0, 1)
|
|
||||||
extra_large_scale_clouds_position = Vector3(109661, 0, 109661)
|
|
||||||
large_scale_clouds_position = Vector3(21006.4, 0, 21006.4)
|
|
||||||
medium_scale_clouds_position = Vector3(3193.39, 0, 3193.39)
|
|
||||||
detail_clouds_position = Vector3(859.701, -859.701, 859.701)
|
|
||||||
current_time = 274.928
|
|
||||||
directional_lights_data = Array[Vector4]([Vector4(0.240525, 0.876693, -0.416602, 32), Vector4(1, 1, 1, 1)])
|
|
||||||
point_lights_data = Array[Vector4]([])
|
|
||||||
point_effector_data = Array[Vector4]([])
|
|
||||||