Merge branch 'master' into wip
|
@ -1,48 +0,0 @@
|
|||
using Godot;
|
||||
|
||||
namespace SupaLidlGame.BoundingBoxes;
|
||||
|
||||
public partial class CameraBounds : Node2D
|
||||
{
|
||||
[Export]
|
||||
public Area2D Trigger { get; set; }
|
||||
|
||||
//[Export]
|
||||
//public Rect2I Bounds { get; set; }
|
||||
|
||||
[Export]
|
||||
public Marker2D TopLeft { get; set; }
|
||||
|
||||
[Export]
|
||||
public Marker2D BottomRight { get; set; }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Trigger.BodyEntered += OnBodyEntered;
|
||||
Trigger.BodyExited += OnBodyExited;
|
||||
}
|
||||
|
||||
private void OnBodyEntered(Node2D body)
|
||||
{
|
||||
if (body is Characters.Player player)
|
||||
{
|
||||
var camera = player.Camera;
|
||||
var rect = new Rect2I();
|
||||
rect.Position = (Vector2I)TopLeft.GlobalPosition;
|
||||
rect.End = (Vector2I)BottomRight.GlobalPosition;
|
||||
camera.SetCameraBounds(rect);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBodyExited(Node2D body)
|
||||
{
|
||||
if (body is Characters.Player player)
|
||||
{
|
||||
var camera = player.Camera;
|
||||
camera.LimitLeft = int.MinValue;
|
||||
camera.LimitTop = int.MinValue;
|
||||
camera.LimitRight = int.MaxValue;
|
||||
camera.LimitBottom = int.MaxValue;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://malbos18dh7l"]
|
||||
|
||||
[ext_resource type="Script" path="res://BoundingBoxes/CameraBounds.cs" id="1_vaknk"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_b2lli"]
|
||||
size = Vector2(256, 272)
|
||||
|
||||
[node name="CameraBounds" type="Node2D" node_paths=PackedStringArray("Trigger", "TopLeft", "BottomRight")]
|
||||
script = ExtResource("1_vaknk")
|
||||
Trigger = NodePath("Area2D")
|
||||
TopLeft = NodePath("TopLeft")
|
||||
BottomRight = NodePath("BottomRight")
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
monitorable = false
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_b2lli")
|
||||
debug_color = Color(0.631373, 0.345098, 1, 0.419608)
|
||||
|
||||
[node name="TopLeft" type="Marker2D" parent="."]
|
||||
|
||||
[node name="BottomRight" type="Marker2D" parent="."]
|
|
@ -0,0 +1,47 @@
|
|||
using Godot;
|
||||
|
||||
namespace SupaLidlGame.BoundingBoxes;
|
||||
|
||||
public partial class CameraTrigger : Area2D
|
||||
{
|
||||
[Export]
|
||||
public Node Camera { get; set; }
|
||||
|
||||
[Export]
|
||||
public int EnablePriority { get; set; } = 2;
|
||||
|
||||
[Export]
|
||||
public int DisablePriority { get; set; } = 0;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Connect(SignalName.BodyEntered, new Callable(this, nameof(OnBodyEntered)));
|
||||
Connect(SignalName.BodyExited, new Callable(this, nameof(OnBodyExited)));
|
||||
}
|
||||
|
||||
public override void _EnterTree()
|
||||
{
|
||||
if (!Camera.Get("tween_on_load").AsBool())
|
||||
{
|
||||
var tween = Camera.Get("tween_resource").AsGodotObject();
|
||||
double duration = tween.Get("duration").AsDouble();
|
||||
|
||||
// HACK: manually set this field to interrupt tween when the
|
||||
// trigger enters the scene, which happens when the scene is loaded
|
||||
// from the cache
|
||||
Camera.SetDeferred("_has_tweened", true);
|
||||
GD.Print("set tween");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBodyEntered(Node2D node)
|
||||
{
|
||||
Camera.Set("priority", EnablePriority);
|
||||
Camera.Set("follow_target", node);
|
||||
}
|
||||
|
||||
private void OnBodyExited(Node2D node)
|
||||
{
|
||||
Camera.Set("priority", DisablePriority);
|
||||
}
|
||||
}
|
|
@ -152,6 +152,7 @@ Sprite = NodePath("Sprites/Node2D/Character")
|
|||
Inventory = NodePath("Inventory")
|
||||
StateMachine = NodePath("StateMachine")
|
||||
Hurtbox = NodePath("Hurtbox")
|
||||
Faction = 2
|
||||
|
||||
[node name="Stats" type="Node" parent="."]
|
||||
script = ExtResource("9_bxrs2")
|
||||
|
|
|
@ -364,13 +364,11 @@ curve = SubResource("Curve_30p4b")
|
|||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qdhau"]
|
||||
particle_flag_disable_z = true
|
||||
spread = 180.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
initial_velocity_min = 32.0
|
||||
initial_velocity_max = 32.0
|
||||
angular_velocity_min = 90.0
|
||||
angular_velocity_max = 90.0
|
||||
orbit_velocity_min = 0.0
|
||||
orbit_velocity_max = 0.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
linear_accel_min = -64.0
|
||||
linear_accel_max = -32.0
|
||||
tangential_accel_min = 8.0
|
||||
|
@ -405,6 +403,7 @@ Sprite = NodePath("Sprites/Node2D/Character")
|
|||
Inventory = NodePath("Inventory")
|
||||
StateMachine = NodePath("StateMachine")
|
||||
Hurtbox = NodePath("Hurtbox")
|
||||
Faction = 2
|
||||
|
||||
[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")]
|
||||
script = ExtResource("3_lj2a2")
|
||||
|
@ -441,7 +440,6 @@ MaxDistanceToTarget = 128.0
|
|||
UseItemDistance = 128.0
|
||||
PassiveState = NodePath("../Pursue")
|
||||
PursueState = NodePath("../Pursue")
|
||||
PursueOnLineOfSight = false
|
||||
NPC = NodePath("../..")
|
||||
|
||||
[node name="Idle" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("PursueState", "NavigationAgent", "NPC")]
|
||||
|
@ -450,7 +448,6 @@ PursueState = NodePath("../Pursue")
|
|||
MinTargetDistance = 32.0
|
||||
PursueOnLineOfSight = true
|
||||
MinLineOfSightDistance = 128.0
|
||||
ShouldReturnToOriginalPosition = true
|
||||
NavigationAgent = NodePath("../../NavigationAgent2D")
|
||||
NPC = NodePath("../..")
|
||||
|
||||
|
@ -530,15 +527,17 @@ hframes = 6
|
|||
position = Vector2(0, -4)
|
||||
shape = SubResource("RectangleShape2D_bfqew")
|
||||
|
||||
[node name="Inventory" type="Node2D" parent="."]
|
||||
[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Hotbar")]
|
||||
position = Vector2(0, -4)
|
||||
script = ExtResource("17_sjq8t")
|
||||
Hotbar = []
|
||||
|
||||
[node name="ProjectileSpawner" parent="Inventory" instance=ExtResource("17_dmlbb")]
|
||||
[node name="ProjectileSpawner" parent="Inventory" node_paths=PackedStringArray("StateMachine") instance=ExtResource("17_dmlbb")]
|
||||
Projectile = ExtResource("18_lwg36")
|
||||
ShouldOverrideProjectileDamage = false
|
||||
ShouldOverrideVelocity = false
|
||||
ShouldRotate = false
|
||||
StateMachine = NodePath("StateMachine")
|
||||
UseTime = 2.0
|
||||
|
||||
[node name="Hurtbox" parent="." instance=ExtResource("18_ajs2x")]
|
||||
|
|
|
@ -290,6 +290,7 @@ Sprite = NodePath("Sprites/Node2D/Character")
|
|||
Inventory = NodePath("Inventory")
|
||||
StateMachine = NodePath("StateMachine")
|
||||
Hurtbox = NodePath("Hurtbox")
|
||||
Faction = 2
|
||||
metadata/_edit_vertical_guides_ = []
|
||||
|
||||
[node name="Stats" type="Node" parent="."]
|
||||
|
@ -416,7 +417,7 @@ stream = ExtResource("15_w7mkq")
|
|||
unique_name_in_owner = true
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
position = Vector2(-0.5, 4)
|
||||
position = Vector2(0, 4)
|
||||
rotation = 6.28319
|
||||
|
||||
[node name="Node2D" type="Node2D" parent="Sprites"]
|
||||
|
|
|
@ -104,19 +104,17 @@ public partial class NPC : Character
|
|||
{
|
||||
float bestScore = float.MaxValue;
|
||||
Character bestChar = null;
|
||||
// NOTE: this relies on all Characters being under the Entities node
|
||||
foreach (Node node in GetParent().GetChildren())
|
||||
|
||||
foreach (var character in World.Instance.CurrentMap.GetCharacters())
|
||||
{
|
||||
if (node is Character character)
|
||||
{
|
||||
bool isFriendly = character.Faction == Faction;
|
||||
if (isFriendly || character.Health <= 0)
|
||||
bool isFriendly = ((IFaction)character).AlignsWith(this);
|
||||
if (isFriendly || !character.IsAlive)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
float score = 0;
|
||||
score -= Position.DistanceTo(character.Position);
|
||||
score += GlobalPosition.DistanceSquaredTo(character.GlobalPosition);
|
||||
|
||||
if (score < bestScore)
|
||||
{
|
||||
|
@ -124,7 +122,7 @@ public partial class NPC : Character
|
|||
bestChar = character;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bestChar;
|
||||
}
|
||||
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
@ -75,6 +78,17 @@ public sealed partial class Player : Character
|
|||
Inventory.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
public override void _EnterTree()
|
||||
{
|
||||
// HACK: instantly move camera to player when switching to a scene
|
||||
// with another PhantomCamera2D
|
||||
var tween = GetNode<GodotObject>("PCamera")
|
||||
.Get("tween_resource")
|
||||
.AsGodotObject();
|
||||
tween.Set("duration", 0);
|
||||
tween.SetDeferred("duration", 1);
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
base._Process(delta);
|
||||
|
@ -238,7 +252,6 @@ public sealed partial class Player : Character
|
|||
switch (inputMethod)
|
||||
{
|
||||
case State.Global.InputMethod.Joystick:
|
||||
GD.Print(joystick);
|
||||
if (joystick.IsZeroApprox())
|
||||
{
|
||||
return Direction;
|
||||
|
|
|
@ -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,14 @@ 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")
|
||||
draw_limits = true
|
||||
|
||||
[node name="Stats" type="Node" parent="."]
|
||||
script = ExtResource("4_06oya")
|
||||
|
||||
|
@ -765,6 +781,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
|
||||
|
||||
|
|
|
@ -91,11 +91,6 @@ public class Parser
|
|||
}
|
||||
else if (token.Type == TokenType.Grouping)
|
||||
{
|
||||
if (token.Value == ")")
|
||||
{
|
||||
throw new InterpreterException("Unexpected )",
|
||||
token.Line, token.Column);
|
||||
}
|
||||
if (prev is LiteralExpression l)
|
||||
{
|
||||
// this is a function call
|
||||
|
|
|
@ -59,10 +59,13 @@ public partial class DynamicDoor : StaticBody2D
|
|||
{
|
||||
// rebake navmesh so NPCs can correctly travel conditionally
|
||||
GD.Print("Dynamic door updated; rebaking navmeshes...");
|
||||
if (!navmesh.IsBaking())
|
||||
{
|
||||
navmesh.BakeNavigationPolygon();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Open()
|
||||
{
|
||||
|
|
|
@ -111,8 +111,6 @@ public partial class Inventory : Node2D, IItemCollection<ItemMetadata>
|
|||
|
||||
EmitSignal(SignalName.EquippedItem, prevItem, _selectedItem);
|
||||
|
||||
GD.Print($"Inventory: {index} is new selected index.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://hm3ek8vqt1d4"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://hm3ek8vqt1d4"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dwbrymm3ud5xu" path="res://Assets/Sprites/Props/bookshelf.png" id="1_cnrpk"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wc4oe"]
|
||||
size = Vector2(28, 8)
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_tsfmt"]
|
||||
source_geometry_group_name = &"navigation_polygon_source_group"
|
||||
|
||||
[node name="Bookshelf" type="StaticBody2D"]
|
||||
y_sort_enabled = true
|
||||
|
||||
|
@ -48,6 +45,3 @@ frame = 1
|
|||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -4)
|
||||
shape = SubResource("RectangleShape2D_wc4oe")
|
||||
|
||||
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."]
|
||||
navigation_polygon = SubResource("NavigationPolygon_tsfmt")
|
||||
|
|
|
@ -7,9 +7,8 @@ Forsen-related game
|
|||
## Building
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This is currently being developed with Godot 4.3 dev 3 snapshot, which
|
||||
> includes a fix for C# generics causing problems and resetting properties to
|
||||
> null.
|
||||
> This is currently being developed with Godot 4.3 beta 1, which > includes
|
||||
a fix for C# generics causing problems and resetting properties to > null.
|
||||
|
||||
Requires .NET version >=7.0.
|
||||
|
||||
|
|
|
@ -12,43 +12,60 @@ background_mode = 3
|
|||
glow_enabled = true
|
||||
glow_hdr_threshold = 1.4
|
||||
|
||||
[node name="TileMap" type="TileMap" node_paths=PackedStringArray("Entities", "Areas", "Spawners", "Markers")]
|
||||
[node name="TileMap" type="Node2D" node_paths=PackedStringArray("Entities", "Areas", "Spawners", "Markers")]
|
||||
process_mode = 1
|
||||
y_sort_enabled = true
|
||||
texture_filter = 3
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
format = 2
|
||||
layer_0/name = "z-index 0"
|
||||
layer_0/y_sort_enabled = true
|
||||
layer_1/name = "z-index -1"
|
||||
layer_1/y_sort_enabled = true
|
||||
layer_1/z_index = -1
|
||||
layer_1/tile_data = PackedInt32Array()
|
||||
layer_2/name = "z-index -1 (under)"
|
||||
layer_2/y_sort_enabled = true
|
||||
layer_2/z_index = -1
|
||||
layer_2/tile_data = PackedInt32Array()
|
||||
layer_3/name = "z-index -2"
|
||||
layer_3/y_sort_enabled = true
|
||||
layer_3/z_index = -2
|
||||
layer_3/tile_data = PackedInt32Array()
|
||||
layer_4/name = "z-index -3"
|
||||
layer_4/y_sort_enabled = true
|
||||
layer_4/z_index = -3
|
||||
layer_4/tile_data = PackedInt32Array()
|
||||
layer_5/name = "Lower 1"
|
||||
layer_5/z_index = -4
|
||||
layer_5/tile_data = PackedInt32Array()
|
||||
layer_6/name = "z-index 0 (walls)"
|
||||
layer_6/y_sort_enabled = true
|
||||
layer_6/y_sort_origin = -8
|
||||
layer_6/tile_data = PackedInt32Array()
|
||||
script = ExtResource("2_4m0a1")
|
||||
Entities = NodePath("Entities")
|
||||
Areas = NodePath("Areas")
|
||||
Spawners = NodePath("Spawners")
|
||||
Markers = NodePath("Markers")
|
||||
|
||||
[node name="Layers" type="Node2D" parent="."]
|
||||
y_sort_enabled = true
|
||||
|
||||
[node name="z-index 0" type="TileMapLayer" parent="Layers"]
|
||||
y_sort_enabled = true
|
||||
texture_filter = 3
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index -1" type="TileMapLayer" parent="Layers"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index -1 (under)" type="TileMapLayer" parent="Layers"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index -2" type="TileMapLayer" parent="Layers"]
|
||||
z_index = -2
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index -3" type="TileMapLayer" parent="Layers"]
|
||||
z_index = -3
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index -4" type="TileMapLayer" parent="Layers"]
|
||||
z_index = -4
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
|
||||
[node name="z-index 0 (walls)" type="TileMapLayer" parent="Layers"]
|
||||
y_sort_enabled = true
|
||||
use_parent_material = true
|
||||
tile_set = SubResource("TileSet_18c7j")
|
||||
y_sort_origin = -8
|
||||
|
||||
[node name="CanvasModulate" type="CanvasModulate" parent="."]
|
||||
|
||||
[node name="Props" type="Node2D" parent="."]
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
using Godot;
|
||||
using SupaLidlGame.Extensions;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SupaLidlGame.Scenes;
|
||||
|
||||
public partial class Map : TileMap
|
||||
public partial class Map : Node2D
|
||||
{
|
||||
[Export]
|
||||
public Node2D Entities { get; set; }
|
||||
|
@ -71,6 +72,17 @@ public partial class Map : TileMap
|
|||
GetNode<Audio.AudioManager>("/root/AudioManager").PlayBackground(Music);
|
||||
}
|
||||
|
||||
public IEnumerable<Characters.Character> GetCharacters()
|
||||
{
|
||||
foreach (var child in Entities.GetChildren())
|
||||
{
|
||||
if (child is Characters.Character c)
|
||||
{
|
||||
yield return c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Node SpawnEntity(PackedScene scene)
|
||||
{
|
||||
var instance = scene.Instantiate();
|
||||
|
|
|
@ -5,22 +5,13 @@
|
|||
[ext_resource type="Texture2D" uid="uid://udgjrcaexuaq" path="res://Assets/Sprites/Props/arena-arches.png" id="3_hbylw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bth1v3dyuqwg6" path="res://Assets/Sprites/arena-tileset-new.png" id="4_n70qi"]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_7lhug"]
|
||||
vertices = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)])
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_7s0wj"]
|
||||
source_geometry_group_name = &"navigation_polygon_source_group"
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_d0snv"]
|
||||
vertices = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)])
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_7vkqx"]
|
||||
source_geometry_group_name = &"navigation_polygon_source_group"
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_m43r7"]
|
||||
vertices = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||
outlines = Array[PackedVector2Array]([PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)])
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_pxj45"]
|
||||
source_geometry_group_name = &"navigation_polygon_source_group"
|
||||
|
||||
[sub_resource type="CanvasTexture" id="CanvasTexture_3n6aa"]
|
||||
|
@ -31,8 +22,6 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
0:0/0 = 0
|
||||
0:0/0/terrain_set = 0
|
||||
0:0/0/terrain = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/0/terrains_peering_bit/right_side = 0
|
||||
0:0/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
0:0/0/terrains_peering_bit/bottom_side = 0
|
||||
|
@ -41,12 +30,10 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
0:0/0/terrains_peering_bit/top_left_corner = 0
|
||||
0:0/0/terrains_peering_bit/top_side = 0
|
||||
0:0/0/terrains_peering_bit/top_right_corner = 0
|
||||
0:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7lhug")
|
||||
0:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
1:1/0 = 0
|
||||
1:1/0/terrain_set = 0
|
||||
1:1/0/terrain = 0
|
||||
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:1/0/terrains_peering_bit/right_side = 0
|
||||
1:1/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:1/0/terrains_peering_bit/bottom_side = 0
|
||||
|
@ -55,12 +42,10 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
1:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
1:1/0/terrains_peering_bit/top_side = 0
|
||||
1:1/0/terrains_peering_bit/top_right_corner = 0
|
||||
1:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7lhug")
|
||||
1:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
2:1/0 = 0
|
||||
2:1/0/terrain_set = 0
|
||||
2:1/0/terrain = 1
|
||||
2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
2:1/0/terrains_peering_bit/right_side = 1
|
||||
2:1/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
|
@ -72,17 +57,14 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
2:1/0/terrains_peering_bit/top_right_corner = 1
|
||||
2:2/0 = 0
|
||||
2:2/0/terrain_set = 0
|
||||
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 8, 0, 8, 8, -8, 8)
|
||||
2:2/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
2:2/0/terrains_peering_bit/bottom_side = 1
|
||||
2:2/0/terrains_peering_bit/bottom_left_corner = 1
|
||||
2:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
1:0/0 = 0
|
||||
1:0/0/terrain_set = 0
|
||||
1:0/0/terrain = 0
|
||||
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:0/0/terrains_peering_bit/right_side = 0
|
||||
1:0/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
1:0/0/terrains_peering_bit/bottom_side = 0
|
||||
|
@ -91,12 +73,10 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
1:0/0/terrains_peering_bit/top_left_corner = 0
|
||||
1:0/0/terrains_peering_bit/top_side = 0
|
||||
1:0/0/terrains_peering_bit/top_right_corner = 0
|
||||
1:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7lhug")
|
||||
1:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
0:1/0 = 0
|
||||
0:1/0/terrain_set = 0
|
||||
0:1/0/terrain = 0
|
||||
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:1/0/terrains_peering_bit/right_side = 0
|
||||
0:1/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
0:1/0/terrains_peering_bit/bottom_side = 0
|
||||
|
@ -105,59 +85,35 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
0:1/0/terrains_peering_bit/top_left_corner = 0
|
||||
0:1/0/terrains_peering_bit/top_side = 0
|
||||
0:1/0/terrains_peering_bit/top_right_corner = 0
|
||||
0:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7lhug")
|
||||
0:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
0:2/0 = 0
|
||||
0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:3/0 = 0
|
||||
0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:3/0 = 0
|
||||
1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:2/0 = 0
|
||||
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
2:0/0 = 0
|
||||
2:0/0/terrain_set = 0
|
||||
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_m43r7")
|
||||
2:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
3:0/0 = 0
|
||||
3:0/0/terrain_set = 0
|
||||
3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_m43r7")
|
||||
3:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
4:0/0 = 0
|
||||
4:0/0/terrain_set = 0
|
||||
4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
5:0/0 = 0
|
||||
5:0/0/terrain_set = 0
|
||||
5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
6:0/0 = 0
|
||||
6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:1/0 = 0
|
||||
6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:1/0 = 0
|
||||
5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:1/0 = 0
|
||||
4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:1/0 = 0
|
||||
3:1/0/terrain_set = 0
|
||||
3:1/0/terrain = 1
|
||||
3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:1/0/terrains_peering_bit/right_side = 1
|
||||
3:1/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
|
@ -169,74 +125,53 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
3:1/0/terrains_peering_bit/top_right_corner = 1
|
||||
3:2/0 = 0
|
||||
3:2/0/terrain_set = 0
|
||||
3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 0, -8, 0)
|
||||
3:2/0/terrains_peering_bit/top_left_corner = 0
|
||||
3:2/0/terrains_peering_bit/top_side = 0
|
||||
3:2/0/terrains_peering_bit/top_right_corner = 0
|
||||
3:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
3:3/0 = 0
|
||||
3:3/0/terrain_set = 0
|
||||
3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, -8, 8, -8, 8, 8, 0, 8)
|
||||
3:3/0/terrains_peering_bit/right_side = 0
|
||||
3:3/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
3:3/0/terrains_peering_bit/top_right_corner = 1
|
||||
2:3/0 = 0
|
||||
2:3/0/terrain_set = 0
|
||||
2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -8, 0, 8, -8, 8)
|
||||
2:3/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
2:3/0/terrains_peering_bit/left_side = 0
|
||||
2:3/0/terrains_peering_bit/top_left_corner = 1
|
||||
4:3/0 = 0
|
||||
4:3/0/terrain_set = 0
|
||||
4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 0, 0, 0, 0, -8)
|
||||
4:3/0/terrains_peering_bit/top_right_corner = 0
|
||||
4:2/0 = 0
|
||||
4:2/0/terrain_set = 0
|
||||
4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 8, 0, 8, 8, 0, 8)
|
||||
4:2/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
4:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
5:2/0 = 0
|
||||
5:2/0/terrain_set = 0
|
||||
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 0, 0, 0, 0, 8, -8, 8)
|
||||
5:2/0/terrains_peering_bit/bottom_left_corner = 1
|
||||
5:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
5:3/0 = 0
|
||||
5:3/0/terrain_set = 0
|
||||
5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -8, 0, 0, -8, 0)
|
||||
5:3/0/terrains_peering_bit/top_left_corner = 0
|
||||
6:3/0 = 0
|
||||
6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:2/0 = 0
|
||||
6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
7:2/0 = 0
|
||||
7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
7:3/0 = 0
|
||||
7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:0/size_in_atlas = Vector2i(1, 2)
|
||||
7:0/0 = 0
|
||||
7:0/0/texture_origin = Vector2i(0, 8)
|
||||
7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -5, 8, -5, 8, 4, 4, 8, -4, 8, -8, 4)
|
||||
0:4/0 = 0
|
||||
0:4/0/terrain_set = 0
|
||||
0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:4/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
0:4/0/terrains_peering_bit/left_side = 0
|
||||
|
@ -245,8 +180,6 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
0:4/0/terrains_peering_bit/top_right_corner = 0
|
||||
0:5/0 = 0
|
||||
0:5/0/terrain_set = 0
|
||||
0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:5/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
0:5/0/terrains_peering_bit/bottom_side = 1
|
||||
|
@ -255,8 +188,6 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
0:5/0/terrains_peering_bit/top_left_corner = 0
|
||||
1:5/0 = 0
|
||||
1:5/0/terrain_set = 0
|
||||
1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:5/0/terrains_peering_bit/right_side = 0
|
||||
1:5/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
|
@ -265,8 +196,6 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
1:5/0/terrains_peering_bit/top_right_corner = 0
|
||||
1:4/0 = 0
|
||||
1:4/0/terrain_set = 0
|
||||
1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:4/0/terrains_peering_bit/right_side = 0
|
||||
1:4/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
|
@ -276,100 +205,61 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
2:4/size_in_atlas = Vector2i(1, 3)
|
||||
2:4/0 = 0
|
||||
2:4/0/texture_origin = Vector2i(0, 16)
|
||||
2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:4/size_in_atlas = Vector2i(2, 2)
|
||||
3:4/0 = 0
|
||||
3:4/0/texture_origin = Vector2i(8, 9)
|
||||
3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:4/size_in_atlas = Vector2i(2, 2)
|
||||
5:4/0 = 0
|
||||
5:4/0/texture_origin = Vector2i(8, 9)
|
||||
5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:4/size_in_atlas = Vector2i(1, 2)
|
||||
7:4/0 = 0
|
||||
7:4/0/texture_origin = Vector2i(0, 8)
|
||||
7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:6/0 = 0
|
||||
3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:6/0 = 0
|
||||
4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:7/0 = 0
|
||||
4:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:7/0 = 0
|
||||
3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
10:1/0 = 0
|
||||
10:1/0/terrain_set = 1
|
||||
10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
10:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_d0snv")
|
||||
10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
11:1/0 = 0
|
||||
11:1/0/terrain_set = 1
|
||||
11:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
11:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
11:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_d0snv")
|
||||
11:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
11:2/0 = 0
|
||||
11:2/0/terrain_set = 1
|
||||
11:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
11:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
11:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_d0snv")
|
||||
11:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
10:2/0 = 0
|
||||
10:2/0/terrain_set = 1
|
||||
10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
10:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
10:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_d0snv")
|
||||
10:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
8:1/0 = 0
|
||||
8:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
8:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
8:2/0 = 0
|
||||
8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
8:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
8:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
9:1/0 = 0
|
||||
9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
9:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
9:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
9:2/0 = 0
|
||||
9:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
9:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
9:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7s0wj")
|
||||
9:5/0 = 0
|
||||
9:5/0/terrain_set = 1
|
||||
9:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
9:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
9:5/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
10:5/0 = 0
|
||||
10:5/0/terrain_set = 1
|
||||
10:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
10:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
10:5/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
10:5/0/terrains_peering_bit/bottom_side = 0
|
||||
10:5/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
11:5/0 = 0
|
||||
11:5/0/terrain_set = 1
|
||||
11:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
11:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
11:5/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
11:6/0 = 0
|
||||
11:6/0/terrain_set = 1
|
||||
11:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
11:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
11:6/0/terrains_peering_bit/bottom_left_corner = 0
|
||||
11:6/0/terrains_peering_bit/left_side = 0
|
||||
11:6/0/terrains_peering_bit/top_left_corner = 0
|
||||
10:6/0 = 0
|
||||
10:6/0/terrain_set = 1
|
||||
10:6/0/terrain = 0
|
||||
10:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
10:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
10:6/0/terrains_peering_bit/right_side = 0
|
||||
10:6/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
10:6/0/terrains_peering_bit/bottom_side = 0
|
||||
|
@ -380,52 +270,37 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
10:6/0/terrains_peering_bit/top_right_corner = 0
|
||||
9:6/0 = 0
|
||||
9:6/0/terrain_set = 1
|
||||
9:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
9:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
9:6/0/terrains_peering_bit/right_side = 0
|
||||
9:6/0/terrains_peering_bit/bottom_right_corner = 0
|
||||
9:6/0/terrains_peering_bit/top_right_corner = 0
|
||||
9:6/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_pxj45")
|
||||
9:7/0 = 0
|
||||
9:7/0/terrain_set = 1
|
||||
9:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
9:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
9:7/0/terrains_peering_bit/top_right_corner = 0
|
||||
10:7/0 = 0
|
||||
10:7/0/terrain_set = 1
|
||||
10:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
10:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
10:7/0/terrains_peering_bit/top_left_corner = 0
|
||||
10:7/0/terrains_peering_bit/top_side = 0
|
||||
10:7/0/terrains_peering_bit/top_right_corner = 0
|
||||
11:7/0 = 0
|
||||
11:7/0/terrain_set = 1
|
||||
11:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
11:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
11:7/0/terrains_peering_bit/top_left_corner = 0
|
||||
12:5/0 = 0
|
||||
12:5/0/terrain_set = 1
|
||||
12:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
12:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
12:5/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
13:5/0 = 0
|
||||
13:5/0/terrain_set = 1
|
||||
13:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
13:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
13:5/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
13:5/0/terrains_peering_bit/bottom_side = 1
|
||||
13:5/0/terrains_peering_bit/bottom_left_corner = 1
|
||||
14:6/0 = 0
|
||||
14:6/0/terrain_set = 1
|
||||
14:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
14:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
14:6/0/terrains_peering_bit/bottom_left_corner = 1
|
||||
14:6/0/terrains_peering_bit/left_side = 1
|
||||
14:6/0/terrains_peering_bit/top_left_corner = 1
|
||||
13:6/0 = 0
|
||||
13:6/0/terrain_set = 1
|
||||
13:6/0/terrain = 1
|
||||
13:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
13:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
13:6/0/terrains_peering_bit/right_side = 1
|
||||
13:6/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
13:6/0/terrains_peering_bit/bottom_side = 1
|
||||
|
@ -436,70 +311,43 @@ texture = SubResource("CanvasTexture_3n6aa")
|
|||
13:6/0/terrains_peering_bit/top_right_corner = 1
|
||||
12:6/0 = 0
|
||||
12:6/0/terrain_set = 1
|
||||
12:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
12:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
12:6/0/terrains_peering_bit/right_side = 1
|
||||
12:6/0/terrains_peering_bit/bottom_right_corner = 1
|
||||
12:6/0/terrains_peering_bit/top_right_corner = 1
|
||||
12:7/0 = 0
|
||||
12:7/0/terrain_set = 1
|
||||
12:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
12:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
12:7/0/terrains_peering_bit/top_right_corner = 1
|
||||
13:7/0 = 0
|
||||
13:7/0/terrain_set = 1
|
||||
13:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
13:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
13:7/0/terrains_peering_bit/top_left_corner = 1
|
||||
13:7/0/terrains_peering_bit/top_side = 1
|
||||
13:7/0/terrains_peering_bit/top_right_corner = 1
|
||||
14:7/0 = 0
|
||||
14:7/0/terrain_set = 1
|
||||
14:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
14:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
14:7/0/terrains_peering_bit/top_left_corner = 1
|
||||
14:5/0 = 0
|
||||
14:5/0/terrain_set = 1
|
||||
14:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
14:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
14:5/0/terrains_peering_bit/bottom_left_corner = 1
|
||||
5:7/0 = 0
|
||||
5:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:6/0 = 0
|
||||
5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
6:6/0 = 0
|
||||
6:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
6:7/0 = 0
|
||||
6:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
7:7/0 = 0
|
||||
7:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
7:7/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_7vkqx")
|
||||
8:7/0 = 0
|
||||
8:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
8:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
8:6/0 = 0
|
||||
8:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
8:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
12:0/0 = 0
|
||||
12:0/0/y_sort_origin = 8
|
||||
12:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
12:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 2, 8, 2, 8, 8, -8, 8)
|
||||
13:0/0 = 0
|
||||
13:0/0/y_sort_origin = 8
|
||||
13:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
13:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 2, 8, 2, 8, 8, -8, 8)
|
||||
|
||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_que0c"]
|
||||
|
@ -511,213 +359,103 @@ source_geometry_group_name = &"navigation_polygon_source_group"
|
|||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mdfpe"]
|
||||
texture = ExtResource("2_lihbs")
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
1:0/0 = 0
|
||||
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
2:0/0 = 0
|
||||
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
3:0/0 = 0
|
||||
3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
4:0/0 = 0
|
||||
4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
5:0/0 = 0
|
||||
5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
6:0/0 = 0
|
||||
6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
7:0/0 = 0
|
||||
7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:0/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
7:1/0 = 0
|
||||
7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
7:2/0 = 0
|
||||
7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
7:3/0 = 0
|
||||
7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
7:4/0 = 0
|
||||
7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
7:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
7:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
6:4/0 = 0
|
||||
6:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
5:4/0 = 0
|
||||
5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
4:4/0 = 0
|
||||
4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
3:4/0 = 0
|
||||
3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
2:4/0 = 0
|
||||
2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
1:4/0 = 0
|
||||
1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
0:4/0 = 0
|
||||
0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:4/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:4/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
0:3/0 = 0
|
||||
0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
1:2/0 = 0
|
||||
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
1:1/0 = 0
|
||||
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
0:1/0 = 0
|
||||
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
0:2/0 = 0
|
||||
0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
2:3/0 = 0
|
||||
2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
3:3/0 = 0
|
||||
3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
1:3/0 = 0
|
||||
1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
2:2/0 = 0
|
||||
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
3:1/0 = 0
|
||||
3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
4:1/0 = 0
|
||||
4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
2:1/0 = 0
|
||||
2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
4:2/0 = 0
|
||||
4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
5:2/0 = 0
|
||||
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
3:2/0 = 0
|
||||
3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
3:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
3:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
6:3/0 = 0
|
||||
6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
5:3/0 = 0
|
||||
5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
4:3/0 = 0
|
||||
4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
4:3/0/physics_layer_0/angular_velocity = 0.0
|
||||
4:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
6:2/0 = 0
|
||||
6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:2/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:2/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
6:1/0 = 0
|
||||
6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
6:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
6:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
5:1/0 = 0
|
||||
5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
5:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
5:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_que0c")
|
||||
0:5/0 = 0
|
||||
0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:5/0 = 0
|
||||
1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:6/0 = 0
|
||||
0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:7/0 = 0
|
||||
0:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:7/0 = 0
|
||||
1:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:6/0 = 0
|
||||
1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:6/0 = 0
|
||||
2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:6/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:5/0 = 0
|
||||
2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:5/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:7/0 = 0
|
||||
2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:7/0/physics_layer_0/angular_velocity = 0.0
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u4tjf"]
|
||||
texture = ExtResource("3_hbylw")
|
||||
0:0/0 = 0
|
||||
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:0/0 = 0
|
||||
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:0/0 = 0
|
||||
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:0/0/physics_layer_0/angular_velocity = 0.0
|
||||
0:1/0 = 0
|
||||
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
0:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
1:1/0 = 0
|
||||
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
1:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
2:1/0 = 0
|
||||
2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||
2:1/0/physics_layer_0/angular_velocity = 0.0
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_45tin"]
|
||||
texture = ExtResource("4_n70qi")
|
||||
|
|
|
@ -0,0 +1,211 @@
|
|||
[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://dkis3rb4n62cu"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c70cn53osy56w" path="res://Assets/Sprites/dev-tileset.png" id="1_nk7yv"]
|
||||
[ext_resource type="Texture2D" uid="uid://lnyd6osxcu0g" path="res://Assets/Sprites/Props/tree-autumn-cluster-tiles.png" id="2_j2hod"]
|
||||
[ext_resource type="Texture2D" uid="uid://ccqfwgjkerta5" path="res://Assets/Sprites/grass-tileset-dark.png" id="3_dmva5"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_s1h2f"]
|
||||
texture = ExtResource("1_nk7yv")
|
||||
0:0/0 = 0
|
||||
1:0/0 = 0
|
||||
2:0/0 = 0
|
||||
3:0/0 = 0
|
||||
0:1/0 = 0
|
||||
1:1/0 = 0
|
||||
2:1/0 = 0
|
||||
3:1/0 = 0
|
||||
0:2/0 = 0
|
||||
1:2/0 = 0
|
||||
2:2/0 = 0
|
||||
3:2/0 = 0
|
||||
0:3/0 = 0
|
||||
0:3/0/y_sort_origin = 8
|
||||
1:3/0 = 0
|
||||
1:3/0/y_sort_origin = 8
|
||||
2:3/0 = 0
|
||||
2:3/0/y_sort_origin = 8
|
||||
0:4/0 = 0
|
||||
0:4/0/y_sort_origin = 8
|
||||
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, -8, 8, -8, 8, 8, 4, 8)
|
||||
1:4/0 = 0
|
||||
1:4/0/y_sort_origin = 8
|
||||
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
2:4/0 = 0
|
||||
2:4/0/y_sort_origin = 8
|
||||
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -4, -8, -4, 8, -8, 8)
|
||||
0:5/0 = 0
|
||||
0:5/0/y_sort_origin = 8
|
||||
0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3.5, -8, 8, -8, 8, -4, 4, -4)
|
||||
1:5/0 = 0
|
||||
1:5/0/y_sort_origin = 8
|
||||
1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
|
||||
2:5/0 = 0
|
||||
2:5/0/y_sort_origin = 8
|
||||
2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -4, -8, -4, -4, -8, -4)
|
||||
3:5/0 = 0
|
||||
3:5/0/y_sort_origin = 8
|
||||
4:5/0 = 0
|
||||
4:5/0/y_sort_origin = 8
|
||||
5:5/0 = 0
|
||||
5:5/0/y_sort_origin = 8
|
||||
4:4/0 = 0
|
||||
4:4/0/y_sort_origin = 8
|
||||
4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, -8, 4, 8, 8, 8, 8, -8)
|
||||
3:4/0 = 0
|
||||
3:4/0/y_sort_origin = 8
|
||||
3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -4, -8, -4, 8, -8, 8)
|
||||
4:3/0 = 0
|
||||
4:3/0/y_sort_origin = 8
|
||||
3:3/0 = 0
|
||||
3:3/0/y_sort_origin = 8
|
||||
5:2/0 = 0
|
||||
5:2/0/y_sort_origin = 8
|
||||
4:1/0 = 0
|
||||
4:1/0/y_sort_origin = 8
|
||||
4:0/0 = 0
|
||||
4:0/0/y_sort_origin = 8
|
||||
5:0/0 = 0
|
||||
5:0/0/y_sort_origin = 8
|
||||
5:1/0 = 0
|
||||
5:1/0/y_sort_origin = 8
|
||||
4:2/0 = 0
|
||||
4:2/0/y_sort_origin = 8
|
||||
5:4/0 = 0
|
||||
5:4/0/y_sort_origin = 8
|
||||
5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, -8, 8, -8, 8, 8, 4, 8)
|
||||
5:3/0 = 0
|
||||
5:3/0/y_sort_origin = 8
|
||||
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -4, -8, -4, 8, -8, 8)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_tw0o1"]
|
||||
texture = ExtResource("2_j2hod")
|
||||
0:0/0 = 0
|
||||
0:0/0/y_sort_origin = 8
|
||||
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:0/0 = 0
|
||||
1:0/0/y_sort_origin = 8
|
||||
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
2:0/0 = 0
|
||||
2:0/0/y_sort_origin = 8
|
||||
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:0/0 = 0
|
||||
3:0/0/y_sort_origin = 8
|
||||
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:1/0 = 0
|
||||
0:1/0/y_sort_origin = 8
|
||||
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:1/0 = 0
|
||||
1:1/0/y_sort_origin = 8
|
||||
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
2:1/0 = 0
|
||||
2:1/0/y_sort_origin = 8
|
||||
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:1/0 = 0
|
||||
3:1/0/y_sort_origin = 8
|
||||
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:2/0 = 0
|
||||
0:2/0/y_sort_origin = 8
|
||||
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
1:2/0 = 0
|
||||
1:2/0/y_sort_origin = 8
|
||||
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
2:2/0 = 0
|
||||
2:2/0/y_sort_origin = 8
|
||||
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
3:2/0 = 0
|
||||
3:2/0/y_sort_origin = 8
|
||||
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
0:3/size_in_atlas = Vector2i(1, 2)
|
||||
0:3/0 = 0
|
||||
0:3/0/texture_origin = Vector2i(0, 8)
|
||||
0:3/0/y_sort_origin = 8
|
||||
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -24, 8, -24, 8, 8, -8, 8)
|
||||
1:3/size_in_atlas = Vector2i(1, 2)
|
||||
1:3/0 = 0
|
||||
1:3/0/texture_origin = Vector2i(0, 8)
|
||||
1:3/0/y_sort_origin = 8
|
||||
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -24, 8, -24, 8, 8, -8, 8)
|
||||
2:3/size_in_atlas = Vector2i(1, 2)
|
||||
2:3/0 = 0
|
||||
2:3/0/texture_origin = Vector2i(0, 8)
|
||||
2:3/0/y_sort_origin = 8
|
||||
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -24, 8, -24, 8, 8, -8, 8)
|
||||
3:3/size_in_atlas = Vector2i(1, 2)
|
||||
3:3/0 = 0
|
||||
3:3/0/texture_origin = Vector2i(0, 8)
|
||||
3:3/0/y_sort_origin = 8
|
||||
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -24, 8, -24, 8, 8, -8, 8)
|
||||
4:0/0 = 0
|
||||
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:0/0 = 0
|
||||
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:1/0 = 0
|
||||
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:1/0 = 0
|
||||
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:2/0 = 0
|
||||
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:2/0 = 0
|
||||
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
5:3/0 = 0
|
||||
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
4:3/0 = 0
|
||||
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_w8vpx"]
|
||||
texture = ExtResource("3_dmva5")
|
||||
0:0/0 = 0
|
||||
1:0/0 = 0
|
||||
1:1/0 = 0
|
||||
2:1/0 = 0
|
||||
3:2/0 = 0
|
||||
4:2/0 = 0
|
||||
4:3/0 = 0
|
||||
5:3/0 = 0
|
||||
0:1/0 = 0
|
||||
0:2/0 = 0
|
||||
0:3/0 = 0
|
||||
0:4/0 = 0
|
||||
0:5/0 = 0
|
||||
1:5/0 = 0
|
||||
1:6/0 = 0
|
||||
2:6/0 = 0
|
||||
0:6/0 = 0
|
||||
0:7/0 = 0
|
||||
1:7/0 = 0
|
||||
2:7/0 = 0
|
||||
2:5/0 = 0
|
||||
1:2/0 = 0
|
||||
1:3/0 = 0
|
||||
2:3/0 = 0
|
||||
3:3/0 = 0
|
||||
1:4/0 = 0
|
||||
6:3/0 = 0
|
||||
2:4/0 = 0
|
||||
3:4/0 = 0
|
||||
4:4/0 = 0
|
||||
2:2/0 = 0
|
||||
5:4/0 = 0
|
||||
6:4/0 = 0
|
||||
7:4/0 = 0
|
||||
7:3/0 = 0
|
||||
2:0/0 = 0
|
||||
3:0/0 = 0
|
||||
4:0/0 = 0
|
||||
5:0/0 = 0
|
||||
6:0/0 = 0
|
||||
7:0/0 = 0
|
||||
7:1/0 = 0
|
||||
6:2/0 = 0
|
||||
5:2/0 = 0
|
||||
4:1/0 = 0
|
||||
3:1/0 = 0
|
||||
6:1/0 = 0
|
||||
7:2/0 = 0
|
||||
5:1/0 = 0
|
||||
|
||||
[resource]
|
||||
physics_layer_0/collision_layer = 1
|
||||
sources/0 = SubResource("TileSetAtlasSource_s1h2f")
|
||||
sources/3 = SubResource("TileSetAtlasSource_w8vpx")
|
||||
sources/1 = SubResource("TileSetAtlasSource_tw0o1")
|
|
@ -54,4 +54,14 @@ public partial class MapState : Resource
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Variant Get(string key)
|
||||
{
|
||||
return this[key];
|
||||
}
|
||||
|
||||
public void Set(string key, Variant value)
|
||||
{
|
||||
this[key] = value;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
<Project Sdk="Godot.NET.Sdk/4.3.0-dev.3">
|
||||
<Project Sdk="Godot.NET.Sdk/4.3.0-beta.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
<PublishAOT>true</PublishAOT>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<TrimmerRootAssembly Include="GodotSharp" />
|
||||
<TrimmerRootAssembly Include="$(TargetName)" />
|
||||
<Content Remove="UnitTests/**/*" />
|
||||
<Compile Remove="UnitTests/**/*" />
|
||||
<None Remove="UnitTests/**/*" />
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://cyggkyqosjk36"]
|
||||
|
||||
[ext_resource type="StyleBox" uid="uid://bqhotx2ogucye" path="res://UI/Themes/Panel.tres" id="1_2ffty"]
|
||||
[ext_resource type="StyleBox" path="res://UI/Themes/Panel.tres" id="1_2ffty"]
|
||||
[ext_resource type="Script" path="res://UI/Inventory/ShopMenu.cs" id="1_8c1y7"]
|
||||
[ext_resource type="Shader" path="res://Shaders/WipeXY.gdshader" id="2_jqery"]
|
||||
[ext_resource type="FontFile" uid="uid://cgwa8bjiyv534" path="res://Assets/Fonts/alagard.ttf" id="3_aj4jx"]
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[gd_resource type="Theme" load_steps=11 format=3 uid="uid://cksjbu3vrup5"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://6bvgjbmqovau" path="res://Assets/Fonts/calamity/calamity.ttf" id="1_334fe"]
|
||||
[ext_resource type="StyleBox" uid="uid://nvb4etac7ee2" path="res://UI/Themes/InventorySlotButtonFocus.tres" id="2_3w5h1"]
|
||||
[ext_resource type="StyleBox" path="res://UI/Themes/InventorySlotButtonFocus.tres" id="2_3w5h1"]
|
||||
[ext_resource type="Texture2D" uid="uid://b16461tjso0j7" path="res://Assets/Sprites/UI/hotbar-inactive.png" id="2_6sv27"]
|
||||
[ext_resource type="StyleBox" uid="uid://bqhotx2ogucye" path="res://UI/Themes/Panel.tres" id="2_jlgx8"]
|
||||
[ext_resource type="StyleBox" uid="uid://cfqp0ycwvwx7c" path="res://UI/Themes/InventorySlotButtonNormal.tres" id="3_nuiio"]
|
||||
[ext_resource type="StyleBox" uid="uid://pqtn0115bqtp" path="res://UI/Themes/InventorySlotButtonPressed.tres" id="4_mllnb"]
|
||||
[ext_resource type="StyleBox" path="res://UI/Themes/Panel.tres" id="2_jlgx8"]
|
||||
[ext_resource type="StyleBox" path="res://UI/Themes/InventorySlotButtonNormal.tres" id="3_nuiio"]
|
||||
[ext_resource type="StyleBox" path="res://UI/Themes/InventorySlotButtonPressed.tres" id="4_mllnb"]
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_wk5ww"]
|
||||
content_margin_left = 4.0
|
||||
|
|
|
@ -53,7 +53,7 @@ public partial class Spawner : Node2D
|
|||
|
||||
var chr = Character.Instantiate<Characters.Character>();
|
||||
chr.GlobalPosition = randPos;
|
||||
this.GetAncestor<Scenes.Map>().Entities.AddChild(chr);
|
||||
World.Instance.CurrentMap.Entities.AddChild(chr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
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 |