diff --git a/Game/Classes/Player.gd b/Game/Classes/Player.gd new file mode 100644 index 0000000..799bf4a --- /dev/null +++ b/Game/Classes/Player.gd @@ -0,0 +1,94 @@ +extends KinematicBody3D + +@export var mouse_sensitivity := 0.35 +@export var move_speed := 15 + +@onready var head = $Head +@onready var ground_check = $GroundCheck + + +var move_direction := Vector3.ZERO +var accel_h := 12 +var accel_air := 1 +var accel_ground := 12 +var gravity := 28 +var jump := 14 + +var vel_h := Vector3.ZERO +var movement := Vector3.ZERO +var gravity_vec := Vector3.ZERO +var ground_contact := false +var slide := Vector3.ZERO + +func _ready() -> void: + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + +func aim(event) -> void: + var mouse_motion = event as InputEventMouseMotion + + if mouse_motion: + rotation_degrees.y -= mouse_motion.relative.x * mouse_sensitivity + + var current_tilt: float = head.rotation_degrees.x + current_tilt -= mouse_motion.relative.y * mouse_sensitivity + head.rotation_degrees.x = clamp(current_tilt, -90, 90) + +func _input(event) -> void: + + if Input.is_action_just_pressed("ui_cancel"): + if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + else: + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + aim(event) + +func _physics_process(delta): + move_direction = Vector3.ZERO + + if ground_check.is_colliding(): + ground_contact = true + else: + ground_contact = false + + if not is_on_floor(): + gravity_vec += Vector3.DOWN * gravity * delta + accel_h = accel_air + print("AIR") + elif is_on_floor() and ground_contact: + accel_h = accel_ground + print("FLOOR") + gravity_vec = -get_floor_normal() * gravity + else: + print("OTHER") + accel_h = accel_ground + #gravity_vec = -get_floor_normal() + gravity_vec = Vector3.DOWN * gravity * delta + + if Input.is_action_just_pressed("move_jump") and (is_on_floor() or ground_contact): + gravity_vec = Vector3.UP * jump + + if Input.is_action_pressed("move_forward"): + move_direction -= transform.basis.z + if Input.is_action_pressed("move_backward"): + move_direction += transform.basis.z + if Input.is_action_pressed("move_left"): + move_direction -= transform.basis.x + if Input.is_action_pressed("move_right"): + move_direction += transform.basis.x + + if move_direction.length() > 0: # normalized() will return a null + move_direction = move_direction.normalized() + + vel_h = vel_h.lerp(move_direction * move_speed, accel_h * delta) + + movement.z = vel_h.z + gravity_vec.z + movement.x = vel_h.x + gravity_vec.x + movement.y = gravity_vec.y + + slide = move_and_slide(movement, Vector3.UP, ) + + if not is_on_floor(): + vel_h.x = slide.x + vel_h.z = slide.z + gravity_vec.y = slide.y diff --git a/Game/Classes/Player.tscn b/Game/Classes/Player.tscn new file mode 100644 index 0000000..bddfe75 --- /dev/null +++ b/Game/Classes/Player.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Classes/Player.gd" type="Script" id=1] + +[sub_resource type="CapsuleMesh" id=1] +radius = 0.5 +mid_height = 1.3 + +[sub_resource type="CapsuleShape3D" id=2] +radius = 0.5 +height = 1.3 + +[sub_resource type="CylinderShape3D" id=3] +radius = 0.25 +height = 0.5 + +[node name="Player" type="KinematicBody3D"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +script = ExtResource( 1 ) + +[node name="Mesh" type="MeshInstance3D" parent="."] +mesh = SubResource( 1 ) +surface_material_override/0 = null +script = null + +[node name="Head" type="Node3D" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) +script = null + +[node name="Camera3D" type="Camera3D" parent="Head"] +transform = Transform( 1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0 ) +current = true +fov = 90.0 +script = null + +[node name="Body" type="CollisionShape3D" parent="."] +shape = SubResource( 2 ) +script = null + +[node name="Feet" type="CollisionShape3D" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0 ) +shape = SubResource( 3 ) +script = null + +[node name="GroundCheck" type="RayCast3D" parent="."] +target_position = Vector3( 0, -1.5, 0 ) +script = null diff --git a/Game/Main.tscn b/Game/Main.tscn index b2b9277..38d7743 100644 --- a/Game/Main.tscn +++ b/Game/Main.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=8 format=2] -[ext_resource path="res://Player.gd" type="Script" id=1] -[ext_resource path="res://Assets/Shaders/Base.tres" type="Material" id=2] +[ext_resource path="res://Classes/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://Assets/Maps/DM1/DM1.glb" type="PackedScene" id=3] [sub_resource type="PhysicalSkyMaterial" id=1] @@ -19,7 +18,6 @@ ssao_radius = 8.0 ssao_intensity = 1.0 sdfgi_read_sky_light = true sdfgi_bounce_feedback = 0.9 -glow_enabled = true glow_levels/3 = 0.6 glow_levels/4 = 0.47 glow_levels/5 = 0.17 @@ -34,15 +32,10 @@ volumetric_fog_gi_inject = 0.1 [sub_resource type="CameraEffects" id=4] -[sub_resource type="CapsuleShape3D" id=5] -radius = 0.5 -height = 1.3 +[sub_resource type="ConcavePolygonShape3D" id=5] +data = PackedVector3Array( -6, 4, -10, -13, 4, -6, -9, 4, -13, -6, 4, -10, -10, 4, -6, -13, 4, -6, 6, 0, 3, 10, 0, 6, 6, 0, 10, 6, 0, 3, 10, 0, 3, 10, 0, 6, 10, 4, -6, 9, 4, -13, 13, 4, -6, 10, 4, -6, 6, 4, -10, 9, 4, -13, -10, 4, 6, -9, 4, 13, -13, 4, 6, -10, 4, 6, -6, 4, 10, -9, 4, 13, 6, 4, 10, 13, 4, 6, 9, 4, 13, 6, 4, 10, 10, 4, 6, 13, 4, 6, -10, 2, 3, -13, 4, 6, -13, 2, 3, -10, 2, 3, -10, 4, 6, -13, 4, 6, -2, 8, -10, -9, 4, -13, -2, 8, -13, -2, 8, -10, -6, 5.7, -10, -9, 4, -13, 2, 8, 10, 9, 8, 13, 2, 8, 13, 2, 8, 10, 6, 8, 10, 9, 8, 13, 2, 0, -3, 6, 0, -10, 6, 0, -3, 2, 0, -3, 2, 0, -10, 6, 0, -10, -10, 0, -3, -6, 0, -10, -6, 0, -3, -10, 0, -3, -10, 0, -6, -6, 0, -10, -6, 0, -3, -2, 0, -10, -2, 0, -3, -6, 0, -3, -6, 0, -10, -2, 0, -10, -2, 0, -3, 2, 0, -10, 2, 0, -3, -2, 0, -3, -2, 0, -10, 2, 0, -10, -6, 5.714, 10, -2, 8, 13, -9, 4, 13, -6, 5.714, 10, -2, 8, 10, -2, 8, 13, 0, 8, 10, 2, 8, 13, 0, 8, 13, 0, 8, 10, 2, 8, 10, 2, 8, 13, -2, 7, 9, 2, 6, 10, 2, 7, 9, -2, 7, 9, -2, 6, 10, 2, 6, 10, -2, 0, 10, 2, 0, 3, 2, 0, 10, -2, 0, 10, -2, 0, 3, 2, 0, 3, -2, 0, 3, 2, 0, -3, 2, 0, 3, -2, 0, 3, -2, 0, -3, 2, 0, -3, -6, 0, 10, -2, 0, 3, -2, 0, 10, -6, 0, 10, -6, 0, 3, -2, 0, 3, -6, 0, 3, -2, 0, -3, -2, 0, 3, -6, 0, 3, -6, 0, -3, -2, 0, -3, -10, 0, 6, -6, 0, 3, -6, 0, 10, -10, 0, 6, -10, 0, 3, -6, 0, 3, 2, 0, 10, 6, 0, 3, 6, 0, 10, 2, 0, 10, 2, 0, 3, 6, 0, 3, 2, 0, 3, 6, 0, -3, 6, 0, 3, 2, 0, 3, 2, 0, -3, 6, 0, -3, -10, 4, -6, -13, 2, -3, -13, 4, -6, -10, 4, -6, -10, 2, -3, -13, 2, -3, -10, 2, -3, -13, 2, 3, -13, 2, -3, -10, 2, -3, -10, 2, 3, -13, 2, 3, 10, 3, 2, 18, 3, -2, 10, 3, -2, 10, 3, 2, 18, 3, 2, 18, 3, -2, 6, 0, -10, 10, 0, -3, 6, 0, -3, 6, 0, -10, 10, 0, -6, 10, 0, -3, 6, 0, -3, 10, 0, 3, 6, 0, 3, 6, 0, -3, 10, 0, -3, 10, 0, 3, 10, 0, -3, 18, 0, 3, 10, 0, 3, 10, 0, -3, 18, 0, -3, 18, 0, 3, -10, 2, 3, -6, 0, -3, -6, 0, 3, -10, 2, 3, -10, 2, -3, -6, 0, -3, 18, 0, -3, 22, 0, 3, 18, 0, 3, 18, 0, -3, 22, 0, -3, 22, 0, 3, 22, 0, -3, 28, 2, 3, 22, 0, 3, 22, 0, -3, 28, 2, -3, 28, 2, 3, 28, 2, 3, 22, 0, 6, 22, 0, 3, 28, 2, 3, 28, 2, 6, 22, 0, 6, 22, 0, 3, 18, 0, 6, 18, 0, 3, 22, 0, 3, 22, 0, 6, 18, 0, 6, 22, 0, -3, 28, 2, -6, 28, 2, -3, 22, 0, -3, 22, 0, -6, 28, 2, -6, 18, 0, -3, 22, 0, -6, 22, 0, -3, 18, 0, -3, 18, 0, -6, 22, 0, -6, 18, 4, 6, 9, 4, 13, 13, 4, 6, 18, 4, 6, 18, 4, 13, 9, 4, 13, 13, 4, -6, 18, 4, -13, 18, 4, -6, 13, 4, -6, 9, 4, -13, 18, 4, -13, 28, 2, -6, 33, 2, -3, 28, 2, -3, 28, 2, -6, 33, 2, -6, 33, 2, -3, 28, 2, 3, 33, 2, 6, 28, 2, 6, 28, 2, 3, 33, 2, 3, 33, 2, 6, 28, 2, -3, 33, 2, 3, 28, 2, 3, 28, 2, -3, 33, 2, -3, 33, 2, 3, 22, 4, 6, 18, 4, 13, 18, 4, 6, 22, 4, 6, 22, 4, 13, 18, 4, 13, 28, 2, 6, 22, 4, 13, 22, 4, 6, 28, 2, 6, 28, 2, 13, 22, 4, 13, 18, 4, -6, 22, 4, -13, 22, 4, -6, 18, 4, -6, 18, 4, -13, 22, 4, -13, 22, 4, -6, 28, 2, -13, 28, 2, -6, 22, 4, -6, 22, 4, -13, 28, 2, -13, 28, 2, 6, 33, 2, 13, 28, 2, 13, 28, 2, 6, 33, 2, 6, 33, 2, 13, 28, 2, -13, 33, 2, -6, 28, 2, -6, 28, 2, -13, 33, 2, -13, 33, 2, -6, -2, 8, 18, -9, 4, 13, -2, 8, 13, -2, 8, 18, -9, 4, 18, -9, 4, 13, -2, 8, -15.5, -9, 4, -18, -2, 8, -18, -2, 8, -15.5, -9, 4, -15.5, -9, 4, -18, 6, 8, 18, 2, 8, 13, 9, 8, 13, 6, 8, 18, 2, 8, 18, 2, 8, 13, 0, 8, 18, -2, 8, 13, 0, 8, 13, 0, 8, 18, -2, 8, 18, -2, 8, 13, -9, 4, 13, -19, 4, 6, -13, 4, 6, -9, 4, 13, -15, 4, 13, -19, 4, 6, -13, 2, 3, -19, 2, -3, -13, 2, -3, -13, 2, 3, -19, 2, 3, -19, 2, -3, -13, 4, 6, -19, 2, 3, -13, 2, 3, -13, 4, 6, -19, 4, 6, -19, 2, 3, -13, 4, -6, -15, 4, -13, -9, 4, -13, -13, 4, -6, -19, 4, -6, -15, 4, -13, -13, 2, -3, -19, 4, -6, -13, 4, -6, -13, 2, -3, -19, 2, -3, -19, 4, -6, -12, 4, 18, -9, 4, 13, -9, 4, 18, -9, 4, 13, -12.45, 4, 17.25, -15, 4, 13, -9, 4, 13, -12, 4, 18, -12.45, 4, 17.25, 0, 13.5, 18, 2, 11.5, 21, 2, 13.5, 18, 0, 13.5, 18, 0, 11.5, 21, 2, 11.5, 21, -2, 13.5, 18, 0, 11.5, 21, 0, 13.5, 18, -13.5, 4, -15.5, -9, 4, -18, -9, 4, -15.5, -9, 4, -18, -12.45, 4, -17.25, -12, 4, -18, -9, 4, -18, -13.5, 4, -15.5, -12.45, 4, -17.25, 2, 8, -22, 6, 11.5, -22, 6, 8, -22, 2, 8, -22, 2, 11.5, -22, 6, 11.5, -22, 2, 8, 18, 0, 8, 21, 0, 8, 18, 2, 8, 18, 2, 8, 21, 0, 8, 21, 6, 11.5, -18, 2, 11.5, -22, 2, 11.5, -18, 6, 11.5, -18, 6, 11.5, -22, 2, 11.5, -22, 18, 7.5, -22, 15, 11.5, -18, 18, 7.5, -18, 18, 7.5, -22, 15, 11.5, -22, 15, 11.5, -18, 6, 8, 18, 2, 8, 21, 2, 8, 18, 6, 8, 18, 4, 8, 21, 2, 8, 21, 2, 13.5, 18, 4, 11.5, 21, 6, 13.5, 18, 2, 13.5, 18, 2, 11.5, 21, 4, 11.5, 21, 0, 8, 18, 0, 8, 21, -2, 8, 18, 18, 7.5, -18, 22, 7.5, -22, 18, 7.5, -22, 18, 7.5, -18, 22, 7.5, -18, 22, 7.5, -22, 8, 8, -22, 6, 8, -22, 6, 11.5, -22, 18, 7.5, -22, 8, 8, -22, 6, 11.5, -22, 18, 7.5, -22, 16, 4, -22, 8, 8, -22, 22, 4, -18, 22, 7.5, -22, 22, 7.5, -18, 22, 4, -18, 22, 4, -22, 22, 7.5, -22, 18, 7.5, -22, 22, 4, -22, 18, 4, -22, 18, 7.5, -22, 22, 7.5, -22, 22, 4, -22, 22, 7.5, -18, 22, 4, -13, 22, 4, -18, 22, 7.5, -18, 22, 7.5, -13, 22, 4, -13, 18, 4, -18, 18, 7.5, -13, 18, 7.5, -18, 18, 4, -18, 18, 4, -13, 18, 7.5, -13, 18, 7.5, -18, 22, 7.5, -13, 22, 7.5, -18, 18, 7.5, -18, 18, 7.5, -13, 22, 7.5, -13, 6, 11.5, -18, 15, 11.5, -22, 6, 11.5, -22, 6, 11.5, -18, 15, 11.5, -18, 15, 11.5, -22, 15, 11.5, -22, 18, 7.5, -22, 6, 11.5, -22, 15, 11.5, -18, 6, 11.5, -18, 18, 7.5, -18, 16, 4, -22, 18, 7.5, -22, 18, 4, -22, 18, 7.5, -18, 8, 8, -18, 16, 4, -18, 18, 7.5, -18, 6, 11.5, -18, 8, 8, -18, 18, 7.5, -18, 16, 4, -18, 18, 4, -18, 8, 8, -18, 6, 11.5, -18, 6, 8, -18, -9, 4, -13, -13.5, 4, -15.5, -9, 4, -15.5, -9, 4, -13, -15, 4, -13, -13.5, 4, -15.5, -2, 8, -13, -9, 4, -15.5, -2, 8, -15.5, -2, 8, -13, -9, 4, -13, -9, 4, -15.5, 2, 8, 18, 0, 8, 13, 2, 8, 13, 2, 8, 18, 0, 8, 18, 0, 8, 13, -2, 8, 10, 0, 8, 13, -2, 8, 13, -2, 8, 10, 0, 8, 10, 0, 8, 13, 2, 11.5, -22, 0, 11.5, -18, 2, 11.5, -18, 0, 8, -18, 2, 11.5, -22, 2, 8, -22, 0, 8, -18, 0, 11.5, -18, 2, 11.5, -22, 7, 7, 11, 11, 7, 13, 11, 7, 11, 7, 7, 11, 9, 7, 13, 11, 7, 13, 11, 8, 11, 9, 8, 13, 7, 8, 11, 11, 8, 11, 11, 8, 13, 9, 8, 13, 11, 7, 13, 18, 4.424, 11, 11, 7, 11, 11, 7, 13, 18, 4.424, 13, 18, 4.424, 11, 11, 8, 11, 22, 4, 13, 11, 8, 13, 11, 8, 11, 22, 4, 11, 22, 4, 13, 10, 2, -3, 18, 3, -2, 18, 2, -3, 10, 2, -3, 10, 3, -2, 18, 3, -2, 10, 3, 2, 18, 2, 3, 18, 3, 2, 10, 3, 2, 10, 2, 3, 18, 2, 3, -2, 6, -10, 2, 7, -9, 2, 6, -10, -2, 6, -10, -2, 7, -9, 2, 7, -9, -2, 7, -9, 2, 7, 9, 2, 7, -9, -2, 7, -9, -2, 7, 9, 2, 7, 9, -19, 21, 6, -14.1675, 25, 3, -19, 21, 3, -19, 21, 6, -14.1675, 25, 4.7167, -14.1675, 25, 3, 28, 21, 13, 22, 25, 8, 22, 21, 13, 28, 21, 13, 28, 25, 8, 22, 25, 8, -19, 21, -3, -14.1675, 25, -4.7167, -19, 21, -6, -19, 21, -3, -14.1675, 25, -3, -14.1675, 25, -4.7167, 22, 21, 13, 18, 25, 8, 18, 21, 13, 22, 21, 13, 22, 25, 8, 18, 25, 8, 18, 21, 13, 6.5365, 25, 8, 9, 21, 13, 18, 21, 13, 18, 25, 8, 6.5365, 25, 8, -19, 21, 3, -14.1675, 25, -3, -19, 21, -3, -19, 21, 3, -14.1675, 25, 3, -14.1675, 25, -3, -19, 21, -6, -10.6854, 25, -10.4733, -15, 21, -13, -19, 21, -6, -14.1675, 25, -4.7167, -10.6854, 25, -10.4733, 33, 21, -6.48, 28, 25, 6, 33, 21, 6.48, 33, 21, -6.48, 28, 25, -6, 28, 25, 6, -2, 21, -18, 0, 25, -13, 0, 21, -18, -2, 21, -18, -2, 25, -13, 0, 25, -13, -15, 21, 13, -14.1675, 25, 4.7167, -19, 21, 6, -15, 21, 13, -10.6854, 25, 10.4733, -14.1675, 25, 4.7167, 22, 21, -13, 28, 25, -8, 28, 21, -13, 22, 21, -13, 22, 25, -8, 28, 25, -8, 6, 21, 18, 2, 25, 13, 2, 21, 18, -12, 21, -18, -9.2125, 25, -12.9275, -9, 21, -18, 18, 21, -13, 22, 25, -8, 22, 21, -13, 18, 21, -13, 18, 25, -8, 22, 25, -8, -9, 21, 18, -9, 25, 13, -12, 21, 18, 9, 21, -13, 18, 25, -8, 18, 21, -13, 9, 21, -13, 7.2979, 25, -8, 18, 25, -8, 0, 21, -18, 2, 25, -13, 2, 21, -18, 0, 21, -18, 0, 25, -13, 2, 25, -13, -9, 21, -18, -2, 25, -13, -2, 21, -18, -9, 21, -18, -9.2125, 25, -12.9275, -2, 25, -13, -15, 21, -13, -9.2125, 25, -12.9275, -13.5, 21, -15.5, -15, 21, -13, -10.6854, 25, -10.4733, -9.2125, 25, -12.9275, 33, 21, 6.48, 28, 25, 8, 33, 21, 13, 33, 21, 6.48, 28, 25, 6, 28, 25, 8, -9, 25, 13, -12.45, 21, 17.25, -12, 21, 18, -12.45, 21, 17.25, -10.6854, 25, 10.4733, -15, 21, 13, -12.45, 21, 17.25, -9, 25, 13, -10.6854, 25, 10.4733, 33, 21, -13, 28, 25, -6, 33, 21, -6.48, 33, 21, -13, 28, 25, -8, 28, 25, -6, -2, 21, 18, -9, 25, 13, -9, 21, 18, -2, 21, 18, -2, 25, 13, -9, 25, 13, 0, 21, 18, -2, 25, 13, -2, 21, 18, 0, 21, 18, 0, 25, 13, -2, 25, 13, -13.5, 21, -15.5, -9.2125, 25, -12.9275, -12.45, 21, -17.25, -12.45, 21, -17.25, -9.2125, 25, -12.9275, -12, 21, -18, 6, 21, -15.5, 7.2979, 25, -8, 9, 21, -13, 6, 21, -15.5, 2, 25, -13, 7.2979, 25, -8, 28, 21, -13, 28, 25, -8, 33, 21, -13, 2, 21, 18, 0, 25, 13, 0, 21, 18, 2, 21, 18, 2, 25, 13, 0, 25, 13, 9, 21, 13, 2, 25, 13, 6, 21, 18, 9, 21, 13, 6.5365, 25, 8, 2, 25, 13, 33, 21, 13, 28, 25, 8, 28, 21, 13, 2, 21, -18, 2, 25, -13, 6, 21, -18, 6, 21, -18, 2, 25, -13, 6, 21, -15.5, -19, 14, -1, -16, 15, -2, -19, 15, -2, -19, 14, -1, -17, 14, -1, -16, 15, -2, -17, 14, -1, -16, 15, 2, -16, 15, -2, -17, 14, -1, -17, 14, 1, -16, 15, 2, -17, 14, 1, -19, 15, 2, -16, 15, 2, -17, 14, 1, -19, 14, 1, -19, 15, 2, -19, 14, -1, -17, 14, 1, -17, 14, -1, -19, 14, -1, -19, 14, 1, -17, 14, 1, 9, 13.5, -16, 18, 21, -16, 18, 13.5, -16, 9, 13.5, -16, 9, 21, -16, 18, 21, -16, 33, 13.5, 16, 28, 21, 16, 28, 13.5, 16, 33, 13.5, 16, 33, 21, 16, 28, 21, 16, 22, 13.5, 16, 18, 21, 16, 18, 13.5, 16, 22, 13.5, 16, 22, 21, 16, 18, 21, 16, 28, 13.5, -16, 33, 21, -16, 33, 13.5, -16, 28, 13.5, -16, 28, 21, -16, 33, 21, -16, 22, 13.5, -16, 28, 21, -16, 28, 13.5, -16, 22, 13.5, -16, 22, 21, -16, 28, 21, -16, 18, 13.5, -16, 22, 21, -16, 22, 13.5, -16, 18, 13.5, -16, 18, 21, -16, 22, 21, -16, 18, 13.5, 16, 9, 21, 16, 9, 13.5, 16, 18, 13.5, 16, 18, 21, 16, 9, 21, 16, 28, 13.5, 16, 22, 21, 16, 22, 13.5, 16, 28, 13.5, 16, 28, 21, 16, 22, 21, 16, 28, 21, 13, 33, 21, 16, 33, 21, 13, 28, 21, 13, 28, 21, 16, 33, 21, 16, 28, 13.5, -13, 33, 13.5, -16, 33, 13.5, -13, 28, 13.5, -13, 28, 13.5, -16, 33, 13.5, -16, 22, 21, 13, 28, 21, 16, 28, 21, 13, 22, 21, 13, 22, 21, 16, 28, 21, 16, 22, 13.5, 13, 18, 13.5, 16, 18, 13.5, 13, 22, 13.5, 13, 22, 13.5, 16, 18, 13.5, 16, 18, 21, 13, 22, 21, 16, 22, 21, 13, 18, 21, 13, 18, 21, 16, 22, 21, 16, 33, 13.5, 13, 28, 13.5, 16, 28, 13.5, 13, 33, 13.5, 13, 33, 13.5, 16, 28, 13.5, 16, 9, 21, 13, 18, 21, 16, 18, 21, 13, 9, 21, 13, 9, 21, 16, 18, 21, 16, 9, 21, -13, 9, 13.5, -16, 9, 13.5, -13, 9, 21, -13, 9, 21, -16, 9, 13.5, -16, 9, 13.5, -13, 18, 13.5, -16, 18, 13.5, -13, 9, 13.5, -13, 9, 13.5, -16, 18, 13.5, -16, 28, 21, -13, 22, 21, -16, 22, 21, -13, 28, 21, -13, 28, 21, -16, 22, 21, -16, 28, 13.5, 13, 22, 13.5, 16, 22, 13.5, 13, 28, 13.5, 13, 28, 13.5, 16, 22, 13.5, 16, 9, 13.5, 13, 9, 21, 16, 9, 21, 13, 9, 13.5, 13, 9, 13.5, 16, 9, 21, 16, 22, 21, -13, 18, 21, -16, 18, 21, -13, 22, 21, -13, 22, 21, -16, 18, 21, -16, 18, 13.5, 13, 9, 13.5, 16, 9, 13.5, 13, 18, 13.5, 13, 18, 13.5, 16, 9, 13.5, 16, 33, 13.5, -13, 33, 21, -16, 33, 21, -13, 33, 13.5, -13, 33, 13.5, -16, 33, 21, -16, 18, 21, -13, 9, 21, -16, 9, 21, -13, 18, 21, -13, 18, 21, -16, 9, 21, -16, 18, 13.5, -13, 22, 13.5, -16, 22, 13.5, -13, 18, 13.5, -13, 18, 13.5, -16, 22, 13.5, -16, 33, 21, 13, 33, 13.5, 16, 33, 13.5, 13, 33, 21, 13, 33, 21, 16, 33, 13.5, 16, 33, 21, -13, 28, 21, -16, 28, 21, -13, 33, 21, -13, 33, 21, -16, 28, 21, -16, 22, 13.5, -13, 28, 13.5, -16, 28, 13.5, -13, 22, 13.5, -13, 22, 13.5, -16, 28, 13.5, -16, -28.9827, -7.4685, 31.0822, -28.9827, 25, -31.0822, -28.9827, 25, 31.0822, -28.9827, -7.4685, 31.0822, -28.9827, -7.4685, -31.0822, -28.9827, 25, -31.0822, -28.9827, -7.4685, -31.0822, 44.9827, 25, -31.0822, -28.9827, 25, -31.0822, -28.9827, -7.4685, -31.0822, 44.9827, -7.4685, -31.0822, 44.9827, 25, -31.0822, 44.9827, -7.4685, -31.0822, 44.9827, 25, 31.0822, 44.9827, 25, -31.0822, 44.9827, -7.4685, -31.0822, 44.9827, -7.4685, 31.0822, 44.9827, 25, 31.0822, 44.9827, -7.4685, 31.0822, -28.9827, 25, 31.0822, 44.9827, 25, 31.0822, 44.9827, -7.4685, 31.0822, -28.9827, -7.4685, 31.0822, -28.9827, 25, 31.0822, -28.9827, -7.4685, -31.0822, 44.9827, -7.4685, 31.0822, 44.9827, -7.4685, -31.0822, -28.9827, -7.4685, -31.0822, -28.9827, -7.4685, 31.0822, 44.9827, -7.4685, 31.0822, 44.9827, 25, 31.0822, 28, 25, 8, 28, 25, 6, 44.9827, 25, 31.0822, 28, 25, -8, 44.9827, 25, -31.0822, 28, 25, -6, 28, 25, -8, 44.9827, 25, 31.0822, 44.9827, 25, -31.0822, 28, 25, -8, 22, 25, -8, 44.9827, 25, -31.0822, 22, 25, -8, 18, 25, -8, 44.9827, 25, -31.0822, 18, 25, -8, 7.2979, 25, -8, 44.9827, 25, -31.0822, 7.2979, 25, -8, 2, 25, -13, -28.9827, 25, -31.0822, 44.9827, 25, -31.0822, 2, 25, -13, -28.9827, 25, -31.0822, 0, 25, -13, -2, 25, -13, -28.9827, 25, -31.0822, -2, 25, -13, -9.2125, 25, -12.9275, -28.9827, 25, -31.0822, -9.2125, 25, -12.9275, -10.6854, 25, -10.4733, -28.9827, 25, -31.0822, -10.6854, 25, -10.4733, -14.1675, 25, -4.7167, -28.9827, 25, -31.0822, -14.1675, 25, -4.7167, -14.1675, 25, -3, -28.9827, 25, -31.0822, -14.1675, 25, -3, -14.1675, 25, 3, -28.9827, 25, 31.0822, -14.1675, 25, 3, -14.1675, 25, 4.7167, -28.9827, 25, 31.0822, -14.1675, 25, 4.7167, -10.6854, 25, 10.4733, -28.9827, 25, 31.0822, -10.6854, 25, 10.4733, -9, 25, 13, -28.9827, 25, 31.0822, -9, 25, 13, -2, 25, 13, -28.9827, 25, 31.0822, -2, 25, 13, 0, 25, 13, -28.9827, 25, 31.0822, 0, 25, 13, 2, 25, 13, 44.9827, 25, 31.0822, 2, 25, 13, 6.5365, 25, 8, 44.9827, 25, 31.0822, 6.5365, 25, 8, 18, 25, 8, 44.9827, 25, 31.0822, 18, 25, 8, 22, 25, 8, 44.9827, 25, 31.0822, 22, 25, 8, 28, 25, 8, 28, 25, 6, 28, 25, -6, 44.9827, 25, 31.0822, -28.9827, 25, -31.0822, 2, 25, -13, 0, 25, -13, -28.9827, 25, -31.0822, -14.1675, 25, 3, -28.9827, 25, 31.0822, -28.9827, 25, 31.0822, 2, 25, 13, 44.9827, 25, 31.0822, -2, 5, -10, -6, 4, -10, -2, 6, -10, -2, 5, -10, -6, 3, -10, -6, 4, -10, 10, 0, -6, 10, 2, -3, 10, 0, -3, 10, 2, -3, 10, 3, -6, 10, 3, -4, 10, 2, -3, 10, 0, -6, 10, 3, -6, 2, 5, 10, 6, 4, 10, 2, 6, 10, 2, 5, 10, 6, 3, 10, 6, 4, 10, -10, 2, 3, -10, 3, 6, -10, 4, 6, -6, 3, -10, -10, 4, -6, -6, 4, -10, -6, 3, -10, -10, 3, -6, -10, 4, -6, 10, 3, -6, 6, 4, -10, 10, 4, -6, 10, 3, -6, 6, 3, -10, 6, 4, -10, 6, 3, 10, 10, 4, 6, 6, 4, 10, 6, 3, 10, 10, 3, 6, 10, 4, 6, -10, 3, 6, -6, 4, 10, -10, 4, 6, -10, 3, 6, -6, 3, 10, -6, 4, 10, 6, 4, -10, 9, 8, -13, 9, 4, -13, 6, 4, -10, 6, 8, -10, 9, 8, -13, -6, 4, 10, -6, 5.714, 10, -9, 4, 13, 9, 4, 13, 6, 8, 10, 6, 4, 10, 9, 4, 13, 9, 8, 13, 6, 8, 10, 2, 6, -10, 6, 8, -10, 6, 4, -10, 2, 6, -10, 2, 8, -10, 6, 8, -10, -2, 6, 10, -6, 5.714, 10, -6, 4, 10, -2, 6, 10, -2, 8, 10, -6, 5.714, 10, -9, 4, -13, -6, 5.7, -10, -6, 4, -10, 9, 8, -13, 18, 4, -13, 9, 4, -13, 9, 8, -13, 18, 7.5, -13, 18, 4, -13, 28, 2, 13, 33, 8, 13, 28, 8, 13, 28, 2, 13, 33, 2, 13, 33, 8, 13, 22, 4, 13, 28, 8, 13, 22, 8, 13, 22, 4, 13, 28, 2, 13, 28, 8, 13, 6, 4, 10, 2, 8, 10, 2, 6, 10, 6, 4, 10, 6, 8, 10, 2, 8, 10, 18, 4, 13, 22, 8, 13, 18, 8, 13, 18, 4, 13, 22, 4, 13, 22, 8, 13, 9, 4, 13, 18, 8, 13, 9, 8, 13, 9, 4, 13, 18, 4, 13, 18, 8, 13, -6, 4, -10, -2, 8, -10, -2, 6, -10, -6, 4, -10, -6, 5.7, -10, -2, 8, -10, 2, 7, 9, 2, 8, 10, 2, 8, 9, 2, 7, 9, 2, 6, 10, 2, 8, 10, -6, 3, 10, -2, 6, 10, -6, 4, 10, -6, 3, 10, -2, 5, 10, -2, 6, 10, -2, 5, 10, 2, 6, 10, -2, 6, 10, -2, 5, 10, 2, 5, 10, 2, 6, 10, 6, 3, -10, 2, 6, -10, 6, 4, -10, 6, 3, -10, 2, 5, -10, 2, 6, -10, 2, 5, -10, -2, 6, -10, 2, 6, -10, 2, 5, -10, -2, 5, -10, -2, 6, -10, -2, 8, 9, -2, 6, 10, -2, 7, 9, -2, 8, 9, -2, 8, 10, -2, 6, 10, -10, 2, -3, -10, 0, -3, -6, 0, -3, -10, 3, -6, -10, 2, -3, -10, 4, -6, 10, 2, -3, 18, 0, -3, 10, 0, -3, 10, 2, -3, 18, 2, -3, 18, 0, -3, 10, 3, 2, 10, 4, -3, 10, 4, 3, 10, 3, 2, 10, 3, -2, 10, 4, -3, -10, 0, -6, -10, 2, -3, -10, 3, -6, -10, 0, -6, -10, 0, -3, -10, 2, -3, 2, 0, -10, -2, 5, -10, 2, 5, -10, 2, 0, -10, -2, 0, -10, -2, 5, -10, 6, 0, -10, 2, 5, -10, 6, 3, -10, 6, 0, -10, 2, 0, -10, 2, 5, -10, -2, 0, 10, 2, 5, 10, -2, 5, 10, -2, 0, 10, 2, 0, 10, 2, 5, 10, -6, 0, 10, -2, 5, 10, -6, 3, 10, -6, 0, 10, -2, 0, 10, -2, 5, 10, -10, 0, 6, -6, 3, 10, -10, 3, 6, -10, 0, 6, -6, 0, 10, -6, 3, 10, 6, 0, 10, 10, 3, 6, 6, 3, 10, 6, 0, 10, 10, 0, 6, 10, 3, 6, 10, 0, -6, 6, 3, -10, 10, 3, -6, 10, 0, -6, 6, 0, -10, 6, 3, -10, -6, 0, -10, -10, 3, -6, -6, 3, -10, -6, 0, -10, -10, 0, -6, -10, 3, -6, -10, 0, 3, -10, 3, 6, -10, 2, 3, -10, 0, 3, -10, 0, 6, -10, 3, 6, 2, 0, 10, 6, 3, 10, 2, 5, 10, 2, 0, 10, 6, 0, 10, 6, 3, 10, 18, 4, -6, 18, 3, -4, 18, 4, -3, 18, 4, -6, 18, 3, -6, 18, 3, -4, -2, 0, -10, -6, 3, -10, -2, 5, -10, -2, 0, -10, -6, 0, -10, -6, 3, -10, 18, 0, -6, 18, 3, -4, 18, 3, -6, 18, 3, -4, 18, 0, -3, 18, 2, -3, 18, 3, -4, 18, 0, -6, 18, 0, -3, 10, 0, 3, 10, 3, 6, 10, 0, 6, 10, 3, 6, 10, 2, 3, 10, 3, 4, 10, 3, 6, 10, 0, 3, 10, 2, 3, 10, 3, 6, 10, 4, 3, 10, 4, 6, 10, 3, 6, 10, 3, 4, 10, 4, 3, 10, 3, -4, 10, 4, -6, 10, 4, -3, 10, 3, -4, 10, 3, -6, 10, 4, -6, 18, 3, -2, 18, 4, 3, 18, 4, -3, 18, 3, -2, 18, 3, 2, 18, 4, 3, 18, 4, 3, 18, 3, 6, 18, 4, 6, 18, 4, 3, 18, 3, 4, 18, 3, 6, 18, 0, 3, 18, 3, 4, 18, 2, 3, 18, 3, 4, 18, 0, 6, 18, 3, 6, 18, 3, 4, 18, 0, 3, 18, 0, 6, 18, 3, 6, 22, 4, 6, 18, 4, 6, 18, 3, 6, 22, 3, 6, 22, 4, 6, 18, 4, -6, 22, 3, -6, 18, 3, -6, 18, 4, -6, 22, 4, -6, 22, 3, -6, 22, 3, 6, 28, 2, 6, 22, 4, 6, 22, 3, 6, 22, 0, 6, 28, 2, 6, 22, 4, -6, 22, 0, -6, 22, 3, -6, 22, 4, -6, 28, 2, -6, 22, 0, -6, 18, 0, 6, 22, 3, 6, 18, 3, 6, 18, 0, 6, 22, 0, 6, 22, 3, 6, 22, 0, -6, 18, 3, -6, 22, 3, -6, 22, 0, -6, 18, 0, -6, 18, 3, -6, 22, 7.5, -13, 28, 2, -13, 22, 4, -13, 22, 7.5, -13, 28, 8, -13, 28, 2, -13, 28, 8, -13, 33, 2, -13, 28, 2, -13, 28, 8, -13, 33, 8, -13, 33, 2, -13, 33, 2, -6, 33, 8, -6.48, 33, 2, -3, 33, 2, 6, 33, 8, 13, 33, 2, 13, 33, 2, 6, 33, 8, 6.48, 33, 8, 13, 33, 2, -3, 33, 8, 6.48, 33, 2, 3, 33, 2, -3, 33, 8, -6.48, 33, 8, 6.48, 33, 2, -13, 33, 8, -6.48, 33, 2, -6, 33, 2, -13, 33, 8, -13, 33, 8, -6.48, 33, 2, 3, 33, 8, 6.48, 33, 2, 6, 33, 13.5, -13, 33, 21, -6.48, 33, 8, -6.48, 33, 13.5, -13, 33, 21, -13, 33, 21, -6.48, 33, 13.5, 13, 31.5, 21, 13, 31.5, 13.5, 13, 33, 13.5, 13, 33, 21, 13, 31.5, 21, 13, 33, 8, 6.48, 33, 21, 13, 33, 13.5, 13, 33, 8, 6.48, 33, 21, 6.48, 33, 21, 13, 9, 13.5, 13, 6, 8, 18, 9, 8, 13, 9, 13.5, 13, 6, 13.5, 18, 6, 8, 18, 6, 12.5, -15.5, 6, 21, -18, 6, 21, -15.5, 6, 12.5, -15.5, 6, 11.5, -18, 6, 21, -18, 0, 11.5, -18, 2, 21, -18, 2, 11.5, -18, 0, 11.5, -18, 0, 21, -18, 2, 21, -18, -9, 11.5, 18, -12, 21, 18, -12, 11.5, 18, -9, 11.5, 18, -9, 21, 18, -12, 21, 18, 0, 13.5, 18, -2, 21, 18, -2, 13.5, 18, 0, 13.5, 18, 0, 21, 18, -2, 21, 18, -12.45, 11.5, -17.25, -12, 21, -18, -12, 11.5, -18, -12.45, 11.5, -17.25, -12.45, 21, -17.25, -12, 21, -18, -2, 13.5, 18, -9, 21, 18, -9, 11.5, 18, -2, 13.5, 18, -2, 21, 18, -9, 21, 18, -9, 11.5, -18, -2, 21, -18, -2, 11.5, -18, -9, 11.5, -18, -9, 21, -18, -2, 21, -18, 6, 13.5, 18, 2, 21, 18, 2, 13.5, 18, 6, 13.5, 18, 6, 21, 18, 2, 21, 18, 2, 11.5, -18, 6, 21, -18, 6, 11.5, -18, 2, 11.5, -18, 2, 21, -18, 6, 21, -18, -12, 11.5, -18, -9, 21, -18, -9, 11.5, -18, -12, 11.5, -18, -12, 21, -18, -9, 21, -18, -12, 4, -18, -9, 11.5, -18, -9, 4, -18, -12, 4, -18, -12, 11.5, -18, -9, 11.5, -18, 6, 13.5, 18, 4, 8, 21, 6, 8, 18, 6, 13.5, 18, 4, 11.5, 21, 4, 8, 21, -9, 4, -18, -2, 11.5, -18, -2, 8, -18, -9, 4, -18, -9, 11.5, -18, -2, 11.5, -18, -2, 8, 18, -9, 11.5, 18, -9, 4, 18, -2, 8, 18, -2, 13.5, 18, -9, 11.5, 18, -12.45, 4, -17.25, -12, 11.5, -18, -12, 4, -18, -12.45, 4, -17.25, -12.45, 11.5, -17.25, -12, 11.5, -18, -9, 4, 18, -12, 11.5, 18, -12, 4, 18, -9, 4, 18, -9, 11.5, 18, -12, 11.5, 18, -19, 4, 6, -19, 4, 3, -19, 2, 3, 9, 21, 13, 6, 13.5, 18, 9, 13.5, 13, 9, 21, 13, 6, 21, 18, 6, 13.5, 18, 28, 8, 13, 22, 13.5, 13, 22, 8, 13, 28, 8, 13, 28, 13.5, 13, 22, 13.5, 13, 33, 8, 6.48, 33, 13.5, 13, 33, 8, 13, 18, 8, 13, 9, 13.5, 13, 9, 8, 13, 18, 8, 13, 18, 13.5, 13, 9, 13.5, 13, 18, 7.5, -13, 22, 13.5, -13, 22, 7.5, -13, 18, 7.5, -13, 18, 13.5, -13, 22, 13.5, -13, 22, 7.5, -13, 28, 13.5, -13, 28, 8, -13, 22, 7.5, -13, 22, 13.5, -13, 28, 13.5, -13, 28, 8, -13, 33, 13.5, -13, 33, 8, -13, 28, 8, -13, 28, 13.5, -13, 33, 13.5, -13, 22, 8, 13, 18, 13.5, 13, 18, 8, 13, 22, 8, 13, 22, 13.5, 13, 18, 13.5, 13, 33, 8, 13, 28, 13.5, 13, 28, 8, 13, 33, 8, 13, 33, 13.5, 13, 28, 13.5, 13, 9, 8, -13, 18, 13.5, -13, 18, 7.5, -13, 9, 8, -13, 9, 13.5, -13, 18, 13.5, -13, 33, 8, -13, 33, 13.5, -13, 33, 8, -6.48, 2, 8, 21, 0, 11.5, 21, 0, 8, 21, 2, 8, 21, 2, 11.5, 21, 0, 11.5, 21, 4, 8, 21, 2, 11.5, 21, 2, 8, 21, 4, 8, 21, 4, 11.5, 21, 2, 11.5, 21, -2, 8, 18, 0, 11.5, 21, -2, 13.5, 18, -2, 8, 18, 0, 8, 21, 0, 11.5, 21, -10, 0, 3, -10, 2, 3, -6, 0, 3, 9, 8, -13, 6, 12.5, -15.5, 9, 13.5, -13, 9, 8, -13, 6, 8, -15.5, 6, 12.5, -15.5, 9, 13.5, -13, 6, 21, -15.5, 9, 21, -13, 9, 13.5, -13, 6, 12.5, -15.5, 6, 21, -15.5, 2, 13.5, 18, 0, 21, 18, 0, 13.5, 18, 2, 13.5, 18, 2, 21, 18, 0, 21, 18, 6, 8, -15.5, 6, 11.5, -18, 6, 12.5, -15.5, 6, 8, -15.5, 6, 8, -18, 6, 11.5, -18, -2, 11.5, -18, 0, 21, -18, 0, 11.5, -18, -2, 11.5, -18, -2, 21, -18, 0, 21, -18, 0, 11.5, -18, -2, 8, -18, -2, 11.5, -18, 0, 11.5, -18, 0, 8, -18, -2, 8, -18, 7, 7, 11, 11, 8, 11, 7, 8, 11, 7, 7, 11, 11, 7, 11, 11, 8, 11, 18, 4.424, 13, 18, 3.9697, 11, 18, 4.424, 11, 18, 4.424, 13, 18, 3.9697, 13, 18, 3.9697, 11, 11, 7, 11, 22, 4, 11, 11, 8, 11, 11, 7, 11, 18, 4.424, 11, 22, 4, 11, 18, 4.424, 11, 18, 3.9697, 11, 22, 4, 11, 10, 3, 2, 10, 3, 4, 10, 2, 3, 10, 3, 2, 10, 4, 3, 10, 3, 4, 10, 2, -3, 10, 4, -3, 10, 3, -2, 10, 2, -3, 10, 3, -4, 10, 4, -3, 18, 3, -2, 18, 3, -4, 18, 2, -3, 18, 3, -2, 18, 4, -3, 18, 3, -4, 18, 2, 3, 18, 4, 3, 18, 3, 2, 18, 2, 3, 18, 3, 4, 18, 4, 3, 10, 0, 3, 18, 2, 3, 10, 2, 3, 10, 0, 3, 18, 0, 3, 18, 2, 3, -2, 8, -10, -2, 7, -9, -2, 6, -10, -2, 8, -10, -2, 8, -9, -2, 7, -9, -2, 8, -9, -2, 7, 9, -2, 7, -9, -2, 8, -9, -2, 8, 9, -2, 7, 9, 2, 6, -10, 2, 8, -9, 2, 8, -10, 2, 6, -10, 2, 7, -9, 2, 8, -9, 2, 7, -9, 2, 8, 9, 2, 8, -9, 2, 7, -9, 2, 7, 9, 2, 8, 9, -19, 2, 3, -19, 4, -3, -19, 2, -3, -19, 2, 3, -19, 4, 3, -19, 4, -3, -19, 2, -3, -19, 4, -3, -19, 4, -6, -12, 4, 18, -12.45, 11.5, 17.25, -12.45, 4, 17.25, -12, 4, 18, -12, 11.5, 18, -12.45, 11.5, 17.25, -12, 11.5, 18, -12.45, 21, 17.25, -12.45, 11.5, 17.25, -12, 11.5, 18, -12, 21, 18, -12.45, 21, 17.25, 31.5, 13.5, -13, 33, 21, -13, 33, 13.5, -13, 31.5, 13.5, -13, 31.5, 21, -13, 33, 21, -13, 33, 8, 6.48, 33, 21, -6.48, 33, 21, 6.48, 33, 8, 6.48, 33, 8, -6.48, 33, 21, -6.48, -19, 11.5, 6, -19, 21, 3, -19, 11.5, 3, -19, 11.5, 6, -19, 21, 6, -19, 21, 3, -19, 11.5, -3, -19, 21, -6, -19, 11.5, -6, -19, 11.5, -3, -19, 21, -3, -19, 21, -6, -19, 11.5, 3, -19, 21, -3, -19, 11.5, -3, -19, 11.5, 3, -19, 21, 3, -19, 21, -3, -19, 11.5, -6, -15, 21, -13, -15, 11.5, -13, -19, 11.5, -6, -19, 21, -6, -15, 21, -13, -12.45, 11.5, 17.25, -15, 21, 13, -15, 11.5, 13, -12.45, 11.5, 17.25, -12.45, 21, 17.25, -15, 21, 13, -15, 11.5, 13, -19, 21, 6, -19, 11.5, 6, -15, 11.5, 13, -15, 21, 13, -19, 21, 6, -15, 4, 13, -19, 11.5, 6, -19, 4, 6, -15, 4, 13, -15, 11.5, 13, -19, 11.5, 6, -12.45, 4, 17.25, -15, 11.5, 13, -15, 4, 13, -12.45, 4, 17.25, -12.45, 11.5, 17.25, -15, 11.5, 13, -19, 4, -6, -15, 11.5, -13, -15, 4, -13, -19, 4, -6, -19, 11.5, -6, -15, 11.5, -13, -19, 4, 3, -19, 11.5, -3, -19, 4, -3, -19, 4, 3, -19, 11.5, 3, -19, 11.5, -3, -19, 4, -6, -19, 11.5, -3, -19, 11.5, -6, -19, 4, -6, -19, 4, -3, -19, 11.5, -3, -15, 4, -13, -13.5, 11.5, -15.5, -13.5, 4, -15.5, -15, 4, -13, -15, 11.5, -13, -13.5, 11.5, -15.5, -15, 11.5, -13, -13.5, 21, -15.5, -13.5, 11.5, -15.5, -15, 11.5, -13, -15, 21, -13, -13.5, 21, -15.5, -19, 11.5, 6, -19, 4, 3, -19, 4, 6, -19, 11.5, 6, -19, 11.5, 3, -19, 4, 3, -13.5, 4, -15.5, -12.45, 11.5, -17.25, -12.45, 4, -17.25, -13.5, 4, -15.5, -13.5, 11.5, -15.5, -12.45, 11.5, -17.25, -13.5, 11.5, -15.5, -12.45, 21, -17.25, -12.45, 11.5, -17.25, -13.5, 11.5, -15.5, -13.5, 21, -15.5, -12.45, 21, -17.25, 28, 13.5, -13, 31.5, 21, -13, 31.5, 13.5, -13, 28, 13.5, -13, 28, 21, -13, 31.5, 21, -13, 9, 13.5, -13, 18, 21, -13, 18, 13.5, -13, 9, 13.5, -13, 9, 21, -13, 18, 21, -13, 31.5, 13.5, 13, 28, 21, 13, 28, 13.5, 13, 31.5, 13.5, 13, 31.5, 21, 13, 28, 21, 13, 22, 13.5, 13, 18, 21, 13, 18, 13.5, 13, 22, 13.5, 13, 22, 21, 13, 18, 21, 13, 22, 13.5, -13, 28, 21, -13, 28, 13.5, -13, 22, 13.5, -13, 22, 21, -13, 28, 21, -13, 18, 13.5, -13, 22, 21, -13, 22, 13.5, -13, 18, 13.5, -13, 18, 21, -13, 22, 21, -13, 18, 13.5, 13, 9, 21, 13, 9, 13.5, 13, 18, 13.5, 13, 18, 21, 13, 9, 21, 13, 28, 13.5, 13, 22, 21, 13, 22, 13.5, 13, 28, 13.5, 13, 28, 21, 13, 22, 21, 13, 10, 4, -3, 13, 4, -6, 13, 4, -3, 10, 4, -3, 10, 4, -6, 13, 4, -6, 0, 8, 9, -2, 8, 10, -2, 8, 9, 0, 8, 9, 0, 8, 10, -2, 8, 10, 6, 8, -10, 2, 8, -13, 9, 8, -13, 6, 8, -10, 2, 8, -10, 2, 8, -13, 0, 8, -10, -2, 8, -13, 0, 8, -13, 0, 8, -10, -2, 8, -10, -2, 8, -13, 10, 4, 6, 13, 4, 3, 13, 4, 6, 10, 4, 6, 10, 4, 3, 13, 4, 3, 10, 4, 3, 13, 4, -3, 13, 4, 3, 10, 4, 3, 10, 4, -3, 13, 4, -3, 13, 4, -3, 18, 4, 3, 13, 4, 3, 13, 4, -3, 18, 4, -3, 18, 4, 3, 13, 4, 3, 18, 4, 6, 13, 4, 6, 13, 4, 3, 18, 4, 3, 18, 4, 6, 13, 4, -6, 18, 4, -3, 13, 4, -3, 13, 4, -6, 18, 4, -6, 18, 4, -3, 6, 8, -15.5, 2, 8, -18, 6, 8, -18, 6, 8, -15.5, 2, 8, -15.5, 2, 8, -18, 0, 8, -15.5, -2, 8, -18, 0, 8, -18, 0, 8, -15.5, -2, 8, -15.5, -2, 8, -18, 2, 8, -13, 0, 8, -15.5, 2, 8, -15.5, 2, 8, -13, 0, 8, -13, 0, 8, -15.5, 2, 8, -18, 6, 8, -22, 6, 8, -18, 2, 8, -18, 2, 8, -22, 6, 8, -22, 6, 8, -22, 8, 8, -18, 6, 8, -18, 6, 8, -22, 8, 8, -22, 8, 8, -18, 18, 4, -22, 22, 4, -18, 18, 4, -18, 18, 4, -22, 22, 4, -22, 22, 4, -18, 22, 4, -18, 18, 4, -13, 18, 4, -18, 22, 4, -18, 22, 4, -13, 18, 4, -13, 18, 4, -18, 16, 4, -22, 18, 4, -22, 18, 4, -18, 16, 4, -18, 16, 4, -22, 8, 8, -18, 16, 4, -22, 16, 4, -18, 8, 8, -18, 8, 8, -22, 16, 4, -22, 0, 8, -13, -2, 8, -15.5, 0, 8, -15.5, 0, 8, -13, -2, 8, -13, -2, 8, -15.5, 9, 8, -13, 2, 8, -15.5, 6, 8, -15.5, 9, 8, -13, 2, 8, -13, 2, 8, -15.5, 2, 8, -10, 0, 8, -13, 2, 8, -13, 2, 8, -10, 0, 8, -10, 0, 8, -13, 2, 8, 9, 0, 8, 10, 0, 8, 9, 2, 8, 9, 2, 8, 10, 0, 8, 10, 2, 8, -18, 0, 8, -18, 2, 8, -22, 2, 8, -10, 0, 8, -9, 0, 8, -10, 2, 8, -10, 2, 8, -9, 0, 8, -9, 2, 8, -9, 0, 8, 9, 0, 8, -9, 2, 8, -9, 2, 8, 9, 0, 8, 9, 0, 8, -10, -2, 8, -9, -2, 8, -10, 0, 8, -10, 0, 8, -9, -2, 8, -9, 0, 8, -9, -2, 8, 9, -2, 8, -9, 0, 8, -9, 0, 8, 9, -2, 8, 9, -16, 15, -2, -19, 15, 2, -19, 15, -2, -16, 15, -2, -16, 15, 2, -19, 15, 2, 2, 8, -15.5, 0, 8, -18, 2, 8, -18, 2, 8, -15.5, 0, 8, -15.5, 0, 8, -18 ) -[sub_resource type="CapsuleMesh" id=6] -radius = 0.5 -mid_height = 1.3 - -[node name="World" type="Node3D"] +[node name="Game" type="Node3D"] script = null [node name="OmniLight3D" type="OmniLight3D" parent="."] @@ -70,22 +63,17 @@ script = null [node name="DM1" parent="." instance=ExtResource( 3 )] -[node name="Main " parent="DM1" index="0"] -surface_material_override/0 = ExtResource( 2 ) -surface_material_override/1 = ExtResource( 2 ) -surface_material_override/2 = ExtResource( 2 ) -surface_material_override/3 = ExtResource( 2 ) -surface_material_override/4 = ExtResource( 2 ) -surface_material_override/5 = ExtResource( 2 ) - -[node name="Player" type="KinematicBody3D" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) -script = ExtResource( 1 ) - -[node name="HUD" type="CanvasLayer" parent="Player"] +[node name="StaticBody3D" type="StaticBody3D" parent="DM1/Main " index="0"] script = null -[node name="Crosshair" type="Control" parent="Player/HUD"] +[node name="CollisionShape3D" type="CollisionShape3D" parent="DM1/Main /StaticBody3D"] +shape = SubResource( 5 ) +script = null + +[node name="HUD" type="CanvasLayer" parent="."] +script = null + +[node name="Crosshair" type="Control" parent="HUD"] anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -96,13 +84,13 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Main" type="Control" parent="Player/HUD/Crosshair"] +[node name="Main" type="Control" parent="HUD/Crosshair"] script = null __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect" type="ColorRect" parent="Player/HUD/Crosshair/Main"] +[node name="ColorRect" type="ColorRect" parent="HUD/Crosshair/Main"] offset_left = -30.0 offset_top = -2.0 offset_right = -10.0 @@ -113,7 +101,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect2" type="ColorRect" parent="Player/HUD/Crosshair/Main"] +[node name="ColorRect2" type="ColorRect" parent="HUD/Crosshair/Main"] offset_left = -30.0 offset_top = -2.0 offset_right = -10.0 @@ -126,7 +114,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect4" type="ColorRect" parent="Player/HUD/Crosshair/Main"] +[node name="ColorRect4" type="ColorRect" parent="HUD/Crosshair/Main"] offset_left = -30.0 offset_top = -2.0 offset_right = -10.0 @@ -139,7 +127,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect3" type="ColorRect" parent="Player/HUD/Crosshair/Main"] +[node name="ColorRect3" type="ColorRect" parent="HUD/Crosshair/Main"] offset_left = -30.0 offset_top = -2.0 offset_right = -10.0 @@ -152,7 +140,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Hit" type="Control" parent="Player/HUD/Crosshair"] +[node name="Hit" type="Control" parent="HUD/Crosshair"] visible = false rect_rotation = 0.785398 rect_rotation_degrees = 45.0 @@ -161,7 +149,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect" type="ColorRect" parent="Player/HUD/Crosshair/Hit"] +[node name="ColorRect" type="ColorRect" parent="HUD/Crosshair/Hit"] offset_left = -30.0 offset_top = -1.0 offset_right = -10.0 @@ -171,7 +159,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect2" type="ColorRect" parent="Player/HUD/Crosshair/Hit"] +[node name="ColorRect2" type="ColorRect" parent="HUD/Crosshair/Hit"] offset_left = -30.0 offset_top = -1.0 offset_right = -10.0 @@ -183,7 +171,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect4" type="ColorRect" parent="Player/HUD/Crosshair/Hit"] +[node name="ColorRect4" type="ColorRect" parent="HUD/Crosshair/Hit"] offset_left = -30.0 offset_top = -1.0 offset_right = -10.0 @@ -195,7 +183,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ColorRect3" type="ColorRect" parent="Player/HUD/Crosshair/Hit"] +[node name="ColorRect3" type="ColorRect" parent="HUD/Crosshair/Hit"] offset_left = -30.0 offset_top = -1.0 offset_right = -10.0 @@ -207,27 +195,11 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Head" type="Node3D" parent="Player"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 ) -script = null - -[node name="Camera3D" type="Camera3D" parent="Player/Head"] -transform = Transform( 1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0 ) -current = true -fov = 90.0 -script = null - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] -shape = SubResource( 5 ) -script = null - -[node name="MeshInstance3D" type="MeshInstance3D" parent="Player"] -mesh = SubResource( 6 ) -surface_material_override/0 = null -script = null +[node name="Player" parent="." instance=ExtResource( 1 )] [node name="ReflectionProbe" type="ReflectionProbe" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13, 0 ) +visible = false extents = Vector3( 33, 13, 29 ) box_projection = true enable_shadows = true diff --git a/Game/Player.gd b/Game/Player.gd deleted file mode 100644 index 0e53435..0000000 --- a/Game/Player.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends KinematicBody3D - -@export var _mouse_sensitivity := 0.35 - -func _ready() -> void: - Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - -func _input(event) -> void: - var mouse_motion = event as InputEventMouseMotion - - if mouse_motion: - rotation_degrees.y -= mouse_motion.relative.x * _mouse_sensitivity - - var current_tilt: float = $Head.rotation_degrees.x - current_tilt -= mouse_motion.relative.y * _mouse_sensitivity - $Head.rotation_degrees.x = clamp(current_tilt, -90, 90) diff --git a/Game/project.godot b/Game/project.godot index 2c0ccd9..bc5a369 100644 --- a/Game/project.godot +++ b/Game/project.godot @@ -16,71 +16,88 @@ config/icon="res://icon.png" [input] -player_forward={ +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_backward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_crouch={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +trigger_primary={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) + ] +} +trigger_secondary={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) + ] +} +view_zoom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":16777240,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_special={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt":false,"shift":false,"meta":false,"command":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) + ] +} +weapon_previous={ "deadzone": 0.5, "events": [ ] } -player_backward={ +weapon_next={ "deadzone": 0.5, "events": [ ] } -player_left={ +weapon_reload={ "deadzone": 0.5, "events": [ ] } -player_right={ +weapon_swap={ "deadzone": 0.5, "events": [ ] } -player_jump={ +weapon_1={ "deadzone": 0.5, "events": [ ] } -player_crouch={ +weapon_2={ "deadzone": 0.5, "events": [ ] } -player_trigger_primary={ -"deadzone": 0.5, -"events": [ ] -} -player_trigger_secondary={ -"deadzone": 0.5, -"events": [ ] -} -player_zoom={ -"deadzone": 0.5, -"events": [ ] -} -player_jetpack={ -"deadzone": 0.5, -"events": [ ] -} -player_weapon_previous={ -"deadzone": 0.5, -"events": [ ] -} -player_weapon_next={ -"deadzone": 0.5, -"events": [ ] -} -player_weapon_reload={ -"deadzone": 0.5, -"events": [ ] -} -player_weapon_swap={ +weapon_3={ "deadzone": 0.5, "events": [ ] } [rendering] -shadows/directional_shadow/soft_shadow_quality=4 -shadows/shadows/soft_shadow_quality=4 global_illumination/sdfgi/probe_ray_count=2 global_illumination/sdfgi/frames_to_converge=0 global_illumination/sdfgi/frames_to_update_lights=4 -anti_aliasing/quality/msaa=1 -anti_aliasing/quality/screen_space_aa=1 -anti_aliasing/quality/use_debanding=true environment/defaults/default_environment="res://default_env.tres"