Compare commits
3 Commits
36692e6872
...
ec65f87b53
Author | SHA1 | Date |
---|---|---|
HumanoidSandvichDispenser | ec65f87b53 | |
John Montagu, the 4th Earl of Sandvich | 8a84892fff | |
John Montagu, the 4th Earl of Sandvich | 2f5f75e12c |
|
@ -18,8 +18,8 @@ public partial class CameraBounds : Node2D
|
|||
|
||||
public override void _Ready()
|
||||
{
|
||||
Trigger.BodyEntered += OnBodyEntered;
|
||||
Trigger.BodyExited += OnBodyExited;
|
||||
//Trigger.BodyEntered += OnBodyEntered;
|
||||
//Trigger.BodyExited += OnBodyExited;
|
||||
}
|
||||
|
||||
private void OnBodyEntered(Node2D body)
|
||||
|
|
|
@ -36,6 +36,9 @@ public sealed partial class Player : Character
|
|||
[Export]
|
||||
public PlayerCamera Camera { get; set; }
|
||||
|
||||
[Export]
|
||||
public GodotObject PCamera { get; set; }
|
||||
|
||||
[Export]
|
||||
public Marker2D DirectionMarker { get; private set; }
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=74 format=3 uid="uid://b2254pup8k161"]
|
||||
[gd_scene load_steps=77 format=3 uid="uid://b2254pup8k161"]
|
||||
|
||||
[ext_resource type="Script" path="res://Characters/Player.cs" id="1_flygr"]
|
||||
[ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="2_ngsgt"]
|
||||
|
@ -33,6 +33,8 @@
|
|||
[ext_resource type="PackedScene" uid="uid://ce0ph4wk0ylra" path="res://UI/TargetTracer.tscn" id="22_hxi53"]
|
||||
[ext_resource type="Texture2D" uid="uid://bd8l8kafb42dt" path="res://Assets/Sprites/Particles/circle.png" id="22_uefct"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcgm3r168qjn3" path="res://Assets/Sprites/Particles/cast-effect.png" id="24_njn4h"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="27_mndpv"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="28_6gq8l"]
|
||||
[ext_resource type="Script" path="res://Items/PlayerInventory.cs" id="30_y2wmw"]
|
||||
[ext_resource type="PackedScene" uid="uid://cgg0sfm2qeiwn" path="res://Items/Weapons/Bow.tscn" id="31_mofvy"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvqap2uhcah63" path="res://Items/Weapons/Sword.tscn" id="31_ql4as"]
|
||||
|
@ -44,6 +46,12 @@ shader_parameter/color = Vector4(1, 1, 1, 1)
|
|||
shader_parameter/intensity = 0.0
|
||||
shader_parameter/alpha_modulate = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_535hq"]
|
||||
script = ExtResource("28_6gq8l")
|
||||
duration = 1.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Animation" id="Animation_imqdv"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
|
@ -594,6 +602,15 @@ StateMachine = NodePath("StateMachine")
|
|||
Hurtbox = NodePath("Hurtbox")
|
||||
Faction = 1
|
||||
|
||||
[node name="PCamera" type="Node2D" parent="."]
|
||||
script = ExtResource("27_mndpv")
|
||||
priority = 1
|
||||
follow_mode = 2
|
||||
zoom = Vector2(4, 4)
|
||||
tween_resource = SubResource("Resource_535hq")
|
||||
tween_on_load = false
|
||||
draw_limits = true
|
||||
|
||||
[node name="Stats" type="Node" parent="."]
|
||||
script = ExtResource("4_06oya")
|
||||
|
||||
|
@ -765,6 +782,7 @@ stream = ExtResource("12_vvem5")
|
|||
unique_name_in_owner = true
|
||||
|
||||
[node name="Camera2D" parent="." instance=ExtResource("4_ym125")]
|
||||
enabled = false
|
||||
zoom = Vector2(4, 4)
|
||||
position_smoothing_speed = 8.0
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://1pb3mpmrl7lc"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://1pb3mpmrl7lc"]
|
||||
|
||||
[ext_resource type="Script" path="res://Utils/World.cs" id="1_1k6ew"]
|
||||
[ext_resource type="PackedScene" uid="uid://c271rdjhd1gfo" path="res://UI/Base.tscn" id="2_mm0qt"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="3_ge4f0"]
|
||||
|
||||
[node name="World" type="Node2D" node_paths=PackedStringArray("MusicPlayer")]
|
||||
process_mode = 3
|
||||
|
@ -24,3 +25,8 @@ mouse_filter = 2
|
|||
|
||||
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
|
||||
bus = &"Music"
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="Camera2D"]
|
||||
script = ExtResource("3_ge4f0")
|
||||
|
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://censw3w53gldn"
|
||||
path="res://.godot/imported/PhantomCameraBtnPrimaryDefault.png-fcf3696b583a82b1078609a5bfd648f5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png"
|
||||
dest_files=["res://.godot/imported/PhantomCameraBtnPrimaryDefault.png-fcf3696b583a82b1078609a5bfd648f5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 9.7 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://pvr8mbvl1onm"
|
||||
path="res://.godot/imported/PhantomCameraBtnPrimaryHover.png-3d2e4d225f6a86ce8a9c981ee7926a16.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png"
|
||||
dest_files=["res://.godot/imported/PhantomCameraBtnPrimaryHover.png-3d2e4d225f6a86ce8a9c981ee7926a16.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
|
@ -0,0 +1,7 @@
|
|||
#####################
|
||||
EXAMPLE ASSET CREDITS
|
||||
#####################
|
||||
|
||||
# level_spritesheet
|
||||
https://opengameart.org/content/a-platformer-in-the-forest
|
||||
https://opengameart.org/users/buch
|
718
addons/phantom_camera/examples/example_scenes/2D-4.3/2d_limit_example_scene.tscn
vendored
100644
|
@ -0,0 +1,120 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://7kh0xydx0b1o"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd" id="1_jnc14"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_62b2n"]
|
||||
[ext_resource type="Texture2D" uid="uid://ci76plsequlrq" path="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg" id="2_yr8cm"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="4_rloon"]
|
||||
[ext_resource type="Resource" uid="uid://cecrnq0wnkexh" path="res://addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres" id="5_4iyk1"]
|
||||
[ext_resource type="Resource" uid="uid://cllveybboaqk5" path="res://addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres" id="6_2h6fv"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5hryl"]
|
||||
bg_color = Color(0.85098, 0.894118, 0.937255, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.113725, 0.113725, 0.113725, 1)
|
||||
corner_radius_top_left = 7
|
||||
corner_radius_top_right = 7
|
||||
corner_radius_bottom_right = 7
|
||||
corner_radius_bottom_left = 7
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xj4ar"]
|
||||
size = Vector2(64, 57)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_18i13"]
|
||||
size = Vector2(64, 57)
|
||||
|
||||
[node name="CharacterBody2D" type="CharacterBody2D"]
|
||||
script = ExtResource("1_jnc14")
|
||||
|
||||
[node name="DarkOverlay" type="ColorRect" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -1000.0
|
||||
offset_top = -1000.0
|
||||
offset_right = 1000.0
|
||||
offset_bottom = 1000.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0.615686)
|
||||
|
||||
[node name="PlayerVisuals" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerSprite" type="Sprite2D" parent="PlayerVisuals"]
|
||||
unique_name_in_owner = true
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("2_yr8cm")
|
||||
|
||||
[node name="InteractionPrompt" type="Panel" parent="PlayerVisuals"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -16.0
|
||||
offset_top = -66.0
|
||||
offset_right = 16.0
|
||||
offset_bottom = -34.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
size_flags_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_5hryl")
|
||||
|
||||
[node name="Label" type="Label" parent="PlayerVisuals/InteractionPrompt"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -3.0
|
||||
offset_bottom = 5.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||
theme_override_fonts/font = ExtResource("2_62b2n")
|
||||
theme_override_font_sizes/font_size = 26
|
||||
text = "F"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -0.5)
|
||||
shape = SubResource("RectangleShape2D_xj4ar")
|
||||
|
||||
[node name="PlayerArea2D" type="Area2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
priority = 20
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerArea2D"]
|
||||
position = Vector2(0, -0.5)
|
||||
shape = SubResource("RectangleShape2D_18i13")
|
||||
|
||||
[node name="ItemFocusPhantomCamera2D" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(0, -122)
|
||||
script = ExtResource("4_rloon")
|
||||
zoom = Vector2(2, 2)
|
||||
frame_preview = false
|
||||
tween_resource = ExtResource("5_4iyk1")
|
||||
follow_damping_value = Vector2(0, 0)
|
||||
draw_limits = true
|
||||
|
||||
[node name="InventoryPhantomCamera2D" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(-183, -5)
|
||||
script = ExtResource("4_rloon")
|
||||
zoom = Vector2(2.5, 2.5)
|
||||
frame_preview = false
|
||||
tween_resource = ExtResource("6_2h6fv")
|
||||
follow_damping_value = Vector2(0, 0)
|
||||
draw_limits = true
|
|
@ -0,0 +1,379 @@
|
|||
[gd_scene load_steps=40 format=3 uid="uid://ci12ytew5vwty"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_wn7ww"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/npc.gd" id="2_2n1da"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_e7gxt"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_tvx5n"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_y3dy8"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="3_f5qrw"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_a27nb"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_m2vbn"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="4_moad5"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="7_jitt8"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jtk1d"]
|
||||
script = ExtResource("4_m2vbn")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_o161n"]
|
||||
script = ExtResource("4_m2vbn")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_7tjw4"]
|
||||
size = Vector3(2, 0.5, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hpllm"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_65o6h"]
|
||||
size = Vector3(2, 0.5, 4)
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_tpc7d"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_g0eml"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v5iy7"]
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 1)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tpvee"]
|
||||
script = ExtResource("7_jitt8")
|
||||
duration = 0.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bxbnv"]
|
||||
script = ExtResource("4_m2vbn")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_wcrbb"]
|
||||
size = Vector3(6.8, 0.1, 5.4)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7ih0k"]
|
||||
script = ExtResource("7_jitt8")
|
||||
duration = 0.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4iyps"]
|
||||
script = ExtResource("4_m2vbn")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ctyr8"]
|
||||
size = Vector3(7.4, 0.1, 3.6)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_x5y0u"]
|
||||
script = ExtResource("7_jitt8")
|
||||
duration = 0.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pgiyx"]
|
||||
script = ExtResource("4_m2vbn")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ua072"]
|
||||
size = Vector3(6.8, 0.1, 3.6)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ugc3s"]
|
||||
size = Vector3(1, 1, 2)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_68thd"]
|
||||
albedo_color = Color(0.34902, 0.862745, 0.854902, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wphly"]
|
||||
size = Vector3(1, 0.5, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_gyp5s"]
|
||||
size = Vector3(20, 40, 30)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lfaqs"]
|
||||
size = Vector3(20, 40, 30)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_n70lt"]
|
||||
size = Vector3(14, 40, 6)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_jxmqm"]
|
||||
size = Vector3(14, 40, 6)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_x0tgm"]
|
||||
size = Vector3(8, 40, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_t67ef"]
|
||||
size = Vector3(50, 40, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rmslh"]
|
||||
size = Vector3(0.5, 6, 13.5)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_242ij"]
|
||||
size = Vector3(2, 3, 3)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_niuda"]
|
||||
size = Vector3(8, 6, 0.5)
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("1_wn7ww")
|
||||
|
||||
[node name="PlayerGroup" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="PlayerGroup" instance=ExtResource("2_tvx5n")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.53871, 0.5, 7.26232)
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="PlayerGroup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -2.47682, -0.0708016, 7.93048)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("2_e7gxt")
|
||||
font_size = 48
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="PlayerGroup" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232)
|
||||
script = ExtResource("2_y3dy8")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D/PlayerVisual")
|
||||
tween_resource = ExtResource("4_a27nb")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_jtk1d")
|
||||
follow_offset = Vector3(0, 1.5, 2.5)
|
||||
follow_damping = true
|
||||
|
||||
[node name="NPCGroup" type="Node" parent="."]
|
||||
|
||||
[node name="NPCPhantomCamera3D" type="Node3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.616596, -0.109786, 0.779587, -2.23517e-08, 0.990229, 0.13945, -0.78728, -0.0859841, 0.610571, -2.98802, 1.50739, 1.19719)
|
||||
script = ExtResource("2_y3dy8")
|
||||
tween_resource = ExtResource("4_a27nb")
|
||||
camera_3d_resource = SubResource("Resource_o161n")
|
||||
|
||||
[node name="NPCDescriptionLabel" type="Label3D" parent="NPCGroup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866025, -3.04693, 0.367287, 0.953757)
|
||||
text = "Input Example"
|
||||
font = ExtResource("2_e7gxt")
|
||||
|
||||
[node name="NPCDialogueExampleLabel" type="Label3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 4.54671e-10, 1.65487e-10, 4.25644e-10, 0.939693, 0.34202, 0, -0.34202, 0.939693, -4.46738, 1.58641, -0.253679)
|
||||
modulate = Color(1, 0.603922, 0.254902, 1)
|
||||
text = "Press [ F ] to change camera"
|
||||
font = ExtResource("2_e7gxt")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="NPCGroup"]
|
||||
transform = Transform3D(0.819152, 4.83851e-10, -0.573576, -3.92481e-09, 1, -6.3473e-09, 0.573576, 7.45058e-09, 0.819152, -3.46138, -0.4, 0.875321)
|
||||
mesh = SubResource("BoxMesh_7tjw4")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_hpllm")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="NPCInteractionArea3D" type="Area3D" parent="NPCGroup/NPCInteractionZoneMesh"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
monitorable = false
|
||||
|
||||
[node name="NPCInterationCollisionShape3D" type="CollisionShape3D" parent="NPCGroup/NPCInteractionZoneMesh/NPCInteractionArea3D"]
|
||||
shape = SubResource("BoxShape3D_65o6h")
|
||||
|
||||
[node name="NPC" type="StaticBody3D" parent="NPCGroup"]
|
||||
transform = Transform3D(1, 4.83851e-10, 0, 4.25644e-10, 1, -7.45058e-09, 0, 7.45058e-09, 1, -4.56338, 0.5, -0.272679)
|
||||
script = ExtResource("2_2n1da")
|
||||
|
||||
[node name="PlayerCollisionShape3D2" type="CollisionShape3D" parent="NPCGroup/NPC"]
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_tpc7d")
|
||||
|
||||
[node name="NPCMesh" type="MeshInstance3D" parent="NPCGroup/NPC"]
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("CapsuleMesh_g0eml")
|
||||
skeleton = NodePath("../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_v5iy7")
|
||||
|
||||
[node name="MoveToLocation" type="Node3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.70084, 0.5, 0.962891)
|
||||
|
||||
[node name="FixedCameraTriggerZone" type="Node" parent="."]
|
||||
|
||||
[node name="FixedCameraLabel" type="Label3D" parent="FixedCameraTriggerZone"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.939693, 0.280167, -0.196175, 1.49012e-08, 0.573577, 0.819152, 0.34202, -0.769751, 0.538986, -0.538716, -0.247626, 3.13456)
|
||||
text = "Fixed Camera
|
||||
Example"
|
||||
font = ExtResource("2_e7gxt")
|
||||
|
||||
[node name="NorthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(0.38357, -0.555836, 0.737507, -0.105898, 0.766851, 0.633027, -0.917417, -0.320912, 0.235279, 6.89638, 4.73986, 0.115512)
|
||||
script = ExtResource("2_y3dy8")
|
||||
tween_resource = SubResource("Resource_tpvee")
|
||||
camera_3d_resource = SubResource("Resource_bxbnv")
|
||||
|
||||
[node name="NorthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, -0.9)
|
||||
priority = 5
|
||||
script = ExtResource("4_moad5")
|
||||
area_pcam = NodePath("../NorthRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/NorthRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, -0.4)
|
||||
shape = SubResource("BoxShape3D_wcrbb")
|
||||
|
||||
[node name="EntryRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(0.258818, -0.482963, 0.836515, 1.3027e-15, 0.866025, 0.499999, -0.965924, -0.129409, 0.224143, 6.69741, 4.73364, 4.02374)
|
||||
script = ExtResource("2_y3dy8")
|
||||
tween_resource = SubResource("Resource_7ih0k")
|
||||
camera_3d_resource = SubResource("Resource_4iyps")
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.00003, -0.454982, 3.00572)
|
||||
priority = 5
|
||||
script = ExtResource("4_moad5")
|
||||
area_pcam = NodePath("../EntryRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/EntryRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 0.2)
|
||||
shape = SubResource("BoxShape3D_ctyr8")
|
||||
|
||||
[node name="SouthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(-0.766043, -0.492403, 0.413175, 0, 0.642787, 0.766043, -0.642786, 0.586825, -0.492403, 6.89741, 4.73364, 5.62374)
|
||||
script = ExtResource("2_y3dy8")
|
||||
tween_resource = SubResource("Resource_x5y0u")
|
||||
camera_3d_resource = SubResource("Resource_pgiyx")
|
||||
|
||||
[node name="SouthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, 6.7)
|
||||
priority = 5
|
||||
script = ExtResource("4_moad5")
|
||||
area_pcam = NodePath("../SouthRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/SouthRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0.1)
|
||||
shape = SubResource("BoxShape3D_ua072")
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.14238, 1.82571, 2.88655)
|
||||
mesh = SubResource("BoxMesh_ugc3s")
|
||||
material = SubResource("StandardMaterial3D_68thd")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="FixedCameraTriggerZone/CSGMesh3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00192642, -0.0120339, 0.00494432)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_wphly")
|
||||
material = SubResource("StandardMaterial3D_68thd")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Environment" type="Node3D" parent="Environment"]
|
||||
|
||||
[node name="Floor" parent="Environment/Environment" instance=ExtResource("3_f5qrw")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="West Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0.5, 0)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/West Wall"]
|
||||
mesh = SubResource("BoxMesh_gyp5s")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/West Wall"]
|
||||
shape = SubResource("BoxShape3D_lfaqs")
|
||||
|
||||
[node name="East Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.999, 0.502, 0)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/East Wall"]
|
||||
mesh = SubResource("BoxMesh_gyp5s")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/East Wall"]
|
||||
shape = SubResource("BoxShape3D_lfaqs")
|
||||
|
||||
[node name="North Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -6.90828)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/North Wall"]
|
||||
mesh = SubResource("BoxMesh_n70lt")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/North Wall"]
|
||||
shape = SubResource("BoxShape3D_jxmqm")
|
||||
|
||||
[node name="South Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 0.5, 9.087)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Environment/Environment/South Wall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
|
||||
mesh = SubResource("BoxMesh_x0tgm")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/South Wall"]
|
||||
shape = SubResource("BoxShape3D_t67ef")
|
||||
|
||||
[node name="FixedCamOuterWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 2)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_rmslh")
|
||||
|
||||
[node name="FixedCamOuterDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamOuterWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 1)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
||||
[node name="FixedCamNorthWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 1)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_niuda")
|
||||
|
||||
[node name="FixedCamNorthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamNorthWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
||||
[node name="FixedCamSouthWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 5.1)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_niuda")
|
||||
|
||||
[node name="FixedCamSouthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamSouthWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.50541, 1.19209e-07)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
||||
[editable path="PlayerGroup/PlayerCharacterBody3D"]
|
|
@ -0,0 +1,147 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://c4llb3gsbfv1a"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_7824u"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_g1bv4"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_420vh"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_oqbub"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_t4fso"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="5_c0upu"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_f2w3x"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wg1pr"]
|
||||
script = ExtResource("4_oqbub")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("5_c0upu")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0.083587, 2.94168, 5.22787)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("1_7824u")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0.083587, 2.94168, 5.22787)
|
||||
script = ExtResource("2_g1bv4")
|
||||
follow_mode = 5
|
||||
follow_target = NodePath("../PlayerCharacterBody3D2/PlayerVisual")
|
||||
tween_resource = ExtResource("3_420vh")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_wg1pr")
|
||||
follow_damping = true
|
||||
follow_distance = 4.0
|
||||
dead_zone_width = 0.384
|
||||
dead_zone_height = 0.669
|
||||
show_viewfinder_in_play = true
|
||||
spring_length = 4.0
|
||||
|
||||
[node name="PlayerCharacterBody3D2" parent="Player" instance=ExtResource("5_f2w3x")]
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_t4fso")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.636134, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.54597, -0.540694, -3.39517)
|
||||
use_collision = true
|
||||
radius = 1.53269
|
||||
height = 2.5036
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.64877, -1.50101, 1.22863)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.4732, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.40027, -1.69814, 3.36997)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.13768, -0.599204, -1.04651)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7976, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84078, -0.497663, 4.44352)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.88916, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.83837, -0.241718, 7.14677)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.34377, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9834, 0.138478, -1.89037)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.38147, 0.0440434, 8.36617)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 1.08809, 3.11285)
|
||||
|
||||
[editable path="Player/PlayerCharacterBody3D2"]
|
|
@ -0,0 +1,199 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://dw2yflu7up2rr"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_pmeux"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_q1ygp"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_hpix1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_8qqha"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_evdoo"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_vqgn5"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="5_wr3bq"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ucp3e"]
|
||||
script = ExtResource("3_hpix1")
|
||||
duration = 1.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ab013"]
|
||||
script = ExtResource("4_evdoo")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("5_wr3bq")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, -5.60519e-45, 6.39, 7)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("1_pmeux")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, -5.60519e-45, 6.39, 7)
|
||||
script = ExtResource("2_q1ygp")
|
||||
priority = 5
|
||||
follow_mode = 1
|
||||
follow_target = NodePath("../PlayerCharacterBody3D/PlayerVisual")
|
||||
tween_resource = SubResource("Resource_ucp3e")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ab013")
|
||||
follow_damping = true
|
||||
follow_damping_value = Vector3(0.3, 0.3, 0.3)
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_vqgn5")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.39, 7)
|
||||
enable_gravity = false
|
||||
|
||||
[node name="PlayerVisual" parent="Player/PlayerCharacterBody3D" index="2"]
|
||||
visible = false
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04486, 0.519002, -1.52506)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.51494, 0.519, 4.06618)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_8qqha")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.62737, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.9378, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.58617, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.774, 0.201103, 2.71259)
|
||||
use_collision = true
|
||||
radius = 1.41311
|
||||
height = 1.40221
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.40488, 0.201101, 11.6804)
|
||||
use_collision = true
|
||||
radius = 2.21673
|
||||
height = 7.88261
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.20971, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9771, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.555532, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.0611, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.21187, -1.90735e-06, 0.346393)
|
||||
use_collision = true
|
||||
inner_radius = 1.3
|
||||
outer_radius = 2.0
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.9283, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.49828, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.15267, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3427, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.08027, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.7748, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.1473, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
||||
[editable path="Player/PlayerCharacterBody3D"]
|
|
@ -0,0 +1,171 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://dbfiy6svpcqap"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="1_r00ve"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_pi7mp"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_wnlkq"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_1eb12"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="3_a5igg"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="3_wr1tj"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_70gws"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1iman"]
|
||||
script = ExtResource("5_70gws")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("3_a5igg")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -7.26116, 5.72974, 12.279)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("3_wr1tj")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerCharacterBody3D2" parent="Player" instance=ExtResource("2_wnlkq")]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_targets")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -7.26116, 5.72974, 12.279)
|
||||
script = ExtResource("2_pi7mp")
|
||||
priority = 5
|
||||
follow_mode = 3
|
||||
follow_targets = [NodePath("../PlayerCharacterBody3D2"), NodePath("../../NPCs/PlayerMeshInstance3D"), NodePath("../../NPCs/PlayerMeshInstance3D2")]
|
||||
tween_resource = ExtResource("3_1eb12")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_1iman")
|
||||
follow_damping = true
|
||||
follow_distance = 5.0
|
||||
auto_follow_distance = true
|
||||
auto_follow_distance_min = 5.0
|
||||
auto_follow_distance_max = 15.0
|
||||
auto_follow_distance_divisor = 20.0
|
||||
spring_length = 5.0
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.6059, 0.519002, 0.128472)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.0461, 0.519, 0.249913)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("1_r00ve")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.9141, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.6099, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.95333, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4682, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.90455, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.31901, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.7985, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.1236, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
||||
[editable path="Player/PlayerCharacterBody3D2"]
|
|
@ -0,0 +1,221 @@
|
|||
[gd_scene load_steps=24 format=3 uid="uid://dxx7ngi0emt8h"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_lm5n8"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_bd7x3"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_od2r4"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_dfdlo"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_hni7n"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="4_lfwkm"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/path_follow.gd" id="5_vdqkm"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_vms5c"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="6_obo83"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ofv2c"]
|
||||
script = ExtResource("4_hni7n")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_01tho"]
|
||||
script = ExtResource("4_lfwkm")
|
||||
duration = 1.2
|
||||
transition = 3
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_syh5m"]
|
||||
script = ExtResource("4_hni7n")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_b33df"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_aovgi"]
|
||||
size = Vector3(6, 0.1, 10)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_0hdeh"]
|
||||
size = Vector3(6, 0.1, 10)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fsm1b"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xci4c"]
|
||||
script = ExtResource("4_hni7n")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_8uw2x"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ctnqu"]
|
||||
size = Vector3(12, 0.1, 4)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_f6dp8"]
|
||||
size = Vector3(12, 0.1, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gwnkj"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.568403, 0.988235, 0.762724, 0.0901961)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_7l3dh"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_as6ok"]
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.507, 1.5)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("1_lm5n8")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.507, 1.5)
|
||||
script = ExtResource("3_bd7x3")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D2/PlayerVisual")
|
||||
tween_resource = ExtResource("3_od2r4")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ofv2c")
|
||||
follow_offset = Vector3(0, 2, 1.5)
|
||||
follow_damping = true
|
||||
|
||||
[node name="PlayerCharacterBody3D2" parent="." instance=ExtResource("5_vms5c")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.507, 0)
|
||||
|
||||
[node name="Paths" type="Node" parent="."]
|
||||
|
||||
[node name="PathPhantomCamera3D" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")]
|
||||
transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.31028, 7.9199, -1.60976)
|
||||
script = ExtResource("3_bd7x3")
|
||||
priority = 2
|
||||
follow_mode = 4
|
||||
follow_target = NodePath("../../PlayerCharacterBody3D2/PlayerVisual")
|
||||
follow_path = NodePath("../FollowPath")
|
||||
tween_resource = SubResource("Resource_01tho")
|
||||
camera_3d_resource = SubResource("Resource_syh5m")
|
||||
follow_damping = true
|
||||
|
||||
[node name="FollowPath" type="Path3D" parent="Paths"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31028, 7.9199, -1.60976)
|
||||
curve = SubResource("Curve3D_b33df")
|
||||
|
||||
[node name="StraightPathFollowTrigger" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, -0.45, -6.73666)
|
||||
priority = 5
|
||||
script = ExtResource("5_vdqkm")
|
||||
path_pcam = NodePath("../PathPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger"]
|
||||
shape = SubResource("BoxShape3D_aovgi")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger/CollisionShape3D"]
|
||||
mesh = SubResource("BoxMesh_0hdeh")
|
||||
skeleton = NodePath("../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_fsm1b")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PathPhantomCamera3D2" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 7.9199, -13.4572)
|
||||
visible = false
|
||||
script = ExtResource("3_bd7x3")
|
||||
priority = 2
|
||||
follow_mode = 4
|
||||
follow_target = NodePath("../../PlayerCharacterBody3D2/PlayerVisual")
|
||||
follow_path = NodePath("../FollowPath2")
|
||||
tween_resource = SubResource("Resource_01tho")
|
||||
camera_3d_resource = SubResource("Resource_xci4c")
|
||||
follow_damping = true
|
||||
follow_damping_value = Vector3(0.6, 0.1, 0.1)
|
||||
|
||||
[node name="FollowPath2" type="Path3D" parent="Paths"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.97141, 7.9199, -13.4572)
|
||||
curve = SubResource("Curve3D_8uw2x")
|
||||
|
||||
[node name="StraightPathFollowTrigger2" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, 0, -13.7367)
|
||||
priority = 5
|
||||
script = ExtResource("5_vdqkm")
|
||||
path_pcam = NodePath("../PathPhantomCamera3D2")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger2"]
|
||||
shape = SubResource("BoxShape3D_ctnqu")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger2/CollisionShape3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.45, 0)
|
||||
mesh = SubResource("BoxMesh_f6dp8")
|
||||
skeleton = NodePath("../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_gwnkj")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Floor3" parent="Environment" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(6, 0, 0, 0, 1, 0, 0, 0, 1, -0.44204, 0, 1.76334)
|
||||
|
||||
[node name="Floor2" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, -0.516667, 1, -6.5)
|
||||
|
||||
[node name="Floor5" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, 0.65, 1, -6.5)
|
||||
|
||||
[node name="Floor4" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(2, 0, 0, 0, 3, 0, 0, 0, 1, 0.0666667, 1, -18)
|
||||
|
||||
[node name="Floor6" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, -0.766667, 1, -13)
|
||||
mesh = SubResource("BoxMesh_7l3dh")
|
||||
|
||||
[node name="Floor8" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, -1.01667, 1, -15.5)
|
||||
mesh = SubResource("BoxMesh_as6ok")
|
||||
|
||||
[node name="Floor9" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, 1.15, 1, -15.5)
|
||||
mesh = SubResource("BoxMesh_as6ok")
|
||||
|
||||
[node name="Floor7" parent="Environment/Floor3" instance=ExtResource("4_dfdlo")]
|
||||
transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, 0.9, 1, -13)
|
||||
mesh = SubResource("BoxMesh_7l3dh")
|
||||
|
||||
[node name="NPCDescriptionLabel" type="Label3D" parent="Environment"]
|
||||
transform = Transform3D(5.21541e-08, -1, -7.7486e-07, -1.10675e-15, 2.23517e-07, 0.999999, -0.999999, -7.45058e-08, -5.68829e-14, -3.47306, 2.59595, -5.51755)
|
||||
text = "Camera follows player while confined to a Path3D"
|
||||
font = ExtResource("6_obo83")
|
||||
font_size = 64
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.02174, -0.455369, 0.570585)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("6_obo83")
|
||||
font_size = 48
|
||||
|
||||
[editable path="PlayerCharacterBody3D2"]
|
|
@ -0,0 +1,174 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://buglvjwpn85ny"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_3tok8"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_grjck"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_j3f4l"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/player_controller.gd" id="3_uymu2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_4u2y6"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_sielv"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="5_1tybo"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_28vpp"]
|
||||
script = ExtResource("3_j3f4l")
|
||||
duration = 1.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_axopo"]
|
||||
script = ExtResource("4_sielv")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_pda7a"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u74j7"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3xplc"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("5_1tybo")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D2" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.1946, 2.34415, 10.4086)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("1_3tok8")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.1946, 2.34415, 10.4086)
|
||||
script = ExtResource("2_grjck")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D2")
|
||||
tween_resource = SubResource("Resource_28vpp")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_axopo")
|
||||
follow_offset = Vector3(0, 2, 2)
|
||||
follow_damping = true
|
||||
|
||||
[node name="PlayerCharacterBody3D2" type="CharacterBody3D" parent="Player"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999897, 0.0143636, 0, -0.0143636, 0.999897, 0, 0, 0, 1, -13.1946, 0.344147, 8.40857)
|
||||
script = ExtResource("3_uymu2")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PlayerModel" type="MeshInstance3D" parent="Player/PlayerCharacterBody3D2"]
|
||||
unique_name_in_owner = true
|
||||
mesh = SubResource("CapsuleMesh_pda7a")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_u74j7")
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="Player/PlayerCharacterBody3D2"]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Player/PlayerCharacterBody3D2/PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_3xplc")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="Player/PlayerCharacterBody3D2"]
|
||||
shape = SubResource("CapsuleShape3D_3xplc")
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_4u2y6")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.8332, -0.540694, -3.39517)
|
||||
use_collision = true
|
||||
radius = 1.53269
|
||||
height = 2.5036
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.936, -1.50101, 1.22863)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.6875, -1.69814, 3.36997)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.14955, -0.599204, -1.04651)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.44645, -0.497663, 4.44352)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.1256, 0.335247, 7.14677)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.30382, 0.138478, -1.89037)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.04727, 0.0440434, 8.36617)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 1.08809, 3.11285)
|
|
@ -0,0 +1,171 @@
|
|||
[gd_scene load_steps=16 format=3 uid="uid://4i5csj0s34nb"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="2_47xf2"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_whx47"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_lii5s"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_jt2lp"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_oc4q1"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_kg7u1"]
|
||||
[ext_resource type="PackedScene" uid="uid://mskcwn1a1v6d" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn" id="7_kut0u"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8fhct"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.3
|
||||
transition = 3
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7m0fv"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e7t18"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.4
|
||||
transition = 2
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jogxh"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
cull_mask = 1048575
|
||||
h_offset = 1.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wsigl"]
|
||||
size = Vector3(1, 10, 20)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_bj3re"]
|
||||
size = Vector3(1, 7, 7)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_afrr1"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_y5dqe"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.499999, 0, -0.5, 0.866023, -0.0194088, 2.25688, 3.01476)
|
||||
script = ExtResource("2_whx47")
|
||||
priority = 10
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D/PlayerVisual")
|
||||
tween_resource = SubResource("Resource_8fhct")
|
||||
tween_on_load = null
|
||||
camera_3d_resource = SubResource("Resource_7m0fv")
|
||||
follow_damping = true
|
||||
follow_distance = 3.5
|
||||
spring_length = 3.5
|
||||
|
||||
[node name="PlayerAimPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.953716, -0.0104945, 0.300522, 0, 0.99939, 0.0348995, -0.300706, -0.0332842, 0.953135, 0.431374, 1.35923, 1.41338)
|
||||
script = ExtResource("2_whx47")
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D/PlayerVisual")
|
||||
tween_resource = SubResource("Resource_e7t18")
|
||||
tween_on_load = null
|
||||
camera_3d_resource = SubResource("Resource_jogxh")
|
||||
follow_offset = Vector3(0, 0.8, 0)
|
||||
follow_damping = true
|
||||
follow_distance = 1.5
|
||||
spring_length = 1.5
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("7_kut0u")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.499999, 0, -0.5, 0.866023, -0.0194088, 2.25688, 3.01476)
|
||||
current = true
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("5_oc4q1")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall5" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.133, 3, -6.5)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall6" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 3, 0)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall7" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 3, 0)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall2" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall3" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, 10.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall4" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, -9.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CeilingPhantomCamera3D" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37114e-08, -1, 2.98023e-08, 0, 2.98023e-08, 1, -1, 4.37114e-08, -1.3027e-15, -0.200665, 13.366, -0.162648)
|
||||
script = ExtResource("2_whx47")
|
||||
tween_resource = SubResource("Resource_afrr1")
|
||||
tween_on_load = null
|
||||
camera_3d_resource = SubResource("Resource_y5dqe")
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 1.44357)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel3" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 0.817134)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Right Mouse Click] to \"aim\""
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel2" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0440154, -0.490478, -6.30248)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Space] to toggle PCam"
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
||||
[editable path="PlayerCharacterBody3D"]
|
|
@ -0,0 +1,193 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://bdhrdhbux7sjg"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="1_i2pjc"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_lldvu"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_8md3q"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_dqss1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_2i811"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_m3qpq"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="5_u5qhp"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pwcgo"]
|
||||
script = ExtResource("3_dqss1")
|
||||
duration = 1.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ft2w3"]
|
||||
script = ExtResource("4_m3qpq")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("5_u5qhp")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.998682, 0.0324725, -0.0397495, 0, 0.774433, 0.632656, 0.0513272, -0.631822, 0.773413, -0.137901, 4.03222, 6.36446)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 100
|
||||
script = ExtResource("1_lldvu")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("look_at_target", "look_at_targets")]
|
||||
transform = Transform3D(0.998682, 0.0324725, -0.0397495, 0, 0.774433, 0.632656, 0.0513272, -0.631822, 0.773413, -0.137901, 4.03222, 6.36446)
|
||||
script = ExtResource("2_8md3q")
|
||||
priority = 10
|
||||
look_at_mode = 2
|
||||
look_at_target = NodePath("../PlayerCharacterBody3D2/PlayerVisual")
|
||||
look_at_targets = [null, NodePath("../NPCs/PlayerMeshInstance3D")]
|
||||
tween_resource = SubResource("Resource_pwcgo")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ft2w3")
|
||||
look_at_damping = true
|
||||
look_at_damping_value = 0.1
|
||||
|
||||
[node name="PlayerCharacterBody3D2" parent="." instance=ExtResource("1_i2pjc")]
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.96028, 0.519002, -1.52506)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.59952, 0.519, 4.06618)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_2i811")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.00548, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.5597, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96428, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.3959, 0.201103, 2.71259)
|
||||
use_collision = true
|
||||
radius = 1.41311
|
||||
height = 1.40221
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.02677, 0.201101, 11.6804)
|
||||
use_collision = true
|
||||
radius = 2.21673
|
||||
height = 7.88261
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.8316, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.5989, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.17742, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.4392, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.58998, -1.90735e-06, 0.346393)
|
||||
use_collision = true
|
||||
inner_radius = 1.3
|
||||
outer_radius = 2.0
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5502, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.1202, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53078, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9646, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.70216, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1529, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.7692, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
||||
[editable path="PlayerCharacterBody3D2"]
|
|
@ -0,0 +1,258 @@
|
|||
[gd_scene load_steps=22 format=3 uid="uid://5xtssqdfilal"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="1_ydeog"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="2_b2yrt"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_m2w30"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_425ma"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_cn3g7"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="5_h0ouh"]
|
||||
[ext_resource type="PackedScene" uid="uid://bulsh7s0ibmao" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="6_gcjyn"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="6_wup4d"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="8_60rny"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0dtvs"]
|
||||
script = ExtResource("5_cn3g7")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_j6fha"]
|
||||
size = Vector3(5, 0.1, 4)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_xg4en"]
|
||||
size = Vector3(5, 0.1, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2dct5"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_v8ndi"]
|
||||
script = ExtResource("6_wup4d")
|
||||
duration = 0.6
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kmep1"]
|
||||
script = ExtResource("5_cn3g7")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_uxg44"]
|
||||
script = ExtResource("6_wup4d")
|
||||
duration = 0.3
|
||||
transition = 1
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_eu3bc"]
|
||||
script = ExtResource("5_cn3g7")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0nci0"]
|
||||
script = ExtResource("6_wup4d")
|
||||
duration = 0.3
|
||||
transition = 8
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_u0lff"]
|
||||
script = ExtResource("5_cn3g7")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_50m5g"]
|
||||
script = ExtResource("6_wup4d")
|
||||
duration = 1.2
|
||||
transition = 10
|
||||
ease = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rexf8"]
|
||||
script = ExtResource("5_cn3g7")
|
||||
cull_mask = 1048575
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
fov = 75.0
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("1_ydeog")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0.083587, 2.507, 4.05493)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
script = ExtResource("2_b2yrt")
|
||||
|
||||
[node name="------------------" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0.083587, 2.507, 4.05493)
|
||||
script = ExtResource("3_m2w30")
|
||||
priority = 3
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D2/PlayerVisual")
|
||||
tween_resource = ExtResource("4_425ma")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_0dtvs")
|
||||
follow_offset = Vector3(0, 2, 2)
|
||||
follow_damping = true
|
||||
|
||||
[node name="PlayerCharacterBody3D2" parent="." instance=ExtResource("6_gcjyn")]
|
||||
|
||||
[node name="-------------------" type="Node" parent="."]
|
||||
|
||||
[node name="Tweening Example" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.97)
|
||||
|
||||
[node name="Linear" type="Node3D" parent="Tweening Example"]
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Linear" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("5_h0ouh")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Linear/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Linear/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Linear"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_m2w30")
|
||||
tween_resource = SubResource("Resource_v8ndi")
|
||||
camera_3d_resource = SubResource("Resource_kmep1")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Linear"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Linear
|
||||
|
||||
Duration:
|
||||
0.6s"
|
||||
font = ExtResource("8_60rny")
|
||||
font_size = 48
|
||||
|
||||
[node name="Sine" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.4)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Sine" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("5_h0ouh")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Sine/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Sine/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Sine"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_m2w30")
|
||||
tween_resource = SubResource("Resource_uxg44")
|
||||
camera_3d_resource = SubResource("Resource_eu3bc")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Sine"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Sine
|
||||
|
||||
Duration:
|
||||
0.3s"
|
||||
font = ExtResource("8_60rny")
|
||||
font_size = 72
|
||||
|
||||
[node name="Circ" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -14.1)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Circ" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("5_h0ouh")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Circ/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Circ/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Circ"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_m2w30")
|
||||
tween_resource = SubResource("Resource_0nci0")
|
||||
camera_3d_resource = SubResource("Resource_u0lff")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Circ"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Circ
|
||||
|
||||
Duration:
|
||||
0.3s"
|
||||
font = ExtResource("8_60rny")
|
||||
font_size = 72
|
||||
|
||||
[node name="Back" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -21)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Back" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("5_h0ouh")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Back/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Back/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Back"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, -0.8, 4.8, 3.3)
|
||||
script = ExtResource("3_m2w30")
|
||||
tween_resource = SubResource("Resource_50m5g")
|
||||
camera_3d_resource = SubResource("Resource_rexf8")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Back"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Back
|
||||
|
||||
Duration:
|
||||
1.2s"
|
||||
font = ExtResource("8_60rny")
|
||||
font_size = 48
|
||||
|
||||
[editable path="PlayerCharacterBody3D2"]
|
|
@ -0,0 +1,31 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://bulsh7s0ibmao"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/player_controller.gd" id="1_6hh6c"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_8efyg"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2cfaw"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r3ldp"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[node name="PlayerCharacterBody3D2" type="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.083587, 0.507, 2.05493)
|
||||
script = ExtResource("1_6hh6c")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_8efyg")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("CapsuleShape3D_8efyg")
|
||||
|
||||
[node name="PlayerVisual" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerModel" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
mesh = SubResource("CapsuleMesh_2cfaw")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_r3ldp")
|
|
@ -0,0 +1,43 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://mskcwn1a1v6d"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd" id="1_0dnfe"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s61dn"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_47f0o"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mv4do"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[sub_resource type="PrismMesh" id="PrismMesh_wg1x3"]
|
||||
size = Vector3(0.5, 0.5, 0.3)
|
||||
|
||||
[node name="PlayerCharacterBody3D" type="CharacterBody3D"]
|
||||
transform = Transform3D(0.999903, 0.0139622, 0, -0.0139622, 0.999903, 0, 0, 0, 1, -0.0194088, 0.506884, -0.0163251)
|
||||
collision_layer = 2
|
||||
script = ExtResource("1_0dnfe")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_s61dn")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("CapsuleShape3D_s61dn")
|
||||
|
||||
[node name="PlayerVisual" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 4.65661e-10, 0, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("CapsuleMesh_47f0o")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_mv4do")
|
||||
|
||||
[node name="PlayerDirection" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, -9.31323e-10, 1, 4.65661e-10, 2.98023e-08, 0, 1, -0.0156226, 1.08631, 0)
|
||||
mesh = SubResource("PrismMesh_wg1x3")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_mv4do")
|
|
@ -0,0 +1,15 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cixlwqycoox8h"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c7ja4woxol8yc" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="1_836jx"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_d24c3"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aox6v"]
|
||||
albedo_texture = ExtResource("1_836jx")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="3DPrototypeCube" type="CSGMesh3D"]
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_d24c3")
|
||||
material = SubResource("StandardMaterial3D_aox6v")
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://c1v786g5agaw5"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_ptlie"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ptlie")
|
||||
duration = 0.0
|
||||
transition = 0
|
||||
ease = 2
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTweenResource" load_steps=2 format=3 uid="uid://cllveybboaqk5"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_7yoy0"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_7yoy0")
|
||||
duration = 0.6
|
||||
transition = 5
|
||||
ease = 1
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTweenResource" load_steps=2 format=3 uid="uid://cecrnq0wnkexh"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_sq5ls"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_sq5ls")
|
||||
duration = 0.6
|
||||
transition = 8
|
||||
ease = 1
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://euybd2w0bax"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_by4ei"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_by4ei")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 1
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cptfoggk2ok67"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_q5tix"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_q5tix")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 2
|
|
@ -0,0 +1,36 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D
|
||||
@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D
|
||||
@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D
|
||||
|
||||
@onready var player: Node2D = %CharacterBody2D/%PlayerVisuals
|
||||
|
||||
@onready var area_2d_room_left: Area2D = %RoomLeftArea2D
|
||||
@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D
|
||||
@onready var area_2d_room_right: Area2D = %RoomRightArea2D
|
||||
|
||||
|
||||
func _ready():
|
||||
pcam_room_left.set_follow_offset(Vector2(0, -80))
|
||||
pcam_room_right.set_follow_offset(Vector2(0, -80))
|
||||
|
||||
area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right))
|
||||
|
||||
area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right))
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player.get_parent():
|
||||
pcam.set_follow_target(player)
|
||||
pcam.set_priority(20)
|
||||
|
||||
|
||||
func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player.get_parent():
|
||||
pcam.set_priority(0)
|
||||
pcam.set_follow_target(null)
|
|
@ -0,0 +1,36 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D
|
||||
@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D
|
||||
@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D
|
||||
|
||||
@onready var player: Node2D = %CharacterBody2D
|
||||
|
||||
@onready var area_2d_room_left: Area2D = %RoomLeftArea2D
|
||||
@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D
|
||||
@onready var area_2d_room_right: Area2D = %RoomRightArea2D
|
||||
|
||||
|
||||
func _ready():
|
||||
pcam_room_left.set_follow_offset(Vector2(0, -80))
|
||||
pcam_room_right.set_follow_offset(Vector2(0, -80))
|
||||
|
||||
area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right))
|
||||
|
||||
area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right))
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player:
|
||||
pcam.set_follow_target(player)
|
||||
pcam.set_priority(20)
|
||||
|
||||
|
||||
func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player:
|
||||
pcam.set_priority(0)
|
||||
pcam.set_follow_target(null)
|
|
@ -0,0 +1,16 @@
|
|||
extends Area2D
|
||||
|
||||
@export var area_pcam: PhantomCamera2D
|
||||
|
||||
func _ready() -> void:
|
||||
connect("area_entered", _entered_area)
|
||||
connect("area_exited", _exited_area)
|
||||
|
||||
func _entered_area(area_2d: Area2D) -> void:
|
||||
if area_2d.get_parent() is CharacterBody2D:
|
||||
area_pcam.set_priority(20)
|
||||
|
||||
func _exited_area(area_2d: Area2D) -> void:
|
||||
if area_2d.get_parent() is CharacterBody2D:
|
||||
area_pcam.set_priority(0)
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
@onready var _player_area2d = %PlayerArea2D
|
||||
@onready var _player_visuals: Node2D = %PlayerVisuals
|
||||
@onready var _player_sprite: Sprite2D = %PlayerSprite
|
||||
@onready var _interaction_prompt: Panel = %InteractionPrompt
|
||||
@onready var _ui_sign: Control
|
||||
@onready var _dark_overlay: ColorRect = %DarkOverlay
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
const SPEED = 350.0
|
||||
const JUMP_VELOCITY = -750.0
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: int = 2400
|
||||
var _is_interactive: bool
|
||||
var _can_open_inventory: bool
|
||||
var _movement_disabled: bool
|
||||
var tween: Tween
|
||||
var _interactive_UI: Control
|
||||
var _active_pcam: PhantomCamera2D
|
||||
|
||||
var _physics_body_trans_last: Transform2D
|
||||
var _physics_body_trans_current: Transform2D
|
||||
|
||||
enum InteractiveType {
|
||||
NONE = 0,
|
||||
ITEM = 1,
|
||||
INVENTORY = 2,
|
||||
}
|
||||
var _interactive_object: InteractiveType = InteractiveType.NONE
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_player_area2d.connect("body_shape_entered", _show_prompt)
|
||||
_player_area2d.connect("body_shape_exited", _hide_prompt)
|
||||
|
||||
_ui_sign = owner.get_node("%UISign")
|
||||
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
_player_visuals.top_level = true
|
||||
|
||||
if Engine.get_version_info().major == 4 and \
|
||||
Engine.get_version_info().minor >= 3:
|
||||
printerr("Please run the other 2D example scenes, in the 2D-4.3 directory, for more up-to-date example setups.")
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _is_interactive:
|
||||
if Input.is_physical_key_pressed(KEY_F):
|
||||
if tween:
|
||||
tween.kill()
|
||||
|
||||
if not _movement_disabled:
|
||||
tween = get_tree().create_tween()
|
||||
|
||||
_movement_disabled = true
|
||||
_active_pcam.set_priority(10)
|
||||
|
||||
_show_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
else:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
func _show_interactive_node(UI: Control) -> void:
|
||||
UI.modulate.a = 0
|
||||
UI.visible = true
|
||||
tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC)
|
||||
|
||||
|
||||
func _hide_interactive_node(UI: Control) -> void:
|
||||
_movement_disabled = false
|
||||
_active_pcam.set_priority(0)
|
||||
UI.visible = false
|
||||
|
||||
|
||||
func _interactive_node_logic() -> void:
|
||||
match _interactive_object:
|
||||
2:
|
||||
if _movement_disabled:
|
||||
_dark_overlay.set_visible(true)
|
||||
else:
|
||||
_dark_overlay.set_visible(false)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
_physics_body_trans_last = _physics_body_trans_current
|
||||
_physics_body_trans_current = global_transform
|
||||
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
if _movement_disabled: return
|
||||
|
||||
var input_dir: = Input.get_axis(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME
|
||||
)
|
||||
|
||||
if input_dir:
|
||||
velocity.x = input_dir * SPEED
|
||||
if input_dir > 0:
|
||||
_player_sprite.set_flip_h(false)
|
||||
elif input_dir < 0:
|
||||
_player_sprite.set_flip_h(true)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _process(delta) -> void:
|
||||
_player_visuals.global_position = _physics_body_trans_last.interpolate_with(
|
||||
_physics_body_trans_current,
|
||||
Engine.get_physics_interpolation_fraction()
|
||||
).origin
|
||||
|
||||
|
||||
func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
var cell_data_type: StringName = cell_data.get_custom_data("Type")
|
||||
# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords))
|
||||
_is_interactive = true
|
||||
_interaction_prompt.set_visible(true)
|
||||
|
||||
match cell_data_type:
|
||||
"Sign":
|
||||
_interactive_UI = owner.get_node("%UISign")
|
||||
_active_pcam = %ItemFocusPhantomCamera2D
|
||||
_interactive_object = InteractiveType.ITEM
|
||||
"Inventory":
|
||||
_interactive_UI = owner.get_node("%UIInventory")
|
||||
_interactive_object = InteractiveType.INVENTORY
|
||||
_active_pcam = %InventoryPhantomCamera2D
|
||||
|
||||
|
||||
func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
_interaction_prompt.set_visible(false)
|
||||
_is_interactive = false
|
||||
_interactive_UI = null
|
||||
_interactive_object = InteractiveType.NONE
|
||||
_active_pcam = null
|
||||
|
|
@ -0,0 +1,176 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
@onready var _player_area2d = %PlayerArea2D
|
||||
@onready var _player_visuals: Node2D = %PlayerVisuals
|
||||
@onready var _player_sprite: Sprite2D = %PlayerSprite
|
||||
@onready var _interaction_prompt: Panel = %InteractionPrompt
|
||||
@onready var _ui_sign: Control
|
||||
@onready var _dark_overlay: ColorRect = %DarkOverlay
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
const SPEED = 350.0
|
||||
const JUMP_VELOCITY = -750.0
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: int = 2400
|
||||
var _is_interactive: bool
|
||||
var _can_open_inventory: bool
|
||||
var _movement_disabled: bool
|
||||
var tween: Tween
|
||||
var _interactive_UI: Control
|
||||
var _active_pcam: PhantomCamera2D
|
||||
|
||||
enum InteractiveType {
|
||||
NONE = 0,
|
||||
ITEM = 1,
|
||||
INVENTORY = 2,
|
||||
}
|
||||
var _interactive_object: InteractiveType = InteractiveType.NONE
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_player_area2d.connect("body_shape_entered", _show_prompt)
|
||||
_player_area2d.connect("body_shape_exited", _hide_prompt)
|
||||
|
||||
_ui_sign = owner.get_node("%UISign")
|
||||
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
if Engine.get_version_info().major == 4 and \
|
||||
Engine.get_version_info().minor < 3:
|
||||
printerr("This scene is designed to only work properly in Godot 4.3 or later that supports 2D Physics Interpolation.")
|
||||
printerr("Please run the other 2D example scenes in the other directory.")
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _is_interactive:
|
||||
if Input.is_physical_key_pressed(KEY_F):
|
||||
if tween:
|
||||
tween.kill()
|
||||
|
||||
if not _movement_disabled:
|
||||
tween = get_tree().create_tween()
|
||||
|
||||
_movement_disabled = true
|
||||
_active_pcam.set_priority(10)
|
||||
|
||||
_show_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
else:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
func _show_interactive_node(UI: Control) -> void:
|
||||
UI.modulate.a = 0
|
||||
UI.visible = true
|
||||
tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC)
|
||||
|
||||
|
||||
func _hide_interactive_node(UI: Control) -> void:
|
||||
_movement_disabled = false
|
||||
_active_pcam.set_priority(0)
|
||||
UI.visible = false
|
||||
|
||||
|
||||
func _interactive_node_logic() -> void:
|
||||
match _interactive_object:
|
||||
2:
|
||||
if _movement_disabled:
|
||||
_dark_overlay.set_visible(true)
|
||||
else:
|
||||
_dark_overlay.set_visible(false)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
if _movement_disabled: return
|
||||
|
||||
var input_dir: = Input.get_axis(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME
|
||||
)
|
||||
|
||||
if input_dir:
|
||||
velocity.x = input_dir * SPEED
|
||||
if input_dir > 0:
|
||||
_player_sprite.set_flip_h(false)
|
||||
elif input_dir < 0:
|
||||
_player_sprite.set_flip_h(true)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
var cell_data_type: StringName = cell_data.get_custom_data("Type")
|
||||
# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords))
|
||||
_is_interactive = true
|
||||
_interaction_prompt.set_visible(true)
|
||||
|
||||
match cell_data_type:
|
||||
"Sign":
|
||||
_interactive_UI = owner.get_node("%UISign")
|
||||
_active_pcam = %ItemFocusPhantomCamera2D
|
||||
_interactive_object = InteractiveType.ITEM
|
||||
"Inventory":
|
||||
_interactive_UI = owner.get_node("%UIInventory")
|
||||
_interactive_object = InteractiveType.INVENTORY
|
||||
_active_pcam = %InventoryPhantomCamera2D
|
||||
|
||||
|
||||
func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
_interaction_prompt.set_visible(false)
|
||||
_is_interactive = false
|
||||
_interactive_UI = null
|
||||
_interactive_object = InteractiveType.NONE
|
||||
_active_pcam = null
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
extends Area3D
|
||||
|
||||
@export var area_pcam: PhantomCamera3D
|
||||
|
||||
var initial_camera_position: Vector3
|
||||
var initial_camera_rotation: Vector3
|
||||
|
||||
var tween: Tween
|
||||
var tween_duration: float = 0.9
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
connect("area_entered", _entered_area)
|
||||
connect("area_exited", _exited_area)
|
||||
|
||||
|
||||
func _entered_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
area_pcam.set_priority(20)
|
||||
|
||||
|
||||
func _exited_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
area_pcam.set_priority(0)
|
||||
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
extends Node3D
|
||||
|
||||
@onready var npc_pcam: PhantomCamera3D = %NPCPhantomCamera3D
|
||||
@onready var dialogueArea: Area3D = %NPCInteractionArea3D
|
||||
@onready var dialogueLabel3D: Label3D = %NPCDialogueExampleLabel
|
||||
|
||||
@onready var player: CharacterBody3D = %PlayerCharacterBody3D
|
||||
|
||||
@onready var move_to_location: Vector3 = %MoveToLocation.get_global_position()
|
||||
|
||||
var dialogue_label_initial_position: Vector3
|
||||
var dialogue_label_initial_rotation: Vector3
|
||||
|
||||
var tween: Tween
|
||||
var tween_duration: float = 0.9
|
||||
var tween_transition: Tween.TransitionType = Tween.TRANS_QUAD
|
||||
|
||||
var interactable: bool
|
||||
var is_interacting: bool
|
||||
|
||||
func _ready() -> void:
|
||||
dialogueArea.connect("area_entered", _interactable)
|
||||
dialogueArea.connect("area_exited", _not_interactable)
|
||||
|
||||
dialogueLabel3D.set_visible(false)
|
||||
|
||||
dialogue_label_initial_position = dialogueLabel3D.get_global_position()
|
||||
dialogue_label_initial_rotation = dialogueLabel3D.get_global_rotation()
|
||||
|
||||
npc_pcam.tween_completed.connect(_on_tween_started)
|
||||
|
||||
|
||||
|
||||
func _on_tween_started() -> void:
|
||||
player.movement_enabled = false
|
||||
|
||||
|
||||
func _interactable(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
dialogueLabel3D.set_visible(true)
|
||||
interactable = true
|
||||
|
||||
var tween: Tween = get_tree().create_tween().set_trans(tween_transition).set_ease(Tween.EASE_IN_OUT).set_loops()
|
||||
tween.tween_property(dialogueLabel3D, "global_position", dialogue_label_initial_position - Vector3(0, -0.2, 0), tween_duration)
|
||||
tween.tween_property(dialogueLabel3D, "position", dialogue_label_initial_position, tween_duration)
|
||||
|
||||
|
||||
func _not_interactable(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
dialogueLabel3D.set_visible(false)
|
||||
interactable = false
|
||||
|
||||
|
||||
func _input(event) -> void:
|
||||
if not interactable: return
|
||||
|
||||
if event is InputEventKey and event.pressed:
|
||||
if event.keycode == KEY_F:
|
||||
var tween: Tween = get_tree().create_tween() \
|
||||
.set_parallel(true) \
|
||||
.set_trans(Tween.TRANS_QUART) \
|
||||
.set_ease(Tween.EASE_IN_OUT)
|
||||
if not is_interacting:
|
||||
npc_pcam.priority = 20
|
||||
tween.tween_property(player, "global_position", move_to_location, 0.6).set_trans(tween_transition)
|
||||
tween.tween_property(dialogueLabel3D, "rotation", Vector3(deg_to_rad(-20), deg_to_rad(53), 0), 0.6).set_trans(tween_transition)
|
||||
else:
|
||||
npc_pcam.priority = 0
|
||||
tween.tween_property(dialogueLabel3D, "rotation", dialogue_label_initial_rotation, 0.9)
|
||||
player.movement_enabled = true
|
||||
is_interacting = !is_interacting
|
|
@ -0,0 +1,18 @@
|
|||
extends Node
|
||||
|
||||
@export var path_pcam: PhantomCamera3D
|
||||
|
||||
func _ready() -> void:
|
||||
connect("area_entered", _entered_area)
|
||||
connect("area_exited", _exited_area)
|
||||
|
||||
|
||||
func _entered_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
path_pcam.set_priority(20)
|
||||
|
||||
|
||||
func _exited_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
path_pcam.set_priority(0)
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
@export var SPEED: float = 5.0
|
||||
@export var JUMP_VELOCITY: float = 4.5
|
||||
@export var enable_gravity = true
|
||||
|
||||
@onready var _camera: Camera3D
|
||||
|
||||
@onready var _player_visual: Node3D = %PlayerVisual
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: float = 9.8
|
||||
|
||||
var movement_enabled: bool = true
|
||||
|
||||
var _physics_body_trans_last: Transform3D
|
||||
var _physics_body_trans_current: Transform3D
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
|
||||
const INPUT_MOVE_UP_STRINGNAME: StringName = "move_up"
|
||||
const INPUT_MOVE_DOWM_STRINGNAME: StringName = "move_down"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_UP_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_W,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_UP_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_DOWM_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_S,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_DOWM_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
_camera = owner.get_node("%MainCamera3D")
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
_player_visual.top_level = true
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
_physics_body_trans_last = _physics_body_trans_current
|
||||
_physics_body_trans_current = global_transform
|
||||
|
||||
# Add the gravity.
|
||||
if enable_gravity and not is_on_floor():
|
||||
velocity.y -= gravity * delta
|
||||
|
||||
if not movement_enabled: return
|
||||
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var input_dir: Vector2 = Input.get_vector(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME,
|
||||
INPUT_MOVE_UP_STRINGNAME,
|
||||
INPUT_MOVE_DOWM_STRINGNAME
|
||||
)
|
||||
|
||||
var cam_dir: Vector3 = -_camera.global_transform.basis.z
|
||||
|
||||
var direction: Vector3 = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
if direction:
|
||||
var move_dir: Vector3 = Vector3.ZERO
|
||||
move_dir.x = direction.x
|
||||
move_dir.z = direction.z
|
||||
|
||||
move_dir = move_dir.rotated(Vector3.UP, _camera.rotation.y).normalized()
|
||||
velocity.x = move_dir.x * SPEED
|
||||
velocity.z = move_dir.z * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
velocity.z = move_toward(velocity.z, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
_player_visual.global_transform = _physics_body_trans_last.interpolate_with(
|
||||
_physics_body_trans_current,
|
||||
Engine.get_physics_interpolation_fraction()
|
||||
)
|
|
@ -0,0 +1,88 @@
|
|||
extends "player_controller.gd"
|
||||
|
||||
@onready var _player_pcam: PhantomCamera3D
|
||||
@onready var _aim_pcam: PhantomCamera3D
|
||||
@onready var _player_direction: Node3D = %PlayerDirection
|
||||
@onready var _ceiling_pcam: PhantomCamera3D
|
||||
|
||||
@export var mouse_sensitivity: float = 0.05
|
||||
|
||||
@export var min_pitch: float = -89.9
|
||||
@export var max_pitch: float = 50
|
||||
|
||||
@export var min_yaw: float = 0
|
||||
@export var max_yaw: float = 360
|
||||
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
|
||||
_player_pcam = owner.get_node("%PlayerPhantomCamera3D")
|
||||
_aim_pcam = owner.get_node("%PlayerAimPhantomCamera3D")
|
||||
_ceiling_pcam = owner.get_node("%CeilingPhantomCamera3D")
|
||||
|
||||
if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON:
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
super(delta)
|
||||
|
||||
if velocity.length() > 0.2:
|
||||
var look_direction: Vector2 = Vector2(velocity.z, velocity.x)
|
||||
_player_direction.rotation.y = look_direction.angle()
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON:
|
||||
var active_pcam: PhantomCamera3D
|
||||
|
||||
if is_instance_valid(_aim_pcam):
|
||||
_set_pcam_rotation(_player_pcam, event)
|
||||
_set_pcam_rotation(_aim_pcam, event)
|
||||
if _player_pcam.get_priority() > _aim_pcam.get_priority():
|
||||
_toggle_aim_pcam(event)
|
||||
else:
|
||||
_toggle_aim_pcam(event)
|
||||
|
||||
if event is InputEventKey and event.pressed:
|
||||
if event.keycode == KEY_SPACE:
|
||||
if _ceiling_pcam.get_priority() < 30 and _player_pcam.is_active():
|
||||
_ceiling_pcam.set_priority(30)
|
||||
else:
|
||||
_ceiling_pcam.set_priority(1)
|
||||
|
||||
|
||||
func _set_pcam_rotation(pcam: PhantomCamera3D, event: InputEvent) -> void:
|
||||
if event is InputEventMouseMotion:
|
||||
var pcam_rotation_degrees: Vector3
|
||||
|
||||
# Assigns the current 3D rotation of the SpringArm3D node - so it starts off where it is in the editor
|
||||
pcam_rotation_degrees = pcam.get_third_person_rotation_degrees()
|
||||
|
||||
# Change the X rotation
|
||||
pcam_rotation_degrees.x -= event.relative.y * mouse_sensitivity
|
||||
|
||||
# Clamp the rotation in the X axis so it go over or under the target
|
||||
pcam_rotation_degrees.x = clampf(pcam_rotation_degrees.x, min_pitch, max_pitch)
|
||||
|
||||
# Change the Y rotation value
|
||||
pcam_rotation_degrees.y -= event.relative.x * mouse_sensitivity
|
||||
|
||||
# Sets the rotation to fully loop around its target, but witout going below or exceeding 0 and 360 degrees respectively
|
||||
pcam_rotation_degrees.y = wrapf(pcam_rotation_degrees.y, min_yaw, max_yaw)
|
||||
|
||||
# Change the SpringArm3D node's rotation and rotate around its target
|
||||
pcam.set_third_person_rotation_degrees(pcam_rotation_degrees)
|
||||
|
||||
|
||||
func _toggle_aim_pcam(event: InputEvent) -> void:
|
||||
if event is InputEventMouseButton \
|
||||
and event.is_pressed() \
|
||||
and event.button_index == 2 \
|
||||
and (_player_pcam.is_active() or _aim_pcam.is_active()):
|
||||
if _player_pcam.get_priority() > _aim_pcam.get_priority():
|
||||
_aim_pcam.set_priority(30)
|
||||
else:
|
||||
_aim_pcam.set_priority(0)
|
After Width: | Height: | Size: 67 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7cs6me43ufh3"
|
||||
path="res://.godot/imported/inventory_container.png-12241277f279bfc4bf7d5dad6b3e8ff2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/inventory_container.png"
|
||||
dest_files=["res://.godot/imported/inventory_container.png-12241277f279bfc4bf7d5dad6b3e8ff2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c77npili4pel4"
|
||||
path="res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png"
|
||||
dest_files=["res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwep0on2tthn7"
|
||||
path="res://.godot/imported/phantom_camera_2d_sprite.png-deab230b83ae03aeb308a08ff66b8dbc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png"
|
||||
dest_files=["res://.godot/imported/phantom_camera_2d_sprite.png-deab230b83ae03aeb308a08ff66b8dbc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.5361 7.10309C13.6839 7.10309 14.6144 7.94367 14.6144 8.98059C14.6144 9.5197 14.3629 10.0057 13.9601 10.3482C14.1589 10.5805 14.1526 10.8503 14.1526 11.1362L16 10.0236V14.1959L14.1526 13.0833V13.3614C14.1526 13.8223 13.739 14.1959 13.2289 14.1959H9.07216C8.56201 14.1959 8.14845 13.8223 8.14845 13.3614V12.0029C7.34123 11.7452 6.76289 11.0497 6.76289 10.2323C6.76289 9.19534 7.69339 8.35476 8.84124 8.35476C9.49502 8.35476 10.0783 8.62747 10.4593 9.05381C10.4454 8.72765 10.5274 8.40055 10.6897 8.11774C11.0356 7.51496 11.7326 7.10309 12.5361 7.10309Z" fill="#8DA5F3"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.8 1C7.45097 1 9.6 3.08749 9.6 5.66254V7.11532C9.38344 7.06886 9.16015 7.04201 8.93273 7.03632C9.02973 6.78223 9.08571 6.48275 9.08571 6.1621C9.08571 5.24244 8.62521 4.49691 8.05714 4.49691C7.48908 4.49691 7.02857 5.24244 7.02857 6.1621C7.02857 6.63483 7.15025 7.06155 7.34566 7.36466C6.25657 7.86676 5.4433 8.90657 5.4433 10.2323C5.4433 11.3311 6.01594 12.2448 6.82887 12.8078V13.3614C6.82887 13.4831 6.8386 13.6006 6.85714 13.7139V14.3216C6.85714 14.6894 6.55014 14.9876 6.17143 14.9876C5.79272 14.9876 5.48571 14.6894 5.48571 14.3216V13.6555C5.48571 13.2876 5.17871 12.9894 4.8 12.9894C4.42129 12.9894 4.11429 13.2876 4.11429 13.6555V14.3216C4.11429 14.6894 3.80728 14.9876 3.42857 14.9876C3.04986 14.9876 2.74286 14.6894 2.74286 14.3216V13.6555C2.74286 13.2876 2.43585 12.9894 2.05714 12.9894C1.67843 12.9894 1.37143 13.2876 1.37143 13.6555V14.3216C1.37143 14.6894 1.06442 14.9876 0.685714 14.9876C0.307005 14.9876 0 14.6894 0 14.3216V5.66254C0 3.08749 2.14903 1 4.8 1ZM4.62857 7.8273C5.19664 7.8273 5.65714 7.08176 5.65714 6.1621C5.65714 5.24244 5.19664 4.49691 4.62857 4.49691C4.06051 4.49691 3.6 5.24244 3.6 6.1621C3.6 7.08176 4.06051 7.8273 4.62857 7.8273Z" fill="#8DA5F3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ci76plsequlrq"
|
||||
path="res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg"
|
||||
dest_files=["res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=8.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
After Width: | Height: | Size: 172 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bloouh2jtndx1"
|
||||
path="res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png"
|
||||
dest_files=["res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c7ja4woxol8yc"
|
||||
path.bptc="res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png"
|
||||
dest_files=["res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
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/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=0
|
|
@ -0,0 +1,37 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dg7rhrymsrrrm"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b7cs6me43ufh3" path="res://addons/phantom_camera/examples/textures/2D/inventory_container.png" id="1_pi2dp"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_0rdcn"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 4
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 28.0
|
||||
offset_top = -255.0
|
||||
offset_right = 908.0
|
||||
offset_bottom = 183.0
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("1_pi2dp")
|
||||
|
||||
[node name="Label" type="Label" parent="TextureRect"]
|
||||
layout_mode = 0
|
||||
offset_left = 345.0
|
||||
offset_top = 12.0
|
||||
offset_right = 535.0
|
||||
offset_bottom = 60.0
|
||||
theme_override_colors/font_color = Color(0.356863, 0.105882, 0.133333, 1)
|
||||
theme_override_fonts/font = ExtResource("2_0rdcn")
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "Inventory"
|
||||
horizontal_alignment = 1
|
||||
uppercase = true
|
|
@ -0,0 +1,83 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://iq5xd1ob1res"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bloouh2jtndx1" path="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png" id="1_tftrk"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_y5454"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r4h3u"]
|
||||
bg_color = Color(0.470588, 0.6, 0.45098, 1)
|
||||
corner_radius_top_right = 47
|
||||
corner_radius_bottom_left = 40
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -273.568
|
||||
offset_top = 47.0
|
||||
offset_right = 273.568
|
||||
offset_bottom = 413.0
|
||||
grow_horizontal = 2
|
||||
texture = ExtResource("1_tftrk")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Label" type="Label" parent="TextureRect"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 25.0
|
||||
offset_top = 64.0
|
||||
offset_right = -25.0
|
||||
offset_bottom = -88.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0.207843, 0.0470588, 0.0666667, 1)
|
||||
theme_override_fonts/font = ExtResource("2_y5454")
|
||||
theme_override_font_sizes/font_size = 62
|
||||
text = "Stay Awhile
|
||||
and read"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -240.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 200.0
|
||||
grow_horizontal = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_r4h3u")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Panel"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="Panel/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Example Textsdadassa
|
||||
"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
|
@ -0,0 +1,33 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://c4mm3of2mc8o5"
|
||||
path="res://.godot/imported/Nunito-Black.ttf-2a374efbc207a97a99b8c70bdc4b7cbb.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/fonts/Nunito-Black.ttf"
|
||||
dest_files=["res://.godot/imported/Nunito-Black.ttf-2a374efbc207a97a99b8c70bdc4b7cbb.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
|
@ -0,0 +1,33 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dve7mgsjik4dg"
|
||||
path="res://.godot/imported/Nunito-Regular.ttf-b6054d499efa1a10921004862b1e217a.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/fonts/Nunito-Regular.ttf"
|
||||
dest_files=["res://.godot/imported/Nunito-Regular.ttf-b6054d499efa1a10921004862b1e217a.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
|
@ -0,0 +1,93 @@
|
|||
extends EditorNode3DGizmoPlugin
|
||||
class_name CustomPluginGizmo
|
||||
|
||||
var _gizmo_name
|
||||
var gizmo_name: String: set = set_gizmo_name
|
||||
|
||||
var _gizmo_icon: Texture2D
|
||||
var gizmo_icon: Texture2D: set = set_gizmo_icon
|
||||
|
||||
var _gizmo_spatial_script: Script
|
||||
var gizmo_spatial_script: Script: set = set_gizmo_spatial_script
|
||||
|
||||
var _gizmo_scale: float = 0.035
|
||||
|
||||
|
||||
func set_gizmo_name(name: String) -> void:
|
||||
_gizmo_name = name
|
||||
|
||||
|
||||
func set_gizmo_icon(icon: Texture2D) -> void:
|
||||
_gizmo_icon = icon
|
||||
|
||||
|
||||
func set_gizmo_spatial_script(script: Script) -> void:
|
||||
_gizmo_spatial_script = script
|
||||
|
||||
|
||||
func _get_gizmo_name() -> String:
|
||||
return _gizmo_name
|
||||
|
||||
func _has_gizmo(spatial: Node3D):
|
||||
return spatial.get_script() == _gizmo_spatial_script
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
create_icon_material(_gizmo_name, _gizmo_icon, false, Color.WHITE)
|
||||
create_material("main", Color8(252, 127, 127, 255))
|
||||
|
||||
|
||||
func _draw_frustum() -> PackedVector3Array:
|
||||
var lines = PackedVector3Array()
|
||||
|
||||
var dis: float = 0.25
|
||||
var width: float = dis * 1.25
|
||||
var len: float = dis * 1.5
|
||||
|
||||
# Straight line
|
||||
# lines.push_back(Vector3(0, 0, 0))
|
||||
# lines.push_back(Vector3(0, 0, -len))
|
||||
|
||||
|
||||
# Trapezoid
|
||||
lines.push_back(Vector3(0, 0, 0))
|
||||
lines.push_back(Vector3(-width, dis, -len))
|
||||
|
||||
lines.push_back(Vector3(0, 0, 0))
|
||||
lines.push_back(Vector3(width, dis, -len))
|
||||
|
||||
lines.push_back(Vector3(0, 0, 0))
|
||||
lines.push_back(Vector3(-width, -dis, -len))
|
||||
|
||||
lines.push_back(Vector3(0, 0, 0))
|
||||
lines.push_back(Vector3(width, -dis, -len))
|
||||
|
||||
|
||||
# Square
|
||||
## Left
|
||||
lines.push_back(Vector3(-width, dis, -len))
|
||||
lines.push_back(Vector3(-width, -dis, -len))
|
||||
|
||||
## Bottom
|
||||
lines.push_back(Vector3(-width, -dis, -len))
|
||||
lines.push_back(Vector3(width, -dis, -len))
|
||||
|
||||
## Right
|
||||
lines.push_back(Vector3(width, -dis, -len))
|
||||
lines.push_back(Vector3(width, dis, -len))
|
||||
|
||||
## Top
|
||||
lines.push_back(Vector3(width, dis, -len))
|
||||
lines.push_back(Vector3(-width, dis, -len))
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
func _redraw(gizmo: EditorNode3DGizmo):
|
||||
gizmo.clear()
|
||||
|
||||
var icon: Material = get_material(_gizmo_name, gizmo)
|
||||
gizmo.add_unscaled_billboard(icon, _gizmo_scale)
|
||||
|
||||
var material = get_material("main", gizmo)
|
||||
gizmo.add_lines(_draw_frustum(), material)
|
|
@ -0,0 +1,11 @@
|
|||
extends CustomPluginGizmo
|
||||
|
||||
var _spatial_script: Script = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd")
|
||||
var _icon: Texture2D = preload("res://addons/phantom_camera/icons/phantom_camera_gizmo.svg")
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
set_gizmo_name("PhantomCamera")
|
||||
set_gizmo_spatial_script(_spatial_script)
|
||||
set_gizmo_icon(_icon)
|
||||
super()
|
|
@ -0,0 +1,14 @@
|
|||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.5474 30C14.5474 28.8954 15.4428 28 16.5474 28H47.453C48.5576 28 49.453 28.8954 49.453 30V34C49.453 35.1046 48.5576 36 47.453 36H16.5474C15.4428 36 14.5474 35.1046 14.5474 34V30Z" fill="url(#paint0_linear_1180_3884)"/>
|
||||
<path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M9 12C7.89543 12 7 12.8954 7 14V18C7 19.1046 7.89543 20 9 20H55C56.1046 20 57 19.1046 57 18V14C57 12.8954 56.1046 12 55 12H9ZM21.2639 44C20.1593 44 19.2639 44.8954 19.2639 46V50C19.2639 51.1046 20.1593 52 21.2639 52H42.7356C43.8402 52 44.7356 51.1046 44.7356 50V46C44.7356 44.8954 43.8402 44 42.7356 44H21.2639Z" fill="url(#paint1_linear_1180_3884)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1180_3884" x1="31.5639" y1="28.5595" x2="31.7511" y2="36.0063" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3AB99A"/>
|
||||
<stop offset="1" stop-color="#1B9E7F"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1180_3884" x1="31.375" y1="14.7976" x2="34.6201" y2="51.77" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3AB99A"/>
|
||||
<stop offset="1" stop-color="#1B9E7F"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dy8eifa6aw2en"
|
||||
path="res://.godot/imported/PriorityOverride.svg-e76e07f4bbd98169f119e17fe5f2f03f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/misc/PriorityOverride.svg"
|
||||
dest_files=["res://.godot/imported/PriorityOverride.svg-e76e07f4bbd98169f119e17fe5f2f03f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="none"><path fill="#8DA5F3" d="M100.289 56.825c9.182 0 16.626 6.724 16.626 15.02 0 4.313-2.012 8.2-5.234 10.94 1.59 1.859 1.54 4.017 1.54 6.305L128 80.19v33.377l-14.779-8.901v2.225c0 3.687-3.309 6.676-7.39 6.676H72.577c-4.08 0-7.39-2.989-7.39-6.676V96.023c-6.457-2.061-11.084-7.625-11.084-14.165 0-8.295 7.444-15.02 16.627-15.02 5.23 0 9.896 2.182 12.944 5.593-.11-2.61.546-5.227 1.844-7.49 2.767-4.821 8.343-8.116 14.771-8.116"/><path fill="#8DA5F3" fill-rule="evenodd" d="M38.4 8c21.208 0 38.4 16.7 38.4 37.3v11.623a29 29 0 0 0-5.338-.632c.776-2.033 1.224-4.429 1.224-6.994 0-7.357-3.684-13.322-8.229-13.322S56.23 41.94 56.23 49.297c0 3.782.973 7.195 2.536 9.62-8.712 4.017-15.219 12.336-15.219 22.941 0 8.79 4.581 16.1 11.085 20.604v4.429c0 .973.078 1.914.226 2.82v4.861c0 2.943-2.456 5.329-5.486 5.329s-5.485-2.386-5.485-5.329v-5.328c0-2.943-2.456-5.329-5.486-5.329s-5.486 2.386-5.486 5.329v5.328c0 2.943-2.456 5.329-5.485 5.329s-5.486-2.386-5.486-5.329v-5.328c0-2.943-2.456-5.329-5.486-5.329s-5.486 2.386-5.486 5.329v5.328c0 2.943-2.456 5.329-5.485 5.329S0 117.515 0 114.572V45.3C0 24.7 17.192 8 38.4 8m-1.371 54.618c4.544 0 8.228-5.964 8.228-13.321s-3.684-13.322-8.228-13.322c-4.545 0-8.229 5.965-8.229 13.322s3.684 13.321 8.229 13.321" clip-rule="evenodd"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,38 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cmcvv0edbbpv4"
|
||||
path="res://.godot/imported/phantom_camera_2d.svg-e5483cbc858fc5f95f7210b1649dff0d.ctex"
|
||||
metadata={
|
||||
"has_editor_variant": true,
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_2d.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_2d.svg-e5483cbc858fc5f95f7210b1649dff0d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=true
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="none"><path fill="#FC7F7F" d="M100.289 56.825c9.182 0 16.626 6.724 16.626 15.02 0 4.313-2.012 8.2-5.234 10.94 1.59 1.859 1.54 4.017 1.54 6.305L128 80.19v33.377l-14.779-8.901v2.225c0 3.687-3.309 6.676-7.39 6.676H72.577c-4.08 0-7.39-2.989-7.39-6.676V96.023c-6.457-2.061-11.084-7.625-11.084-14.165 0-8.295 7.444-15.02 16.627-15.02 5.23 0 9.896 2.182 12.944 5.593-.11-2.61.546-5.227 1.844-7.49 2.767-4.821 8.343-8.116 14.771-8.116"/><path fill="#FC7F7F" fill-rule="evenodd" d="M38.4 8c21.208 0 38.4 16.7 38.4 37.3v11.623a29 29 0 0 0-5.338-.632c.776-2.033 1.224-4.429 1.224-6.994 0-7.357-3.684-13.322-8.229-13.322S56.23 41.94 56.23 49.297c0 3.782.973 7.195 2.536 9.62-8.712 4.017-15.219 12.336-15.219 22.941 0 8.79 4.581 16.1 11.085 20.604v4.429c0 .973.078 1.914.226 2.82v4.861c0 2.943-2.456 5.329-5.486 5.329s-5.485-2.386-5.485-5.329v-5.328c0-2.943-2.456-5.329-5.486-5.329s-5.486 2.386-5.486 5.329v5.328c0 2.943-2.456 5.329-5.485 5.329s-5.486-2.386-5.486-5.329v-5.328c0-2.943-2.456-5.329-5.486-5.329s-5.486 2.386-5.486 5.329v5.328c0 2.943-2.456 5.329-5.485 5.329S0 117.515 0 114.572V45.3C0 24.7 17.192 8 38.4 8m-1.371 54.618c4.544 0 8.228-5.964 8.228-13.321s-3.684-13.322-8.228-13.322c-4.545 0-8.229 5.965-8.229 13.322s3.684 13.321 8.229 13.321" clip-rule="evenodd"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,38 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bf8bxgxx71qki"
|
||||
path="res://.godot/imported/phantom_camera_3d.svg-41ed612e834470377fb56eebffa083fe.ctex"
|
||||
metadata={
|
||||
"has_editor_variant": true,
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_3d.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_3d.svg-41ed612e834470377fb56eebffa083fe.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=true
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M52.3068 21.4737C52.3068 14.9335 46.4687 9.63159 39.2671 9.63159C34.226 9.63159 29.853 12.2294 27.6829 16.0314C26.6647 17.8152 26.1501 19.8783 26.237 21.9355C23.8466 19.2464 20.1871 17.5263 16.0852 17.5263C8.88357 17.5263 3.04547 22.8282 3.04547 29.3684C3.04547 34.5246 6.67403 38.911 11.7386 40.5367V49.1053C11.7386 52.012 14.3334 54.3684 17.5341 54.3684H43.6136C46.8144 54.3684 49.4091 52.012 49.4091 49.1053V47.3509L61 54.3684V28.0526L49.4091 35.0702C49.4091 35.0163 49.4091 34.9625 49.4092 34.9088C49.4103 33.1652 49.4114 31.5208 48.2014 30.0995C50.7287 27.9397 52.3068 24.874 52.3068 21.4737ZM42.9861 30.74L30.4059 24.9741C30.1414 24.8529 29.8371 24.8529 29.5726 24.9741L16.9924 30.74L16.9924 30.7401V45.3616L29.9893 51.3185L42.9861 45.3616V44.7218V44.7198V30.7401V30.74ZM18.617 33.4481L27.8231 37.2388V48.0686L18.617 43.7364V33.4481ZM20.2416 30.7402L29.9893 26.4079L39.7369 30.7402L29.9893 34.5309L20.2416 30.7402Z" fill="#F5F5F5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkpwb4k1bkbvn"
|
||||
path="res://.godot/imported/phantom_camera_camera_3d_resource.svg-f8bf8d1a5b7442fd6933bfbed999d57d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_camera_3d_resource.svg-f8bf8d1a5b7442fd6933bfbed999d57d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="none"><path fill="#E0E0E0" d="M95.753 57.722c8.034 0 14.548 5.884 14.548 13.142 0 3.774-1.761 7.176-4.58 9.573 1.391 1.626 1.347 3.515 1.347 5.517L120 78.166v29.205l-12.932-7.788v1.947c0 3.226-2.895 5.841-6.466 5.841H71.505c-3.57 0-6.466-2.615-6.466-5.841v-9.51c-5.65-1.804-9.699-6.672-9.699-12.394 0-7.259 6.514-13.143 14.549-13.143 4.576 0 8.659 1.91 11.326 4.894a12.2 12.2 0 0 1 1.613-6.553c2.421-4.22 7.3-7.102 12.925-7.102"/><path fill="#E0E0E0" fill-rule="evenodd" d="M41.6 15c18.557 0 33.6 14.612 33.6 32.638v10.17a25.3 25.3 0 0 0-4.67-.554c.678-1.778 1.07-3.875 1.07-6.12 0-6.437-3.224-11.656-7.2-11.656s-7.2 5.22-7.2 11.657c0 3.309.852 6.296 2.22 8.418-7.624 3.514-13.317 10.793-13.317 20.073 0 7.692 4.009 14.087 9.7 18.028v3.876q.001 1.277.197 2.467v4.254c0 2.575-2.149 4.662-4.8 4.662s-4.8-2.087-4.8-4.662v-4.663c0-2.575-2.149-4.662-4.8-4.662s-4.8 2.087-4.8 4.662v4.663c0 2.575-2.149 4.662-4.8 4.662s-4.8-2.087-4.8-4.662v-4.663c0-2.575-2.149-4.662-4.8-4.662s-4.8 2.087-4.8 4.662v4.663c0 2.575-2.149 4.662-4.8 4.662S8 110.826 8 108.251V47.638C8 29.612 23.043 15 41.6 15m-1.2 47.791c3.977 0 7.2-5.219 7.2-11.656s-3.224-11.657-7.2-11.657-7.2 5.22-7.2 11.657 3.224 11.656 7.2 11.656" clip-rule="evenodd"/><path stroke="#000" stroke-opacity=".3" d="m107.568 100.468 12.174 7.331.758.457V77.281l-.758.456-12.175 7.333c-.014-1.552-.139-3.142-1.162-4.57 2.709-2.46 4.396-5.865 4.396-9.636 0-7.581-6.786-13.642-15.048-13.642-5.793 0-10.843 2.97-13.359 7.353a12.75 12.75 0 0 0-1.669 5.584c-2.174-2.046-5.045-3.473-8.26-3.976a18 18 0 0 0-.77-.102 17 17 0 0 0-1.806-.098c-8.262 0-15.049 6.062-15.049 13.643 0 5.853 4.055 10.81 9.7 12.755v9.149c0 3.549 3.167 6.341 6.965 6.341h29.097c3.798 0 6.966-2.792 6.966-6.341zM75.095 58.296l.605.13V47.637C75.7 29.324 60.42 14.5 41.6 14.5S7.5 29.323 7.5 47.638v60.613c0 2.865 2.387 5.162 5.3 5.162s5.3-2.297 5.3-5.162v-4.663c0-2.285 1.911-4.162 4.3-4.162s4.3 1.877 4.3 4.162v4.663c0 2.865 2.387 5.162 5.3 5.162s5.3-2.297 5.3-5.162v-4.663c0-2.285 1.911-4.162 4.3-4.162s4.3 1.877 4.3 4.162v4.663c0 2.865 2.387 5.162 5.3 5.162s5.3-2.297 5.3-5.162v-4.295l-.007-.04a15 15 0 0 1-.19-2.386v-4.137l-.216-.15c-5.574-3.86-9.484-10.11-9.484-17.617 0-9.056 5.551-16.173 13.026-19.62l.523-.24-.312-.484c-1.308-2.028-2.14-4.917-2.14-8.147 0-3.142.787-5.961 2.034-7.98 1.252-2.026 2.915-3.177 4.666-3.177 1.75 0 3.414 1.15 4.666 3.177 1.246 2.019 2.034 4.838 2.034 7.98 0 2.188-.382 4.223-1.038 5.94l-.252.661.707.018c1.56.04 3.093.223 4.578.542ZM47.1 51.135c0 3.14-.788 5.96-2.034 7.98-1.252 2.026-2.915 3.176-4.666 3.176-1.75 0-3.414-1.15-4.666-3.177-1.247-2.018-2.034-4.838-2.034-7.98 0-3.14.787-5.96 2.034-7.979 1.252-2.026 2.915-3.177 4.666-3.177 1.75 0 3.414 1.15 4.666 3.177 1.246 2.019 2.034 4.838 2.034 7.98Z"/></svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,38 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://e36npe2rbxyg"
|
||||
path.s3tc="res://.godot/imported/phantom_camera_gizmo.svg-ba1aacb9b1c5f4ef401d3bd3697a542b.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_gizmo.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_gizmo.svg-ba1aacb9b1c5f4ef401d3bd3697a542b.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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=0
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cjli3p2b8mfyh"
|
||||
path="res://.godot/imported/phantom_camera_glow_logo.png-078f944973b55b32029ba02980211fe0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_glow_logo.png"
|
||||
dest_files=["res://.godot/imported/phantom_camera_glow_logo.png-078f944973b55b32029ba02980211fe0.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="none"><path fill="#fff" fill-rule="evenodd" d="M36 16c11.046 0 20 8.357 20 18.667v6.275C42.684 44.12 32 55.048 32 69.333v2.134a3 3 0 0 1-1.714.533c-1.578 0-2.857-1.194-2.857-2.667v-2.666c0-1.473-1.28-2.667-2.858-2.667s-2.857 1.194-2.857 2.667v2.666c0 1.473-1.279 2.667-2.857 2.667S16 70.806 16 69.333V34.667C16 24.357 24.954 16 36 16m-6.55 27.333c2.367 0 4.286-2.984 4.286-6.666S31.817 30 29.45 30s-4.285 2.985-4.285 6.667 1.918 6.666 4.285 6.666m18.572-6.666c0 3.682-1.919 6.666-4.286 6.666s-4.286-2.984-4.286-6.666S41.37 30 43.736 30c2.367 0 4.286 2.985 4.286 6.667M96 69.333v2.134a3 3 0 0 0 1.714.533c1.578 0 2.857-1.194 2.857-2.667v-2.666c0-1.473 1.28-2.667 2.858-2.667s2.857 1.194 2.857 2.667v2.666c0 1.473 1.279 2.667 2.857 2.667S112 70.806 112 69.333V34.667C112 24.357 103.046 16 92 16s-20 8.357-20 18.667v6.275c13.316 3.178 24 14.106 24 28.391m-10.55-26c2.367 0 4.286-2.984 4.286-6.666S87.817 30 85.45 30s-4.285 2.985-4.285 6.667 1.918 6.666 4.285 6.666m18.572-6.666c0 3.682-1.919 6.666-4.286 6.666s-4.286-2.984-4.286-6.666S97.37 30 99.736 30c2.367 0 4.286 2.985 4.286 6.667" clip-rule="evenodd"/><path fill="#fff" fill-rule="evenodd" d="M64 48c13.255 0 24 9.551 24 21.333v39.619c0 1.684-1.535 3.048-3.429 3.048s-3.428-1.364-3.428-3.048v-3.047c0-1.683-1.535-3.048-3.429-3.048s-3.428 1.365-3.428 3.048v3.047c0 1.684-1.535 3.048-3.429 3.048s-3.428-1.364-3.428-3.048v-3.047c0-1.683-1.535-3.048-3.429-3.048s-3.429 1.365-3.429 3.048v3.047c0 1.684-1.535 3.048-3.428 3.048s-3.429-1.364-3.429-3.048v-3.047c0-1.683-1.535-3.048-3.428-3.048s-3.429 1.365-3.429 3.048v3.047c0 1.684-1.535 3.048-3.428 3.048S40 110.636 40 108.952V69.333C40 57.551 50.745 48 64 48m-7.86 31.238c2.84 0 5.143-3.411 5.143-7.619S58.981 64 56.14 64s-5.142 3.411-5.142 7.619 2.302 7.62 5.142 7.62m22.286-7.619c0 4.208-2.302 7.62-5.143 7.62s-5.143-3.412-5.143-7.62S70.443 64 73.283 64s5.143 3.411 5.143 7.619" clip-rule="evenodd"/></svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,38 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://5fatldiu7dd5"
|
||||
path="res://.godot/imported/phantom_camera_host.svg-3150f8f2d82ca9ecab9a3a415da21c5b.ctex"
|
||||
metadata={
|
||||
"has_editor_variant": true,
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_host.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_host.svg-3150f8f2d82ca9ecab9a3a415da21c5b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=true
|
After Width: | Height: | Size: 69 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cc0wmici0eic8"
|
||||
path="res://.godot/imported/phantom_camera_logo.png-8b8d347b5e4800c86cd8095d030a3e5a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_logo.png"
|
||||
dest_files=["res://.godot/imported/phantom_camera_logo.png-8b8d347b5e4800c86cd8095d030a3e5a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" fill="none"><path fill="#E0E0E0" d="M18.877 22.144q-.594 0-.954-.324a1.12 1.12 0 0 1-.378-.828q0-.504.414-1.026l2.664-3.24v1.422l-2.448-2.988q-.414-.54-.414-1.026.018-.504.378-.828t.954-.324q.576 0 .936.198.378.18.72.612l1.674 2.16h-1.116l1.674-2.16q.342-.432.72-.612.378-.198.936-.198.612 0 .954.324.36.324.36.828.018.504-.414 1.026l-2.448 2.988v-1.422l2.682 3.24q.432.504.414 1.008a1.18 1.18 0 0 1-.378.846q-.36.324-.972.324-.558 0-.936-.18-.378-.198-.72-.63l-1.872-2.394h1.098l-1.89 2.394q-.324.414-.702.612-.36.198-.936.198M53.916 39.198q-1.35 0-2.232-.414a2.77 2.77 0 0 1-1.296-1.242q-.432-.846-.432-2.106v-2.934h-.612q-.576 0-.9-.306-.306-.306-.306-.882t.306-.864q.324-.306.9-.306h.612v-1.116q0-.792.414-1.206t1.188-.414 1.188.414.414 1.206v1.116h1.476q.594 0 .9.306.324.288.324.864t-.324.882q-.306.306-.9.306H53.16v2.826q0 .666.306.99.324.306 1.008.306.252 0 .486-.054t.432-.054a.55.55 0 0 1 .468.18q.18.18.18.846 0 .54-.162.918-.162.36-.576.522-.252.09-.684.144a4.5 4.5 0 0 1-.702.072"/><path fill="#E0E0E0" fill-rule="evenodd" d="M9 12.5a3.5 3.5 0 0 1 3.5 3.5v27.436c7.342-.458 10.764-3.277 12.592-5.959 1.73-2.536 2.257-5.067 2.724-7.314.155-.741.303-1.451.485-2.12.576-2.113 1.756-6.171 5.713-9.589 3.963-3.422 10.191-5.776 19.986-5.776a3.5 3.5 0 1 1 0 7c-8.705 0-13.104 2.082-15.41 4.074-2.313 1.997-3.044 4.331-3.536 6.132-.055.203-.12.53-.204.956-.42 2.122-1.325 6.694-3.974 10.58a19 19 0 0 1-1.732 2.184H54a3.5 3.5 0 1 1 0 7H11a5.5 5.5 0 0 1-5.5-5.5V16A3.5 3.5 0 0 1 9 12.5" clip-rule="evenodd"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,38 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dphl04mdf3220"
|
||||
path="res://.godot/imported/phantom_camera_tween.svg-16faced08ef4a5f3458264d894230dbd.ctex"
|
||||
metadata={
|
||||
"has_editor_variant": true,
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_tween.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_tween.svg-16faced08ef4a5f3458264d894230dbd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=true
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 7.68333L8 4M8 4L12 7.68333M8 4V13" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 231 B |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d4j4hrb7yusyq"
|
||||
path="res://.godot/imported/phantom_camera_updater_panel_icon.svg-19823e6cbee8115f8b2554d0ee6e79db.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg"
|
||||
dest_files=["res://.godot/imported/phantom_camera_updater_panel_icon.svg-19823e6cbee8115f8b2554d0ee6e79db.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39.2002 10.4004C46.3578 10.4004 52.1602 15.615 52.1602 22.0474C52.1602 25.3918 50.5917 28.4069 48.0799 30.5311C49.3195 31.9721 49.2802 33.6462 49.2802 35.42L60.8002 28.518V54.4003L49.2802 47.4984V49.2239C49.2802 52.0828 46.7013 54.4003 43.5202 54.4003H17.6002C14.419 54.4003 11.8402 52.0828 11.8402 49.2239V40.7964C6.80656 39.1976 3.2002 34.8833 3.2002 29.8121C3.2002 23.3796 9.00258 18.1651 16.1602 18.1651C20.237 18.1651 23.8741 19.8569 26.2499 22.5017C26.1635 20.4783 26.6749 18.4492 27.6869 16.6948C29.8438 12.9554 34.19 10.4004 39.2002 10.4004Z" fill="#8DA5F3"/>
|
||||
</svg>
|
After Width: | Height: | Size: 681 B |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ccnsrg8hq74p2"
|
||||
path="res://.godot/imported/Camera2DIcon.svg-300e6f57281180711c5ecf391104d4ba.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg"
|
||||
dest_files=["res://.godot/imported/Camera2DIcon.svg-300e6f57281180711c5ecf391104d4ba.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M39.2002 10.4004C46.3578 10.4004 52.1602 15.615 52.1602 22.0474C52.1602 25.3918 50.5917 28.4069 48.0799 30.5311C49.3195 31.9721 49.2802 33.6462 49.2802 35.42L60.8002 28.518V54.4003L49.2802 47.4984V49.2239C49.2802 52.0828 46.7013 54.4003 43.5202 54.4003H17.6002C14.419 54.4003 11.8402 52.0828 11.8402 49.2239V40.7964C6.80656 39.1976 3.2002 34.8833 3.2002 29.8121C3.2002 23.3796 9.00258 18.1651 16.1602 18.1651C20.237 18.1651 23.8741 19.8569 26.2499 22.5017C26.1635 20.4783 26.6749 18.4492 27.6869 16.6948C29.8438 12.9554 34.19 10.4004 39.2002 10.4004Z" fill="#FC7F7F"/>
|
||||
</svg>
|
After Width: | Height: | Size: 681 B |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkiefpjsrj37n"
|
||||
path="res://.godot/imported/Camera3DIcon.svg-4805c46004db1c89cc9443dd740693f5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg"
|
||||
dest_files=["res://.godot/imported/Camera3DIcon.svg-4805c46004db1c89cc9443dd740693f5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="148" height="64" viewBox="0 0 148 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M43.1201 20.605V27.7013C43.1201 29.3783 45.0599 30.3107 46.3695 29.263L59.9304 18.4143C60.9313 17.6136 60.9313 16.0914 59.9304 15.2908L46.3695 4.44202C45.0599 3.3944 43.1201 4.32674 43.1201 6.00375V13.1L13.1 13.1L13.1 43.1201H6.00376C4.32674 43.1201 3.3944 45.0599 4.44202 46.3695L15.2908 59.9304C16.0914 60.9313 17.6136 60.9313 18.4143 59.9304L29.2631 46.3695C30.3107 45.0599 29.3783 43.1201 27.7013 43.1201H20.605V20.605L43.1201 20.605Z" fill="#F5F5F5"/>
|
||||
<path d="M104.605 21.561H111.701C113.378 21.561 114.311 19.6211 113.263 18.3116L102.414 4.75061C101.614 3.7498 100.091 3.7498 99.2908 4.75061L88.442 18.3116C87.3944 19.6211 88.3267 21.561 90.0038 21.561H97.1V53.4576H127.12V58.6773C127.12 60.3543 129.06 61.2867 130.369 60.239L143.93 49.3903C144.931 48.5896 144.931 47.0674 143.93 46.2668L130.369 35.418C129.06 34.3704 127.12 35.3027 127.12 36.9797V45.9525H109.912L129.707 26.1573L134.148 30.598C135.334 31.7838 137.365 31.0714 137.55 29.4046L139.468 12.1443C139.609 10.8705 138.533 9.79417 137.259 9.9357L119.999 11.8535C118.332 12.0387 117.62 14.0697 118.805 15.2555L124.4 20.8504L104.605 40.6457V21.561Z" fill="#F5F5F5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dk7omm0x44suj"
|
||||
path="res://.godot/imported/SceneTypesIcon.svg-66e2255bd3398007bec03a5cbfa4d0aa.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg"
|
||||
dest_files=["res://.godot/imported/SceneTypesIcon.svg-66e2255bd3398007bec03a5cbfa4d0aa.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,46 @@
|
|||
@tool
|
||||
extends EditorInspectorPlugin
|
||||
|
||||
#var _phantom_camera_script: Script = preload("res://addons/phantom_camera/scripts/phantom_camera.gd")
|
||||
|
||||
|
||||
# TODO - Enable again once work is resumed for inspector based tasks
|
||||
|
||||
#func _can_handle(object) -> bool:
|
||||
# return object is _phantom_camera_script
|
||||
|
||||
|
||||
func _parse_category(object: Object, category: String) -> void:
|
||||
|
||||
var _margin_container: MarginContainer = MarginContainer.new()
|
||||
var _margin_v: float = 20
|
||||
_margin_container.add_theme_constant_override("margin_left", 10)
|
||||
_margin_container.add_theme_constant_override("margin_top", _margin_v)
|
||||
_margin_container.add_theme_constant_override("margin_right", 10)
|
||||
_margin_container.add_theme_constant_override("margin_bottom", _margin_v)
|
||||
add_custom_control(_margin_container)
|
||||
|
||||
var _vbox_container: VBoxContainer = VBoxContainer.new()
|
||||
_margin_container.add_child(_vbox_container)
|
||||
|
||||
var align_with_view_button = Button.new()
|
||||
align_with_view_button.connect("pressed", _align_camera_with_view.bind(object))
|
||||
align_with_view_button.set_custom_minimum_size(Vector2(0, 60))
|
||||
align_with_view_button.set_text("Align with view")
|
||||
_vbox_container.add_child(align_with_view_button)
|
||||
|
||||
var preview_camera_button = Button.new()
|
||||
preview_camera_button.connect("pressed", _preview_camera.bind(object))
|
||||
preview_camera_button.set_custom_minimum_size(Vector2(0, 60))
|
||||
preview_camera_button.set_text("Preview Camera")
|
||||
_vbox_container.add_child(preview_camera_button)
|
||||
|
||||
|
||||
|
||||
func _align_camera_with_view(object: Object) -> void:
|
||||
print("Aligning camera with view")
|
||||
print(object)
|
||||
|
||||
func _preview_camera(object: Object) -> void:
|
||||
print("Previewing camera")
|
||||
print(object)
|
|
@ -0,0 +1,11 @@
|
|||
@tool
|
||||
extends VBoxContainer
|
||||
|
||||
var editor_plugin: EditorPlugin
|
||||
|
||||
@onready var updater: Control = %UpdateButton
|
||||
@onready var viewfinder: Control = %ViewfinderPanel
|
||||
|
||||
|
||||
func _ready():
|
||||
updater.editor_plugin = editor_plugin
|
|
@ -0,0 +1,23 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cfdoaceoosi1w"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/panel/editor.gd" id="1_86hp7"]
|
||||
[ext_resource type="PackedScene" uid="uid://cuqkqsp3ikv5u" path="res://addons/phantom_camera/panel/updater/update_button.tscn" id="1_oowcd"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbkr3d716wtx0" path="res://addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn" id="2_xecnk"]
|
||||
|
||||
[node name="EditorPanel" type="VBoxContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_86hp7")
|
||||
|
||||
[node name="UpdateButton" parent="." instance=ExtResource("1_oowcd")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 8
|
||||
size_flags_vertical = 1
|
||||
|
||||
[node name="ViewfinderPanel" parent="." instance=ExtResource("2_xecnk")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
|
@ -0,0 +1,253 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://b25fl4usw0nlp"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/panel/updater/download_update_panel.gd" id="1_sx5xq"]
|
||||
[ext_resource type="Texture2D" uid="uid://cc0wmici0eic8" path="res://addons/phantom_camera/icons/phantom_camera_logo.png" id="2_f3yo7"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="3_h8uk3"]
|
||||
[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="4_gwh4i"]
|
||||
[ext_resource type="Texture2D" uid="uid://censw3w53gldn" path="res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png" id="5_bonti"]
|
||||
|
||||
[sub_resource type="ImageTexture" id="ImageTexture_sjwi2"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_insma"]
|
||||
bg_color = Color(0.0190018, 0.21903, 0.16997, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.0980392, 0.572549, 0.458824, 1)
|
||||
border_blend = true
|
||||
corner_radius_bottom_right = 12
|
||||
corner_radius_bottom_left = 12
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8m63d"]
|
||||
bg_color = Color(0.0784314, 0.109804, 0.129412, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.105882, 0.619608, 0.498039, 1)
|
||||
corner_radius_bottom_right = 12
|
||||
corner_radius_bottom_left = 12
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yn22d"]
|
||||
bg_color = Color(0.0117647, 0.164706, 0.12549, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.0980392, 0.572549, 0.458824, 1)
|
||||
border_blend = true
|
||||
corner_radius_bottom_right = 12
|
||||
corner_radius_bottom_left = 12
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_djsbc"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_xtrn6"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_o12j0"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_buptb"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_g3tf0"]
|
||||
|
||||
[node name="DownloadUpdatePanel" type="Control"]
|
||||
custom_minimum_size = Vector2(300, 350)
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_bottom = -61.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_sx5xq")
|
||||
|
||||
[node name="DownloadHTTPRequest" type="HTTPRequest" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Timer" type="Timer" parent="DownloadHTTPRequest"]
|
||||
one_shot = true
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 2
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = -20
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBox/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 12
|
||||
|
||||
[node name="Logo" type="TextureRect" parent="VBox/VBoxContainer2/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
custom_minimum_size = Vector2(300, 160)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_f3yo7")
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBox/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = -5
|
||||
|
||||
[node name="NameLabel" type="Label" parent="VBox/VBoxContainer2/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
theme_override_fonts/font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "Phantom Camera"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="DownloadVersionLabel" type="Label" parent="VBox/VBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
theme_override_fonts/font = ExtResource("4_gwh4i")
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "v1.2.3 is available for download."
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CurrentVersionLabel" type="Label" parent="VBox"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_override_fonts/font = ExtResource("4_gwh4i")
|
||||
text = "Current version: 0.0.0"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Center2" type="CenterContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="NotesButton" type="LinkButton" parent="VBox/Center2"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.917647, 0.631373, 0.368627, 1)
|
||||
theme_override_colors/font_hover_color = Color(0.721569, 0.454902, 0.192157, 1)
|
||||
theme_override_fonts/font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Release Notes"
|
||||
|
||||
[node name="Center" type="CenterContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBox/Center"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BreakingLabel" type="Label" parent="VBox/Center/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.72549, 0.227451, 0.34902, 1)
|
||||
theme_override_fonts/font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Potential Breaking Changes
|
||||
in new release"
|
||||
horizontal_alignment = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="BreakingMarginContainer" type="MarginContainer" parent="VBox/Center/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBox/Center/VBoxContainer/BreakingMarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel2" type="RichTextLabel" parent="VBox/Center/VBoxContainer/BreakingMarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_fonts/normal_font = ExtResource("4_gwh4i")
|
||||
theme_override_fonts/bold_font = ExtResource("3_h8uk3")
|
||||
theme_override_fonts/mono_font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/normal_font_size = 18
|
||||
theme_override_font_sizes/bold_font_size = 14
|
||||
theme_override_font_sizes/mono_font_size = 12
|
||||
bbcode_enabled = true
|
||||
text = "[center][b]I am prepared for any breaking
|
||||
changes that may occur from this update[/b][/center]"
|
||||
fit_content = true
|
||||
|
||||
[node name="BreakingOptionButton" type="OptionButton" parent="VBox/Center/VBoxContainer/BreakingMarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
mouse_default_cursor_shape = 2
|
||||
theme_override_fonts/font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/font_size = 18
|
||||
theme_override_icons/arrow = SubResource("ImageTexture_sjwi2")
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_insma")
|
||||
theme_override_styles/hover = SubResource("StyleBoxFlat_8m63d")
|
||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_yn22d")
|
||||
alignment = 1
|
||||
item_count = 2
|
||||
selected = 0
|
||||
popup/item_0/text = "Confirm choice"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Yes, I am prepared"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="DownloadButton" type="Button" parent="VBox/Center/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(240, 90)
|
||||
layout_mode = 2
|
||||
mouse_default_cursor_shape = 2
|
||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_djsbc")
|
||||
theme_override_styles/hover = SubResource("StyleBoxEmpty_xtrn6")
|
||||
theme_override_styles/pressed = SubResource("StyleBoxEmpty_o12j0")
|
||||
theme_override_styles/disabled = SubResource("StyleBoxEmpty_buptb")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_g3tf0")
|
||||
|
||||
[node name="DownloadButtonBG" type="NinePatchRect" parent="VBox/Center/VBoxContainer/DownloadButton"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("5_bonti")
|
||||
patch_margin_left = 38
|
||||
patch_margin_top = 37
|
||||
patch_margin_right = 38
|
||||
patch_margin_bottom = 39
|
||||
|
||||
[node name="UpdateLabel" type="Label" parent="VBox/Center/VBoxContainer/DownloadButton"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 14
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_top = -14.5
|
||||
offset_bottom = 14.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||
theme_override_fonts/font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "Update"
|
||||
horizontal_alignment = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 10
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="VBox/MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_fonts/normal_font = ExtResource("4_gwh4i")
|
||||
theme_override_fonts/mono_font = ExtResource("3_h8uk3")
|
||||
theme_override_font_sizes/normal_font_size = 12
|
||||
theme_override_font_sizes/mono_font_size = 12
|
||||
bbcode_enabled = true
|
||||
text = "[center]The updater can be disabled within:
|
||||
[code]Project Settings / Phantom Camera / Updater / Enable Updater[/code][/center]"
|
||||
fit_content = true
|
||||
|
||||
[connection signal="pressed" from="VBox/Center2/NotesButton" to="." method="_on_notes_button_pressed"]
|
|
@ -0,0 +1,101 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://cuqkqsp3ikv5u"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="1_5e5k4"]
|
||||
[ext_resource type="Script" path="res://addons/phantom_camera/scripts/panel/updater/update_button.gd" id="1_xtaw5"]
|
||||
[ext_resource type="Texture2D" uid="uid://d4j4hrb7yusyq" path="res://addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg" id="2_c4d83"]
|
||||
[ext_resource type="PackedScene" uid="uid://b25fl4usw0nlp" path="res://addons/phantom_camera/panel/updater/download_update_panel.tscn" id="2_vtgcx"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c7fd1"]
|
||||
content_margin_left = 10.0
|
||||
content_margin_top = 4.0
|
||||
content_margin_right = 10.0
|
||||
content_margin_bottom = 4.0
|
||||
bg_color = Color(0.0980392, 0.415686, 0.341176, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.227451, 0.72549, 0.603922, 1)
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y83dj"]
|
||||
content_margin_left = 10.0
|
||||
content_margin_top = 4.0
|
||||
content_margin_right = 10.0
|
||||
content_margin_bottom = 4.0
|
||||
bg_color = Color(0.0784314, 0.109804, 0.129412, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_slf6e"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lekqh"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dr4n4"]
|
||||
content_margin_bottom = 20.0
|
||||
bg_color = Color(0.0784314, 0.109804, 0.129412, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.227451, 0.72549, 0.603922, 1)
|
||||
|
||||
[node name="UpdateButton" type="Button"]
|
||||
visible = false
|
||||
offset_left = 1.0
|
||||
offset_right = 149.0
|
||||
offset_bottom = 28.0
|
||||
size_flags_vertical = 3
|
||||
theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
theme_override_colors/font_hover_color = Color(0.939288, 0.917743, 0.892615, 1)
|
||||
theme_override_colors/icon_normal_color = Color(0.960784, 0.960784, 0.960784, 1)
|
||||
theme_override_fonts/font = ExtResource("1_5e5k4")
|
||||
theme_override_font_sizes/font_size = 14
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_c7fd1")
|
||||
theme_override_styles/hover = SubResource("StyleBoxFlat_y83dj")
|
||||
theme_override_styles/pressed = SubResource("StyleBoxEmpty_slf6e")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_lekqh")
|
||||
text = "Update available"
|
||||
icon = ExtResource("2_c4d83")
|
||||
script = ExtResource("1_xtaw5")
|
||||
|
||||
[node name="HTTPRequest" type="HTTPRequest" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="DownloadDialog" type="AcceptDialog" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transparent_bg = true
|
||||
title = "New Update"
|
||||
initial_position = 2
|
||||
size = Vector2i(450, 480)
|
||||
transient = false
|
||||
unresizable = true
|
||||
borderless = true
|
||||
keep_title_visible = false
|
||||
content_scale_mode = 1
|
||||
theme_override_constants/buttons_separation = 30
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_dr4n4")
|
||||
ok_button_text = "Close"
|
||||
|
||||
[node name="DownloadUpdatePanel" parent="DownloadDialog" instance=ExtResource("2_vtgcx")]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 2.0
|
||||
offset_top = 2.0
|
||||
offset_right = -2.0
|
||||
offset_bottom = -80.0
|
||||
|
||||
[node name="NeedsReloadDialog" type="ConfirmationDialog" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="UpdateFailedDialog" type="AcceptDialog" parent="."]
|
||||
unique_name_in_owner = true
|