Empty
This commit is contained in:
Binary file not shown.
@@ -1,38 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c5lyv50f7ls0i"
|
||||
path="res://.godot/imported/SomeMap.fbx-15dd74d7349e33000020feacb745f7b7.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://models/maps/SomeMap/SomeMap.fbx"
|
||||
dest_files=["res://.godot/imported/SomeMap.fbx-15dd74d7349e33000020feacb745f7b7.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
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=true
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
fbx/importer=0
|
||||
fbx/allow_geometry_helper_nodes=false
|
||||
fbx/embedded_image_handling=1
|
@@ -1,28 +0,0 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://mr2ako4ox2gq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c5lyv50f7ls0i" path="res://models/maps/SomeMap/SomeMap.fbx" id="1_wkoy2"]
|
||||
[ext_resource type="Shader" uid="uid://67hsyo0qqlfm" path="res://shaders/Map Shader.gdshader" id="2_m72sx"]
|
||||
[ext_resource type="Texture2D" uid="uid://dgatj2jnpxojb" path="res://textures/tilesets/magecity.png" id="3_obl1d"]
|
||||
[ext_resource type="PackedScene" uid="uid://cy4r0tp2htivb" path="res://scenes/MapBounds.tscn" id="4_y4q77"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_i805s"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_m72sx")
|
||||
shader_parameter/tileset = ExtResource("3_obl1d")
|
||||
|
||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_iqvxq"]
|
||||
data = PackedVector3Array(0.01, 0.01, 0, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0.01, 0.01, 0, 0, 0, 0, 0, -0.01, 0, -0.01, -0.01, 0, -0.01, -0.01, 0, -0.01, 0, 0, 0, 0, 0, 0.01, 0, 0, 0.01, -0.01, 0, 0, -0.01, 0, 0, -0.01, 0, 0, 0, 0, 0.01, 0, 0, 0, 0.01, 0, 0, 0, 0, -0.01, 0, 0, -0.01, 0, 0, -0.01, 0.01, 0, 0, 0.01, 0, -0.01, 0.01, 0, -0.01, 0, 0, -0.02, 0, 0, -0.02, 0, 0, -0.02, 0.01, 0, -0.01, 0.01, 0, -0.01, 0, 0, -0.01, -0.01, 0, -0.02, -0.01, 0, -0.02, -0.01, 0, -0.02, 0, 0, -0.01, 0, 0, -0.01, -0.01, 0, -0.01, -0.02, 0, -0.02, -0.02, 0, -0.02, -0.02, 0, -0.02, -0.01, 0, -0.01, -0.01, 0, 0, -0.01, 0, 0, -0.02, 0, -0.01, -0.02, 0, -0.01, -0.02, 0, -0.01, -0.01, 0, 0, -0.01, 0, 0.01, -0.01, 0, 0.01, -0.02, 0, 0, -0.02, 0, 0, -0.02, 0, 0, -0.01, 0, 0.01, -0.01, 0, 0.02, -0.01, 0, 0.02, -0.02, 0, 0.01, -0.02, 0, 0.01, -0.02, 0, 0.01, -0.01, 0, 0.02, -0.01, 0, 0.02, 0, 0, 0.02, -0.01, 0, 0.01, -0.01, 0, 0.01, -0.01, 0, 0.01, 0, 0, 0.02, 0, 0, 0.02, 0.01, 0, 0.02, 0, 0, 0.01, 0, 0, 0.01, 0, 0, 0.01, 0.01, 0, 0.02, 0.01, 0, 0.02, 0.02, 0, 0.02, 0.01, 0, 0.01, 0.01, 0, 0.01, 0.01, 0, 0.01, 0.02, 0, 0.02, 0.02, 0, 0.01, 0.02, 0, 0.01, 0.01, 0, 0, 0.01, 0, 0, 0.01, 0, 0, 0.02, 0, 0.01, 0.02, 0, 0, 0.02, 0, 0, 0.01, 0, -0.01, 0.01, 0, -0.01, 0.01, 0, -0.01, 0.02, 0, 0, 0.02, 0, -0.01, 0.02, 0, -0.01, 0.01, 0, -0.02, 0.01, 0, -0.02, 0.01, 0, -0.02, 0.02, 0, -0.01, 0.02, 0, -0.02, 0.02, 0, -0.02, 0.01, 0, -0.03, 0.01, 0, -0.03, 0.01, 0, -0.03, 0.02, 0, -0.02, 0.02, 0, -0.02, 0.01, 0, -0.02, 0, 0, -0.03, 0, 0, -0.03, 0, 0, -0.03, 0.01, 0, -0.02, 0.01, 0, -0.02, 0, 0, -0.02, -0.01, 0, -0.03, -0.01, 0, -0.03, -0.01, 0, -0.03, 0, 0, -0.02, 0, 0, -0.02, -0.01, 0, -0.02, -0.02, 0, -0.03, -0.02, 0, -0.03, -0.02, 0, -0.03, -0.01, 0, -0.02, -0.01, 0, -0.02, -0.02, 0, -0.02, -0.03, 0, -0.03, -0.03, 0, -0.03, -0.03, 0, -0.03, -0.02, 0, -0.02, -0.02, 0, -0.01, -0.02, 0, -0.01, -0.03, 0, -0.02, -0.03, 0, -0.02, -0.03, 0, -0.02, -0.02, 0, -0.01, -0.02, 0, 0, -0.02, 0, 0, -0.03, 0, -0.01, -0.03, 0, -0.01, -0.03, 0, -0.01, -0.02, 0, 0, -0.02, 0, 0.01, -0.02, 0, 0.01, -0.03, 0, 0, -0.03, 0, 0, -0.03, 0, 0, -0.02, 0, 0.01, -0.02, 0, 0.02, -0.02, 0, 0.02, -0.03, 0, 0.01, -0.03, 0, 0.01, -0.03, 0, 0.01, -0.02, 0, 0.02, -0.02, 0, 0.03, -0.02, 0, 0.03, -0.03, 0, 0.02, -0.03, 0, 0.02, -0.03, 0, 0.02, -0.02, 0, 0.03, -0.02, 0, 0.03, -0.01, 0, 0.03, -0.02, 0, 0.02, -0.02, 0, 0.02, -0.02, 0, 0.02, -0.01, 0, 0.03, -0.01, 0, 0.03, 0, 0, 0.03, -0.01, 0, 0.02, -0.01, 0, 0.02, -0.01, 0, 0.02, 0, 0, 0.03, 0, 0, 0.03, 0.01, 0, 0.03, 0, 0, 0.02, 0, 0, 0.02, 0, 0, 0.02, 0.01, 0, 0.03, 0.01, 0, 0.03, 0.02, 0, 0.03, 0.01, 0, 0.02, 0.01, 0, 0.02, 0.01, 0, 0.02, 0.02, 0, 0.03, 0.02, 0, 0.03, 0.03, 0, 0.03, 0.02, 0, 0.02, 0.02, 0, 0.02, 0.02, 0, 0.02, 0.03, 0, 0.03, 0.03, 0, 0.02, 0.03, 0, 0.02, 0.02, 0, 0.01, 0.02, 0, 0.01, 0.02, 0, 0.01, 0.03, 0, 0.02, 0.03, 0, 0.01, 0.03, 0, 0.01, 0.02, 0, 0, 0.02, 0, 0, 0.02, 0, 0, 0.03, 0, 0.01, 0.03, 0, 0, 0.03, 0, 0, 0.02, 0, -0.01, 0.02, 0, -0.01, 0.02, 0, -0.01, 0.03, 0, 0, 0.03, 0, -0.01, 0.03, 0, -0.01, 0.02, 0, -0.02, 0.02, 0, -0.02, 0.02, 0, -0.02, 0.03, 0, -0.01, 0.03, 0, -0.02, 0.03, 0, -0.02, 0.02, 0, -0.03, 0.02, 0, -0.03, 0.02, 0, -0.03, 0.03, 0, -0.02, 0.03, 0)
|
||||
|
||||
[node name="SomeMapModel" instance=ExtResource("1_wkoy2")]
|
||||
|
||||
[node name="Cube" parent="." index="0"]
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_i805s")
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="." index="1"]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0"]
|
||||
transform = Transform3D(100, 0, 0, 0, 0, 100, 0, -100, 0, 0, 0, 0)
|
||||
shape = SubResource("ConcavePolygonShape3D_iqvxq")
|
||||
|
||||
[node name="MapBounds" parent="." index="2" instance=ExtResource("4_y4q77")]
|
||||
transform = Transform3D(6.40417, 0, 0, 0, 4.52981, 0, 0, 0, 6.17046, 0.0595146, 2.14979, 0.0393701)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,51 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c7g5kc0m1uhxa"
|
||||
path="res://.godot/imported/test.blend-c501d2978761adab01d4cc9b69942fee.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://models/test.blend"
|
||||
dest_files=["res://.godot/imported/test.blend-c501d2978761adab01d4cc9b69942fee.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
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=""
|
||||
_subresources={}
|
||||
blender/nodes/visible=0
|
||||
blender/nodes/active_collection_only=false
|
||||
blender/nodes/punctual_lights=true
|
||||
blender/nodes/cameras=true
|
||||
blender/nodes/custom_properties=true
|
||||
blender/nodes/modifiers=1
|
||||
blender/meshes/colors=false
|
||||
blender/meshes/uvs=true
|
||||
blender/meshes/normals=true
|
||||
blender/meshes/tangents=true
|
||||
blender/meshes/skins=2
|
||||
blender/meshes/export_bones_deforming_mesh_only=false
|
||||
blender/materials/unpack_enabled=true
|
||||
blender/materials/export_materials=1
|
||||
blender/animation/limit_playback=true
|
||||
blender/animation/always_sample=true
|
||||
blender/animation/group_tracks=true
|
Binary file not shown.
@@ -1,15 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bix00kr2hkaxn"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://kwnx0enmgk54" path="res://scripts/Scenes/CuttingScene.gd" id="1_2ls7x"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_hck4v"]
|
||||
|
||||
[node name="CuttingScene" type="Node3D"]
|
||||
script = ExtResource("1_2ls7x")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(0.504528, 0.295299, -0.811326, 0, 0.939693, 0.34202, 0.863396, -0.172559, 0.474101, -1.50615, 0.608966, 0.933182)
|
||||
fov = 35.4
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("CapsuleMesh_hck4v")
|
@@ -1,36 +0,0 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://yhtpoum3eek7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ixwikdguyhf0" path="res://scripts/Entities/RosaController.gd" id="1_3g383"]
|
||||
[ext_resource type="Script" uid="uid://jd50n00bo05y" path="res://scripts/Entities/RosaCamera.gd" id="2_tr66j"]
|
||||
[ext_resource type="Shader" uid="uid://7h2axb2tsh17" path="res://shaders/NPC Shader.gdshader" id="3_j5vis"]
|
||||
[ext_resource type="Texture2D" uid="uid://b8ac5emade2y0" path="res://textures/characters/base_female.png" id="4_1ec0m"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ls7r8"]
|
||||
radius = 0.331611
|
||||
height = 0.804274
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_dyaax"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fegux"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("3_j5vis")
|
||||
shader_parameter/npcTexture = ExtResource("4_1ec0m")
|
||||
shader_parameter/frame = 0
|
||||
shader_parameter/direction = 1
|
||||
|
||||
[node name="Rosa" type="CharacterBody3D"]
|
||||
script = ExtResource("1_3g383")
|
||||
|
||||
[node name="Rosa Camera" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.130388, 0.991463, 0, -0.991463, 0.130388, 0, 3.14994, 0.404846)
|
||||
fov = 30.0
|
||||
script = ExtResource("2_tr66j")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.126485)
|
||||
shape = SubResource("CapsuleShape3D_ls7r8")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.173648, 0.984808, 0, -0.984808, 0.173648, 0.00989294, 0, 0)
|
||||
mesh = SubResource("QuadMesh_dyaax")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_fegux")
|
@@ -1,32 +0,0 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dr4b2pmsknuhc"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d23qg1ovkbxst" path="res://scripts/Entities/BasicNPCEntity.gd" id="1_1muh7"]
|
||||
[ext_resource type="Shader" uid="uid://7h2axb2tsh17" path="res://shaders/NPC Shader.gdshader" id="1_xgcv1"]
|
||||
[ext_resource type="Script" uid="uid://btxgv85qst1jy" path="res://scripts/Cutscene/TestCutscene.gd" id="2_jwvuu"]
|
||||
[ext_resource type="Texture2D" uid="uid://boa4hvwyoslv0" path="res://textures/characters/base_male.png" id="3_20w6p"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_dw1sy"]
|
||||
radius = 0.331611
|
||||
height = 0.804274
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_xhkdv"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_l4utx"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_xgcv1")
|
||||
shader_parameter/npcTexture = ExtResource("3_20w6p")
|
||||
shader_parameter/frame = 0
|
||||
shader_parameter/direction = 1
|
||||
|
||||
[node name="TestNpc" type="CharacterBody3D"]
|
||||
script = ExtResource("1_1muh7")
|
||||
interactCutscene = ExtResource("2_jwvuu")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.126485)
|
||||
shape = SubResource("CapsuleShape3D_dw1sy")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.173648, 0.984808, 0, -0.984808, 0.173648, 0.00989294, 0, 0)
|
||||
mesh = SubResource("QuadMesh_xhkdv")
|
||||
surface_material_override/0 = SubResource("ShaderMaterial_l4utx")
|
@@ -1,3 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://w1q5eoiejmy3"]
|
||||
|
||||
[node name="MainMenu" type="Node3D"]
|
@@ -1,14 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cy4r0tp2htivb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dbah1pmk8jola" path="res://scripts/MapBounds.gd" id="1_43dqt"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ep4u2"]
|
||||
|
||||
[node name="MapBounds" type="Area3D"]
|
||||
script = ExtResource("1_43dqt")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("BoxShape3D_ep4u2")
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||
[connection signal="body_exited" from="." to="." method="_on_body_exited"]
|
@@ -1,41 +0,0 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dx6fv8n4jl5ku"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://mr2ako4ox2gq" path="res://models/maps/SomeMap/SomeMapModel.tscn" id="1_sbtr5"]
|
||||
[ext_resource type="PackedScene" uid="uid://yhtpoum3eek7" path="res://scenes/Entities/Rosa.tscn" id="2_2h4bv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dr4b2pmsknuhc" path="res://scenes/Entities/TestNPC.tscn" id="3_q0pj2"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_e1h75"]
|
||||
sky_horizon_color = Color(0.59625, 0.6135, 0.6375, 1)
|
||||
sky_energy_multiplier = 0.0
|
||||
ground_bottom_color = Color(0, 0, 0, 1)
|
||||
ground_horizon_color = Color(0.59625, 0.6135, 0.6375, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_weucl"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_e1h75")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_nyivo"]
|
||||
sky = SubResource("Sky_weucl")
|
||||
ambient_light_source = 1
|
||||
|
||||
[node name="Some-map" type="Node3D"]
|
||||
|
||||
[node name="some map" parent="." instance=ExtResource("1_sbtr5")]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_nyivo")
|
||||
|
||||
[node name="Rosa" parent="." instance=ExtResource("2_2h4bv")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.19857, 0.684572, 0.968477)
|
||||
|
||||
[node name="TestNpc" parent="." instance=ExtResource("3_q0pj2")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.68747, 0.459578, -0.399262)
|
||||
interactType = 1
|
||||
moveType = 1
|
||||
direction = 1
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.28892, 0)
|
||||
light_energy = 3.375
|
||||
shadow_bias = 0.0
|
||||
shadow_normal_bias = 0.9
|
||||
omni_range = 281.646
|
@@ -1,9 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://b4ffu88bmt4sa"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ckxjs4wty6sju" path="res://scripts/Scenes/CookingScene.gd" id="1_27bmi"]
|
||||
[ext_resource type="PackedScene" uid="uid://bix00kr2hkaxn" path="res://scenes/Cooking/CuttingScene.tscn" id="1_bokpl"]
|
||||
|
||||
[node name="Cooking" type="Node3D"]
|
||||
script = ExtResource("1_27bmi")
|
||||
|
||||
[node name="CuttingScene" parent="." instance=ExtResource("1_bokpl")]
|
@@ -1,9 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://tmbx2kit0jyq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://pcncoc6wum4q" path="res://scripts/Scenes/OverworldScene.gd" id="1_yv6j0"]
|
||||
[ext_resource type="PackedScene" uid="uid://dx6fv8n4jl5ku" path="res://scenes/Maps/SomeMap.tscn" id="4_8dvtu"]
|
||||
|
||||
[node name="Overworld" type="Node3D"]
|
||||
script = ExtResource("1_yv6j0")
|
||||
|
||||
[node name="Some-map" parent="." instance=ExtResource("4_8dvtu")]
|
@@ -1,12 +0,0 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://tanovye003t2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cj4jxqpykhteg" path="res://scripts/Scenes/RootScene.gd" id="1_xu06r"]
|
||||
[ext_resource type="PackedScene" uid="uid://iibqlagufwhm" path="res://scenes/Meta/Systems.tscn" id="2_et43v"]
|
||||
[ext_resource type="PackedScene" uid="uid://dfwwtbs3ywcyq" path="res://scenes/Meta/UI.tscn" id="3_fwr0j"]
|
||||
|
||||
[node name="RootScene" type="Node3D"]
|
||||
script = ExtResource("1_xu06r")
|
||||
|
||||
[node name="Systems" parent="." instance=ExtResource("2_et43v")]
|
||||
|
||||
[node name="UI" parent="." instance=ExtResource("3_fwr0j")]
|
@@ -1,38 +0,0 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://iibqlagufwhm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cj8athi16655p" path="res://scripts/System/Systems.gd" id="1_uen2c"]
|
||||
[ext_resource type="Script" uid="uid://d2b7r3t5ownc5" path="res://scripts/System/CutsceneSystem.gd" id="2_sf62c"]
|
||||
[ext_resource type="Script" uid="uid://bc4c4eqfrnegb" path="res://scripts/System/ItemSystem.gd" id="3_nwp6i"]
|
||||
[ext_resource type="Script" uid="uid://dnlg1e8une55l" path="res://scripts/System/QuestSystem.gd" id="4_d00wi"]
|
||||
[ext_resource type="Script" uid="uid://chux5imw4pse6" path="res://scripts/System/VNSystem.gd" id="5_22p3i"]
|
||||
[ext_resource type="Script" uid="uid://bontk8ex2kxkb" path="res://scripts/System/PauseSystem.gd" id="6_hdi8m"]
|
||||
[ext_resource type="Script" uid="uid://mr6i8copcn37" path="res://scripts/System/BattleSystem.gd" id="7_miqgj"]
|
||||
[ext_resource type="Script" uid="uid://drcaiuyla2psa" path="res://scripts/System/CookingSystem.gd" id="7_nou1j"]
|
||||
[ext_resource type="Script" uid="uid://bbd8gcx6byjhf" path="res://scripts/System/SceneSystem.gd" id="9_budbk"]
|
||||
|
||||
[node name="Systems" type="Node"]
|
||||
script = ExtResource("1_uen2c")
|
||||
|
||||
[node name="Cutscene" type="Node" parent="."]
|
||||
script = ExtResource("2_sf62c")
|
||||
|
||||
[node name="Item" type="Node" parent="."]
|
||||
script = ExtResource("3_nwp6i")
|
||||
|
||||
[node name="Quest" type="Node" parent="."]
|
||||
script = ExtResource("4_d00wi")
|
||||
|
||||
[node name="VN" type="Node" parent="."]
|
||||
script = ExtResource("5_22p3i")
|
||||
|
||||
[node name="Pause" type="Node" parent="."]
|
||||
script = ExtResource("6_hdi8m")
|
||||
|
||||
[node name="Cooking" type="Node" parent="."]
|
||||
script = ExtResource("7_nou1j")
|
||||
|
||||
[node name="Battle" type="Node" parent="."]
|
||||
script = ExtResource("7_miqgj")
|
||||
|
||||
[node name="Scene" type="Node" parent="."]
|
||||
script = ExtResource("9_budbk")
|
@@ -1,20 +0,0 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dfwwtbs3ywcyq"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dm7ee4aqjr2dl" path="res://ui/UI Theme.tres" id="1_3b1y4"]
|
||||
[ext_resource type="Script" uid="uid://vjr7s045ri4a" path="res://scripts/Scenes/UIScene.gd" id="2_5efuf"]
|
||||
[ext_resource type="PackedScene" uid="uid://bkx3l0kckf4a8" path="res://scenes/UI/VNTextbox.tscn" id="2_x0c4l"]
|
||||
|
||||
[node name="UI" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_3b1y4")
|
||||
script = ExtResource("2_5efuf")
|
||||
|
||||
[node name="VNTextbox" parent="." instance=ExtResource("2_x0c4l")]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
offset_top = -133.0
|
@@ -1,42 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cqr1fgxwv0bjg"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dm7ee4aqjr2dl" path="res://ui/UI Theme.tres" id="1_jnmec"]
|
||||
|
||||
[node name="PauseMenu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_jnmec")
|
||||
|
||||
[node name="HSplitContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_jnmec")
|
||||
|
||||
[node name="Panel2" type="PanelContainer" parent="HSplitContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme = ExtResource("1_jnmec")
|
||||
|
||||
[node name="VSplitContainer" type="VBoxContainer" parent="HSplitContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme = ExtResource("1_jnmec")
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="HSplitContainer/VSplitContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme = ExtResource("1_jnmec")
|
||||
|
||||
[node name="Panel2" type="PanelContainer" parent="HSplitContainer/VSplitContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme = ExtResource("1_jnmec")
|
@@ -1,28 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bkx3l0kckf4a8"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dm7ee4aqjr2dl" path="res://ui/UI Theme.tres" id="1_wx4lp"]
|
||||
[ext_resource type="Script" uid="uid://ck62jug2gl4wk" path="res://scripts/UI/VNTextbox.gd" id="2_uo1gm"]
|
||||
|
||||
[node name="VNTextbox" type="PanelContainer"]
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -140.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme = ExtResource("1_wx4lp")
|
||||
script = ExtResource("2_uo1gm")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("1_wx4lp")
|
||||
|
||||
[node name="Label" type="RichTextLabel" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("1_wx4lp")
|
||||
bbcode_enabled = true
|
||||
text = "test
|
||||
test
|
||||
test
|
||||
test"
|
@@ -1,48 +0,0 @@
|
||||
class_name Battle
|
||||
const BattleFighter = preload("res://scripts/Battle/BattleFighter.gd");
|
||||
|
||||
enum FighterPosition {
|
||||
LEFT_TOP = 0,
|
||||
LEFT_CENTER = 1,
|
||||
LEFT_BOTTOM = 2,
|
||||
|
||||
CENTER_TOP = 3,
|
||||
CENTER_CENTER = 4,
|
||||
CENTER_BOTTOM = 5,
|
||||
|
||||
RIGHT_TOP = 6,
|
||||
RIGHT_CENTER = 7,
|
||||
RIGHT_BOTTOM = 8,
|
||||
|
||||
ENEMY_DEFAULT = LEFT_CENTER,
|
||||
PLAYER_DEFAULT = RIGHT_CENTER,
|
||||
};
|
||||
|
||||
var fighters:Array = [];
|
||||
|
||||
func addFighter(fighter:BattleFighter, position:FighterPosition):
|
||||
if fighters.has(position):
|
||||
push_error("Fighter already exists at position");
|
||||
return
|
||||
fighters[position] = fighter;
|
||||
|
||||
func moveFighter(fighter:BattleFighter, position:FighterPosition):
|
||||
if fighters.has(position):
|
||||
push_error("Fighter already exists at position");
|
||||
return
|
||||
if not fighters.has(fighter):
|
||||
push_error("Fighter does not exist");
|
||||
return
|
||||
removeFighter(fighter);
|
||||
addFighter(fighter, position);
|
||||
|
||||
func getFightersOfTeam(team:BattleFighter.BattleFighterTeam):
|
||||
var result = [];
|
||||
for fighter in fighters:
|
||||
if fighter.team != team:
|
||||
continue
|
||||
result.append(fighter);
|
||||
return result;
|
||||
|
||||
func removeFighter(fighter:BattleFighter):
|
||||
fighters.erase(fighter);
|
@@ -1 +0,0 @@
|
||||
uid://kwijyojokkpm
|
@@ -1,10 +0,0 @@
|
||||
class_name BattleFighter
|
||||
|
||||
enum BattleFighterTeam {
|
||||
PLAYER,
|
||||
ENEMY
|
||||
};
|
||||
|
||||
var team:BattleFighterTeam;
|
||||
var health:int = 100;
|
||||
var maxHealth:int = 100;
|
@@ -1 +0,0 @@
|
||||
uid://daksbecm02l3t
|
@@ -1,7 +0,0 @@
|
||||
class_name CookingGame
|
||||
const VerticalSlice = preload("res://scripts/Cooking/Recipe/VerticalSlice.gd");
|
||||
|
||||
var recipe:CookingRecipe = null;
|
||||
|
||||
func _init(recipe:CookingRecipe) -> void:
|
||||
self.recipe = recipe;
|
@@ -1 +0,0 @@
|
||||
uid://nsqcafdni4vc
|
@@ -1,8 +0,0 @@
|
||||
class_name CookingRecipe
|
||||
const ItemStack = preload("res://scripts/Item/ItemStack.gd")
|
||||
|
||||
func _init() -> void:
|
||||
pass
|
||||
|
||||
func getIngredients() -> Array[ItemStack]:
|
||||
return []
|
@@ -1 +0,0 @@
|
||||
uid://bqnancnrbmk5n
|
@@ -1,10 +0,0 @@
|
||||
class_name VerticalSlice extends "res://scripts/Cooking/Recipe/CookingRecipe.gd"
|
||||
const ItemSystem = preload("res://scripts/System/ItemSystem.gd")
|
||||
|
||||
func _init() -> void:
|
||||
super._init();
|
||||
|
||||
func getIngredients() -> Array[ItemStack]:
|
||||
return [
|
||||
ItemStack.new(ItemSystem.ITEM_POTION, 1)
|
||||
];
|
@@ -1 +0,0 @@
|
||||
uid://c2x1lbdtbtd00
|
@@ -1,11 +0,0 @@
|
||||
class_name BattleStartEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var battle:Battle;
|
||||
|
||||
func _init(battle:Battle):
|
||||
super._init();
|
||||
self.battle = battle;
|
||||
|
||||
func start() -> void:
|
||||
super.start();
|
||||
getSystems().BATTLE.startBattle(self.battle);
|
@@ -1 +0,0 @@
|
||||
uid://e3ybjhvx0u1j
|
@@ -1,11 +0,0 @@
|
||||
class_name CookingStartEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
const CookingGame = preload("res://scripts/Cooking/CookingGame.gd");
|
||||
|
||||
var cook:CookingGame;
|
||||
|
||||
func _init(cook:CookingGame) -> void:
|
||||
self.cook = cook;
|
||||
|
||||
func start() -> void:
|
||||
getSystems().COOKING.setCookingGame(self.cook);
|
||||
getSystems().SCENE.setScene(SceneSystem.DawnScene.COOKING);
|
@@ -1 +0,0 @@
|
||||
uid://cvgjwamgxd47o
|
@@ -1,42 +0,0 @@
|
||||
class_name Cutscene
|
||||
const CutsceneEvent = preload("res://scripts/Cutscene/CutsceneEvent.gd");
|
||||
|
||||
var queue:Array[CutsceneEvent] = [];
|
||||
var cutsceneSystem = null;
|
||||
|
||||
func setupCutscene() -> void:
|
||||
print_debug("Cutscene setup has not been overriden");
|
||||
pass
|
||||
|
||||
func update(delta:float) -> void:
|
||||
if queue.size() == 0:
|
||||
return
|
||||
|
||||
var item = queue[0]
|
||||
if !item.started:
|
||||
item.start()
|
||||
item.started = true
|
||||
|
||||
item.update(delta)
|
||||
|
||||
if item.isDone():
|
||||
item.end()
|
||||
queue.erase(item)
|
||||
|
||||
pass
|
||||
|
||||
func add(items:Array[CutsceneEvent]) -> void:
|
||||
for item in items:
|
||||
item.cutscene = self
|
||||
queue.append(item)
|
||||
|
||||
func clear() -> void:
|
||||
if queue.size() == 0:
|
||||
return
|
||||
|
||||
var item = queue[0]
|
||||
if item.started:
|
||||
item.end()
|
||||
item.started = false
|
||||
|
||||
queue.clear()
|
@@ -1 +0,0 @@
|
||||
uid://dyjbgcpycptxj
|
@@ -1,32 +0,0 @@
|
||||
class_name CutsceneEvent
|
||||
const Systems = preload("res://scripts/System/Systems.gd")
|
||||
|
||||
var started:bool = false;
|
||||
var cutscene = null;
|
||||
|
||||
func _init() -> void:
|
||||
pass
|
||||
|
||||
func start() -> void:
|
||||
started = true
|
||||
|
||||
func update(delta:float) -> void:
|
||||
pass
|
||||
|
||||
func isDone() -> bool:
|
||||
return true
|
||||
|
||||
func end() -> void:
|
||||
pass
|
||||
|
||||
func reset() -> void:
|
||||
started = false
|
||||
|
||||
func getCutscene():
|
||||
return cutscene
|
||||
|
||||
func getCutsceneSystem():
|
||||
return cutscene.cutsceneSystem;
|
||||
|
||||
func getSystems() -> Systems:
|
||||
return getCutsceneSystem().get_node("..") as Systems;
|
@@ -1 +0,0 @@
|
||||
uid://chb6031ke0xeg
|
@@ -1,17 +0,0 @@
|
||||
class_name CutsceneChangeEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var getCutscene:Callable
|
||||
var cutsceneNext:Cutscene
|
||||
|
||||
func _init(getCutscene:Callable) -> void:
|
||||
super._init();
|
||||
self.getCutscene = getCutscene;
|
||||
|
||||
func start() -> void:
|
||||
super.start();
|
||||
self.cutsceneNext = self.getCutscene.call(self);
|
||||
|
||||
func end() -> void:
|
||||
self.cutsceneNext.setupCutscene();
|
||||
self.cutsceneNext.start();
|
||||
getSystems().CUTSCENE.setCurrentCutscene(self.cutsceneNext);
|
@@ -1 +0,0 @@
|
||||
uid://crnwlun27bocw
|
@@ -1,73 +0,0 @@
|
||||
class_name CutsceneConcurrentEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
enum ConcurrentType {
|
||||
SEQUENTIAL,
|
||||
PARALLEL,
|
||||
FIRST_DONE
|
||||
}
|
||||
|
||||
var events:Array[CutsceneEvent] = []
|
||||
var type:ConcurrentType = ConcurrentType.SEQUENTIAL
|
||||
var current:int = 0
|
||||
|
||||
func _init(t:ConcurrentType, evts:Array[CutsceneEvent]) -> void:
|
||||
super._init();
|
||||
self.events = evts;
|
||||
self.type = t;
|
||||
|
||||
func update(delta:float) -> void:
|
||||
if self.type == ConcurrentType.PARALLEL:
|
||||
for event in self.events:
|
||||
if !event.started:
|
||||
event.start()
|
||||
event.started = true
|
||||
|
||||
if !event.isDone():
|
||||
event.update(delta)
|
||||
|
||||
if event.isDone():
|
||||
event.end()
|
||||
|
||||
elif self.type == ConcurrentType.FIRST_DONE:
|
||||
for event in self.events:
|
||||
if !event.started:
|
||||
event.start()
|
||||
event.started = true
|
||||
|
||||
event.update(delta)
|
||||
|
||||
if event.isDone():
|
||||
event.end()
|
||||
break
|
||||
|
||||
elif self.type == ConcurrentType.SEQUENTIAL:
|
||||
if self.current >= self.events.size():
|
||||
return;
|
||||
|
||||
var evt = self.events[self.current]
|
||||
if !evt.started:
|
||||
evt.start()
|
||||
evt.started = true
|
||||
|
||||
evt.update(delta)
|
||||
|
||||
if evt.isDone():
|
||||
evt.end()
|
||||
self.current += 1
|
||||
|
||||
func isDone() -> bool:
|
||||
if self.type == ConcurrentType.SEQUENTIAL:
|
||||
return self.current >= self.events.size();
|
||||
elif self.type == ConcurrentType.PARALLEL:
|
||||
for evt in self.events:
|
||||
if !evt.isDone():
|
||||
return false;
|
||||
return true;
|
||||
elif self.type == ConcurrentType.FIRST_DONE:
|
||||
for evt in self.events:
|
||||
if evt.isDone():
|
||||
return true;
|
||||
return false;
|
||||
|
||||
printerr("Invalid ConcurrentType")
|
||||
return false;
|
@@ -1 +0,0 @@
|
||||
uid://bwait88cm8pvd
|
@@ -1,32 +0,0 @@
|
||||
class_name CutsceneIfEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var eventTrue:CutsceneEvent
|
||||
var eventFalse:CutsceneEvent
|
||||
var condition:Callable
|
||||
var result:bool = false
|
||||
|
||||
func _init(cond:Callable, evtTrue:CutsceneEvent, evtFalse:CutsceneEvent) -> void:
|
||||
super._init();
|
||||
condition = cond;
|
||||
eventTrue = evtTrue;
|
||||
eventFalse = evtFalse;
|
||||
|
||||
func start() -> void:
|
||||
super.start();
|
||||
result = self.condition.call(self);
|
||||
|
||||
if result:
|
||||
eventTrue.start();
|
||||
else:
|
||||
eventFalse.start();
|
||||
|
||||
func getEvent() -> CutsceneEvent:
|
||||
if result:
|
||||
return eventTrue;
|
||||
return eventFalse;
|
||||
|
||||
func update(delta:float) -> void:
|
||||
getEvent().update(delta);
|
||||
|
||||
func isDone() -> bool:
|
||||
return getEvent().isDone();
|
@@ -1 +0,0 @@
|
||||
uid://2txg4eswrh0q
|
@@ -1,16 +0,0 @@
|
||||
class_name CutscenePauseEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
const PauseSystem = preload("res://scripts/System/PauseSystem.gd")
|
||||
|
||||
var pauseType:PauseSystem.PauseType;
|
||||
var pauseEntities:Array = [];
|
||||
|
||||
func _init(
|
||||
type:PauseSystem.PauseType,
|
||||
entities:Array = [],
|
||||
) -> void:
|
||||
super._init();
|
||||
self.pauseType = type;
|
||||
self.pauseEntities = entities;
|
||||
|
||||
func start() -> void:
|
||||
getSystems().PAUSE.pause(self.pauseType, self.pauseEntities);
|
@@ -1 +0,0 @@
|
||||
uid://dj1kkm2vvvr2d
|
@@ -1,10 +0,0 @@
|
||||
class_name CutscenePrintEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var text:String = ""
|
||||
|
||||
func _init(text:String) -> void:
|
||||
super._init()
|
||||
self.text = text
|
||||
|
||||
func start() -> void:
|
||||
print(self.text)
|
@@ -1 +0,0 @@
|
||||
uid://cknkpwqllg7nc
|
@@ -1,13 +0,0 @@
|
||||
class_name CutsceneWaitEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var wait:float = 0.0
|
||||
|
||||
func _init(time:float) -> void:
|
||||
super._init()
|
||||
self.wait = time
|
||||
|
||||
func update(delta:float) -> void:
|
||||
self.wait -= delta
|
||||
|
||||
func isDone() -> bool:
|
||||
return self.wait <= 0.0
|
@@ -1 +0,0 @@
|
||||
uid://cskwko5oqqq4m
|
@@ -1,43 +0,0 @@
|
||||
class_name CutsceneWhileEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var events:Array[CutsceneEvent] = []
|
||||
var callback:Callable
|
||||
var current:int = 0
|
||||
|
||||
func _init(callback:Callable, evt:Array[CutsceneEvent]) -> void:
|
||||
super._init();
|
||||
self.events = evt;
|
||||
self.callback = callback;
|
||||
|
||||
func shouldLoop() -> bool:
|
||||
return self.callback.call(self)
|
||||
|
||||
func update(delta:float) -> void:
|
||||
if self.current >= self.events.size():
|
||||
return;
|
||||
|
||||
var evt = self.events[self.current]
|
||||
if !evt.started:
|
||||
evt.start()
|
||||
evt.started = true
|
||||
|
||||
evt.update(delta)
|
||||
|
||||
if evt.isDone():
|
||||
evt.end()
|
||||
self.current += 1
|
||||
|
||||
if self.current < self.events.size():
|
||||
return
|
||||
|
||||
if !self.shouldLoop():
|
||||
return
|
||||
|
||||
self.current = 0
|
||||
for event in self.events:
|
||||
event.reset()
|
||||
|
||||
func isDone() -> bool:
|
||||
if self.shouldLoop():
|
||||
return false;
|
||||
return self.current >= self.events.size();
|
@@ -1 +0,0 @@
|
||||
uid://cx4uqll85m28i
|
@@ -1,13 +0,0 @@
|
||||
class_name OverworldChangeDirectionEvent extends "res://scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd"
|
||||
|
||||
var direction:OverworldEntity.Direction;
|
||||
|
||||
func _init(
|
||||
entity:OverworldEntity,
|
||||
direction:OverworldEntity.Direction,
|
||||
) -> void:
|
||||
super._init(entity);
|
||||
self.direction = direction;
|
||||
|
||||
func start() -> void:
|
||||
entity.direction = direction;
|
@@ -1 +0,0 @@
|
||||
uid://cu82did0twmkm
|
@@ -1,10 +0,0 @@
|
||||
class_name OverworldEntityEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||
|
||||
var entity:OverworldEntity;
|
||||
|
||||
func _init(
|
||||
entity:OverworldEntity,
|
||||
) -> void:
|
||||
super._init();
|
||||
self.entity = entity;
|
@@ -1 +0,0 @@
|
||||
uid://dmmguqphbe34j
|
@@ -1,15 +0,0 @@
|
||||
class_name TextboxEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
|
||||
var text:String;
|
||||
|
||||
func _init(
|
||||
text:String
|
||||
) -> void:
|
||||
super._init();
|
||||
self.text = text;
|
||||
|
||||
func start() -> void:
|
||||
getSystems().VN.getTextbox().setText(self.text);
|
||||
|
||||
func isDone() -> bool:
|
||||
return getSystems().VN.getTextbox().isClosed;
|
@@ -1 +0,0 @@
|
||||
uid://dypv7erj66kbs
|
@@ -1,29 +0,0 @@
|
||||
class_name OverworldConversationEvent extends "res://scripts/Cutscene/Cutscene.gd"
|
||||
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||
const TextboxEvent = preload("res://scripts/Cutscene/Event/VisualNovel/TextboxEvent.gd");
|
||||
const PauseEvent = preload("res://scripts/Cutscene/Event/CutscenePauseEvent.gd");
|
||||
const OverworldChangeDirectionEvent = preload("res://scripts/Cutscene/Event/Entity/OverworldChangeDirectionEvent.gd");
|
||||
|
||||
var speaker:OverworldEntity;
|
||||
var interacted:OverworldEntity;
|
||||
var texts:Array[String];
|
||||
|
||||
func _init(speaker:OverworldEntity, interacted:OverworldEntity, texts:Array[String]) -> void:
|
||||
self.speaker = speaker;
|
||||
self.interacted = interacted;
|
||||
self.texts = texts;
|
||||
|
||||
func setupCutscene() -> void:
|
||||
var dirSpeaker = speaker.getDirectionToFace(interacted.position);
|
||||
var dirInteracted = interacted.getDirectionToFace(speaker.position);
|
||||
|
||||
add([
|
||||
OverworldChangeDirectionEvent.new(speaker, dirSpeaker),
|
||||
OverworldChangeDirectionEvent.new(interacted, dirInteracted),
|
||||
PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED, [ speaker, interacted ]),
|
||||
]);
|
||||
|
||||
for text in texts:
|
||||
add([ TextboxEvent.new(text) ]);
|
||||
|
||||
add([ PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED) ]);
|
@@ -1 +0,0 @@
|
||||
uid://cywuvoi5v4fe3
|
@@ -1,10 +0,0 @@
|
||||
class_name TestCutscene extends "res://scripts/Cutscene/Scene/OverworldConversationEvent.gd"
|
||||
|
||||
func _init(speaker:OverworldEntity, interacted:OverworldEntity ) -> void:
|
||||
super(
|
||||
speaker,
|
||||
interacted,
|
||||
[
|
||||
"Hello"
|
||||
]
|
||||
);
|
@@ -1 +0,0 @@
|
||||
uid://btxgv85qst1jy
|
@@ -1,55 +0,0 @@
|
||||
class_name BasicNPCEntity extends "res://scripts/Entities/OverworldEntity.gd"
|
||||
const Cutscene = preload("res://scripts/Cutscene/Cutscene.gd");
|
||||
const OverworldConversationEvent = preload("res://scripts/Cutscene/Scene/OverworldConversationEvent.gd");
|
||||
|
||||
enum BasicNPCInteractType {
|
||||
NONE,
|
||||
CUTSCENE,
|
||||
TEXTS
|
||||
};
|
||||
|
||||
enum BasicNPCMoveType {
|
||||
STILL,
|
||||
RANDOM_LOOK
|
||||
};
|
||||
|
||||
@export var interactType:BasicNPCInteractType = BasicNPCInteractType.NONE;
|
||||
@export var interactCutscene:GDScript;
|
||||
@export var interactTexts:Array[String];
|
||||
|
||||
@export var moveType:BasicNPCMoveType = BasicNPCMoveType.STILL;
|
||||
|
||||
@export var randomLookMinTime:float = 1.5;
|
||||
@export var randomLookMaxTime:float = 4.0;
|
||||
var randomLookTimer:float = 0.0;
|
||||
|
||||
func interact(interactor:OverworldEntity) -> void:
|
||||
if interactType == BasicNPCInteractType.NONE:
|
||||
return
|
||||
|
||||
if interactType == BasicNPCInteractType.CUTSCENE:
|
||||
# Cutscene in this manner must take two entities
|
||||
# (self, speaker, and interactor, player)
|
||||
var cs:Cutscene = interactCutscene.new(self, interactor);
|
||||
getSystems().CUTSCENE.setCurrentCutscene(cs);
|
||||
return
|
||||
|
||||
if interactType == BasicNPCInteractType.TEXTS:
|
||||
var cs:Cutscene = OverworldConversationEvent.new(self, interactor, interactTexts);
|
||||
getSystems().CUTSCENE.setCurrentCutscene(cs);
|
||||
return
|
||||
|
||||
pass
|
||||
|
||||
func updateMovement(delta:float) -> void:
|
||||
if moveType == BasicNPCMoveType.STILL:
|
||||
return
|
||||
|
||||
if moveType == BasicNPCMoveType.RANDOM_LOOK:
|
||||
randomLookTimer -= delta;
|
||||
if randomLookTimer <= 0:
|
||||
randomLookTimer = randf_range(randomLookMinTime, randomLookMaxTime);
|
||||
self.direction = randi_range(0, 3);
|
||||
return
|
||||
|
||||
pass
|
@@ -1 +0,0 @@
|
||||
uid://d23qg1ovkbxst
|
@@ -1,176 +0,0 @@
|
||||
class_name OverworldEntity extends CharacterBody3D
|
||||
|
||||
const PauseSystem = preload("res://scripts/System/PauseSystem.gd")
|
||||
|
||||
enum Direction {
|
||||
NORTH,
|
||||
EAST,
|
||||
SOUTH,
|
||||
WEST,
|
||||
}
|
||||
|
||||
var speed:float = 150;
|
||||
var friction:float = 8.5;
|
||||
var gravity:float = 30;
|
||||
|
||||
@export var direction = Direction.SOUTH:
|
||||
set(newDirection):
|
||||
direction = newDirection;
|
||||
_updateMaterial();
|
||||
|
||||
var meshInstance:MeshInstance3D;
|
||||
var underFootTile:int = -1;
|
||||
var underFootPosition:Vector3;
|
||||
|
||||
var withinMapBounds:MapBounds;
|
||||
var withinBoundsLastFrame:bool = true;
|
||||
|
||||
func _updateMaterial():
|
||||
if !meshInstance:
|
||||
return
|
||||
var material:ShaderMaterial = meshInstance.get_surface_override_material(0)
|
||||
if !material:
|
||||
return
|
||||
material.set_shader_parameter("direction", direction)
|
||||
|
||||
func getSystems() -> Systems:
|
||||
return get_tree().current_scene.get_node("Systems") as Systems;
|
||||
|
||||
func getDirectionVector() -> Vector3:
|
||||
match direction:
|
||||
Direction.NORTH:
|
||||
return Vector3(0, 0, -1);
|
||||
Direction.SOUTH:
|
||||
return Vector3(0, 0, 1);
|
||||
Direction.WEST:
|
||||
return Vector3(-1, 0, 0);
|
||||
Direction.EAST:
|
||||
return Vector3(1, 0, 0);
|
||||
return Vector3(0, 0, 0);
|
||||
|
||||
func getDirectionToFace(position:Vector3) -> Direction:
|
||||
var diff = position - self.position;
|
||||
if abs(diff.x) > abs(diff.z):
|
||||
if diff.x > 0:
|
||||
return Direction.EAST;
|
||||
else:
|
||||
return Direction.WEST;
|
||||
else:
|
||||
if diff.z > 0:
|
||||
return Direction.SOUTH;
|
||||
else:
|
||||
return Direction.NORTH;
|
||||
return Direction.SOUTH;
|
||||
|
||||
# Virtual Methods
|
||||
func updateMovement(delta) -> void:
|
||||
pass
|
||||
|
||||
func updateOverworldLogic(delta) -> void:
|
||||
pass
|
||||
|
||||
func isPaused() -> bool:
|
||||
var pause = getSystems().PAUSE;
|
||||
var ps = pause.getPauseState();
|
||||
|
||||
if ps == PauseSystem.PauseType.NOT_PAUSED:
|
||||
return false;
|
||||
elif ps == PauseSystem.PauseType.FULLY_PAUSED:
|
||||
return true;
|
||||
elif ps == PauseSystem.PauseType.ENTITY_PAUSED:
|
||||
if pause.entities.find(self) != -1:
|
||||
return true;
|
||||
return false
|
||||
elif ps == PauseSystem.PauseType.CUTSCENE_PAUSED:
|
||||
if pause.entities.find(self) != -1:
|
||||
return false;
|
||||
return true;
|
||||
return false;
|
||||
|
||||
# Private methods
|
||||
func _updateTileData() -> void:
|
||||
# ray cast down
|
||||
var offset = Vector3(0, 0, 0.426);
|
||||
var query = PhysicsRayQueryParameters3D.create(
|
||||
position + offset,
|
||||
position + Vector3(0, -1, 0) + offset
|
||||
)
|
||||
query.collide_with_areas = true
|
||||
query.exclude = [self]
|
||||
|
||||
var result = get_world_3d().direct_space_state.intersect_ray(query)
|
||||
if !result or !result.collider:
|
||||
return;
|
||||
|
||||
var collider = result.collider;
|
||||
var colliderMesh = collider.get_node("../");
|
||||
if !colliderMesh or !(colliderMesh is ArrayMesh) or !colliderMesh.mesh or colliderMesh.mesh.get_surface_count() == 0:
|
||||
return;
|
||||
|
||||
# Get the face index (triangle)
|
||||
var arrays = colliderMesh.mesh.surface_get_arrays(0);
|
||||
var indiceIdx = result.face_index * 3;
|
||||
|
||||
# Get each indice of the triangle
|
||||
var index0 = arrays[Mesh.ARRAY_INDEX][indiceIdx+0];
|
||||
var index1 = arrays[Mesh.ARRAY_INDEX][indiceIdx+1];
|
||||
var index2 = arrays[Mesh.ARRAY_INDEX][indiceIdx+2];
|
||||
|
||||
# Get each uv of each indice
|
||||
var uv0:Vector2 = arrays[Mesh.ARRAY_TEX_UV][index0];
|
||||
var uv1:Vector2 = arrays[Mesh.ARRAY_TEX_UV][index1];
|
||||
var uv2:Vector2 = arrays[Mesh.ARRAY_TEX_UV][index2];
|
||||
|
||||
# Determine the lowest texture coordinate
|
||||
var min = Vector2(min(uv0.x, uv1.x, uv2.x), min(uv0.y, uv1.y, uv2.y));
|
||||
|
||||
# Convert to column/row
|
||||
var w = 256;
|
||||
var h = w;
|
||||
var tw = 48;
|
||||
var th = tw;
|
||||
var column = int(roundf(min.x * w)) / tw;
|
||||
var row = int(roundf(min.y * h)) / th;
|
||||
var columns = 768 / tw;
|
||||
underFootPosition = result.position;
|
||||
underFootTile = column % columns + row * columns;
|
||||
|
||||
# Events
|
||||
func _ready() -> void:
|
||||
meshInstance = get_node("MeshInstance3D")
|
||||
_updateTileData();
|
||||
_updateMaterial();
|
||||
pass
|
||||
|
||||
func _process(delta:float) -> void:
|
||||
if isPaused():
|
||||
return;
|
||||
|
||||
# Handle entity leaving map bounds
|
||||
if !withinMapBounds:
|
||||
if !withinBoundsLastFrame:
|
||||
print("Entity ", self.name, " was out of map bounds for two frames");
|
||||
withinBoundsLastFrame = false;
|
||||
else:
|
||||
withinBoundsLastFrame = true;
|
||||
|
||||
# Update logic
|
||||
updateOverworldLogic(delta)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if isPaused():
|
||||
return;
|
||||
|
||||
# Update movement
|
||||
updateMovement(delta);
|
||||
|
||||
# Gravity and friction
|
||||
if !is_on_floor():
|
||||
velocity.y -= gravity * delta;
|
||||
else:
|
||||
velocity += -(velocity * friction * delta);
|
||||
if velocity.length() != 0:
|
||||
_updateTileData();
|
||||
|
||||
# Update character controller.
|
||||
move_and_slide();
|
@@ -1 +0,0 @@
|
||||
uid://bpwbaptqu4bm5
|
@@ -1,24 +0,0 @@
|
||||
extends Camera3D
|
||||
|
||||
const PIXEL_SCALE:float = 4.0;
|
||||
const WORLD_UNITS:float = 32.0;
|
||||
|
||||
func _ready() -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
var z:float = (
|
||||
tan((deg_to_rad(180) - deg_to_rad(fov)) / 2.0) *
|
||||
(get_viewport().size.y / 2.0)
|
||||
) / PIXEL_SCALE / WORLD_UNITS;
|
||||
|
||||
var rosa = get_node("..");
|
||||
var look = rosa.position;
|
||||
var position = Vector3(0, 0, 2) + look;
|
||||
look_at_from_position(
|
||||
Vector3(position.x, position.y + z, position.z),
|
||||
look
|
||||
);
|
||||
|
||||
pass
|
@@ -1 +0,0 @@
|
||||
uid://jd50n00bo05y
|
@@ -1,51 +0,0 @@
|
||||
class_name RosaController extends "res://scripts/Entities/OverworldEntity.gd"
|
||||
|
||||
var interactRange = 0.7;
|
||||
|
||||
func updateOverworldLogic(delta) -> void:
|
||||
# Check if interact button is pressed
|
||||
if(Input.is_action_just_pressed("interact")):
|
||||
var rayDirection = getDirectionVector();
|
||||
# cast ray
|
||||
|
||||
var query = PhysicsRayQueryParameters3D.create(
|
||||
position,
|
||||
position + (rayDirection * interactRange)
|
||||
)
|
||||
query.collide_with_areas = true
|
||||
query.exclude = [self]
|
||||
|
||||
var result = get_world_3d().direct_space_state.intersect_ray(query)
|
||||
if result and result.collider:
|
||||
var collider = result.collider
|
||||
if(collider.has_method("interact")):
|
||||
collider.interact(self)
|
||||
|
||||
if Input.is_action_just_pressed("pause"):
|
||||
getSystems().PAUSE.playerPauseToggle();
|
||||
|
||||
func updateMovement(delta) -> void:
|
||||
# User movement
|
||||
var dir:Vector2 = Input.get_vector("left", "right", "up", "down");
|
||||
if(dir.x != 0 or dir.y != 0):
|
||||
velocity.x = dir.x * speed * delta;
|
||||
velocity.z = dir.y * speed * delta;
|
||||
|
||||
# Update direction
|
||||
if(dir.x >= abs(dir.y) and(
|
||||
dir.y == 0 or
|
||||
(dir.y > 0 and direction != Direction.SOUTH) or
|
||||
(dir.y < 0 and direction != Direction.NORTH)
|
||||
)):
|
||||
direction = Direction.EAST;
|
||||
elif (dir.x <= -abs(dir.y) and (
|
||||
dir.y == 0 or
|
||||
(dir.y > 0 and direction != Direction.SOUTH) or
|
||||
(dir.y < 0 and direction != Direction.NORTH)
|
||||
)):
|
||||
direction = Direction.WEST;
|
||||
elif (dir.y > 0):
|
||||
direction = Direction.SOUTH;
|
||||
elif (dir.y < 0):
|
||||
direction = Direction.NORTH;
|
||||
pass
|
@@ -1 +0,0 @@
|
||||
uid://ixwikdguyhf0
|
@@ -1,36 +0,0 @@
|
||||
class_name Item
|
||||
|
||||
enum ItemCategory {
|
||||
MEDICINE,
|
||||
KEY_ITEM,
|
||||
INGREDIENT
|
||||
};
|
||||
|
||||
func getName() -> String:
|
||||
push_error("getName() must be overridden in derived classes");
|
||||
return "";
|
||||
|
||||
func isStackable() -> bool:
|
||||
return true;
|
||||
|
||||
func isDroppable() -> bool:
|
||||
return true;
|
||||
|
||||
func isSellable() -> bool:
|
||||
return true;
|
||||
|
||||
func getSellPrice() -> int:
|
||||
return 0;
|
||||
|
||||
func getBuyPrice() -> int:
|
||||
return 0;
|
||||
|
||||
func isConsumable() -> bool:
|
||||
return false;
|
||||
|
||||
func consume() -> void:
|
||||
pass
|
||||
|
||||
func getCategory() -> ItemCategory:
|
||||
push_error("getCategory() must be overriden in derived class");
|
||||
return ItemCategory.MEDICINE;
|
@@ -1 +0,0 @@
|
||||
uid://c6t5tprnd23t0
|
@@ -1,8 +0,0 @@
|
||||
class_name ItemStack
|
||||
|
||||
var item:Item;
|
||||
var quantity:int;
|
||||
|
||||
func _init(item:Item, quantity:int = 1):
|
||||
self.item = item;
|
||||
self.quantity = quantity;
|
@@ -1 +0,0 @@
|
||||
uid://re7dg4hpp804
|
@@ -1,13 +0,0 @@
|
||||
class_name Potion extends "res://scripts/Item/Item.gd"
|
||||
|
||||
func getName() -> String:
|
||||
return "Potion"
|
||||
|
||||
func getCategory() -> ItemCategory:
|
||||
return ItemCategory.MEDICINE;
|
||||
|
||||
func isConsumable() -> bool:
|
||||
return true;
|
||||
|
||||
func consume() -> void:
|
||||
print("Consuming Potion");
|
@@ -1 +0,0 @@
|
||||
uid://dpns5iesd08rl
|
@@ -1,15 +0,0 @@
|
||||
extends Area3D
|
||||
class_name MapBounds
|
||||
|
||||
func _ready() -> void:
|
||||
pass
|
||||
|
||||
func _on_body_entered(body: Node3D) -> void:
|
||||
if (!body is OverworldEntity):
|
||||
return
|
||||
(body as OverworldEntity).withinMapBounds = self;
|
||||
|
||||
func _on_body_exited(body: Node3D) -> void:
|
||||
if (!body is OverworldEntity):
|
||||
return
|
||||
(body as OverworldEntity).withinMapBounds = null;
|
@@ -1 +0,0 @@
|
||||
uid://dbah1pmk8jola
|
@@ -1 +0,0 @@
|
||||
uid://dr3asofxu1pep
|
@@ -1,8 +0,0 @@
|
||||
class_name QuestObjective
|
||||
|
||||
var name:String
|
||||
|
||||
func _init(
|
||||
name:String
|
||||
):
|
||||
self.name = name;
|
@@ -1 +0,0 @@
|
||||
uid://bakmt6ufpq33o
|
@@ -1,36 +0,0 @@
|
||||
class_name Quest
|
||||
const QuestObjective = preload("res://scripts/Quest/Objective/QuestObjective.gd");
|
||||
|
||||
enum QuestState {
|
||||
NOT_STARTED,
|
||||
ACTIVE,
|
||||
INACTIVE,
|
||||
FINISHED
|
||||
};
|
||||
|
||||
var questName:String;
|
||||
var questState:QuestState = QuestState.NOT_STARTED;
|
||||
var objectives:Array[QuestObjective] = [];
|
||||
var currentObjective = -1;
|
||||
|
||||
func _init(
|
||||
questName:String,
|
||||
objectives:Array[QuestObjective]
|
||||
) -> void:
|
||||
self.questName = questName;
|
||||
self.objectives = objectives;
|
||||
|
||||
func getState() -> QuestState:
|
||||
return questState;
|
||||
|
||||
func start():
|
||||
print("Starting quest: " + questName);
|
||||
questState = QuestState.ACTIVE;
|
||||
currentObjective = 0;
|
||||
|
||||
func nextObjective():
|
||||
currentObjective = currentObjective + 1;
|
||||
if currentObjective >= objectives.size():
|
||||
questState = QuestState.FINISHED;
|
||||
return null;
|
||||
return objectives[currentObjective];
|
@@ -1 +0,0 @@
|
||||
uid://kuxak18kbjr5
|
@@ -1,6 +0,0 @@
|
||||
class_name QuestExample extends "res://scripts/Quest/Quest.gd"
|
||||
|
||||
func _init() -> void:
|
||||
super("Example Quest", [
|
||||
QuestObjective.new("Test")
|
||||
]);
|
@@ -1 +0,0 @@
|
||||
uid://cg3piglr8rbfs
|
@@ -1 +0,0 @@
|
||||
uid://cubx2asrudfyp
|
@@ -1 +0,0 @@
|
||||
uid://dnls1370w0gr4
|
@@ -1 +0,0 @@
|
||||
class_name CookingScene extends Node3D
|
@@ -1 +0,0 @@
|
||||
uid://ckxjs4wty6sju
|
@@ -1 +0,0 @@
|
||||
class_name CuttingScene extends Node3D
|
@@ -1 +0,0 @@
|
||||
uid://kwnx0enmgk54
|
@@ -1 +0,0 @@
|
||||
class_name OverworldScene extends Node3D
|
@@ -1 +0,0 @@
|
||||
uid://pcncoc6wum4q
|
@@ -1,10 +0,0 @@
|
||||
class_name RootScene extends Node3D
|
||||
const Systems = preload("res://scripts/System/Systems.gd");
|
||||
const SceneSystem = preload("res://scripts/System/SceneSystem.gd");
|
||||
|
||||
var systems:Systems;
|
||||
|
||||
func _ready() -> void:
|
||||
print("Game started");
|
||||
systems = $Systems;
|
||||
systems.SCENE.setScene(SceneSystem.DawnScene.OVERWORLD);
|
@@ -1 +0,0 @@
|
||||
uid://cj4jxqpykhteg
|
@@ -1 +0,0 @@
|
||||
class_name UIScene extends Control
|
@@ -1 +0,0 @@
|
||||
uid://vjr7s045ri4a
|
@@ -1,11 +0,0 @@
|
||||
class_name BattleSystem extends Node
|
||||
const Battle = preload("res://scripts/Battle/Battle.gd");
|
||||
|
||||
var battle:Battle = null;
|
||||
|
||||
func getSystems():
|
||||
return get_tree().current_scene.get_node("Systems");
|
||||
|
||||
func startBattle(battle:Battle) -> void:
|
||||
print("start battle");
|
||||
self.battle = battle;
|
@@ -1 +0,0 @@
|
||||
uid://mr6i8copcn37
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user