diff --git a/assets/Environment/grass.tscn b/assets/Environment/grass.tscn index 998d8c4..ffce5a3 100644 --- a/assets/Environment/grass.tscn +++ b/assets/Environment/grass.tscn @@ -2,4 +2,4 @@ [ext_resource path="res://assets/KenneySurvivalKit/Models/grass.glb" type="PackedScene" id=1] -[node name="grass" instance=ExtResource( 1 )] +[node name="grass" groups=["GameGeometry"] instance=ExtResource( 1 )] diff --git a/assets/Environment/grassLarge.tscn b/assets/Environment/grassLarge.tscn index 4fa08d8..624121b 100644 --- a/assets/Environment/grassLarge.tscn +++ b/assets/Environment/grassLarge.tscn @@ -2,7 +2,7 @@ [ext_resource path="res://assets/KenneySurvivalKit/Models/grassLarge.glb" type="PackedScene" id=1] -[node name="grassLarge" instance=ExtResource( 1 )] +[node name="grassLarge" groups=["GameGeometry"] instance=ExtResource( 1 )] [node name="grassLarge" parent="." index="0"] transform = Transform( 1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0 ) diff --git a/components/NavigationComponent.cs b/components/NavigationComponent.cs index 2e6d671..1c03d34 100644 --- a/components/NavigationComponent.cs +++ b/components/NavigationComponent.cs @@ -85,7 +85,7 @@ public class NavigationComponent : Spatial private List _pathWorldNavigationPoints = new List(); private List _smoothedPathWorldNavigationPoints = new List(); - + private HexCell[] _path; public override void _Ready() @@ -117,7 +117,7 @@ public class NavigationComponent : Spatial _pathWorldNavigationPoints = new List(); _pathWorldNavigationPoints.Add( new NavigationPoint(TileWorld.GetHexCenterFromOffset(fromPositionOffset))); - + foreach (int index in Enumerable.Range(1, _path.Length - 1)) { _pathWorldNavigationPoints.Add( @@ -145,7 +145,8 @@ public class NavigationComponent : Spatial } - public void PlanGridPath(KinematicBody body, Vector3 fromPositionWorld, Vector3 toPositionWorld, Quat toWorldOrientation) + public void PlanGridPath(KinematicBody body, Vector3 fromPositionWorld, Vector3 toPositionWorld, + Quat toWorldOrientation) { PlanGridPath(body, fromPositionWorld, toPositionWorld); @@ -158,7 +159,8 @@ public class NavigationComponent : Spatial if (navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Position) && navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Orientation)) { - PlanGridPath(body, fromTransformWorld.origin, navigationPoint.WorldPosition, navigationPoint.WorldOrientation); + PlanGridPath(body, fromTransformWorld.origin, navigationPoint.WorldPosition, + navigationPoint.WorldOrientation); } else if (navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Position)) { @@ -180,7 +182,8 @@ public class NavigationComponent : Spatial } - public void PlanDirectPath(KinematicBody body, Vector3 fromPositionWorld, Vector3 toPositionWorld, Quat toWorldOrientation) + public void PlanDirectPath(KinematicBody body, Vector3 fromPositionWorld, Vector3 toPositionWorld, + Quat toWorldOrientation) { PlanDirectPath(body, fromPositionWorld, toPositionWorld); @@ -192,11 +195,13 @@ public class NavigationComponent : Spatial { Vector3 fromPositionLocal = GlobalTransform.XformInv(fromPositionWorld); Vector3 toPositionLocal = GlobalTransform.XformInv(toPositionWorld); + Vector3 relativeVelocity = GlobalTransform.basis.Xform(toPositionLocal - fromPositionLocal); - KinematicCollision moveCollision = body.MoveAndCollide(toPositionLocal + Vector3.Up * 0.5f, true, true, true); + KinematicCollision moveCollision = body.MoveAndCollide(relativeVelocity, true, true, true); if (moveCollision != null) { - GD.Print("Found collision: " + moveCollision.Collider); + Spatial colliderSpatial = moveCollision.Collider as Spatial; + GD.Print("Found collision: " + moveCollision.Collider + " (" + colliderSpatial.Name + ")"); return true; } @@ -208,14 +213,14 @@ public class NavigationComponent : Spatial Debug.Assert(navigationPoints.Count > 2); Vector3 bodyGlobalTranslation = body.GlobalTranslation; - List smoothedPath = new List(); - + List smoothedPath = new List(); + int startIndex = 0; int endIndex = navigationPoints.Count > 1 ? 1 : 0; smoothedPath.Add(navigationPoints[startIndex]); Vector3 startPoint = navigationPoints[startIndex].WorldPosition; - - while (endIndex != navigationPoints.Count - 1) + + while (endIndex != navigationPoints.Count) { Vector3 endPoint = navigationPoints[endIndex].WorldPosition; @@ -227,22 +232,26 @@ public class NavigationComponent : Spatial body.GlobalTranslation = bodyGlobalTranslation; return smoothedPath; } - else - { - smoothedPath.Add(navigationPoints[endIndex - 1]); - startIndex = endIndex - 1; - startPoint = navigationPoints[startIndex].WorldPosition; - body.GlobalTranslation = startPoint; - continue; - } + smoothedPath.Add(navigationPoints[endIndex - 1]); + startIndex = endIndex - 1; + startPoint = navigationPoints[startIndex].WorldPosition; + body.GlobalTranslation = startPoint; + + continue; } + + if (endIndex == navigationPoints.Count - 1) + { + break; + } + endIndex += 1; } - + smoothedPath.Add(navigationPoints[endIndex]); body.GlobalTranslation = bodyGlobalTranslation; - + return smoothedPath; } @@ -251,7 +260,8 @@ public class NavigationComponent : Spatial if (navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Position) && navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Orientation)) { - PlanDirectPath(body, fromTransformWorld.origin, navigationPoint.WorldPosition, navigationPoint.WorldOrientation); + PlanDirectPath(body, fromTransformWorld.origin, navigationPoint.WorldPosition, + navigationPoint.WorldOrientation); } else if (navigationPoint.Flags.HasFlag(NavigationPoint.NavigationFlags.Position)) { @@ -337,7 +347,6 @@ public class NavigationComponent : Spatial public void DebugDraw(Spatial parentNode, DebugGeometry debugGeometry) { - Vector3 yOffset = Vector3.Up * 0.1f; debugGeometry.GlobalTransform = Transform.Identity; @@ -362,7 +371,7 @@ public class NavigationComponent : Spatial previousPoint = point.WorldPosition; } - + previousPoint = parentNode.GlobalTranslation; foreach (NavigationPoint point in _smoothedPathWorldNavigationPoints) { @@ -372,7 +381,7 @@ public class NavigationComponent : Spatial previousPoint = point.WorldPosition; } - + debugGeometry.End(); } } \ No newline at end of file diff --git a/entities/Chest.tscn b/entities/Chest.tscn index 457a519..409d3c8 100644 --- a/entities/Chest.tscn +++ b/entities/Chest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://entities/Chest.cs" type="Script" id=1] [ext_resource path="res://assets/Objects/Wood.material" type="Material" id=2] @@ -80,12 +80,19 @@ tracks/2/keys = { [sub_resource type="PrismMesh" id=15] [sub_resource type="BoxShape" id=16] -extents = Vector3( 0.19, 0.19, 0.332 ) +extents = Vector3( 0.19, 0.19, 0.33 ) + +[sub_resource type="CubeMesh" id=17] +size = Vector3( 0.38, 0.38, 0.66 ) + +[sub_resource type="SpatialMaterial" id=18] +flags_transparent = true +albedo_color = Color( 0.380392, 0.145098, 0.145098, 0.501961 ) [node name="Chest" type="KinematicBody"] script = ExtResource( 1 ) -[node name="Geometry" type="Spatial" parent="."] +[node name="Geometry" type="Spatial" parent="." groups=["GameGeometry"]] transform = Transform( -0.259808, 0, 0.15, 0, 0.3, 0, -0.15, 0, -0.259808, 0, 0, 0 ) [node name="Skeleton" type="Skeleton" parent="Geometry"] @@ -128,3 +135,7 @@ skeleton = NodePath("../..") [node name="CollisionShape" type="CollisionShape" parent="."] transform = Transform( -0.866026, 0, 0.5, 0, 1, 0, -0.5, 0, -0.866026, 0, 0.240716, 0 ) shape = SubResource( 16 ) + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +mesh = SubResource( 17 ) +material/0 = SubResource( 18 ) diff --git a/entities/Player.tscn b/entities/Player.tscn index 8a7b6d9..0ae1693 100644 --- a/entities/Player.tscn +++ b/entities/Player.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://entities/Player.cs" type="Script" id=1] [ext_resource path="res://components/NavigationComponent.cs" type="Script" id=2] +[ext_resource path="res://materials/debug/PlayerPhysicsGeometry.tres" type="Material" id=3] [ext_resource path="res://assets/Characters/Pirate.tscn" type="PackedScene" id=4] [ext_resource path="res://components/WorldInfoComponent.cs" type="Script" id=5] [ext_resource path="res://utils/DebugGeometry.cs" type="Script" id=6] @@ -11,12 +12,19 @@ radius = 0.27 height = 0.4 +[sub_resource type="CapsuleMesh" id=26] +radius = 0.27 +mid_height = 0.4 + [sub_resource type="CylinderShape" id=24] height = 0.2 +radius = 0.2 [sub_resource type="SphereShape" id=23] radius = 0.1 +[sub_resource type="AnimationNodeStateMachinePlayback" id=28] + [sub_resource type="SpatialMaterial" id=25] flags_unshaded = true vertex_color_use_as_albedo = true @@ -30,6 +38,15 @@ script = ExtResource( 1 ) [node name="CollisionShape" type="CollisionShape" parent="."] transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, 0 ) shape = SubResource( 7 ) +__meta__ = { +"_editor_description_": "Player World Collision Shape +" +} + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +visible = false +mesh = SubResource( 26 ) +material/0 = ExtResource( 3 ) [node name="Movable" parent="." instance=ExtResource( 7 )] @@ -38,11 +55,14 @@ script = ExtResource( 5 ) World = NodePath("../../TileWorld") [node name="Navigation" type="Spatial" parent="."] +visible = false script = ExtResource( 2 ) [node name="ItemAttractorArea" type="Area" parent="."] +visible = false collision_layer = 0 collision_mask = 8 +input_ray_pickable = false monitorable = false [node name="CollisionShape" type="CollisionShape" parent="ItemAttractorArea"] @@ -50,14 +70,22 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.123516, 0 ) shape = SubResource( 24 ) [node name="ItemPickupArea" type="Area" parent="."] +visible = false collision_layer = 0 collision_mask = 8 +input_ray_pickable = false monitorable = false [node name="CollisionShape" type="CollisionShape" parent="ItemPickupArea"] shape = SubResource( 23 ) -[node name="Geometry" parent="." instance=ExtResource( 4 )] +[node name="Geometry" parent="." groups=["GameGeometry"] instance=ExtResource( 4 )] + +[node name="ToolAttachement" parent="Geometry/Armature/Skeleton" index="5"] +transform = Transform( 1, 8.68458e-08, -1.04308e-07, 1.74623e-07, -1, -1.30385e-07, 1.41561e-07, 1.50874e-07, -1, -0.72, 0.45, 3.28113e-08 ) + +[node name="AnimationTree" parent="Geometry" index="2"] +parameters/playback = SubResource( 28 ) [node name="DebugGeometry" type="Spatial" parent="."] script = ExtResource( 6 ) @@ -66,3 +94,5 @@ script = ExtResource( 6 ) material_override = SubResource( 25 ) cast_shadow = 0 generate_lightmap = false + +[editable path="Geometry"] diff --git a/entities/Tree.cs b/entities/Tree.cs index a6d30f7..f754484 100644 --- a/entities/Tree.cs +++ b/entities/Tree.cs @@ -27,7 +27,7 @@ public class Tree : StaticBody, IInteractionInterface // Called when the node enters the scene tree for the first time. public override void _Ready() { - _geometry = GetNode("Geometry"); + _geometry = GetNode("Geometry/tree"); Debug.Assert(_geometry != null); _animationPlayer = GetNode("AnimationPlayer"); Debug.Assert(_animationPlayer != null); diff --git a/entities/Tree.tscn b/entities/Tree.tscn index 163423a..dc97434 100644 --- a/entities/Tree.tscn +++ b/entities/Tree.tscn @@ -1,39 +1,8 @@ [gd_scene load_steps=11 format=2] -[ext_resource path="res://assets/KenneySurvivalKit/Models/foliage.material" type="Material" id=1] -[ext_resource path="res://assets/KenneySurvivalKit/Models/wood.material" type="Material" id=2] +[ext_resource path="res://materials/debug/TreePhysicsGeometry.tres" type="Material" id=1] [ext_resource path="res://entities/Tree.cs" type="Script" id=3] - -[sub_resource type="ArrayMesh" id=1] -resource_name = "tree_Mesh tree" -surfaces/0 = { -"aabb": AABB( -0.271581, 0, -0.263118, 0.552858, 1.41097, 0.526237 ), -"array_data": PoolByteArray( 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 129, 63, 166, 61, 112, 199, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 129, 63, 166, 189, 112, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 125, 127, 129, 63, 74, 61, 51, 204, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 125, 127, 129, 63, 74, 189, 51, 204, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 0, 13, 127, 63, 227, 64, 47, 61, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 0, 13, 127, 63, 227, 192, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 127, 63, 166, 61, 56, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 127, 63, 166, 189, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 0, 129, 129, 63, 227, 64, 199, 189, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 0, 129, 129, 63, 227, 64, 227, 66, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 0, 129, 129, 63, 227, 192, 199, 189, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 0, 129, 129, 63, 227, 192, 227, 66, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 138, 8, 0, 63, 166, 61, 112, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 138, 8, 0, 63, 166, 189, 112, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 131, 1, 0, 63, 74, 61, 51, 204, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 131, 1, 0, 63, 74, 189, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 118, 8, 127, 127, 166, 189, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 125, 1, 127, 127, 74, 189, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 8, 127, 127, 166, 61, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 125, 1, 127, 127, 74, 61, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 127, 63, 166, 61, 112, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 127, 63, 166, 189, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 0, 1, 127, 63, 74, 61, 51, 204, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 0, 1, 127, 63, 74, 189, 51, 204, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 113, 13, 127, 127, 227, 192, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 118, 8, 127, 127, 166, 189, 56, 199, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 113, 13, 127, 127, 227, 64, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 8, 127, 127, 166, 61, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 143, 13, 0, 63, 227, 64, 47, 61, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 143, 13, 0, 63, 227, 192, 47, 61, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 138, 8, 0, 63, 166, 61, 56, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 138, 8, 0, 63, 166, 189, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 113, 127, 129, 63, 227, 64, 47, 61, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 113, 127, 129, 63, 227, 192, 47, 61, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 129, 63, 166, 61, 56, 199, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 129, 63, 166, 189, 56, 199, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 155, 89, 0, 63, 182, 68, 215, 202, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 101, 89, 0, 63, 23, 197, 215, 202, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 155, 89, 0, 63, 103, 65, 126, 206, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 101, 89, 0, 63, 42, 194, 126, 206, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 62, 223, 34, 0, 63, 74, 49, 189, 204, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 200, 38, 0, 63, 66, 196, 40, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 0, 46, 0, 63, 150, 68, 40, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 46, 0, 63, 38, 68, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 200, 38, 0, 63, 163, 195, 147, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 80, 129, 0, 63, 150, 68, 40, 205, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 88, 186, 0, 63, 66, 196, 40, 205, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 62, 92, 163, 0, 63, 74, 49, 189, 204, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 80, 129, 0, 63, 38, 68, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 88, 186, 0, 63, 163, 195, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 192, 25, 0, 63, 248, 67, 95, 206, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 155, 62, 0, 63, 248, 195, 95, 206, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 192, 25, 0, 63, 78, 63, 214, 208, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 155, 62, 0, 63, 78, 191, 214, 208, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 190, 164, 93, 0, 63, 74, 177, 189, 204, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 80, 127, 0, 63, 150, 196, 40, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 168, 70, 0, 63, 66, 68, 40, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 168, 70, 0, 63, 163, 67, 147, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 80, 127, 0, 63, 38, 196, 147, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 56, 218, 0, 63, 66, 68, 40, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 0, 210, 0, 63, 150, 196, 40, 205, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 190, 33, 222, 0, 63, 74, 177, 189, 204, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 56, 218, 0, 63, 163, 67, 147, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 210, 0, 63, 38, 196, 147, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 32, 0, 63, 38, 68, 93, 206, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 192, 25, 0, 63, 163, 195, 93, 206, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 32, 0, 63, 247, 63, 213, 208, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 192, 25, 0, 63, 164, 190, 213, 208, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 56, 38, 0, 63, 108, 196, 32, 205, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 56, 38, 0, 63, 248, 195, 139, 205, 6, 4, 96, 62, 99, 20, 45, 63, 22, 29, 162, 48, 84, 42, 0, 63, 0, 0, 181, 204, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 88, 70, 0, 63, 248, 67, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 88, 70, 0, 63, 108, 68, 32, 205, 6, 4, 96, 62, 99, 20, 45, 63, 22, 29, 162, 48, 172, 214, 0, 63, 0, 0, 181, 204, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 168, 186, 0, 63, 248, 195, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 168, 186, 0, 63, 108, 196, 32, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 200, 218, 0, 63, 248, 67, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 200, 218, 0, 63, 108, 68, 32, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 190, 92, 93, 0, 63, 74, 177, 183, 204, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 88, 70, 0, 63, 150, 196, 35, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 80, 127, 0, 63, 66, 68, 35, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 80, 127, 0, 63, 163, 67, 142, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 88, 70, 0, 63, 38, 196, 142, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 0, 210, 0, 63, 66, 68, 35, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 200, 218, 0, 63, 150, 196, 35, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 190, 223, 222, 0, 63, 74, 177, 183, 204, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 210, 0, 63, 163, 67, 142, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 200, 218, 0, 63, 38, 196, 142, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 155, 62, 0, 63, 163, 67, 93, 206, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 94, 127, 0, 63, 38, 196, 93, 206, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 155, 62, 0, 63, 164, 62, 213, 208, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 94, 127, 0, 63, 247, 191, 213, 208, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 64, 25, 0, 63, 38, 68, 90, 206, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 32, 0, 63, 163, 195, 90, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 64, 25, 0, 63, 247, 63, 211, 208, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 32, 0, 63, 164, 190, 211, 208, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 94, 127, 0, 63, 163, 67, 90, 206, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 101, 62, 0, 63, 38, 196, 90, 206, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 94, 127, 0, 63, 164, 62, 211, 208, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 101, 62, 0, 63, 247, 191, 211, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 37, 24, 0, 63, 8, 66, 202, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 219, 24, 0, 63, 69, 193, 202, 208, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 0, 63, 185, 58, 132, 210, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 0, 63, 87, 183, 132, 210, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 219, 24, 0, 63, 216, 65, 203, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 161, 31, 0, 63, 118, 193, 203, 208, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 0, 63, 246, 57, 133, 210, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 0, 63, 111, 184, 133, 210, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 0, 63, 111, 188, 0, 60, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 0, 63, 87, 183, 2, 176, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 0, 63, 87, 183, 64, 64, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 0, 63, 185, 58, 2, 176, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 0, 63, 185, 58, 64, 64, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 0, 63, 246, 61, 0, 60, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 161, 31, 0, 63, 118, 65, 203, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 154, 89, 0, 63, 216, 193, 203, 208, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 0, 63, 111, 56, 133, 210, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 0, 63, 246, 185, 133, 210, 32, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 62, 0, 42, 0, 63, 27, 50, 2, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 224, 38, 0, 63, 228, 193, 40, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 32, 38, 0, 63, 168, 66, 40, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 32, 38, 0, 63, 8, 66, 78, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 224, 38, 0, 63, 69, 193, 78, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 168, 162, 0, 63, 168, 66, 40, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 88, 162, 0, 63, 228, 193, 40, 208, 32, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 62, 84, 129, 0, 63, 27, 50, 2, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 168, 162, 0, 63, 8, 66, 78, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 88, 162, 0, 63, 69, 193, 78, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 37, 24, 0, 63, 118, 193, 200, 208, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 0, 63, 111, 184, 130, 210, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 95, 31, 0, 63, 216, 65, 200, 208, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 0, 63, 246, 57, 130, 210, 24, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 190, 84, 127, 0, 63, 27, 178, 235, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 88, 94, 0, 63, 161, 197, 125, 200, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 168, 94, 0, 63, 64, 69, 125, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 168, 94, 0, 63, 182, 68, 133, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 88, 94, 0, 63, 23, 197, 133, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 32, 218, 0, 63, 64, 69, 125, 200, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 224, 218, 0, 63, 161, 197, 125, 200, 24, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 190, 0, 214, 0, 63, 27, 178, 235, 198, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 32, 218, 0, 63, 182, 68, 133, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 224, 218, 0, 63, 23, 197, 133, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 224, 38, 0, 63, 137, 69, 135, 200, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 62, 198, 34, 0, 63, 27, 46, 254, 198, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 224, 38, 0, 63, 255, 68, 142, 201, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 176, 46, 0, 63, 206, 196, 142, 201, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 176, 46, 0, 63, 88, 197, 135, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 88, 162, 0, 63, 255, 68, 142, 201, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 62, 92, 188, 0, 63, 27, 46, 254, 198, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 88, 162, 0, 63, 137, 69, 135, 200, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 80, 210, 0, 63, 206, 196, 142, 201, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 80, 210, 0, 63, 88, 197, 135, 200, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 154, 89, 0, 63, 69, 65, 202, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 102, 89, 0, 63, 8, 194, 202, 208, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 0, 63, 87, 55, 132, 210, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 0, 63, 185, 186, 132, 210, 24, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 190, 84, 127, 0, 63, 27, 178, 2, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 88, 94, 0, 63, 168, 194, 40, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 168, 94, 0, 63, 228, 65, 40, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 168, 94, 0, 63, 69, 65, 78, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 88, 94, 0, 63, 8, 194, 78, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 32, 218, 0, 63, 228, 65, 40, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 224, 218, 0, 63, 168, 194, 40, 208, 24, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 190, 0, 214, 0, 63, 27, 178, 2, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 32, 218, 0, 63, 69, 65, 78, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 224, 218, 0, 63, 8, 194, 78, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 224, 38, 0, 63, 119, 66, 43, 208, 214, 147, 1, 190, 74, 136, 130, 63, 7, 91, 155, 61, 198, 34, 0, 63, 27, 46, 5, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 224, 38, 0, 63, 216, 65, 81, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 176, 46, 0, 63, 118, 193, 81, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 176, 46, 0, 63, 21, 194, 43, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 88, 162, 0, 63, 216, 65, 81, 208, 214, 147, 1, 190, 74, 136, 130, 63, 7, 91, 155, 61, 92, 188, 0, 63, 27, 46, 5, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 88, 162, 0, 63, 119, 66, 43, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 80, 210, 0, 63, 118, 193, 81, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 80, 210, 0, 63, 21, 194, 43, 208, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 64, 25, 0, 63, 248, 195, 88, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 64, 25, 0, 63, 78, 191, 210, 208, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 101, 62, 0, 63, 248, 67, 88, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 101, 62, 0, 63, 78, 63, 210, 208, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 0, 63, 246, 185, 130, 210, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 0, 63, 111, 56, 130, 210, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 95, 31, 0, 63, 216, 193, 200, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 102, 89, 0, 63, 118, 65, 200, 208, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 62, 33, 34, 0, 63, 74, 49, 183, 204, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 0, 46, 0, 63, 66, 196, 35, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 56, 38, 0, 63, 150, 68, 35, 205, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 56, 38, 0, 63, 38, 68, 142, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 46, 0, 63, 163, 195, 142, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 168, 186, 0, 63, 150, 68, 35, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 80, 129, 0, 63, 66, 196, 35, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 62, 164, 163, 0, 63, 74, 49, 183, 204, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 168, 186, 0, 63, 38, 68, 142, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 80, 129, 0, 63, 163, 195, 142, 205, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 176, 46, 0, 63, 21, 66, 43, 208, 215, 147, 1, 190, 74, 136, 130, 63, 6, 91, 155, 189, 164, 68, 0, 63, 27, 174, 5, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 176, 46, 0, 63, 118, 65, 81, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 168, 94, 0, 63, 216, 193, 81, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 168, 94, 0, 63, 119, 194, 43, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 80, 210, 0, 63, 118, 65, 81, 208, 215, 147, 1, 190, 74, 136, 130, 63, 6, 91, 155, 189, 58, 222, 0, 63, 27, 174, 5, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 80, 210, 0, 63, 21, 66, 43, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 32, 218, 0, 63, 216, 193, 81, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 32, 218, 0, 63, 119, 194, 43, 208, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 200, 38, 0, 63, 108, 68, 43, 205, 68, 22, 86, 190, 99, 20, 45, 63, 100, 116, 155, 49, 172, 42, 0, 63, 0, 0, 192, 204, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 200, 38, 0, 63, 248, 67, 150, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 168, 70, 0, 63, 248, 195, 150, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 168, 70, 0, 63, 108, 196, 43, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 88, 186, 0, 63, 248, 67, 150, 205, 68, 22, 86, 190, 99, 20, 45, 63, 100, 116, 155, 49, 84, 214, 0, 63, 0, 0, 192, 204, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 88, 186, 0, 63, 108, 68, 43, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 56, 218, 0, 63, 248, 195, 150, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 56, 218, 0, 63, 108, 196, 43, 205, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 32, 38, 0, 63, 88, 197, 115, 200, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 32, 38, 0, 63, 206, 196, 123, 201, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 62, 58, 34, 0, 63, 27, 46, 215, 198, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 80, 46, 0, 63, 255, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 80, 46, 0, 63, 137, 69, 115, 200, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 62, 164, 188, 0, 63, 27, 46, 215, 198, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 168, 162, 0, 63, 206, 196, 123, 201, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 168, 162, 0, 63, 88, 197, 115, 200, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 176, 210, 0, 63, 255, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 176, 210, 0, 63, 137, 69, 115, 200, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 80, 46, 0, 63, 255, 196, 123, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 88, 94, 0, 63, 206, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 80, 46, 0, 63, 137, 197, 115, 200, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 190, 92, 68, 0, 63, 27, 174, 215, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 88, 94, 0, 63, 88, 69, 115, 200, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 176, 210, 0, 63, 137, 197, 115, 200, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 224, 218, 0, 63, 206, 68, 123, 201, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 176, 210, 0, 63, 255, 196, 123, 201, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 190, 198, 222, 0, 63, 27, 174, 215, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 224, 218, 0, 63, 88, 69, 115, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 219, 25, 0, 63, 255, 68, 221, 202, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 162, 32, 0, 63, 206, 196, 221, 202, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 219, 25, 0, 63, 249, 65, 129, 206, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 162, 32, 0, 63, 152, 193, 129, 206, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 80, 46, 0, 63, 216, 193, 76, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 88, 94, 0, 63, 118, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 80, 46, 0, 63, 119, 194, 38, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 189, 92, 68, 0, 63, 27, 174, 0, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 88, 94, 0, 63, 21, 66, 38, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 176, 210, 0, 63, 119, 194, 38, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 224, 218, 0, 63, 118, 65, 76, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 176, 210, 0, 63, 216, 193, 76, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 189, 198, 222, 0, 63, 27, 174, 0, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 224, 218, 0, 63, 21, 66, 38, 208, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 176, 46, 0, 63, 88, 69, 135, 200, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 190, 164, 68, 0, 63, 27, 174, 254, 198, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 176, 46, 0, 63, 206, 68, 142, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 168, 94, 0, 63, 255, 196, 142, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 168, 94, 0, 63, 137, 197, 135, 200, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 80, 210, 0, 63, 206, 68, 142, 201, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 190, 58, 222, 0, 63, 27, 174, 254, 198, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 80, 210, 0, 63, 88, 69, 135, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 32, 218, 0, 63, 255, 196, 142, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 32, 218, 0, 63, 137, 197, 135, 200, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 32, 38, 0, 63, 21, 194, 38, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 32, 38, 0, 63, 118, 193, 76, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 61, 58, 34, 0, 63, 27, 46, 0, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 80, 46, 0, 63, 216, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 80, 46, 0, 63, 119, 66, 38, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 61, 164, 188, 0, 63, 27, 46, 0, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 168, 162, 0, 63, 118, 193, 76, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 168, 162, 0, 63, 21, 194, 38, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 176, 210, 0, 63, 216, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 176, 210, 0, 63, 119, 66, 38, 208, 36, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 62, 0, 42, 0, 63, 27, 50, 235, 198, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 224, 38, 0, 63, 64, 197, 125, 200, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 32, 38, 0, 63, 161, 69, 125, 200, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 32, 38, 0, 63, 23, 69, 133, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 224, 38, 0, 63, 182, 196, 133, 201, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 168, 162, 0, 63, 161, 69, 125, 200, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 88, 162, 0, 63, 64, 197, 125, 200, 36, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 62, 84, 129, 0, 63, 27, 50, 235, 198, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 168, 162, 0, 63, 23, 69, 133, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 88, 162, 0, 63, 182, 196, 133, 201, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 37, 25, 0, 63, 23, 69, 215, 202, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 219, 25, 0, 63, 182, 196, 215, 202, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 37, 25, 0, 63, 42, 66, 126, 206, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 219, 25, 0, 63, 103, 193, 126, 206, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 162, 32, 0, 63, 206, 68, 221, 202, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 155, 89, 0, 63, 255, 196, 221, 202, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 162, 32, 0, 63, 152, 65, 129, 206, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 155, 89, 0, 63, 249, 193, 129, 206, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 94, 32, 0, 63, 249, 193, 123, 206, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 101, 89, 0, 63, 152, 65, 123, 206, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 94, 32, 0, 63, 255, 196, 209, 202, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 101, 89, 0, 63, 206, 68, 209, 202, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 37, 25, 0, 63, 206, 196, 209, 202, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 37, 25, 0, 63, 152, 193, 123, 206, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 94, 32, 0, 63, 255, 68, 209, 202, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 94, 32, 0, 63, 249, 65, 123, 206, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 0, 129, 0, 63, 206, 72, 0, 60, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 0, 129, 0, 63, 182, 68, 190, 72, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 0, 129, 0, 63, 182, 68, 125, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 0, 129, 0, 63, 74, 61, 40, 181, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 0, 129, 0, 63, 23, 197, 125, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 0, 129, 0, 63, 74, 61, 165, 64, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 0, 129, 0, 63, 74, 189, 40, 181, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 0, 129, 0, 63, 23, 197, 190, 72, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 0, 129, 0, 63, 74, 189, 165, 64, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 0, 129, 0, 63, 255, 200, 255, 59, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 0, 129, 0, 63, 182, 70, 252, 68, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 0, 129, 0, 63, 152, 69, 0, 60, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 0, 129, 0, 63, 182, 70, 248, 193, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 0, 129, 0, 63, 103, 65, 2, 70, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 0, 129, 0, 63, 103, 65, 2, 196, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 129, 0, 63, 27, 178, 124, 72, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 129, 0, 63, 27, 178, 248, 198, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 0, 129, 0, 63, 42, 194, 2, 70, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 0, 129, 0, 63, 42, 194, 2, 196, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 0, 129, 0, 63, 24, 199, 252, 68, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 0, 129, 0, 63, 24, 199, 248, 193, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 0, 129, 0, 63, 249, 197, 0, 60, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 0, 129, 0, 63, 118, 69, 0, 60, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 0, 129, 0, 63, 241, 65, 156, 186, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 0, 129, 0, 63, 69, 65, 202, 195, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 0, 129, 0, 63, 241, 65, 167, 65, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 0, 129, 0, 63, 27, 178, 78, 193, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 0, 129, 0, 63, 69, 65, 229, 69, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 0, 129, 0, 63, 8, 194, 202, 195, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 129, 0, 63, 27, 178, 167, 68, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 0, 129, 0, 63, 181, 194, 156, 186, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 0, 129, 0, 63, 8, 194, 229, 69, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 0, 129, 0, 63, 216, 197, 255, 59, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 0, 129, 0, 63, 181, 194, 167, 65 ), -"array_index_data": PoolByteArray( 2, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 6, 0, 4, 0, 5, 0, 5, 0, 7, 0, 6, 0, 10, 0, 8, 0, 9, 0, 9, 0, 11, 0, 10, 0, 14, 0, 12, 0, 13, 0, 13, 0, 15, 0, 14, 0, 18, 0, 16, 0, 17, 0, 17, 0, 19, 0, 18, 0, 22, 0, 20, 0, 21, 0, 21, 0, 23, 0, 22, 0, 26, 0, 24, 0, 25, 0, 25, 0, 27, 0, 26, 0, 30, 0, 28, 0, 29, 0, 29, 0, 31, 0, 30, 0, 34, 0, 32, 0, 33, 0, 33, 0, 35, 0, 34, 0 ), -"blend_shape_data": [ ], -"format": 2194711, -"index_count": 54, -"material": ExtResource( 2 ), -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 328 -} -surfaces/1 = { -"aabb": AABB( -0.271581, 0, -0.263118, 0.552858, 1.41097, 0.526237 ), -"array_data": PoolByteArray( 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 0, 63, 166, 61, 112, 199, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 0, 63, 166, 189, 112, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 125, 127, 0, 63, 74, 61, 51, 204, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 125, 127, 0, 63, 74, 189, 51, 204, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 0, 13, 0, 63, 227, 64, 47, 61, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 0, 13, 0, 63, 227, 192, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 0, 63, 166, 61, 56, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 0, 63, 166, 189, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 0, 129, 0, 63, 227, 64, 199, 189, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 0, 129, 0, 63, 227, 64, 227, 66, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 0, 129, 0, 63, 227, 192, 199, 189, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 0, 129, 0, 63, 227, 192, 227, 66, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 138, 8, 0, 63, 166, 61, 112, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 138, 8, 0, 63, 166, 189, 112, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 131, 1, 0, 63, 74, 61, 51, 204, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 131, 1, 0, 63, 74, 189, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 118, 8, 0, 63, 166, 189, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 125, 1, 0, 63, 74, 189, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 8, 0, 63, 166, 61, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 125, 1, 0, 63, 74, 61, 51, 204, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 0, 63, 166, 61, 112, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 0, 8, 0, 63, 166, 189, 112, 199, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 0, 1, 0, 63, 74, 61, 51, 204, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 0, 1, 0, 63, 74, 189, 51, 204, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 61, 113, 13, 0, 63, 227, 192, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 61, 118, 8, 0, 63, 166, 189, 56, 199, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 113, 13, 0, 63, 227, 64, 47, 61, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 8, 0, 63, 166, 61, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 61, 143, 13, 0, 63, 227, 64, 47, 61, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 143, 13, 0, 63, 227, 192, 47, 61, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 61, 138, 8, 0, 63, 166, 61, 56, 199, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 138, 8, 0, 63, 166, 189, 56, 199, 63, 80, 126, 189, 0, 0, 0, 0, 63, 80, 126, 189, 113, 127, 0, 63, 227, 64, 47, 61, 63, 80, 126, 61, 0, 0, 0, 0, 63, 80, 126, 189, 113, 127, 0, 63, 227, 192, 47, 61, 201, 239, 18, 189, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 0, 63, 166, 61, 56, 199, 201, 239, 18, 61, 93, 219, 91, 62, 201, 239, 18, 189, 118, 127, 0, 63, 166, 189, 56, 199, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 155, 89, 182, 56, 182, 68, 215, 202, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 101, 89, 144, 89, 23, 197, 215, 202, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 155, 89, 182, 56, 103, 65, 126, 206, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 101, 89, 144, 89, 42, 194, 126, 206, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 62, 223, 34, 80, 63, 74, 49, 189, 204, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 200, 38, 47, 73, 66, 196, 40, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 0, 46, 90, 52, 150, 68, 40, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 46, 90, 52, 38, 68, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 200, 38, 47, 73, 163, 195, 147, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 80, 129, 90, 204, 150, 68, 40, 205, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 88, 186, 47, 183, 66, 196, 40, 205, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 62, 92, 163, 80, 193, 74, 49, 189, 204, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 80, 129, 90, 204, 38, 68, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 88, 186, 47, 183, 163, 195, 147, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 192, 25, 37, 56, 248, 67, 95, 206, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 155, 62, 219, 70, 248, 195, 95, 206, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 192, 25, 37, 56, 78, 63, 214, 208, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 155, 62, 219, 70, 78, 191, 214, 208, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 190, 164, 93, 176, 63, 74, 177, 189, 204, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 80, 127, 166, 74, 150, 196, 40, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 168, 70, 209, 53, 66, 68, 40, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 168, 70, 209, 53, 163, 67, 147, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 80, 127, 166, 74, 38, 196, 147, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 56, 218, 209, 203, 66, 68, 40, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 0, 210, 166, 182, 150, 196, 40, 205, 100, 31, 209, 189, 99, 20, 45, 63, 59, 180, 61, 190, 33, 222, 176, 193, 74, 177, 189, 204, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 56, 218, 209, 203, 163, 67, 147, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 210, 166, 182, 38, 196, 147, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 32, 102, 54, 38, 68, 93, 206, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 192, 25, 44, 70, 163, 195, 93, 206, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 32, 102, 54, 247, 63, 213, 208, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 192, 25, 44, 70, 164, 190, 213, 208, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 56, 38, 106, 111, 108, 196, 32, 205, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 56, 38, 106, 111, 248, 195, 139, 205, 6, 4, 96, 62, 99, 20, 45, 63, 22, 29, 162, 48, 84, 42, 129, 127, 0, 0, 181, 204, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 88, 70, 150, 15, 248, 67, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 88, 70, 150, 15, 108, 68, 32, 205, 6, 4, 96, 62, 99, 20, 45, 63, 22, 29, 162, 48, 172, 214, 129, 129, 0, 0, 181, 204, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 168, 186, 106, 145, 248, 195, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 168, 186, 106, 145, 108, 196, 32, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 200, 218, 150, 241, 248, 67, 139, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 200, 218, 150, 241, 108, 68, 32, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 190, 92, 93, 129, 40, 74, 177, 183, 204, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 88, 70, 149, 103, 150, 196, 35, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 80, 127, 152, 45, 66, 68, 35, 205, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 80, 127, 152, 45, 163, 67, 142, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 88, 70, 149, 103, 38, 196, 142, 205, 22, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 190, 0, 210, 152, 211, 66, 68, 35, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 189, 200, 218, 149, 153, 150, 196, 35, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 190, 223, 222, 129, 170, 74, 177, 183, 204, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 210, 152, 211, 163, 67, 142, 205, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 200, 218, 149, 153, 38, 196, 142, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 155, 62, 212, 56, 163, 67, 93, 206, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 94, 127, 154, 72, 38, 196, 93, 206, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 155, 62, 212, 56, 164, 62, 213, 208, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 94, 127, 154, 72, 247, 191, 213, 208, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 64, 25, 112, 22, 38, 68, 90, 206, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 32, 108, 75, 163, 195, 90, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 64, 25, 112, 22, 247, 63, 211, 208, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 32, 108, 75, 164, 190, 211, 208, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 94, 127, 148, 51, 163, 67, 90, 206, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 101, 62, 144, 104, 38, 196, 90, 206, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 94, 127, 148, 51, 164, 62, 211, 208, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 101, 62, 144, 104, 247, 191, 211, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 37, 24, 112, 37, 8, 66, 202, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 219, 24, 74, 70, 69, 193, 202, 208, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 103, 41, 185, 58, 132, 210, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 83, 75, 87, 183, 132, 210, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 219, 24, 68, 56, 216, 65, 203, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 161, 31, 5, 72, 118, 193, 203, 208, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 51, 53, 246, 57, 133, 210, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 24, 74, 111, 184, 133, 210, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 65, 94, 111, 188, 0, 60, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 103, 85, 87, 183, 2, 176, 189, 241, 62, 188, 185, 154, 180, 63, 164, 38, 234, 60, 230, 55, 83, 75, 87, 183, 64, 64, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 83, 51, 185, 58, 2, 176, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 103, 41, 185, 58, 64, 64, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 65, 32, 246, 61, 0, 60, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 161, 31, 251, 54, 118, 65, 203, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 154, 89, 188, 70, 216, 193, 203, 208, 197, 168, 230, 188, 185, 154, 180, 63, 159, 21, 151, 48, 195, 65, 232, 52, 111, 56, 133, 210, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 205, 73, 246, 185, 133, 210, 32, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 62, 0, 42, 127, 63, 27, 50, 2, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 224, 38, 76, 73, 228, 193, 40, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 32, 38, 106, 38, 168, 66, 40, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 32, 38, 106, 38, 8, 66, 78, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 224, 38, 76, 73, 69, 193, 78, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 168, 162, 106, 218, 168, 66, 40, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 88, 162, 76, 183, 228, 193, 40, 208, 32, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 62, 84, 129, 127, 193, 27, 50, 2, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 168, 162, 106, 218, 8, 66, 78, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 88, 162, 76, 183, 69, 193, 78, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 37, 24, 113, 92, 118, 193, 200, 208, 238, 230, 174, 60, 185, 154, 180, 63, 164, 38, 234, 60, 26, 55, 106, 101, 111, 184, 130, 210, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 95, 31, 109, 2, 216, 65, 200, 208, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 104, 12, 246, 57, 130, 210, 24, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 190, 84, 127, 129, 63, 27, 178, 235, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 88, 94, 150, 88, 161, 197, 125, 200, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 168, 94, 180, 53, 64, 69, 125, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 168, 94, 180, 53, 182, 68, 133, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 88, 94, 150, 88, 23, 197, 133, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 32, 218, 180, 203, 64, 69, 125, 200, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 224, 218, 150, 168, 161, 197, 125, 200, 24, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 190, 0, 214, 129, 193, 27, 178, 235, 198, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 32, 218, 180, 203, 182, 68, 133, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 224, 218, 150, 168, 23, 197, 133, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 224, 38, 60, 53, 137, 69, 135, 200, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 62, 198, 34, 46, 63, 27, 46, 254, 198, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 224, 38, 60, 53, 255, 68, 142, 201, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 176, 46, 13, 74, 206, 196, 142, 201, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 176, 46, 13, 74, 88, 197, 135, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 88, 162, 60, 203, 255, 68, 142, 201, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 62, 92, 188, 46, 193, 27, 46, 254, 198, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 88, 162, 60, 203, 137, 69, 135, 200, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 80, 210, 13, 182, 206, 196, 142, 201, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 80, 210, 13, 182, 88, 197, 135, 200, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 154, 89, 182, 56, 69, 65, 202, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 102, 89, 144, 89, 8, 194, 202, 208, 190, 241, 62, 188, 185, 154, 180, 63, 162, 38, 234, 188, 185, 100, 173, 51, 87, 55, 132, 210, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 153, 85, 185, 186, 132, 210, 24, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 190, 84, 127, 129, 63, 27, 178, 2, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 88, 94, 150, 88, 168, 194, 40, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 168, 94, 180, 53, 228, 65, 40, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 168, 94, 180, 53, 69, 65, 78, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 88, 94, 150, 88, 8, 194, 78, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 32, 218, 180, 203, 228, 65, 40, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 224, 218, 150, 168, 168, 194, 40, 208, 24, 220, 158, 59, 74, 136, 130, 63, 6, 91, 27, 190, 0, 214, 129, 193, 27, 178, 2, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 32, 218, 180, 203, 69, 65, 78, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 224, 218, 150, 168, 8, 194, 78, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 224, 38, 60, 53, 119, 66, 43, 208, 214, 147, 1, 190, 74, 136, 130, 63, 7, 91, 155, 61, 198, 34, 46, 63, 27, 46, 5, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 224, 38, 60, 53, 216, 65, 81, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 176, 46, 13, 74, 118, 193, 81, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 176, 46, 13, 74, 21, 194, 43, 208, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 88, 162, 60, 203, 216, 65, 81, 208, 214, 147, 1, 190, 74, 136, 130, 63, 7, 91, 155, 61, 92, 188, 46, 193, 27, 46, 5, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 62, 88, 162, 60, 203, 119, 66, 43, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 80, 210, 13, 182, 118, 193, 81, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 80, 210, 13, 182, 21, 194, 43, 208, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 64, 25, 112, 108, 248, 195, 88, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 64, 25, 112, 108, 78, 191, 210, 208, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 101, 62, 144, 18, 248, 67, 88, 206, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 101, 62, 144, 18, 78, 63, 210, 208, 105, 11, 27, 61, 185, 154, 180, 63, 228, 43, 254, 46, 61, 65, 152, 114, 246, 185, 130, 210, 237, 230, 174, 60, 185, 154, 180, 63, 162, 38, 234, 188, 71, 100, 150, 25, 111, 56, 130, 210, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 95, 31, 147, 124, 216, 193, 200, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 102, 89, 143, 34, 118, 65, 200, 208, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 62, 33, 34, 127, 86, 74, 49, 183, 204, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 0, 46, 104, 81, 66, 196, 35, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 56, 38, 107, 23, 150, 68, 35, 205, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 56, 38, 107, 23, 38, 68, 142, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 46, 104, 81, 163, 195, 142, 205, 227, 67, 76, 62, 80, 204, 54, 63, 252, 33, 230, 61, 168, 186, 107, 233, 150, 68, 35, 205, 36, 220, 158, 59, 80, 204, 54, 63, 252, 33, 102, 62, 80, 129, 104, 175, 66, 196, 35, 205, 230, 250, 228, 61, 99, 20, 45, 63, 59, 180, 61, 62, 164, 163, 127, 170, 74, 49, 183, 204, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 168, 186, 107, 233, 38, 68, 142, 205, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 80, 129, 104, 175, 163, 195, 142, 205, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 176, 46, 243, 52, 21, 66, 43, 208, 215, 147, 1, 190, 74, 136, 130, 63, 6, 91, 155, 189, 164, 68, 210, 63, 27, 174, 5, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 176, 46, 243, 52, 118, 65, 81, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 168, 94, 196, 73, 216, 193, 81, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 168, 94, 196, 73, 119, 194, 43, 208, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 80, 210, 243, 204, 118, 65, 81, 208, 215, 147, 1, 190, 74, 136, 130, 63, 6, 91, 155, 189, 58, 222, 210, 193, 27, 174, 5, 208, 23, 64, 30, 190, 136, 250, 133, 63, 170, 248, 76, 49, 80, 210, 243, 204, 21, 66, 43, 208, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 32, 218, 196, 183, 216, 193, 81, 208, 54, 73, 153, 189, 136, 250, 133, 63, 29, 89, 13, 190, 32, 218, 196, 183, 119, 194, 43, 208, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 200, 38, 30, 53, 108, 68, 43, 205, 68, 22, 86, 190, 99, 20, 45, 63, 100, 116, 155, 49, 172, 42, 0, 63, 0, 0, 192, 204, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 200, 38, 30, 53, 248, 67, 150, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 168, 70, 226, 73, 248, 195, 150, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 168, 70, 226, 73, 108, 196, 43, 205, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 88, 186, 30, 203, 248, 67, 150, 205, 68, 22, 86, 190, 99, 20, 45, 63, 100, 116, 155, 49, 84, 214, 0, 193, 0, 0, 192, 204, 33, 86, 66, 190, 80, 204, 54, 63, 254, 33, 230, 61, 88, 186, 30, 203, 108, 68, 43, 205, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 56, 218, 226, 183, 248, 195, 150, 205, 34, 86, 66, 190, 80, 204, 54, 63, 252, 33, 230, 189, 56, 218, 226, 183, 108, 196, 43, 205, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 32, 38, 107, 96, 88, 197, 115, 200, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 32, 38, 107, 96, 206, 196, 123, 201, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 62, 58, 34, 127, 23, 27, 46, 215, 198, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 80, 46, 104, 6, 255, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 80, 46, 104, 6, 137, 69, 115, 200, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 62, 164, 188, 127, 233, 27, 46, 215, 198, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 168, 162, 107, 160, 206, 196, 123, 201, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 168, 162, 107, 160, 88, 197, 115, 200, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 176, 210, 104, 250, 255, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 176, 210, 104, 250, 137, 69, 115, 200, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 80, 46, 152, 120, 255, 196, 123, 201, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 88, 94, 149, 30, 206, 68, 123, 201, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 80, 46, 152, 120, 137, 197, 115, 200, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 190, 92, 68, 129, 103, 27, 174, 215, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 88, 94, 149, 30, 88, 69, 115, 200, 138, 3, 144, 62, 209, 218, 207, 62, 181, 154, 27, 177, 176, 210, 152, 136, 137, 197, 115, 200, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 224, 218, 149, 226, 206, 68, 123, 201, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 176, 210, 152, 136, 255, 196, 123, 201, 226, 76, 110, 62, 136, 242, 183, 62, 113, 183, 6, 190, 198, 222, 129, 153, 27, 174, 215, 198, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 190, 224, 218, 149, 226, 88, 69, 115, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 219, 25, 67, 56, 255, 68, 221, 202, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 162, 32, 6, 72, 206, 196, 221, 202, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 219, 25, 67, 56, 249, 65, 129, 206, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 162, 32, 6, 72, 152, 193, 129, 206, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 80, 46, 152, 120, 216, 193, 76, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 88, 94, 149, 30, 118, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 80, 46, 152, 120, 119, 194, 38, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 189, 92, 68, 130, 23, 27, 174, 0, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 88, 94, 149, 30, 21, 66, 38, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 176, 210, 152, 136, 119, 194, 38, 208, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 224, 218, 149, 226, 118, 65, 76, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 176, 210, 152, 136, 216, 193, 76, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 189, 198, 222, 130, 233, 27, 174, 0, 208, 185, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 190, 224, 218, 149, 226, 21, 66, 38, 208, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 176, 46, 243, 52, 88, 69, 135, 200, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 190, 164, 68, 210, 63, 27, 174, 254, 198, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 176, 46, 243, 52, 206, 68, 142, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 168, 94, 196, 73, 255, 196, 142, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 168, 94, 196, 73, 137, 197, 135, 200, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 80, 210, 243, 204, 206, 68, 142, 201, 33, 95, 100, 190, 136, 242, 183, 62, 113, 183, 6, 190, 58, 222, 210, 193, 27, 174, 254, 198, 169, 12, 139, 190, 209, 218, 207, 62, 249, 76, 205, 49, 80, 210, 243, 204, 88, 69, 135, 200, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 32, 218, 196, 183, 255, 196, 142, 201, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 190, 32, 218, 196, 183, 137, 197, 135, 200, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 32, 38, 107, 96, 21, 194, 38, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 32, 38, 107, 96, 118, 193, 76, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 61, 58, 34, 127, 23, 27, 46, 0, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 80, 46, 104, 6, 216, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 80, 46, 104, 6, 119, 66, 38, 208, 153, 129, 11, 62, 74, 136, 130, 63, 6, 91, 155, 61, 164, 188, 127, 153, 27, 46, 0, 208, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 168, 162, 107, 160, 118, 193, 76, 208, 186, 36, 173, 61, 136, 250, 133, 63, 29, 89, 13, 62, 168, 162, 107, 160, 21, 194, 38, 208, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 176, 210, 104, 250, 216, 65, 76, 208, 217, 45, 40, 62, 136, 250, 133, 63, 238, 248, 242, 176, 176, 210, 104, 250, 119, 66, 38, 208, 36, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 62, 0, 42, 127, 63, 27, 50, 235, 198, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 224, 38, 76, 73, 64, 197, 125, 200, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 32, 38, 106, 38, 161, 69, 125, 200, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 32, 38, 106, 38, 23, 69, 133, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 224, 38, 76, 73, 182, 196, 133, 201, 251, 126, 18, 62, 209, 218, 207, 62, 216, 35, 117, 62, 168, 162, 106, 218, 161, 69, 125, 200, 57, 145, 8, 190, 209, 218, 207, 62, 216, 35, 117, 62, 88, 162, 76, 183, 64, 197, 125, 200, 36, 220, 158, 59, 136, 242, 183, 62, 113, 183, 134, 62, 84, 129, 127, 193, 27, 50, 235, 198, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 168, 162, 106, 218, 23, 69, 133, 201, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 88, 162, 76, 183, 182, 196, 133, 201, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 37, 25, 112, 37, 23, 69, 215, 202, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 219, 25, 74, 70, 182, 196, 215, 202, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 37, 25, 112, 37, 42, 66, 126, 206, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 219, 25, 74, 70, 103, 193, 126, 206, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 162, 32, 250, 54, 206, 68, 221, 202, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 155, 89, 189, 70, 255, 196, 221, 202, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 162, 32, 250, 54, 152, 65, 129, 206, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 155, 89, 189, 70, 249, 193, 129, 206, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 94, 32, 148, 123, 249, 193, 123, 206, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 101, 89, 144, 33, 152, 65, 123, 206, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 94, 32, 148, 123, 255, 196, 209, 202, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 101, 89, 144, 33, 206, 68, 209, 202, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 37, 25, 112, 93, 206, 196, 209, 202, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 37, 25, 112, 93, 152, 193, 123, 206, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 94, 32, 108, 3, 255, 68, 209, 202, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 94, 32, 108, 3, 249, 65, 123, 206, 49, 12, 122, 190, 27, 195, 231, 62, 230, 69, 191, 49, 0, 129, 129, 63, 206, 72, 0, 60, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 62, 0, 129, 130, 63, 182, 68, 190, 72, 79, 21, 245, 189, 27, 195, 231, 62, 203, 216, 92, 190, 0, 129, 130, 63, 182, 68, 125, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 189, 0, 129, 130, 63, 74, 61, 40, 181, 105, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 190, 0, 129, 129, 63, 23, 197, 125, 199, 34, 145, 9, 189, 27, 195, 231, 62, 34, 145, 9, 61, 0, 129, 130, 63, 74, 61, 165, 64, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 189, 0, 129, 130, 63, 74, 189, 40, 181, 106, 120, 4, 62, 27, 195, 231, 62, 203, 216, 92, 62, 0, 129, 129, 63, 23, 197, 190, 72, 34, 145, 9, 61, 27, 195, 231, 62, 34, 145, 9, 61, 0, 129, 129, 63, 74, 189, 165, 64, 249, 252, 129, 62, 27, 195, 231, 62, 36, 25, 255, 176, 0, 129, 129, 63, 255, 200, 255, 59, 255, 149, 46, 190, 59, 132, 64, 63, 170, 83, 207, 61, 0, 129, 129, 63, 182, 70, 252, 68, 100, 126, 17, 190, 59, 132, 64, 63, 33, 253, 138, 49, 0, 129, 129, 63, 152, 69, 0, 60, 255, 149, 46, 190, 59, 132, 64, 63, 169, 83, 207, 189, 0, 129, 129, 63, 182, 70, 248, 193, 131, 135, 140, 189, 59, 132, 64, 63, 239, 76, 2, 62, 0, 129, 130, 63, 103, 65, 2, 70, 131, 135, 140, 189, 59, 132, 64, 63, 238, 76, 2, 190, 0, 129, 129, 63, 103, 65, 2, 196, 36, 220, 158, 59, 59, 132, 64, 63, 170, 83, 79, 62, 0, 129, 129, 63, 27, 178, 124, 72, 23, 220, 158, 59, 59, 132, 64, 63, 169, 83, 79, 190, 0, 129, 129, 63, 27, 178, 248, 198, 7, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 62, 0, 129, 129, 63, 42, 194, 2, 70, 6, 99, 160, 61, 59, 132, 64, 63, 239, 76, 2, 190, 0, 129, 129, 63, 42, 194, 2, 196, 192, 131, 56, 62, 59, 132, 64, 63, 169, 83, 207, 61, 0, 129, 129, 63, 24, 199, 252, 68, 192, 131, 56, 62, 59, 132, 64, 63, 170, 83, 207, 189, 0, 129, 129, 63, 24, 199, 248, 193, 38, 108, 27, 62, 59, 132, 64, 63, 69, 216, 183, 175, 0, 129, 130, 63, 249, 197, 0, 60, 111, 19, 14, 190, 197, 108, 137, 63, 169, 203, 60, 49, 0, 129, 129, 63, 118, 69, 0, 60, 120, 157, 154, 189, 197, 108, 137, 63, 181, 255, 61, 189, 0, 129, 130, 63, 241, 65, 156, 186, 143, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 189, 0, 129, 130, 63, 69, 65, 202, 195, 120, 157, 154, 189, 197, 108, 137, 63, 182, 255, 61, 61, 0, 129, 129, 63, 241, 65, 167, 65, 26, 220, 158, 59, 197, 108, 137, 63, 181, 255, 189, 189, 0, 129, 129, 63, 27, 178, 78, 193, 142, 28, 137, 189, 197, 108, 137, 63, 103, 174, 254, 61, 0, 129, 129, 63, 69, 65, 229, 69, 18, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 189, 0, 129, 129, 63, 8, 194, 202, 195, 32, 220, 158, 59, 197, 108, 137, 63, 182, 255, 189, 61, 0, 129, 129, 63, 27, 178, 167, 68, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 189, 0, 129, 129, 63, 181, 194, 156, 186, 19, 248, 156, 61, 197, 108, 137, 63, 103, 174, 254, 61, 0, 129, 129, 63, 8, 194, 229, 69, 49, 1, 24, 62, 197, 108, 137, 63, 235, 158, 210, 176, 0, 129, 129, 63, 216, 197, 255, 59, 251, 120, 174, 61, 197, 108, 137, 63, 181, 255, 61, 61, 0, 129, 130, 63, 181, 194, 167, 65 ), -"array_index_data": PoolByteArray( 38, 0, 36, 0, 37, 0, 37, 0, 39, 0, 38, 0, 42, 0, 40, 0, 41, 0, 41, 0, 43, 0, 42, 0, 41, 0, 44, 0, 43, 0, 47, 0, 45, 0, 46, 0, 48, 0, 46, 0, 45, 0, 49, 0, 46, 0, 48, 0, 52, 0, 50, 0, 51, 0, 51, 0, 53, 0, 52, 0, 56, 0, 54, 0, 55, 0, 55, 0, 57, 0, 56, 0, 55, 0, 58, 0, 57, 0, 61, 0, 59, 0, 60, 0, 62, 0, 60, 0, 59, 0, 63, 0, 60, 0, 62, 0, 66, 0, 64, 0, 65, 0, 65, 0, 67, 0, 66, 0, 70, 0, 68, 0, 69, 0, 69, 0, 71, 0, 70, 0, 71, 0, 72, 0, 70, 0, 75, 0, 73, 0, 74, 0, 76, 0, 74, 0, 73, 0, 77, 0, 76, 0, 73, 0, 80, 0, 78, 0, 79, 0, 79, 0, 81, 0, 80, 0, 79, 0, 82, 0, 81, 0, 85, 0, 83, 0, 84, 0, 86, 0, 84, 0, 83, 0, 87, 0, 84, 0, 86, 0, 90, 0, 88, 0, 89, 0, 89, 0, 91, 0, 90, 0, 94, 0, 92, 0, 93, 0, 93, 0, 95, 0, 94, 0, 98, 0, 96, 0, 97, 0, 97, 0, 99, 0, 98, 0, 102, 0, 100, 0, 101, 0, 101, 0, 103, 0, 102, 0, 106, 0, 104, 0, 105, 0, 105, 0, 107, 0, 106, 0, 110, 0, 108, 0, 109, 0, 109, 0, 111, 0, 110, 0, 111, 0, 112, 0, 110, 0, 111, 0, 113, 0, 112, 0, 116, 0, 114, 0, 115, 0, 115, 0, 117, 0, 116, 0, 120, 0, 118, 0, 119, 0, 119, 0, 121, 0, 120, 0, 119, 0, 122, 0, 121, 0, 125, 0, 123, 0, 124, 0, 126, 0, 124, 0, 123, 0, 127, 0, 124, 0, 126, 0, 130, 0, 128, 0, 129, 0, 129, 0, 131, 0, 130, 0, 134, 0, 132, 0, 133, 0, 133, 0, 135, 0, 134, 0, 133, 0, 136, 0, 135, 0, 139, 0, 137, 0, 138, 0, 140, 0, 138, 0, 137, 0, 141, 0, 138, 0, 140, 0, 144, 0, 142, 0, 143, 0, 143, 0, 145, 0, 144, 0, 143, 0, 146, 0, 145, 0, 149, 0, 147, 0, 148, 0, 150, 0, 148, 0, 147, 0, 151, 0, 148, 0, 150, 0, 154, 0, 152, 0, 153, 0, 153, 0, 155, 0, 154, 0, 158, 0, 156, 0, 157, 0, 157, 0, 159, 0, 158, 0, 157, 0, 160, 0, 159, 0, 163, 0, 161, 0, 162, 0, 164, 0, 162, 0, 161, 0, 165, 0, 162, 0, 164, 0, 168, 0, 166, 0, 167, 0, 167, 0, 169, 0, 168, 0, 167, 0, 170, 0, 169, 0, 173, 0, 171, 0, 172, 0, 174, 0, 172, 0, 171, 0, 175, 0, 172, 0, 174, 0, 178, 0, 176, 0, 177, 0, 177, 0, 179, 0, 178, 0, 182, 0, 180, 0, 181, 0, 181, 0, 183, 0, 182, 0, 186, 0, 184, 0, 185, 0, 185, 0, 187, 0, 186, 0, 185, 0, 188, 0, 187, 0, 191, 0, 189, 0, 190, 0, 192, 0, 190, 0, 189, 0, 193, 0, 190, 0, 192, 0, 196, 0, 194, 0, 195, 0, 195, 0, 197, 0, 196, 0, 195, 0, 198, 0, 197, 0, 201, 0, 199, 0, 200, 0, 202, 0, 200, 0, 199, 0, 203, 0, 200, 0, 202, 0, 206, 0, 204, 0, 205, 0, 205, 0, 207, 0, 206, 0, 205, 0, 208, 0, 207, 0, 211, 0, 209, 0, 210, 0, 212, 0, 210, 0, 209, 0, 213, 0, 210, 0, 212, 0, 216, 0, 214, 0, 215, 0, 215, 0, 217, 0, 216, 0, 217, 0, 218, 0, 216, 0, 221, 0, 219, 0, 220, 0, 222, 0, 220, 0, 219, 0, 223, 0, 222, 0, 219, 0, 226, 0, 224, 0, 225, 0, 225, 0, 227, 0, 226, 0, 225, 0, 228, 0, 227, 0, 231, 0, 229, 0, 230, 0, 232, 0, 230, 0, 229, 0, 233, 0, 230, 0, 232, 0, 236, 0, 234, 0, 235, 0, 235, 0, 237, 0, 236, 0, 240, 0, 238, 0, 239, 0, 239, 0, 241, 0, 240, 0, 239, 0, 242, 0, 241, 0, 245, 0, 243, 0, 244, 0, 246, 0, 244, 0, 243, 0, 247, 0, 244, 0, 246, 0, 250, 0, 248, 0, 249, 0, 249, 0, 251, 0, 250, 0, 249, 0, 252, 0, 251, 0, 255, 0, 253, 0, 254, 0, 0, 1, 254, 0, 253, 0, 1, 1, 254, 0, 0, 1, 4, 1, 2, 1, 3, 1, 3, 1, 5, 1, 4, 1, 5, 1, 6, 1, 4, 1, 9, 1, 7, 1, 8, 1, 10, 1, 8, 1, 7, 1, 11, 1, 10, 1, 7, 1, 14, 1, 12, 1, 13, 1, 13, 1, 15, 1, 14, 1, 13, 1, 16, 1, 15, 1, 19, 1, 17, 1, 18, 1, 20, 1, 18, 1, 17, 1, 21, 1, 18, 1, 20, 1, 24, 1, 22, 1, 23, 1, 23, 1, 25, 1, 24, 1, 28, 1, 26, 1, 27, 1, 27, 1, 29, 1, 28, 1, 32, 1, 30, 1, 31, 1, 31, 1, 33, 1, 32, 1, 36, 1, 34, 1, 35, 1, 35, 1, 37, 1, 36, 1, 40, 1, 38, 1, 39, 1, 39, 1, 41, 1, 40, 1, 41, 1, 42, 1, 40, 1, 43, 1, 41, 1, 39, 1, 41, 1, 44, 1, 42, 1, 39, 1, 45, 1, 43, 1, 44, 1, 46, 1, 42, 1, 45, 1, 46, 1, 43, 1, 45, 1, 42, 1, 46, 1, 45, 1, 47, 1, 42, 1, 50, 1, 48, 1, 49, 1, 51, 1, 49, 1, 48, 1, 49, 1, 52, 1, 50, 1, 48, 1, 53, 1, 51, 1, 52, 1, 54, 1, 50, 1, 53, 1, 55, 1, 51, 1, 52, 1, 56, 1, 54, 1, 53, 1, 57, 1, 55, 1, 56, 1, 58, 1, 54, 1, 57, 1, 59, 1, 55, 1, 56, 1, 59, 1, 58, 1, 57, 1, 58, 1, 59, 1, 62, 1, 60, 1, 61, 1, 63, 1, 61, 1, 60, 1, 61, 1, 64, 1, 62, 1, 60, 1, 65, 1, 63, 1, 64, 1, 66, 1, 62, 1, 65, 1, 67, 1, 63, 1, 64, 1, 68, 1, 66, 1, 65, 1, 69, 1, 67, 1, 68, 1, 70, 1, 66, 1, 69, 1, 71, 1, 67, 1, 68, 1, 71, 1, 70, 1, 69, 1, 70, 1, 71, 1 ), -"blend_shape_data": [ ], -"format": 2194711, -"index_count": 546, -"material": ExtResource( 1 ), -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 328 -} - -[sub_resource type="CapsuleShape" id=2] -radius = 0.329139 -height = 0.936801 +[ext_resource path="res://assets/KenneySurvivalKit/Models/tree.glb" type="PackedScene" id=4] [sub_resource type="CubeMesh" id=3] @@ -106,17 +75,17 @@ tracks/1/keys = { "times": PoolRealArray( 0, 0.05, 0.15, 0.3, 0.4, 0.5, 0.6 ) } +[sub_resource type="CapsuleShape" id=9] +radius = 0.33 +height = 0.922 + +[sub_resource type="CapsuleMesh" id=8] +radius = 0.33 +mid_height = 0.925 + [node name="Tree" type="StaticBody"] script = ExtResource( 3 ) -[node name="Geometry" type="MeshInstance" parent="."] -transform = Transform( 1.5, 0, 0, 0, 0.984723, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) -mesh = SubResource( 1 ) - -[node name="CollisionShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.519998, 0 ) -shape = SubResource( 2 ) - [node name="MountPoint" type="Spatial" parent="."] transform = Transform( -0.524001, 0, -0.851718, 0, 1, 0, 0.851718, 0, -0.524001, 0.717306, 0, 0.400936 ) @@ -137,3 +106,18 @@ skeleton = NodePath("../..") anims/Idle = SubResource( 7 ) anims/RESET = SubResource( 6 ) anims/TreeShake = SubResource( 5 ) + +[node name="Geometry" parent="." groups=["GameGeometry"] instance=ExtResource( 4 )] +transform = Transform( 1.5, 0, 0, 0, 0.984723, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) +visible = false + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) +shape = SubResource( 9 ) + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +mesh = SubResource( 8 ) +skeleton = NodePath("") +material/0 = ExtResource( 1 ) + +[editable path="Geometry"] diff --git a/entities/rockA.tscn b/entities/rockA.tscn index 096411e..d71e2d7 100644 --- a/entities/rockA.tscn +++ b/entities/rockA.tscn @@ -1,20 +1,27 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://assets/KenneySurvivalKit/Models/rockA.glb" type="PackedScene" id=1] +[ext_resource path="res://materials/debug/RockPhysicsGeometry.tres" type="Material" id=2] [sub_resource type="CylinderShape" id=1] -height = 0.736755 +height = 0.7 radius = 0.4 -[node name="rockA" instance=ExtResource( 1 )] +[sub_resource type="CylinderMesh" id=2] +top_radius = 0.4 +bottom_radius = 0.4 +height = 0.7 -[node name="rockA" parent="." index="0"] -transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 ) +[node name="rockA" type="StaticBody"] -[node name="StaticBody" type="StaticBody" parent="." index="1"] -collision_mask = 0 -input_ray_pickable = false - -[node name="CollisionShape" type="CollisionShape" parent="StaticBody" index="0"] +[node name="CollisionShape" type="CollisionShape" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.373712, 0 ) shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +visible = false +mesh = SubResource( 2 ) +material/0 = ExtResource( 2 ) + +[node name="rockA2" parent="." groups=["GameGeometry"] instance=ExtResource( 1 )] +transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 ) diff --git a/entities/rockB.tscn b/entities/rockB.tscn index 43f4cbf..9c98122 100644 --- a/entities/rockB.tscn +++ b/entities/rockB.tscn @@ -1,19 +1,27 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://assets/KenneySurvivalKit/Models/rockB.glb" type="PackedScene" id=1] +[ext_resource path="res://materials/debug/RockPhysicsGeometry.tres" type="Material" id=2] -[sub_resource type="CylinderShape" id=1] -height = 0.679261 +[sub_resource type="CylinderShape" id=3] +height = 0.7 radius = 0.4 -[node name="rockB" instance=ExtResource( 1 )] +[sub_resource type="CylinderMesh" id=2] +top_radius = 0.4 +bottom_radius = 0.4 +height = 0.7 -[node name="rockB" parent="." index="0"] -transform = Transform( 1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.6, 0, 0, 0 ) +[node name="rockB" type="StaticBody"] -[node name="StaticBody" type="StaticBody" parent="." index="1"] -input_ray_pickable = false - -[node name="CollisionShape" type="CollisionShape" parent="StaticBody" index="0"] +[node name="CollisionShape" type="CollisionShape" parent="."] transform = Transform( 1, 0, 0, 0, 0.999997, -0.00240855, 0, 0.00240855, 0.999997, 0, 0.376176, 0 ) -shape = SubResource( 1 ) +shape = SubResource( 3 ) + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +visible = false +mesh = SubResource( 2 ) +material/0 = ExtResource( 2 ) + +[node name="Geometry" parent="." groups=["GameGeometry"] instance=ExtResource( 1 )] +transform = Transform( 1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.6, 0, 0, 0 ) diff --git a/entities/rockC.tscn b/entities/rockC.tscn index 0f83959..b3814ed 100644 --- a/entities/rockC.tscn +++ b/entities/rockC.tscn @@ -1,19 +1,31 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://assets/KenneySurvivalKit/Models/rockC.glb" type="PackedScene" id=1] +[ext_resource path="res://materials/debug/RockPhysicsGeometry.tres" type="Material" id=2] [sub_resource type="CylinderShape" id=1] -height = 1.38848 +height = 0.8 radius = 0.4 -[node name="rockC" instance=ExtResource( 1 )] +[sub_resource type="CylinderMesh" id=3] +material = ExtResource( 2 ) +top_radius = 0.4 +bottom_radius = 0.4 +height = 0.8 -[node name="rockC" parent="." index="0"] +[node name="rockC" type="StaticBody"] + +[node name="Geometry" parent="." groups=["GameGeometry"] instance=ExtResource( 1 )] transform = Transform( 1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, 0, 0, 0 ) -[node name="StaticBody" type="StaticBody" parent="." index="1"] -input_ray_pickable = false - -[node name="CollisionShape" type="CollisionShape" parent="StaticBody" index="0"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.746043, 0 ) +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0 ) shape = SubResource( 1 ) +__meta__ = { +"_editor_description_": "Rock World Collision Shape +" +} + +[node name="MeshInstance" type="MeshInstance" parent="CollisionShape" groups=["PhysicsGeometry"]] +visible = false +mesh = SubResource( 3 ) diff --git a/materials/debug/PlayerPhysicsGeometry.tres b/materials/debug/PlayerPhysicsGeometry.tres new file mode 100644 index 0000000..efbd0f8 --- /dev/null +++ b/materials/debug/PlayerPhysicsGeometry.tres @@ -0,0 +1,5 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +flags_transparent = true +albedo_color = Color( 0.733333, 0.113725, 0.113725, 0.501961 ) diff --git a/materials/debug/RockPhysicsGeometry.tres b/materials/debug/RockPhysicsGeometry.tres new file mode 100644 index 0000000..2294b6b --- /dev/null +++ b/materials/debug/RockPhysicsGeometry.tres @@ -0,0 +1,5 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +flags_transparent = true +albedo_color = Color( 0.584314, 0.580392, 0.482353, 0.501961 ) diff --git a/materials/debug/TreePhysicsGeometry.tres b/materials/debug/TreePhysicsGeometry.tres new file mode 100644 index 0000000..2ea203f --- /dev/null +++ b/materials/debug/TreePhysicsGeometry.tres @@ -0,0 +1,5 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +flags_transparent = true +albedo_color = Color( 0.294118, 0.588235, 0.309804, 0.501961 ) diff --git a/scenes/Game.tscn b/scenes/Game.tscn index 15f6bcb..daef21f 100644 --- a/scenes/Game.tscn +++ b/scenes/Game.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://scenes/StreamContainer.tscn" type="PackedScene" id=1] [ext_resource path="res://entities/Player.tscn" type="PackedScene" id=2] [ext_resource path="res://scenes/Camera.tscn" type="PackedScene" id=3] +[ext_resource path="res://ui/EditorUI.tscn" type="PackedScene" id=4] [ext_resource path="res://utils/TileHighlight.tscn" type="PackedScene" id=5] [ext_resource path="res://entities/Chest.tscn" type="PackedScene" id=7] [ext_resource path="res://scenes/TileWorld.tscn" type="PackedScene" id=8] @@ -273,6 +274,9 @@ rect_min_size = Vector2( 100, 100 ) stretch_mode = 1 flip_v = true +[node name="EditorUI" parent="." instance=ExtResource( 4 )] +visible = false + [node name="StreamContainer" parent="." instance=ExtResource( 1 )] ShowHexTiles = true diff --git a/scenes/HexTile3D.tscn b/scenes/HexTile3D.tscn index 18ffe19..00331d6 100644 --- a/scenes/HexTile3D.tscn +++ b/scenes/HexTile3D.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://scenes/HexTile3D.cs" type="Script" id=1] [ext_resource path="res://materials/HexTileTextureLookup.tres" type="Material" id=2] @@ -8,11 +8,21 @@ height = 1.0 radius = 0.5 +[sub_resource type="CylinderMesh" id=6] +top_radius = 0.5 +bottom_radius = 0.5 +height = 1.0 +radial_segments = 16 + +[sub_resource type="SpatialMaterial" id=7] +flags_transparent = true +albedo_color = Color( 0.968627, 0.882353, 0.529412, 0.501961 ) + [node name="HexTile3D" type="Spatial"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0096302, 0, 0 ) script = ExtResource( 1 ) -[node name="Mesh" type="MeshInstance" parent="."] +[node name="Mesh" type="MeshInstance" parent="." groups=["GameGeometry"]] transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, -5, 0 ) mesh = ExtResource( 3 ) material/0 = ExtResource( 2 ) @@ -23,6 +33,11 @@ material/0 = ExtResource( 2 ) transform = Transform( -4.37114e-08, 0, 1, 0, 10, 0, -1, 0, -4.37114e-08, 0, -5, 0 ) shape = SubResource( 5 ) +[node name="MeshInstance" type="MeshInstance" parent="StaticBody/CollisionShape" groups=["PhysicsGeometry"]] +visible = false +mesh = SubResource( 6 ) +material/0 = SubResource( 7 ) + [node name="MultiMeshInstance" type="MultiMeshInstance" parent="."] transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, -5, 0 ) visible = false diff --git a/scenes/tests/EditorUI.cs b/scenes/tests/EditorUI.cs index cee3067..2db282b 100644 --- a/scenes/tests/EditorUI.cs +++ b/scenes/tests/EditorUI.cs @@ -1,5 +1,6 @@ using Godot; using System; +using Array = Godot.Collections.Array; public class EditorUI : Control { @@ -16,6 +17,9 @@ public class EditorUI : Control private Button _sandButton; private Button _waterButton; + private CheckBox _gameGeometryCheckBox; + private CheckBox _physicsGeometryCheckBox; + private TileWorld _tileWorld; private StreamContainer _streamContainer; @@ -46,6 +50,12 @@ public class EditorUI : Control _waterButton = (Button) FindNode("WaterButton"); _waterButton.Connect("pressed", this, nameof(OnWaterButton)); + + _gameGeometryCheckBox = (CheckBox)FindNode("GameGeometryCheckBox"); + _gameGeometryCheckBox.Connect("toggled", this, nameof(OnGameGeometryCheckBoxToggled)); + + _physicsGeometryCheckBox = (CheckBox)FindNode("PhysicsGeometryCheckBox"); + _physicsGeometryCheckBox.Connect("toggled", this, nameof(OnPhysicsGeometryCheckBoxToggled)); } @@ -72,6 +82,31 @@ public class EditorUI : Control _currentTileType = TileType.Water; } + public void OnGameGeometryCheckBoxToggled(bool pressed) + { + Array gameGeometries = GetTree().GetNodesInGroup("GameGeometry"); + foreach (Spatial mesh in gameGeometries) + { + if (mesh != null) + { + mesh.Visible = pressed; + } + } + } + + + public void OnPhysicsGeometryCheckBoxToggled(bool pressed) + { + Array physicsGeometries = GetTree().GetNodesInGroup("PhysicsGeometry"); + foreach (Spatial mesh in physicsGeometries) + { + if (mesh != null) + { + mesh.Visible = pressed; + } + } + } + public void OnTileClicked(Vector2 offsetCoord) { switch (_currentTileType) diff --git a/scenes/tests/NavigationTests.tscn b/scenes/tests/NavigationTests.tscn index 395b2d3..4f1bff7 100644 --- a/scenes/tests/NavigationTests.tscn +++ b/scenes/tests/NavigationTests.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=16 format=2] [ext_resource path="res://entities/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://scenes/TileWorld.tscn" type="PackedScene" id=2] @@ -6,13 +6,13 @@ [ext_resource path="res://scenes/tests/NavigationTests.cs" type="Script" id=4] [ext_resource path="res://scenes/StreamContainer.tscn" type="PackedScene" id=5] [ext_resource path="res://scenes/Camera.tscn" type="PackedScene" id=6] -[ext_resource path="res://scenes/tests/EditorUI.cs" type="Script" id=7] +[ext_resource path="res://ui/EditorUI.tscn" type="PackedScene" id=7] [ext_resource path="res://entities/Tree.tscn" type="PackedScene" id=8] [ext_resource path="res://scenes/HexTile3DPatch.tscn" type="PackedScene" id=9] +[ext_resource path="res://entities/rockB.tscn" type="PackedScene" id=10] +[ext_resource path="res://entities/Chest.tscn" type="PackedScene" id=11] -[sub_resource type="ButtonGroup" id=4] -resource_local_to_scene = false -resource_name = "TileTypeButtonGroup" +[sub_resource type="AnimationNodeStateMachinePlayback" id=8] [sub_resource type="Animation" id=5] resource_name = "Idle" @@ -84,60 +84,18 @@ tracks/1/keys = { [node name="NavigationTests" type="Spatial"] script = ExtResource( 4 ) -[node name="EditorUI" type="Control" parent="."] -margin_right = 40.0 -margin_bottom = 40.0 -script = ExtResource( 7 ) -World = NodePath("../TileWorld") -StreamContainer = NodePath("../StreamContainer") - -[node name="HBoxContainer" type="HBoxContainer" parent="EditorUI"] -margin_left = 5.0 -margin_top = 5.0 -margin_right = 40.0 -margin_bottom = 40.0 - -[node name="ResetButton" type="Button" parent="EditorUI/HBoxContainer"] -margin_right = 48.0 -margin_bottom = 35.0 -text = "Reset" - -[node name="ModeLabel" type="Label" parent="EditorUI/HBoxContainer"] -margin_left = 52.0 -margin_top = 10.0 -margin_right = 88.0 -margin_bottom = 24.0 -text = "Mode" - -[node name="GrassButton" type="Button" parent="EditorUI/HBoxContainer"] -margin_left = 92.0 -margin_right = 140.0 -margin_bottom = 35.0 -toggle_mode = true -group = SubResource( 4 ) -text = "Grass" - -[node name="WaterButton" type="Button" parent="EditorUI/HBoxContainer"] -margin_left = 144.0 -margin_right = 194.0 -margin_bottom = 35.0 -toggle_mode = true -group = SubResource( 4 ) -text = "Water" - -[node name="SandButton" type="Button" parent="EditorUI/HBoxContainer"] -margin_left = 198.0 -margin_right = 240.0 -margin_bottom = 35.0 -toggle_mode = true -group = SubResource( 4 ) -text = "Sand" +[node name="EditorUI" parent="." instance=ExtResource( 7 )] [node name="Player" parent="." instance=ExtResource( 1 )] -collision_layer = 1 collision_mask = 1 TileWorldNode = NodePath("../TileWorld") +[node name="Skeleton" parent="Player/Geometry/Armature" index="0"] +bones/4/bound_children = [ ] + +[node name="AnimationTree" parent="Player/Geometry" index="2"] +parameters/playback = SubResource( 8 ) + [node name="TileWorld" parent="." instance=ExtResource( 2 )] GenerationMapType = 2 Size = 20 @@ -157,25 +115,36 @@ transform = Transform( 1, 0, 0, 0, 0.60042, 0.799685, 0, -0.799685, 0.60042, -4. [node name="Tree" parent="." instance=ExtResource( 8 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.54934, 0.00752521, 2.60764 ) -[node name="Geometry" parent="Tree" index="0"] +[node name="Geometry" parent="Tree" index="3"] transform = Transform( 1.5, 0, 0, 0, 0.984722, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) [node name="Tree2" parent="." instance=ExtResource( 8 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.73489, 0, 0.451849 ) -[node name="Geometry" parent="Tree2" index="0"] -transform = Transform( 1.5, 0, 0, 0, 0.984722, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) - -[node name="AnimationPlayer" parent="Tree2" index="3"] +[node name="AnimationPlayer" parent="Tree2" index="2"] anims/Idle = SubResource( 5 ) anims/RESET = SubResource( 6 ) anims/TreeShake = SubResource( 7 ) -[node name="Spatial" parent="." instance=ExtResource( 9 )] +[node name="Geometry" parent="Tree2" index="3"] +transform = Transform( 1.5, 0, 0, 0, 0.984722, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) + +[node name="TilePatch" parent="." instance=ExtResource( 9 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.14454, 0 ) +[node name="rockB" parent="." instance=ExtResource( 10 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.30333, 0, 1.2323 ) + +[node name="Chest" parent="." instance=ExtResource( 11 )] +transform = Transform( 0.163154, 0, -0.986601, 0, 1, 0, 0.986601, 0, 0.163154, 3.7186, 0, -1.91323 ) + [editable path="Player"] +[editable path="Player/Geometry"] [editable path="TileWorld"] [editable path="StreamContainer"] [editable path="Tree"] +[editable path="Tree/Geometry"] [editable path="Tree2"] +[editable path="Tree2/Geometry"] +[editable path="rockB"] +[editable path="Chest"] diff --git a/ui/EditorUI.tscn b/ui/EditorUI.tscn new file mode 100644 index 0000000..ae27c19 --- /dev/null +++ b/ui/EditorUI.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://scenes/tests/EditorUI.cs" type="Script" id=1] + +[sub_resource type="ButtonGroup" id=4] +resource_local_to_scene = false +resource_name = "TileTypeButtonGroup" + +[node name="EditorUI" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +script = ExtResource( 1 ) +World = NodePath("../TileWorld") +StreamContainer = NodePath("../StreamContainer") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +margin_left = 10.0 +margin_top = 10.0 +margin_right = 240.0 +margin_bottom = 35.0 + +[node name="ResetButton" type="Button" parent="HBoxContainer"] +margin_right = 48.0 +margin_bottom = 25.0 +text = "Reset" + +[node name="ModeLabel" type="Label" parent="HBoxContainer"] +margin_left = 52.0 +margin_top = 5.0 +margin_right = 88.0 +margin_bottom = 19.0 +text = "Mode" + +[node name="GrassButton" type="Button" parent="HBoxContainer"] +margin_left = 92.0 +margin_right = 140.0 +margin_bottom = 25.0 +toggle_mode = true +group = SubResource( 4 ) +text = "Grass" + +[node name="WaterButton" type="Button" parent="HBoxContainer"] +margin_left = 144.0 +margin_right = 194.0 +margin_bottom = 25.0 +toggle_mode = true +group = SubResource( 4 ) +text = "Water" + +[node name="SandButton" type="Button" parent="HBoxContainer"] +margin_left = 198.0 +margin_right = 240.0 +margin_bottom = 25.0 +toggle_mode = true +group = SubResource( 4 ) +text = "Sand" + +[node name="ViewFlagsContainer" type="HBoxContainer" parent="."] +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_top = -40.0 +margin_right = 146.0 + +[node name="Label" type="Label" parent="ViewFlagsContainer"] +margin_top = 13.0 +margin_right = 30.0 +margin_bottom = 27.0 +text = "View" + +[node name="GameGeometryCheckBox" type="CheckBox" parent="ViewFlagsContainer"] +margin_left = 34.0 +margin_right = 100.0 +margin_bottom = 40.0 +text = "Game" + +[node name="PhysicsGeometryCheckBox" type="CheckBox" parent="ViewFlagsContainer"] +margin_left = 104.0 +margin_right = 180.0 +margin_bottom = 40.0 +text = "Physics"