diff --git a/project.godot b/project.godot index 3bad06a8..33266eef 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="GameJamDungeon" -run/main_scene="res://src/Main.tscn" +run/main_scene="uid://d1gjaijijd5ot" config/features=PackedStringArray("4.4", "C#", "GL Compatibility") boot_splash/show_image=false diff --git a/src/enemy/Enemy.cs b/src/enemy/Enemy.cs index 936fb646..133d92e7 100644 --- a/src/enemy/Enemy.cs +++ b/src/enemy/Enemy.cs @@ -9,7 +9,7 @@ using System.Threading.Tasks; namespace GameJamDungeon; [Meta(typeof(IAutoNode))] -public partial class Enemy : RigidBody3D, IEnemy, IProvide +public partial class Enemy : CharacterBody3D, IEnemy, IProvide { #region Registration public override void _Notification(int what) => this.Notify(what); @@ -25,7 +25,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide [Dependency] IGameEventDepot GameEventDepot => this.DependOn(); - [Dependency] protected IPlayer Player => this.DependOn(() => GetParent().GetChildren().OfType().Single()); + [Dependency] protected IPlayer Player => this.DependOn(() => GetParent().GetChildren().OfType().Single()); #endregion #region Exports @@ -67,12 +67,14 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide _enemyLogic.Set(this as IEnemy); _enemyLogic.Set(Player); + _currentTarget = GlobalPosition; + NavAgent.VelocityComputed += NavAgent_VelocityComputed; NavAgent.TargetReached += NavAgent_TargetReached; _thinkTimer = new Timer { - WaitTime = 1f + WaitTime = 0.4f }; AddChild(_thinkTimer); _thinkTimer.Timeout += NavAgent_TargetReached; @@ -89,13 +91,9 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide if (CurrentHP <= 0) return; - var lookDir = GlobalPosition - safeVelocity; - var leveledLookDir = new Vector3(lookDir.X, Position.Y, lookDir.Z); - if (leveledLookDir.DistanceTo(GlobalPosition) > 0.2f) - LookAt(new Vector3(lookDir.X, Position.Y, lookDir.Z), Vector3.Up); - _knockbackStrength = _knockbackStrength * 0.9f; - MoveAndCollide(safeVelocity + (_knockbackDirection * _knockbackStrength)); + Velocity = safeVelocity + (_knockbackDirection * _knockbackStrength); + MoveAndSlide(); } public void SetTarget(Vector3 target) @@ -122,6 +120,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide EnemyModelView.PlayHitAnimation(); _enemyLogic.Input(new EnemyLogic.Input.Alerted()); + NavAgent_TargetReached(); if (Player.EquippedWeapon.Value.WeaponTags.Contains(WeaponTag.SelfDamage)) Player.Stats.SetCurrentHP(Player.Stats.CurrentHP.Value - 5); @@ -133,16 +132,21 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide if (CurrentHP <= 0) return; + if (_enemyLogic.Value is EnemyLogic.State.Attacking) + SetTarget(GlobalPosition); + var nextPathPosition = NavAgent.GetNextPathPosition(); - var movementDelta = 2f * (float)delta; - - var newVelocity = GlobalPosition.DirectionTo(nextPathPosition) * movementDelta; + var newVelocity = GlobalPosition.DirectionTo(nextPathPosition) * 2f; if (NavAgent.AvoidanceEnabled) NavAgent.Velocity = newVelocity; else NavAgent_VelocityComputed(newVelocity); + var lookDir = GlobalPosition + Velocity; + if (_enemyLogic.Value is not EnemyLogic.State.Attacking && (!lookDir.IsEqualApprox(GlobalPosition) || !Velocity.IsZeroApprox())) + LookAt(lookDir, Vector3.Up, true); + var isWalking = _enemyLogic.Value is EnemyLogic.State.Patrolling or EnemyLogic.State.FollowPlayer; EnemyModelView.RotateModel(GlobalTransform.Basis, -Player.CurrentBasis.Z, isWalking); } @@ -200,7 +204,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide { var rng = new RandomNumberGenerator(); rng.Randomize(); - var randomizedSpot = new Vector3(rng.RandfRange(-7.0f, 7.0f), 0, rng.RandfRange(-7.0f, 7.0f)); + var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f)); _enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot)); _enemyLogic.Input(new EnemyLogic.Input.StartPatrol()); PatrolTimer.WaitTime = rng.RandfRange(5.0f, 10.0f); diff --git a/src/enemy/EnemyModelView.cs b/src/enemy/EnemyModelView.cs index ea06b231..9d91c678 100644 --- a/src/enemy/EnemyModelView.cs +++ b/src/enemy/EnemyModelView.cs @@ -84,7 +84,7 @@ public partial class EnemyModelView : Node3D, IEnemyModelView tweener.TweenCallback(Callable.From(QueueFree)); } - public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, bool isWalking) => RotateModel(enemyBasis, cameraDirection, 0.85f, 0.3f, isWalking); + public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, bool isWalking) => RotateModel(enemyBasis, cameraDirection, 0.55f, 0.45f, isWalking); public void RotateModel( Basis enemyBasis, diff --git a/src/enemy/enemy_types/1. sproingy/Sproingy.cs b/src/enemy/enemy_types/1. sproingy/Sproingy.cs index 3981f6bc..1ddd4c16 100644 --- a/src/enemy/enemy_types/1. sproingy/Sproingy.cs +++ b/src/enemy/enemy_types/1. sproingy/Sproingy.cs @@ -24,11 +24,11 @@ public partial class Sproingy : Enemy, IHasPrimaryAttack { _enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta)); - if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) < 3f) + if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) < 3.5f) _enemyLogic.Input(new EnemyLogic.Input.StartAttacking()); - if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) > 45f) + if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) > 30f) _enemyLogic.Input(new EnemyLogic.Input.LostPlayer()); - if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(Player.CurrentPosition) > 3f) + if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(Player.CurrentPosition) > 5f) _enemyLogic.Input(new EnemyLogic.Input.Alerted()); } diff --git a/src/enemy/enemy_types/1. sproingy/Sproingy.tscn b/src/enemy/enemy_types/1. sproingy/Sproingy.tscn index 0b0a0ae9..5641a8df 100644 --- a/src/enemy/enemy_types/1. sproingy/Sproingy.tscn +++ b/src/enemy/enemy_types/1. sproingy/Sproingy.tscn @@ -23,8 +23,6 @@ DropsSoulGemChance = 0.75 metadata/_custom_type_script = ExtResource("2_oln85") [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] -radius = 0.3 -height = 2.02807 [sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"] height = 5.0 @@ -33,16 +31,13 @@ radius = 1.0 [sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"] radius = 1.20703 -[node name="Sproingy" type="RigidBody3D"] +[node name="Sproingy" type="CharacterBody3D"] process_mode = 1 -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) collision_layer = 10 -collision_mask = 11 +collision_mask = 3 axis_lock_linear_y = true axis_lock_angular_x = true axis_lock_angular_z = true -contact_monitor = true -max_contacts_reported = 1 script = ExtResource("1_xsluo") _enemyStatResource = SubResource("Resource_oln85") @@ -53,9 +48,10 @@ shape = SubResource("CapsuleShape3D_cwfph") [node name="NavAgent" type="NavigationAgent3D" parent="."] unique_name_in_owner = true +path_desired_distance = 2.0 +target_desired_distance = 2.5 avoidance_enabled = true radius = 1.5 -neighbor_distance = 5.0 time_horizon_obstacles = 1.0 debug_enabled = true debug_use_custom = true diff --git a/src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn b/src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn index f40a304e..137bcb71 100644 --- a/src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn +++ b/src/enemy/enemy_types/1. sproingy/SproingyModelView.tscn @@ -577,10 +577,8 @@ switch_mode = 2 switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] -switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] -switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qq0ru"] advance_mode = 2 @@ -664,6 +662,7 @@ switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_irq32"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2khaq"] +switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k7x0x"] @@ -678,7 +677,7 @@ states/idle_back/position = Vector2(180.116, -34) states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") states/idle_back_walk/position = Vector2(1024, 12.9474) states/idle_front/node = SubResource("AnimationNodeAnimation_d5bmw") -states/idle_front/position = Vector2(676, 119) +states/idle_front/position = Vector2(644, 532) states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") states/idle_front_walk/position = Vector2(644, -100) states/idle_left/node = SubResource("AnimationNodeAnimation_fpvxl") @@ -686,9 +685,9 @@ states/idle_left/position = Vector2(466.116, 119) states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") states/idle_left_walk/position = Vector2(438, 242.947) states/primary_attack/node = SubResource("AnimationNodeAnimation_erbrx") -states/primary_attack/position = Vector2(1521, 176.947) +states/primary_attack/position = Vector2(1760, 309) transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "primary_attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "primary_attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "primary_attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_mxl7w"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk"), "idle_back", "primary_attack", SubResource("AnimationNodeStateMachineTransition_al2xs"), "primary_attack", "idle_back", SubResource("AnimationNodeStateMachineTransition_afa0q"), "idle_front", "primary_attack", SubResource("AnimationNodeStateMachineTransition_irq32"), "primary_attack", "idle_front", SubResource("AnimationNodeStateMachineTransition_2khaq"), "idle_left", "primary_attack", SubResource("AnimationNodeStateMachineTransition_k7x0x"), "primary_attack", "idle_left", SubResource("AnimationNodeStateMachineTransition_noc6c")] -graph_offset = Vector2(-124.884, 28.2972) +graph_offset = Vector2(495.706, -34.8579) [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_0vbio") diff --git a/src/enemy/enemy_types/2. michael/Michael.tscn b/src/enemy/enemy_types/2. michael/Michael.tscn index 4db0e1ee..fd367197 100644 --- a/src/enemy/enemy_types/2. michael/Michael.tscn +++ b/src/enemy/enemy_types/2. michael/Michael.tscn @@ -27,18 +27,19 @@ height = 5.0 radius = 1.0 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0h5s2"] -radius = 0.3 +height = 2.66932 [sub_resource type="SphereShape3D" id="SphereShape3D_wrps7"] radius = 1.0 -[node name="Michael" type="RigidBody3D"] +[node name="Michael" type="CharacterBody3D"] process_mode = 1 -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) collision_layer = 10 collision_mask = 11 axis_lock_linear_y = true axis_lock_angular_x = true +axis_lock_angular_z = true +motion_mode = 1 script = ExtResource("1_wfjxm") _enemyStatResource = SubResource("Resource_xhsah") @@ -76,6 +77,8 @@ shape = SubResource("CapsuleShape3D_0h5s2") [node name="NavAgent" type="NavigationAgent3D" parent="."] unique_name_in_owner = true path_postprocessing = 2 +simplify_path = true +simplify_epsilon = 1.0 avoidance_enabled = true radius = 5.0 debug_enabled = true diff --git a/src/map/dungeon/floors/Floor01.tscn b/src/map/dungeon/floors/Floor01.tscn index 7346bc45..9485f723 100644 --- a/src/map/dungeon/floors/Floor01.tscn +++ b/src/map/dungeon/floors/Floor01.tscn @@ -13,12 +13,13 @@ [ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/2. michael/Michael.tscn" id="14_gkkr3"] [sub_resource type="NavigationMesh" id="NavigationMesh_4d8mx"] -vertices = PackedVector3Array(9.5, -0.58859, -3.5, 8.75, -0.58859, -3.25, 8.5, -0.58859, -2.5, 12.5, -0.58859, -2, 11.25, -0.58859, -3, 10.5, -0.58859, -3.5, 5.5, -0.58859, 0.5, 4.75, -0.58859, 0.75, 4.5, -0.58859, 1.5, 6.5, -0.58859, 2, 1.5, -0.58859, 4.5, 0.75, -0.58859, 4.75, 0.5, -0.58859, 5.5, 2.5, -0.58859, 6, -2.5, -0.58859, 36.5, -3.25, -0.58859, 36.75, -3.5, -0.58859, 37.5, -1.5, -0.58859, 38, 14.25, -0.58859, 6.5, 13, -0.58859, 6.75, 13, -0.58859, 7.25, 27.25, -0.58859, 7.25, 27.25, -0.58859, 6.75, 25.75, -0.58859, 6.5, 3.5, -0.58859, -5.5, 6.75, -0.58859, -5.5, 6.75, -0.58859, -19.5, 25.75, -0.58859, -10.25, 27.25, -0.58859, -10.5, 27.25, -0.58859, -11, 13.5, -0.58859, -11, 14.25, -0.58859, -10.5, 13.75, -0.58859, 1.75, 13, -0.58859, 2, 13, -0.58859, 3.75, 14.25, -0.58859, 4, -9, -0.58859, -33.25, -8.75, -0.58859, -34.75, -8.75, -0.58859, -39.5, -4, -0.58859, -35.75, -6.25, -0.58859, -35.75, -6.5, -0.58859, -34.75, -12.5, -0.58859, 37.5, -12.75, -0.58859, 34.75, -14.5, -0.58859, 35.25, -14.5, -0.58859, 38, -1.5, -0.58859, 7.25, -2.5, -0.58859, 5.5, 4, -0.58859, -24.25, 6.75, -0.58859, -24.25, 7, -0.58859, -25, -17, -0.58859, 35, -5.25, -0.58859, 3.25, 14.25, -0.58859, -7.75, 13.5, -0.58859, -7.5, 13.75, -0.58859, -3.25, 18.5, -0.58859, -3.25, -4.5, -0.58859, 2.5, -1.25, -0.58859, 2.5, -1.25, -0.58859, -0.75, -8.75, -0.58859, -19.75, -0.5, -0.58859, -1.5, 2.75, -0.58859, -1.5, 2.75, -0.58859, -4.75, -8.25, -0.58859, -19.25, 13.75, -0.58859, -1.25, 18.75, -0.58859, -0.5, -6.25, -0.58859, -30.25, -7.25, -0.58859, -30, -7.25, -0.58859, -24.25, -4, -0.58859, -24.25, -39.5, -0.58859, 39.5, -17.25, -0.58859, 39.5, -0.75, -0.58859, 6, 3.75, -0.58859, -36, 3.75, -0.58859, -39, -3.75, -0.58859, -39, 1.5, -0.58859, 1.5, 3.25, -0.58859, 2, 21.25, -0.58859, -3.5, 25.75, -0.58859, -7.75, -3.75, -0.58859, -20.75, 3.75, -0.58859, -20.75, -6.25, -0.58859, -33, 7.25, -0.58859, -26.75, 7, -0.58859, -35.75, 2.5, -0.58859, 3.25, 6.5, -0.58859, -0.75, 7.25, -0.58859, -2, 5.5, -0.58859, -2.5, -8.5, -0.58859, -30, -9.25, -0.58859, -30.25, -39.5, -0.58859, -39.5, 9.5, -0.58859, -24.75, 10.5, -0.58859, -26.5, 21.5, -0.58859, -0.75, 25.75, -0.58859, 4, 27.25, -0.58859, 3.75, 27.25, -0.58859, -7.5, -5.25, -0.58859, 34.5, 4.75, 6.66141, -39.5, 4.75, 6.66141, -36.75, 7.25, 6.66141, -36.75, 7.25, 6.66141, -39.5, 10.75, -0.58859, 1.75, 10.75, -0.58859, 0.75, 9.5, -0.58859, 0.75, 9.5, -0.58859, 4.5, 39.5, -0.58859, -39.5, 28.75, -0.58859, -12.25, 28.75, -0.58859, 8.5, 39.5, -0.58859, 39.5, 11.5, -0.58859, 2, 11.25, -0.58859, 6.5, 5.25, -0.58859, 8.75, 1.5, -0.58859, 8.75, 1.5, -0.58859, 39.5, 11.75, -0.58859, 8.75, 5.5, -0.58859, 4.75, 8.25, -0.58859, -39.25, 8.25, -0.58859, -29.5, 12.5, -0.58859, -29.5, 13.5, -0.58859, -28.75, 13.5, -0.58859, -12.5, -7.25, 6.66141, -39.25, -7.25, 6.66141, -36.75, -4.75, 6.66141, -36.75, -4.75, 6.66141, -39.25, -7, -0.58859, -39, -7, -0.58859, -38.25, -6.25, -0.58859, -38, -5, -0.58859, -39, -6.25, -0.58859, -37, -5, -0.58859, -37, 5, -0.58859, -39, 5, -0.58859, -37, 7, -0.58859, -37, 7, -0.58859, -39, -8, -0.58859, -32, -8, -0.58859, -31.5, -7.5, -0.58859, -31.5, -7.5, -0.58859, -32, 11.75, 2.41141, -28.5, 8.5, 2.16141, -28.5, 8.5, 2.16141, -27.5, 11.5, 2.41141, -27.25, 12.5, 2.41141, -28, 11.5, 2.41141, -12.25, 12.5, 2.41141, -12.5, 8.5, -0.58859, -28.25, 8.5, -0.58859, -27.75, 10.5, -0.58859, -27.75, 10.5, -0.58859, -28.25, 11.75, -0.58859, -26.5, 11.75, -0.58859, -25, 12.25, -0.58859, -25, 12.25, -0.58859, -26.5, -7.25, 6.66141, -23.25, -7.25, 6.66141, -20.75, -4.75, 6.66141, -20.75, -4.75, 6.66141, -23.25, 4.75, 6.66141, -23.25, 4.75, 6.66141, -20.75, 7.25, 6.66141, -20.75, 7.25, 6.66141, -23.25, 11.75, -0.58859, -23.25, 11.75, -0.58859, -21, 12.25, -0.58859, -21, 12.25, -0.58859, -23.25, -7, -0.58859, -23, -7, -0.58859, -21, -5, -0.58859, -21, -5, -0.58859, -23, 5, -0.58859, -23, 5, -0.58859, -21, 6.75, -0.58859, -21, 6.75, -0.58859, -23, -3.5, 2.16141, 4.75, -0.25, 2.16141, 4.5, -0.25, 2.16141, 4, -0.5, 2.16141, 3.5, -3.75, 2.16141, 3.5, -4.25, 2.16141, 4, 0.5, 2.16141, 3.75, 0.5, 2.16141, 0.75, -0.25, 2.16141, 0, 3.75, 2.16141, 0.5, 3.75, 2.16141, 0, 3.5, 2.16141, -0.5, 0.25, 2.16141, -0.5, 4.5, 2.16141, -0.25, 4.5, 2.16141, -3.25, 3.75, 2.16141, -4, 7.75, 2.16141, -3.5, 7.75, 2.16141, -4, 8.25, 2.16141, -19.5, 7.75, 2.16141, -19.25, 7.75, 2.16141, -4.75, 8.5, 2.16141, -4.25, -4.25, 2.16141, 35.25, -3.5, 2.16141, 35.75, 4.25, 2.16141, -4.5, -11.75, 2.16141, 35.5, -4.25, 2.16141, 36, -11.75, 2.16141, 36.5, -4.25, 2.16141, 36.5, 11.75, -0.58859, -19.25, 11.75, -0.58859, -17, 12.25, -0.58859, -17, 12.25, -0.58859, -19.25, 11.75, -0.58859, -15.25, 11.75, -0.58859, -13, 12.25, -0.58859, -13, 12.25, -0.58859, -15.25, 12.25, 6.41141, -9.75, 12.25, 6.41141, -8.5, 13.25, 6.41141, -8.5, 13.25, 6.41141, -9.75, 26.75, 6.41141, -9.5, 26.75, 6.41141, -8.5, 27.75, 6.41141, -8.5, 27.75, 6.41141, -9.5, 5.5, -0.58859, -4.25, 5.5, -0.58859, -3.75, 6.75, -0.58859, -3.75, 6.75, -0.58859, -4.25, 19.5, 6.41141, -2.5, 19.5, 6.41141, -1.5, 20.5, 6.41141, -1.5, 20.5, 6.41141, -2.5, 19.75, -0.58859, -2.25, 19.75, -0.58859, -1.75, 20.25, -0.58859, -1.75, 20.25, -0.58859, -2.25, 8.5, 2.41141, 0, 10.75, 2.16141, -0.25, 10.75, 2.16141, -1, 8, 2.16141, -1, 8, 2.41141, -0.25, 0.5, 2.41141, 8, 4.5, 2.41141, 7.75, 3.5, 2.41141, 6.75, 0, 2.16141, 7, 0, 2.41141, 7.75, 4, 2.16141, 3, 4, 2.41141, 3.75, 4.5, 2.41141, 4, 8.5, 2.41141, 3.75, 7.5, 2.41141, 2.75, 7.5, 2.41141, 0, -0.5, 2.41141, 8, -0.5, 2.41141, 38.75, 0.5, 2.41141, 39.75, -15.25, 2.16141, 39, -16.25, 2.16141, 39.75, 3.5, 2.41141, 4, -15.5, 2.16141, 36, -16.25, 2.16141, 36, 1.5, -0.58859, -0.25, 1.5, -0.58859, 0.25, 2.75, -0.58859, 0.25, 2.75, -0.58859, -0.25, 7.75, -0.58859, 0.75, 7.75, -0.58859, 2, 8.25, -0.58859, 2, 8.25, -0.58859, 0.75, -2.5, -0.58859, 3.75, -2.5, -0.58859, 4.25, -1.25, -0.58859, 4.25, -1.25, -0.58859, 3.75, 3.75, -0.58859, 4.75, 3.75, -0.58859, 6, 4.25, -0.58859, 6, 4.25, -0.58859, 4.75, 12.25, 6.41141, 4.75, 12.25, 6.41141, 5.75, 13.25, 6.41141, 5.75, 13.25, 6.41141, 4.75, 26.75, 6.41141, 4.75, 26.75, 6.41141, 5.75, 27.75, 6.41141, 5.75, 27.75, 6.41141, 4.75, -0.25, -0.58859, 8.75, -0.25, -0.58859, 11, 0.25, -0.58859, 11, 0.25, -0.58859, 8.75, -0.25, -0.58859, 12.75, -0.25, -0.58859, 15, 0.25, -0.58859, 15, 0.25, -0.58859, 12.75, -0.25, -0.58859, 16.75, -0.25, -0.58859, 19, 0.25, -0.58859, 19, 0.25, -0.58859, 16.75, -0.25, -0.58859, 20.75, -0.25, -0.58859, 23, 0.25, -0.58859, 23, 0.25, -0.58859, 20.75, -0.25, -0.58859, 24.75, -0.25, -0.58859, 27, 0.25, -0.58859, 27, 0.25, -0.58859, 24.75, -0.25, -0.58859, 28.75, -0.25, -0.58859, 31, 0.25, -0.58859, 31, 0.25, -0.58859, 28.75, -0.25, -0.58859, 32.75, -0.25, -0.58859, 35, 0.25, -0.58859, 35, 0.25, -0.58859, 32.75, -11.5, -0.58859, 35.75, -11.5, -0.58859, 36.25, -8.75, -0.58859, 36.25, -8.75, -0.58859, 35.75, -7.25, -0.58859, 35.75, -7.25, -0.58859, 36.25, -5.25, -0.58859, 36.25, -5.25, -0.58859, 35.75, -0.25, -0.58859, 36.75, -0.25, -0.58859, 38, 0.25, -0.58859, 38, 0.25, -0.58859, 36.75) -polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 5), PackedInt32Array(2, 5, 4), PackedInt32Array(2, 4, 3), PackedInt32Array(7, 6, 8), PackedInt32Array(8, 6, 9), PackedInt32Array(11, 10, 12), PackedInt32Array(12, 10, 13), PackedInt32Array(15, 14, 16), PackedInt32Array(16, 14, 17), PackedInt32Array(19, 18, 20), PackedInt32Array(20, 18, 23), PackedInt32Array(20, 23, 22), PackedInt32Array(20, 22, 21), PackedInt32Array(26, 25, 24), PackedInt32Array(28, 27, 29), PackedInt32Array(29, 27, 31), PackedInt32Array(29, 31, 30), PackedInt32Array(33, 32, 34), PackedInt32Array(34, 32, 35), PackedInt32Array(38, 37, 36), PackedInt32Array(41, 40, 39), PackedInt32Array(43, 42, 44), PackedInt32Array(44, 42, 45), PackedInt32Array(17, 14, 46), PackedInt32Array(46, 14, 47), PackedInt32Array(48, 50, 49), PackedInt32Array(44, 51, 43), PackedInt32Array(43, 51, 52), PackedInt32Array(54, 53, 55), PackedInt32Array(55, 53, 56), PackedInt32Array(58, 57, 59), PackedInt32Array(59, 57, 60), PackedInt32Array(62, 61, 63), PackedInt32Array(63, 61, 64), PackedInt32Array(64, 61, 60), PackedInt32Array(32, 65, 35), PackedInt32Array(35, 65, 66), PackedInt32Array(4, 55, 3), PackedInt32Array(3, 55, 65), PackedInt32Array(65, 55, 56), PackedInt32Array(65, 56, 66), PackedInt32Array(68, 67, 69), PackedInt32Array(69, 67, 70), PackedInt32Array(51, 72, 71), PackedInt32Array(47, 12, 73), PackedInt32Array(73, 12, 13), PackedInt32Array(73, 46, 47), PackedInt32Array(75, 74, 76), PackedInt32Array(76, 74, 39), PackedInt32Array(77, 8, 78), PackedInt32Array(78, 8, 9), PackedInt32Array(80, 79, 27), PackedInt32Array(27, 79, 56), PackedInt32Array(27, 56, 53), PackedInt32Array(27, 53, 31), PackedInt32Array(81, 70, 82), PackedInt32Array(82, 70, 48), PackedInt32Array(60, 61, 59), PackedInt32Array(67, 83, 70), PackedInt32Array(70, 83, 48), PackedInt32Array(48, 83, 50), PackedInt32Array(39, 74, 41), PackedInt32Array(41, 74, 85), PackedInt32Array(41, 85, 84), PackedInt32Array(78, 86, 77), PackedInt32Array(77, 86, 10), PackedInt32Array(88, 87, 89), PackedInt32Array(89, 87, 6), PackedInt32Array(90, 60, 91), PackedInt32Array(91, 60, 92), PackedInt32Array(16, 17, 42), PackedInt32Array(42, 17, 45), PackedInt32Array(0, 93, 5), PackedInt32Array(5, 93, 94), PackedInt32Array(51, 71, 52), PackedInt32Array(52, 71, 60), PackedInt32Array(60, 71, 92), PackedInt32Array(9, 6, 87), PackedInt32Array(80, 98, 79), PackedInt32Array(79, 98, 95), PackedInt32Array(95, 98, 96), PackedInt32Array(96, 98, 97), PackedInt32Array(84, 94, 93), PackedInt32Array(24, 63, 26), PackedInt32Array(26, 63, 64), PackedInt32Array(52, 99, 43), PackedInt32Array(89, 2, 88), PackedInt32Array(88, 2, 3), PackedInt32Array(13, 10, 86), PackedInt32Array(37, 41, 83), PackedInt32Array(83, 41, 84), PackedInt32Array(83, 84, 50), PackedInt32Array(50, 84, 93), PackedInt32Array(36, 91, 38), PackedInt32Array(38, 91, 92), PackedInt32Array(35, 66, 18), PackedInt32Array(18, 66, 95), PackedInt32Array(18, 95, 96), PackedInt32Array(18, 96, 23), PackedInt32Array(37, 83, 36), PackedInt32Array(52, 60, 57), PackedInt32Array(103, 102, 100), PackedInt32Array(100, 102, 101), PackedInt32Array(105, 104, 106), PackedInt32Array(106, 104, 107), PackedInt32Array(109, 108, 110), PackedInt32Array(110, 108, 111), PackedInt32Array(104, 112, 107), PackedInt32Array(107, 112, 113), PackedInt32Array(116, 115, 114), PackedInt32Array(113, 117, 107), PackedInt32Array(107, 117, 114), PackedInt32Array(114, 117, 116), PackedInt32Array(114, 118, 107), PackedInt32Array(117, 110, 116), PackedInt32Array(116, 110, 111), PackedInt32Array(121, 120, 119), PackedInt32Array(122, 121, 119), PackedInt32Array(109, 123, 122), PackedInt32Array(122, 119, 109), PackedInt32Array(109, 119, 108), PackedInt32Array(127, 126, 124), PackedInt32Array(124, 126, 125), PackedInt32Array(129, 128, 130), PackedInt32Array(130, 128, 131), PackedInt32Array(132, 130, 133), PackedInt32Array(133, 130, 131), PackedInt32Array(137, 136, 134), PackedInt32Array(134, 136, 135), PackedInt32Array(141, 140, 138), PackedInt32Array(138, 140, 139), PackedInt32Array(146, 145, 142), PackedInt32Array(142, 145, 144), PackedInt32Array(142, 144, 143), PackedInt32Array(147, 145, 148), PackedInt32Array(148, 145, 146), PackedInt32Array(152, 151, 149), PackedInt32Array(149, 151, 150), PackedInt32Array(156, 155, 153), PackedInt32Array(153, 155, 154), PackedInt32Array(160, 159, 157), PackedInt32Array(157, 159, 158), PackedInt32Array(164, 163, 161), PackedInt32Array(161, 163, 162), PackedInt32Array(168, 167, 165), PackedInt32Array(165, 167, 166), PackedInt32Array(172, 171, 169), PackedInt32Array(169, 171, 170), PackedInt32Array(176, 175, 173), PackedInt32Array(173, 175, 174), PackedInt32Array(179, 178, 180), PackedInt32Array(180, 178, 177), PackedInt32Array(180, 177, 181), PackedInt32Array(181, 177, 182), PackedInt32Array(179, 180, 183), PackedInt32Array(183, 180, 184), PackedInt32Array(184, 180, 185), PackedInt32Array(187, 186, 188), PackedInt32Array(188, 186, 184), PackedInt32Array(188, 184, 189), PackedInt32Array(189, 184, 185), PackedInt32Array(187, 188, 190), PackedInt32Array(190, 188, 191), PackedInt32Array(191, 188, 192), PackedInt32Array(194, 193, 191), PackedInt32Array(196, 195, 197), PackedInt32Array(197, 195, 198), PackedInt32Array(200, 199, 177), PackedInt32Array(177, 199, 182), PackedInt32Array(198, 194, 197), PackedInt32Array(197, 194, 191), PackedInt32Array(197, 191, 201), PackedInt32Array(201, 191, 192), PackedInt32Array(200, 203, 199), PackedInt32Array(199, 203, 202), PackedInt32Array(205, 204, 203), PackedInt32Array(203, 204, 202), PackedInt32Array(209, 208, 206), PackedInt32Array(206, 208, 207), PackedInt32Array(213, 212, 210), PackedInt32Array(210, 212, 211), PackedInt32Array(217, 216, 214), PackedInt32Array(214, 216, 215), PackedInt32Array(221, 220, 218), PackedInt32Array(218, 220, 219), PackedInt32Array(225, 224, 222), PackedInt32Array(222, 224, 223), PackedInt32Array(229, 228, 226), PackedInt32Array(226, 228, 227), PackedInt32Array(233, 232, 230), PackedInt32Array(230, 232, 231), PackedInt32Array(238, 237, 234), PackedInt32Array(234, 237, 235), PackedInt32Array(235, 237, 236), PackedInt32Array(243, 242, 239), PackedInt32Array(239, 242, 241), PackedInt32Array(239, 241, 240), PackedInt32Array(245, 244, 246), PackedInt32Array(246, 244, 248), PackedInt32Array(246, 248, 247), PackedInt32Array(238, 234, 249), PackedInt32Array(249, 234, 248), PackedInt32Array(248, 234, 247), PackedInt32Array(243, 239, 250), PackedInt32Array(250, 239, 251), PackedInt32Array(251, 239, 252), PackedInt32Array(253, 251, 254), PackedInt32Array(254, 251, 252), PackedInt32Array(245, 246, 255), PackedInt32Array(255, 246, 241), PackedInt32Array(241, 246, 240), PackedInt32Array(256, 253, 257), PackedInt32Array(257, 253, 254), PackedInt32Array(261, 260, 258), PackedInt32Array(258, 260, 259), PackedInt32Array(265, 264, 262), PackedInt32Array(262, 264, 263), PackedInt32Array(269, 268, 266), PackedInt32Array(266, 268, 267), PackedInt32Array(273, 272, 270), PackedInt32Array(270, 272, 271), PackedInt32Array(277, 276, 274), PackedInt32Array(274, 276, 275), PackedInt32Array(281, 280, 278), PackedInt32Array(278, 280, 279), PackedInt32Array(285, 284, 282), PackedInt32Array(282, 284, 283), PackedInt32Array(289, 288, 286), PackedInt32Array(286, 288, 287), PackedInt32Array(293, 292, 290), PackedInt32Array(290, 292, 291), PackedInt32Array(297, 296, 294), PackedInt32Array(294, 296, 295), PackedInt32Array(301, 300, 298), PackedInt32Array(298, 300, 299), PackedInt32Array(305, 304, 302), PackedInt32Array(302, 304, 303), PackedInt32Array(309, 308, 306), PackedInt32Array(306, 308, 307), PackedInt32Array(313, 312, 310), PackedInt32Array(310, 312, 311), PackedInt32Array(317, 316, 314), PackedInt32Array(314, 316, 315), PackedInt32Array(321, 320, 318), PackedInt32Array(318, 320, 319)] +vertices = PackedVector3Array(18.4194, -0.588592, -8.75, 19.1694, -0.588592, -9, 19.1694, -0.588592, -9.75, 16.4194, -0.588592, -10, 16.6694, -0.588592, -9, 17.6694, -0.588592, -8.75, -18.5806, -0.588592, 0.75, -19.3306, -0.588592, 0.75, -19.5806, -0.588592, 1.5, -17.5806, -0.588592, 2, -1.58061, -0.588592, 3.25, -0.830608, -0.588592, 3, -0.580608, -0.588592, 2, -2.33061, -0.588592, 1.5, -6.33061, -0.588592, -7.5, -7.33061, -0.588592, -7.25, -7.58061, -0.588592, -6.5, -5.58061, -0.588592, -6, -10.3306, -0.588592, -3.5, -11.3306, -0.588592, -3.25, -11.5806, -0.588592, -2.5, -9.58061, -0.588592, -2, -21.5806, -0.588592, 3.25, -20.8306, -0.588592, 3, -20.5806, -0.588592, 2, -22.3306, -0.588592, 1.5, -17.5806, -0.588592, -0.75, -16.8306, -0.588592, -1, -16.5806, -0.588592, -2, -18.3306, -0.588592, -2.5, -9.58061, -0.588592, -4.75, -8.83061, -0.588592, -5, -8.58061, -0.588592, -6, -10.3306, -0.588592, -6.5, -5.58061, -0.588592, -8.75, -4.83061, -0.588592, -9, -4.58061, -0.588592, -10, -6.33061, -0.588592, -10.5, 17.6694, -0.588592, 0.5, 16.6694, -0.588592, 0.75, 16.4194, -0.588592, 1.5, 18.4194, -0.588592, 2, 13.6694, -0.588592, 22.5, 2.41939, -0.588592, 22.5, 0.919392, -0.588592, 22.75, 0.919392, -0.588592, 23.25, 15.1694, -0.588592, 23.25, 15.1694, -0.588592, 22.75, 32.4194, -0.588592, -13.5, 33.4194, -0.588592, -12.75, 39.4194, -0.588592, -39.5, 13.6694, -0.588592, 5.75, 15.1694, -0.588592, 5.5, 15.1694, -0.588592, 5, 1.41939, -0.588592, 5, 2.41939, -0.588592, 5.5, -5.33061, -0.588592, 16.5, -5.33061, -0.588592, -0.75, -6.83061, -0.588592, 0.75, -22.5806, -0.588592, 38, -23.5806, -0.588592, 38, -23.5806, -0.588592, 39.5, -38.3306, -0.588592, 25.25, -39.5806, -0.588592, 25.25, -39.5806, -0.588592, 26.75, -38.3306, -0.588592, 27, -4.58061, -0.588592, -1.5, -3.58061, -0.588592, -3, 1.66939, -0.588592, 17.75, 0.919392, -0.588592, 18, 0.919392, -0.588592, 19.75, 2.41939, -0.588592, 20, -27.8306, -0.588592, 35.75, -25.3306, -0.588592, 35.75, -25.3306, -0.588592, 34.75, -38.0806, -0.588592, 24.25, -19.5806, -0.588592, 37, -22.3306, -0.588592, 37, -1.33061, -0.588592, 17.75, -1.33061, -0.588592, 17, -4.58061, -0.588592, 17, -25.3306, -0.588592, 32.5, -35.8306, -0.588592, 36, -24.5806, -0.588592, 34, -24.8306, -0.588592, 33, -35.8306, -0.588592, 24, -38.3306, -0.588592, 29.75, -0.580608, -0.588592, 18, -0.330608, -0.588592, 24.75, 2.41939, -0.588592, 8.25, 1.41939, -0.588592, 8.5, 1.66939, -0.588592, 12.75, 6.41939, -0.588592, 12.75, -24.5806, -0.588592, -1.5, -21.3306, -0.588592, -1.5, -21.3306, -0.588592, -4.75, -39.5806, -0.588592, -39.5, -12.5806, -0.588592, -9.5, -9.33061, -0.588592, -9.5, -9.33061, -0.588592, -12.75, -6.58061, -0.588592, -3, 1.66939, -0.588592, 14.75, 6.66939, -0.588592, 15.5, -0.830608, -0.588592, 13, 0.419392, -0.588592, 14, -18.5806, -0.588592, 36.5, 39.4194, -0.588592, 39.5, 16.4194, -0.588592, 24.75, -39.3306, -0.588592, 19.75, -25.3306, -0.588592, 19.75, -25.3306, -0.588592, -0.75, -39.0806, -0.588592, 30, -39.0806, -0.588592, 35.75, -20.5806, -0.588592, -5.5, -13.3306, -0.588592, -5.5, -13.3306, -0.588592, -8.75, 9.16939, -0.588592, 12.5, 13.6694, -0.588592, 8.25, -28.0806, -0.588592, 24, -28.0806, -0.588592, 21, -35.8306, -0.588592, 21, -35.8306, -0.588592, 39.25, -28.0806, -0.588592, 39.25, -8.58061, -0.588592, -13.5, -25.3306, -0.588592, 24.25, -14.5806, -0.588592, 1, -14.8306, -0.588592, 4.75, 21.4194, -0.588592, 4.5, 20.4194, -0.588592, 5, 9.41939, -0.588592, 15.25, 13.6694, -0.588592, 20, 15.1694, -0.588592, 19.75, 15.1694, -0.588592, 8.5, 33.1694, -0.588592, -7.25, 30.4194, -0.588592, -7.5, 28.4194, -0.588592, -7, 16.6694, -0.588592, 5, 14.6694, -0.588592, -7, -2.58061, -0.588592, -7, -2.58061, -0.588592, -3.5, 14.6694, -0.588592, -1.5, -22.3306, -0.588592, 32.75, -21.5806, -0.588592, 34, 30.4194, -0.588592, -10.5, 28.4194, -0.588592, -10, 21.4194, -0.588592, -7, -18.5806, -0.588592, 5, -2.33061, -0.588592, 14, -1.58061, -0.588592, 12.5, -12.0806, 2.16141, -4.25, -11.3306, 2.16141, -4.25, -11.3306, 2.16141, -7.25, -23.3306, 2.16141, 0.75, -20.3306, 2.16141, 0.5, -20.0806, 2.16141, -0.25, -20.5806, 2.16141, -0.5, -23.8306, 2.16141, -0.5, -24.3306, 2.16141, 0, -19.3306, 2.16141, -0.25, -19.0806, 2.16141, -3.5, -19.8306, 2.16141, -4.5, -20.3306, 2.16141, -4, -8.33061, 2.16141, -7.5, -8.08061, 2.16141, -8.25, -8.58061, 2.16141, -8.5, -11.8306, 2.16141, -8.5, -12.3306, 2.16141, -8, -7.33061, 2.16141, -8.25, -7.08061, 2.16141, -11.5, -7.83061, 2.16141, -12.5, -8.33061, 2.16141, -12, 31.1694, 2.41141, -11.5, 31.4194, 2.41141, -8.25, 32.4194, 2.41141, -8.25, 32.4194, 2.41141, -12, 31.6694, 2.41141, -12.5, -12.5806, 2.16141, -4.5, -12.3306, 2.16141, -3.5, -24.3306, 2.16141, 19.5, -23.3306, 2.16141, 19.75, -20.5806, 2.41141, 34.75, -22.3306, 2.16141, 35, -22.3306, 2.16141, 36, -19.5806, 2.41141, 35.75, 15.6694, 2.16141, -7.75, 15.4194, 2.16141, -0.5, 15.9194, 2.16141, -0.25, -1.33061, 2.16141, 16, -1.33061, 2.16141, 15, -3.33061, 2.16141, 14.75, -4.33061, 2.16141, 15.75, -3.33061, 2.41141, -8, 15.6694, 2.16141, -8.25, 15.6694, 2.16141, -9, -3.83061, 2.16141, -9, -3.83061, 2.41141, -8.25, -4.58061, 2.41141, -8, -4.58061, 2.41141, -5.25, -3.58061, 2.41141, -4.25, -15.3306, 2.41141, 0, -15.8306, 2.41141, -0.25, -16.5806, 2.41141, 0, -16.5806, 2.41141, 2.75, -15.5806, 2.41141, 3.75, -7.83061, 2.16141, -5, -7.83061, 2.41141, -4.25, -7.58061, 2.41141, -3.75, -8.58061, 2.41141, -4, -8.83061, 2.41141, -1, -7.58061, 2.41141, -0.25, -19.8306, 2.16141, 3, -19.8306, 2.41141, 3.75, -20.5806, 2.41141, 4, -19.5806, 2.41141, 4.25, -15.8306, 2.16141, -1, 16.6694, 2.16141, -0.25, 16.6694, 2.16141, -8, -4.33061, 2.16141, 0, -3.08061, 2.16141, 0.5, -3.83061, 2.16141, -0.5, 15.6694, 2.16141, 0.5, 16.4194, 2.16141, 3.5, 16.6694, 2.16141, 4, 19.9194, 2.41141, 4, 20.4194, 2.41141, 3.75, 19.1694, 2.41141, 3, 19.4194, 2.41141, -8, 20.4194, 2.41141, -7.75, 20.1694, 2.41141, -8.25, 27.6694, 2.16141, -8, 27.6694, 2.16141, -9, 20.1694, 2.16141, -9, 0.169392, 2.16141, 3, 0.169392, 2.41141, 3.5, -27.0806, 6.66141, 20.5, -27.0806, 6.66141, 23.25, -24.5806, 6.66141, 23.25, -24.5806, 6.66141, 20.5, -39.5806, 6.66141, 20.75, -39.5806, 6.66141, 23.25, -36.8306, 6.66141, 23.25, -36.8306, 6.66141, 20.75, -39.3306, 6.66141, 36.75, -39.3306, 6.66141, 39.25, -36.8306, 6.66141, 39.25, -36.8306, 6.66141, 36.75, -27.0806, 6.66141, 36.75, -27.0806, 6.66141, 39.25, -24.5806, 6.66141, 39.25, -24.5806, 6.66141, 36.75, -39.0806, -0.588592, 37, -39.0806, -0.588592, 39, -37.0806, -0.588592, 39, -37.0806, -0.588592, 37) +polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 5), PackedInt32Array(2, 5, 4), PackedInt32Array(2, 4, 3), PackedInt32Array(7, 6, 8), PackedInt32Array(8, 6, 9), PackedInt32Array(11, 10, 12), PackedInt32Array(12, 10, 13), PackedInt32Array(15, 14, 16), PackedInt32Array(16, 14, 17), PackedInt32Array(19, 18, 20), PackedInt32Array(20, 18, 21), PackedInt32Array(23, 22, 24), PackedInt32Array(24, 22, 25), PackedInt32Array(27, 26, 28), PackedInt32Array(28, 26, 29), PackedInt32Array(31, 30, 32), PackedInt32Array(32, 30, 33), PackedInt32Array(35, 34, 36), PackedInt32Array(36, 34, 37), PackedInt32Array(39, 38, 40), PackedInt32Array(40, 38, 41), PackedInt32Array(47, 46, 42), PackedInt32Array(42, 46, 43), PackedInt32Array(43, 46, 44), PackedInt32Array(44, 46, 45), PackedInt32Array(50, 49, 48), PackedInt32Array(52, 51, 53), PackedInt32Array(53, 51, 55), PackedInt32Array(53, 55, 54), PackedInt32Array(56, 58, 57), PackedInt32Array(61, 60, 59), PackedInt32Array(63, 62, 64), PackedInt32Array(64, 62, 65), PackedInt32Array(57, 67, 66), PackedInt32Array(69, 68, 70), PackedInt32Array(70, 68, 71), PackedInt32Array(13, 40, 12), PackedInt32Array(12, 40, 41), PackedInt32Array(74, 73, 72), PackedInt32Array(65, 62, 75), PackedInt32Array(59, 77, 76), PackedInt32Array(80, 79, 78), PackedInt32Array(84, 83, 81), PackedInt32Array(81, 83, 74), PackedInt32Array(81, 74, 72), PackedInt32Array(81, 72, 82), PackedInt32Array(75, 85, 65), PackedInt32Array(65, 85, 86), PackedInt32Array(78, 87, 80), PackedInt32Array(80, 87, 88), PackedInt32Array(90, 89, 91), PackedInt32Array(91, 89, 92), PackedInt32Array(94, 93, 95), PackedInt32Array(95, 93, 96), PackedInt32Array(99, 98, 97), PackedInt32Array(61, 59, 76), PackedInt32Array(67, 57, 100), PackedInt32Array(100, 57, 58), PackedInt32Array(68, 101, 71), PackedInt32Array(71, 101, 102), PackedInt32Array(103, 91, 104), PackedInt32Array(104, 91, 101), PackedInt32Array(101, 91, 92), PackedInt32Array(101, 92, 102), PackedInt32Array(76, 105, 61), PackedInt32Array(61, 105, 107), PackedInt32Array(61, 107, 106), PackedInt32Array(109, 108, 110), PackedInt32Array(110, 108, 96), PackedInt32Array(111, 86, 112), PackedInt32Array(112, 86, 82), PackedInt32Array(96, 113, 95), PackedInt32Array(9, 6, 26), PackedInt32Array(26, 6, 29), PackedInt32Array(105, 88, 107), PackedInt32Array(115, 114, 113), PackedInt32Array(92, 89, 116), PackedInt32Array(116, 89, 55), PackedInt32Array(116, 55, 117), PackedInt32Array(117, 55, 51), PackedInt32Array(85, 120, 118), PackedInt32Array(118, 120, 119), PackedInt32Array(21, 18, 30), PackedInt32Array(30, 18, 33), PackedInt32Array(121, 82, 122), PackedInt32Array(122, 82, 72), PackedInt32Array(33, 16, 32), PackedInt32Array(32, 16, 17), PackedInt32Array(48, 123, 50), PackedInt32Array(50, 123, 96), PackedInt32Array(124, 81, 118), PackedInt32Array(118, 81, 85), PackedInt32Array(85, 81, 86), PackedInt32Array(86, 81, 82), PackedInt32Array(125, 58, 126), PackedInt32Array(126, 58, 56), PackedInt32Array(97, 115, 113), PackedInt32Array(56, 80, 88), PackedInt32Array(29, 20, 28), PackedInt32Array(28, 20, 21), PackedInt32Array(107, 128, 127), PackedInt32Array(117, 132, 116), PackedInt32Array(116, 132, 129), PackedInt32Array(129, 132, 130), PackedInt32Array(130, 132, 131), PackedInt32Array(134, 133, 135), PackedInt32Array(135, 133, 127), PackedInt32Array(127, 133, 107), PackedInt32Array(107, 133, 106), PackedInt32Array(107, 136, 128), PackedInt32Array(138, 137, 139), PackedInt32Array(139, 137, 140), PackedInt32Array(49, 50, 133), PackedInt32Array(133, 50, 106), PackedInt32Array(17, 14, 34), PackedInt32Array(34, 14, 37), PackedInt32Array(25, 8, 24), PackedInt32Array(24, 8, 9), PackedInt32Array(84, 141, 83), PackedInt32Array(83, 141, 142), PackedInt32Array(135, 144, 134), PackedInt32Array(134, 144, 143), PackedInt32Array(71, 102, 43), PackedInt32Array(43, 102, 129), PackedInt32Array(43, 129, 130), PackedInt32Array(43, 130, 42), PackedInt32Array(127, 145, 135), PackedInt32Array(144, 2, 143), PackedInt32Array(143, 2, 3), PackedInt32Array(93, 110, 96), PackedInt32Array(99, 97, 113), PackedInt32Array(142, 141, 22), PackedInt32Array(22, 141, 25), PackedInt32Array(5, 0, 38), PackedInt32Array(38, 0, 41), PackedInt32Array(99, 113, 123), PackedInt32Array(123, 113, 96), PackedInt32Array(126, 56, 146), PackedInt32Array(146, 56, 88), PackedInt32Array(146, 88, 105), PackedInt32Array(148, 103, 147), PackedInt32Array(147, 103, 104), PackedInt32Array(67, 139, 66), PackedInt32Array(66, 139, 140), PackedInt32Array(148, 147, 10), PackedInt32Array(10, 147, 13), PackedInt32Array(36, 37, 3), PackedInt32Array(3, 37, 143), PackedInt32Array(151, 150, 149), PackedInt32Array(154, 153, 155), PackedInt32Array(155, 153, 152), PackedInt32Array(155, 152, 156), PackedInt32Array(156, 152, 157), PackedInt32Array(154, 155, 158), PackedInt32Array(158, 155, 159), PackedInt32Array(159, 155, 161), PackedInt32Array(159, 161, 160), PackedInt32Array(163, 162, 164), PackedInt32Array(164, 162, 151), PackedInt32Array(164, 151, 165), PackedInt32Array(165, 151, 166), PackedInt32Array(163, 164, 167), PackedInt32Array(167, 164, 168), PackedInt32Array(168, 164, 170), PackedInt32Array(168, 170, 169), PackedInt32Array(175, 174, 171), PackedInt32Array(171, 174, 172), PackedInt32Array(172, 174, 173), PackedInt32Array(177, 159, 176), PackedInt32Array(176, 159, 160), PackedInt32Array(171, 168, 175), PackedInt32Array(175, 168, 169), PackedInt32Array(177, 176, 149), PackedInt32Array(149, 176, 151), PackedInt32Array(151, 176, 166), PackedInt32Array(179, 178, 152), PackedInt32Array(152, 178, 157), PackedInt32Array(181, 180, 182), PackedInt32Array(182, 180, 183), PackedInt32Array(186, 185, 184), PackedInt32Array(188, 187, 189), PackedInt32Array(189, 187, 190), PackedInt32Array(195, 194, 191), PackedInt32Array(191, 194, 192), PackedInt32Array(192, 194, 193), PackedInt32Array(195, 191, 196), PackedInt32Array(196, 191, 197), PackedInt32Array(197, 191, 198), PackedInt32Array(200, 199, 201), PackedInt32Array(201, 199, 202), PackedInt32Array(202, 199, 203), PackedInt32Array(205, 204, 206), PackedInt32Array(206, 204, 197), PackedInt32Array(206, 197, 198), PackedInt32Array(205, 206, 207), PackedInt32Array(207, 206, 208), PackedInt32Array(208, 206, 209), PackedInt32Array(211, 210, 202), PackedInt32Array(212, 211, 213), PackedInt32Array(213, 211, 202), PackedInt32Array(213, 202, 203), PackedInt32Array(200, 214, 199), PackedInt32Array(199, 214, 208), PackedInt32Array(199, 208, 209), PackedInt32Array(192, 216, 184), PackedInt32Array(184, 216, 186), PackedInt32Array(186, 216, 215), PackedInt32Array(192, 184, 191), PackedInt32Array(219, 218, 217), PackedInt32Array(217, 218, 189), PackedInt32Array(217, 189, 190), PackedInt32Array(212, 213, 180), PackedInt32Array(180, 213, 183), PackedInt32Array(186, 220, 185), PackedInt32Array(185, 220, 218), PackedInt32Array(185, 218, 219), PackedInt32Array(224, 223, 225), PackedInt32Array(225, 223, 222), PackedInt32Array(225, 222, 221), PackedInt32Array(228, 227, 226), PackedInt32Array(226, 227, 225), PackedInt32Array(225, 227, 224), PackedInt32Array(228, 231, 227), PackedInt32Array(227, 231, 229), PackedInt32Array(229, 231, 230), PackedInt32Array(233, 232, 221), PackedInt32Array(221, 232, 225), PackedInt32Array(237, 236, 234), PackedInt32Array(234, 236, 235), PackedInt32Array(241, 240, 238), PackedInt32Array(238, 240, 239), PackedInt32Array(245, 244, 242), PackedInt32Array(242, 244, 243), PackedInt32Array(249, 248, 246), PackedInt32Array(246, 248, 247), PackedInt32Array(253, 252, 250), PackedInt32Array(250, 252, 251)] sample_partition_type = 2 geometry_parsed_geometry_type = 1 geometry_collision_mask = 2147483648 agent_height = 2.0 +region_min_size = 8.0 [sub_resource type="BoxShape3D" id="BoxShape3D_xw4dv"] size = Vector3(80, 1, 80) @@ -43,24 +44,24 @@ corridor_cost_multiplier = 0.1 show_debug_in_editor = false hide_debug_visuals_for_all_generated_rooms = false -[node name="Floor Exit A_0" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("12_n02rw")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, 18) -script = ExtResource("7_sdyti") -size_in_voxels = Vector3i(5, 1, 9) -voxel_scale = Vector3(4, 4, 4) -min_count = 1 -max_count = 1 - -[node name="BasinRoom_1" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_5rblf")] -transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 20, 0, -2) +[node name="BasinRoom_0" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_5rblf")] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 8, 0, 14) script = ExtResource("7_sdyti") size_in_voxels = Vector3i(5, 1, 4) voxel_scale = Vector3(4, 4, 4) min_count = 1 max_count = 2 +[node name="Floor Exit A_1" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("12_n02rw")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 30, 0, 10) +script = ExtResource("7_sdyti") +size_in_voxels = Vector3i(5, 1, 9) +voxel_scale = Vector3(4, 4, 4) +min_count = 1 +max_count = 1 + [node name="Antechamber A_2" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("3_gkkr3")] -transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -30) +transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, -32, 0, 30) script = ExtResource("7_sdyti") size_in_voxels = Vector3i(5, 1, 4) voxel_scale = Vector3(4, 4, 4) @@ -68,117 +69,182 @@ min_count = 1 max_count = 2 [node name="Corridor_3" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, 38) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_4" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 38) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_5" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 38) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_6" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 38) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_7" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 34) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_8" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 30) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_9" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 26) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_10" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 22) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_11" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 18) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_12" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 14) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) -[node name="Corridor_13" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +[node name="Corridor_4" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 10) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) -[node name="Corridor_14" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +[node name="Corridor_5" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 6) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) -[node name="Corridor_15" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 6) +[node name="Corridor_6" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 2) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) -[node name="Corridor_16" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +[node name="Corridor_7" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 2) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) -[node name="Corridor_17" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +[node name="Corridor_8" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 2) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) +[node name="Corridor_9" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_10" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_11" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_12" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_13" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -6) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_14" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_15" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_16" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_17" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + [node name="Corridor_18" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -2) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, -10) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) [node name="Corridor_19" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -2) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_20" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -6) -script = ExtResource("8_1l8yt") -voxel_scale = Vector3(4, 4, 4) - -[node name="Corridor_21" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -10) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) +[node name="Corridor_20" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_21" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + [node name="Corridor_22" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -14) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, -10) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) [node name="Corridor_23" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -18) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -10) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) [node name="Corridor_24" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -22) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -6) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) [node name="Corridor_25" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -26) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -6) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_26" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_27" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_28" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_29" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, 2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_30" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 2) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_31" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 6) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_32" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 10) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_33" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 14) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_34" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 18) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_35" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 22) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_36" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 26) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_37" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 30) +script = ExtResource("8_1l8yt") +voxel_scale = Vector3(4, 4, 4) + +[node name="Corridor_38" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, 34) script = ExtResource("8_1l8yt") voxel_scale = Vector3(4, 4, 4) diff --git a/src/map/dungeon/scenes/Set A/03. Antechamber A.tscn b/src/map/dungeon/scenes/Set A/03. Antechamber A.tscn index 2dcb3c04..a765b66a 100644 --- a/src/map/dungeon/scenes/Set A/03. Antechamber A.tscn +++ b/src/map/dungeon/scenes/Set A/03. Antechamber A.tscn @@ -777,6 +777,14 @@ shape = SubResource("BoxShape3D_phhs1") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.66204, -0.677457, 94.7863) shape = SubResource("BoxShape3D_phhs1") +[node name="CollisionShape3D9" type="CollisionShape3D" parent="Antechamber A/StaticBody3D2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.41592, -0.677457, 78.7059) +shape = SubResource("BoxShape3D_phhs1") + +[node name="CollisionShape3D10" type="CollisionShape3D" parent="Antechamber A/StaticBody3D2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24982, -0.677457, 78.8461) +shape = SubResource("BoxShape3D_phhs1") + [node name="CSGBox3D" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0314088, 4.23029, -0.0385468) visible = false diff --git a/src/map/dungeon/scenes/Set A/18. Corridor A.tscn b/src/map/dungeon/scenes/Set A/18. Corridor A.tscn index 12f9c49b..a7ccdfd8 100644 --- a/src/map/dungeon/scenes/Set A/18. Corridor A.tscn +++ b/src/map/dungeon/scenes/Set A/18. Corridor A.tscn @@ -497,7 +497,7 @@ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_p4f4g") [sub_resource type="BoxShape3D" id="BoxShape3D_gbjb2"] -size = Vector3(4.40063, 4, 1.67725) +size = Vector3(4.40063, 4, 1.72632) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lepkf"] transparency = 1 @@ -707,6 +707,8 @@ mesh = SubResource("ArrayMesh_pjk1a") skeleton = NodePath("") [node name="StaticBody3D" type="StaticBody3D" parent="18_A1_CORRIDOR_A"] +collision_layer = 2147483649 +collision_mask = 2147483649 [node name="CollisionShape3D" type="CollisionShape3D" parent="18_A1_CORRIDOR_A/StaticBody3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7192, 2.25405, -0.816737) @@ -740,7 +742,7 @@ collision_layer = 2147483648 collision_mask = 2147483648 [node name="CollisionShape3D" type="CollisionShape3D" parent="DOOR?_F_CUT/StaticBody3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0286865, 0, 0.463623) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0286865, 0, 0.439088) shape = SubResource("BoxShape3D_gbjb2") [node name="DOOR?_R_CUT" type="CSGBox3D" parent="."] diff --git a/src/test/NavigationTestScene.tscn b/src/test/NavigationTestScene.tscn index a0eb5da1..b2bee4c7 100644 --- a/src/test/NavigationTestScene.tscn +++ b/src/test/NavigationTestScene.tscn @@ -20,6 +20,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.791832, 0) [node name="Sproingy" parent="." instance=ExtResource("2_3keei")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.64783, -11.9575) +motion_mode = 1 [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] navigation_mesh = SubResource("NavigationMesh_3keei")