Compare commits
36
Commits
1f7cf9f26c
..
dialog
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a66c39e9f8 | ||
|
|
2d27e4254e | ||
|
|
b3287ccf6f | ||
|
|
d1fade919c | ||
|
|
b2eb85fdf1 | ||
|
|
d8138fbe69 | ||
|
|
e54dd191f1 | ||
|
|
db632e2522 | ||
|
|
52e1dfe99f | ||
|
|
3a99c2154c | ||
|
|
241312b0be | ||
|
|
aef117bcf9 | ||
|
|
582b2c43cb | ||
|
|
900951b1a7 | ||
|
|
fc647890a6 | ||
|
|
86fa27c78d | ||
|
|
268eca39c0 | ||
|
|
88e3767971 | ||
|
|
cdeea60e52 | ||
|
|
f1ae24f627 | ||
|
|
eb34e6692f | ||
|
|
d003f67273 | ||
|
|
faa9a5e9d5 | ||
|
|
196e877711 | ||
|
|
a347175e53 | ||
|
|
f443a817e6 | ||
|
|
c507dc6923 | ||
|
|
22b0dc4e4c | ||
|
|
7f4a6cbf75 | ||
|
|
599f0972af | ||
|
|
495bc6e06f | ||
|
|
41b1197b23 | ||
|
|
cbadfd7095 | ||
|
|
536e213b57 | ||
|
|
5fbc4a88ec | ||
|
|
581734d740 |
@@ -82,6 +82,15 @@ jobs:
|
|||||||
mkdir -p /tmp/kube
|
mkdir -p /tmp/kube
|
||||||
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Ensure namespace exists
|
||||||
|
# -----------------------------
|
||||||
|
- name: Create namespace if missing
|
||||||
|
env:
|
||||||
|
KUBECONFIG: /tmp/kube/config
|
||||||
|
run: |
|
||||||
|
kubectl create namespace promiscuity-auth --dry-run=client -o yaml | kubectl apply -f -
|
||||||
|
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
# Apply Kubernetes manifests
|
# Apply Kubernetes manifests
|
||||||
# (You create these files in your repo)
|
# (You create these files in your repo)
|
||||||
|
|||||||
@@ -82,6 +82,15 @@ jobs:
|
|||||||
mkdir -p /tmp/kube
|
mkdir -p /tmp/kube
|
||||||
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Ensure namespace exists
|
||||||
|
# -----------------------------
|
||||||
|
- name: Create namespace if missing
|
||||||
|
env:
|
||||||
|
KUBECONFIG: /tmp/kube/config
|
||||||
|
run: |
|
||||||
|
kubectl create namespace promiscuity-character --dry-run=client -o yaml | kubectl apply -f -
|
||||||
|
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
# Apply Kubernetes manifests
|
# Apply Kubernetes manifests
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
|
|||||||
@@ -0,0 +1,112 @@
|
|||||||
|
name: Deploy Promiscuity Locations API
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: self-hosted
|
||||||
|
|
||||||
|
env:
|
||||||
|
IMAGE_NAME: promiscuity-locations:latest
|
||||||
|
IMAGE_TAR: /tmp/promiscuity-locations.tar
|
||||||
|
# All nodes that might run the pod (control-plane + workers)
|
||||||
|
NODES: "192.168.86.72 192.168.86.73 192.168.86.74"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Build Docker image
|
||||||
|
# -----------------------------
|
||||||
|
- name: Build Docker image
|
||||||
|
run: |
|
||||||
|
cd microservices/LocationsApi
|
||||||
|
docker build -t "${IMAGE_NAME}" .
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Save image as TAR on runner
|
||||||
|
# -----------------------------
|
||||||
|
- name: Save Docker image to TAR
|
||||||
|
run: |
|
||||||
|
docker save "${IMAGE_NAME}" -o "${IMAGE_TAR}"
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Copy TAR to each Kubernetes node
|
||||||
|
# -----------------------------
|
||||||
|
- name: Copy TAR to nodes
|
||||||
|
run: |
|
||||||
|
for node in ${NODES}; do
|
||||||
|
echo "Copying image tar to $node ..."
|
||||||
|
scp -o StrictHostKeyChecking=no "${IMAGE_TAR}" hz@"$node":/tmp/promiscuity-locations.tar
|
||||||
|
done
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Import image into containerd on each node
|
||||||
|
# -----------------------------
|
||||||
|
- name: Import image on nodes
|
||||||
|
run: |
|
||||||
|
for node in ${NODES}; do
|
||||||
|
echo "Importing image on $node ..."
|
||||||
|
ssh -o StrictHostKeyChecking=no hz@"$node" "sudo ctr -n k8s.io images import /tmp/promiscuity-locations.tar"
|
||||||
|
done
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# CLEANUP: delete TAR from nodes
|
||||||
|
# -----------------------------
|
||||||
|
- name: Clean TAR from nodes
|
||||||
|
run: |
|
||||||
|
for node in ${NODES}; do
|
||||||
|
echo "Removing image tar on $node ..."
|
||||||
|
ssh -o StrictHostKeyChecking=no hz@"$node" "rm -f /tmp/promiscuity-locations.tar"
|
||||||
|
done
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# CLEANUP: delete TAR from runner
|
||||||
|
# -----------------------------
|
||||||
|
- name: Clean TAR on runner
|
||||||
|
run: |
|
||||||
|
rm -f "${IMAGE_TAR}"
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Write kubeconfig from secret
|
||||||
|
# -----------------------------
|
||||||
|
- name: Write kubeconfig from secret
|
||||||
|
env:
|
||||||
|
KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG }}
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/kube
|
||||||
|
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Ensure namespace exists
|
||||||
|
# -----------------------------
|
||||||
|
- name: Create namespace if missing
|
||||||
|
env:
|
||||||
|
KUBECONFIG: /tmp/kube/config
|
||||||
|
run: |
|
||||||
|
kubectl create namespace promiscuity-locations --dry-run=client -o yaml | kubectl apply -f -
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Apply Kubernetes manifests
|
||||||
|
# -----------------------------
|
||||||
|
- name: Apply Locations deployment & service
|
||||||
|
env:
|
||||||
|
KUBECONFIG: /tmp/kube/config
|
||||||
|
run: |
|
||||||
|
kubectl apply -f microservices/LocationsApi/k8s/deployment.yaml -n promiscuity-locations
|
||||||
|
kubectl apply -f microservices/LocationsApi/k8s/service.yaml -n promiscuity-locations
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Rollout restart & wait
|
||||||
|
# -----------------------------
|
||||||
|
- name: Restart Locations deployment
|
||||||
|
env:
|
||||||
|
KUBECONFIG: /tmp/kube/config
|
||||||
|
run: |
|
||||||
|
kubectl rollout restart deployment/promiscuity-locations -n promiscuity-locations
|
||||||
|
kubectl rollout status deployment/promiscuity-locations -n promiscuity-locations
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Promiscuity
|
||||||
|
|
||||||
|
## Microservices
|
||||||
|
- Auth Microservice Swagger: https://pauth.ranaze.com/swagger/index.html
|
||||||
|
- Character Microservice Swagger: https://pchar.ranaze.com/swagger/index.html
|
||||||
|
- Location Microservice Swagger: https://ploc.ranaze.com/swagger/index.html
|
||||||
|
|
||||||
|
- Microservices README: microservices/README.md
|
||||||
|
|
||||||
|
## Test users
|
||||||
|
- `SUPER/SUPER` - Super User
|
||||||
|
- `test1/test1` - Super User
|
||||||
|
- `test3/test3` - User
|
||||||
|
|
||||||
|
## Controls
|
||||||
|
- Move: WASD
|
||||||
|
- Jump: Space
|
||||||
|
- Interact (enter/exit car): E
|
||||||
|
- Flashlight: F
|
||||||
|
- Phone: Tab
|
||||||
|
- Pause menu: Esc
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
Auth Microservice swagger is accessible at https://pauth.ranaze.com/swagger/index.html
|
|
||||||
|
|
||||||
Test Users:
|
|
||||||
SUPER/SUPER - Super User
|
|
||||||
test1/test1 - Super User
|
|
||||||
test3/test3 - User
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -0,0 +1,42 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://bnqaqbgynoyys"
|
||||||
|
path="res://.godot/imported/TestCharAnimated.glb-ecf7bb997b01494120b0dfccb4e1f064.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/TestCharAnimated.glb"
|
||||||
|
dest_files=["res://.godot/imported/TestCharAnimated.glb-ecf7bb997b01494120b0dfccb4e1f064.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=2
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
Binary file not shown.
@@ -0,0 +1,42 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://cpuebxqhtv72i"
|
||||||
|
path="res://.godot/imported/humanFemale.glb-45dfb97e0f5fa98244d8cb6255565c65.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/humanFemale.glb"
|
||||||
|
dest_files=["res://.godot/imported/humanFemale.glb-45dfb97e0f5fa98244d8cb6255565c65.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=2
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
@@ -25,6 +25,8 @@ MenuMusic="*res://scenes/UI/menu_music.tscn"
|
|||||||
MenuSfx="*res://scenes/UI/menu_sfx.tscn"
|
MenuSfx="*res://scenes/UI/menu_sfx.tscn"
|
||||||
AuthState="*res://scenes/UI/auth_state.gd"
|
AuthState="*res://scenes/UI/auth_state.gd"
|
||||||
CharacterService="*res://scenes/UI/character_service.gd"
|
CharacterService="*res://scenes/UI/character_service.gd"
|
||||||
|
SelectedCharacter="*res://scenes/UI/selected_character.gd"
|
||||||
|
DialogSystem="*res://scenes/UI/dialog_system.gd"
|
||||||
|
|
||||||
[dotnet]
|
[dotnet]
|
||||||
|
|
||||||
@@ -69,3 +71,13 @@ player_light={
|
|||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
player_phone={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194306,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
interact={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ extends Node3D
|
|||||||
@export var camera_path: NodePath
|
@export var camera_path: NodePath
|
||||||
@export var look_origin_path: NodePath = NodePath("Body/HeadPivot")
|
@export var look_origin_path: NodePath = NodePath("Body/HeadPivot")
|
||||||
@export var look_reference_path: NodePath = NodePath("Body")
|
@export var look_reference_path: NodePath = NodePath("Body")
|
||||||
|
@export var look_target_path: NodePath = NodePath("")
|
||||||
@export var lock_vertical: bool = true
|
@export var lock_vertical: bool = true
|
||||||
@export var vertical_unlock_height: float = 0.6
|
@export var vertical_unlock_height: float = 0.6
|
||||||
@export var vertical_lock_smooth_speed: float = 6.0
|
@export var vertical_lock_smooth_speed: float = 6.0
|
||||||
@@ -29,6 +30,7 @@ var _head_base_rot: Vector3
|
|||||||
var _vertical_lock_factor: float = 1.0
|
var _vertical_lock_factor: float = 1.0
|
||||||
var _vertical_hold_timer: float = 0.0
|
var _vertical_hold_timer: float = 0.0
|
||||||
var _look_reference: Node3D
|
var _look_reference: Node3D
|
||||||
|
var _look_target: Node3D
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -41,6 +43,7 @@ func _ready() -> void:
|
|||||||
_camera = _resolve_camera()
|
_camera = _resolve_camera()
|
||||||
_look_origin = get_node_or_null(look_origin_path) as Node3D
|
_look_origin = get_node_or_null(look_origin_path) as Node3D
|
||||||
_look_reference = get_node_or_null(look_reference_path) as Node3D
|
_look_reference = get_node_or_null(look_reference_path) as Node3D
|
||||||
|
_look_target = get_node_or_null(look_target_path) as Node3D
|
||||||
_head = get_node_or_null(head_path) as Node3D
|
_head = get_node_or_null(head_path) as Node3D
|
||||||
if _head:
|
if _head:
|
||||||
_head_base_rot = _head.rotation
|
_head_base_rot = _head.rotation
|
||||||
@@ -55,14 +58,20 @@ func _process(_delta: float) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _update_pupils() -> void:
|
func _update_pupils() -> void:
|
||||||
if _camera == null or not _camera.is_inside_tree():
|
if _look_target == null and look_target_path != NodePath(""):
|
||||||
_camera = _resolve_camera()
|
_look_target = get_node_or_null(look_target_path) as Node3D
|
||||||
if _camera == null:
|
if _look_target == null:
|
||||||
|
var viewport_cam := get_viewport().get_camera_3d()
|
||||||
|
if viewport_cam != null and viewport_cam != _camera:
|
||||||
|
_camera = viewport_cam
|
||||||
|
elif _camera == null or not _camera.is_inside_tree():
|
||||||
|
_camera = _resolve_camera()
|
||||||
|
if _look_target == null and _camera == null:
|
||||||
return
|
return
|
||||||
var origin := _look_origin
|
var origin := _look_origin
|
||||||
if origin == null:
|
if origin == null:
|
||||||
origin = self
|
origin = self
|
||||||
var target := _camera.global_position
|
var target := _look_target.global_position if _look_target != null else _camera.global_position
|
||||||
var dir_world := target - origin.global_position
|
var dir_world := target - origin.global_position
|
||||||
if dir_world.length_squared() <= 0.0001:
|
if dir_world.length_squared() <= 0.0001:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=14 format=3]
|
[gd_scene load_steps=14 format=3]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scenes/Characters/repo_bot.gd" id="1_repo_bot"]
|
[ext_resource type="Script" path="res://scenes/Characters/repo_bot.gd" id="1_repo_bot"]
|
||||||
|
[ext_resource type="Script" path="res://scenes/Interaction/dialog_trigger_area.gd" id="2_dialog"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_body"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_body"]
|
||||||
albedo_color = Color(0.78, 0.8, 0.82, 1)
|
albedo_color = Color(0.78, 0.8, 0.82, 1)
|
||||||
@@ -54,10 +55,18 @@ material = SubResource("StandardMaterial3D_accent")
|
|||||||
radius = 0.3
|
radius = 0.3
|
||||||
height = 1.1
|
height = 1.1
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_interact"]
|
||||||
|
radius = 1.7
|
||||||
|
|
||||||
[node name="RepoBot" type="Node3D"]
|
[node name="RepoBot" type="Node3D"]
|
||||||
script = ExtResource("1_repo_bot")
|
script = ExtResource("1_repo_bot")
|
||||||
|
|
||||||
[node name="Body" type="StaticBody3D" parent="."]
|
[node name="Body" type="RigidBody3D" parent="."]
|
||||||
|
mass = 1.5
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
angular_damp = 8.0
|
||||||
|
linear_damp = 0.5
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 0)
|
||||||
@@ -109,3 +118,14 @@ mesh = SubResource("CylinderMesh_limb")
|
|||||||
[node name="Backpack" type="MeshInstance3D" parent="Body"]
|
[node name="Backpack" type="MeshInstance3D" parent="Body"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0.22)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0.22)
|
||||||
mesh = SubResource("BoxMesh_pack")
|
mesh = SubResource("BoxMesh_pack")
|
||||||
|
|
||||||
|
[node name="InteractArea" type="Area3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0)
|
||||||
|
script = ExtResource("2_dialog")
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 1
|
||||||
|
prompt_text = "Press E to talk"
|
||||||
|
dialog_text = "Repo Bot: Welcome to Promiscuity.\n\nPress E again to close this dialog."
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="InteractArea"]
|
||||||
|
shape = SubResource("SphereShape3D_interact")
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
extends Area3D
|
||||||
|
|
||||||
|
@export var target_group: StringName = &"player"
|
||||||
|
@export var prompt_text := "Press E to talk"
|
||||||
|
@export_multiline var dialog_text := ""
|
||||||
|
@export var auto_popup := false
|
||||||
|
@export_enum("Every Entry", "Once") var auto_popup_mode := 0
|
||||||
|
|
||||||
|
var _has_triggered := false
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 1
|
||||||
|
body_entered.connect(_on_body_entered)
|
||||||
|
body_exited.connect(_on_body_exited)
|
||||||
|
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
if not auto_popup and DialogSystem:
|
||||||
|
DialogSystem.unregister_interactable(self)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_entered(body: Node) -> void:
|
||||||
|
if not (target_group == StringName() or body.is_in_group(target_group)):
|
||||||
|
return
|
||||||
|
if auto_popup:
|
||||||
|
if auto_popup_mode == 1 and _has_triggered:
|
||||||
|
return
|
||||||
|
_has_triggered = true
|
||||||
|
if DialogSystem and DialogSystem.has_method("show_text"):
|
||||||
|
DialogSystem.show_text(dialog_text)
|
||||||
|
return
|
||||||
|
if DialogSystem:
|
||||||
|
DialogSystem.register_interactable(self)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_exited(body: Node) -> void:
|
||||||
|
if auto_popup:
|
||||||
|
return
|
||||||
|
if target_group == StringName() or body.is_in_group(target_group):
|
||||||
|
DialogSystem.unregister_interactable(self)
|
||||||
|
|
||||||
|
|
||||||
|
func get_dialog_prompt() -> String:
|
||||||
|
return prompt_text
|
||||||
|
|
||||||
|
|
||||||
|
func get_dialog_text() -> String:
|
||||||
|
return dialog_text
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bk53njt7i3kmv
|
||||||
@@ -2,12 +2,24 @@ extends Node3D
|
|||||||
|
|
||||||
@export var day_length := 120.0 # seconds for full rotation
|
@export var day_length := 120.0 # seconds for full rotation
|
||||||
@export var start_light_angle := -90.0
|
@export var start_light_angle := -90.0
|
||||||
|
@export var show_spawn_dialog := true
|
||||||
|
@export_multiline var spawn_dialog_text := "Welcome to Promiscuity.\n\nPress E to close this message."
|
||||||
|
@export var spawn_dialog_auto_close_seconds := 4.0
|
||||||
var end_light_angle = start_light_angle + 360.0
|
var end_light_angle = start_light_angle + 360.0
|
||||||
var start_radians = start_light_angle * PI / 180
|
var start_radians = start_light_angle * PI / 180
|
||||||
var time := 0.0
|
var time := 0.0
|
||||||
|
|
||||||
@onready var sun := $DirectionalLight3D
|
@onready var sun := $DirectionalLight3D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if show_spawn_dialog and DialogSystem and DialogSystem.has_method("show_text"):
|
||||||
|
await get_tree().process_frame
|
||||||
|
DialogSystem.show_text(spawn_dialog_text)
|
||||||
|
if spawn_dialog_auto_close_seconds > 0.0:
|
||||||
|
await get_tree().create_timer(spawn_dialog_auto_close_seconds).timeout
|
||||||
|
if DialogSystem and DialogSystem.has_method("close_if_text"):
|
||||||
|
DialogSystem.close_if_text(spawn_dialog_text)
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
time = fmod((time + delta), day_length)
|
time = fmod((time + delta), day_length)
|
||||||
var t = time / day_length
|
var t = time / day_length
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=17 format=3 uid="uid://dchj6g2i8ebph"]
|
[gd_scene load_steps=23 format=3 uid="uid://dchj6g2i8ebph"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://brgmxhhhtakja" path="res://scenes/Levels/level.gd" id="1_a4mo8"]
|
[ext_resource type="Script" uid="uid://brgmxhhhtakja" path="res://scenes/Levels/level.gd" id="1_a4mo8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bb6hj6l23043x" path="res://assets/models/human.blend" id="1_eg4yq"]
|
[ext_resource type="PackedScene" uid="uid://bb6hj6l23043x" path="res://assets/models/human.blend" id="1_eg4yq"]
|
||||||
@@ -6,6 +6,9 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://c5of6aaxop1hl" path="res://scenes/block.tscn" id="2_tc7dm"]
|
[ext_resource type="PackedScene" uid="uid://c5of6aaxop1hl" path="res://scenes/block.tscn" id="2_tc7dm"]
|
||||||
[ext_resource type="Script" uid="uid://b7fopt7sx74g8" path="res://scenes/Levels/menu.gd" id="3_tc7dm"]
|
[ext_resource type="Script" uid="uid://b7fopt7sx74g8" path="res://scenes/Levels/menu.gd" id="3_tc7dm"]
|
||||||
[ext_resource type="PackedScene" path="res://scenes/Characters/repo_bot.tscn" id="4_repo"]
|
[ext_resource type="PackedScene" path="res://scenes/Characters/repo_bot.tscn" id="4_repo"]
|
||||||
|
[ext_resource type="PackedScene" path="res://scenes/Vehicles/car.tscn" id="5_car"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bnqaqbgynoyys" path="res://assets/models/TestCharAnimated.glb" id="5_fi66n"]
|
||||||
|
[ext_resource type="Script" uid="uid://bk53njt7i3kmv" path="res://scenes/Interaction/dialog_trigger_area.gd" id="6_dialog"]
|
||||||
|
|
||||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_2q6dc"]
|
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_2q6dc"]
|
||||||
bounce = 0.5
|
bounce = 0.5
|
||||||
@@ -19,6 +22,20 @@ bounce = 0.5
|
|||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_mx8sn"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_mx8sn"]
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_dialog_zone"]
|
||||||
|
radius = 2.5
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dialog_zone"]
|
||||||
|
transparency = 1
|
||||||
|
cull_mode = 2
|
||||||
|
shading_mode = 0
|
||||||
|
albedo_color = Color(0.2, 0.8, 0.35, 0.18)
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_dialog_zone"]
|
||||||
|
material = SubResource("StandardMaterial3D_dialog_zone")
|
||||||
|
radius = 2.5
|
||||||
|
height = 5.0
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_2q6dc"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_2q6dc"]
|
||||||
size = Vector3(1080, 2, 1080)
|
size = Vector3(1080, 2, 1080)
|
||||||
|
|
||||||
@@ -42,6 +59,7 @@ script = ExtResource("1_a4mo8")
|
|||||||
|
|
||||||
[node name="RepoBot" parent="." instance=ExtResource("4_repo")]
|
[node name="RepoBot" parent="." instance=ExtResource("4_repo")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9426608, 0, -4.4451966)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.9426608, 0, -4.4451966)
|
||||||
|
look_target_path = NodePath("../Player")
|
||||||
|
|
||||||
[node name="Thing" type="RigidBody3D" parent="."]
|
[node name="Thing" type="RigidBody3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3.7986288)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -3.7986288)
|
||||||
@@ -59,19 +77,173 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
|||||||
mesh = SubResource("SphereMesh_w7c3h")
|
mesh = SubResource("SphereMesh_w7c3h")
|
||||||
|
|
||||||
[node name="Player" type="RigidBody3D" parent="."]
|
[node name="Player" type="RigidBody3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.6563287, 0, 0)
|
||||||
physics_material_override = SubResource("PhysicsMaterial_w8frs")
|
physics_material_override = SubResource("PhysicsMaterial_w8frs")
|
||||||
script = ExtResource("1_muv8p")
|
script = ExtResource("1_muv8p")
|
||||||
camera_path = NodePath("Camera3D")
|
camera_path = NodePath("Camera3D")
|
||||||
|
phone_path = NodePath("../PhoneUI")
|
||||||
|
|
||||||
|
[node name="TestCharAnimated" parent="Player" instance=ExtResource("5_fi66n")]
|
||||||
|
transform = Transform3D(-0.9998549, 0, 0.01703362, 0, 1, 0, -0.01703362, 0, -0.9998549, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="Player/TestCharAnimated/Armature" index="0"]
|
||||||
|
bones/0/position = Vector3(0.002616825, -0.0012634661, -0.98995954)
|
||||||
|
bones/0/rotation = Quaternion(-0.7278332, -0.05342924, 0.012382713, 0.6835575)
|
||||||
|
bones/1/position = Vector3(8.593209e-06, 0.09923458, -0.012273359)
|
||||||
|
bones/1/rotation = Quaternion(-0.03163086, 0.011397719, 0.022761386, 0.9991754)
|
||||||
|
bones/2/position = Vector3(-2.2989244e-10, 0.117319785, 2.9730852e-08)
|
||||||
|
bones/2/rotation = Quaternion(0.0102874795, 0.0011603195, 0.013812066, 0.99985105)
|
||||||
|
bones/3/position = Vector3(-2.3358266e-09, 0.13458829, -1.382244e-08)
|
||||||
|
bones/3/rotation = Quaternion(0.06755522, 0.0021543663, 0.013774819, 0.99761814)
|
||||||
|
bones/4/position = Vector3(2.508626e-07, 0.15027755, 0.008779066)
|
||||||
|
bones/4/rotation = Quaternion(0.051899955, -0.00089839776, 0.0039267424, 0.9986442)
|
||||||
|
bones/5/position = Vector3(2.152588e-08, 0.103218146, 0.03142428)
|
||||||
|
bones/5/rotation = Quaternion(-0.06595736, 0.011938445, -0.0014933152, 0.9977499)
|
||||||
|
bones/6/position = Vector3(1.5477327e-06, 0.18474667, 0.06636399)
|
||||||
|
bones/7/position = Vector3(0.061058242, 0.09106279, 0.0075706206)
|
||||||
|
bones/7/rotation = Quaternion(-0.598225, -0.43451372, 0.5076822, -0.44224826)
|
||||||
|
bones/8/position = Vector3(1.1842036e-08, 0.12922287, 5.2578955e-08)
|
||||||
|
bones/8/rotation = Quaternion(0.543452, 0.18399428, 0.20302251, 0.79346573)
|
||||||
|
bones/9/position = Vector3(1.5054144e-07, 0.2740467, 2.2048344e-08)
|
||||||
|
bones/9/rotation = Quaternion(-5.2907154e-09, -1.1239725e-06, 0.012734968, 0.999919)
|
||||||
|
bones/10/position = Vector3(1.9432857e-08, 0.27614468, 9.6609995e-08)
|
||||||
|
bones/10/rotation = Quaternion(0.04830448, -0.2848921, 0.026799988, 0.9569665)
|
||||||
|
bones/11/position = Vector3(-0.030029751, 0.037888147, 0.021671427)
|
||||||
|
bones/11/rotation = Quaternion(0.2098604, -0.059559863, 0.20750383, 0.9536002)
|
||||||
|
bones/12/position = Vector3(-3.3527822e-08, 0.0474497, -1.48403245e-08)
|
||||||
|
bones/12/rotation = Quaternion(-0.14269812, 0.08661232, -0.24053419, 0.9561793)
|
||||||
|
bones/13/position = Vector3(-9.313215e-09, 0.043821093, 1.7813335e-08)
|
||||||
|
bones/13/rotation = Quaternion(-0.121022485, -0.07554186, 0.024044419, 0.98947906)
|
||||||
|
bones/14/position = Vector3(-4.847594e-08, 0.034590863, -5.3379924e-08)
|
||||||
|
bones/15/position = Vector3(-0.02822038, 0.12266627, 0.0023182186)
|
||||||
|
bones/15/rotation = Quaternion(0.06621808, 0.00073213095, 0.008435749, 0.99776924)
|
||||||
|
bones/16/position = Vector3(-8.136956e-09, 0.03891963, -1.4837047e-08)
|
||||||
|
bones/16/rotation = Quaternion(0.1509963, 7.805282e-07, -0.015479834, 0.98841316)
|
||||||
|
bones/17/position = Vector3(7.499967e-09, 0.034151517, -5.4443618e-08)
|
||||||
|
bones/17/rotation = Quaternion(0.070082076, 7.71772e-07, -0.007181638, 0.99751544)
|
||||||
|
bones/18/position = Vector3(2.700483e-09, 0.030779874, 4.9589467e-08)
|
||||||
|
bones/19/position = Vector3(-1.2452401e-07, 0.12775533, -8.01722e-08)
|
||||||
|
bones/19/rotation = Quaternion(0.13653132, -0.0038339633, -0.022952663, 0.9903624)
|
||||||
|
bones/20/position = Vector3(2.5990463e-09, 0.036139663, 1.713758e-10)
|
||||||
|
bones/20/rotation = Quaternion(0.15125485, 1.1823237e-06, -0.015500045, 0.9883733)
|
||||||
|
bones/21/position = Vector3(2.9034163e-07, 0.034597658, -3.6051716e-08)
|
||||||
|
bones/21/rotation = Quaternion(0.1599333, 1.4124467e-06, -0.016389191, 0.98699176)
|
||||||
|
bones/22/position = Vector3(-3.0519334e-07, 0.03680197, -9.1170705e-08)
|
||||||
|
bones/23/position = Vector3(0.022166358, 0.12147022, -9.993157e-05)
|
||||||
|
bones/23/rotation = Quaternion(0.18325116, -0.004651328, -0.031451236, 0.9825519)
|
||||||
|
bones/24/position = Vector3(4.5585904e-09, 0.036011815, -8.07135e-09)
|
||||||
|
bones/24/rotation = Quaternion(0.18138836, 1.5675009e-06, -0.018595627, 0.9832358)
|
||||||
|
bones/25/position = Vector3(-9.647604e-09, 0.033073086, -1.46341534e-08)
|
||||||
|
bones/25/rotation = Quaternion(0.1552087, 2.2643005e-06, -0.015905593, 0.9877537)
|
||||||
|
bones/26/position = Vector3(-2.434721e-07, 0.03660111, 2.471306e-07)
|
||||||
|
bones/27/position = Vector3(0.04725836, 0.109081924, 0.0022613404)
|
||||||
|
bones/27/rotation = Quaternion(0.23387046, -0.0035344863, -0.048872076, 0.97103226)
|
||||||
|
bones/28/position = Vector3(4.3135207e-09, 0.041366525, 3.569472e-08)
|
||||||
|
bones/28/rotation = Quaternion(0.15124865, 1.4340599e-05, -0.015863812, 0.98836845)
|
||||||
|
bones/29/position = Vector3(1.195453e-08, 0.02594832, 1.5542597e-08)
|
||||||
|
bones/29/rotation = Quaternion(0.14350323, 3.322942e-05, -0.014478063, 0.98954403)
|
||||||
|
bones/30/position = Vector3(-2.4944999e-08, 0.029238665, 6.2325825e-08)
|
||||||
|
bones/31/position = Vector3(-0.06105696, 0.09106397, 0.007570758)
|
||||||
|
bones/31/rotation = Quaternion(0.60012215, -0.43466684, 0.5242142, 0.41966385)
|
||||||
|
bones/32/position = Vector3(2.116817e-08, 0.12922288, 7.016769e-08)
|
||||||
|
bones/32/rotation = Quaternion(0.46436408, -0.26298717, -0.23268588, 0.8130566)
|
||||||
|
bones/33/position = Vector3(-2.350565e-08, 0.27404687, 1.5161348e-08)
|
||||||
|
bones/33/rotation = Quaternion(7.69042e-08, -5.0622584e-06, -0.058380682, 0.9982944)
|
||||||
|
bones/34/position = Vector3(1.3629875e-07, 0.27614468, -9.158248e-09)
|
||||||
|
bones/34/rotation = Quaternion(0.059025347, 0.17513894, -0.005969527, 0.9827547)
|
||||||
|
bones/35/position = Vector3(0.030029776, 0.03788806, 0.021671649)
|
||||||
|
bones/35/rotation = Quaternion(0.21378386, 0.065372065, -0.22564878, 0.94821185)
|
||||||
|
bones/36/position = Vector3(-2.7939748e-09, 0.04744962, -1.7240383e-08)
|
||||||
|
bones/36/rotation = Quaternion(-0.14410053, -0.076146945, 0.2772088, 0.9468854)
|
||||||
|
bones/37/position = Vector3(5.58785e-09, 0.04382136, 3.566345e-08)
|
||||||
|
bones/37/rotation = Quaternion(-0.1552004, 0.07467698, -0.026057797, 0.9847117)
|
||||||
|
bones/38/position = Vector3(8.2187e-08, 0.034590647, -2.4929412e-07)
|
||||||
|
bones/39/position = Vector3(0.028220426, 0.1226661, 0.0023184721)
|
||||||
|
bones/39/rotation = Quaternion(0.059513006, -0.0009918809, -0.010980465, 0.99816674)
|
||||||
|
bones/40/position = Vector3(-1.1795999e-08, 0.038919587, -4.9162594e-09)
|
||||||
|
bones/40/rotation = Quaternion(0.15128906, 2.1640317e-06, 0.012328284, 0.98841274)
|
||||||
|
bones/41/position = Vector3(-1.4053852e-07, 0.034151636, -1.1118345e-08)
|
||||||
|
bones/41/rotation = Quaternion(0.07021882, 5.966413e-07, 0.0057199914, 0.9975152)
|
||||||
|
bones/42/position = Vector3(-7.1266735e-09, 0.030779934, 3.7720538e-10)
|
||||||
|
bones/43/position = Vector3(1.69263e-07, 0.12775521, 2.5128352e-07)
|
||||||
|
bones/43/rotation = Quaternion(0.13051407, 0.003691554, 0.018921439, 0.99125904)
|
||||||
|
bones/44/position = Vector3(4.8907918e-09, 0.036139727, -8.499214e-09)
|
||||||
|
bones/44/rotation = Quaternion(0.15154669, 1.6962191e-06, 0.012345144, 0.988373)
|
||||||
|
bones/45/position = Vector3(-2.8403383e-07, 0.03459763, -4.4995545e-09)
|
||||||
|
bones/45/rotation = Quaternion(0.16023898, 1.233635e-06, 0.013053549, 0.98699194)
|
||||||
|
bones/46/position = Vector3(2.8485744e-07, 0.03680191, -9.493007e-09)
|
||||||
|
bones/47/position = Vector3(-0.022166327, 0.12146996, -9.982591e-05)
|
||||||
|
bones/47/rotation = Quaternion(0.1774532, 0.0045050457, 0.02645378, 0.98376334)
|
||||||
|
bones/48/position = Vector3(4.6136024e-09, 0.036011953, 3.056637e-08)
|
||||||
|
bones/48/rotation = Quaternion(0.18173504, 1.8501213e-06, 0.014812392, 0.98323596)
|
||||||
|
bones/49/position = Vector3(-3.407626e-08, 0.033073153, 1.8664657e-08)
|
||||||
|
bones/49/rotation = Quaternion(0.15551038, 3.26233e-07, 0.012668259, 0.98775303)
|
||||||
|
bones/50/position = Vector3(2.3113911e-07, 0.03660121, -1.1142021e-08)
|
||||||
|
bones/51/position = Vector3(-0.047258336, 0.109081805, 0.0022614468)
|
||||||
|
bones/51/rotation = Quaternion(0.22849467, 0.003407588, 0.042977322, 0.97259015)
|
||||||
|
bones/52/position = Vector3(-1.5261804e-08, 0.041366428, -1.9607107e-09)
|
||||||
|
bones/52/rotation = Quaternion(0.1515478, 7.4422354e-07, 0.01235583, 0.98837274)
|
||||||
|
bones/53/position = Vector3(1.4340932e-08, 0.025948457, 3.3946527e-08)
|
||||||
|
bones/53/rotation = Quaternion(0.14377311, 5.8452275e-07, 0.011701506, 0.98954153)
|
||||||
|
bones/54/position = Vector3(4.750415e-09, 0.029238641, -1.2388978e-09)
|
||||||
|
bones/55/position = Vector3(0.09123873, -0.06657194, -0.0005540352)
|
||||||
|
bones/55/rotation = Quaternion(0.136, 0.07837879, 0.98449296, -0.07832257)
|
||||||
|
bones/56/position = Vector3(-1.3288446e-09, 0.40599436, 1.0443015e-08)
|
||||||
|
bones/56/rotation = Quaternion(-0.1325433, -0.014470397, 0.03215335, 0.9905499)
|
||||||
|
bones/57/position = Vector3(5.707578e-09, 0.42099008, -1.5425995e-08)
|
||||||
|
bones/57/rotation = Quaternion(0.5344709, -0.021695312, -0.027452054, 0.8444624)
|
||||||
|
bones/58/position = Vector3(-6.5650525e-09, 0.15721555, -2.6694579e-08)
|
||||||
|
bones/58/rotation = Quaternion(0.2693438, -0.032380052, -0.014592491, 0.96238893)
|
||||||
|
bones/59/position = Vector3(2.4854705e-08, 0.09999996, -3.1755625e-09)
|
||||||
|
bones/60/position = Vector3(-0.091250315, -0.066556, -0.0005535231)
|
||||||
|
bones/60/rotation = Quaternion(-0.09026675, -0.016730117, 0.9954149, -0.026855767)
|
||||||
|
bones/61/position = Vector3(1.3129254e-08, 0.40599442, 3.8557886e-09)
|
||||||
|
bones/61/rotation = Quaternion(-0.07409451, 0.08402694, -0.024555309, 0.9934016)
|
||||||
|
bones/62/position = Vector3(-7.3885964e-10, 0.42099023, -5.226429e-09)
|
||||||
|
bones/62/rotation = Quaternion(0.5654398, 0.01134551, -0.008516049, 0.8246677)
|
||||||
|
bones/63/position = Vector3(7.93632e-09, 0.1572156, -2.6982683e-10)
|
||||||
|
bones/63/rotation = Quaternion(0.2890854, 0.031904142, 0.014081784, 0.9566679)
|
||||||
|
bones/64/position = Vector3(7.567915e-10, 0.099999994, -3.2595668e-09)
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
shape = SubResource("SphereShape3D_mx8sn")
|
shape = SubResource("SphereShape3D_mx8sn")
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="Player"]
|
[node name="Camera3D" type="Camera3D" parent="Player"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.31670225, 0)
|
transform = Transform3D(0.9989785, -4.651856e-10, -0.045188628, 0.006969331, 0.9880354, 0.15407, 0.044647958, -0.15422754, 0.9870261, 0.22036135, 1.8988357, 0.64972365)
|
||||||
current = true
|
current = true
|
||||||
|
fov = 49.0
|
||||||
|
|
||||||
[node name="SpotLight3D" type="SpotLight3D" parent="Player"]
|
[node name="SpotLight3D" type="SpotLight3D" parent="Player"]
|
||||||
|
|
||||||
|
[node name="Car" parent="." instance=ExtResource("5_car")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -3)
|
||||||
|
|
||||||
|
[node name="DialogZone" type="Area3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, -2.5)
|
||||||
|
script = ExtResource("6_dialog")
|
||||||
|
prompt_text = "Press E to inspect area"
|
||||||
|
dialog_text = "Dialog trigger area"
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DialogZone"]
|
||||||
|
shape = SubResource("SphereShape3D_dialog_zone")
|
||||||
|
|
||||||
|
[node name="Visual" type="MeshInstance3D" parent="DialogZone"]
|
||||||
|
mesh = SubResource("SphereMesh_dialog_zone")
|
||||||
|
|
||||||
|
[node name="AutoDialogZone" type="Area3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0, -6.5)
|
||||||
|
script = ExtResource("6_dialog")
|
||||||
|
dialog_text = "Auto dialog trigger"
|
||||||
|
auto_popup = true
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="AutoDialogZone"]
|
||||||
|
shape = SubResource("SphereShape3D_dialog_zone")
|
||||||
|
|
||||||
|
[node name="Visual" type="MeshInstance3D" parent="AutoDialogZone"]
|
||||||
|
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
|
||||||
|
mesh = SubResource("SphereMesh_dialog_zone")
|
||||||
|
|
||||||
[node name="Ground" type="StaticBody3D" parent="."]
|
[node name="Ground" type="StaticBody3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
||||||
|
|
||||||
@@ -79,6 +251,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
|||||||
shape = SubResource("BoxShape3D_2q6dc")
|
shape = SubResource("BoxShape3D_2q6dc")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Ground"]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Ground"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00053596497, 0.0075991154, -0.0019865036)
|
||||||
mesh = SubResource("BoxMesh_w7c3h")
|
mesh = SubResource("BoxMesh_w7c3h")
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
@@ -134,9 +307,38 @@ text = "Main Menu"
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Quit"
|
text = "Quit"
|
||||||
|
|
||||||
|
[node name="PhoneUI" type="CanvasLayer" parent="."]
|
||||||
|
layer = 5
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="PhoneUI"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="PhoneFrame" type="ColorRect" parent="PhoneUI/Control"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -180.0
|
||||||
|
offset_top = -320.0
|
||||||
|
offset_right = 180.0
|
||||||
|
offset_bottom = 320.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0.08, 0.08, 0.1, 1)
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_a4mo8")
|
environment = SubResource("Environment_a4mo8")
|
||||||
|
|
||||||
[connection signal="pressed" from="Menu/Control/VBoxContainer/ContinueButton" to="Menu" method="_on_continue_button_pressed"]
|
[connection signal="pressed" from="Menu/Control/VBoxContainer/ContinueButton" to="Menu" method="_on_continue_button_pressed"]
|
||||||
[connection signal="pressed" from="Menu/Control/VBoxContainer/MainMenuButton" to="Menu" method="_on_main_menu_button_pressed"]
|
[connection signal="pressed" from="Menu/Control/VBoxContainer/MainMenuButton" to="Menu" method="_on_main_menu_button_pressed"]
|
||||||
[connection signal="pressed" from="Menu/Control/VBoxContainer/QuitButton" to="Menu" method="_on_quit_button_pressed"]
|
[connection signal="pressed" from="Menu/Control/VBoxContainer/QuitButton" to="Menu" method="_on_quit_button_pressed"]
|
||||||
|
|
||||||
|
[editable path="Player/TestCharAnimated"]
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var tile_size := 4.0
|
||||||
|
@export var block_height := 1.0
|
||||||
|
|
||||||
|
@onready var _block: MeshInstance3D = $TerrainBlock
|
||||||
|
@onready var _camera: Camera3D = $Camera3D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var coord := SelectedCharacter.get_coord()
|
||||||
|
var block_pos := Vector3(coord.x * tile_size, block_height * 0.5, coord.y * tile_size)
|
||||||
|
_block.position = block_pos
|
||||||
|
_block.scale = Vector3(tile_size, block_height, tile_size)
|
||||||
|
if _camera:
|
||||||
|
_camera.look_at(block_pos, Vector3.UP)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://1fico5npv6dy
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://b7p7k1i4t0m2l"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scenes/Levels/location_level.gd" id="1_6y4q1"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yu2x4"]
|
||||||
|
albedo_color = Color(0.2, 0.6, 0.2, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_t2a5k"]
|
||||||
|
material = SubResource("StandardMaterial3D_yu2x4")
|
||||||
|
|
||||||
|
[node name="LocationLevel" type="Node3D"]
|
||||||
|
script = ExtResource("1_6y4q1")
|
||||||
|
|
||||||
|
[node name="TerrainBlock" type="MeshInstance3D" parent="."]
|
||||||
|
mesh = SubResource("BoxMesh_t2a5k")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 0, 6, 0)
|
||||||
|
shadow_enabled = true
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.92388, 0.382683, 0, -0.382683, 0.92388, 0, 6, 10)
|
||||||
|
current = true
|
||||||
@@ -17,10 +17,12 @@ func _input(event):
|
|||||||
func pause_game():
|
func pause_game():
|
||||||
get_tree().paused = true
|
get_tree().paused = true
|
||||||
visible = true
|
visible = true
|
||||||
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||||
|
|
||||||
func resume_game():
|
func resume_game():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
visible = false
|
visible = false
|
||||||
|
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
|
|
||||||
func _on_quit_button_pressed():
|
func _on_quit_button_pressed():
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
@@ -30,6 +32,7 @@ func _on_continue_button_pressed():
|
|||||||
|
|
||||||
func _on_main_menu_button_pressed():
|
func _on_main_menu_button_pressed():
|
||||||
resume_game()
|
resume_game()
|
||||||
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||||
get_tree().change_scene_to_file(START_SCREEN_SCENE)
|
get_tree().change_scene_to_file(START_SCREEN_SCENE)
|
||||||
|
|
||||||
func _register_focus_sounds() -> void:
|
func _register_focus_sounds() -> void:
|
||||||
|
|||||||
@@ -97,6 +97,21 @@ func _on_delete_button_pressed() -> void:
|
|||||||
_character_list.remove_item(index)
|
_character_list.remove_item(index)
|
||||||
_status_label.text = "Character deleted."
|
_status_label.text = "Character deleted."
|
||||||
|
|
||||||
|
func _on_select_button_pressed() -> void:
|
||||||
|
var selected := _character_list.get_selected_items()
|
||||||
|
if selected.is_empty():
|
||||||
|
_status_label.text = "Select a character first."
|
||||||
|
return
|
||||||
|
|
||||||
|
var index := selected[0]
|
||||||
|
if index < 0 or index >= _characters.size():
|
||||||
|
_status_label.text = "Invalid selection."
|
||||||
|
return
|
||||||
|
|
||||||
|
var character: Dictionary = _characters[index]
|
||||||
|
SelectedCharacter.set_character(character)
|
||||||
|
get_tree().change_scene_to_file("res://scenes/Levels/location_level.tscn")
|
||||||
|
|
||||||
func _on_refresh_button_pressed() -> void:
|
func _on_refresh_button_pressed() -> void:
|
||||||
_load_characters()
|
_load_characters()
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,13 @@ layout_mode = 2
|
|||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
theme_override_constants/separation = 10
|
theme_override_constants/separation = 10
|
||||||
|
|
||||||
|
[node name="SelectButton" type="Button" parent="MarginContainer/ContentCenter/ContentVBox/ActionHBox"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
theme = ExtResource("4_5b3b7")
|
||||||
|
text = "SELECT"
|
||||||
|
text_alignment = 1
|
||||||
|
|
||||||
[node name="RefreshButton" type="Button" parent="MarginContainer/ContentCenter/ContentVBox/ActionHBox"]
|
[node name="RefreshButton" type="Button" parent="MarginContainer/ContentCenter/ContentVBox/ActionHBox"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
@@ -124,6 +131,7 @@ text_alignment = 1
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/AddHBox/AddButton" to="." method="_on_add_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/AddHBox/AddButton" to="." method="_on_add_button_pressed"]
|
||||||
|
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/SelectButton" to="." method="_on_select_button_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/RefreshButton" to="." method="_on_refresh_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/RefreshButton" to="." method="_on_refresh_button_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/DeleteButton" to="." method="_on_delete_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/DeleteButton" to="." method="_on_delete_button_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/BackButton" to="." method="_on_back_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/ContentCenter/ContentVBox/ActionHBox/BackButton" to="." method="_on_back_button_pressed"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
const CHARACTER_API_URL := "https://pcharacter.ranaze.com/api/Characters"
|
const CHARACTER_API_URL := "https://pchar.ranaze.com/api/Characters"
|
||||||
|
|
||||||
func list_characters() -> Dictionary:
|
func list_characters() -> Dictionary:
|
||||||
return await _request(HTTPClient.METHOD_GET, CHARACTER_API_URL)
|
return await _request(HTTPClient.METHOD_GET, CHARACTER_API_URL)
|
||||||
|
|||||||
@@ -0,0 +1,146 @@
|
|||||||
|
extends CanvasLayer
|
||||||
|
|
||||||
|
var _interactables: Array[Node] = []
|
||||||
|
var _active_interactable: Node = null
|
||||||
|
var _dialog_visible := false
|
||||||
|
|
||||||
|
var _prompt_label: Label
|
||||||
|
var _dialog_panel: PanelContainer
|
||||||
|
var _dialog_label: RichTextLabel
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
layer = 50
|
||||||
|
process_mode = Node.PROCESS_MODE_ALWAYS
|
||||||
|
_setup_ui()
|
||||||
|
_set_dialog_visible(false)
|
||||||
|
_update_prompt_visibility()
|
||||||
|
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if Input.is_action_just_pressed("interact"):
|
||||||
|
if _dialog_visible:
|
||||||
|
_set_dialog_visible(false)
|
||||||
|
return
|
||||||
|
if _active_interactable != null:
|
||||||
|
_open_dialog_for(_active_interactable)
|
||||||
|
|
||||||
|
|
||||||
|
func register_interactable(interactable: Node) -> void:
|
||||||
|
if interactable == null:
|
||||||
|
return
|
||||||
|
if _interactables.has(interactable):
|
||||||
|
return
|
||||||
|
_interactables.append(interactable)
|
||||||
|
_refresh_active_interactable()
|
||||||
|
|
||||||
|
|
||||||
|
func unregister_interactable(interactable: Node) -> void:
|
||||||
|
if interactable == null:
|
||||||
|
return
|
||||||
|
_interactables.erase(interactable)
|
||||||
|
if _active_interactable == interactable and _dialog_visible:
|
||||||
|
_set_dialog_visible(false)
|
||||||
|
_refresh_active_interactable()
|
||||||
|
|
||||||
|
|
||||||
|
func _refresh_active_interactable() -> void:
|
||||||
|
while _interactables.size() > 0 and not is_instance_valid(_interactables[_interactables.size() - 1]):
|
||||||
|
_interactables.pop_back()
|
||||||
|
_active_interactable = _interactables[_interactables.size() - 1] if _interactables.size() > 0 else null
|
||||||
|
if _dialog_visible and _active_interactable != null:
|
||||||
|
_dialog_label.text = _get_dialog_text(_active_interactable)
|
||||||
|
_update_prompt_visibility()
|
||||||
|
|
||||||
|
|
||||||
|
func _open_dialog_for(interactable: Node) -> void:
|
||||||
|
if _dialog_label:
|
||||||
|
_dialog_label.text = _get_dialog_text(interactable)
|
||||||
|
_set_dialog_visible(true)
|
||||||
|
|
||||||
|
|
||||||
|
func show_text(text: String) -> void:
|
||||||
|
if _dialog_label:
|
||||||
|
_dialog_label.text = text
|
||||||
|
_set_dialog_visible(true)
|
||||||
|
|
||||||
|
|
||||||
|
func close_if_text(expected_text: String) -> void:
|
||||||
|
if not _dialog_visible:
|
||||||
|
return
|
||||||
|
if _dialog_label == null:
|
||||||
|
return
|
||||||
|
if _dialog_label.text != expected_text:
|
||||||
|
return
|
||||||
|
_set_dialog_visible(false)
|
||||||
|
|
||||||
|
|
||||||
|
func _set_dialog_visible(dialog_open: bool) -> void:
|
||||||
|
_dialog_visible = dialog_open
|
||||||
|
if _dialog_panel:
|
||||||
|
_dialog_panel.visible = _dialog_visible
|
||||||
|
_update_prompt_visibility()
|
||||||
|
|
||||||
|
|
||||||
|
func _update_prompt_visibility() -> void:
|
||||||
|
if _prompt_label == null:
|
||||||
|
return
|
||||||
|
var has_active := _active_interactable != null
|
||||||
|
_prompt_label.visible = has_active and not _dialog_visible
|
||||||
|
if _prompt_label.visible:
|
||||||
|
_prompt_label.text = _get_prompt_text(_active_interactable)
|
||||||
|
|
||||||
|
|
||||||
|
func _get_prompt_text(interactable: Node) -> String:
|
||||||
|
if interactable == null:
|
||||||
|
return ""
|
||||||
|
if interactable.has_method("get_dialog_prompt"):
|
||||||
|
return String(interactable.call("get_dialog_prompt"))
|
||||||
|
return "Press E to interact"
|
||||||
|
|
||||||
|
|
||||||
|
func _get_dialog_text(interactable: Node) -> String:
|
||||||
|
if interactable == null:
|
||||||
|
return ""
|
||||||
|
if interactable.has_method("get_dialog_text"):
|
||||||
|
return String(interactable.call("get_dialog_text"))
|
||||||
|
return "..."
|
||||||
|
|
||||||
|
|
||||||
|
func _setup_ui() -> void:
|
||||||
|
var root := Control.new()
|
||||||
|
root.name = "DialogRoot"
|
||||||
|
root.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||||
|
root.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
add_child(root)
|
||||||
|
|
||||||
|
_prompt_label = Label.new()
|
||||||
|
_prompt_label.name = "PromptLabel"
|
||||||
|
_prompt_label.set_anchors_preset(Control.PRESET_CENTER_BOTTOM)
|
||||||
|
_prompt_label.offset_left = -140.0
|
||||||
|
_prompt_label.offset_top = -64.0
|
||||||
|
_prompt_label.offset_right = 140.0
|
||||||
|
_prompt_label.offset_bottom = -36.0
|
||||||
|
_prompt_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||||
|
_prompt_label.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
_prompt_label.text = "Press E to interact"
|
||||||
|
root.add_child(_prompt_label)
|
||||||
|
|
||||||
|
_dialog_panel = PanelContainer.new()
|
||||||
|
_dialog_panel.name = "DialogPanel"
|
||||||
|
_dialog_panel.visible = false
|
||||||
|
_dialog_panel.set_anchors_preset(Control.PRESET_CENTER_BOTTOM)
|
||||||
|
_dialog_panel.offset_left = -300.0
|
||||||
|
_dialog_panel.offset_top = -220.0
|
||||||
|
_dialog_panel.offset_right = 300.0
|
||||||
|
_dialog_panel.offset_bottom = -80.0
|
||||||
|
_dialog_panel.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
root.add_child(_dialog_panel)
|
||||||
|
|
||||||
|
_dialog_label = RichTextLabel.new()
|
||||||
|
_dialog_label.name = "DialogText"
|
||||||
|
_dialog_label.custom_minimum_size = Vector2(560.0, 120.0)
|
||||||
|
_dialog_label.fit_content = true
|
||||||
|
_dialog_label.scroll_active = false
|
||||||
|
_dialog_label.bbcode_enabled = true
|
||||||
|
_dialog_label.text = ""
|
||||||
|
_dialog_panel.add_child(_dialog_label)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://be24usagr8kml
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
var character: Dictionary = {}
|
||||||
|
|
||||||
|
func set_character(data: Dictionary) -> void:
|
||||||
|
character = data
|
||||||
|
|
||||||
|
func clear() -> void:
|
||||||
|
character = {}
|
||||||
|
|
||||||
|
func get_coord() -> Vector2:
|
||||||
|
var coord: Dictionary = character.get("coord", {})
|
||||||
|
return Vector2(
|
||||||
|
float(coord.get("x", 0)),
|
||||||
|
float(coord.get("y", 0))
|
||||||
|
)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bbl0our5y4k7a
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
extends RigidBody3D
|
||||||
|
|
||||||
|
@export var drive_speed := 18.0
|
||||||
|
@export var drive_accel := 20.0
|
||||||
|
@export var brake_strength := 28.0
|
||||||
|
@export var turn_speed := 2.0
|
||||||
|
@export var turn_accel := 8.0
|
||||||
|
@export var lateral_damp := 10.0
|
||||||
|
@export var launch_impulse := 28.0
|
||||||
|
@export var launch_up_impulse := 6.0
|
||||||
|
@export var seat_path: NodePath
|
||||||
|
@export var exit_path: NodePath
|
||||||
|
@export var camera_path: NodePath
|
||||||
|
@export var interact_area_path: NodePath
|
||||||
|
|
||||||
|
@onready var seat: Node3D = get_node(seat_path) if seat_path != NodePath("") else null
|
||||||
|
@onready var exit_point: Node3D = get_node(exit_path) if exit_path != NodePath("") else null
|
||||||
|
@onready var car_camera: Camera3D = get_node(camera_path) if camera_path != NodePath("") else null
|
||||||
|
@onready var interact_area: Area3D = get_node(interact_area_path) if interact_area_path != NodePath("") else null
|
||||||
|
|
||||||
|
var _nearby_driver: Node = null
|
||||||
|
var _driver: Node = null
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if interact_area:
|
||||||
|
interact_area.collision_layer = 2
|
||||||
|
interact_area.collision_mask = 1
|
||||||
|
interact_area.body_entered.connect(_on_interact_body_entered)
|
||||||
|
interact_area.body_exited.connect(_on_interact_body_exited)
|
||||||
|
if car_camera:
|
||||||
|
car_camera.current = false
|
||||||
|
contact_monitor = true
|
||||||
|
max_contacts_reported = 8
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if _driver == null and _nearby_driver != null and Input.is_action_just_pressed("interact"):
|
||||||
|
_enter_vehicle(_nearby_driver)
|
||||||
|
elif _driver != null and Input.is_action_just_pressed("interact"):
|
||||||
|
_exit_vehicle()
|
||||||
|
|
||||||
|
func _integrate_forces(state: PhysicsDirectBodyState3D) -> void:
|
||||||
|
if _driver == null:
|
||||||
|
return
|
||||||
|
|
||||||
|
var input2v := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
|
||||||
|
var forward := global_transform.basis.z
|
||||||
|
forward.y = 0.0
|
||||||
|
forward = forward.normalized()
|
||||||
|
|
||||||
|
var current_speed := linear_velocity.dot(forward)
|
||||||
|
var target_speed := input2v.y * drive_speed
|
||||||
|
var accel := drive_accel if abs(input2v.y) > 0.01 else brake_strength
|
||||||
|
var new_forward_speed := move_toward(current_speed, target_speed, accel * state.step)
|
||||||
|
var forward_vel := forward * new_forward_speed
|
||||||
|
var lateral_vel := linear_velocity - (forward * current_speed)
|
||||||
|
lateral_vel = lateral_vel.move_toward(Vector3.ZERO, lateral_damp * state.step)
|
||||||
|
linear_velocity = forward_vel + lateral_vel
|
||||||
|
|
||||||
|
var speed_factor: float = clamp(abs(new_forward_speed) / drive_speed, 0.0, 1.0)
|
||||||
|
var turn_input := input2v.x
|
||||||
|
if new_forward_speed < -0.1:
|
||||||
|
turn_input = -turn_input
|
||||||
|
var target_turn: float = turn_input * turn_speed * speed_factor
|
||||||
|
angular_velocity.y = move_toward(angular_velocity.y, target_turn, turn_accel * state.step)
|
||||||
|
|
||||||
|
if speed_factor > 0.2:
|
||||||
|
var hit_ids := {}
|
||||||
|
for i in state.get_contact_count():
|
||||||
|
var collider := state.get_contact_collider_object(i)
|
||||||
|
if collider is RigidBody3D and collider != self:
|
||||||
|
var collider_id := (collider as Node).get_instance_id()
|
||||||
|
if hit_ids.has(collider_id):
|
||||||
|
continue
|
||||||
|
hit_ids[collider_id] = true
|
||||||
|
var contact_pos := state.get_contact_collider_position(i)
|
||||||
|
var launch_dir := (contact_pos - global_position).normalized()
|
||||||
|
if launch_dir.length() <= 0.001:
|
||||||
|
var normal_world := (global_transform.basis * state.get_contact_local_normal(i)).normalized()
|
||||||
|
launch_dir = normal_world if normal_world.length() > 0.001 else forward.normalized()
|
||||||
|
var impulse := launch_dir * (launch_impulse * speed_factor) + Vector3.UP * launch_up_impulse
|
||||||
|
(collider as RigidBody3D).apply_central_impulse(impulse)
|
||||||
|
|
||||||
|
func _enter_vehicle(player: Node) -> void:
|
||||||
|
if seat == null:
|
||||||
|
return
|
||||||
|
_driver = player
|
||||||
|
player.call("enter_vehicle", self, seat, car_camera)
|
||||||
|
if car_camera:
|
||||||
|
car_camera.current = true
|
||||||
|
|
||||||
|
func _exit_vehicle() -> void:
|
||||||
|
if _driver == null:
|
||||||
|
return
|
||||||
|
_driver.call("exit_vehicle", exit_point, car_camera)
|
||||||
|
_driver = null
|
||||||
|
if car_camera:
|
||||||
|
car_camera.current = false
|
||||||
|
|
||||||
|
func _on_interact_body_entered(body: Node) -> void:
|
||||||
|
if body.has_method("enter_vehicle"):
|
||||||
|
_nearby_driver = body
|
||||||
|
|
||||||
|
func _on_interact_body_exited(body: Node) -> void:
|
||||||
|
if body == _nearby_driver:
|
||||||
|
_nearby_driver = null
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://4qf5yinepytc
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
[gd_scene load_steps=6 format=3]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scenes/Vehicles/car.gd" id="1_kbd20"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_7r1j6"]
|
||||||
|
size = Vector3(1.4, 0.9, 2.6)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_jk0m1"]
|
||||||
|
size = Vector3(2.2, 2.0, 3.8)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_4y8xk"]
|
||||||
|
size = Vector3(1.4, 0.9, 2.6)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_red"]
|
||||||
|
albedo_color = Color(0.85, 0.1, 0.1, 1)
|
||||||
|
|
||||||
|
[node name="Car" type="RigidBody3D"]
|
||||||
|
script = ExtResource("1_kbd20")
|
||||||
|
seat_path = NodePath("Seat")
|
||||||
|
exit_path = NodePath("Exit")
|
||||||
|
camera_path = NodePath("CarCamera")
|
||||||
|
interact_area_path = NodePath("InteractArea")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("BoxShape3D_7r1j6")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
|
mesh = SubResource("BoxMesh_4y8xk")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_red")
|
||||||
|
|
||||||
|
[node name="InteractArea" type="Area3D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="InteractArea"]
|
||||||
|
shape = SubResource("BoxShape3D_jk0m1")
|
||||||
|
|
||||||
|
[node name="Seat" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0, 0.6, 0.0)
|
||||||
|
|
||||||
|
[node name="Exit" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3, 0.0, 0.0)
|
||||||
|
|
||||||
|
[node name="CarCamera" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0, 2.0, 4.2)
|
||||||
+103
-2
@@ -4,11 +4,11 @@ extends RigidBody3D
|
|||||||
# of collisions. So that's why we're using a RigidBody3D instead.
|
# of collisions. So that's why we're using a RigidBody3D instead.
|
||||||
|
|
||||||
const MOVE_SPEED := 8.0
|
const MOVE_SPEED := 8.0
|
||||||
|
const SPRINT_MOVE_SPEED :=13
|
||||||
const ACCELLERATION := 30.0
|
const ACCELLERATION := 30.0
|
||||||
const DECELLERATION := 40.0
|
const DECELLERATION := 40.0
|
||||||
const JUMP_SPEED := 4.0
|
const JUMP_SPEED := 4.0
|
||||||
const MAX_NUMBER_OF_JUMPS := 2
|
const MAX_NUMBER_OF_JUMPS := 2
|
||||||
|
|
||||||
const MIN_FOV := 10
|
const MIN_FOV := 10
|
||||||
const MAX_FOV := 180
|
const MAX_FOV := 180
|
||||||
const ZOOM_FACTOR := 1.1 # Zoom out when >1, in when < 1
|
const ZOOM_FACTOR := 1.1 # Zoom out when >1, in when < 1
|
||||||
@@ -23,16 +23,35 @@ var _last_move_right := Vector3(1, 0, 0)
|
|||||||
var _camera_offset_local := Vector3.ZERO
|
var _camera_offset_local := Vector3.ZERO
|
||||||
var _camera_yaw := 0.0
|
var _camera_yaw := 0.0
|
||||||
var _camera_pitch := 0.0
|
var _camera_pitch := 0.0
|
||||||
|
var _in_vehicle := false
|
||||||
|
var _vehicle_collision_layer := 0
|
||||||
|
var _vehicle_collision_mask := 0
|
||||||
|
var _vehicle_original_parent: Node = null
|
||||||
|
var _light_was_on := false
|
||||||
|
var _jump_triggered := false
|
||||||
|
@onready var _flashlight: SpotLight3D = $SpotLight3D
|
||||||
|
@onready var _anim_player: AnimationPlayer = find_child("AnimationPlayer", true, false) as AnimationPlayer
|
||||||
|
@onready var _model_root: Node3D = find_child("TestCharAnimated", true, false) as Node3D
|
||||||
|
|
||||||
@export var camera_follow_speed := 10.0
|
@export var camera_follow_speed := 10.0
|
||||||
|
@export var anim_idle_name := "Idle"
|
||||||
|
@export var anim_walk_name := "Walk"
|
||||||
|
@export var anim_jump_name := "Jump"
|
||||||
|
@export var anim_run_name := "Run"
|
||||||
|
@export var anim_walk_speed_threshold := 0.25
|
||||||
|
@export var anim_sprint_speed_threshold := 10.0
|
||||||
|
|
||||||
var jump_sound = preload("res://assets/audio/jump.ogg")
|
var jump_sound = preload("res://assets/audio/jump.ogg")
|
||||||
var audio_player = AudioStreamPlayer.new()
|
var audio_player = AudioStreamPlayer.new()
|
||||||
|
|
||||||
@export var camera_path: NodePath
|
@export var camera_path: NodePath
|
||||||
@onready var cam: Camera3D = get_node(camera_path) if camera_path != NodePath("") else null
|
@onready var cam: Camera3D = get_node(camera_path) if camera_path != NodePath("") else null
|
||||||
|
@export var phone_path: NodePath
|
||||||
|
@onready var phone: CanvasLayer = get_node(phone_path) if phone_path != NodePath("") else null
|
||||||
|
var phone_visible := false
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
add_to_group("player")
|
||||||
axis_lock_angular_x = true
|
axis_lock_angular_x = true
|
||||||
axis_lock_angular_z = true
|
axis_lock_angular_z = true
|
||||||
angular_damp = 6.0
|
angular_damp = 6.0
|
||||||
@@ -57,8 +76,13 @@ func _ready() -> void:
|
|||||||
_last_move_forward = forward.normalized()
|
_last_move_forward = forward.normalized()
|
||||||
if right.length() > 0.0001:
|
if right.length() > 0.0001:
|
||||||
_last_move_right = right.normalized()
|
_last_move_right = right.normalized()
|
||||||
|
_vehicle_collision_layer = collision_layer
|
||||||
|
_vehicle_collision_mask = collision_mask
|
||||||
|
|
||||||
func _integrate_forces(state):
|
func _integrate_forces(state):
|
||||||
|
if _in_vehicle:
|
||||||
|
linear_velocity = Vector3.ZERO
|
||||||
|
return
|
||||||
if cameraMoveMode and _pending_mouse_delta != Vector2.ZERO:
|
if cameraMoveMode and _pending_mouse_delta != Vector2.ZERO:
|
||||||
rotation_x -= _pending_mouse_delta.y * mouse_sensitivity
|
rotation_x -= _pending_mouse_delta.y * mouse_sensitivity
|
||||||
rotation_y -= _pending_mouse_delta.x * mouse_sensitivity
|
rotation_y -= _pending_mouse_delta.x * mouse_sensitivity
|
||||||
@@ -70,6 +94,11 @@ func _integrate_forces(state):
|
|||||||
# Input as 2D vector
|
# Input as 2D vector
|
||||||
var input2v := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
|
var input2v := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("player_phone"):
|
||||||
|
phone_visible = !phone_visible
|
||||||
|
if phone:
|
||||||
|
phone.visible = phone_visible
|
||||||
|
|
||||||
# Camera based movement
|
# Camera based movement
|
||||||
var forward := Vector3.FORWARD * -1.0
|
var forward := Vector3.FORWARD * -1.0
|
||||||
var right := Vector3.RIGHT
|
var right := Vector3.RIGHT
|
||||||
@@ -91,8 +120,13 @@ func _integrate_forces(state):
|
|||||||
right = _last_move_right
|
right = _last_move_right
|
||||||
|
|
||||||
var dir := (right * input2v.x + forward * input2v.y).normalized()
|
var dir := (right * input2v.x + forward * input2v.y).normalized()
|
||||||
|
|
||||||
var target_v := dir * MOVE_SPEED
|
var target_v := dir * MOVE_SPEED
|
||||||
|
|
||||||
|
# Sprinting
|
||||||
|
if Input.is_key_pressed(KEY_SHIFT):
|
||||||
|
target_v = dir * SPRINT_MOVE_SPEED
|
||||||
|
|
||||||
var ax := ACCELLERATION if dir != Vector3.ZERO else DECELLERATION
|
var ax := ACCELLERATION if dir != Vector3.ZERO else DECELLERATION
|
||||||
linear_velocity.x = move_toward(linear_velocity.x, target_v.x, ax * state.step)
|
linear_velocity.x = move_toward(linear_velocity.x, target_v.x, ax * state.step)
|
||||||
linear_velocity.z = move_toward(linear_velocity.z, target_v.z, ax * state.step)
|
linear_velocity.z = move_toward(linear_velocity.z, target_v.z, ax * state.step)
|
||||||
@@ -109,6 +143,7 @@ func _integrate_forces(state):
|
|||||||
current_number_of_jumps = (current_number_of_jumps + 1) % 2
|
current_number_of_jumps = (current_number_of_jumps + 1) % 2
|
||||||
linear_velocity.y = JUMP_SPEED
|
linear_velocity.y = JUMP_SPEED
|
||||||
audio_player.play()
|
audio_player.play()
|
||||||
|
_jump_triggered = true
|
||||||
|
|
||||||
if cam:
|
if cam:
|
||||||
var target_yaw := global_transform.basis.get_euler().y
|
var target_yaw := global_transform.basis.get_euler().y
|
||||||
@@ -118,7 +153,12 @@ func _integrate_forces(state):
|
|||||||
cam.global_position = cam.global_position.lerp(target_pos, camera_follow_speed * state.step)
|
cam.global_position = cam.global_position.lerp(target_pos, camera_follow_speed * state.step)
|
||||||
cam.global_rotation = Vector3(_camera_pitch, _camera_yaw, 0.0)
|
cam.global_rotation = Vector3(_camera_pitch, _camera_yaw, 0.0)
|
||||||
|
|
||||||
|
_update_animation(on_floor, state.linear_velocity)
|
||||||
|
_jump_triggered = false
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
|
if _in_vehicle:
|
||||||
|
return
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if event.button_index == MOUSE_BUTTON_MIDDLE:
|
if event.button_index == MOUSE_BUTTON_MIDDLE:
|
||||||
if event.pressed:
|
if event.pressed:
|
||||||
@@ -138,9 +178,70 @@ func _input(event):
|
|||||||
zoom_camera(ZOOM_FACTOR) # Zoom out
|
zoom_camera(ZOOM_FACTOR) # Zoom out
|
||||||
|
|
||||||
if event.is_action_pressed("player_light"):
|
if event.is_action_pressed("player_light"):
|
||||||
$SpotLight3D.visible = !$SpotLight3D.visible
|
_flashlight.visible = !_flashlight.visible
|
||||||
|
|
||||||
func zoom_camera(factor):
|
func zoom_camera(factor):
|
||||||
var new_fov = cam.fov * factor
|
var new_fov = cam.fov * factor
|
||||||
cam.fov = clamp(new_fov, MIN_FOV, MAX_FOV)
|
cam.fov = clamp(new_fov, MIN_FOV, MAX_FOV)
|
||||||
|
|
||||||
|
func _update_animation(on_floor: bool, velocity: Vector3) -> void:
|
||||||
|
if _anim_player == null:
|
||||||
|
return
|
||||||
|
var horizontal_speed := Vector3(velocity.x, 0.0, velocity.z).length()
|
||||||
|
if _jump_triggered and _anim_player.has_animation(anim_jump_name):
|
||||||
|
if _anim_player.current_animation != anim_jump_name:
|
||||||
|
_anim_player.play(anim_jump_name)
|
||||||
|
return
|
||||||
|
if not on_floor and _anim_player.has_animation(anim_jump_name):
|
||||||
|
if _anim_player.current_animation != anim_jump_name:
|
||||||
|
_anim_player.play(anim_jump_name)
|
||||||
|
return
|
||||||
|
if on_floor and horizontal_speed > anim_sprint_speed_threshold and _anim_player.has_animation(anim_run_name):
|
||||||
|
if _anim_player.current_animation != anim_walk_name:
|
||||||
|
_anim_player.play(anim_walk_name)
|
||||||
|
return
|
||||||
|
if horizontal_speed > anim_walk_speed_threshold and _anim_player.has_animation(anim_walk_name):
|
||||||
|
if _anim_player.current_animation != anim_walk_name:
|
||||||
|
_anim_player.play(anim_walk_name)
|
||||||
|
return
|
||||||
|
if _anim_player.has_animation(anim_idle_name):
|
||||||
|
if _anim_player.current_animation != anim_idle_name:
|
||||||
|
_anim_player.play(anim_idle_name)
|
||||||
|
|
||||||
|
func enter_vehicle(_vehicle: Node, seat: Node3D, vehicle_camera: Camera3D) -> void:
|
||||||
|
_in_vehicle = true
|
||||||
|
freeze = true
|
||||||
|
sleeping = true
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 0
|
||||||
|
_vehicle_original_parent = get_parent()
|
||||||
|
_light_was_on = _flashlight.visible
|
||||||
|
_flashlight.visible = false
|
||||||
|
if _model_root:
|
||||||
|
_model_root.visible = false
|
||||||
|
if seat:
|
||||||
|
reparent(seat, true)
|
||||||
|
global_transform = seat.global_transform
|
||||||
|
if cam:
|
||||||
|
cam.current = false
|
||||||
|
if vehicle_camera:
|
||||||
|
vehicle_camera.current = true
|
||||||
|
|
||||||
|
func exit_vehicle(exit_point: Node3D, vehicle_camera: Camera3D) -> void:
|
||||||
|
_in_vehicle = false
|
||||||
|
freeze = false
|
||||||
|
sleeping = false
|
||||||
|
collision_layer = _vehicle_collision_layer
|
||||||
|
collision_mask = _vehicle_collision_mask
|
||||||
|
if _vehicle_original_parent:
|
||||||
|
reparent(_vehicle_original_parent, true)
|
||||||
|
_vehicle_original_parent = null
|
||||||
|
_flashlight.visible = _light_was_on
|
||||||
|
if _model_root:
|
||||||
|
_model_root.visible = true
|
||||||
|
if exit_point:
|
||||||
|
global_transform = exit_point.global_transform
|
||||||
|
if vehicle_camera:
|
||||||
|
vehicle_camera.current = false
|
||||||
|
if cam:
|
||||||
|
cam.current = true
|
||||||
|
|||||||
+415
-1
@@ -1,4 +1,412 @@
|
|||||||
# ---> VisualStudioCode
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
*.env
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
|
||||||
|
[Dd]ebug/x64/
|
||||||
|
[Dd]ebugPublic/x64/
|
||||||
|
[Rr]elease/x64/
|
||||||
|
[Rr]eleases/x64/
|
||||||
|
bin/x64/
|
||||||
|
obj/x64/
|
||||||
|
|
||||||
|
[Dd]ebug/x86/
|
||||||
|
[Dd]ebugPublic/x86/
|
||||||
|
[Rr]elease/x86/
|
||||||
|
[Rr]eleases/x86/
|
||||||
|
bin/x86/
|
||||||
|
obj/x86/
|
||||||
|
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
[Aa][Rr][Mm]64[Ee][Cc]/
|
||||||
|
bld/
|
||||||
|
[Oo]bj/
|
||||||
|
[Oo]ut/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Build results on 'Bin' directories
|
||||||
|
**/[Bb]in/*
|
||||||
|
# Uncomment if you have tasks that rely on *.refresh files to move binaries
|
||||||
|
# (https://github.com/github/gitignore/pull/3736)
|
||||||
|
#!**/[Bb]in/*.refresh
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
*.trx
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Approval Tests result files
|
||||||
|
*.received.*
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.idb
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
# but not Directory.Build.rsp, as it configures directory-level build defaults
|
||||||
|
!Directory.Build.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.tlog
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||||
|
*.dsw
|
||||||
|
*.dsp
|
||||||
|
|
||||||
|
# Visual Studio 6 technical files
|
||||||
|
*.ncb
|
||||||
|
*.aps
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
**/.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
**/.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
**/.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
**/__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
#tools/**
|
||||||
|
#!tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
MSBuild_Logs/
|
||||||
|
|
||||||
|
# AWS SAM Build and Temporary Artifacts folder
|
||||||
|
.aws-sam
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
**/.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
**/.localhistory/
|
||||||
|
|
||||||
|
# Visual Studio History (VSHistory) files
|
||||||
|
.vshistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
**/.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# VS Code files for those working on multiple tools
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/settings.json
|
!.vscode/settings.json
|
||||||
!.vscode/tasks.json
|
!.vscode/tasks.json
|
||||||
@@ -12,3 +420,9 @@
|
|||||||
# Built Visual Studio Code Extensions
|
# Built Visual Studio Code Extensions
|
||||||
*.vsix
|
*.vsix
|
||||||
|
|
||||||
|
# Windows Installer files from build outputs
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"Version": 1,
|
|
||||||
"WorkspaceRootPath": "Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\",
|
|
||||||
"Documents": [],
|
|
||||||
"DocumentGroupContainers": [
|
|
||||||
{
|
|
||||||
"Orientation": 0,
|
|
||||||
"VerticalTabListWidth": 256,
|
|
||||||
"DocumentGroups": [
|
|
||||||
{
|
|
||||||
"DockedWidth": 200,
|
|
||||||
"SelectedChildIndex": -1,
|
|
||||||
"Children": [
|
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"Version": 1,
|
|
||||||
"WorkspaceRootPath": "Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\",
|
|
||||||
"Documents": [],
|
|
||||||
"DocumentGroupContainers": [
|
|
||||||
{
|
|
||||||
"Orientation": 0,
|
|
||||||
"VerticalTabListWidth": 256,
|
|
||||||
"DocumentGroups": [
|
|
||||||
{
|
|
||||||
"DockedWidth": 200,
|
|
||||||
"SelectedChildIndex": -1,
|
|
||||||
"Children": [
|
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# AuthApi document shapes
|
||||||
|
|
||||||
|
This service expects JSON request bodies for its auth endpoints and stores user
|
||||||
|
documents in MongoDB.
|
||||||
|
|
||||||
|
Inbound JSON documents
|
||||||
|
- RegisterRequest (`POST /api/auth/register`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"password": "string",
|
||||||
|
"email": "string (optional)"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- LoginRequest (`POST /api/auth/login`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"password": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- RefreshRequest (`POST /api/auth/refresh`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"refreshToken": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- ChangeRoleRequest (`POST /api/auth/role`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"newRole": "USER | SUPER"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Stored documents (MongoDB)
|
||||||
|
- User
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "string (ObjectId)",
|
||||||
|
"username": "string",
|
||||||
|
"passwordHash": "string",
|
||||||
|
"role": "USER | SUPER",
|
||||||
|
"email": "string (optional)",
|
||||||
|
"refreshToken": "string (optional)",
|
||||||
|
"refreshTokenExpiry": "string (optional, ISO-8601 datetime)"
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
# Copy project file first to take advantage of Docker layer caching
|
# Copy project file first to take advantage of Docker layer caching
|
||||||
@@ -9,7 +9,7 @@ RUN dotnet restore "AuthApi.csproj"
|
|||||||
COPY . .
|
COPY . .
|
||||||
RUN dotnet publish "AuthApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
RUN dotnet publish "AuthApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||||
|
|
||||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=build /app/publish .
|
COPY --from=build /app/publish .
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# AuthApi
|
||||||
|
|
||||||
|
## Document shapes
|
||||||
|
See `DOCUMENTS.md` for request payloads and stored document shapes.
|
||||||
|
|
||||||
|
## Endpoints
|
||||||
|
- `POST /api/auth/register` Register a new user.
|
||||||
|
- `POST /api/auth/login` Issue access and refresh tokens.
|
||||||
|
- `POST /api/auth/refresh` Refresh an access token.
|
||||||
|
- `POST /api/auth/logout` Revoke the current access token.
|
||||||
|
- `POST /api/auth/role` Update a user's role (SUPER only).
|
||||||
|
- `GET /api/auth/users` List users (SUPER only).
|
||||||
@@ -1,476 +0,0 @@
|
|||||||
{
|
|
||||||
"runtimeTarget": {
|
|
||||||
"name": ".NETCoreApp,Version=v8.0",
|
|
||||||
"signature": ""
|
|
||||||
},
|
|
||||||
"compilationOptions": {},
|
|
||||||
"targets": {
|
|
||||||
".NETCoreApp,Version=v8.0": {
|
|
||||||
"AuthApi/1.0.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"BCrypt.Net-Next": "4.0.3",
|
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.8",
|
|
||||||
"Microsoft.AspNetCore.OpenApi": "8.0.8",
|
|
||||||
"MongoDB.Driver": "3.4.3",
|
|
||||||
"Swashbuckle.AspNetCore": "6.5.0"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"AuthApi.dll": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BCrypt.Net-Next/4.0.3": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net6.0/BCrypt.Net-Next.dll": {
|
|
||||||
"assemblyVersion": "4.0.3.0",
|
|
||||||
"fileVersion": "4.0.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DnsClient/1.6.1": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.Win32.Registry": "5.0.0"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net5.0/DnsClient.dll": {
|
|
||||||
"assemblyVersion": "1.6.1.0",
|
|
||||||
"fileVersion": "1.6.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.8": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": {
|
|
||||||
"assemblyVersion": "8.0.8.0",
|
|
||||||
"fileVersion": "8.0.824.36908"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.OpenApi/8.0.8": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.OpenApi": "1.4.3"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.AspNetCore.OpenApi.dll": {
|
|
||||||
"assemblyVersion": "8.0.8.0",
|
|
||||||
"fileVersion": "8.0.824.36908"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
|
|
||||||
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {},
|
|
||||||
"Microsoft.IdentityModel.Abstractions/7.1.2": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.JsonWebTokens/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Tokens": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Logging/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Abstractions": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.Logging.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Protocols/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Logging": "7.1.2",
|
|
||||||
"Microsoft.IdentityModel.Tokens": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.Protocols.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Protocols": "7.1.2",
|
|
||||||
"System.IdentityModel.Tokens.Jwt": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Tokens/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.Logging": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/Microsoft.IdentityModel.Tokens.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {},
|
|
||||||
"Microsoft.OpenApi/1.4.3": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
|
|
||||||
"assemblyVersion": "1.4.3.0",
|
|
||||||
"fileVersion": "1.4.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Microsoft.Win32.Registry/5.0.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"System.Security.AccessControl": "5.0.0",
|
|
||||||
"System.Security.Principal.Windows": "5.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MongoDB.Bson/3.4.3": {
|
|
||||||
"dependencies": {
|
|
||||||
"System.Memory": "4.5.5",
|
|
||||||
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net6.0/MongoDB.Bson.dll": {
|
|
||||||
"assemblyVersion": "3.4.3.0",
|
|
||||||
"fileVersion": "3.4.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MongoDB.Driver/3.4.3": {
|
|
||||||
"dependencies": {
|
|
||||||
"DnsClient": "1.6.1",
|
|
||||||
"Microsoft.Extensions.Logging.Abstractions": "2.0.0",
|
|
||||||
"MongoDB.Bson": "3.4.3",
|
|
||||||
"SharpCompress": "0.30.1",
|
|
||||||
"Snappier": "1.0.0",
|
|
||||||
"System.Buffers": "4.5.1",
|
|
||||||
"ZstdSharp.Port": "0.7.3"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net6.0/MongoDB.Driver.dll": {
|
|
||||||
"assemblyVersion": "3.4.3.0",
|
|
||||||
"fileVersion": "3.4.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SharpCompress/0.30.1": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net5.0/SharpCompress.dll": {
|
|
||||||
"assemblyVersion": "0.30.1.0",
|
|
||||||
"fileVersion": "0.30.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Snappier/1.0.0": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net5.0/Snappier.dll": {
|
|
||||||
"assemblyVersion": "1.0.0.0",
|
|
||||||
"fileVersion": "1.0.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore/6.5.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
|
|
||||||
"Swashbuckle.AspNetCore.Swagger": "6.5.0",
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerGen": "6.5.0",
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerUI": "6.5.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.Swagger/6.5.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.OpenApi": "1.4.3"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net7.0/Swashbuckle.AspNetCore.Swagger.dll": {
|
|
||||||
"assemblyVersion": "6.5.0.0",
|
|
||||||
"fileVersion": "6.5.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"Swashbuckle.AspNetCore.Swagger": "6.5.0"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
|
|
||||||
"assemblyVersion": "6.5.0.0",
|
|
||||||
"fileVersion": "6.5.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
|
|
||||||
"assemblyVersion": "6.5.0.0",
|
|
||||||
"fileVersion": "6.5.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"System.Buffers/4.5.1": {},
|
|
||||||
"System.IdentityModel.Tokens.Jwt/7.1.2": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.IdentityModel.JsonWebTokens": "7.1.2",
|
|
||||||
"Microsoft.IdentityModel.Tokens": "7.1.2"
|
|
||||||
},
|
|
||||||
"runtime": {
|
|
||||||
"lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": {
|
|
||||||
"assemblyVersion": "7.1.2.0",
|
|
||||||
"fileVersion": "7.1.2.41121"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"System.Memory/4.5.5": {},
|
|
||||||
"System.Runtime.CompilerServices.Unsafe/5.0.0": {},
|
|
||||||
"System.Security.AccessControl/5.0.0": {
|
|
||||||
"dependencies": {
|
|
||||||
"Microsoft.NETCore.Platforms": "5.0.0",
|
|
||||||
"System.Security.Principal.Windows": "5.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"System.Security.Principal.Windows/5.0.0": {},
|
|
||||||
"ZstdSharp.Port/0.7.3": {
|
|
||||||
"runtime": {
|
|
||||||
"lib/net7.0/ZstdSharp.dll": {
|
|
||||||
"assemblyVersion": "0.7.3.0",
|
|
||||||
"fileVersion": "0.7.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"libraries": {
|
|
||||||
"AuthApi/1.0.0": {
|
|
||||||
"type": "project",
|
|
||||||
"serviceable": false,
|
|
||||||
"sha512": ""
|
|
||||||
},
|
|
||||||
"BCrypt.Net-Next/4.0.3": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-W+U9WvmZQgi5cX6FS5GDtDoPzUCV4LkBLkywq/kRZhuDwcbavOzcDAr3LXJFqHUi952Yj3LEYoWW0jbEUQChsA==",
|
|
||||||
"path": "bcrypt.net-next/4.0.3",
|
|
||||||
"hashPath": "bcrypt.net-next.4.0.3.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"DnsClient/1.6.1": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-4H/f2uYJOZ+YObZjpY9ABrKZI+JNw3uizp6oMzTXwDw6F+2qIPhpRl/1t68O/6e98+vqNiYGu+lswmwdYUy3gg==",
|
|
||||||
"path": "dnsclient/1.6.1",
|
|
||||||
"hashPath": "dnsclient.1.6.1.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer/8.0.8": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-J145j2LgD4kkkNkrf5DW/pKzithZRKN5EFY+KAO3SqweMyDfv4cgKgtOIsv2bhrOLGqPJixuZkZte7LfK1seYQ==",
|
|
||||||
"path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.8",
|
|
||||||
"hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.8.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.OpenApi/8.0.8": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-wNHhohqP8rmsQ4UhKbd6jZMD6l+2Q/+DvRBT0Cgqeuglr13aF6sSJWicZKCIhZAUXzuhkdwtHVc95MlPlFk0dA==",
|
|
||||||
"path": "microsoft.aspnetcore.openapi/8.0.8",
|
|
||||||
"hashPath": "microsoft.aspnetcore.openapi.8.0.8.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
|
|
||||||
"path": "microsoft.extensions.apidescription.server/6.0.5",
|
|
||||||
"hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-6ZCllUYGFukkymSTx3Yr0G/ajRxoNJp7/FqSxSB4fGISST54ifBhgu4Nc0ItGi3i6DqwuNd8SUyObmiC++AO2Q==",
|
|
||||||
"path": "microsoft.extensions.logging.abstractions/2.0.0",
|
|
||||||
"hashPath": "microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Abstractions/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-33eTIA2uO/L9utJjZWbKsMSVsQf7F8vtd6q5mQX7ZJzNvCpci5fleD6AeANGlbbb7WX7XKxq9+Dkb5e3GNDrmQ==",
|
|
||||||
"path": "microsoft.identitymodel.abstractions/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.abstractions.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.JsonWebTokens/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-cloLGeZolXbCJhJBc5OC05uhrdhdPL6MWHuVUnkkUvPDeK7HkwThBaLZ1XjBQVk9YhxXE2OvHXnKi0PLleXxDg==",
|
|
||||||
"path": "microsoft.identitymodel.jsonwebtokens/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.jsonwebtokens.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Logging/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-YCxBt2EeJP8fcXk9desChkWI+0vFqFLvBwrz5hBMsoh0KJE6BC66DnzkdzkJNqMltLromc52dkdT206jJ38cTw==",
|
|
||||||
"path": "microsoft.identitymodel.logging/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.logging.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Protocols/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==",
|
|
||||||
"path": "microsoft.identitymodel.protocols/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==",
|
|
||||||
"path": "microsoft.identitymodel.protocols.openidconnect/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.IdentityModel.Tokens/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-oICJMqr3aNEDZOwnH5SK49bR6Z4aX0zEAnOLuhloumOSuqnNq+GWBdQyrgILnlcT5xj09xKCP/7Y7gJYB+ls/g==",
|
|
||||||
"path": "microsoft.identitymodel.tokens/7.1.2",
|
|
||||||
"hashPath": "microsoft.identitymodel.tokens.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.NETCore.Platforms/5.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
|
|
||||||
"path": "microsoft.netcore.platforms/5.0.0",
|
|
||||||
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.OpenApi/1.4.3": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-rURwggB+QZYcSVbDr7HSdhw/FELvMlriW10OeOzjPT7pstefMo7IThhtNtDudxbXhW+lj0NfX72Ka5EDsG8x6w==",
|
|
||||||
"path": "microsoft.openapi/1.4.3",
|
|
||||||
"hashPath": "microsoft.openapi.1.4.3.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Microsoft.Win32.Registry/5.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
|
|
||||||
"path": "microsoft.win32.registry/5.0.0",
|
|
||||||
"hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"MongoDB.Bson/3.4.3": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-ZB2nCdlWtmDGItkDFh2E2kfYlXaItG414t9Np7CZhpftLypemYnxtdI52H+0b8RPqoUJD7bUvrf598sDTJd5iA==",
|
|
||||||
"path": "mongodb.bson/3.4.3",
|
|
||||||
"hashPath": "mongodb.bson.3.4.3.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"MongoDB.Driver/3.4.3": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-yE6XQiDoFwTH4Xq/STJCbzsz+74RuzCXU45g9gaWFlLyy95xG8utuj+e64uXSbONtzabbp1O/8vfA3/HJXL6Pg==",
|
|
||||||
"path": "mongodb.driver/3.4.3",
|
|
||||||
"hashPath": "mongodb.driver.3.4.3.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"SharpCompress/0.30.1": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-XqD4TpfyYGa7QTPzaGlMVbcecKnXy4YmYLDWrU+JIj7IuRNl7DH2END+Ll7ekWIY8o3dAMWLFDE1xdhfIWD1nw==",
|
|
||||||
"path": "sharpcompress/0.30.1",
|
|
||||||
"hashPath": "sharpcompress.0.30.1.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Snappier/1.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-rFtK2KEI9hIe8gtx3a0YDXdHOpedIf9wYCEYtBEmtlyiWVX3XlCNV03JrmmAi/Cdfn7dxK+k0sjjcLv4fpHnqA==",
|
|
||||||
"path": "snappier/1.0.0",
|
|
||||||
"hashPath": "snappier.1.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore/6.5.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-FK05XokgjgwlCI6wCT+D4/abtQkL1X1/B9Oas6uIwHFmYrIO9WUD5aLC9IzMs9GnHfUXOtXZ2S43gN1mhs5+aA==",
|
|
||||||
"path": "swashbuckle.aspnetcore/6.5.0",
|
|
||||||
"hashPath": "swashbuckle.aspnetcore.6.5.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.Swagger/6.5.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-XWmCmqyFmoItXKFsQSwQbEAsjDKcxlNf1l+/Ki42hcb6LjKL8m5Db69OTvz5vLonMSRntYO1XLqz0OP+n3vKnA==",
|
|
||||||
"path": "swashbuckle.aspnetcore.swagger/6.5.0",
|
|
||||||
"hashPath": "swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-Y/qW8Qdg9OEs7V013tt+94OdPxbRdbhcEbw4NiwGvf4YBcfhL/y7qp/Mjv/cENsQ2L3NqJ2AOu94weBy/h4KvA==",
|
|
||||||
"path": "swashbuckle.aspnetcore.swaggergen/6.5.0",
|
|
||||||
"hashPath": "swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw==",
|
|
||||||
"path": "swashbuckle.aspnetcore.swaggerui/6.5.0",
|
|
||||||
"hashPath": "swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Buffers/4.5.1": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
|
|
||||||
"path": "system.buffers/4.5.1",
|
|
||||||
"hashPath": "system.buffers.4.5.1.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.IdentityModel.Tokens.Jwt/7.1.2": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-Thhbe1peAmtSBFaV/ohtykXiZSOkx59Da44hvtWfIMFofDA3M3LaVyjstACf2rKGn4dEDR2cUpRAZ0Xs/zB+7Q==",
|
|
||||||
"path": "system.identitymodel.tokens.jwt/7.1.2",
|
|
||||||
"hashPath": "system.identitymodel.tokens.jwt.7.1.2.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Memory/4.5.5": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
|
|
||||||
"path": "system.memory/4.5.5",
|
|
||||||
"hashPath": "system.memory.4.5.5.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==",
|
|
||||||
"path": "system.runtime.compilerservices.unsafe/5.0.0",
|
|
||||||
"hashPath": "system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Security.AccessControl/5.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
|
|
||||||
"path": "system.security.accesscontrol/5.0.0",
|
|
||||||
"hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"System.Security.Principal.Windows/5.0.0": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
|
|
||||||
"path": "system.security.principal.windows/5.0.0",
|
|
||||||
"hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512"
|
|
||||||
},
|
|
||||||
"ZstdSharp.Port/0.7.3": {
|
|
||||||
"type": "package",
|
|
||||||
"serviceable": true,
|
|
||||||
"sha512": "sha512-U9Ix4l4cl58Kzz1rJzj5hoVTjmbx1qGMwzAcbv1j/d3NzrFaESIurQyg+ow4mivCgkE3S413y+U9k4WdnEIkRA==",
|
|
||||||
"path": "zstdsharp.port/0.7.3",
|
|
||||||
"hashPath": "zstdsharp.port.0.7.3.nupkg.sha512"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"runtimeOptions": {
|
|
||||||
"tfm": "net8.0",
|
|
||||||
"frameworks": [
|
|
||||||
{
|
|
||||||
"name": "Microsoft.NETCore.App",
|
|
||||||
"version": "8.0.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Microsoft.AspNetCore.App",
|
|
||||||
"version": "8.0.0"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configProperties": {
|
|
||||||
"System.GC.Server": true,
|
|
||||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft.AspNetCore": "Warning"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"Kestrel": { "Endpoints": { "Http": { "Url": "http://0.0.0.0:5000" } } },
|
|
||||||
"MongoDB": { "ConnectionString": "mongodb://192.168.86.50:27017", "DatabaseName": "promiscuity" },
|
|
||||||
"Jwt": { "Key": "SuperUltraSecureJwtKeyWithAtLeast32Chars!!", "Issuer": "promiscuity", "Audience": "promiscuity-auth-api" },
|
|
||||||
"Logging": { "LogLevel": { "Default": "Information" } },
|
|
||||||
"AllowedHosts": "*"
|
|
||||||
}
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
{
|
|
||||||
"format": 1,
|
|
||||||
"restore": {
|
|
||||||
"C:\\Users\\hz-vm\\Desktop\\micro-services\\AuthApi\\AuthApi.csproj": {}
|
|
||||||
},
|
|
||||||
"projects": {
|
|
||||||
"C:\\Users\\hz-vm\\Desktop\\micro-services\\AuthApi\\AuthApi.csproj": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"restore": {
|
|
||||||
"projectUniqueName": "C:\\Users\\hz-vm\\Desktop\\micro-services\\AuthApi\\AuthApi.csproj",
|
|
||||||
"projectName": "AuthApi",
|
|
||||||
"projectPath": "C:\\Users\\hz-vm\\Desktop\\micro-services\\AuthApi\\AuthApi.csproj",
|
|
||||||
"packagesPath": "C:\\Users\\hz-vm\\.nuget\\packages\\",
|
|
||||||
"outputPath": "C:\\Users\\hz-vm\\Desktop\\micro-services\\AuthApi\\obj\\",
|
|
||||||
"projectStyle": "PackageReference",
|
|
||||||
"configFilePaths": [
|
|
||||||
"C:\\Users\\hz-vm\\AppData\\Roaming\\NuGet\\NuGet.Config"
|
|
||||||
],
|
|
||||||
"originalTargetFrameworks": [
|
|
||||||
"net9.0"
|
|
||||||
],
|
|
||||||
"sources": {
|
|
||||||
"https://api.nuget.org/v3/index.json": {}
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"net9.0": {
|
|
||||||
"targetAlias": "net9.0",
|
|
||||||
"projectReferences": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"warningProperties": {
|
|
||||||
"warnAsError": [
|
|
||||||
"NU1605"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"restoreAuditProperties": {
|
|
||||||
"enableAudit": "true",
|
|
||||||
"auditLevel": "low",
|
|
||||||
"auditMode": "direct"
|
|
||||||
},
|
|
||||||
"SdkAnalysisLevel": "9.0.200"
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"net9.0": {
|
|
||||||
"targetAlias": "net9.0",
|
|
||||||
"dependencies": {
|
|
||||||
"Bcrypt.Net-Next": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[4.0.3, )"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[9.0.8, )"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.OpenApi": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[9.0.4, )"
|
|
||||||
},
|
|
||||||
"MongoDB.Driver": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[3.4.3, )"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"imports": [
|
|
||||||
"net461",
|
|
||||||
"net462",
|
|
||||||
"net47",
|
|
||||||
"net471",
|
|
||||||
"net472",
|
|
||||||
"net48",
|
|
||||||
"net481"
|
|
||||||
],
|
|
||||||
"assetTargetFallback": true,
|
|
||||||
"warn": true,
|
|
||||||
"frameworkReferences": {
|
|
||||||
"Microsoft.AspNetCore.App": {
|
|
||||||
"privateAssets": "none"
|
|
||||||
},
|
|
||||||
"Microsoft.NETCore.App": {
|
|
||||||
"privateAssets": "all"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.203/PortableRuntimeIdentifierGraph.json"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
|
||||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
|
||||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
|
||||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
|
||||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\hz-vm\.nuget\packages\</NuGetPackageFolders>
|
|
||||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
|
||||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.2</NuGetToolVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<SourceRoot Include="C:\Users\hz-vm\.nuget\packages\" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
{
|
|
||||||
"format": 1,
|
|
||||||
"restore": {
|
|
||||||
"Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\AuthApi\\AuthApi.csproj": {}
|
|
||||||
},
|
|
||||||
"projects": {
|
|
||||||
"Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\AuthApi\\AuthApi.csproj": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"restore": {
|
|
||||||
"projectUniqueName": "Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\AuthApi\\AuthApi.csproj",
|
|
||||||
"projectName": "AuthApi",
|
|
||||||
"projectPath": "Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\AuthApi\\AuthApi.csproj",
|
|
||||||
"packagesPath": "C:\\Users\\hz\\.nuget\\packages\\",
|
|
||||||
"outputPath": "Z:\\Godot\\Godot_v4.5-stable_mono_win64\\repos\\promiscuity\\microservices\\AuthApi\\obj\\",
|
|
||||||
"projectStyle": "PackageReference",
|
|
||||||
"configFilePaths": [
|
|
||||||
"C:\\Users\\hz\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
|
||||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
|
||||||
],
|
|
||||||
"originalTargetFrameworks": [
|
|
||||||
"net8.0"
|
|
||||||
],
|
|
||||||
"sources": {
|
|
||||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
|
||||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
|
||||||
"https://api.nuget.org/v3/index.json": {}
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"net8.0": {
|
|
||||||
"targetAlias": "net8.0",
|
|
||||||
"projectReferences": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"warningProperties": {
|
|
||||||
"warnAsError": [
|
|
||||||
"NU1605"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"restoreAuditProperties": {
|
|
||||||
"enableAudit": "true",
|
|
||||||
"auditLevel": "low",
|
|
||||||
"auditMode": "direct"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"frameworks": {
|
|
||||||
"net8.0": {
|
|
||||||
"targetAlias": "net8.0",
|
|
||||||
"dependencies": {
|
|
||||||
"Bcrypt.Net-Next": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[4.0.3, )"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[8.0.8, )"
|
|
||||||
},
|
|
||||||
"Microsoft.AspNetCore.OpenApi": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[8.0.8, )"
|
|
||||||
},
|
|
||||||
"MongoDB.Driver": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[3.4.3, )"
|
|
||||||
},
|
|
||||||
"Swashbuckle.AspNetCore": {
|
|
||||||
"target": "Package",
|
|
||||||
"version": "[6.5.0, )"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"imports": [
|
|
||||||
"net461",
|
|
||||||
"net462",
|
|
||||||
"net47",
|
|
||||||
"net471",
|
|
||||||
"net472",
|
|
||||||
"net48",
|
|
||||||
"net481"
|
|
||||||
],
|
|
||||||
"assetTargetFallback": true,
|
|
||||||
"warn": true,
|
|
||||||
"frameworkReferences": {
|
|
||||||
"Microsoft.AspNetCore.App": {
|
|
||||||
"privateAssets": "none"
|
|
||||||
},
|
|
||||||
"Microsoft.NETCore.App": {
|
|
||||||
"privateAssets": "all"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
|
||||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
|
||||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
|
||||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
|
||||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\hz\.nuget\packages\</NuGetPackageFolders>
|
|
||||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
|
||||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.0</NuGetToolVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<SourceRoot Include="C:\Users\hz\.nuget\packages\" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.props')" />
|
|
||||||
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore\6.5.0\build\Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore\6.5.0\build\Swashbuckle.AspNetCore.props')" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">C:\Users\hz\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
|
||||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
// <autogenerated />
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "Login",
|
|
||||||
"RelativePath": "api/Auth/login",
|
|
||||||
"HttpMethod": "POST",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [
|
|
||||||
{
|
|
||||||
"Name": "req",
|
|
||||||
"Type": "AuthApi.Models.LoginRequest",
|
|
||||||
"IsRequired": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "Logout",
|
|
||||||
"RelativePath": "api/Auth/logout",
|
|
||||||
"HttpMethod": "POST",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "Refresh",
|
|
||||||
"RelativePath": "api/Auth/refresh",
|
|
||||||
"HttpMethod": "POST",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [
|
|
||||||
{
|
|
||||||
"Name": "req",
|
|
||||||
"Type": "AuthApi.Models.RefreshRequest",
|
|
||||||
"IsRequired": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "Register",
|
|
||||||
"RelativePath": "api/Auth/register",
|
|
||||||
"HttpMethod": "POST",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [
|
|
||||||
{
|
|
||||||
"Name": "req",
|
|
||||||
"Type": "AuthApi.Models.RegisterRequest",
|
|
||||||
"IsRequired": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "ChangeUserRole",
|
|
||||||
"RelativePath": "api/Auth/role",
|
|
||||||
"HttpMethod": "POST",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [
|
|
||||||
{
|
|
||||||
"Name": "req",
|
|
||||||
"Type": "AuthApi.Models.ChangeRoleRequest",
|
|
||||||
"IsRequired": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "AuthApi.Controllers.AuthController",
|
|
||||||
"Method": "GetAllUsers",
|
|
||||||
"RelativePath": "api/Auth/users",
|
|
||||||
"HttpMethod": "GET",
|
|
||||||
"IsController": true,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [],
|
|
||||||
"ReturnTypes": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ContainingType": "Program\u002B\u003C\u003Ec",
|
|
||||||
"Method": "\u003C\u003CMain\u003E$\u003Eb__0_2",
|
|
||||||
"RelativePath": "healthz",
|
|
||||||
"HttpMethod": "GET",
|
|
||||||
"IsController": false,
|
|
||||||
"Order": 0,
|
|
||||||
"Parameters": [],
|
|
||||||
"ReturnTypes": [
|
|
||||||
{
|
|
||||||
"Type": "System.Void",
|
|
||||||
"MediaTypes": [],
|
|
||||||
"StatusCode": 200
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
// Runtime Version:4.0.30319.42000
|
|
||||||
//
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("AuthApi")]
|
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a56091e8e5e471606d25b9bf0f7f03190f6cbf5")]
|
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("AuthApi")]
|
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("AuthApi")]
|
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
|
||||||
|
|
||||||
// Generated by the MSBuild WriteCodeFragment class.
|
|
||||||
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
a91a0b2722e979e6c11baa13ff8d8df94508dbebb6818a92f2b91e9d1d22c45b
|
|
||||||
-19
@@ -1,19 +0,0 @@
|
|||||||
is_global = true
|
|
||||||
build_property.TargetFramework = net8.0
|
|
||||||
build_property.TargetPlatformMinVersion =
|
|
||||||
build_property.UsingMicrosoftNETSdkWeb = true
|
|
||||||
build_property.ProjectTypeGuids =
|
|
||||||
build_property.InvariantGlobalization =
|
|
||||||
build_property.PlatformNeutralAssembly =
|
|
||||||
build_property.EnforceExtendedAnalyzerRules =
|
|
||||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
|
||||||
build_property.RootNamespace = AuthApi
|
|
||||||
build_property.RootNamespace = AuthApi
|
|
||||||
build_property.ProjectDir = Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\
|
|
||||||
build_property.EnableComHosting =
|
|
||||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
|
||||||
build_property.RazorLangVersion = 8.0
|
|
||||||
build_property.SupportLocalizedComponentNames =
|
|
||||||
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
|
||||||
build_property.MSBuildProjectDirectory = Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi
|
|
||||||
build_property._RazorSourceGeneratorDebug =
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
// <auto-generated/>
|
|
||||||
global using global::Microsoft.AspNetCore.Builder;
|
|
||||||
global using global::Microsoft.AspNetCore.Hosting;
|
|
||||||
global using global::Microsoft.AspNetCore.Http;
|
|
||||||
global using global::Microsoft.AspNetCore.Routing;
|
|
||||||
global using global::Microsoft.Extensions.Configuration;
|
|
||||||
global using global::Microsoft.Extensions.DependencyInjection;
|
|
||||||
global using global::Microsoft.Extensions.Hosting;
|
|
||||||
global using global::Microsoft.Extensions.Logging;
|
|
||||||
global using global::System;
|
|
||||||
global using global::System.Collections.Generic;
|
|
||||||
global using global::System.IO;
|
|
||||||
global using global::System.Linq;
|
|
||||||
global using global::System.Net.Http;
|
|
||||||
global using global::System.Net.Http.Json;
|
|
||||||
global using global::System.Threading;
|
|
||||||
global using global::System.Threading.Tasks;
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
// Runtime Version:4.0.30319.42000
|
|
||||||
//
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.OpenApi")]
|
|
||||||
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")]
|
|
||||||
|
|
||||||
// Generated by the MSBuild WriteCodeFragment class.
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
da46c012b6fe4f51885a4732442769de4be5f6593e91ea2c8a2d100926d7757f
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\appsettings.Development.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\appsettings.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\AuthApi.exe
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\AuthApi.deps.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\AuthApi.runtimeconfig.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\AuthApi.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\AuthApi.pdb
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\BCrypt.Net-Next.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\DnsClient.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.AspNetCore.OpenApi.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.Abstractions.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.JsonWebTokens.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.Logging.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.IdentityModel.Tokens.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Microsoft.OpenApi.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\MongoDB.Bson.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\MongoDB.Driver.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\SharpCompress.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Snappier.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Swashbuckle.AspNetCore.Swagger.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerGen.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerUI.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\System.IdentityModel.Tokens.Jwt.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\bin\Debug\net8.0\ZstdSharp.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.csproj.AssemblyReference.cache
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.GeneratedMSBuildEditorConfig.editorconfig
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.AssemblyInfoInputs.cache
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.AssemblyInfo.cs
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.csproj.CoreCompileInputs.cache
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.MvcApplicationPartsAssemblyInfo.cs
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.MvcApplicationPartsAssemblyInfo.cache
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets.build.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets.development.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets\msbuild.AuthApi.Microsoft.AspNetCore.StaticWebAssets.props
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets\msbuild.build.AuthApi.props
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets\msbuild.buildMultiTargeting.AuthApi.props
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets\msbuild.buildTransitive.AuthApi.props
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\staticwebassets.pack.json
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\scopedcss\bundle\AuthApi.styles.css
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.csproj.Up2Date
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\refint\AuthApi.dll
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.pdb
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\AuthApi.genruntimeconfig.cache
|
|
||||||
Z:\Godot\Godot_v4.5-stable_mono_win64\repos\promiscuity\microservices\AuthApi\obj\Debug\net8.0\ref\AuthApi.dll
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
e30fb922132cef9c79d05bc731999650beba7b92a3bd5e1cb012089dc4a23683
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user