├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── README.zh_CN.md ├── addons └── func_godot │ ├── fgd │ ├── func_detail.tres │ ├── func_detail_illusionary.tres │ ├── func_geo.tres │ ├── func_godot_fgd.tres │ ├── func_illusionary.tres │ ├── phong_base.tres │ └── worldspawn.tres │ ├── func_godot_default_map_settings.tres │ ├── func_godot_local_config.tres │ ├── game_config │ ├── netradiant_custom │ │ ├── func_godot_netradiant_custom_gamepack_config.tres │ │ ├── netradiant_custom_shader_clip.tres │ │ ├── netradiant_custom_shader_origin.tres │ │ └── netradiant_custom_shader_skip.tres │ └── trenchbroom │ │ ├── func_godot_tb_game_config.tres │ │ ├── tb_brush_tag_func.tres │ │ ├── tb_brush_tag_trigger.tres │ │ ├── tb_face_tag_clip.tres │ │ ├── tb_face_tag_origin.tres │ │ └── tb_face_tag_skip.tres │ ├── icon.png │ ├── icon.png.import │ ├── icon.svg │ ├── icon.svg.import │ ├── icon32.png │ ├── icon32.png.import │ ├── icons │ ├── icon_godambler.svg │ ├── icon_godambler.svg.import │ ├── icon_godambler3d.svg │ ├── icon_godambler3d.svg.import │ ├── icon_godot_ranger.svg │ ├── icon_godot_ranger.svg.import │ ├── icon_godot_ranger3d.svg │ ├── icon_godot_ranger3d.svg.import │ ├── icon_quake_file.svg │ ├── icon_quake_file.svg.import │ ├── icon_slipgate3d.svg │ └── icon_slipgate3d.svg.import │ ├── palette.lmp │ ├── palette.lmp.import │ ├── plugin.cfg │ ├── src │ ├── core │ │ ├── func_godot.gd │ │ ├── func_godot.gd.uid │ │ ├── func_godot_geo_generator.gd │ │ ├── func_godot_geo_generator.gd.uid │ │ ├── func_godot_map_data.gd │ │ ├── func_godot_map_data.gd.uid │ │ ├── func_godot_map_parser.gd │ │ ├── func_godot_map_parser.gd.uid │ │ ├── func_godot_surface_gatherer.gd │ │ └── func_godot_surface_gatherer.gd.uid │ ├── fgd │ │ ├── func_godot_fgd_base_class.gd │ │ ├── func_godot_fgd_base_class.gd.uid │ │ ├── func_godot_fgd_entity_class.gd │ │ ├── func_godot_fgd_entity_class.gd.uid │ │ ├── func_godot_fgd_file.gd │ │ ├── func_godot_fgd_file.gd.uid │ │ ├── func_godot_fgd_model_point_class.gd │ │ ├── func_godot_fgd_model_point_class.gd.uid │ │ ├── func_godot_fgd_point_class.gd │ │ ├── func_godot_fgd_point_class.gd.uid │ │ ├── func_godot_fgd_solid_class.gd │ │ └── func_godot_fgd_solid_class.gd.uid │ ├── func_godot_plugin.gd │ ├── func_godot_plugin.gd.uid │ ├── import │ │ ├── quake_map_file.gd │ │ ├── quake_map_file.gd.uid │ │ ├── quake_map_import_plugin.gd │ │ ├── quake_map_import_plugin.gd.uid │ │ ├── quake_palette_file.gd │ │ ├── quake_palette_file.gd.uid │ │ ├── quake_palette_import_plugin.gd │ │ ├── quake_palette_import_plugin.gd.uid │ │ ├── quake_wad_file.gd │ │ ├── quake_wad_file.gd.uid │ │ ├── quake_wad_import_plugin.gd │ │ └── quake_wad_import_plugin.gd.uid │ ├── map │ │ ├── func_godot_map.gd │ │ ├── func_godot_map.gd.uid │ │ ├── func_godot_map_settings.gd │ │ └── func_godot_map_settings.gd.uid │ ├── netradiant_custom │ │ ├── netradiant_custom_gamepack_config.gd │ │ ├── netradiant_custom_gamepack_config.gd.uid │ │ ├── netradiant_custom_shader.gd │ │ └── netradiant_custom_shader.gd.uid │ ├── trenchbroom │ │ ├── trenchbroom_game_config.gd │ │ ├── trenchbroom_game_config.gd.uid │ │ ├── trenchbroom_tag.gd │ │ └── trenchbroom_tag.gd.uid │ └── util │ │ ├── func_godot_local_config.gd │ │ ├── func_godot_local_config.gd.uid │ │ ├── func_godot_texture_loader.gd │ │ ├── func_godot_texture_loader.gd.uid │ │ ├── func_godot_util.gd │ │ └── func_godot_util.gd.uid │ └── textures │ ├── default_material.tres │ ├── default_texture.png │ ├── default_texture.png.import │ └── special │ ├── clip.png │ ├── clip.png.import │ ├── origin.png │ ├── origin.png.import │ ├── skip.png │ └── skip.png.import ├── datas ├── base │ ├── angle_base.tres │ ├── direction_base.tres │ ├── func_base.tres │ ├── globalname_base.tres │ ├── light_base.tres │ ├── target_base.tres │ ├── targetname_base.tres │ └── trigger_base.tres ├── fgd_base.tres ├── fgd_main.tres ├── fgd_point.tres ├── fgd_solid.tres ├── func_godot_fdg.tres ├── map_settings.tres ├── models │ ├── prop_turtle.glb │ ├── prop_turtle.glb.import │ ├── prop_turtle_0.png │ ├── prop_turtle_0.png.import │ ├── prop_turtle_1.png │ ├── prop_turtle_1.png.import │ ├── prop_turtle_2.png │ └── prop_turtle_2.png.import ├── point │ ├── info_camera.tres │ ├── lights │ │ ├── light_omni.tres │ │ └── light_spot.tres │ └── prop_turtle.tres ├── solid │ ├── funcs │ │ ├── func_detail.tres │ │ ├── func_detail_illusionary.tres │ │ ├── func_geo.tres │ │ ├── func_illusionary.tres │ │ ├── func_ladder.tres │ │ ├── func_move.tres │ │ └── func_water.tres │ └── triggers │ │ └── trigger_area.tres └── tb_configs.tres ├── icon.png ├── icon.png.import ├── map.tscn ├── maps ├── func_godot_maps │ ├── autosave │ │ ├── staris.1.map │ │ ├── staris.1.map.import │ │ ├── staris.2.map │ │ ├── staris.2.map.import │ │ ├── staris.3.map │ │ ├── staris.3.map.import │ │ ├── staris.4.map │ │ ├── staris.4.map.import │ │ ├── staris.5.map │ │ ├── staris.5.map.import │ │ └── staris.6.map.import │ ├── autosaves │ │ └── .gdignore │ ├── staris-crash-1.log │ ├── staris-crash-1.map │ ├── staris-crash-1.map.import │ ├── staris-crash-1.txt │ ├── staris-crash.log │ ├── staris-crash.map │ ├── staris-crash.map.import │ ├── staris-crash.txt │ ├── staris.map │ └── staris.map.import ├── test_intreaction.tscn ├── test_lab_map.tscn └── test_stairs.tscn ├── meshs ├── WaterPrefab3D.tscn ├── player-cap.tres ├── player-cylin.tres ├── turtle.glb ├── turtle.glb.import ├── turtle.gltf ├── turtle.gltf.import ├── turtle.tscn ├── turtle_og_turtle_texture-x1024.png ├── turtle_og_turtle_texture-x1024.png.import ├── turtle_rb3d.tscn ├── untitled.glb └── untitled.glb.import ├── pause_menu.tscn ├── player.tscn ├── project.godot ├── scripts ├── camera.gd ├── camera.gd.uid ├── control_ui.gd ├── control_ui.gd.uid ├── data │ ├── player_data.gd │ └── player_data.gd.uid ├── debug_panel.gd ├── debug_panel.gd.uid ├── entities │ ├── funcs │ │ ├── func_ladder.gd │ │ ├── func_ladder.gd.uid │ │ ├── func_move.gd │ │ ├── func_move.gd.uid │ │ ├── func_water.gd │ │ └── func_water.gd.uid │ ├── info_camera.gd │ ├── info_camera.gd.uid │ ├── lights │ │ ├── light_base.gd │ │ ├── light_base.gd.uid │ │ ├── light_omni.gd │ │ ├── light_omni.gd.uid │ │ ├── light_spot.gd │ │ └── light_spot.gd.uid │ └── triggers │ │ ├── trigger_area.gd │ │ └── trigger_area.gd.uid ├── game_manager.gd ├── game_manager.gd.uid ├── global.gd ├── global.gd.uid ├── grab.gd ├── grab.gd.uid ├── hud.gd ├── hud.gd.uid ├── main_menu.gd ├── main_menu.gd.uid ├── player.gd ├── player.gd.uid ├── player_physic.gd ├── player_physic.gd.uid ├── water.gd └── water.gd.uid └── textures ├── camera_water_ripple.gdshader ├── camera_water_ripple.gdshader.uid ├── dev-1024-o.tres ├── dev-1024x2-o.tres ├── dev_textures ├── Kenney.url ├── License.txt ├── Patreon.url ├── texture_01.png ├── texture_01.png.import ├── texture_01.tres ├── texture_02.png ├── texture_02.png.import ├── texture_02.tres ├── texture_06.png ├── texture_06.png.import ├── texture_06.tres ├── texture_08.png ├── texture_08.png.import └── texture_08.tres ├── input-prompts ├── License.txt ├── keyboard_a.png ├── keyboard_a.png.import ├── keyboard_arrow_down.png ├── keyboard_arrow_down.png.import ├── keyboard_arrow_left.png ├── keyboard_arrow_left.png.import ├── keyboard_arrow_right.png ├── keyboard_arrow_right.png.import ├── keyboard_arrow_up.png ├── keyboard_arrow_up.png.import ├── keyboard_bracket_close.png.import ├── keyboard_caret.png ├── keyboard_caret.png.import ├── keyboard_ctrl.png ├── keyboard_ctrl.png.import ├── keyboard_d.png ├── keyboard_d.png.import ├── keyboard_down.png ├── keyboard_down.png.import ├── keyboard_f.png ├── keyboard_f.png.import ├── keyboard_minus.png ├── keyboard_minus.png.import ├── keyboard_r.png ├── keyboard_r.png.import ├── keyboard_s.png ├── keyboard_s.png.import ├── keyboard_shift.png ├── keyboard_shift.png.import ├── keyboard_space.png ├── keyboard_space.png.import ├── keyboard_w.png ├── keyboard_w.png.import ├── mouse_left.png ├── mouse_left.png.import ├── mouse_right.png ├── mouse_right.png.import ├── mouse_scroll.png └── mouse_scroll.png.import ├── new_standard_material_3d.tres ├── special ├── clip.png ├── clip.png.import ├── ladder.png ├── ladder.png.import ├── ladder.tres ├── noise_texture.tres ├── skip.png ├── skip.png.import ├── trigger.png ├── trigger.png.import ├── trigger.tres ├── water_texture.png ├── water_texture.png.import └── water_texture.tres └── tri.tres /.gitattributes: -------------------------------------------------------------------------------- 1 | # Normalize EOL for all files that Git considers text files. 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Godot 4+ specific ignores 2 | .godot/ 3 | addons/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll 4 | addons/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll 5 | .vscode/settings.json 6 | /.godot/editor 7 | /.godot 8 | /.godot 9 | .vscode/launch.json 10 | addons/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll 11 | /maps/func_godot_maps/autosave 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 LunaticReisen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GodotSourceMovment 2 | 3 | Use Godot __4.3__ ~~4.2.1~~ 4 | 5 | Use __Godot Jolt__ and __Func_Godot__ Addons 6 | 7 | [简体中文](README.zh_CN.md) 8 | 9 | ## Features 10 | 11 | - [x] BunnyHopping 12 | - [x] Surfing 13 | - [x] Air Strafe 14 | - [x] Crouching 15 | - [x] Mouse Scroll Jumpping 16 | - [x] Crouch Jumping 17 | - [x] Stairs 18 | - [x] Stairs Camera Smoothing 19 | - [x] Crouching climb stairs 20 | - [x] Ladder 21 | - [x] Swimming 22 | 23 | ### Additional Content 24 | 25 | - [x] FGD mapping support 26 | 27 | - [x] Interact with objects 28 | 29 | #### TO-DO 30 | 31 | Some function NEED to be code comments 32 | 33 | Source like(?) down stairs 34 | 35 | ## HOW TO USE 36 | 37 | Clone it and unzip it on any where you like ,then use godot to import the sproject, that it! Have fun! 38 | 39 | ## Know Issues 40 | 41 | Lunar say maybe random stuck in stairs (it might be a small problem...?) 42 | 43 | ## Ref: 44 | 45 | use kenny's asset 46 | 47 | https://www.kenney.nl/assets/input-prompts 48 | 49 | https://www.kenney.nl/assets/prototype-textures 50 | 51 | Ported from https://github.com/WiggleWizard/quake3-movement-unity3d/blob/master/CPMPlayer.cs 52 | 53 | https://github.com/WiggleWizard/quake3-movement-unity3d/blob/master/CPMPlayer.cs 54 | 55 | https://www.youtube.com/watch?v=v3zT3Z5apaM&t=165s 56 | 57 | https://adrianb.io/2015/02/14/bunnyhop.html 58 | 59 | https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/bg_pmove.c#L235 60 | 61 | https://github.com/dwlcj/Godot-Strafe-Jumping/blob/main/Scenes/Player.gd#L161 62 | 63 | https://github.com/AkimBowX2/Godot-4_FPS_controller/blob/main/scenes/player/player.gd 64 | 65 | https://www.reddit.com/r/godot/comments/16do5ua/move_and_slide_works_differently_between_35_and_4/ 66 | 67 | https://github.com/majikayogames/SimpleFPSController 68 | 69 | https://github.com/func-godot/func_godot_example_basic 70 | 71 | https://func-godot.github.io/func_godot_docs/ 72 | -------------------------------------------------------------------------------- /README.zh_CN.md: -------------------------------------------------------------------------------- 1 | # GodotSourceMovment 2 | 3 | Use Godot __4.3__ ~~4.2.1~~ 4 | 5 | 使用 __Godot Jolt__ 和 __Func_Godot__ 插件 6 | 7 | ## 已实现的功能 8 | 9 | - [x] 兔子跳 10 | - [x] 滑翔 11 | - [x] Air Strafe [(空中走位?](https://wiki.teamfortress.com/wiki/Strafing/zh-hans)反正就是旋转跳啥的身法) 12 | - [x] 蹲伏 13 | - [x] 滚轮跳 14 | - [x] 蹲跳 15 | - [x] 爬楼梯 16 | - [x] 平滑镜头 17 | - [x] 蹲伏状态下爬楼梯 18 | - [x] 梯子 19 | - [x] 游泳 20 | 21 | ### 附加内容 22 | 23 | - [x] 物体交互 24 | 25 | - [x] 用于TrenchBroom地图制作的FGD 26 | 27 | #### TO-DO 28 | 29 | 把部分没写注释的地方写上注释 30 | 31 | ## 如何使用 32 | 33 | clone然后解压到你想要的位置,然后在godot导入项目即可 34 | 35 | ## 已知问题 36 | 37 | Lunar say maybe random stuck in stairs (it might be a small problem...?) 38 | 39 | ## Ref: 40 | 41 | use kenny's asset 42 | 43 | https://www.kenney.nl/assets/input-prompts 44 | 45 | https://www.kenney.nl/assets/prototype-textures 46 | 47 | Ported from https://github.com/WiggleWizard/quake3-movement-unity3d/blob/master/CPMPlayer.cs 48 | 49 | https://github.com/WiggleWizard/quake3-movement-unity3d/blob/master/CPMPlayer.cs 50 | 51 | https://www.youtube.com/watch?v=v3zT3Z5apaM&t=165s 52 | 53 | https://adrianb.io/2015/02/14/bunnyhop.html 54 | 55 | https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/bg_pmove.c#L235 56 | 57 | https://github.com/dwlcj/Godot-Strafe-Jumping/blob/main/Scenes/Player.gd#L161 58 | 59 | https://github.com/AkimBowX2/Godot-4_FPS_controller/blob/main/scenes/player/player.gd 60 | 61 | https://www.reddit.com/r/godot/comments/16do5ua/move_and_slide_works_differently_between_35_and_4/ 62 | 63 | https://github.com/majikayogames/SimpleFPSController 64 | 65 | https://github.com/func-godot/func_godot_example_basic 66 | 67 | https://func-godot.github.io/func_godot_docs/ 68 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/func_detail.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://cxy7jnh6d7msn"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_0fsmp"] 4 | [ext_resource type="Resource" uid="uid://nayxb8n7see2" path="res://addons/func_godot/fgd/phong_base.tres" id="1_c3bns"] 5 | 6 | [resource] 7 | script = ExtResource("1_0fsmp") 8 | spawn_type = 2 9 | origin_type = 4 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = false 14 | render_layers = 1 15 | collision_shape_type = 2 16 | collision_layer = 1 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_detail" 21 | description = "Static collidable geometry. Builds a StaticBody3D with a MeshInstance3D and a single concave CollisionShape3D. Does not occlude other VisualInstance3D nodes." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_c3bns")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1) 28 | } 29 | node_class = "StaticBody3D" 30 | name_property = "" 31 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/func_detail_illusionary.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://ch3e0dix85uhb"] 2 | 3 | [ext_resource type="Resource" uid="uid://nayxb8n7see2" path="res://addons/func_godot/fgd/phong_base.tres" id="1_ar63x"] 4 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_lhb87"] 5 | 6 | [resource] 7 | script = ExtResource("2_lhb87") 8 | spawn_type = 2 9 | origin_type = 4 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = false 14 | render_layers = 1 15 | collision_shape_type = 0 16 | collision_layer = 1 17 | collision_mask = 1 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_detail_illusionary" 21 | description = "Static geometry with no collision. Builds a Node3D with a MeshInstance3D. Does not occlude other VisualInstance3D nodes." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_ar63x")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1) 28 | } 29 | node_class = "Node3D" 30 | name_property = "" 31 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/func_geo.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://b70vf4t5dc70t"] 2 | 3 | [ext_resource type="Resource" uid="uid://nayxb8n7see2" path="res://addons/func_godot/fgd/phong_base.tres" id="1_5mwee"] 4 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_8o081"] 5 | 6 | [resource] 7 | script = ExtResource("2_8o081") 8 | spawn_type = 2 9 | origin_type = 4 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = true 14 | render_layers = 1 15 | collision_shape_type = 2 16 | collision_layer = 1 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_geo" 21 | description = "Static collidable geometry. Builds a StaticBody3D with a MeshInstance3D, a single concave CollisionShape3D, and an OccluderInstance3D." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_5mwee")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1) 28 | } 29 | node_class = "StaticBody3D" 30 | name_property = "" 31 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/func_godot_fgd.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=8 format=3 uid="uid://crgpdahjaj"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_axt3h"] 4 | [ext_resource type="Resource" uid="uid://nayxb8n7see2" path="res://addons/func_godot/fgd/phong_base.tres" id="1_ehab8"] 5 | [ext_resource type="Resource" uid="uid://bdji3873bg32h" path="res://addons/func_godot/fgd/worldspawn.tres" id="2_ri2rx"] 6 | [ext_resource type="Resource" uid="uid://b70vf4t5dc70t" path="res://addons/func_godot/fgd/func_geo.tres" id="3_7jigp"] 7 | [ext_resource type="Resource" uid="uid://cxy7jnh6d7msn" path="res://addons/func_godot/fgd/func_detail.tres" id="3_fqfww"] 8 | [ext_resource type="Resource" uid="uid://dg5x44cc7flew" path="res://addons/func_godot/fgd/func_illusionary.tres" id="4_c4ucw"] 9 | [ext_resource type="Resource" uid="uid://ch3e0dix85uhb" path="res://addons/func_godot/fgd/func_detail_illusionary.tres" id="5_b2q3p"] 10 | 11 | [resource] 12 | script = ExtResource("1_axt3h") 13 | export_file = false 14 | target_map_editor = 1 15 | fgd_name = "FuncGodot" 16 | base_fgd_files = Array[Resource]([]) 17 | entity_definitions = Array[Resource]([ExtResource("1_ehab8"), ExtResource("2_ri2rx"), ExtResource("3_7jigp"), ExtResource("3_fqfww"), ExtResource("5_b2q3p"), ExtResource("4_c4ucw")]) 18 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/func_illusionary.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://dg5x44cc7flew"] 2 | 3 | [ext_resource type="Resource" uid="uid://nayxb8n7see2" path="res://addons/func_godot/fgd/phong_base.tres" id="1_kv0mq"] 4 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_uffhi"] 5 | 6 | [resource] 7 | script = ExtResource("2_uffhi") 8 | spawn_type = 2 9 | origin_type = 4 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = true 14 | render_layers = 1 15 | collision_shape_type = 0 16 | collision_layer = 1 17 | collision_mask = 1 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_illusionary" 21 | description = "Static geometry with no collision. Builds a Node3D with a MeshInstance3D and an Occluder3D to aid in render culling of other VisualInstance3D nodes." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_kv0mq")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1) 28 | } 29 | node_class = "Node3D" 30 | name_property = "" 31 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/phong_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://nayxb8n7see2"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_04y3n"] 4 | 5 | [resource] 6 | script = ExtResource("1_04y3n") 7 | classname = "Phong" 8 | description = "Phong shading options for SolidClass geometry." 9 | func_godot_internal = false 10 | base_classes = Array[Resource]([]) 11 | class_properties = { 12 | "_phong": { 13 | "Disabled": 0, 14 | "Smooth shading": 1 15 | }, 16 | "_phong_angle": 89.0 17 | } 18 | class_property_descriptions = { 19 | "_phong": ["Phong shading", 0], 20 | "_phong_angle": "Phong smoothing angle" 21 | } 22 | meta_properties = { 23 | "color": Color(0.8, 0.8, 0.8, 1), 24 | "size": AABB(-8, -8, -8, 8, 8, 8) 25 | } 26 | node_class = "" 27 | name_property = "" 28 | -------------------------------------------------------------------------------- /addons/func_godot/fgd/worldspawn.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=2 format=3 uid="uid://bdji3873bg32h"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_62t8m"] 4 | 5 | [resource] 6 | script = ExtResource("1_62t8m") 7 | spawn_type = 0 8 | origin_type = 4 9 | build_visuals = true 10 | use_in_baked_light = true 11 | shadow_casting_setting = 1 12 | build_occlusion = true 13 | render_layers = 1 14 | collision_shape_type = 1 15 | collision_layer = 1 16 | collision_mask = 0 17 | collision_priority = 1.0 18 | collision_shape_margin = 0.04 19 | classname = "worldspawn" 20 | description = "Default static world geometry. Builds a StaticBody3D with a single MeshInstance3D and a single convex CollisionShape3D shape. Also builds Occluder3D to aid in render culling of other VisualInstance3D nodes." 21 | func_godot_internal = false 22 | base_classes = Array[Resource]([]) 23 | class_properties = {} 24 | class_property_descriptions = {} 25 | meta_properties = { 26 | "color": Color(0.8, 0.8, 0.8, 1) 27 | } 28 | node_class = "StaticBody3D" 29 | name_property = "" 30 | -------------------------------------------------------------------------------- /addons/func_godot/func_godot_default_map_settings.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotMapSettings" load_steps=4 format=3 uid="uid://bkhxcqsquw1yg"] 2 | 3 | [ext_resource type="Material" uid="uid://cvex6toty8yn7" path="res://addons/func_godot/textures/default_material.tres" id="1_8l5wm"] 4 | [ext_resource type="Script" path="res://addons/func_godot/src/map/func_godot_map_settings.gd" id="1_dlf23"] 5 | [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_hd7se"] 6 | 7 | [resource] 8 | script = ExtResource("1_dlf23") 9 | inverse_scale_factor = 32.0 10 | entity_fgd = ExtResource("1_hd7se") 11 | entity_name_property = "" 12 | base_texture_dir = "res://textures" 13 | texture_file_extensions = Array[String](["png", "jpg", "jpeg", "bmp", "tga", "webp"]) 14 | clip_texture = "special/clip" 15 | skip_texture = "special/skip" 16 | origin_texture = "special/origin" 17 | texture_wads = Array[Resource]([]) 18 | material_file_extension = "tres" 19 | default_material = ExtResource("1_8l5wm") 20 | default_material_albedo_uniform = "" 21 | albedo_map_pattern = "%s_albedo.%s" 22 | normal_map_pattern = "%s_normal.%s" 23 | metallic_map_pattern = "%s_metallic.%s" 24 | roughness_map_pattern = "%s_roughness.%s" 25 | emission_map_pattern = "%s_emission.%s" 26 | ao_map_pattern = "%s_ao.%s" 27 | height_map_pattern = "%s_height.%s" 28 | orm_map_pattern = "%s_orm.%s" 29 | save_generated_materials = true 30 | uv_unwrap_texel_size = 2.0 31 | use_trenchbroom_groups_hierarchy = false 32 | -------------------------------------------------------------------------------- /addons/func_godot/func_godot_local_config.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotLocalConfig" load_steps=2 format=3 uid="uid://bqjt7nyekxgog"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/util/func_godot_local_config.gd" id="1_g8kqj"] 4 | 5 | [resource] 6 | script = ExtResource("1_g8kqj") 7 | export_func_godot_settings = false 8 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/netradiant_custom/func_godot_netradiant_custom_gamepack_config.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="NetRadiantCustomGamePackConfig" load_steps=6 format=3 uid="uid://cv1k2e85fo2ax"] 2 | 3 | [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_gct4v"] 4 | [ext_resource type="Script" path="res://addons/func_godot/src/netradiant_custom/netradiant_custom_gamepack_config.gd" id="2_en8ro"] 5 | [ext_resource type="Resource" uid="uid://f5erfnvbg6b7" path="res://addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_clip.tres" id="2_w7psh"] 6 | [ext_resource type="Resource" uid="uid://cfhg30jclb4lw" path="res://addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_skip.tres" id="3_6gpk8"] 7 | [ext_resource type="Resource" uid="uid://bpnj14oaufdpt" path="res://addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_origin.tres" id="4_8rl60"] 8 | 9 | [resource] 10 | script = ExtResource("2_en8ro") 11 | export_file = false 12 | gamepack_name = "func_godot" 13 | game_name = "FuncGodot" 14 | base_game_path = "" 15 | fgd_file = ExtResource("1_gct4v") 16 | netradiant_custom_shaders = Array[Resource]([ExtResource("2_w7psh"), ExtResource("3_6gpk8"), ExtResource("4_8rl60")]) 17 | texture_types = PackedStringArray("png", "jpg", "jpeg", "bmp", "tga") 18 | model_types = PackedStringArray("glb", "gltf", "obj") 19 | sound_types = PackedStringArray("wav", "ogg") 20 | default_scale = "1.0" 21 | clip_texture = "textures/special/clip" 22 | skip_texture = "textures/special/skip" 23 | default_build_menu_variables = {} 24 | default_build_menu_commands = {} 25 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_clip.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="NetRadiantCustomShader" load_steps=2 format=3 uid="uid://f5erfnvbg6b7"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/netradiant_custom/netradiant_custom_shader.gd" id="1_cuylw"] 4 | 5 | [resource] 6 | script = ExtResource("1_cuylw") 7 | texture_path = "textures/special/clip" 8 | shader_attributes = Array[String](["qer_trans 0.4"]) 9 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_origin.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="NetRadiantCustomShader" load_steps=2 format=3 uid="uid://bpnj14oaufdpt"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/netradiant_custom/netradiant_custom_shader.gd" id="1_ah2cp"] 4 | 5 | [resource] 6 | script = ExtResource("1_ah2cp") 7 | texture_path = "textures/special/origin" 8 | shader_attributes = Array[String](["qer_trans 0.4"]) 9 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/netradiant_custom/netradiant_custom_shader_skip.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="NetRadiantCustomShader" load_steps=2 format=3 uid="uid://cfhg30jclb4lw"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/netradiant_custom/netradiant_custom_shader.gd" id="1_4ja6h"] 4 | 5 | [resource] 6 | script = ExtResource("1_4ja6h") 7 | texture_path = "textures/special/skip" 8 | shader_attributes = Array[String](["qer_trans 0.4"]) 9 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/func_godot_tb_game_config.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomGameConfig" load_steps=7 format=3 uid="uid://b44ah5b2000wa"] 2 | 3 | [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_8u1vq"] 4 | [ext_resource type="Resource" uid="uid://b4xhdj0e16lop" path="res://addons/func_godot/game_config/trenchbroom/tb_face_tag_clip.tres" id="1_rsp20"] 5 | [ext_resource type="Resource" uid="uid://ca7377sfgj074" path="res://addons/func_godot/game_config/trenchbroom/tb_face_tag_skip.tres" id="2_166i2"] 6 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_game_config.gd" id="2_ns6ah"] 7 | [ext_resource type="Resource" uid="uid://bkjxc54mmdhbo" path="res://addons/func_godot/game_config/trenchbroom/tb_face_tag_origin.tres" id="3_stisi"] 8 | [ext_resource type="Texture2D" uid="uid://decwujsyhj0qy" path="res://addons/func_godot/icon32.png" id="6_tex5j"] 9 | 10 | [resource] 11 | script = ExtResource("2_ns6ah") 12 | export_file = false 13 | game_name = "FuncGodot" 14 | icon = ExtResource("6_tex5j") 15 | map_formats = Array[Dictionary]([{ 16 | "format": "Valve", 17 | "initialmap": "initial_valve.map" 18 | }, { 19 | "format": "Standard", 20 | "initialmap": "initial_standard.map" 21 | }, { 22 | "format": "Quake2", 23 | "initialmap": "initial_quake2.map" 24 | }, { 25 | "format": "Quake3" 26 | }]) 27 | textures_root_folder = "textures" 28 | texture_exclusion_patterns = Array[String](["*_albedo", "*_ao", "*_emission", "*_height", "*_metallic", "*_normal", "*_orm", "*_roughness", "*_sss"]) 29 | palette_path = "textures/palette.lmp" 30 | fgd_file = ExtResource("1_8u1vq") 31 | entity_scale = "32" 32 | brush_tags = Array[Resource]([]) 33 | brushface_tags = Array[Resource]([ExtResource("1_rsp20"), ExtResource("2_166i2"), ExtResource("3_stisi")]) 34 | default_uv_scale = Vector2(1, 1) 35 | game_config_version = 0 36 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/tb_brush_tag_func.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomTag" load_steps=2 format=3 uid="uid://37iduqf7tpxq"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_tag.gd" id="1_rn13a"] 4 | 5 | [resource] 6 | script = ExtResource("1_rn13a") 7 | tag_name = "Func" 8 | tag_attributes = Array[String]([]) 9 | tag_match_type = 1 10 | tag_pattern = "func*" 11 | texture_name = "" 12 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/tb_brush_tag_trigger.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomTag" load_steps=2 format=3 uid="uid://co2sb1ng7cw4i"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_tag.gd" id="1_msqpk"] 4 | 5 | [resource] 6 | script = ExtResource("1_msqpk") 7 | tag_name = "Trigger" 8 | tag_attributes = Array[String](["transparent"]) 9 | tag_match_type = 1 10 | tag_pattern = "trigger*" 11 | texture_name = "special/trigger" 12 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/tb_face_tag_clip.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomTag" load_steps=2 format=3 uid="uid://b4xhdj0e16lop"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_tag.gd" id="1_7td58"] 4 | 5 | [resource] 6 | script = ExtResource("1_7td58") 7 | tag_name = "Clip" 8 | tag_attributes = Array[String](["transparent"]) 9 | tag_match_type = 0 10 | tag_pattern = "clip" 11 | texture_name = "" 12 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/tb_face_tag_origin.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomTag" load_steps=2 format=3 uid="uid://bkjxc54mmdhbo"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_tag.gd" id="1_enkfc"] 4 | 5 | [resource] 6 | script = ExtResource("1_enkfc") 7 | tag_name = "Origin" 8 | tag_attributes = Array[String](["transparent"]) 9 | tag_match_type = 0 10 | tag_pattern = "origin" 11 | texture_name = "" 12 | -------------------------------------------------------------------------------- /addons/func_godot/game_config/trenchbroom/tb_face_tag_skip.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomTag" load_steps=2 format=3 uid="uid://ca7377sfgj074"] 2 | 3 | [ext_resource type="Script" path="res://addons/func_godot/src/trenchbroom/trenchbroom_tag.gd" id="1_2teqe"] 4 | 5 | [resource] 6 | script = ExtResource("1_2teqe") 7 | tag_name = "Skip" 8 | tag_attributes = Array[String](["transparent"]) 9 | tag_match_type = 0 10 | tag_pattern = "skip" 11 | texture_name = "" 12 | -------------------------------------------------------------------------------- /addons/func_godot/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/icon.png -------------------------------------------------------------------------------- /addons/func_godot/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cp2as6ujvknyu" 6 | path="res://.godot/imported/icon.png-6db43b6a52df1ce3744a82f15cbdbbea.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icon.png" 14 | dest_files=["res://.godot/imported/icon.png-6db43b6a52df1ce3744a82f15cbdbbea.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/func_godot/icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bx5buvf1ydm7q" 6 | path="res://.godot/imported/icon.svg-99f2c56e0c1ce867c819715c68d9c120.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icon.svg" 14 | dest_files=["res://.godot/imported/icon.svg-99f2c56e0c1ce867c819715c68d9c120.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icon32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/icon32.png -------------------------------------------------------------------------------- /addons/func_godot/icon32.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://decwujsyhj0qy" 6 | path="res://.godot/imported/icon32.png-7025e2d95a64a3066b7947e1900b4daf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icon32.png" 14 | dest_files=["res://.godot/imported/icon32.png-7025e2d95a64a3066b7947e1900b4daf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_godambler.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bm2kwpq18quv0" 6 | path="res://.godot/imported/icon_godambler.svg-a6dbba375ab2a45be046a1875b8d41e6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_godambler.svg" 14 | dest_files=["res://.godot/imported/icon_godambler.svg-a6dbba375ab2a45be046a1875b8d41e6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_godambler3d.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dieefivfbkovw" 6 | path="res://.godot/imported/icon_godambler3d.svg-f7df9bfe58320474198644aa06a8f3f6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_godambler3d.svg" 14 | dest_files=["res://.godot/imported/icon_godambler3d.svg-f7df9bfe58320474198644aa06a8f3f6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_godot_ranger.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cfxlhjsefleff" 6 | path="res://.godot/imported/icon_godot_ranger.svg-8572582518f54de6403b767a923b5a92.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_godot_ranger.svg" 14 | dest_files=["res://.godot/imported/icon_godot_ranger.svg-8572582518f54de6403b767a923b5a92.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_godot_ranger3d.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://brm515f5ivx8m" 6 | path="res://.godot/imported/icon_godot_ranger3d.svg-a9a2c9bcf2e8b1e07a0a941a16264e98.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_godot_ranger3d.svg" 14 | dest_files=["res://.godot/imported/icon_godot_ranger3d.svg-a9a2c9bcf2e8b1e07a0a941a16264e98.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_quake_file.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c0464gp8lby0w" 6 | path="res://.godot/imported/icon_quake_file.svg-1718b9a2b5e0b124f6d72bb4c72d2ee6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_quake_file.svg" 14 | dest_files=["res://.godot/imported/icon_quake_file.svg-1718b9a2b5e0b124f6d72bb4c72d2ee6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_slipgate3d.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /addons/func_godot/icons/icon_slipgate3d.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cfvririkaa4tv" 6 | path="res://.godot/imported/icon_slipgate3d.svg-f125bef6ff5aa79b5fe3f232a083425e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/icons/icon_slipgate3d.svg" 14 | dest_files=["res://.godot/imported/icon_slipgate3d.svg-f125bef6ff5aa79b5fe3f232a083425e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/func_godot/palette.lmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/palette.lmp -------------------------------------------------------------------------------- /addons/func_godot/palette.lmp.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.palette" 4 | type="Resource" 5 | uid="uid://drgnc41yfybr" 6 | path="res://.godot/imported/palette.lmp-138c33f2ac0cab3ad6373e7c0425cf00.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://addons/func_godot/palette.lmp" 11 | dest_files=["res://.godot/imported/palette.lmp-138c33f2ac0cab3ad6373e7c0425cf00.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /addons/func_godot/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="FuncGodot" 4 | description="Quake .map file support for Godot." 5 | author="Shifty, Hannah Crawford, Emberlynn Bland, Tim Maccabe" 6 | version="2025.1" 7 | script="src/func_godot_plugin.gd" 8 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot.gd.uid: -------------------------------------------------------------------------------- 1 | uid://by8h0i0qwjjjy 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot_geo_generator.gd.uid: -------------------------------------------------------------------------------- 1 | uid://7uykk3ul5qm7 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot_map_data.gd: -------------------------------------------------------------------------------- 1 | class_name FuncGodotMapData extends RefCounted 2 | 3 | var entities: Array[FuncGodotMapData.FuncGodotEntity] 4 | var entity_geo: Array[FuncGodotMapData.FuncGodotEntityGeometry] 5 | var textures: Array[FuncGodotMapData.FuncGodotTextureData] 6 | 7 | func register_texture(name: String) -> int: 8 | for i in range(textures.size()): 9 | if textures[i].name == name: 10 | return i 11 | 12 | textures.append(FuncGodotTextureData.new(name)) 13 | return textures.size() - 1 14 | 15 | func set_texture_info(name: String, width: int, height: int, type: FuncGodotTextureType) -> void: 16 | for i in range(textures.size()): 17 | if textures[i].name == name: 18 | textures[i].width = width 19 | textures[i].height = height 20 | textures[i].type = type 21 | return 22 | 23 | func find_texture(texture_name: String) -> int: 24 | for i in range(textures.size()): 25 | if textures[i].name == texture_name: 26 | return i 27 | return -1 28 | 29 | func set_entity_types_by_classname(classname: String, spawn_type: int, origin_type: int, meta_flags: int) -> void: 30 | for entity in entities: 31 | if entity.properties.has("classname") and entity.properties["classname"] == classname: 32 | entity.metadata_inclusion_flags = meta_flags as FuncGodotMapData.FuncGodotEntityMetadataInclusionFlags 33 | entity.spawn_type = spawn_type as FuncGodotMapData.FuncGodotEntitySpawnType 34 | if entity.spawn_type == FuncGodotMapData.FuncGodotEntitySpawnType.ENTITY: 35 | entity.origin_type = origin_type as FuncGodotMapData.FuncGodotEntityOriginType 36 | else: 37 | entity.origin_type = FuncGodotMapData.FuncGodotEntityOriginType.AVERAGED 38 | 39 | func clear() -> void: 40 | entities.clear() 41 | entity_geo.clear() 42 | textures.clear() 43 | 44 | # -------------------------------------------------------------------------------------------------- 45 | # Nested Types 46 | # -------------------------------------------------------------------------------------------------- 47 | enum FuncGodotEntitySpawnType { 48 | WORLDSPAWN = 0, 49 | MERGE_WORLDSPAWN = 1, 50 | ENTITY = 2 51 | } 52 | 53 | enum FuncGodotEntityOriginType { 54 | AVERAGED = 0, 55 | ABSOLUTE = 1, 56 | RELATIVE = 2, 57 | BRUSH = 3, 58 | BOUNDS_CENTER = 4, 59 | BOUNDS_MINS = 5, 60 | BOUNDS_MAXS = 6, 61 | } 62 | 63 | enum FuncGodotEntityMetadataInclusionFlags { 64 | NONE = 0, 65 | ENTITY_INDEX_RANGES = 1, 66 | TEXTURES = 2, 67 | VERTEX = 4, 68 | FACE_POSITION = 8, 69 | FACE_NORMAL = 16, 70 | COLLISION_SHAPE_TO_FACE_RANGE_MAP = 32, 71 | } 72 | 73 | enum FuncGodotTextureType { 74 | NORMAL = 0, 75 | ORIGIN = 1 76 | } 77 | 78 | class FuncGodotFacePoints: 79 | var v0: Vector3 80 | var v1: Vector3 81 | var v2: Vector3 82 | 83 | class FuncGodotValveTextureAxis: 84 | var axis: Vector3 85 | var offset: float 86 | 87 | class FuncGodotValveUV: 88 | var u: FuncGodotValveTextureAxis 89 | var v: FuncGodotValveTextureAxis 90 | 91 | func _init() -> void: 92 | u = FuncGodotValveTextureAxis.new() 93 | v = FuncGodotValveTextureAxis.new() 94 | 95 | class FuncGodotFaceUVExtra: 96 | var rot: float 97 | var scale_x: float 98 | var scale_y: float 99 | 100 | class FuncGodotFace: 101 | var plane_points: FuncGodotFacePoints 102 | var plane_normal: Vector3 103 | var plane_dist: float 104 | var texture_idx: int 105 | var is_valve_uv: bool 106 | var uv_standard: Vector2 107 | var uv_valve: FuncGodotValveUV 108 | var uv_extra: FuncGodotFaceUVExtra 109 | 110 | func _init() -> void: 111 | plane_points = FuncGodotFacePoints.new() 112 | uv_valve = FuncGodotValveUV.new() 113 | uv_extra = FuncGodotFaceUVExtra.new() 114 | 115 | class FuncGodotBrush: 116 | var faces: Array[FuncGodotFace] 117 | var center: Vector3 118 | 119 | class FuncGodotEntity: 120 | var properties: Dictionary 121 | var brushes: Array[FuncGodotBrush] 122 | var center: Vector3 123 | var spawn_type: FuncGodotEntitySpawnType 124 | var origin_type: FuncGodotEntityOriginType 125 | var metadata_inclusion_flags: FuncGodotEntityMetadataInclusionFlags 126 | 127 | class FuncGodotFaceVertex: 128 | var vertex: Vector3 129 | var normal: Vector3 130 | var uv: Vector2 131 | var tangent: Vector4 132 | 133 | func duplicate() -> FuncGodotFaceVertex: 134 | var new_vert := FuncGodotFaceVertex.new() 135 | new_vert.vertex = vertex 136 | new_vert.normal = normal 137 | new_vert.uv = uv 138 | new_vert.tangent = tangent 139 | return new_vert 140 | 141 | class FuncGodotFaceGeometry: 142 | var vertices: Array[FuncGodotFaceVertex] 143 | var indicies: Array[int] 144 | 145 | class FuncGodotBrushGeometry: 146 | var faces: Array[FuncGodotFaceGeometry] 147 | 148 | class FuncGodotEntityGeometry: 149 | var brushes: Array[FuncGodotBrushGeometry] 150 | 151 | class FuncGodotTextureData: 152 | var name: String 153 | var width: int 154 | var height: int 155 | var type: FuncGodotTextureType 156 | 157 | func _init(in_name: String): 158 | name = in_name 159 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot_map_data.gd.uid: -------------------------------------------------------------------------------- 1 | uid://7jmcpm5hk347 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot_map_parser.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xqcxlfhbjctw 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/core/func_godot_surface_gatherer.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c6va86p3njyr3 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_base_class.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | ## Special inheritance class for [FuncGodotFGDSolidClass] and [FuncGodotFGDPointClass] entity definitions. Useful for adding shared or common properties and descriptions. 3 | class_name FuncGodotFGDBaseClass 4 | extends FuncGodotFGDEntityClass 5 | 6 | func _init() -> void: 7 | prefix = "@BaseClass" 8 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_base_class.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dqt3druyo5u14 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_entity_class.gd.uid: -------------------------------------------------------------------------------- 1 | uid://del0nuf3gyu4e 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_file.gd.uid: -------------------------------------------------------------------------------- 1 | uid://diq4m7217mwvb 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dkctilj4bdy5a 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_point_class.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | ## FGD PointClass entity definition, used to define point entities. 3 | ## PointClass entities can use either the `node_class` or the `scene_file` property to tell [FuncGodotMap] what to generate on map build. 4 | class_name FuncGodotFGDPointClass 5 | extends FuncGodotFGDEntityClass 6 | 7 | func _init() -> void: 8 | prefix = "@PointClass" 9 | 10 | @export_group ("Scene") 11 | ## An optional scene file to instantiate on map build. Overrides `node_class` and `script_class`. 12 | @export var scene_file: PackedScene 13 | 14 | ## An optional script file to attach to the node generated on map build. Ignored if `scene_file` is specified. 15 | @export_group ("Scripting") 16 | @export var script_class: Script 17 | 18 | @export_group("Build") 19 | ## Toggles whether entity will use `angles`, `mangle`, or `angle` to determine rotations on [FuncGodotMap] build, prioritizing the key value pairs in that order. Set to `false` if you would like to define how the generated node is rotated yourself. 20 | @export var apply_rotation_on_map_build : bool = true 21 | 22 | ## Toggles whether entity will use `scale` to determine the generated node or scene's scale. This is performed on the top level node. The property can be a [float], [Vector3], or [Vector2]. 23 | @export var apply_scale_on_map_build: bool = true 24 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_point_class.gd.uid: -------------------------------------------------------------------------------- 1 | uid://p1444w7erlxt 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b7luu4e7qy8m7 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/func_godot_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://7bv13jnoj2hm 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_map_file.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_quake_file.svg") 2 | class_name QuakeMapFile 3 | extends Resource 4 | 5 | @export var revision: int = 0 6 | @export_multiline var map_data: String = "" -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_map_file.gd.uid: -------------------------------------------------------------------------------- 1 | uid://des2yfmlwdjyv 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_map_import_plugin.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name QuakeMapImportPlugin 3 | extends EditorImportPlugin 4 | 5 | # Quake super.map import plugin 6 | 7 | func _get_importer_name() -> String: 8 | return 'func_godot.map' 9 | 10 | func _get_visible_name() -> String: 11 | return 'Quake Map' 12 | 13 | func _get_resource_type() -> String: 14 | return 'Resource' 15 | 16 | func _get_recognized_extensions() -> PackedStringArray: 17 | return PackedStringArray(['map']) 18 | 19 | func _get_priority(): 20 | return 1.0 21 | 22 | func _get_save_extension() -> String: 23 | return 'tres' 24 | 25 | func _get_import_options(path, preset): 26 | return [] 27 | 28 | func _get_preset_count() -> int: 29 | return 0 30 | 31 | func _get_import_order(): 32 | return 0 33 | 34 | func _import(source_file, save_path, options, r_platform_variants, r_gen_files) -> Error: 35 | var save_path_str = '%s.%s' % [save_path, _get_save_extension()] 36 | 37 | var map_resource : QuakeMapFile = null 38 | 39 | var existing_resource := load(save_path_str) as QuakeMapFile 40 | if(existing_resource != null): 41 | map_resource = existing_resource 42 | map_resource.revision += 1 43 | else: 44 | map_resource = QuakeMapFile.new() 45 | map_resource.map_data = FileAccess.open(source_file, FileAccess.READ).get_as_text(true) 46 | 47 | return ResourceSaver.save(map_resource, save_path_str) -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_map_import_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://budak68grac8s 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_palette_file.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_quake_file.svg") 2 | class_name QuakePaletteFile 3 | extends Resource 4 | 5 | @export var colors: PackedColorArray 6 | 7 | func _init(colors): 8 | self.colors = colors 9 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_palette_file.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c68wy8c6susnb 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_palette_import_plugin.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name QuakePaletteImportPlugin 3 | extends EditorImportPlugin 4 | 5 | # Quake super.map import plugin 6 | 7 | func _get_importer_name() -> String: 8 | return 'func_godot.palette' 9 | 10 | func _get_visible_name() -> String: 11 | return 'Quake Palette' 12 | 13 | func _get_resource_type() -> String: 14 | return 'Resource' 15 | 16 | func _get_recognized_extensions() -> PackedStringArray: 17 | return PackedStringArray(['lmp']) 18 | 19 | func _get_save_extension() -> String: 20 | return 'tres' 21 | 22 | func _get_import_options(path, preset): 23 | return [] 24 | 25 | func _get_preset_count() -> int: 26 | return 0 27 | 28 | func _get_priority(): 29 | return 1.0 30 | 31 | func _get_import_order(): 32 | return 0 33 | 34 | func _import(source_file, save_path, options, r_platform_variants, r_gen_files) -> Error: 35 | var save_path_str : String = '%s.%s' % [save_path, _get_save_extension()] 36 | 37 | var file = FileAccess.open(source_file, FileAccess.READ) 38 | if file == null: 39 | var err = FileAccess.get_open_error() 40 | print(['Error opening super.lmp file: ', err]) 41 | return err 42 | 43 | var colors := PackedColorArray() 44 | 45 | while true: 46 | var red : int = file.get_8() 47 | var green : int = file.get_8() 48 | var blue : int = file.get_8() 49 | var color := Color(red / 255.0, green / 255.0, blue / 255.0) 50 | 51 | colors.append(color) 52 | 53 | if file.eof_reached(): 54 | break 55 | 56 | if colors.size() == 256: 57 | break 58 | 59 | var palette_resource := QuakePaletteFile.new(colors) 60 | 61 | return ResourceSaver.save(palette_resource, save_path_str) -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_palette_import_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xsqb8b7l5y37 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_wad_file.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_quake_file.svg") 2 | class_name QuakeWadFile 3 | extends Resource 4 | 5 | @export var textures: Dictionary 6 | 7 | func _init(textures: Dictionary = Dictionary()): 8 | self.textures = textures 9 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_wad_file.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cjw0oq3g2gljs 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/import/quake_wad_import_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bpgwanpxjdghi 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/map/func_godot_map.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dw4q514346ccw 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/map/func_godot_map_settings.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_godot_ranger.svg") 2 | @tool 3 | ## Reusable map settings configuration for [FuncGodotMap] nodes. 4 | class_name FuncGodotMapSettings 5 | extends Resource 6 | 7 | ## Ratio between map editor units and Godot units. FuncGodot will divide brush coordinates by this number when building. This does not affect entity properties unless scripted to do so. 8 | var scale_factor: float = 0.03125 9 | @export var inverse_scale_factor: float = 32.0 : 10 | set(value): 11 | inverse_scale_factor = value 12 | scale_factor = 1.0 / value 13 | 14 | ## [FuncGodotFGDFile] that translates map file classnames into Godot nodes and packed scenes. 15 | @export var entity_fgd: FuncGodotFGDFile = preload("res://addons/func_godot/fgd/func_godot_fgd.tres") 16 | 17 | ## Default class property to use in naming generated nodes. This setting is overridden by `name_property` in [FuncGodotFGDEntityClass]. 18 | ## Naming occurs before adding to the [SceneTree] and applying properties. 19 | ## Nodes will be named `"entity_" + name_property`. An entity's name should be unique, otherwise you may run into unexpected behavior. 20 | @export var entity_name_property: String = "" 21 | 22 | @export_category("Textures") 23 | 24 | ## Base directory for textures. When building materials, FuncGodot will search this directory for texture files with matching names to the textures assigned to map brush faces. 25 | @export_dir var base_texture_dir: String = "res://textures" 26 | 27 | ## File extensions to search for texture data. 28 | @export var texture_file_extensions: Array[String] = ["png", "jpg", "jpeg", "bmp", "tga", "webp"] 29 | 30 | ## Optional path for the clip texture, relative to [member base_texture_dir]. Brush faces textured with the clip texture will have those faces removed from the generated [MeshInstance3D] but not the generated [CollisionShape3D]. 31 | @export var clip_texture: String = "special/clip" 32 | 33 | ## Optional path for the skip texture, relative to [member base_texture_dir]. Brush faces textured with the skip texture will have those faces removed from the generated [MeshInstance3D]. If the [FuncGodotFGDSolidClass] `collision_shape_type` is set to concave then it will also remove collision from those faces in the generated [CollisionShape3D]. 34 | @export var skip_texture: String = "special/skip" 35 | 36 | ## Optional path for the origin texture, relative to [member base_texture_dir]. Brush faces textured with the origin texture will have those faces removed from the generated [MeshInstance3D]. The bounds of these faces will be used to calculate the origin point of the entity. 37 | @export var origin_texture: String = "special/origin" 38 | 39 | ## Optional [QuakeWADFile] resources to apply textures from. See the [Quake Wiki](https://quakewiki.org/wiki/Texture_Wad) for more information on Quake Texture WADs. 40 | @export var texture_wads: Array[Resource] = [] 41 | 42 | @export_category("Materials") 43 | 44 | ## File extension to search for [Material] definitions 45 | @export var material_file_extension: String = "tres" 46 | 47 | ## [Material] used as template when generating missing materials. 48 | @export var default_material: Material = preload("res://addons/func_godot/textures/default_material.tres") 49 | 50 | ## Sampler2D uniform that supplies the Albedo in a custom shader when [member default_material] is a [ShaderMaterial]. 51 | @export var default_material_albedo_uniform: String = "" 52 | 53 | ## Automatic PBR material generation albedo map pattern. 54 | @export var albedo_map_pattern: String = "%s_albedo.%s" 55 | ## Automatic PBR material generation normal map pattern. 56 | @export var normal_map_pattern: String = "%s_normal.%s" 57 | ## Automatic PBR material generation metallic map pattern 58 | @export var metallic_map_pattern: String = "%s_metallic.%s" 59 | ## Automatic PBR material generation roughness map pattern 60 | @export var roughness_map_pattern: String = "%s_roughness.%s" 61 | ## Automatic PBR material generation emission map pattern 62 | @export var emission_map_pattern: String = "%s_emission.%s" 63 | ## Automatic PBR material generation ambient occlusion map pattern 64 | @export var ao_map_pattern: String = "%s_ao.%s" 65 | ## Automatic PBR material generation height map pattern 66 | @export var height_map_pattern: String = "%s_height.%s" 67 | ## Automatic PBR material generation ORM map pattern 68 | @export var orm_map_pattern: String = "%s_orm.%s" 69 | 70 | ## Save automatically generated materials to disk, allowing reuse across [FuncGodotMap] nodes. [i]NOTE: Materials do not use the Default Material settings after saving.[/i] 71 | @export var save_generated_materials: bool = true 72 | 73 | @export_category("UV Unwrap") 74 | 75 | ## Texel size for UV2 unwrapping. 76 | ## Actual texel size is uv_unwrap_texel_size / inverse_scale_factor. A ratio of 1/16 is usually a good place to start with (if inverse_scale_factor is 32, start with a uv_unwrap_texel_size of 2). 77 | ## Larger values will produce less detailed lightmaps. To conserve memory and filesize, use the largest value that still looks good. 78 | @export var uv_unwrap_texel_size: float = 2.0 79 | 80 | @export_category("TrenchBroom") 81 | 82 | ## If true, will organize Scene Tree using Trenchbroom Layers and Groups. Layers and Groups will be generated as [Node3D] nodes. 83 | ## All structural brushes will be moved out of the Layers and Groups and merged into the Worldspawn entity. 84 | ## Any Layers toggled to be omitted from export in TrenchBroom will not be built. 85 | @export var use_trenchbroom_groups_hierarchy: bool = false 86 | -------------------------------------------------------------------------------- /addons/func_godot/src/map/func_godot_map_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cy1ogcgn3ectt 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/netradiant_custom/netradiant_custom_gamepack_config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://4lqk2m5fg45c 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/netradiant_custom/netradiant_custom_shader.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_godot_ranger.svg") 2 | ## Resource that gets built into a shader file that applies a special effect to a specified texture in NetRadiant Custom. 3 | class_name NetRadiantCustomShader 4 | extends Resource 5 | 6 | ## Path to texture without extension, eg: `textures/special/clip`. 7 | @export var texture_path: String 8 | 9 | ## Array of shader properties to apply to faces using [member texture_path]. 10 | @export var shader_attributes : Array[String] = ["qer_trans 0.4"] 11 | -------------------------------------------------------------------------------- /addons/func_godot/src/netradiant_custom/netradiant_custom_shader.gd.uid: -------------------------------------------------------------------------------- 1 | uid://eieovtmpjiko 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/trenchbroom/trenchbroom_game_config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dwdyx686y0r1x 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/trenchbroom/trenchbroom_tag.gd: -------------------------------------------------------------------------------- 1 | @icon("res://addons/func_godot/icons/icon_godot_ranger.svg") 2 | ## Pattern matching tags to enable a number of features in TrenchBroom, including display appearance and menu filtering options. This resource gets added to the [TrenchBroomGameConfig] resource. Does not affect appearance or functionality in Godot. 3 | ## See the TrenchBroom Documentation on [**Tags under the Game Configuration section**](https://trenchbroom.github.io/manual/latest/#game_configuration_files) and [**Special Bruch FuncGodotFace Types**](https://trenchbroom.github.io/manual/latest/#special_brush_face_types) for more information. 4 | class_name TrenchBroomTag 5 | extends Resource 6 | 7 | enum TagMatchType { 8 | TEXTURE, ## Tag applies to any brush face with a texture matching the texture name. 9 | CLASSNAME ## Tag applies to any brush entity with a class name matching the tag pattern. 10 | } 11 | 12 | ## Name to define this tag. Not used as the matching pattern. 13 | @export var tag_name: String 14 | 15 | ## The attributes applied to matching faces or brush entities. Only "_transparent" is supported in TrenchBroom, which makes matching faces or brush entities transparent. 16 | @export var tag_attributes : Array[String] = ["transparent"] 17 | 18 | ## Determines how the tag is matched. See [constant TagMatchType]. 19 | @export var tag_match_type: TagMatchType 20 | 21 | ## A string that filters which flag, param, or classname to use. [code]*[/code] can be used as a wildcard to include multiple options. 22 | ## [b]Example:[/b] [code]trigger_*[/code] with [constant TagMatchType] [i]Classname[/i] will apply this tag to all brush entities with the [code]trigger_[/code] prefix. 23 | @export var tag_pattern: String 24 | 25 | ## A string that filters which textures recieve these attributes. Only used with a [constant TagMatchType] of [i]Texture[/i]. 26 | @export var texture_name: String 27 | -------------------------------------------------------------------------------- /addons/func_godot/src/trenchbroom/trenchbroom_tag.gd.uid: -------------------------------------------------------------------------------- 1 | uid://duejtvtyeq2am 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/util/func_godot_local_config.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | @icon("res://addons/func_godot/icons/icon_godot_ranger.svg") 3 | ## Local machine project wide settings. Can define global defaults for some FuncGodot properties. 4 | ## DO NOT CREATE A NEW RESOURCE! This resource works by saving a configuration file to your game's *user://* folder and pulling the properties from that config file rather than this resource. 5 | ## Use the premade `addons/func_godot/func_godot_local_config.tres` instead. 6 | class_name FuncGodotLocalConfig 7 | extends Resource 8 | 9 | enum PROPERTY { 10 | FGD_OUTPUT_FOLDER, 11 | TRENCHBROOM_GAME_CONFIG_FOLDER, 12 | NETRADIANT_CUSTOM_GAMEPACKS_FOLDER, 13 | MAP_EDITOR_GAME_PATH, 14 | GAME_PATH_MODELS_FOLDER, 15 | DEFAULT_INVERSE_SCALE 16 | } 17 | 18 | @export var export_func_godot_settings: bool: set = _save_settings 19 | @export var reload_func_godot_settings: bool = false : 20 | set(value): 21 | _load_settings() 22 | 23 | const CONFIG_PROPERTIES: Array[Dictionary] = [ 24 | { 25 | "name": "fgd_output_folder", 26 | "usage": PROPERTY_USAGE_EDITOR, 27 | "type": TYPE_STRING, 28 | "hint": PROPERTY_HINT_GLOBAL_DIR, 29 | "func_godot_type": PROPERTY.FGD_OUTPUT_FOLDER 30 | }, 31 | { 32 | "name": "trenchbroom_game_config_folder", 33 | "usage": PROPERTY_USAGE_EDITOR, 34 | "type": TYPE_STRING, 35 | "hint": PROPERTY_HINT_GLOBAL_DIR, 36 | "func_godot_type": PROPERTY.TRENCHBROOM_GAME_CONFIG_FOLDER 37 | }, 38 | { 39 | "name": "netradiant_custom_gamepacks_folder", 40 | "usage": PROPERTY_USAGE_EDITOR, 41 | "type": TYPE_STRING, 42 | "hint": PROPERTY_HINT_GLOBAL_DIR, 43 | "func_godot_type": PROPERTY.NETRADIANT_CUSTOM_GAMEPACKS_FOLDER 44 | }, 45 | { 46 | "name": "map_editor_game_path", 47 | "usage": PROPERTY_USAGE_EDITOR, 48 | "type": TYPE_STRING, 49 | "hint": PROPERTY_HINT_GLOBAL_DIR, 50 | "func_godot_type": PROPERTY.MAP_EDITOR_GAME_PATH 51 | }, 52 | { 53 | "name": "game_path_models_folder", 54 | "usage": PROPERTY_USAGE_EDITOR, 55 | "type": TYPE_STRING, 56 | "func_godot_type": PROPERTY.GAME_PATH_MODELS_FOLDER 57 | }, 58 | { 59 | "name": "default_inverse_scale_factor", 60 | "usage": PROPERTY_USAGE_EDITOR, 61 | "type": TYPE_FLOAT, 62 | "func_godot_type": PROPERTY.DEFAULT_INVERSE_SCALE 63 | } 64 | ] 65 | 66 | var settings_dict: Dictionary 67 | var loaded := false 68 | 69 | static func get_setting(name: PROPERTY) -> Variant: 70 | var settings = load("res://addons/func_godot/func_godot_local_config.tres") 71 | if not settings.loaded: 72 | settings._load_settings() 73 | return settings.settings_dict.get(PROPERTY.keys()[name], '') as Variant 74 | 75 | func _get_property_list() -> Array: 76 | return CONFIG_PROPERTIES.duplicate() 77 | 78 | func _get(property: StringName) -> Variant: 79 | var config = _get_config_property(property) 80 | if config == null and not config is Dictionary: 81 | return null 82 | _try_loading() 83 | return settings_dict.get(PROPERTY.keys()[config['func_godot_type']], _get_default_value(config['type'])) 84 | 85 | func _set(property: StringName, value: Variant) -> bool: 86 | var config = _get_config_property(property) 87 | if config == null and not config is Dictionary: 88 | return false 89 | settings_dict[PROPERTY.keys()[config['func_godot_type']]] = value 90 | return true 91 | 92 | func _get_default_value(type) -> Variant: 93 | match type: 94 | TYPE_STRING: return '' 95 | TYPE_INT: return 0 96 | TYPE_FLOAT: return 0.0 97 | TYPE_BOOL: return false 98 | TYPE_VECTOR2: return Vector2.ZERO 99 | TYPE_VECTOR3: return Vector3.ZERO 100 | TYPE_ARRAY: return [] 101 | TYPE_DICTIONARY: return {} 102 | push_error("Invalid setting type. Returning null") 103 | return null 104 | 105 | func _get_config_property(name: StringName) -> Variant: 106 | for config in CONFIG_PROPERTIES: 107 | if config['name'] == name: 108 | return config 109 | return null 110 | 111 | func _load_settings() -> void: 112 | loaded = true 113 | var path = _get_path() 114 | if not FileAccess.file_exists(path): 115 | return 116 | var settings = FileAccess.get_file_as_string(path) 117 | settings_dict = {} 118 | if not settings or settings.is_empty(): 119 | return 120 | settings = JSON.parse_string(settings) 121 | for key in settings.keys(): 122 | settings_dict[key] = settings[key] 123 | notify_property_list_changed() 124 | 125 | func _try_loading() -> void: 126 | if not loaded: 127 | _load_settings() 128 | 129 | func _save_settings(_s = null) -> void: 130 | if settings_dict.size() == 0: 131 | return 132 | var path = _get_path() 133 | var file = FileAccess.open(path, FileAccess.WRITE) 134 | var json = JSON.stringify(settings_dict) 135 | file.store_line(json) 136 | loaded = false 137 | print("Saved settings to ", path) 138 | 139 | func _get_path() -> String: 140 | var application_name: String = ProjectSettings.get('application/config/name') 141 | application_name = application_name.replace(" ", "_") 142 | return 'user://' + application_name + '_FuncGodotConfig.json' 143 | -------------------------------------------------------------------------------- /addons/func_godot/src/util/func_godot_local_config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://chm1vnm3ptk0s 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/util/func_godot_texture_loader.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cjib6v8s7fjd2 2 | -------------------------------------------------------------------------------- /addons/func_godot/src/util/func_godot_util.gd: -------------------------------------------------------------------------------- 1 | ## General-purpose utility functions namespaced to FuncGodot for compatibility 2 | class_name FuncGodotUtil 3 | 4 | ## Print debug messages. True to print, false to ignore 5 | const DEBUG : bool = true 6 | 7 | ## Const-predicated print function to avoid excess log spam. Print msg if [constant DEBUG] is `true`. 8 | static func debug_print(msg) -> void: 9 | if(DEBUG): 10 | print(msg) 11 | 12 | ## Return a string that corresponds to the current OS's newline control character(s) 13 | static func newline() -> String: 14 | if OS.get_name() == "Windows": 15 | return "\r\n" 16 | else: 17 | return "\n" 18 | 19 | ## Create a dictionary suitable for creating a category with name when overriding [method Object._get_property_list] 20 | static func category_dict(name: String) -> Dictionary: 21 | return property_dict(name, TYPE_STRING, -1, "", PROPERTY_USAGE_CATEGORY) 22 | 23 | ## Creates a property with name and type from [enum @GlobalScope.Variant.Type]. 24 | ## Optionally, provide hint from [enum @GlobalScope.PropertyHint] and corresponding hint_string, and usage from [enum @GlobalScope.PropertyUsageFlags]. 25 | static func property_dict(name: String, type: int, hint: int = -1, hint_string: String = "", usage: int = -1) -> Dictionary: 26 | var dict := { 27 | 'name': name, 28 | 'type': type 29 | } 30 | 31 | if hint != -1: 32 | dict['hint'] = hint 33 | 34 | if hint_string != "": 35 | dict['hint_string'] = hint_string 36 | 37 | if usage != -1: 38 | dict['usage'] = usage 39 | 40 | return dict 41 | -------------------------------------------------------------------------------- /addons/func_godot/src/util/func_godot_util.gd.uid: -------------------------------------------------------------------------------- 1 | uid://chxkcsx13rbml 2 | -------------------------------------------------------------------------------- /addons/func_godot/textures/default_material.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cvex6toty8yn7"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://cyg2snr1w5xw5" path="res://addons/func_godot/textures/default_texture.png" id="1_ncj77"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_ncj77") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /addons/func_godot/textures/default_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/textures/default_texture.png -------------------------------------------------------------------------------- /addons/func_godot/textures/default_texture.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cyg2snr1w5xw5" 6 | path="res://.godot/imported/default_texture.png-145fbd5fef7f63ace60797fecb133a19.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/textures/default_texture.png" 14 | dest_files=["res://.godot/imported/default_texture.png-145fbd5fef7f63ace60797fecb133a19.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=true 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=0 35 | -------------------------------------------------------------------------------- /addons/func_godot/textures/special/clip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/textures/special/clip.png -------------------------------------------------------------------------------- /addons/func_godot/textures/special/clip.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dhmu0toe1itnr" 6 | path="res://.godot/imported/clip.png-508a86fa3876d8467d5c9af6188a34df.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/textures/special/clip.png" 14 | dest_files=["res://.godot/imported/clip.png-508a86fa3876d8467d5c9af6188a34df.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/func_godot/textures/special/origin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/textures/special/origin.png -------------------------------------------------------------------------------- /addons/func_godot/textures/special/origin.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dutip72dl002r" 6 | path="res://.godot/imported/origin.png-85b62dd151467f05fa8f98ed6d2927d0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/textures/special/origin.png" 14 | dest_files=["res://.godot/imported/origin.png-85b62dd151467f05fa8f98ed6d2927d0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/func_godot/textures/special/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/addons/func_godot/textures/special/skip.png -------------------------------------------------------------------------------- /addons/func_godot/textures/special/skip.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bk5oo263y3u7w" 6 | path="res://.godot/imported/skip.png-d741e3eb75a5e289907774cb73d93931.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/func_godot/textures/special/skip.png" 14 | dest_files=["res://.godot/imported/skip.png-d741e3eb75a5e289907774cb73d93931.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /datas/base/angle_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://b4h1as6nkn1qp"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_5plri"] 4 | 5 | [resource] 6 | script = ExtResource("1_5plri") 7 | classname = "angles" 8 | description = "angle for rotation" 9 | func_godot_internal = false 10 | base_classes = Array[Resource]([]) 11 | class_properties = { 12 | "angles": 0.0 13 | } 14 | class_property_descriptions = { 15 | "angles": "fuck it" 16 | } 17 | meta_properties = { 18 | "color": Color(0.8, 0.8, 0.8, 1), 19 | "size": AABB(-8, -8, -8, 8, 8, 8) 20 | } 21 | node_class = "" 22 | name_property = "" 23 | -------------------------------------------------------------------------------- /datas/base/direction_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://cu4cq2edch2uo"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_yuhby"] 4 | 5 | [resource] 6 | script = ExtResource("1_yuhby") 7 | classname = "direction" 8 | description = "+x is North(forward) 9 | -x is South(back) 10 | +z is East(right) 11 | -z is West(left)" 12 | func_godot_internal = false 13 | base_classes = Array[Resource]([]) 14 | class_properties = { 15 | "direction": { 16 | "East": 2, 17 | "North": 0, 18 | "South": 1, 19 | "West": 3 20 | } 21 | } 22 | class_property_descriptions = { 23 | "direction": ["Entity's direction", 0] 24 | } 25 | meta_properties = { 26 | "color": Color(0.8, 0.8, 0.8, 1), 27 | "size": AABB(-8, -8, -8, 8, 8, 8) 28 | } 29 | node_class = "" 30 | name_property = "" 31 | -------------------------------------------------------------------------------- /datas/base/func_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=3 format=3 uid="uid://d4buv26pirxbl"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_grnar"] 4 | [ext_resource type="Resource" uid="uid://syvs5beg2j3q" path="res://datas/base/globalname_base.tres" id="1_se3wk"] 5 | 6 | [resource] 7 | script = ExtResource("1_grnar") 8 | classname = "Func" 9 | description = "" 10 | func_godot_internal = false 11 | base_classes = Array[Resource]([ExtResource("1_se3wk")]) 12 | class_properties = { 13 | "_phong": false 14 | } 15 | class_property_descriptions = { 16 | "_phong": "Set to 1 to give the brush entity smooth shading." 17 | } 18 | meta_properties = { 19 | "color": Color(0.8, 0.8, 0.8, 1), 20 | "size": AABB(-8, -8, -8, 8, 8, 8) 21 | } 22 | node_class = "" 23 | name_property = "" 24 | -------------------------------------------------------------------------------- /datas/base/globalname_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://syvs5beg2j3q"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_ybrkl"] 4 | 5 | [resource] 6 | script = ExtResource("1_ybrkl") 7 | classname = "Globalname" 8 | description = "" 9 | func_godot_internal = false 10 | base_classes = Array[Resource]([]) 11 | class_properties = { 12 | "globalname": "" 13 | } 14 | class_property_descriptions = { 15 | "globalname": "Unique name in the Map Scene. When FuncGodot builds the map, this entity will be renamed to entity_ + globalname. This can be a useful alternative to targetname, especially when trying to reparent generated nodes." 16 | } 17 | meta_properties = { 18 | "color": Color(0.8, 0.8, 0.8, 1), 19 | "size": AABB(-8, -8, -8, 8, 8, 8) 20 | } 21 | node_class = "" 22 | name_property = "" 23 | -------------------------------------------------------------------------------- /datas/base/light_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=3 format=3 uid="uid://dukx4b4xgo1o2"] 2 | 3 | [ext_resource type="Resource" uid="uid://syvs5beg2j3q" path="res://datas/base/globalname_base.tres" id="1_7kwyg"] 4 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_84s4e"] 5 | 6 | [resource] 7 | script = ExtResource("1_84s4e") 8 | classname = "Light" 9 | description = "" 10 | func_godot_internal = false 11 | base_classes = Array[Resource]([ExtResource("1_7kwyg")]) 12 | class_properties = { 13 | "color": Color(1, 1, 1, 1), 14 | "energy": 1.0, 15 | "indirect_energy": 1.0, 16 | "shadow_bias": 0.1, 17 | "shadows": false 18 | } 19 | class_property_descriptions = { 20 | "color": "The light's color.", 21 | "energy": "The light's strength multiplier. For OmniLight3D and SpotLight3D, changing this value will only change the light color's intensity, not the light's radius.", 22 | "indirect_energy": "The light's strength multiplier. For OmniLight3D and SpotLight3D, changing this value will only change the light color's intensity, not the light's radius.", 23 | "shadow_bias": "Used to adjust shadow appearance. Too small a value results in self-shadowing, while too large a value causes shadows to separate from casters. Adjust as needed.", 24 | "shadows": "If true, the light will cast real-time shadows. This has a significant performance cost. Only enable shadow rendering when it makes a noticeable difference in the scene's appearance" 25 | } 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0, 1), 28 | "size": AABB(-8, -8, -8, 8, 8, 8) 29 | } 30 | node_class = "" 31 | name_property = "" 32 | -------------------------------------------------------------------------------- /datas/base/target_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://kerywjgft7vh"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_uy4g8"] 4 | 5 | [resource] 6 | script = ExtResource("1_uy4g8") 7 | classname = "Target" 8 | description = "" 9 | func_godot_internal = false 10 | base_classes = Array[Resource]([]) 11 | class_properties = { 12 | "target": "", 13 | "targetfunc": "" 14 | } 15 | class_property_descriptions = { 16 | "target": "Entity group to call the use function on when this entity is triggered.", 17 | "targetfunc": "Function to call on target entities. As is, the target function cannot accept arguments, so make sure it doesn't require specifying arguments." 18 | } 19 | meta_properties = { 20 | "color": Color(0.8, 0.8, 0.8, 1), 21 | "size": AABB(-8, -8, -8, 8, 8, 8) 22 | } 23 | node_class = "" 24 | name_property = "" 25 | -------------------------------------------------------------------------------- /datas/base/targetname_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://cwbnifad3sdgw"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_7j8c1"] 4 | 5 | [resource] 6 | script = ExtResource("1_7j8c1") 7 | classname = "Targetname" 8 | description = "" 9 | func_godot_internal = false 10 | base_classes = Array[Resource]([]) 11 | class_properties = { 12 | "targetname": "" 13 | } 14 | class_property_descriptions = { 15 | "targetname": "Adds this entity to a group with this targetname." 16 | } 17 | meta_properties = { 18 | "color": Color(0.8, 0.8, 0.8, 1), 19 | "size": AABB(-8, -8, -8, 8, 8, 8) 20 | } 21 | node_class = "" 22 | name_property = "" 23 | -------------------------------------------------------------------------------- /datas/base/trigger_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=5 format=3 uid="uid://hnx0olvm0jt2"] 2 | 3 | [ext_resource type="Script" uid="uid://gpa2c0nd8mnq" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_0kba8"] 4 | [ext_resource type="Resource" uid="uid://kerywjgft7vh" path="res://datas/base/target_base.tres" id="1_73jh0"] 5 | [ext_resource type="Resource" uid="uid://cwbnifad3sdgw" path="res://datas/base/targetname_base.tres" id="2_7hbee"] 6 | [ext_resource type="Resource" uid="uid://syvs5beg2j3q" path="res://datas/base/globalname_base.tres" id="3_bi0tf"] 7 | 8 | [resource] 9 | script = ExtResource("1_0kba8") 10 | classname = "Trigger" 11 | description = "" 12 | func_godot_internal = false 13 | base_classes = Array[Resource]([ExtResource("1_73jh0"), ExtResource("2_7hbee"), ExtResource("3_bi0tf")]) 14 | class_properties = {} 15 | class_property_descriptions = {} 16 | meta_properties = { 17 | "color": Color(0.8, 0.8, 0.8, 1), 18 | "size": AABB(-8, -8, -8, 8, 8, 8) 19 | } 20 | node_class = "" 21 | name_property = "" 22 | -------------------------------------------------------------------------------- /datas/fgd_base.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=10 format=3 uid="uid://n5ccclg387jb"] 2 | 3 | [ext_resource type="Script" uid="uid://diq4m7217mwvb" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_0yjx6"] 4 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="2_xb421"] 5 | [ext_resource type="Resource" uid="uid://dukx4b4xgo1o2" path="res://datas/base/light_base.tres" id="3_82agt"] 6 | [ext_resource type="Resource" uid="uid://syvs5beg2j3q" path="res://datas/base/globalname_base.tres" id="3_tcmft"] 7 | [ext_resource type="Resource" uid="uid://cwbnifad3sdgw" path="res://datas/base/targetname_base.tres" id="4_nsv7d"] 8 | [ext_resource type="Resource" uid="uid://kerywjgft7vh" path="res://datas/base/target_base.tres" id="5_ftesr"] 9 | [ext_resource type="Resource" uid="uid://hnx0olvm0jt2" path="res://datas/base/trigger_base.tres" id="6_b0koy"] 10 | [ext_resource type="Resource" uid="uid://cu4cq2edch2uo" path="res://datas/base/direction_base.tres" id="7_jhsg5"] 11 | [ext_resource type="Resource" uid="uid://b4h1as6nkn1qp" path="res://datas/base/angle_base.tres" id="8_nb4hf"] 12 | 13 | [resource] 14 | script = ExtResource("1_0yjx6") 15 | export_file = false 16 | target_map_editor = 1 17 | fgd_name = "BaseFGD" 18 | base_fgd_files = Array[Resource]([]) 19 | entity_definitions = Array[Resource]([ExtResource("5_ftesr"), ExtResource("4_nsv7d"), ExtResource("3_tcmft"), ExtResource("2_xb421"), ExtResource("3_82agt"), ExtResource("6_b0koy"), ExtResource("7_jhsg5"), ExtResource("8_nb4hf")]) 20 | -------------------------------------------------------------------------------- /datas/fgd_main.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=6 format=3 uid="uid://tt4mj8flifi0"] 2 | 3 | [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_3x2ic"] 4 | [ext_resource type="Resource" uid="uid://n5ccclg387jb" path="res://datas/fgd_base.tres" id="1_s1atc"] 5 | [ext_resource type="Resource" uid="uid://cnrh5xw6qygo7" path="res://datas/fgd_solid.tres" id="2_p85ga"] 6 | [ext_resource type="Resource" uid="uid://dcahi87src2x1" path="res://datas/fgd_point.tres" id="3_2t8y0"] 7 | [ext_resource type="Script" uid="uid://df1l5axa2xp2h" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="4_u1crk"] 8 | 9 | [resource] 10 | script = ExtResource("4_u1crk") 11 | export_file = false 12 | target_map_editor = 1 13 | fgd_name = "GSMEX" 14 | base_fgd_files = Array[Resource]([ExtResource("1_3x2ic"), ExtResource("1_s1atc"), ExtResource("2_p85ga"), ExtResource("3_2t8y0")]) 15 | entity_definitions = Array[Resource]([]) 16 | -------------------------------------------------------------------------------- /datas/fgd_point.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=6 format=3 uid="uid://dcahi87src2x1"] 2 | 3 | [ext_resource type="Script" uid="uid://df1l5axa2xp2h" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_3atn5"] 4 | [ext_resource type="Resource" uid="uid://ia1t5p4mhom3" path="res://datas/point/lights/light_omni.tres" id="2_vstcb"] 5 | [ext_resource type="Resource" uid="uid://dbvwttrr1uq6e" path="res://datas/point/lights/light_spot.tres" id="3_nmgj0"] 6 | [ext_resource type="Resource" uid="uid://cex5fajrn3wdc" path="res://datas/point/prop_turtle.tres" id="4_44c7b"] 7 | [ext_resource type="Resource" uid="uid://drhgccbh1koh8" path="res://datas/point/info_camera.tres" id="4_wjef5"] 8 | 9 | [resource] 10 | script = ExtResource("1_3atn5") 11 | export_file = false 12 | target_map_editor = 1 13 | fgd_name = "PointFGD" 14 | base_fgd_files = Array[Resource]([]) 15 | entity_definitions = Array[Resource]([ExtResource("2_vstcb"), ExtResource("3_nmgj0"), ExtResource("4_wjef5"), ExtResource("4_44c7b")]) 16 | -------------------------------------------------------------------------------- /datas/fgd_solid.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=10 format=3 uid="uid://cnrh5xw6qygo7"] 2 | 3 | [ext_resource type="Resource" uid="uid://bv37jafqtfyuw" path="res://datas/solid/funcs/func_detail.tres" id="1_clqpq"] 4 | [ext_resource type="Script" uid="uid://df1l5axa2xp2h" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_n87v7"] 5 | [ext_resource type="Resource" uid="uid://4h23glniadlk" path="res://datas/solid/funcs/func_detail_illusionary.tres" id="2_g488m"] 6 | [ext_resource type="Resource" uid="uid://dbc8wa7c1nbgx" path="res://datas/solid/funcs/func_geo.tres" id="3_mqtmv"] 7 | [ext_resource type="Resource" uid="uid://ckh3askbgkynt" path="res://datas/solid/funcs/func_illusionary.tres" id="4_2y1us"] 8 | [ext_resource type="Resource" uid="uid://b3t000ocefkge" path="res://datas/solid/funcs/func_move.tres" id="5_tk340"] 9 | [ext_resource type="Resource" uid="uid://ptvum0fd8lvk" path="res://datas/solid/triggers/trigger_area.tres" id="6_2qosd"] 10 | [ext_resource type="Resource" uid="uid://bpa0vy8202cge" path="res://datas/solid/funcs/func_water.tres" id="7_7gu2a"] 11 | [ext_resource type="Resource" uid="uid://bwexdjar4f8vn" path="res://datas/solid/funcs/func_ladder.tres" id="8_d6niv"] 12 | 13 | [resource] 14 | script = ExtResource("1_n87v7") 15 | export_file = false 16 | target_map_editor = 1 17 | fgd_name = "SolidFGD" 18 | base_fgd_files = Array[Resource]([]) 19 | entity_definitions = Array[Resource]([ExtResource("1_clqpq"), ExtResource("2_g488m"), ExtResource("3_mqtmv"), ExtResource("4_2y1us"), ExtResource("5_tk340"), ExtResource("6_2qosd"), ExtResource("7_7gu2a"), ExtResource("8_d6niv")]) 20 | -------------------------------------------------------------------------------- /datas/func_godot_fdg.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=3 format=3 uid="uid://71xx0kf4po1l"] 2 | 3 | [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_kldby"] 4 | [ext_resource type="Script" uid="uid://df1l5axa2xp2h" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_pqdxk"] 5 | 6 | [resource] 7 | script = ExtResource("1_pqdxk") 8 | export_file = false 9 | target_map_editor = 1 10 | fgd_name = "godot_movement" 11 | base_fgd_files = Array[Resource]([ExtResource("1_kldby")]) 12 | entity_definitions = Array[Resource]([]) 13 | -------------------------------------------------------------------------------- /datas/map_settings.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotMapSettings" load_steps=4 format=3 uid="uid://ddcctd0mftjl0"] 2 | 3 | [ext_resource type="Material" uid="uid://cvex6toty8yn7" path="res://addons/func_godot/textures/default_material.tres" id="1_hjikt"] 4 | [ext_resource type="Resource" uid="uid://tt4mj8flifi0" path="res://datas/fgd_main.tres" id="2_q7muj"] 5 | [ext_resource type="Script" uid="uid://blerkhsiicphs" path="res://addons/func_godot/src/map/func_godot_map_settings.gd" id="3_4g3ky"] 6 | 7 | [resource] 8 | script = ExtResource("3_4g3ky") 9 | inverse_scale_factor = 32.0 10 | entity_fgd = ExtResource("2_q7muj") 11 | entity_name_property = "globalname" 12 | base_texture_dir = "res://textures" 13 | texture_file_extensions = Array[String](["png", "jpg", "jpeg", "bmp", "tga", "webp", "tres"]) 14 | clip_texture = "special/clip" 15 | skip_texture = "special/skip" 16 | origin_texture = "special/origin" 17 | texture_wads = Array[Resource]([]) 18 | material_file_extension = "tres" 19 | default_material = ExtResource("1_hjikt") 20 | default_material_albedo_uniform = "" 21 | albedo_map_pattern = "%s_albedo.%s" 22 | normal_map_pattern = "%s_normal.%s" 23 | metallic_map_pattern = "%s_metallic.%s" 24 | roughness_map_pattern = "%s_roughness.%s" 25 | emission_map_pattern = "%s_emission.%s" 26 | ao_map_pattern = "%s_ao.%s" 27 | height_map_pattern = "%s_height.%s" 28 | orm_map_pattern = "%s_orm.%s" 29 | save_generated_materials = true 30 | uv_unwrap_texel_size = 1.0 31 | use_trenchbroom_groups_hierarchy = true 32 | -------------------------------------------------------------------------------- /datas/models/prop_turtle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/datas/models/prop_turtle.glb -------------------------------------------------------------------------------- /datas/models/prop_turtle.glb.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | importer_version=1 5 | type="PackedScene" 6 | uid="uid://dcnuc0spadodx" 7 | path="res://.godot/imported/prop_turtle.glb-5e24afd951ecbe4a9602f6cb65f71b31.scn" 8 | 9 | [deps] 10 | 11 | source_file="res://datas/models/prop_turtle.glb" 12 | dest_files=["res://.godot/imported/prop_turtle.glb-5e24afd951ecbe4a9602f6cb65f71b31.scn"] 13 | 14 | [params] 15 | 16 | nodes/root_type="" 17 | nodes/root_name="" 18 | nodes/apply_root_scale=true 19 | nodes/root_scale=1.0 20 | nodes/import_as_skeleton_bones=false 21 | nodes/use_node_type_suffixes=true 22 | meshes/ensure_tangents=true 23 | meshes/generate_lods=true 24 | meshes/create_shadow_meshes=true 25 | meshes/light_baking=1 26 | meshes/lightmap_texel_size=0.2 27 | meshes/force_disable_compression=false 28 | skins/use_named_skins=true 29 | animation/import=true 30 | animation/fps=30 31 | animation/trimming=false 32 | animation/remove_immutable_tracks=true 33 | animation/import_rest_as_RESET=false 34 | import_script/path="" 35 | _subresources={} 36 | gltf/naming_version=1 37 | gltf/embedded_image_handling=1 38 | -------------------------------------------------------------------------------- /datas/models/prop_turtle_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/datas/models/prop_turtle_0.png -------------------------------------------------------------------------------- /datas/models/prop_turtle_0.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bt1wo2gm6gajp" 6 | path.s3tc="res://.godot/imported/prop_turtle_0.png-5676f315f16e296de5f2b4f50c1729c2.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | generator_parameters={ 12 | "md5": "56608c6d11a989b0c1f03aadc95801d7" 13 | } 14 | 15 | [deps] 16 | 17 | source_file="res://datas/models/prop_turtle_0.png" 18 | dest_files=["res://.godot/imported/prop_turtle_0.png-5676f315f16e296de5f2b4f50c1729c2.s3tc.ctex"] 19 | 20 | [params] 21 | 22 | compress/mode=2 23 | compress/high_quality=false 24 | compress/lossy_quality=0.7 25 | compress/hdr_compression=1 26 | compress/normal_map=0 27 | compress/channel_pack=0 28 | mipmaps/generate=true 29 | mipmaps/limit=-1 30 | roughness/mode=0 31 | roughness/src_normal="" 32 | process/fix_alpha_border=true 33 | process/premult_alpha=false 34 | process/normal_map_invert_y=false 35 | process/hdr_as_srgb=false 36 | process/hdr_clamp_exposure=false 37 | process/size_limit=0 38 | detect_3d/compress_to=0 39 | -------------------------------------------------------------------------------- /datas/models/prop_turtle_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/datas/models/prop_turtle_1.png -------------------------------------------------------------------------------- /datas/models/prop_turtle_1.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://2jtchi645o3c" 6 | path.s3tc="res://.godot/imported/prop_turtle_1.png-8bfb7187e711a503eca2a941e9934d30.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | generator_parameters={ 12 | "md5": "56608c6d11a989b0c1f03aadc95801d7" 13 | } 14 | 15 | [deps] 16 | 17 | source_file="res://datas/models/prop_turtle_1.png" 18 | dest_files=["res://.godot/imported/prop_turtle_1.png-8bfb7187e711a503eca2a941e9934d30.s3tc.ctex"] 19 | 20 | [params] 21 | 22 | compress/mode=2 23 | compress/high_quality=false 24 | compress/lossy_quality=0.7 25 | compress/hdr_compression=1 26 | compress/normal_map=0 27 | compress/channel_pack=0 28 | mipmaps/generate=true 29 | mipmaps/limit=-1 30 | roughness/mode=0 31 | roughness/src_normal="" 32 | process/fix_alpha_border=true 33 | process/premult_alpha=false 34 | process/normal_map_invert_y=false 35 | process/hdr_as_srgb=false 36 | process/hdr_clamp_exposure=false 37 | process/size_limit=0 38 | detect_3d/compress_to=0 39 | -------------------------------------------------------------------------------- /datas/models/prop_turtle_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/datas/models/prop_turtle_2.png -------------------------------------------------------------------------------- /datas/models/prop_turtle_2.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://482qk8oob3hp" 6 | path.s3tc="res://.godot/imported/prop_turtle_2.png-f9a2639ac0dae5673109dc755fea4285.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | generator_parameters={ 12 | "md5": "56608c6d11a989b0c1f03aadc95801d7" 13 | } 14 | 15 | [deps] 16 | 17 | source_file="res://datas/models/prop_turtle_2.png" 18 | dest_files=["res://.godot/imported/prop_turtle_2.png-f9a2639ac0dae5673109dc755fea4285.s3tc.ctex"] 19 | 20 | [params] 21 | 22 | compress/mode=2 23 | compress/high_quality=false 24 | compress/lossy_quality=0.7 25 | compress/hdr_compression=1 26 | compress/normal_map=0 27 | compress/channel_pack=0 28 | mipmaps/generate=true 29 | mipmaps/limit=-1 30 | roughness/mode=0 31 | roughness/src_normal="" 32 | process/fix_alpha_border=true 33 | process/premult_alpha=false 34 | process/normal_map_invert_y=false 35 | process/hdr_as_srgb=false 36 | process/hdr_clamp_exposure=false 37 | process/size_limit=0 38 | detect_3d/compress_to=0 39 | -------------------------------------------------------------------------------- /datas/point/info_camera.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDPointClass" load_steps=5 format=3 uid="uid://drhgccbh1koh8"] 2 | 3 | [ext_resource type="Script" uid="uid://p1444w7erlxt" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class.gd" id="1_estyx"] 4 | [ext_resource type="Resource" uid="uid://cwbnifad3sdgw" path="res://datas/base/targetname_base.tres" id="1_y4ai7"] 5 | [ext_resource type="Resource" uid="uid://syvs5beg2j3q" path="res://datas/base/globalname_base.tres" id="2_bc4l2"] 6 | [ext_resource type="Script" uid="uid://bximhcmgdh042" path="res://scripts/entities/info_camera.gd" id="4_y3hfq"] 7 | 8 | [resource] 9 | script = ExtResource("1_estyx") 10 | script_class = ExtResource("4_y3hfq") 11 | apply_rotation_on_map_build = true 12 | apply_scale_on_map_build = true 13 | classname = "info_camera" 14 | description = "Info Camera" 15 | func_godot_internal = false 16 | base_classes = Array[Resource]([ExtResource("1_y4ai7"), ExtResource("2_bc4l2")]) 17 | class_properties = { 18 | "active": false, 19 | "angles": Vector3(0, 0, 0), 20 | "camera_target": "" 21 | } 22 | class_property_descriptions = { 23 | "active": "If activeSets camera's current property. If multiple cameras have active set to true, the viewport will pick the most recent one.", 24 | "angles": "Camera orientation.", 25 | "camera_target": "This camera will actively follow the node with this globalname." 26 | } 27 | auto_apply_to_matching_node_properties = false 28 | meta_properties = { 29 | "color": Color(0, 0.8, 0.8, 1), 30 | "size": AABB(-8, -8, -8, 8, 8, 8) 31 | } 32 | node_class = "Camera3D" 33 | name_property = "" 34 | -------------------------------------------------------------------------------- /datas/point/lights/light_omni.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDPointClass" load_steps=4 format=3 uid="uid://ia1t5p4mhom3"] 2 | 3 | [ext_resource type="Script" uid="uid://bkfn4cp5l4wp4" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class.gd" id="1_28dln"] 4 | [ext_resource type="Resource" uid="uid://dukx4b4xgo1o2" path="res://datas/base/light_base.tres" id="1_yp8dp"] 5 | [ext_resource type="Script" uid="uid://d2chdnkpmh2k1" path="res://scripts/entities/lights/light_omni.gd" id="2_1t2d5"] 6 | 7 | [resource] 8 | script = ExtResource("1_28dln") 9 | script_class = ExtResource("2_1t2d5") 10 | apply_rotation_on_map_build = false 11 | classname = "light_omni" 12 | description = "OmniLight3D entity." 13 | func_godot_internal = false 14 | base_classes = Array[Resource]([ExtResource("1_yp8dp")]) 15 | class_properties = { 16 | "range": 320.0 17 | } 18 | class_property_descriptions = { 19 | "range": "The light's radius in Quake Units. The entity script converts this to Godot Units in the LightOmni script." 20 | } 21 | meta_properties = {} 22 | node_class = "OmniLight3D" 23 | name_property = "" 24 | -------------------------------------------------------------------------------- /datas/point/lights/light_spot.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDPointClass" load_steps=4 format=3 uid="uid://dbvwttrr1uq6e"] 2 | 3 | [ext_resource type="Script" uid="uid://bkfn4cp5l4wp4" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class.gd" id="1_2vopw"] 4 | [ext_resource type="Resource" uid="uid://dukx4b4xgo1o2" path="res://datas/base/light_base.tres" id="1_82qyt"] 5 | [ext_resource type="Script" uid="uid://by0gxhtk1nhyk" path="res://scripts/entities/lights/light_spot.gd" id="2_wutok"] 6 | 7 | [resource] 8 | script = ExtResource("1_2vopw") 9 | script_class = ExtResource("2_wutok") 10 | apply_rotation_on_map_build = true 11 | classname = "light_spot" 12 | description = "SpotLight3D entity." 13 | func_godot_internal = false 14 | base_classes = Array[Resource]([ExtResource("1_82qyt")]) 15 | class_properties = { 16 | "angle": 45.0, 17 | "mangle": Vector3(0, 0, 0), 18 | "range": 320.0 19 | } 20 | class_property_descriptions = { 21 | "angle": "The spotlight's angle in degrees.", 22 | "mangle": "Orientation in degrees.", 23 | "range": "The maximal range that can be reached by the spotlight in Quake Units. The entity script converts this to Godot Units in the LightOmni script." 24 | } 25 | meta_properties = {} 26 | node_class = "SpotLight3D" 27 | name_property = "" 28 | -------------------------------------------------------------------------------- /datas/point/prop_turtle.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=3 format=3 uid="uid://cex5fajrn3wdc"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://d4m5i3yk2ecju" path="res://meshs/turtle.tscn" id="1_0gtpy"] 4 | [ext_resource type="Script" uid="uid://dkctilj4bdy5a" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="2_mxdia"] 5 | 6 | [resource] 7 | script = ExtResource("2_mxdia") 8 | target_map_editor = 1 9 | models_sub_folder = "" 10 | scale_expression = "" 11 | generate_size_property = false 12 | generate_gd_ignore_file = false 13 | scene_file = ExtResource("1_0gtpy") 14 | apply_rotation_on_map_build = true 15 | apply_scale_on_map_build = true 16 | classname = "prop_turtle" 17 | description = "little cute turtle ovo" 18 | func_godot_internal = false 19 | base_classes = Array[Resource]([]) 20 | class_properties = {} 21 | class_property_descriptions = {} 22 | auto_apply_to_matching_node_properties = false 23 | meta_properties = { 24 | "color": Color(0.8, 0.8, 0, 1), 25 | "model": "\"datas/models/prop_turtle.glb\"", 26 | "size": AABB(-16, -16, 0, 16, 16, 32) 27 | } 28 | node_class = "" 29 | name_property = "" 30 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_detail.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://bv37jafqtfyuw"] 2 | 3 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_iqwic"] 4 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="1_jrb30"] 5 | 6 | [resource] 7 | script = ExtResource("1_iqwic") 8 | spawn_type = 2 9 | origin_type = 0 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = false 14 | render_layers = 1 15 | collision_shape_type = 2 16 | collision_layer = 1 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_detail" 21 | description = "Static map geometry. Does not generate occluder instances." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_jrb30")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1), 28 | "size": AABB(-8, -8, -8, 8, 8, 8) 29 | } 30 | node_class = "StaticBody3D" 31 | name_property = "" 32 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_detail_illusionary.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://4h23glniadlk"] 2 | 3 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="1_qmref"] 4 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_art73"] 5 | 6 | [resource] 7 | script = ExtResource("2_art73") 8 | spawn_type = 2 9 | origin_type = 0 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = false 14 | render_layers = 1 15 | collision_shape_type = 0 16 | collision_layer = 0 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_detail_illusionary" 21 | description = "Decorative map geometry with no collision. Does not generate occluder instances." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_qmref")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1), 28 | "size": AABB(-8, -8, -8, 8, 8, 8) 29 | } 30 | node_class = "Node3D" 31 | name_property = "" 32 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_geo.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://dbc8wa7c1nbgx"] 2 | 3 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_buphq"] 4 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="1_uaupt"] 5 | 6 | [resource] 7 | script = ExtResource("1_buphq") 8 | spawn_type = 2 9 | origin_type = 0 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = true 14 | render_layers = 1 15 | collision_shape_type = 2 16 | collision_layer = 1 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_geo" 21 | description = "Static map geometry. Generates occluder instances." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_uaupt")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1), 28 | "size": AABB(-8, -8, -8, 8, 8, 8) 29 | } 30 | node_class = "StaticBody3D" 31 | name_property = "" 32 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_illusionary.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=3 format=3 uid="uid://ckh3askbgkynt"] 2 | 3 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="1_lgdlb"] 4 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_ubp24"] 5 | 6 | [resource] 7 | script = ExtResource("1_ubp24") 8 | spawn_type = 2 9 | origin_type = 0 10 | build_visuals = true 11 | use_in_baked_light = true 12 | shadow_casting_setting = 1 13 | build_occlusion = true 14 | render_layers = 1 15 | collision_shape_type = 0 16 | collision_layer = 0 17 | collision_mask = 0 18 | collision_priority = 1.0 19 | collision_shape_margin = 0.04 20 | classname = "func_illusionary" 21 | description = "Decorative map geometry with no collision. Generates occluder instances." 22 | func_godot_internal = false 23 | base_classes = Array[Resource]([ExtResource("1_lgdlb")]) 24 | class_properties = {} 25 | class_property_descriptions = {} 26 | meta_properties = { 27 | "color": Color(0.8, 0.8, 0.8, 1), 28 | "size": AABB(-8, -8, -8, 8, 8, 8) 29 | } 30 | node_class = "Node3D" 31 | name_property = "" 32 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_ladder.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=4 format=3 uid="uid://bwexdjar4f8vn"] 2 | 3 | [ext_resource type="Resource" uid="uid://cu4cq2edch2uo" path="res://datas/base/direction_base.tres" id="1_53yrg"] 4 | [ext_resource type="Script" uid="uid://bly58jrph8fkf" path="res://scripts/entities/funcs/func_ladder.gd" id="2_1i0m4"] 5 | [ext_resource type="Script" uid="uid://b7luu4e7qy8m7" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_l48o2"] 6 | 7 | [resource] 8 | script = ExtResource("2_l48o2") 9 | spawn_type = 2 10 | origin_type = 0 11 | build_visuals = false 12 | use_in_baked_light = false 13 | shadow_casting_setting = 0 14 | build_occlusion = false 15 | render_layers = 0 16 | collision_shape_type = 1 17 | collision_layer = 16 18 | collision_mask = 2 19 | collision_priority = 999.0 20 | collision_shape_margin = 0.04 21 | add_textures_metadata = false 22 | add_vertex_metadata = false 23 | add_face_position_metadata = false 24 | add_face_normal_metadata = false 25 | add_collision_shape_face_range_metadata = false 26 | script_class = ExtResource("2_1i0m4") 27 | classname = "func_ladder" 28 | description = "ladder area for climb" 29 | func_godot_internal = false 30 | base_classes = Array[Resource]([ExtResource("1_53yrg")]) 31 | class_properties = { 32 | "angle": 0.0 33 | } 34 | class_property_descriptions = {} 35 | auto_apply_to_matching_node_properties = false 36 | meta_properties = { 37 | "color": Color(0.974734, 0, 0.387382, 1) 38 | } 39 | node_class = "Area3D" 40 | name_property = "" 41 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_move.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=5 format=3 uid="uid://b3t000ocefkge"] 2 | 3 | [ext_resource type="Resource" uid="uid://d4buv26pirxbl" path="res://datas/base/func_base.tres" id="1_0171l"] 4 | [ext_resource type="Resource" uid="uid://cwbnifad3sdgw" path="res://datas/base/targetname_base.tres" id="2_obvel"] 5 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="2_td02h"] 6 | [ext_resource type="Script" uid="uid://rs38mp258cci" path="res://scripts/entities/funcs/func_move.gd" id="4_2ymj1"] 7 | 8 | [resource] 9 | script = ExtResource("2_td02h") 10 | spawn_type = 2 11 | origin_type = 0 12 | build_visuals = true 13 | use_in_baked_light = true 14 | shadow_casting_setting = 1 15 | build_occlusion = false 16 | render_layers = 1 17 | collision_shape_type = 2 18 | collision_layer = 1 19 | collision_mask = 0 20 | collision_priority = 1.0 21 | collision_shape_margin = 0.04 22 | script_class = ExtResource("4_2ymj1") 23 | classname = "func_move" 24 | description = "Movable and rotatable geometry. Valid move functions are use, toggle, mv_forward, and mv_reverse." 25 | func_godot_internal = false 26 | base_classes = Array[Resource]([ExtResource("1_0171l"), ExtResource("2_obvel")]) 27 | class_properties = { 28 | "move_pos": Vector3(0, 0, 0), 29 | "move_rot": Vector3(0, 0, 0), 30 | "speed": 3.0 31 | } 32 | class_property_descriptions = { 33 | "move_pos": "Relative destination position in Quake Units. This will be converted into Godot Units in the FuncMove script.", 34 | "move_rot": "Rotation destination in degrees." 35 | } 36 | meta_properties = { 37 | "color": Color(0, 0.8, 0, 1) 38 | } 39 | node_class = "AnimatableBody3D" 40 | name_property = "" 41 | -------------------------------------------------------------------------------- /datas/solid/funcs/func_water.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=4 format=3 uid="uid://bpa0vy8202cge"] 2 | 3 | [ext_resource type="Resource" uid="uid://hnx0olvm0jt2" path="res://datas/base/trigger_base.tres" id="1_p7pjo"] 4 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_rv5u7"] 5 | [ext_resource type="Script" uid="uid://cdaqs8avr3mf0" path="res://scripts/entities/funcs/func_water.gd" id="2_nnmgd"] 6 | 7 | [resource] 8 | script = ExtResource("1_rv5u7") 9 | spawn_type = 2 10 | origin_type = 0 11 | build_visuals = true 12 | use_in_baked_light = false 13 | shadow_casting_setting = 0 14 | build_occlusion = false 15 | render_layers = 1 16 | collision_shape_type = 1 17 | collision_layer = 8 18 | collision_mask = 14 19 | collision_priority = 999.0 20 | collision_shape_margin = 0.04 21 | script_class = ExtResource("2_nnmgd") 22 | classname = "func_water" 23 | description = "water area that can swim" 24 | func_godot_internal = false 25 | base_classes = Array[Resource]([ExtResource("1_p7pjo")]) 26 | class_properties = {} 27 | class_property_descriptions = {} 28 | meta_properties = { 29 | "color": Color(0.1428, 0.56112, 0.84, 1) 30 | } 31 | node_class = "Area3D" 32 | name_property = "" 33 | -------------------------------------------------------------------------------- /datas/solid/triggers/trigger_area.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="FuncGodotFGDSolidClass" load_steps=4 format=3 uid="uid://ptvum0fd8lvk"] 2 | 3 | [ext_resource type="Script" uid="uid://cxpqurk25owc8" path="res://addons/func_godot/src/fgd/func_godot_fgd_solid_class.gd" id="1_fxf43"] 4 | [ext_resource type="Resource" uid="uid://hnx0olvm0jt2" path="res://datas/base/trigger_base.tres" id="1_l46wr"] 5 | [ext_resource type="Script" uid="uid://cfrfr38x0vl3w" path="res://scripts/entities/triggers/trigger_area.gd" id="3_aq6gq"] 6 | 7 | [resource] 8 | script = ExtResource("1_fxf43") 9 | spawn_type = 2 10 | origin_type = 0 11 | build_visuals = false 12 | use_in_baked_light = false 13 | shadow_casting_setting = 0 14 | build_occlusion = false 15 | render_layers = 0 16 | collision_shape_type = 1 17 | collision_layer = 16 18 | collision_mask = 6 19 | collision_priority = 1.0 20 | collision_shape_margin = 0.04 21 | script_class = ExtResource("3_aq6gq") 22 | classname = "trigger_area" 23 | description = "Area node that activates its target group when entered." 24 | func_godot_internal = false 25 | base_classes = Array[Resource]([ExtResource("1_l46wr")]) 26 | class_properties = {} 27 | class_property_descriptions = {} 28 | meta_properties = { 29 | "color": Color(0.8, 0, 0.8, 1) 30 | } 31 | node_class = "Area3D" 32 | name_property = "" 33 | -------------------------------------------------------------------------------- /datas/tb_configs.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Resource" script_class="TrenchBroomGameConfig" load_steps=8 format=3 uid="uid://dkir0skupkbk7"] 2 | 3 | [ext_resource type="Resource" uid="uid://37iduqf7tpxq" path="res://addons/func_godot/game_config/trenchbroom/tb_brush_tag_func.tres" id="1_1imof"] 4 | [ext_resource type="Resource" uid="uid://b4xhdj0e16lop" path="res://addons/func_godot/game_config/trenchbroom/tb_face_tag_clip.tres" id="1_cm8ks"] 5 | [ext_resource type="Resource" uid="uid://ca7377sfgj074" path="res://addons/func_godot/game_config/trenchbroom/tb_face_tag_skip.tres" id="2_aovb6"] 6 | [ext_resource type="Resource" uid="uid://co2sb1ng7cw4i" path="res://addons/func_godot/game_config/trenchbroom/tb_brush_tag_trigger.tres" id="2_vmjge"] 7 | [ext_resource type="Resource" uid="uid://tt4mj8flifi0" path="res://datas/fgd_main.tres" id="3_i72n2"] 8 | [ext_resource type="Script" uid="uid://cconqcaixc822" path="res://addons/func_godot/src/trenchbroom/trenchbroom_game_config.gd" id="5_hb15e"] 9 | [ext_resource type="Texture2D" uid="uid://bwsnfgw7poicl" path="res://icon.png" id="6_roie4"] 10 | 11 | [resource] 12 | script = ExtResource("5_hb15e") 13 | export_file = false 14 | game_name = "GSM" 15 | icon = ExtResource("6_roie4") 16 | map_formats = Array[Dictionary]([{ 17 | "format": "Valve", 18 | "initialmap": "initial_valve.map" 19 | }, { 20 | "format": "Standard", 21 | "initialmap": "initial_standard.map" 22 | }, { 23 | "format": "Quake2", 24 | "initialmap": "initial_quake2.map" 25 | }, { 26 | "format": "Quake3" 27 | }]) 28 | textures_root_folder = "textures" 29 | texture_exclusion_patterns = Array[String](["*_albedo", "*_ao", "*_emission", "*_height", "*_metallic", "*_normal", "*_orm", "*_roughness", "*_sss"]) 30 | palette_path = "textures/palette.lmp" 31 | fgd_file = ExtResource("3_i72n2") 32 | entity_scale = "32" 33 | brush_tags = Array[Resource]([ExtResource("1_1imof"), ExtResource("2_vmjge")]) 34 | brushface_tags = Array[Resource]([ExtResource("1_cm8ks"), ExtResource("2_aovb6")]) 35 | default_uv_scale = Vector2(1, 1) 36 | game_config_version = 0 37 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bwsnfgw7poicl" 6 | path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://icon.png" 14 | dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /map.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=8 format=3 uid="uid://coxfhoysaumpo"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://rn24b4x6mmga" path="res://player.tscn" id="1_6ckch"] 4 | [ext_resource type="PackedScene" uid="uid://olnhtseloali" path="res://maps/test_lab_map.tscn" id="2_46ycu"] 5 | [ext_resource type="PackedScene" uid="uid://qg1ttebv16qf" path="res://maps/test_intreaction.tscn" id="3_wy6x1"] 6 | [ext_resource type="PackedScene" uid="uid://cpofycvn67fgn" path="res://pause_menu.tscn" id="4_23uaj"] 7 | [ext_resource type="PackedScene" uid="uid://qh0gfehkdctm" path="res://maps/test_stairs.tscn" id="4_cu6ar"] 8 | 9 | [sub_resource type="Environment" id="Environment_xea04"] 10 | background_mode = 1 11 | background_color = Color(0.956863, 0.94902, 0.960784, 1) 12 | ambient_light_color = Color(0.372549, 0.372549, 0.372549, 1) 13 | ssao_enabled = true 14 | 15 | [sub_resource type="BoxShape3D" id="BoxShape3D_r2jyx"] 16 | size = Vector3(397.922, 19.1265, 259.838) 17 | 18 | [node name="test_lab" type="Node3D"] 19 | 20 | [node name="WorldEnvironment" type="WorldEnvironment" parent="."] 21 | environment = SubResource("Environment_xea04") 22 | 23 | [node name="Player" parent="." instance=ExtResource("1_6ckch")] 24 | unique_name_in_owner = true 25 | transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 4.62719, 1.0369, 41.4887) 26 | 27 | [node name="Level" type="Node" parent="."] 28 | 29 | [node name="main" parent="Level" instance=ExtResource("2_46ycu")] 30 | 31 | [node name="intreaction" parent="Level" instance=ExtResource("3_wy6x1")] 32 | transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 18, 0, 15) 33 | 34 | [node name="Stairs" parent="Level" instance=ExtResource("4_cu6ar")] 35 | transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3, 0, 35.5) 36 | 37 | [node name="Drop" type="Area3D" parent="Level"] 38 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -67.0604, -45.6647, -25.1389) 39 | collision_mask = 7 40 | 41 | [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Drop"] 42 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -52.9868, -13.3714, -23.7643) 43 | shape = SubResource("BoxShape3D_r2jyx") 44 | 45 | [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] 46 | transform = Transform3D(0.782304, -0.46834, 0.41068, -0.00250053, 0.65694, 0.753939, -0.622892, -0.590836, 0.512756, -12.4591, 6.52153, 0) 47 | shadow_enabled = true 48 | 49 | [node name="PauseMenu" parent="." instance=ExtResource("4_23uaj")] 50 | 51 | [connection signal="body_entered" from="Level/Drop" to="Player" method="_on_area_3d_body_entered"] 52 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.1.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://buapgn75mv8ag" 6 | path="res://.godot/imported/staris.1.map-f07b4898426289c9d98c778269ace1d3.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.1.map" 11 | dest_files=["res://.godot/imported/staris.1.map-f07b4898426289c9d98c778269ace1d3.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.2.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://yw447thrkf7c" 6 | path="res://.godot/imported/staris.2.map-c8dd88cb04e18168a631ee9c381ecb97.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.2.map" 11 | dest_files=["res://.godot/imported/staris.2.map-c8dd88cb04e18168a631ee9c381ecb97.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.3.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://bv2ip70qmb7em" 6 | path="res://.godot/imported/staris.3.map-b7660730b71392e0d3a1d08e0bb54d9d.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.3.map" 11 | dest_files=["res://.godot/imported/staris.3.map-b7660730b71392e0d3a1d08e0bb54d9d.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.4.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://cml2f2j65shc8" 6 | path="res://.godot/imported/staris.4.map-95c2be7d544ca88f0da59e8ca77e56bb.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.4.map" 11 | dest_files=["res://.godot/imported/staris.4.map-95c2be7d544ca88f0da59e8ca77e56bb.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.5.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://b8eh1gaibey2s" 6 | path="res://.godot/imported/staris.5.map-6b24db07c0fce989ebd1b5b68da03e82.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.5.map" 11 | dest_files=["res://.godot/imported/staris.5.map-6b24db07c0fce989ebd1b5b68da03e82.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosave/staris.6.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://cn6icvd3vp6so" 6 | path="res://.godot/imported/staris.6.map-273075011e04dd5086b040603bcd7d1f.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/autosave/staris.6.map" 11 | dest_files=["res://.godot/imported/staris.6.map-273075011e04dd5086b040603bcd7d1f.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/autosaves/.gdignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/maps/func_godot_maps/autosaves/.gdignore -------------------------------------------------------------------------------- /maps/func_godot_maps/staris-crash-1.log: -------------------------------------------------------------------------------- 1 | Renderer info: NVIDIA GeForce RTX 3060/PCIe/SSE2 version 4.6.0 NVIDIA 560.81 from NVIDIA Corporation 2 | Depth buffer bits: 24 3 | Multisampling enabled 4 | Adding file system path "F:/program/TrenchBroom\\defaults\\assets" 5 | Adding file system path "F:/github/GodotSourceMovement\\." 6 | Loading document from F:\github\GodotSourceMovement\maps\func_godot_maps\staris.map 7 | Adding file system path "F:/program/TrenchBroom\\defaults\\assets" 8 | Adding file system path "F:/github/GodotSourceMovement\\." 9 | Adding file system path "F:/github/GodotSourceMovement\\meshs" 10 | Adding file system path "F:/github/GodotSourceMovement\\textures" 11 | Duplicate class info 'func_detail' (line 75, column 13) 12 | Duplicate class info 'func_detail_illusionary' (line 77, column 13) 13 | Duplicate class info 'func_geo' (line 79, column 13) 14 | Duplicate class info 'func_illusionary' (line 81, column 13) 15 | Loaded entity definition file GSMEX.fgd 16 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 17 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 18 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 19 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 20 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 21 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 22 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 23 | No diffuse textures found for material 1 of model 'datas\models/prop_turtle.glb', loading fallback texture 24 | Loaded texture collection '"textures"' 25 | Loaded texture collection '"textures\\dev_textures"' 26 | Loaded texture collection '"textures\\input-prompts"' 27 | Loaded texture collection '"textures\\special"' 28 | Loaded "F:\\github\\GodotSourceMovement\\maps\\func_godot_maps\\staris.map" in 75ms 29 | Saved "F:\\github\\GodotSourceMovement\\maps\\func_godot_maps\\staris.map" in 9ms 30 | Saved "F:\\github\\GodotSourceMovement\\maps\\func_godot_maps\\staris.map" in 9ms 31 | Saved "F:\\github\\GodotSourceMovement\\maps\\func_godot_maps\\staris.map" in 9ms 32 | Reloading entity definitions 33 | -------------------------------------------------------------------------------- /maps/func_godot_maps/staris-crash-1.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://dbe36gsy28ptw" 6 | path="res://.godot/imported/staris-crash-1.map-84083e045f5e467064677113b5c43519.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/staris-crash-1.map" 11 | dest_files=["res://.godot/imported/staris-crash-1.map-84083e045f5e467064677113b5c43519.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/staris-crash.log: -------------------------------------------------------------------------------- 1 | Renderer info: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2 version 4.6.0 NVIDIA 560.81 from NVIDIA Corporation 2 | Depth buffer bits: 24 3 | Multisampling enabled 4 | Adding file system path "D:/Program/TrenchBroom\\defaults\\assets" 5 | Adding file system path "D:/Project/github/GodotSourceMovement\\." 6 | Loading document from D:\Project\github\GodotSourceMovement\maps\func_godot_maps\staris.map 7 | Duplicate class info 'func_detail' (line 57, column 13) 8 | Duplicate class info 'func_detail_illusionary' (line 59, column 13) 9 | Duplicate class info 'func_illusionary' (line 63, column 13) 10 | Loaded entity definition file GSMEX.fgd 11 | Loaded texture collection '"textures"' 12 | Loaded texture collection '"textures\\dev_textures"' 13 | Loaded texture collection '"textures\\input-prompts"' 14 | Loaded texture collection '"textures\\special"' 15 | Loaded "D:\\Project\\github\\GodotSourceMovement\\maps\\func_godot_maps\\staris.map" in 57ms 16 | Reloading texture collections 17 | Loaded texture collection '"textures"' 18 | Loaded texture collection '"textures\\dev_textures"' 19 | Loaded texture collection '"textures\\input-prompts"' 20 | Loaded texture collection '"textures\\special"' 21 | Reloading entity definitions 22 | Duplicate class info 'func_detail' (line 57, column 13) 23 | Duplicate class info 'func_detail_illusionary' (line 59, column 13) 24 | Duplicate class info 'func_illusionary' (line 63, column 13) 25 | Loaded entity definition file GSMEX.fgd 26 | Reloading entity definitions 27 | -------------------------------------------------------------------------------- /maps/func_godot_maps/staris-crash.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://ndukj6do620a" 6 | path="res://.godot/imported/staris-crash.map-d36c756ea543628f4ef9496c300053ca.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/staris-crash.map" 11 | dest_files=["res://.godot/imported/staris-crash.map-d36c756ea543628f4ef9496c300053ca.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /maps/func_godot_maps/staris.map.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="func_godot.map" 4 | type="Resource" 5 | uid="uid://o64i0d0ubkwv" 6 | path="res://.godot/imported/staris.map-09ea8eb1fe4787f42c84ee26cab3fe7d.tres" 7 | 8 | [deps] 9 | 10 | source_file="res://maps/func_godot_maps/staris.map" 11 | dest_files=["res://.godot/imported/staris.map-09ea8eb1fe4787f42c84ee26cab3fe7d.tres"] 12 | 13 | [params] 14 | 15 | -------------------------------------------------------------------------------- /meshs/WaterPrefab3D.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=8 format=3 uid="uid://dmyla25h441el"] 2 | 3 | [ext_resource type="Script" uid="uid://cnpwplou3a5da" path="res://scripts/water.gd" id="1_cd1js"] 4 | [ext_resource type="Material" uid="uid://0ngxcbm4j041" path="res://textures/special/water_texture.tres" id="1_xf1k4"] 5 | [ext_resource type="Shader" uid="uid://cc83d7ckkeujh" path="res://textures/camera_water_ripple.gdshader" id="2_372ig"] 6 | 7 | [sub_resource type="BoxShape3D" id="BoxShape3D_b3i6q"] 8 | size = Vector3(6.11865, 24.373, 7.47876) 9 | 10 | [sub_resource type="ShaderMaterial" id="ShaderMaterial_72uqj"] 11 | shader = ExtResource("2_372ig") 12 | 13 | [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_yeaty"] 14 | 15 | [sub_resource type="BoxShape3D" id="BoxShape3D_7h2ni"] 16 | size = Vector3(0.1, 0.1, 0.1) 17 | 18 | [node name="CSGBox3D" type="CSGBox3D"] 19 | process_priority = 999 20 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00408435, 0, -0.00451219) 21 | material = ExtResource("1_xf1k4") 22 | script = ExtResource("1_cd1js") 23 | 24 | [node name="SwimmingArea" type="Area3D" parent="." groups=["water_area"]] 25 | unique_name_in_owner = true 26 | collision_layer = 8 27 | collision_mask = 10 28 | 29 | [node name="CollisionShape" type="CollisionShape3D" parent="SwimmingArea"] 30 | unique_name_in_owner = true 31 | shape = SubResource("BoxShape3D_b3i6q") 32 | 33 | [node name="RippleOverlay" type="TextureRect" parent="."] 34 | unique_name_in_owner = true 35 | visible = false 36 | z_index = -10 37 | z_as_relative = false 38 | material = SubResource("ShaderMaterial_72uqj") 39 | anchors_preset = 15 40 | anchor_right = 1.0 41 | anchor_bottom = 1.0 42 | grow_horizontal = 2 43 | grow_vertical = 2 44 | mouse_filter = 2 45 | texture = SubResource("PlaceholderTexture2D_yeaty") 46 | 47 | [node name="CameraPosCastShape" type="ShapeCast3D" parent="."] 48 | unique_name_in_owner = true 49 | shape = SubResource("BoxShape3D_7h2ni") 50 | target_position = Vector3(0, 0, 0) 51 | collision_mask = 8 52 | collide_with_areas = true 53 | collide_with_bodies = false 54 | -------------------------------------------------------------------------------- /meshs/player-cap.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="CapsuleShape3D" format=3 uid="uid://d1fudvo1egvds"] 2 | 3 | [resource] 4 | radius = 0.4 5 | height = 1.5 6 | -------------------------------------------------------------------------------- /meshs/player-cylin.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="CylinderShape3D" format=3 uid="uid://cs7m3drkfeskt"] 2 | 3 | [resource] 4 | height = 1.8 5 | radius = 0.4 6 | -------------------------------------------------------------------------------- /meshs/turtle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/meshs/turtle.glb -------------------------------------------------------------------------------- /meshs/turtle.glb.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | importer_version=1 5 | type="PackedScene" 6 | uid="uid://3fk1yx5xse5w" 7 | path="res://.godot/imported/turtle.glb-9c174c1a87d1d731227e26fdf24a7eed.scn" 8 | 9 | [deps] 10 | 11 | source_file="res://meshs/turtle.glb" 12 | dest_files=["res://.godot/imported/turtle.glb-9c174c1a87d1d731227e26fdf24a7eed.scn"] 13 | 14 | [params] 15 | 16 | nodes/root_type="" 17 | nodes/root_name="" 18 | nodes/apply_root_scale=true 19 | nodes/root_scale=1.0 20 | nodes/import_as_skeleton_bones=false 21 | nodes/use_node_type_suffixes=true 22 | meshes/ensure_tangents=true 23 | meshes/generate_lods=true 24 | meshes/create_shadow_meshes=true 25 | meshes/light_baking=1 26 | meshes/lightmap_texel_size=0.2 27 | meshes/force_disable_compression=false 28 | skins/use_named_skins=true 29 | animation/import=true 30 | animation/fps=30 31 | animation/trimming=false 32 | animation/remove_immutable_tracks=true 33 | animation/import_rest_as_RESET=false 34 | import_script/path="" 35 | _subresources={ 36 | "nodes": { 37 | "PATH:rigify/Skeleton3D": { 38 | "rest_pose/external_animation_library": null 39 | }, 40 | "PATH:turtle_bone/Skeleton3D": { 41 | "rest_pose/external_animation_library": null 42 | }, 43 | "PATH:turtle_bone/face_004": { 44 | "generate/physics": true, 45 | "physics/body_type": 1, 46 | "physics/layer": 2, 47 | "physics/mask": 23 48 | } 49 | } 50 | } 51 | gltf/naming_version=1 52 | gltf/embedded_image_handling=1 53 | -------------------------------------------------------------------------------- /meshs/turtle.gltf.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | importer_version=1 5 | type="PackedScene" 6 | uid="uid://c8rgui4yrwty4" 7 | path="res://.godot/imported/turtle.gltf-46dca9cbcd7c148d1586497fa27aa662.scn" 8 | 9 | [deps] 10 | 11 | source_file="res://meshs/turtle.gltf" 12 | dest_files=["res://.godot/imported/turtle.gltf-46dca9cbcd7c148d1586497fa27aa662.scn"] 13 | 14 | [params] 15 | 16 | nodes/root_type="Node3D" 17 | nodes/root_name="Turtle" 18 | nodes/apply_root_scale=true 19 | nodes/root_scale=1.0 20 | nodes/import_as_skeleton_bones=true 21 | nodes/use_node_type_suffixes=true 22 | meshes/ensure_tangents=true 23 | meshes/generate_lods=true 24 | meshes/create_shadow_meshes=true 25 | meshes/light_baking=1 26 | meshes/lightmap_texel_size=0.2 27 | meshes/force_disable_compression=false 28 | skins/use_named_skins=true 29 | animation/import=true 30 | animation/fps=30 31 | animation/trimming=false 32 | animation/remove_immutable_tracks=true 33 | animation/import_rest_as_RESET=false 34 | import_script/path="" 35 | _subresources={} 36 | gltf/naming_version=1 37 | gltf/embedded_image_handling=1 38 | -------------------------------------------------------------------------------- /meshs/turtle_og_turtle_texture-x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/meshs/turtle_og_turtle_texture-x1024.png -------------------------------------------------------------------------------- /meshs/turtle_og_turtle_texture-x1024.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://750nwdaet7he" 6 | path.s3tc="res://.godot/imported/turtle_og_turtle_texture-x1024.png-f9ba21217633dff551f981970d861fe4.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | generator_parameters={ 12 | "md5": "0330d1e8c614f353dbc36d2478b17c71" 13 | } 14 | 15 | [deps] 16 | 17 | source_file="res://meshs/turtle_og_turtle_texture-x1024.png" 18 | dest_files=["res://.godot/imported/turtle_og_turtle_texture-x1024.png-f9ba21217633dff551f981970d861fe4.s3tc.ctex"] 19 | 20 | [params] 21 | 22 | compress/mode=2 23 | compress/high_quality=false 24 | compress/lossy_quality=0.7 25 | compress/hdr_compression=1 26 | compress/normal_map=0 27 | compress/channel_pack=0 28 | mipmaps/generate=true 29 | mipmaps/limit=-1 30 | roughness/mode=0 31 | roughness/src_normal="" 32 | process/fix_alpha_border=true 33 | process/premult_alpha=false 34 | process/normal_map_invert_y=false 35 | process/hdr_as_srgb=false 36 | process/hdr_clamp_exposure=false 37 | process/size_limit=0 38 | detect_3d/compress_to=0 39 | -------------------------------------------------------------------------------- /meshs/untitled.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/meshs/untitled.glb -------------------------------------------------------------------------------- /meshs/untitled.glb.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | importer_version=1 5 | type="PackedScene" 6 | uid="uid://bw77123jotndn" 7 | path="res://.godot/imported/untitled.glb-27cc1aecf82fc092b002a853425e5357.scn" 8 | 9 | [deps] 10 | 11 | source_file="res://meshs/untitled.glb" 12 | dest_files=["res://.godot/imported/untitled.glb-27cc1aecf82fc092b002a853425e5357.scn"] 13 | 14 | [params] 15 | 16 | nodes/root_type="" 17 | nodes/root_name="" 18 | nodes/apply_root_scale=true 19 | nodes/root_scale=1.0 20 | nodes/import_as_skeleton_bones=false 21 | nodes/use_node_type_suffixes=true 22 | meshes/ensure_tangents=true 23 | meshes/generate_lods=true 24 | meshes/create_shadow_meshes=true 25 | meshes/light_baking=1 26 | meshes/lightmap_texel_size=0.2 27 | meshes/force_disable_compression=false 28 | skins/use_named_skins=true 29 | animation/import=true 30 | animation/fps=30 31 | animation/trimming=false 32 | animation/remove_immutable_tracks=true 33 | animation/import_rest_as_RESET=false 34 | import_script/path="" 35 | _subresources={} 36 | gltf/naming_version=1 37 | gltf/embedded_image_handling=1 38 | -------------------------------------------------------------------------------- /scripts/camera.gd: -------------------------------------------------------------------------------- 1 | extends Node3D 2 | 3 | @onready var root_character : CharacterBody3D = get_parent().get_parent() 4 | # Called when the node enters the scene tree for the first time. 5 | 6 | func _input(event): 7 | if !Global.player_data.view_lock: 8 | if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: 9 | root_character.rotate_y(deg_to_rad(event.relative.x * Global.player_data.MOUSE_SENSITRIVITY * 0.1 * -1)) 10 | rotate_x(deg_to_rad(event.relative.y * Global.player_data.MOUSE_SENSITRIVITY * 0.1 * -1)) 11 | rotation.x = clamp(rotation.x, -1.3, 1.3) 12 | -------------------------------------------------------------------------------- /scripts/camera.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cu5b5hwt0uu2f 2 | -------------------------------------------------------------------------------- /scripts/control_ui.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | 4 | # Called when the node enters the scene tree for the first time. 5 | func _ready(): 6 | pass # Replace with function body. 7 | 8 | 9 | # Called every frame. 'delta' is the elapsed time since the previous frame. 10 | func _physics_process(delta): 11 | %debug_view_up.modulate.a = lerp(%debug_view_up.modulate.a,float(Input.is_action_pressed("move_forward")),delta*25) 12 | %debug_view_down.modulate.a = lerp(%debug_view_down.modulate.a,float(Input.is_action_pressed("move_back")),delta*25) 13 | %debug_view_left.modulate.a = lerp(%debug_view_left.modulate.a,float(Input.is_action_pressed("move_left")),delta*25) 14 | %debug_view_right.modulate.a = lerp(%debug_view_right.modulate.a,float(Input.is_action_pressed("move_right")),delta*25) 15 | %debug_view_jump.modulate.a = lerp(%debug_view_jump.modulate.a,float(Input.is_action_pressed("jump")),delta*25) 16 | %debug_view_dash.modulate.a = lerp(%debug_view_dash.modulate.a,float(Input.is_action_pressed("dash")),delta*25) 17 | %debug_view_crouch.modulate.a = lerp(%debug_view_crouch.modulate.a,float(Input.is_action_pressed("crouch")),delta*25) 18 | %debug_view_use.modulate.a = lerp(%debug_view_use.modulate.a,float(Input.is_action_pressed("use")),delta*25) 19 | -------------------------------------------------------------------------------- /scripts/control_ui.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bysmxbkr57o14 2 | -------------------------------------------------------------------------------- /scripts/data/player_data.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | class_name Player_Datas 3 | 4 | func _ready(): 5 | Global.player_data = self 6 | 7 | @export_subgroup("speed") 8 | @export var WALK_SPEED : float = 6 9 | @export var CROUCH_SPEED : float = 2 10 | @export var DASH_SPEED : float = 8 11 | @export var GROUND_MAX_SPEED : float = 40 12 | @export var FLOAT_MAX_SPEED : float = 20 13 | @export var JUMP_FORCE : float = 7 14 | @export var LADDER_SPEED : float = 5 15 | @export var SWIM_SPEED : float = 4 16 | @export var SWIM_UP_SPEED : float = 5 17 | 18 | @export_subgroup("accelration") 19 | @export var RUN_ACCEL : float = 8 20 | @export var SWIM_ACCEL : float = 4 21 | @export var RUN_DECEEL : float = 4 22 | @export var SWIM_DECEEL : float = 3.5 23 | @export var AIR_MAX_SPEED : float = 15 24 | @export var AIR_ADD_SPEED : float = 2 25 | @export var AIR_ACCEL : float = 70 26 | @export var AIR_DECCEL : float = 1 27 | @export var GROUND_AIR_CAP : float = .5 28 | @export var SURF_AIR_CAP : float = 2 29 | @export var STAND_FRICTION : float = 5.5 30 | @export var WATER_FRICTION : float = 3.5 31 | @export var CROUCH_FRICTION : float = 2 32 | 33 | @export_subgroup("crouch") 34 | @export var CROUCH_ACCEL : float = 7 35 | @export var CROUCH_AIR_ADD_SPEED : float = 5 36 | @export var CROUCH_AIR_ACCEL : float = 8 37 | @export var CROUCH_AIR_DECCEL : float = 1 38 | @export var CROUCH_HEIGHT : float = .7 39 | @export var CAMERA_HEIGHT : float = 1.2 40 | @export var stand_height : float = 1.5 #player's collision height 41 | 42 | @export_subgroup("slope") 43 | @export var SLOPE_LIMIT : float = 45 44 | 45 | @export_subgroup("sensitrivity") 46 | @export_range(0.1,10.00,0.01) var MOUSE_SENSITRIVITY :float = 1 47 | 48 | @export_subgroup("Grab") 49 | @export var grab_up : bool = false 50 | @export var view_lock : bool = false 51 | @export var grab_power : float = 8.0 52 | @export var rotation_power : float = 0.05 53 | @export var throw_power : float = 3 54 | @export var distance_power : float = 0.05 55 | @export var push_power : float = 1 56 | 57 | @export_subgroup("(old)Step") 58 | # @export var STEP_SPEED : float = 4 59 | @export var STEP_DOWN_MARGIN : float = .09 60 | @export var STEP_HEIGHT_DEFAULT : Vector3 = Vector3(0 , 0.6 , 0) 61 | @export var STEP_HEIGHT_IN_AIR_DEFAULT : Vector3 = Vector3(0 , 0.6 , 0) 62 | @export var STEP_MAX_SLOPE_DEGREED : float = 45 63 | @export var STEP_CHECK_COUNT : int = 2 64 | @export var WALL_MARGIN : float = 1 65 | @export var STAIRS_FEELING_COEFFICIENT : float = 2.5 66 | 67 | @export_subgroup("Step") 68 | @export var MAX_STEP_HEIGHT : float = 0.3 69 | @export var MAX_CROUCH_STEP_HEIGHT : float = 0.6 70 | @export var snap_stair_last_frame := false 71 | @export var last_frame_on_floor = -INF 72 | 73 | @export_subgroup("Debug") 74 | @export var gravity = 22.4 75 | @export var gravity_precent : float = 1 76 | @export var gravity_water_precent : float = 1 77 | @export var accel_precent : float = 1 78 | @export var air_accel_precent : float = 1 79 | @export var air_move_precent : float = .75 80 | @export var friction_precent : float = 1 81 | @export var swim_gravity_precent : float = .2 82 | @export var swim_up_precent : float = 2 83 | @export var camera_smooth_amount : float = .7 84 | @export var ladder_invent : int = 1 85 | @export var AIR_CAP : float = .5 86 | var auto_bunny : bool = false 87 | var step_switch : bool = false 88 | var accel_switch : bool = true 89 | var camera_smooth_switch : bool = true 90 | var on_floor : bool = false 91 | var snap_down_floor_switch : bool = true 92 | var _snap_down_floor : bool = false 93 | var ladder_boosting : bool = true 94 | var _floor_margin : float = 0.001 95 | var camera_smooth_pos = null 96 | var camera_smooth_lock : bool = false -------------------------------------------------------------------------------- /scripts/data/player_data.gd.uid: -------------------------------------------------------------------------------- 1 | uid://3xrd56dcj1cx 2 | -------------------------------------------------------------------------------- /scripts/debug_panel.gd: -------------------------------------------------------------------------------- 1 | extends PanelContainer 2 | 3 | @onready var propertiy_container = %debug_VBoxContainer 4 | 5 | # var propertiy 6 | var frames_pre_second : String 7 | 8 | func _ready(): 9 | Global.debug_panel = self 10 | 11 | func _process(delta): 12 | if (visible): 13 | frames_pre_second = "%.2f" % (1.0/delta) 14 | add_property("fps",frames_pre_second,0) 15 | 16 | func _input(event): 17 | if (Input.is_action_just_pressed("debug_info")): 18 | if %debug_VBoxContainer.visible == true : 19 | %debug_VBoxContainer.hide() 20 | else : 21 | %debug_VBoxContainer.show() 22 | 23 | func add_property(title : String , value, order): 24 | var target 25 | target = propertiy_container.find_child(title, true, false) 26 | if (!target): 27 | target = Label.new() 28 | propertiy_container.add_child(target) 29 | target.name = title 30 | target.text = target.name + ": " + str(value) 31 | elif visible: 32 | target.text = title + ": " + str(value) 33 | propertiy_container.move_child(target, order) 34 | -------------------------------------------------------------------------------- /scripts/debug_panel.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b0uybv07jeacw 2 | -------------------------------------------------------------------------------- /scripts/entities/funcs/func_ladder.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name FuncLadder 3 | extends Area3D 4 | 5 | # In Godot: 6 | # x+ is NORTH , z+ is EAST 7 | 8 | # In TrenchBroom: 9 | # y+ is NORTH , x+ is EAST 10 | 11 | @export var direction : int 12 | @export var angle : float 13 | @export var collision_size : Vector3 14 | 15 | #more infos in https://github.com/func-godot/func_godot_example_basic 16 | func _func_godot_apply_properties(props: Dictionary) -> void: 17 | direction = props["direction"] as int 18 | angle = props["angle"] as float 19 | 20 | func _init(): 21 | self.add_to_group("AREA_LADDER",true) 22 | 23 | #debug 24 | connect("body_entered" , _on_ent_entered) 25 | connect("body_exited" , _on_ent_exited) 26 | 27 | #add ladder marker 28 | var top_ladder = Marker3D.new() 29 | add_child(top_ladder) 30 | top_ladder.add_to_group("MARKER_LADDERTOP") 31 | top_ladder.position.y = self.position.y 32 | 33 | func _ready(): 34 | init_ladder_collision() 35 | init_ladder_position() 36 | 37 | func init_ladder_collision(): 38 | if direction == 0: 39 | for child in self.get_children(): 40 | if child is CollisionShape3D: 41 | self.rotation_degrees.y = 90 42 | child.rotation_degrees.y = -90 43 | 44 | if direction == 1: 45 | for child in self.get_children(): 46 | if child is CollisionShape3D: 47 | self.rotation_degrees.y = -90 48 | child.rotation_degrees.y = 90 49 | 50 | # if direction == 2: 51 | # for child in self.get_children(): 52 | # if child is CollisionShape3D: 53 | # self.rotation_degrees.y = 180 54 | # child.rotation_degrees.y = 180 55 | 56 | if direction == 3 : 57 | for child in self.get_children(): 58 | if child is CollisionShape3D: 59 | self.rotation_degrees.y = 180 60 | child.rotation_degrees.y = -180 61 | 62 | #Get collision size from ConvexPolygonShape 63 | for child in self.get_children(): 64 | if child is CollisionShape3D: 65 | collision_size = abs(child.shape.get_points()[0]) 66 | 67 | func init_ladder_position(): 68 | match direction: 69 | 0 as int : #North 70 | self.global_position.x += collision_size.x 71 | for child in self.get_children(): 72 | if child is CollisionShape3D: 73 | child.global_position.x -= collision_size.x 74 | # print("0") 75 | pass 76 | 1 as int : #South 77 | self.global_position.x -= collision_size.x 78 | for child in self.get_children(): 79 | if child is CollisionShape3D: 80 | child.global_position.x += collision_size.x 81 | # print("1") 82 | pass 83 | 2 as int : #East 84 | self.global_position.z += collision_size.z 85 | for child in self.get_children(): 86 | if child is CollisionShape3D: 87 | child.global_position.z -= collision_size.z 88 | # print("2") 89 | pass 90 | 3 as int : #West 91 | self.global_position.z -= collision_size.z 92 | for child in self.get_children(): 93 | if child is CollisionShape3D: 94 | child.global_position.z += collision_size.z 95 | # print("3") 96 | _: 97 | # print("why") 98 | pass 99 | 100 | func _on_ent_entered(ent: Node) -> void: 101 | print("LADDER:climb") 102 | 103 | func _on_ent_exited(ent: Node) -> void: 104 | print("LADDER:exit") -------------------------------------------------------------------------------- /scripts/entities/funcs/func_ladder.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bly58jrph8fkf 2 | -------------------------------------------------------------------------------- /scripts/entities/funcs/func_move.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name FuncMove 3 | extends AnimatableBody3D 4 | 5 | @export var targetname: String = "" 6 | @export var move_pos: Array[Vector3] = [Vector3.ZERO, Vector3.ZERO] 7 | @export var move_rot: Vector3 = Vector3.ZERO 8 | @export var speed: float = 3.0 9 | 10 | enum MoveStates { 11 | READY, 12 | MOVE 13 | } 14 | var move_state: MoveStates = MoveStates.READY 15 | var move_progress: float = 0.0 16 | var move_progress_target: float = 0.0 17 | var sfx: AudioStreamPlayer3D 18 | 19 | func _func_godot_apply_properties(props: Dictionary) -> void: 20 | targetname = props["targetname"] as String 21 | move_pos[1] = GameManager.id_vec_to_godot_vec(props["move_pos"]) * GameManager.INVERSE_SCALE 22 | if props["move_rot"] is Vector3: 23 | var r: Vector3 = props["move_rot"] 24 | for i in 3: 25 | move_rot[i] = deg_to_rad(r[i]) 26 | speed = props["speed"] as float 27 | 28 | func mv_forward() -> void: 29 | move_progress_target = 1.0 30 | 31 | func mv_reverse() -> void: 32 | move_progress_target = 0.0 33 | 34 | func use() -> void: 35 | mv_forward() 36 | 37 | func toggle() -> void: 38 | if move_progress_target > 0.0: 39 | mv_reverse() 40 | else: 41 | mv_forward() 42 | 43 | func _init() -> void: 44 | add_to_group("func_move") 45 | sync_to_physics = false 46 | 47 | func _ready() -> void: 48 | if Engine.is_editor_hint(): 49 | return 50 | 51 | GM.set_targetname(self, targetname) 52 | move_pos[0] = position 53 | move_pos[1] += move_pos[0] 54 | if speed > 0.0: 55 | speed = 1.0 / speed 56 | 57 | func _physics_process(delta: float) -> void: 58 | if Engine.is_editor_hint(): 59 | return 60 | 61 | if move_progress != move_progress_target: 62 | if move_progress < move_progress_target: 63 | move_progress = minf(move_progress + speed * delta, move_progress_target) 64 | elif move_progress > move_progress_target: 65 | move_progress = maxf(move_progress - speed * delta, move_progress_target) 66 | if move_pos[0] != move_pos[1]: 67 | position = move_pos[0].lerp(move_pos[1], move_progress) 68 | if move_rot != Vector3.ZERO: 69 | rotation = Vector3.ZERO.lerp(move_rot, move_progress) 70 | -------------------------------------------------------------------------------- /scripts/entities/funcs/func_move.gd.uid: -------------------------------------------------------------------------------- 1 | uid://rs38mp258cci 2 | -------------------------------------------------------------------------------- /scripts/entities/funcs/func_water.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name FuncWater 3 | extends Area3D 4 | 5 | func _init(): 6 | monitorable = false 7 | self.add_to_group("AREA_WATER",true) 8 | connect("body_entered" , _on_ent_entered) 9 | 10 | func _on_ent_entered(ent: Node) -> void: 11 | print(ent) 12 | print("fuck it") 13 | 14 | -------------------------------------------------------------------------------- /scripts/entities/funcs/func_water.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cdaqs8avr3mf0 2 | -------------------------------------------------------------------------------- /scripts/entities/info_camera.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name InfoCamera 3 | extends Camera3D 4 | 5 | @export var targetname: String = "" 6 | @export var camera_target: Node3D = null 7 | 8 | func _func_godot_apply_properties(props: Dictionary) -> void: 9 | targetname = props["targetname"] as String 10 | current = props["active"] as bool 11 | var targ_node: Node = get_parent().get_node_or_null("entity_" + (props["camera_target"] as String)) 12 | if targ_node != null: 13 | if 'position' in targ_node: 14 | camera_target = targ_node 15 | look_at(camera_target.global_position) 16 | 17 | func use() -> void: 18 | current = true 19 | 20 | func _ready() -> void: 21 | if Engine.is_editor_hint(): 22 | return 23 | GM.set_targetname(self, targetname) 24 | 25 | func _process(_delta: float) -> void: 26 | if Engine.is_editor_hint(): 27 | return 28 | if camera_target: 29 | look_at(camera_target.global_position) 30 | -------------------------------------------------------------------------------- /scripts/entities/info_camera.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bximhcmgdh042 2 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_base.gd: -------------------------------------------------------------------------------- 1 | ## Special Light base class that contains static helper functions for LightOmni and LightSpot entities. 2 | class_name LightBase 3 | extends Light3D 4 | 5 | static func _func_godot_apply_properties(node: Light3D, props: Dictionary) -> void: 6 | node.light_energy = props["energy"] as float 7 | node.light_indirect_energy = props["indirect_energy"] as float 8 | node.shadow_bias = props["shadow_bias"] as float 9 | node.shadow_enabled = props["shadows"] as bool 10 | node.light_color = props["color"] as Color 11 | node.light_bake_mode = Light3D.BAKE_DYNAMIC 12 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_base.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bdwlaasxu21hb 2 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_omni.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name LightOmni 3 | extends OmniLight3D 4 | 5 | func _func_godot_apply_properties(props: Dictionary) -> void: 6 | LightBase._func_godot_apply_properties(self, props) 7 | omni_range = (props["range"] as float) * GameManager.INVERSE_SCALE 8 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_omni.gd.uid: -------------------------------------------------------------------------------- 1 | uid://d2chdnkpmh2k1 2 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_spot.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name LightSpot 3 | extends SpotLight3D 4 | 5 | func _func_godot_apply_properties(props: Dictionary) -> void: 6 | LightBase._func_godot_apply_properties(self, props) 7 | spot_angle = props["angle"] as float 8 | spot_range = (props["range"] as float) * GameManager.INVERSE_SCALE 9 | -------------------------------------------------------------------------------- /scripts/entities/lights/light_spot.gd.uid: -------------------------------------------------------------------------------- 1 | uid://by0gxhtk1nhyk 2 | -------------------------------------------------------------------------------- /scripts/entities/triggers/trigger_area.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name TriggerArea 3 | extends Area3D 4 | 5 | @export var target: String = "" 6 | @export var targetfunc: String = "" 7 | @export var targetname: String = "" 8 | var test 9 | 10 | enum TriggerStates { 11 | READY, 12 | USED 13 | } 14 | 15 | var trigger_state: TriggerStates = TriggerStates.READY 16 | var timeout: float = 0.0 17 | var last_activator: Node = null 18 | 19 | func _func_godot_apply_properties(props: Dictionary) -> void: 20 | target = props["target"] as String 21 | targetfunc = props["targetfunc"] as String 22 | targetname = props["targetname"] as String 23 | test = props 24 | 25 | func toggle_collision(toggle: bool) -> void: 26 | for child in get_children(): 27 | if child is CollisionShape3D: 28 | child.set_deferred("disabled", !toggle) 29 | 30 | func use() -> void: 31 | if trigger_state == TriggerStates.READY: 32 | trigger_state = TriggerStates.USED 33 | toggle_collision(false) 34 | GM.use_targets(self, target) 35 | 36 | func _on_ent_entered(ent: Node) -> void: 37 | if trigger_state == TriggerStates.READY: 38 | print(ent) 39 | if ent.is_in_group("PLAYER"): 40 | call("use") 41 | 42 | func _init() -> void: 43 | monitoring = true 44 | monitorable = false 45 | connect("body_entered", _on_ent_entered) 46 | 47 | func _ready() -> void: 48 | if Engine.is_editor_hint(): 49 | return 50 | GM.set_targetname(self, targetname) 51 | -------------------------------------------------------------------------------- /scripts/entities/triggers/trigger_area.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cfrfr38x0vl3w 2 | -------------------------------------------------------------------------------- /scripts/game_manager.gd: -------------------------------------------------------------------------------- 1 | #Func_Godot autoload 2 | class_name GameManager 3 | extends Node 4 | 5 | # Common inverse scale. Calculated as 1.0 / Inverse Scale Factor. 6 | # Used to help translate properties using Quake Units into Godot Units. 7 | const INVERSE_SCALE: float = 0.03125 8 | 9 | func use_targets(activator: Node, target: String) -> void: 10 | # Targetnames are really Godot Groups, so we can have multiple entities 11 | # share a common "targetname" in Trenchbroom. 12 | var target_list: Array[Node] = get_tree().get_nodes_in_group(target) 13 | for _target in target_list: 14 | var f: String 15 | # Be careful when specifying a function since we can't pass arguments 16 | # to it (without hackarounds of course) 17 | if 'targetfunc' in activator: 18 | f = activator.targetfunc 19 | if f.is_empty(): 20 | f = "use" 21 | if _target.has_method(f): 22 | _target.call(f) 23 | 24 | func set_targetname(node: Node, targetname: String) -> void: 25 | if node != null and not targetname.is_empty(): 26 | node.add_to_group(targetname) 27 | 28 | # Converts Quake 1 axis to Godot axis 29 | static func id_vec_to_godot_vec(vec: Variant)->Vector3: 30 | var org: Vector3 = Vector3.ZERO 31 | if vec is Vector3: 32 | org = vec 33 | elif vec is String: 34 | var arr: PackedFloat64Array = (vec as String).split_floats(" ") 35 | for i in max(arr.size(), 3): 36 | org[i] = arr[i] 37 | return Vector3(org.y, org.z, org.x) -------------------------------------------------------------------------------- /scripts/game_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cqkorgklcjn36 2 | -------------------------------------------------------------------------------- /scripts/global.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | var player 4 | var player_data 5 | var debug_panel -------------------------------------------------------------------------------- /scripts/global.gd.uid: -------------------------------------------------------------------------------- 1 | uid://o018yhnyaips 2 | -------------------------------------------------------------------------------- /scripts/grab.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | class_name Grab_Fuction 4 | 5 | @onready var hand :Marker3D = $"../Root/Head/Hand/marker3d" 6 | @onready var interaction :RayCast3D = $"../Root/Head/Hand/Interaction" 7 | @onready var joint :Generic6DOFJoint3D = $"../Root/Head/Hand/Joint" 8 | @onready var staticbody :StaticBody3D = $"../Root/Head/Hand/GrabStaticBody" 9 | # @onready var Global.player_data :Resource = Global.player.Global.player_data 10 | 11 | var picked_object 12 | var hand_original_position 13 | 14 | func _ready(): 15 | hand_original_position = hand.position 16 | 17 | func _input(event): 18 | 19 | if event.is_action_pressed("use"): 20 | if picked_object == null : 21 | pick_object() 22 | else : 23 | dropping_object() 24 | hand.position = hand_original_position 25 | 26 | 27 | if event.is_action_pressed("fire"): 28 | if picked_object != null : 29 | throwing_object() 30 | hand.position = hand_original_position 31 | 32 | if event.is_action_pressed("fire_second"): 33 | if picked_object != null : 34 | dropping_object() 35 | hand.position = hand_original_position 36 | 37 | if Input.is_action_pressed("reload"): 38 | Global.player_data.view_lock = true 39 | rotating_object(event) 40 | # distance_object() 41 | 42 | if Input.is_action_just_released("reload"): 43 | Global.player_data.view_lock = false 44 | 45 | if Global.player_data.grab_power: 46 | distance_object() 47 | 48 | func _physics_process(delta): 49 | if picked_object != null : 50 | var hand_position = hand.global_transform.origin 51 | var picked_obj_position = picked_object.global_transform.origin 52 | picked_object.linear_velocity = (hand_position - picked_obj_position) * Global.player_data.grab_power 53 | 54 | func pick_object(): 55 | var collider 56 | if interaction.is_colliding(): 57 | collider = interaction.get_collider() 58 | if collider != null and collider is RigidBody3D: 59 | picked_object = collider 60 | joint.node_b = picked_object.get_path() 61 | Global.player_data.grab_up = true 62 | 63 | func dropping_object(): 64 | if picked_object != null : 65 | picked_object = null 66 | joint.node_b = NodePath("") 67 | Global.player_data.grab_up = false 68 | 69 | func throwing_object(): 70 | if picked_object != null : 71 | var knockback = picked_object.global_position - Global.player.global_position 72 | picked_object.apply_central_impulse(knockback * Global.player_data.throw_power) 73 | dropping_object() 74 | 75 | func rotating_object(event): 76 | if picked_object != null: 77 | if event is InputEventMouseMotion: 78 | staticbody.rotate_x(deg_to_rad(event.relative.y * Global.player_data.rotation_power)) 79 | staticbody.rotate_y(deg_to_rad(event.relative.x * Global.player_data.rotation_power)) 80 | 81 | func distance_object(): 82 | if picked_object != null: 83 | if Input.is_action_pressed("mouse_wheel_up"): 84 | hand.position.z -= 1 * Global.player_data.distance_power 85 | if Input.is_action_pressed("mouse_wheel_down"): 86 | hand.position.z += 1 * Global.player_data.distance_power 87 | -------------------------------------------------------------------------------- /scripts/grab.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bb8p5s6nx8aqm 2 | -------------------------------------------------------------------------------- /scripts/hud.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | func _ready(): 4 | hide() 5 | Input.mouse_mode = Input.MOUSE_MODE_CAPTURED 6 | $bg/bg2/switches/stepswitch.button_pressed = Global.player_data.step_switch 7 | $bg/bg2/switches/accelswitch.button_pressed = Global.player_data.accel_switch 8 | $bg/bg2/switches/bunnyswitch.button_pressed = Global.player_data.auto_bunny 9 | $bg/bg2/switches/surfswitch.button_pressed = false 10 | $bg/bg2/switches/ladderswitch.button_pressed = Global.player_data.ladder_boosting 11 | $bg/bg2/line_edits/surf_ang.set_placeholder(var_to_str(Global.player_data.SLOPE_LIMIT)) 12 | 13 | func _input(event): 14 | #"ESC" can let the mouse free 15 | if(event.is_action_pressed("pause_menu")): 16 | if (Input.mouse_mode == Input.MOUSE_MODE_CAPTURED): 17 | Input.mouse_mode = Input.MOUSE_MODE_VISIBLE 18 | get_tree().paused = true 19 | show() 20 | elif (Input.mouse_mode == Input.MOUSE_MODE_VISIBLE): 21 | Input.mouse_mode = Input.MOUSE_MODE_CAPTURED 22 | hide() 23 | get_tree().paused = false 24 | 25 | if(event.is_action_pressed("test_text")): 26 | if (Input.mouse_mode == Input.MOUSE_MODE_CAPTURED): 27 | Input.mouse_mode = Input.MOUSE_MODE_VISIBLE 28 | elif (Input.mouse_mode == Input.MOUSE_MODE_VISIBLE): 29 | Input.mouse_mode = Input.MOUSE_MODE_CAPTURED 30 | 31 | func _on_quit_button_pressed() -> void: 32 | get_tree().quit() 33 | 34 | func _on_countine_button_pressed() -> void: 35 | get_tree().paused = false 36 | Input.mouse_mode = Input.MOUSE_MODE_CAPTURED 37 | hide() 38 | 39 | func _on_settings_button_pressed() -> void: 40 | get_tree().reload_current_scene() 41 | 42 | 43 | func _on_bunnyswitch_toggled(toggled_on:bool) -> void: 44 | Global.player_data.auto_bunny = toggled_on 45 | 46 | func _on_stepswitch_toggled(toggled_on:bool) -> void: 47 | Global.player_data.step_switch = toggled_on 48 | 49 | func _on_accelswitch_toggled(toggled_on:bool) -> void: 50 | Global.player_data.accel_switch = toggled_on 51 | 52 | func _on_step_ang_text_submitted(new_text:String) -> void: 53 | Global.player_data.camera_smooth_amount = float(new_text) 54 | 55 | func _on_surf_ang_text_submitted(new_text:String) -> void: 56 | Global.player_data.SLOPE_LIMIT = float(new_text) 57 | 58 | func _on_ladderswitch_toggled(toggled_on:bool) -> void: 59 | Global.player_data.ladder_boosting = toggled_on 60 | 61 | func _on_surfswitch_toggled(toggled_on:bool) -> void: 62 | if toggled_on: 63 | Global.player_data.AIR_CAP = Global.player_data.SURF_AIR_CAP 64 | else : 65 | Global.player_data.AIR_CAP = Global.player_data.GROUND_AIR_CAP 66 | -------------------------------------------------------------------------------- /scripts/hud.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c3py436te0l28 2 | -------------------------------------------------------------------------------- /scripts/main_menu.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | func _on_map_1_pressed(): 4 | get_tree().change_scene_to_file("res://maps/test_lab.tscn") 5 | func _on_map_2_pressed(): 6 | get_tree().change_scene_to_file("res://maps/test_intreaction.tscn") 7 | func _on_map_3_pressed() -> void: 8 | get_tree().change_scene_to_file("res://maps/test_stairs.tscn") 9 | func _on_quit_pressed(): 10 | get_tree().quit() 11 | -------------------------------------------------------------------------------- /scripts/main_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xaiuwu1eye1l 2 | -------------------------------------------------------------------------------- /scripts/player.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dwdajul21vneu 2 | -------------------------------------------------------------------------------- /scripts/player_physic.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dek5yn4dtvo0q 2 | -------------------------------------------------------------------------------- /scripts/water.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends CSGBox3D 3 | 4 | @export var WATER_MOVE_SPEED := Vector3(.0025, .0025, .0025) 5 | @export var WATER_SCALE := .04 6 | @export var WATER_COLOR = Color(0.32, 0.609, 0.94, 0.498) 7 | 8 | static var last_frame_drew_underwater_effect : int = -999 9 | 10 | func _ready(): 11 | self.process_priority = 999 12 | 13 | func _process(delta): 14 | update_mesh() 15 | 16 | if self.material is StandardMaterial3D: 17 | # if not Engine.is_editor_hint(): 18 | self.material.uv1_offset += WATER_MOVE_SPEED * delta 19 | self.material.albedo_color = WATER_COLOR 20 | 21 | if !Engine.is_editor_hint(): 22 | if could_draw_camera_effect(): 23 | %RippleOverlay.show() 24 | last_frame_drew_underwater_effect = Engine.get_process_frames() 25 | else : 26 | %RippleOverlay.hide() 27 | 28 | func update_mesh(): 29 | if get_node_or_null("%CollisionShape"): 30 | %CollisionShape.shape.size = self.size 31 | 32 | func could_draw_camera_effect() -> bool: 33 | var camera := get_viewport().get_camera_3d() if get_viewport() else null 34 | if !camera : 35 | return false 36 | 37 | #aabb : axis-aligned bounding box 38 | #grow() : return a copy of extended on all side by the amount 39 | var aabb = self.global_transform * self.get_aabb().grow(.025) 40 | if !aabb.has_point(camera.global_position): 41 | return false 42 | 43 | %CameraPosCastShape.global_position = camera.global_position 44 | %CameraPosCastShape.force_shapecast_update() 45 | for i in %CameraPosCastShape.get_collision_count(): 46 | if %CameraPosCastShape.get_collider(i) == %SwimmingArea: 47 | return true 48 | return false -------------------------------------------------------------------------------- /scripts/water.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cnpwplou3a5da 2 | -------------------------------------------------------------------------------- /textures/camera_water_ripple.gdshader: -------------------------------------------------------------------------------- 1 | shader_type canvas_item; 2 | 3 | uniform sampler2D screen_texture :hint_screen_texture; 4 | 5 | void fragment() { 6 | vec2 uv = SCREEN_UV; 7 | 8 | float rippleSpeed = 1.5; 9 | float rippleDensity = 10.0; 10 | float rippleStrength = 0.02; 11 | 12 | vec2 center = vec2(0.5 , 0.5); 13 | vec2 delta = uv - center; 14 | float distance = length(delta); 15 | float angle = atan(delta.y , delta.x); 16 | 17 | uv.x += cos(angle * rippleDensity + TIME * rippleSpeed) * rippleStrength * distance; 18 | uv.y += sin(angle * rippleDensity + TIME * rippleSpeed) * rippleStrength * distance; 19 | 20 | vec4 color = vec4(0.0); 21 | float total = 0.0; 22 | for (float x = -2.0; x <= 2.0; x++){ 23 | for (float y = -2.0; y <= 2.0; y++){ 24 | // Blur radius 25 | vec2 samplePos = uv + vec2(x,y) * 0.001; 26 | color += texture(screen_texture, samplePos); 27 | total += 1.0; 28 | } 29 | } 30 | color /= total; 31 | 32 | COLOR = color; 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /textures/camera_water_ripple.gdshader.uid: -------------------------------------------------------------------------------- 1 | uid://cc83d7ckkeujh 2 | -------------------------------------------------------------------------------- /textures/dev-1024-o.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bc0cqxcsbx8ck"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://cbw5fke1yhmsy" path="res://textures/dev_textures/texture_01.png" id="1_fxrtp"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_fxrtp") 7 | -------------------------------------------------------------------------------- /textures/dev-1024x2-o.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bkvskxh742nnb"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://cbw5fke1yhmsy" path="res://textures/dev_textures/texture_01.png" id="1_2kfbq"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_2kfbq") 7 | uv1_scale = Vector3(2, 2, 2) 8 | -------------------------------------------------------------------------------- /textures/dev_textures/Kenney.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://www.kenney.nl/ -------------------------------------------------------------------------------- /textures/dev_textures/License.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Prototype Textures 1.0 4 | 5 | Created/distributed by Kenney (www.kenney.nl) 6 | Creation date: 08-04-2020 7 | 8 | ------------------------------ 9 | 10 | License: (Creative Commons Zero, CC0) 11 | http://creativecommons.org/publicdomain/zero/1.0/ 12 | 13 | This content is free to use in personal, educational and commercial projects. 14 | Support us by crediting Kenney or www.kenney.nl (this is not mandatory) 15 | 16 | ------------------------------ 17 | 18 | Donate: http://support.kenney.nl 19 | Request: http://request.kenney.nl 20 | Patreon: http://patreon.com/kenney/ 21 | 22 | Follow on Twitter for updates: 23 | http://twitter.com/KenneyNL -------------------------------------------------------------------------------- /textures/dev_textures/Patreon.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://www.patreon.com/kenney/ -------------------------------------------------------------------------------- /textures/dev_textures/texture_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/dev_textures/texture_01.png -------------------------------------------------------------------------------- /textures/dev_textures/texture_01.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cbw5fke1yhmsy" 6 | path.s3tc="res://.godot/imported/texture_01.png-d6dcc2bc308059363da62632ffc60291.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/dev_textures/texture_01.png" 15 | dest_files=["res://.godot/imported/texture_01.png-d6dcc2bc308059363da62632ffc60291.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_01.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bxjuvtifntomi"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://cbw5fke1yhmsy" path="res://textures/dev_textures/texture_01.png" id="1_3cq7j"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_3cq7j") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/dev_textures/texture_02.png -------------------------------------------------------------------------------- /textures/dev_textures/texture_02.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://divyhe1agktqv" 6 | path.s3tc="res://.godot/imported/texture_02.png-9cd010d8035d0b31c36e0d2906f6afe8.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/dev_textures/texture_02.png" 15 | dest_files=["res://.godot/imported/texture_02.png-9cd010d8035d0b31c36e0d2906f6afe8.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_02.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://qmxgj3umouro"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://divyhe1agktqv" path="res://textures/dev_textures/texture_02.png" id="1_xh6oa"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_xh6oa") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/dev_textures/texture_06.png -------------------------------------------------------------------------------- /textures/dev_textures/texture_06.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1xvjl44pp60m" 6 | path.s3tc="res://.godot/imported/texture_06.png-9b0057aec90d4ffec3c922d313e2050f.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/dev_textures/texture_06.png" 15 | dest_files=["res://.godot/imported/texture_06.png-9b0057aec90d4ffec3c922d313e2050f.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_06.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://6ich18hf34bu"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://c1xvjl44pp60m" path="res://textures/dev_textures/texture_06.png" id="1_f4mot"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_f4mot") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/dev_textures/texture_08.png -------------------------------------------------------------------------------- /textures/dev_textures/texture_08.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dntikp3q5u24q" 6 | path.s3tc="res://.godot/imported/texture_08.png-dfec28c28571c73ca7ee3fa4ccdb7fc4.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/dev_textures/texture_08.png" 15 | dest_files=["res://.godot/imported/texture_08.png-dfec28c28571c73ca7ee3fa4ccdb7fc4.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/dev_textures/texture_08.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dv4jamw2w2hur"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://dntikp3q5u24q" path="res://textures/dev_textures/texture_08.png" id="1_jgxcc"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_jgxcc") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/input-prompts/License.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Input Prompts (1.0) 4 | 5 | Created/distributed by Kenney (www.kenney.nl) 6 | Creation date: 20-01-2024 7 | 8 | ------------------------------ 9 | 10 | License: (Creative Commons Zero, CC0) 11 | http://creativecommons.org/publicdomain/zero/1.0/ 12 | 13 | You can use this content for personal, educational, and commercial purposes. 14 | 15 | Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement) 16 | 17 | ------------------------------ 18 | 19 | • Website : www.kenney.nl 20 | • Donate : www.kenney.nl/donate 21 | 22 | • Patreon : patreon.com/kenney 23 | 24 | Follow on social media for updates: 25 | 26 | • Twitter: twitter.com/KenneyNL 27 | • Instagram: instagram.com/kenney_nl 28 | • Mastodon: mastodon.gamedev.place/@kenney -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_a.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_a.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://34s8n8xewjoc" 6 | path="res://.godot/imported/keyboard_a.png-326ed46b70016c068f1189a698606a63.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_a.png" 14 | dest_files=["res://.godot/imported/keyboard_a.png-326ed46b70016c068f1189a698606a63.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_arrow_down.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_down.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dv7sf7f75e7an" 6 | path="res://.godot/imported/keyboard_arrow_down.png-cc10015ba12b9d656211651da6fbccd8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_arrow_down.png" 14 | dest_files=["res://.godot/imported/keyboard_arrow_down.png-cc10015ba12b9d656211651da6fbccd8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_arrow_left.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_left.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://njy40gwqd2hj" 6 | path="res://.godot/imported/keyboard_arrow_left.png-be862c66544f472b93a5470a1c7933b4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_arrow_left.png" 14 | dest_files=["res://.godot/imported/keyboard_arrow_left.png-be862c66544f472b93a5470a1c7933b4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_arrow_right.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_right.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dlpuwjafs7ceh" 6 | path="res://.godot/imported/keyboard_arrow_right.png-9149def3161ce9ba4dc0d1a152e55c8b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_arrow_right.png" 14 | dest_files=["res://.godot/imported/keyboard_arrow_right.png-9149def3161ce9ba4dc0d1a152e55c8b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_arrow_up.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_arrow_up.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bntspsjru3brd" 6 | path="res://.godot/imported/keyboard_arrow_up.png-38205f6eca281952dd4779a66dc125bf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_arrow_up.png" 14 | dest_files=["res://.godot/imported/keyboard_arrow_up.png-38205f6eca281952dd4779a66dc125bf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_bracket_close.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cbnmqyavjflt" 6 | path="res://.godot/imported/keyboard_bracket_close.png-93ad9c55bf0bbb539144025fe9baa0ff.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_bracket_close.png" 14 | dest_files=["res://.godot/imported/keyboard_bracket_close.png-93ad9c55bf0bbb539144025fe9baa0ff.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_caret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_caret.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_caret.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c6nxjqrtw1ggb" 6 | path="res://.godot/imported/keyboard_caret.png-a733f20e5d5d922c555a17e735e55fc8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_caret.png" 14 | dest_files=["res://.godot/imported/keyboard_caret.png-a733f20e5d5d922c555a17e735e55fc8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_ctrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_ctrl.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_ctrl.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dqpea3p76j8a6" 6 | path="res://.godot/imported/keyboard_ctrl.png-28eb1debebab4e9da918fc9dd8b8ecbf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_ctrl.png" 14 | dest_files=["res://.godot/imported/keyboard_ctrl.png-28eb1debebab4e9da918fc9dd8b8ecbf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_d.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_d.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b0hxafni37v5n" 6 | path="res://.godot/imported/keyboard_d.png-afddeb7f3508b8a8da437eed2dd3a8d5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_d.png" 14 | dest_files=["res://.godot/imported/keyboard_d.png-afddeb7f3508b8a8da437eed2dd3a8d5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_down.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_down.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b270vs5ugdyay" 6 | path="res://.godot/imported/keyboard_down.png-d58f1830db69b28c65f20e29c7945f04.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_down.png" 14 | dest_files=["res://.godot/imported/keyboard_down.png-d58f1830db69b28c65f20e29c7945f04.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_f.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_f.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://p1kbcjfo4uc0" 6 | path="res://.godot/imported/keyboard_f.png-b9a7d2c99c7117accaf007072255b550.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_f.png" 14 | dest_files=["res://.godot/imported/keyboard_f.png-b9a7d2c99c7117accaf007072255b550.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_minus.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_minus.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://6ln6fks67btd" 6 | path="res://.godot/imported/keyboard_minus.png-9e47ddd6c4925d79a4df5341e76a3a06.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_minus.png" 14 | dest_files=["res://.godot/imported/keyboard_minus.png-9e47ddd6c4925d79a4df5341e76a3a06.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_r.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_r.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bv8dnra4bjo04" 6 | path="res://.godot/imported/keyboard_r.png-506bf17543cde9e381e5aa0d6e0b95c7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_r.png" 14 | dest_files=["res://.godot/imported/keyboard_r.png-506bf17543cde9e381e5aa0d6e0b95c7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_s.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_s.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://h5cvg3hytplr" 6 | path="res://.godot/imported/keyboard_s.png-f53e954b9d63371b2ae7d5b2494ed0ad.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_s.png" 14 | dest_files=["res://.godot/imported/keyboard_s.png-f53e954b9d63371b2ae7d5b2494ed0ad.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_shift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_shift.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_shift.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d1ayr54hmvvo7" 6 | path="res://.godot/imported/keyboard_shift.png-4b1aa4dcbd2dada3ece75957395a9c12.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_shift.png" 14 | dest_files=["res://.godot/imported/keyboard_shift.png-4b1aa4dcbd2dada3ece75957395a9c12.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_space.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_space.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dmjnsbcorg4j8" 6 | path="res://.godot/imported/keyboard_space.png-1a2a496ef1c9320f538a40823892706f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_space.png" 14 | dest_files=["res://.godot/imported/keyboard_space.png-1a2a496ef1c9320f538a40823892706f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/keyboard_w.png -------------------------------------------------------------------------------- /textures/input-prompts/keyboard_w.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bqfvr0wk7qylt" 6 | path="res://.godot/imported/keyboard_w.png-779de358c8b7c5d03faa6d1ff40a782d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/keyboard_w.png" 14 | dest_files=["res://.godot/imported/keyboard_w.png-779de358c8b7c5d03faa6d1ff40a782d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/mouse_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/mouse_left.png -------------------------------------------------------------------------------- /textures/input-prompts/mouse_left.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cr3whfn3aynd3" 6 | path="res://.godot/imported/mouse_left.png-9601467af2ab33a48403e67577cb8c12.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/mouse_left.png" 14 | dest_files=["res://.godot/imported/mouse_left.png-9601467af2ab33a48403e67577cb8c12.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/mouse_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/mouse_right.png -------------------------------------------------------------------------------- /textures/input-prompts/mouse_right.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://blg38a1e3hqvb" 6 | path="res://.godot/imported/mouse_right.png-8906504d11c70c3af3775a22fe400576.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/mouse_right.png" 14 | dest_files=["res://.godot/imported/mouse_right.png-8906504d11c70c3af3775a22fe400576.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/input-prompts/mouse_scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/input-prompts/mouse_scroll.png -------------------------------------------------------------------------------- /textures/input-prompts/mouse_scroll.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://btetc0uex3v7j" 6 | path="res://.godot/imported/mouse_scroll.png-81d3703fc3cf561bb1a8e46433c8e544.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/input-prompts/mouse_scroll.png" 14 | dest_files=["res://.godot/imported/mouse_scroll.png-81d3703fc3cf561bb1a8e46433c8e544.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/new_standard_material_3d.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dygevgn3am8sf"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://divyhe1agktqv" path="res://textures/dev_textures/texture_02.png" id="1_xqsyq"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_xqsyq") 7 | uv1_scale = Vector3(5, 5, 5) 8 | uv2_scale = Vector3(10, 10, 10) 9 | -------------------------------------------------------------------------------- /textures/special/clip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/special/clip.png -------------------------------------------------------------------------------- /textures/special/clip.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dhmu0toe1itnr" 6 | path.s3tc="res://.godot/imported/clip.png-b88af128d9765ee842c60c6e4c027bc0.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/special/clip.png" 15 | dest_files=["res://.godot/imported/clip.png-b88af128d9765ee842c60c6e4c027bc0.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/special/ladder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/special/ladder.png -------------------------------------------------------------------------------- /textures/special/ladder.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c4hyufowxsrec" 6 | path.s3tc="res://.godot/imported/ladder.png-a6fec20bf82a5d1bdfb0b2e4ecff54e9.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/special/ladder.png" 15 | dest_files=["res://.godot/imported/ladder.png-a6fec20bf82a5d1bdfb0b2e4ecff54e9.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/special/ladder.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://lihrhwei5q2w"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://c4hyufowxsrec" path="res://textures/special/ladder.png" id="1_eepj1"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_eepj1") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/special/noise_texture.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://ddoytweu64pbj"] 2 | 3 | [sub_resource type="FastNoiseLite" id="FastNoiseLite_gtevx"] 4 | 5 | [resource] 6 | seamless = true 7 | as_normal_map = true 8 | noise = SubResource("FastNoiseLite_gtevx") 9 | -------------------------------------------------------------------------------- /textures/special/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/special/skip.png -------------------------------------------------------------------------------- /textures/special/skip.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bk5oo263y3u7w" 6 | path="res://.godot/imported/skip.png-2026d0f841ccf5af70e5ac1bf277c3e0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/special/skip.png" 14 | dest_files=["res://.godot/imported/skip.png-2026d0f841ccf5af70e5ac1bf277c3e0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=3 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/special/trigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/special/trigger.png -------------------------------------------------------------------------------- /textures/special/trigger.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cuoat6q76lh8g" 6 | path.s3tc="res://.godot/imported/trigger.png-f879e271e7fabd1268f430358dfe2613.s3tc.ctex" 7 | metadata={ 8 | "imported_formats": ["s3tc_bptc"], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://textures/special/trigger.png" 15 | dest_files=["res://.godot/imported/trigger.png-f879e271e7fabd1268f430358dfe2613.s3tc.ctex"] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/high_quality=false 21 | compress/lossy_quality=0.7 22 | compress/hdr_compression=1 23 | compress/normal_map=0 24 | compress/channel_pack=0 25 | mipmaps/generate=true 26 | mipmaps/limit=-1 27 | roughness/mode=0 28 | roughness/src_normal="" 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/normal_map_invert_y=false 32 | process/hdr_as_srgb=false 33 | process/hdr_clamp_exposure=false 34 | process/size_limit=0 35 | detect_3d/compress_to=0 36 | -------------------------------------------------------------------------------- /textures/special/trigger.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cljosb2v42inb"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://cuoat6q76lh8g" path="res://textures/special/trigger.png" id="1_ubrrd"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_ubrrd") 7 | metallic_specular = 0.0 8 | texture_filter = 2 9 | -------------------------------------------------------------------------------- /textures/special/water_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LunaticReisen/GodotSourceMovement/0bd65e4e4b7ebce4dedfb94c3733ad1b9d0dbb1c/textures/special/water_texture.png -------------------------------------------------------------------------------- /textures/special/water_texture.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://2nbrjiejslmv" 6 | path="res://.godot/imported/water_texture.png-cf4bdb94b4faa9c97b0407a2d8da8bc1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://textures/special/water_texture.png" 14 | dest_files=["res://.godot/imported/water_texture.png-cf4bdb94b4faa9c97b0407a2d8da8bc1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /textures/special/water_texture.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://0ngxcbm4j041"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://ddoytweu64pbj" path="res://textures/special/noise_texture.tres" id="1_pfjk6"] 4 | 5 | [resource] 6 | transparency = 1 7 | cull_mode = 2 8 | depth_draw_mode = 1 9 | albedo_color = Color(0.32, 0.609, 0.94, 0.498) 10 | roughness = 0.0 11 | normal_enabled = true 12 | normal_texture = ExtResource("1_pfjk6") 13 | refraction_enabled = true 14 | refraction_texture = ExtResource("1_pfjk6") 15 | uv1_scale = Vector3(0.027, 0.027, 0.027) 16 | uv1_offset = Vector3(134.096, 134.096, 134.096) 17 | uv1_triplanar = true 18 | uv1_world_triplanar = true 19 | -------------------------------------------------------------------------------- /textures/tri.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://b5rftpg3g78c3"] 2 | 3 | [ext_resource type="Texture2D" uid="uid://dntikp3q5u24q" path="res://textures/dev_textures/texture_08.png" id="1_4o8ru"] 4 | 5 | [resource] 6 | albedo_texture = ExtResource("1_4o8ru") 7 | uv1_scale = Vector3(0.2, 0.2, 0.2) 8 | uv1_triplanar = true 9 | --------------------------------------------------------------------------------