214 Commits

Author SHA1 Message Date
ee9d33f6ec fixed physics 2023-02-25 22:22:08 +01:00
b93207ba23 maybe fixed pixelbleeding for grass 2023-02-25 20:07:21 +01:00
d9576d76cc fixed some pixel issues 2023-02-25 19:50:30 +01:00
edfa2b715c fixed texture jittering and bleeding 2023-02-25 19:27:22 +01:00
1d03dc06a8 changed paths again 2023-02-25 12:04:13 +01:00
2bb5b069fd changed path 2023-02-25 12:00:23 +01:00
b2d0db4360 added linux 2023-02-25 11:58:02 +01:00
19f8972c1d added spacing between key and description 2023-02-25 11:32:47 +01:00
cfd9f3dec8 export script 2023-02-25 11:32:29 +01:00
c5fe7cfd3b fixed line breaking bugs 2023-02-25 11:11:13 +01:00
721c538b68 removed godot engine logo 2023-02-25 11:10:55 +01:00
db6cb15d1a updated to godot 4 RC 5 2023-02-25 11:10:43 +01:00
43139e54af fixed console pc hotkey 2023-02-24 22:11:22 +01:00
851a9fa99c lots of bugfixes 2023-02-24 17:43:03 +01:00
294abe6b6f konami code 2023-02-24 17:42:55 +01:00
8132530da3 fixed buggy dialogue on visible console 2023-02-24 14:50:57 +01:00
2c7a696821 added dialogue close command 2023-02-24 12:53:44 +01:00
fef7db9b7a help at error messages 2023-02-23 16:23:44 +01:00
cc25674987 optional specific help key 2023-02-23 16:20:56 +01:00
fb6f079895 console is now independent 2023-02-23 12:33:25 +01:00
bfadb4bf13 private stuff 2023-02-23 09:56:11 +01:00
6c8433a0e0 new visiblecollision command 2023-02-23 09:50:41 +01:00
97465bf600 better collision shapes 2023-02-23 09:50:21 +01:00
4979c70852 improved some dialogue code 2023-02-23 09:49:03 +01:00
4e0ec4994f player variables uses getter and setter instead of function 2023-02-23 08:11:42 +01:00
08b306f827 disables process mode when unused 2023-02-22 21:32:35 +01:00
a7932ce12b using singleton for playername now 2023-02-22 21:20:54 +01:00
ca1957d618 began making humanoid NPCs 2023-02-22 11:19:35 +01:00
43bbd5d032 fixed empty command not found message 2023-02-22 10:07:30 +01:00
f0f484268b stickycamera and command not found mesage 2023-02-20 14:58:01 +01:00
9d9d37e173 fixed line breaking typewrite bug 2023-02-19 15:09:12 +01:00
bed09ceace didnt save 2023-02-19 13:52:41 +01:00
4895a72509 now it actually works 2023-02-19 13:46:48 +01:00
cfe3a82cad cheatconsole now hidden by default 2023-02-19 13:39:40 +01:00
14c9458805 finishing touches for console 2023-02-19 13:38:53 +01:00
6e8dcba561 changed speed value code 2023-02-19 12:54:13 +01:00
6e7c6b94f4 some bugfixes and reformating 2023-02-19 12:10:49 +01:00
ef36f97ef6 added renaming cheat 2023-02-19 11:58:14 +01:00
e60c916ab0 added a cheat console 2023-02-19 11:51:34 +01:00
da44882f06 better graphic performance for 3d 2023-02-17 14:11:10 +01:00
9c135cc6e5 improved username regex 2023-02-16 12:49:09 +01:00
9c95c2d7b7 added a 3d spinning cube 2d tile 2023-02-13 14:02:52 +01:00
e584ee67c1 removed some useless stuff 2023-02-13 12:41:26 +01:00
549968d3ba removed some useless stuff 2023-02-13 12:40:55 +01:00
c5e1887fb4 shortened an answer 2023-02-12 19:00:16 +01:00
a7c1cb845a added more mouse input and cursor 2023-02-12 18:49:01 +01:00
f167b80906 uuid change 2023-02-12 18:48:38 +01:00
98a55ef02d fixed line break for typewriter effect 2023-02-12 18:47:53 +01:00
c47ed9715e unmute dialogue 2023-02-12 18:47:11 +01:00
21c20bff1f answer button now grabs focus on hover 2023-02-12 15:28:05 +01:00
4397c83b86 gdscript now builtin in nodes 2023-02-12 15:11:53 +01:00
526dbee987 removed unused code 2023-02-12 14:58:47 +01:00
a9ccc3d49f improved audio debug with gdscript 2023-02-12 14:55:49 +01:00
aee94697a5 uuid change 2023-02-12 14:55:26 +01:00
2e2716f43a changed to gdscript 2023-02-12 14:30:58 +01:00
fff915bb51 added audio buses 2023-02-12 12:32:41 +01:00
eaa056ce88 added todo comment 2023-02-12 12:18:58 +01:00
0be8de000a added answerbox sound 2023-02-12 12:09:13 +01:00
3054f08779 added typewriter sound 2023-02-12 11:14:27 +01:00
5217ce9bf0 removed some useless lines 2023-02-12 10:46:51 +01:00
47c6d08f53 improved typewriter and cleaned dialogue code 2023-02-12 10:44:23 +01:00
953210b65f some id changes idk 2023-02-12 10:43:42 +01:00
f518d4707a updated to godot 4 RC1 2023-02-11 21:19:19 +01:00
da37f68b4c changed grass texture 2023-02-11 18:51:20 +01:00
3dbac63189 changed one dialogue line 2023-02-11 18:44:25 +01:00
7c60e5df9f added important dialogue 2023-02-11 12:02:24 +01:00
b12556f950 renamed 2023-02-10 22:49:08 +01:00
30c8c1c6e0 changed names 2023-02-10 22:48:49 +01:00
4718adb460 changed grass texture 2023-02-10 22:48:23 +01:00
b0f6e48347 changed tilemap 2023-02-10 22:32:26 +01:00
8ca6574384 added world borrder collision 2023-02-10 22:30:34 +01:00
62db62152c new debug grass tile and camera locking 2023-02-10 22:16:27 +01:00
c470bb43de fixed positions 2023-02-10 20:23:00 +01:00
ca50d4148c changed collision boxes 2023-02-10 20:20:38 +01:00
0f706f782a added editlock 2023-02-10 20:20:34 +01:00
c49a89eada added locks to the scenes 2023-02-10 20:13:10 +01:00
e1318d657e comment makes sense now 2023-02-10 19:34:35 +01:00
57e8bfe4a9 fixed nintendo button swapping a bit 2023-02-10 19:29:10 +01:00
f3e4300332 added a comment 2023-02-10 19:22:38 +01:00
eee3897b85 added y-sorting 2023-02-10 19:12:39 +01:00
dcd10e4a2e added comment 2023-02-09 21:34:24 +01:00
3dd985f0a0 more logical dialogue 2023-02-09 12:17:41 +01:00
85e3f05b8b fixed and improved code, added disabled answers 2023-02-09 10:29:30 +01:00
bb96b09847 font size not hardcoded on bold font anymore 2023-02-08 21:05:22 +01:00
eb15507293 changed text colors 2023-02-08 20:54:58 +01:00
fa4701d650 added controller support 2023-02-08 20:20:36 +01:00
0282628b5b fixed unwanted "else" dialogue on "intro" bug 2023-02-08 16:56:12 +01:00
e76c771eac added comment 2023-02-08 16:53:07 +01:00
70fb5690e3 fixed dialogue 2023-02-08 16:45:01 +01:00
da49792e20 added villager introduction and actual EventIDs 2023-02-08 16:42:04 +01:00
a66cb533fb added comment 2023-02-08 14:57:36 +01:00
ac607fa875 added comment 2023-02-08 14:50:26 +01:00
c660b0f1d5 added dialogue EventIDs 2023-02-08 14:48:00 +01:00
b63c08a8f9 more on the todo list 2023-02-08 14:38:09 +01:00
eaaf76eab3 added todo 2023-02-08 14:20:40 +01:00
15407f5f06 finished dialogue villager system 2023-02-08 14:12:06 +01:00
1d363e7741 answerbox basic functional 2023-02-08 12:18:24 +01:00
a0c95ec074 changed file structure 2023-02-08 11:06:56 +01:00
94289dfba3 changed formatting 2023-02-08 11:06:47 +01:00
4cc57adabb get pressed answerbox buttons 2023-02-07 22:58:10 +01:00
fe1c63c3bf answerbox now updates correctly 2023-02-07 22:28:02 +01:00
cf307869d6 fix random array index out of range 2023-02-07 21:11:22 +01:00
6ee9a3cecd better formatting 2023-02-07 16:19:37 +01:00
f94393e883 improved answerbox string 2023-02-07 16:15:23 +01:00
04348e38e4 removed useless usings 2023-02-07 16:11:43 +01:00
38bd6d47b9 way better dialogue system code 2023-02-07 15:48:55 +01:00
0190b6bdb2 dialogue system changes 2023-02-07 14:13:30 +01:00
72421f4a32 fixed naming 2023-02-05 10:59:44 +01:00
cec3a13a66 more weird dialogue code 2023-02-05 10:56:31 +01:00
271084a94d converted for updated godot version 2023-02-05 10:56:15 +01:00
88b72232c6 updated to godot 4 beta 17 2023-02-05 10:54:40 +01:00
c82f1efcca more random changes 2023-02-04 23:02:17 +01:00
f7e21203af small changes 2023-02-04 22:58:46 +01:00
30bc16bf6b added dialogue skip functionality 2023-02-04 22:21:59 +01:00
0b4481f5c2 fixed hover icon a bit 2023-02-04 22:15:05 +01:00
d517aa5846 now randomizes dialoguebeginoptions corectly 2023-02-04 22:13:03 +01:00
2be8c5a85e randomize begindialogueoptions try 2023-02-04 21:53:14 +01:00
1a142bcc9d welcome dialogue begin 2023-02-04 21:01:07 +01:00
9fa1d5987f some more changes whatever 2023-02-04 18:02:34 +01:00
d204d15f4a styled answerbox 2023-02-04 14:03:32 +01:00
fdd150d8ac dialogue bug fixes 2023-02-04 12:29:40 +01:00
1648171f0b typewriting effect in dialogue 2023-02-03 22:25:49 +01:00
bf09061c5e added basic dialogue bubble functionality 2023-02-03 20:24:45 +01:00
d119321104 changed naming 2023-02-03 20:24:21 +01:00
2c804bb95e more dialogue system stuff 2023-02-03 13:02:49 +01:00
0e3124430b more advanced json file 2023-02-02 10:23:29 +01:00
53d35083a3 more json experiments 2023-02-02 10:23:17 +01:00
ea07e94e0a more dialog json testing 2023-02-01 11:10:16 +01:00
547e866597 useless uuid changes 2023-02-01 11:09:53 +01:00
0177c9199b fixed diagonal walking on controller 2023-01-31 16:54:34 +01:00
42265ef256 removed unfinished method write 2023-01-31 15:13:24 +01:00
c86931a2cf dialogue stuff didnt commit 2023-01-31 15:12:40 +01:00
e9fd520194 more dialogue stuff 2023-01-31 15:12:09 +01:00
6e274922d9 removed useless file 2023-01-31 15:11:42 +01:00
28d31c8e90 update for godot 4 beta 16 2023-01-28 20:18:06 +01:00
a88a8cdac7 small smart dialogue system change 2023-01-28 15:12:43 +01:00
8826213317 removed old csproject files 2023-01-27 20:44:24 +01:00
077451a574 idk i'm the only contributer so doesnt matter :/ 2023-01-27 19:25:45 +01:00
5ce5dc090e updated to godot 4 beta 10 2023-01-15 17:17:30 +01:00
6b859002d3 fixed keyboard movement 2023-01-01 18:41:34 +01:00
5434940992 fixed pixel bleeding for player sprites atlas 2022-12-31 21:24:24 +01:00
126d9eb77a nerfed raycasting while using gamepads 2022-12-31 21:04:43 +01:00
ff3aad1b4a fixed some graphical glitches 2022-12-29 18:30:08 +01:00
676d0d8b11 camera movement now gets smoothed 2022-12-29 18:29:50 +01:00
aa0d32ae85 fixed resetting rotationCenter on zero movement 2022-12-29 18:20:34 +01:00
307ccf071f added a rotation system for player and improved camera movement 2022-12-29 18:09:44 +01:00
5407d65c28 improved the dialog json formatting for future dialog system 2022-12-29 18:09:38 +01:00
54d0f44960 reorganized some files and deleted some for dialogue rewrite 2022-12-19 16:57:41 +01:00
5b61c662af removed json for different branch 2022-12-18 17:14:18 +01:00
6a52d487c7 minor changes and added rewritten version of dialog json will be implemented later 2022-12-17 22:50:23 +01:00
9616c1f0d1 added multiline text support and more code changes 2022-12-17 22:26:18 +01:00
3307edef49 fixed pixelated viewport bug 2022-12-17 21:29:35 +01:00
8cf6372d8b changed some player speed parameters 2022-12-13 20:30:53 +01:00
771b2e801e extended the dialog system 2022-12-13 19:49:47 +01:00
b7c72ec95f this tileset always wants git's attention by randomly changing IDs or something 2022-12-13 19:49:24 +01:00
Yannik
098bc5f879 added project icon to readme 2022-12-11 22:03:39 +01:00
5b9fd9229d changed icon 2022-12-11 21:59:36 +01:00
d2ff18fee2 ray cast legth is now just the original length 2022-12-11 21:53:20 +01:00
b43cf411cb tile UID changed again 2022-12-11 21:52:02 +01:00
0a90c41a23 more efficient ray cast position code 2022-12-11 21:44:18 +01:00
c186097d0e made animations modular for manual movement code 2022-12-11 19:59:52 +01:00
559a35532c deleted old csproj files 2022-12-11 19:17:52 +01:00
de7d239282 fixed animation bugs 2022-12-11 19:17:37 +01:00
6c57a23f85 added player animations for walking 2022-12-11 19:07:17 +01:00
d3cc88ecd6 due to editor crash tile UIDs have changed 2022-12-11 19:07:13 +01:00
114c8045eb resized player and player collision 2022-12-10 21:35:20 +01:00
57cbbacc47 made raycast smaller 2022-12-10 21:18:29 +01:00
bb05e7a4bd improved pixel drawing of dummy character 2022-12-10 21:18:16 +01:00
183c678d69 new player avatar 2022-12-10 14:54:00 +01:00
d0f355e3e9 updated to godot 4 beta 8 2022-12-10 14:06:38 +01:00
f62e44a4f2 even more dialog code changes 2022-12-07 23:00:56 +01:00
0b4abc2365 updated to godot 4 beta 7 2022-12-07 22:58:54 +01:00
29d3a7d130 more dialog garbage testing code 2022-12-02 21:12:25 +01:00
c4500b09f4 primitive working dialog bubble 2022-12-01 20:25:36 +01:00
f093d3c0b5 cleaned some code and folder organization 2022-11-30 23:08:31 +01:00
5e983a9a5f added interaction system 2022-11-30 22:09:48 +01:00
68d16fbd4f added interaction_area to player for interacting with overlapping objects 2022-11-30 18:42:21 +01:00
c01a20e603 added option to not always randomize json arrays 2022-11-30 00:49:59 +01:00
f0bf7b1966 randomize dialog json array if given 2022-11-30 00:31:02 +01:00
078695b02d changed a value and some formatting 2022-11-29 22:09:05 +01:00
2f57e22f06 now using multiple files instead of giant multiple files with extra keys 2022-11-29 21:37:32 +01:00
9865198883 godot dictionary testing 2022-11-29 21:29:46 +01:00
b719aae87d json dialog implementation progression 2022-11-29 20:06:42 +01:00
8e63ba5207 worked on the custom dialog system 2022-11-29 19:29:55 +01:00
0e6a8e660f worked on the custom dialog system 2022-11-29 19:29:03 +01:00
a8d98142f9 resized camera zoom 2022-11-28 21:41:01 +01:00
43a7ddbf76 added dialog bubble without function 2022-11-28 21:27:54 +01:00
67d2f5ca59 removed debug messages 2022-11-28 20:34:58 +01:00
f4e57aaaa5 issue wasn't existing forgot why it is that way 2022-11-28 20:34:18 +01:00
dbb515ac49 added comment 2022-11-28 19:52:42 +01:00
848c76b223 reverted more stuff 2022-11-28 19:42:09 +01:00
87a91c1dc6 current controller now gets recognized better on the go 2022-11-28 19:41:47 +01:00
e9cb52fa3c fixed things because of revert 2022-11-28 18:23:09 +01:00
8fa39a2898 removed not working dialog system advice making my own now 2022-11-28 18:02:47 +01:00
aa2e732a93 "fixed" not building 2022-11-28 18:00:48 +01:00
964722a41a did some useless garbage 2022-11-28 17:59:40 +01:00
ca57159c22 began the dialog system 2022-11-27 23:29:56 +01:00
29b5153434 changed debug world 2022-11-27 22:40:00 +01:00
36c4797fb5 fixed typo and reenabled player movement 2022-11-27 22:19:48 +01:00
e2f883e736 backgroundscript is not objectbased anymore 2022-11-27 22:03:20 +01:00
67fa20c946 fixed button variables being the same 2022-11-27 19:30:13 +01:00
d2e1e536d5 main code even more cleaner 2022-11-27 19:20:45 +01:00
7db764c459 cleaned main code 2022-11-27 18:57:12 +01:00
777cb3a1b2 now recognizes the keyboard better 2022-11-27 17:44:07 +01:00
280ec83e8a now replacel currentController == null with "PC" 2022-11-27 17:33:33 +01:00
e28be76afe now checks if you are using keyboard or gamepad (very badly) 2022-11-27 04:10:31 +01:00
a3aab2de97 added todo comment 2022-11-27 03:36:30 +01:00
fc678778b8 now changes button mapping for nintendo controllers automatically 2022-11-27 03:07:19 +01:00
dbeac992bd prepared for nintendo controller support 2022-11-26 12:51:28 +01:00
6ac6d14a44 fixed more useless import warning messages 2022-11-25 19:48:04 +01:00
b491814f20 changed viewport screen sizing behaviour 2022-11-25 17:20:54 +01:00
af3542b932 readded fullscreen hotkeys 2022-11-25 01:43:53 +01:00
ed6636d806 readded fullscreen hotkeys 2022-11-25 01:43:08 +01:00
2e97d1fec7 completely rewritten with godot 4 beta 2022-11-25 00:31:57 +01:00
76 changed files with 2097 additions and 635 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

View File

@@ -1,32 +0,0 @@
name: "godot-ci export"
on: push
env:
GODOT_VERSION: mono-3.5.1
EXPORT_NAME: RPG-Test
jobs:
export-windows:
name: Windows Export
runs-on: ubuntu-20.04
container:
image: barichello/godot-ci:mono-3.5.1
steps:
- name: Checkout
uses: actions/checkout@v2
with:
lfs: true
- name: Setup
run: |
mkdir -v -p ~/.local/share/godot/templates
mv /root/.local/share/godot/templates/${GODOT_VERSION}.stable ~/.local/share/godot/templates/${GODOT_VERSION}.stable
- name: Windows Build
run: |
mkdir -v -p build/windows
cd $EXPORT_NAME
godot -v --export "Windows Desktop" ../build/windows/$EXPORT_NAME.exe
- name: Upload Artifact
uses: actions/upload-artifact@v1
with:
name: windows
path: build/windows

12
.gitignore vendored
View File

@@ -1,12 +1,4 @@
# Godot-specific ignores
.import/
export.cfg
export_presets.cfg
# Mono-specific ignores
.mono/
data_*/
# Godot 4+ specific ignores
.godot/
#custom
.vs/

View File

@@ -1,2 +1,3 @@
# rpg-test
Trying to get an RPG game environment working in Godot
Trying to get an RPG game environment working in Godot<br><br>
<img src="assets/textures/debug/dummy-player-normal.png">

10
RPG Test gd4.csproj Normal file
View File

@@ -0,0 +1,10 @@
<Project Sdk="Godot.NET.Sdk/4.0.0-rc.5">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>RPGTestgd4</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Content Include="villager_normal.json" />
</ItemGroup>
</Project>

10
RPG Test gd4.csproj.old Normal file
View File

@@ -0,0 +1,10 @@
<Project Sdk="Godot.NET.Sdk/4.0.0-rc.1">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>RPGTestgd4</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Content Include="villager_normal.json" />
</ItemGroup>
</Project>

View File

@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RPG-Test", "RPG-Test.csproj", "{03530658-9683-4AB8-AC24-354105EBCCDD}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RPG Test gd4", "RPG Test gd4.csproj", "{27424726-AFC3-4E97-8F36-EB38E4D2768D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -9,11 +9,11 @@ Global
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{03530658-9683-4AB8-AC24-354105EBCCDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{03530658-9683-4AB8-AC24-354105EBCCDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -1,6 +0,0 @@
<Project Sdk="Godot.NET.Sdk/3.3.0">
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<RootNamespace>RPGTest</RootNamespace>
</PropertyGroup>
</Project>

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://s64cl4x57oae"
path="res://.godot/imported/sound_explode.wav-e098f161dda656140202efc764be6ab7.sample"
[deps]
source_file="res://assets/audios/sound_explode.wav"
dest_files=["res://.godot/imported/sound_explode.wav-e098f161dda656140202efc764be6ab7.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cg6grs5k5m33n"
path="res://.godot/imported/default_tw.wav-b8234c01d377ca034f868e03cc0f2f97.sample"
[deps]
source_file="res://assets/audios/typewrite/default_tw.wav"
dest_files=["res://.godot/imported/default_tw.wav-b8234c01d377ca034f868e03cc0f2f97.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://7si4jccoofsf"
path="res://.godot/imported/small_btn.wav-03523654df09421d5901cf3397cbf614.sample"
[deps]
source_file="res://assets/audios/ui/small_btn.wav"
dest_files=["res://.godot/imported/small_btn.wav-03523654df09421d5901cf3397cbf614.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

View File

@@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cx6bvqk0ghmjv"
path="res://.godot/imported/urbane-rounded-medium.otf-9f9f3b12be0c06a6d7111a1305925d9c.fontdata"
[deps]
source_file="res://assets/fonts/urbane-rounded-medium.otf"
dest_files=["res://.godot/imported/urbane-rounded-medium.otf-9f9f3b12be0c06a6d7111a1305925d9c.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View File

@@ -0,0 +1,105 @@
{
"dialogType": "villager",
"intro": [
[
"Hello i'm {title}. Your name must be {player}!",
0
]
],
"welcome": [
[
"Oh hello, {player}... You look great!",
"<goto:>begindialog"
],
[
"Hey, {player}! Hope you have fun today!",
"<goto:>begindialog"
],
[
"Hi! What's up {player}?",
"<goto:>begindialog"
]
],
"begindialog": [
[
"What can I do for you?",
{
"I just wanna talk": "<goto:>tipp",
"Nevermind!": "<goto:>goodbye"
}
],
[
"So what do you want?",
{
"What's up": "<goto:>tipp",
"Nothing": "<goto:>goodbye"
}
]
],
"else": [
[
"Do you need something else?",
{
"Can you tell me more?": "<goto:>tipp",
"No, thanks!": "<goto:>goodbye"
}
],
[
"So can i help you with something else?",
{
"Tell me a bit more": "<goto:>tipp",
"I'm good, thank you!": "<goto:>goodbye"
}
]
],
"goodbye": [
[
"Was nice talking to you goodbye!"
],
[
"Have a great day, {player}!"
]
],
"tipp": [
[
"[font s=6]░░░░░▄▄▄▄▀▀▀▀▀▀▀▀▄▄▄▄▄▄░░░░░░░░\n░░░░░█░░░░▒▒▒▒▒▒▒▒▒▒▒▒░░▀▀▄░░░░\n░░░░█░░░▒▒▒▒▒▒░░░░░░░░▒▒▒░░█░░░\n░░░█░░░░░░▄██▀▄▄░░░░░▄▄▄░░░░█░░\n░▄▀▒▄▄▄▒░█▀▀▀▀▄▄█░░░██▄▄█░░░░█░\n█░▒█▒▄░▀▄▄▄▀░░░░░░░░█░░░▒▒▒▒▒░█\n█░▒█░█▀▄▄░░░░░█▀░░░░▀▄░░▄▀▀▀▄▒█\n░█░▀▄░█▄░█▀▄▄░▀░▀▀░▄▄▀░░░░█░░█░\n░░█░░░▀▄▀█▄▄░█▀▀▀▄▄▄▄▀▀█▀██░█░░\n░░░█░░░░██░░▀█▄▄▄█▄▄█▄████░█░░░\n░░░░█░░░░▀▀▄░█░░░█░█▀██████░█░░\n░░░░░▀▄░░░░░▀▀▄▄▄█▄█▄█▄█▄▀░░█░░\n░░░░░░░▀▄▄░▒▒▒▒░░░░░░░░░░▒░░░█░\n░░░░░░░░░░▀▀▄▄░▒▒▒▒▒▒▒▒▒▒░░░░█░\n░░░░░░░░░░░░░░▀▄▄▄▄▄░░░░░░░░█░░[/font]",
"<goto:>else"
],
[
"[center][font s=80][wave amp=50 freq=15][rainbow]This is cool test text[/rainbow][/wave][/font][/center]",
"sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,",
"sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.",
"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
"<goto:>else"
]
],
"story": [
[
"test1test1test1test1test1test1test1test1test1test1test1test1test1test1test1",
"test2test2test2test2test2test2test2test2test2test2test2test2test2test2test2",
"test3test3test3test3test3test3test3test3test3test3test3test3test3test3test3",
"So do you want to do xy for me?",
{
"Yes tell me more": [
"Lorem ipsum orem ipsumorem ipsumorem ipsumorem ipsumorem ipsum",
"orem ipsumorem ipsumorem ipsumorem ipsumorem ipsumorem ipsumorem ipsum,",
"do you want to know even more?",
{
"tell me even more": [
"this is more debug text and it should look great",
"i hope i am able to finish the code for it"
],
"No thats enough": false
},
"after yes tell me more debug text"
],
"Make it short": [
"okay so this is the short version: xyxyxyxy is xyxyxxyxxyyx123!"
],
"No I'm good": false
},
"This is the text after the prompt",
"and another text after the prompt"
]
]
}

View File

@@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/banana.png-b266be96b0846753aedd2f84866d07bc.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/banana.png"
dest_files=[ "res://.import/banana.png-b266be96b0846753aedd2f84866d07bc.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/cupcake.png-93ee0951f9b3ff6300047d14826a099b.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/cupcake.png"
dest_files=[ "res://.import/cupcake.png-93ee0951f9b3ff6300047d14826a099b.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

BIN
assets/textures/cursor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddcvakqvqcthf"
path="res://.godot/imported/cursor.png-f271a127bae41ae766f1b1b7bc6152fd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/cursor.png"
dest_files=["res://.godot/imported/cursor.png-f271a127bae41ae766f1b1b7bc6152fd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ciidukjv5k6oa"
path="res://.godot/imported/banana.png-50380ed0796f86b0b05039176725d8eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/banana.png"
dest_files=["res://.godot/imported/banana.png-50380ed0796f86b0b05039176725d8eb.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://p5ubildre2tg"
path="res://.godot/imported/cupcake.png-e641a112586eeca5f723ee6aa32d7f28.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/cupcake.png"
dest_files=["res://.godot/imported/cupcake.png-e641a112586eeca5f723ee6aa32d7f28.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://diwxy1fl5m02y"
path="res://.godot/imported/debugitem_one64.png-7941e59d1b01f784439647bcf9741e7c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/debugitem_one64.png"
dest_files=["res://.godot/imported/debugitem_one64.png-7941e59d1b01f784439647bcf9741e7c.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://boewsqe4b5yxm"
path="res://.godot/imported/dummy-npc-atlas.png-e769aca31bd129eff0fec532dee91f95.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/dummy-npc-atlas.png"
dest_files=["res://.godot/imported/dummy-npc-atlas.png-e769aca31bd129eff0fec532dee91f95.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://olceowuycu8c"
path="res://.godot/imported/dummy-player-atlas.png-68f05802eecc35f4774851352daddd72.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/dummy-player-atlas.png"
dest_files=["res://.godot/imported/dummy-player-atlas.png-68f05802eecc35f4774851352daddd72.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://377657cxmdpa"
path="res://.godot/imported/dummy-player-normal.png-45a5eb1f003876b79db5d133686dde95.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/dummy-player-normal.png"
dest_files=["res://.godot/imported/dummy-player-normal.png-45a5eb1f003876b79db5d133686dde95.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3l4uomk1gw8c"
path="res://.godot/imported/grass_tile.png-5a5483ddd78e23537d011bbb997ab6f8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debug/grass_tile.png"
dest_files=["res://.godot/imported/grass_tile.png-5a5483ddd78e23537d011bbb997ab6f8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/debugitem_one64.png-1ec80dd262e8a6ed96484253d42fdc95.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/debugitem_one64.png"
dest_files=[ "res://.import/debugitem_one64.png-1ec80dd262e8a6ed96484253d42fdc95.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://boxc677b5i605"
path="res://.godot/imported/circle.png-3c0b22aad03e7f55176a848f19bf5e35.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/dialogue/circle.png"
dest_files=["res://.godot/imported/circle.png-3c0b22aad03e7f55176a848f19bf5e35.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://04pdpdvkg2s"
path="res://.godot/imported/dialogue_answer_ninepatch.png-01c1b91fe7cb6355bb563ce9038c65a5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/dialogue/dialogue_answer_ninepatch.png"
dest_files=["res://.godot/imported/dialogue_answer_ninepatch.png-01c1b91fe7cb6355bb563ce9038c65a5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/test_background_tileset.png-6a994978cefc6df9f5920903f59e7192.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/textures/test_background_tileset.png"
dest_files=[ "res://.import/test_background_tileset.png-6a994978cefc6df9f5920903f59e7192.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

15
default_bus_layout.tres Normal file
View File

@@ -0,0 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://dl0nx4myxdl3y"]
[resource]
bus/1/name = &"Dialogue"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0672607
bus/1/send = &"Master"
bus/2/name = &"UI"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"

View File

@@ -1,7 +0,0 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

106
export_presets.cfg Normal file
View File

@@ -0,0 +1,106 @@
[preset.0]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../export/windows/RPG Test gd4.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_encryption_key=""
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_script=1
binary_format/embed_pck=true
texture_format/bptc=true
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
binary_format/architecture="x86_64"
codesign/enable=false
codesign/identity_type=0
codesign/identity=""
codesign/password=""
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon="res://assets/textures/debug/dummy-player-normal.png"
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
[preset.1]
name="Linux/X11"
platform="Linux/X11"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../export/linux/RPG Test gd4.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_encryption_key=""
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_script=1
binary_format/embed_pck=true
texture_format/bptc=true
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,35 +0,0 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -6,80 +6,148 @@
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
config_version=5
[application]
config/name="RPG-Test"
run/main_scene="res://scenes/maps/main.tscn"
config/name="RPG Test gd4"
run/main_scene="res://scenes/overworld.tscn"
config/features=PackedStringArray("4.0", "C#", "Forward Plus")
boot_splash/show_image=false
boot_splash/bg_color=Color( 0.141176, 0.141176, 0.141176, 1 )
config/icon="res://icon.png"
config/icon="res://assets/textures/debug/dummy-player-normal.png"
[autoload]
Essential="res://src/essential.cs"
PlayerVariables="*res://src/player_variables.cs"
Console="*res://scenes/gui/console.tscn"
[display]
window/size/height=640
window/stretch/aspect="keep"
window/size/viewport_width=1844
window/size/viewport_height=1037
window/size/window_width_override=1537
window/size/window_height_override=864
mouse_cursor/custom_image="res://assets/textures/cursor.png"
window/stretch/mode="canvas_items"
[gui]
[dotnet]
common/drop_mouse_on_gui_input_disabled=true
project/assembly_name="RPG Test gd4"
[editor]
naming/default_signal_callback_name="On{NodeName}{SignalName}"
naming/default_signal_callback_to_self_name="On{SignalName}"
naming/node_name_num_separator=2
naming/node_name_casing=2
node_naming/name_casing=2
[filesystem]
import/blender/enabled=false
import/fbx/enabled=false
[input]
fullscreen={
ui_accept={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":4194309,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":4194310,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"echo":false,"script":null)
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
]
}
ui_cancel={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"key_label":0,"unicode":4194305,"echo":false,"script":null)
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
]
}
ui_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":4194319,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
]
}
ui_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":4194321,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
]
}
ui_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":4194320,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
]
}
ui_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":4194322,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
]
}
move_left={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
]
}
move_right={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":100,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
]
}
move_up={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
]
}
move_down={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
]
}
debug={
hotkey_fullscreen={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194342,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
console={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777246,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194334,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
cheat_start={
"deadzone": 0.5,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
]
}
[mono]
[internationalization]
project/assembly_name="RPG-Test"
locale/translation_remaps={}
locale/translations_pot_files=PackedStringArray()
[physics]
[layer_names]
common/enable_pause_aware_picking=true
2d_physics/layer_1="World"
2d_physics/layer_2="Interactable"
[rendering]
2d/snapping/use_gpu_pixel_snap=true
environment/default_environment="res://default_env.tres"
global_illumination/gi/use_half_resolution=true
shading/overrides/force_vertex_shading=true
occlusion_culling/use_occlusion_culling=true
shading/use_occlusion_culling=true

34
scenes/3D/3d_cube.tscn Normal file
View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=3 format=3 uid="uid://boxvq5qowh8nn"]
[sub_resource type="BoxMesh" id="BoxMesh_5dg07"]
[sub_resource type="GDScript" id="GDScript_a7mr5"]
resource_name = "spinning"
script/source = "extends MeshInstance3D
func _process(_delta):
rotate_y(0.01)
rotate_z(0.01)
"
[node name="3d_cube" type="Node3D"]
[node name="visible_on_screen_enabler_3d" type="VisibleOnScreenEnabler3D" parent="."]
enable_mode = 1
enable_node_path = NodePath("../mesh_instance_3d")
[node name="mesh_instance_3d" type="MeshInstance3D" parent="."]
process_mode = 1
transform = Transform3D(0.5, -0.5, 0.707107, 0.707107, 0.707107, 0, -0.5, 0.5, 0.707107, 0, 0, 0)
cast_shadow = 0
mesh = SubResource("BoxMesh_5dg07")
script = SubResource("GDScript_a7mr5")
[node name="camera_3d" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.982906, 0.184106, 0, -0.184106, 0.982906, 0, 0.303103, 2.61621)
fov = 99.1704
[node name="directional_light_3d" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.856547, 0.51607, 0, -0.51607, 0.856547, 0, 0, 5.56892)
directional_shadow_mode = 0
sky_mode = 1

114
scenes/base_npc.tscn Normal file
View File

@@ -0,0 +1,114 @@
[gd_scene load_steps=14 format=3 uid="uid://brh4u8w48v7po"]
[ext_resource type="Texture2D" uid="uid://boewsqe4b5yxm" path="res://assets/textures/debug/dummy-npc-atlas.png" id="1_feq0g"]
[ext_resource type="PackedScene" uid="uid://bu1xkt4xi58ox" path="res://scenes/dialog_trigger_area.tscn" id="2_cjcdi"]
[sub_resource type="AtlasTexture" id="AtlasTexture_dtvay"]
atlas = ExtResource("1_feq0g")
region = Rect2(0, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_4vo8e"]
atlas = ExtResource("1_feq0g")
region = Rect2(59, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_qf4lj"]
atlas = ExtResource("1_feq0g")
region = Rect2(118, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_ix2cs"]
atlas = ExtResource("1_feq0g")
region = Rect2(177, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_y6ifs"]
atlas = ExtResource("1_feq0g")
region = Rect2(177, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_tlb85"]
atlas = ExtResource("1_feq0g")
region = Rect2(0, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_b18m1"]
atlas = ExtResource("1_feq0g")
region = Rect2(59, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_5wb27"]
atlas = ExtResource("1_feq0g")
region = Rect2(118, 90, 59, 90)
[sub_resource type="SpriteFrames" id="SpriteFrames_rr6ht"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dtvay")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4vo8e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dtvay")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qf4lj")
}],
"loop": true,
"name": &"move_down",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ix2cs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y6ifs")
}],
"loop": true,
"name": &"move_side",
"speed": 4.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_tlb85")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b18m1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tlb85")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5wb27")
}],
"loop": true,
"name": &"move_up",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_rsgcw"]
radius = 7.99467
height = 55.9998
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sgrqb"]
size = Vector2(54, 71)
[node name="base_npc" type="CharacterBody2D"]
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_rr6ht")
animation = &"move_down"
metadata/_edit_lock_ = true
[node name="collision_shape" type="CollisionShape2D" parent="."]
position = Vector2(0, 37)
rotation = 1.57345
shape = SubResource("CapsuleShape2D_rsgcw")
[node name="dialog_trigger_area" parent="." instance=ExtResource("2_cjcdi")]
file = "res://assets/lang/en/dialogue/npcs/villager_normal.json"
title = "Debug NPC"
metadata/_edit_lock_ = true
[node name="collision_shape_2d" parent="dialog_trigger_area" index="0"]
position = Vector2(0, -6.5)
shape = SubResource("RectangleShape2D_sgrqb")
[editable path="dialog_trigger_area"]

View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=2 format=3 uid="uid://bu1xkt4xi58ox"]
[sub_resource type="GDScript" id="GDScript_enb1s"]
resource_name = "dialog_trigger_variables"
script/source = "extends Area2D
@export_file(\"*json\") var file = \"\"
@export var title = \"\"
@export var introducedVillager = false
"
[node name="dialog_trigger_area" type="Area2D"]
collision_layer = 2
collision_mask = 2
script = SubResource("GDScript_enb1s")
[node name="collision_shape_2d" type="CollisionShape2D" parent="."]

47
scenes/gui/console.tscn Normal file
View File

@@ -0,0 +1,47 @@
[gd_scene load_steps=2 format=3 uid="uid://dlkpivjpbxnlg"]
[ext_resource type="Script" path="res://src/scene-scripts/console/console.cs" id="1_gdt1r"]
[node name="popup_panel" type="PopupPanel"]
transparent_bg = true
size = Vector2i(1844, 193)
visible = true
always_on_top = true
script = ExtResource("1_gdt1r")
[node name="v_box_container" type="VBoxContainer" parent="."]
offset_left = 4.0
offset_top = 4.0
offset_right = 1840.0
offset_bottom = 189.0
[node name="rich_text_label" type="RichTextLabel" parent="v_box_container"]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
focus_mode = 2
theme_override_colors/default_color = Color(0, 1, 0, 1)
bbcode_enabled = true
text = "[color=red][b]USING CHEATS MAY PAUSE ACHIEVEMENTS WHILE THE CHEATS ARE ACTIVE[/b][/color]
"
scroll_following = true
selection_enabled = true
[node name="line_edit" type="LineEdit" parent="v_box_container"]
layout_mode = 2
theme_override_colors/font_color = Color(0, 1, 0, 1)
theme_override_colors/caret_color = Color(0, 1, 0, 1)
placeholder_text = "Type in cheat or command. Use \"help\" for help."
max_length = 200
context_menu_enabled = false
clear_button_enabled = true
flat = true
select_all_on_focus = true
caret_blink = true
caret_blink_interval = 0.5
caret_force_displayed = true
[node name="cheatcode_timer" type="Timer" parent="."]
one_shot = true
[connection signal="popup_hide" from="." to="." method="OnPopupHide"]
[connection signal="text_submitted" from="v_box_container/line_edit" to="." method="OnLineEditTextSubmitted"]

View File

@@ -0,0 +1,117 @@
[gd_scene load_steps=7 format=3 uid="uid://bkm7365u1mm3o"]
[ext_resource type="Script" path="res://src/scene-scripts/dialogue-system/dialog_bubble.cs" id="1_xtj1q"]
[ext_resource type="FontFile" uid="uid://cx6bvqk0ghmjv" path="res://assets/fonts/urbane-rounded-medium.otf" id="2_qrihj"]
[ext_resource type="AudioStream" uid="uid://cg6grs5k5m33n" path="res://assets/audios/typewrite/default_tw.wav" id="2_wg62u"]
[ext_resource type="Texture2D" uid="uid://04pdpdvkg2s" path="res://assets/textures/dialogue/dialogue_answer_ninepatch.png" id="3_n3y1v"]
[ext_resource type="AudioStream" uid="uid://7si4jccoofsf" path="res://assets/audios/ui/small_btn.wav" id="5_w6jq7"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5w2xu"]
[node name="dialog_bubble" type="CanvasLayer"]
process_mode = 4
script = ExtResource("1_xtj1q")
metadata/_edit_use_anchors_ = true
[node name="typewriter_audio_stream" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_wg62u")
pitch_scale = 0.4
bus = &"Dialogue"
[node name="typewriter_timer" type="Timer" parent="."]
wait_time = 0.05
[node name="box" type="ColorRect" parent="."]
anchors_preset = -1
anchor_left = 0.083
anchor_top = 0.694
anchor_right = 0.923
anchor_bottom = 0.968
offset_left = 0.428993
offset_top = 0.383972
offset_right = -40.651
offset_bottom = 19.6479
grow_horizontal = 2
grow_vertical = 0
color = Color(0.0705882, 0.0705882, 0.0705882, 1)
metadata/_edit_lock_ = true
[node name="rich_text_label" type="RichTextLabel" parent="box"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.034
anchor_top = 0.276
anchor_right = 0.964
anchor_bottom = 0.914
offset_left = 0.569996
offset_top = 0.0679932
offset_right = 0.219971
offset_bottom = 0.10199
grow_horizontal = 2
grow_vertical = 0
theme_override_colors/default_color = Color(1, 1, 1, 1)
theme_override_fonts/normal_font = ExtResource("2_qrihj")
theme_override_font_sizes/normal_font_size = 42
bbcode_enabled = true
scroll_active = false
visible_characters_behavior = 1
metadata/_edit_lock_ = true
[node name="name_label" type="Label" parent="box"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.01
anchor_top = 0.039
anchor_right = 0.118
anchor_bottom = 0.233
offset_left = 0.0499992
offset_top = -0.0229998
offset_right = 0.389984
offset_bottom = 0.118996
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("2_qrihj")
theme_override_font_sizes/font_size = 38
text = "???"
metadata/_edit_lock_ = true
[node name="panel_container" type="PanelContainer" parent="box"]
visible = false
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -187.88
offset_top = -367.402
offset_right = 28.12
offset_bottom = -247.402
grow_horizontal = 0
grow_vertical = 0
size_flags_horizontal = 8
size_flags_vertical = 8
theme_override_styles/panel = SubResource("StyleBoxEmpty_5w2xu")
[node name="nine_patch_rect" type="NinePatchRect" parent="box/panel_container"]
layout_mode = 2
texture = ExtResource("3_n3y1v")
patch_margin_left = 50
patch_margin_top = 50
patch_margin_right = 50
patch_margin_bottom = 50
metadata/_edit_lock_ = true
[node name="margin_container" type="MarginContainer" parent="box/panel_container"]
layout_mode = 2
theme_override_constants/margin_left = 48
theme_override_constants/margin_top = 36
theme_override_constants/margin_right = 72
theme_override_constants/margin_bottom = 36
metadata/_edit_lock_ = true
[node name="answerbtn_audio_stream" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_w6jq7")
bus = &"UI"
[connection signal="visibility_changed" from="." to="." method="OnVisibilityChanged"]
[connection signal="timeout" from="typewriter_timer" to="." method="OnTypewriterTimerTimeout"]

View File

@@ -0,0 +1,46 @@
[gd_scene load_steps=10 format=3 uid="uid://cv87js42t1sty"]
[ext_resource type="FontFile" uid="uid://cx6bvqk0ghmjv" path="res://assets/fonts/urbane-rounded-medium.otf" id="1_2bkol"]
[ext_resource type="Texture2D" uid="uid://boxc677b5i605" path="res://assets/textures/dialogue/circle.png" id="2_tkpfr"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mvyo0"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_h66dw"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_2axga"]
content_margin_top = 8.0
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s6xfc"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_trdc6"]
[sub_resource type="ButtonGroup" id="ButtonGroup_y8j7j"]
resource_local_to_scene = false
resource_name = "answer_buttons"
[sub_resource type="GDScript" id="GDScript_nhv51"]
resource_name = "button"
script/source = "extends Button
func _process(_delta):
if(is_hovered()): grab_focus()
"
[node name="answer_button" type="Button"]
custom_minimum_size = Vector2(100, 32)
theme_override_colors/icon_normal_color = Color(0, 0, 0, 0)
theme_override_colors/icon_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/icon_hover_color = Color(1, 1, 1, 1)
theme_override_colors/icon_hover_pressed_color = Color(1, 1, 1, 1)
theme_override_colors/icon_focus_color = Color(1, 1, 1, 1)
theme_override_colors/icon_disabled_color = Color(1, 1, 1, 0)
theme_override_fonts/font = ExtResource("1_2bkol")
theme_override_font_sizes/font_size = 36
theme_override_styles/normal = SubResource("StyleBoxEmpty_mvyo0")
theme_override_styles/hover = SubResource("StyleBoxEmpty_h66dw")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_2axga")
theme_override_styles/disabled = SubResource("StyleBoxEmpty_s6xfc")
theme_override_styles/focus = SubResource("StyleBoxEmpty_trdc6")
button_group = SubResource("ButtonGroup_y8j7j")
icon = ExtResource("2_tkpfr")
alignment = 0
script = SubResource("GDScript_nhv51")

View File

@@ -1,19 +0,0 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://assets/textures/debugitem_one64.png" type="Texture" id=1]
[sub_resource type="CircleShape2D" id=1]
radius = 31.0
[node name="debug_tile_one" type="Node2D"]
[node name="RigidBody2D" type="RigidBody2D" parent="."]
gravity_scale = 0.0
[node name="Sprite" type="Sprite" parent="RigidBody2D"]
texture = ExtResource( 1 )
centered = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
position = Vector2( 31, 34 )
shape = SubResource( 1 )

View File

@@ -1,16 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://scenes/maps/tilemaps/world.tscn" type="PackedScene" id=1]
[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/main.cs" type="Script" id=3]
[node name="Main" type="Node2D"]
position = Vector2( 4, 0 )
scale = Vector2( 1, 1.00619 )
script = ExtResource( 3 )
[node name="World" parent="." instance=ExtResource( 1 )]
tile_data = PoolIntArray( -196612, 0, 0, -196611, 0, 1, -196610, 0, 1, -196609, 0, 1, -262144, 0, 1, -262143, 0, 1, -262142, 0, 1, -262141, 0, 2, -131076, 0, 65536, -131075, 0, 65537, -131074, 0, 131073, -131073, 0, 131073, -196608, 0, 131073, -196607, 0, 131073, -196606, 0, 65537, -196605, 0, 65538, -65540, 0, 65536, -65539, 0, 65538, -131070, 0, 65536, -131069, 0, 65538, -4, 0, 65536, -3, 0, 65537, -2, 0, 1, -1, 0, 1, -65536, 0, 1, -65535, 0, 1, -65534, 0, 65537, -65533, 0, 65538, 65532, 0, 65536, 65533, 0, 65537, 65534, 0, 65537, 65535, 0, 65537, 0, 0, 65537, 1, 0, 65537, 2, 0, 65537, 3, 0, 65538, 131068, 0, 65536, 131069, 0, 65537, 131070, 0, 65537, 131071, 0, 65537, 65536, 0, 65537, 65537, 0, 65537, 65538, 0, 65537, 65539, 0, 65538, 196604, 0, 131072, 196605, 0, 131073, 196606, 0, 131073, 196607, 0, 131073, 131072, 0, 131073, 131073, 0, 131073, 131074, 0, 131073, 131075, 0, 131074 )
[node name="Player" parent="." instance=ExtResource( 2 )]
speed = 600

View File

@@ -1,19 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://tilesets/Background.tres" type="TileSet" id=1]
[ext_resource path="res://tilesets/foreground_test.tres" type="TileSet" id=2]
[ext_resource path="res://src/tilemap_foreground.cs" type="Script" id=3]
[node name="World" type="TileMap"]
tile_set = ExtResource( 1 )
cell_size = Vector2( 512, 512 )
cell_quadrant_size = 128
format = 1
tile_data = PoolIntArray( -196612, 0, 0, -196611, 0, 1, -196610, 0, 1, -196609, 0, 1, -262144, 0, 1, -262143, 0, 1, -262142, 0, 1, -262141, 0, 2, -131076, 0, 65536, -131075, 0, 65537, -131074, 0, 131073, -131073, 0, 131073, -196608, 0, 131073, -196607, 0, 131073, -196606, 0, 65537, -196605, 0, 65538, -65540, 0, 65536, -65539, 0, 65538, -131070, 0, 65536, -131069, 0, 65538, -4, 0, 65536, -3, 0, 65537, -2, 0, 1, -1, 0, 1, -65536, 536870912, 1, -65535, 0, 1, -65534, 0, 65537, -65533, 0, 65538, 65532, 0, 65536, 65533, 0, 65537, 65534, 0, 65537, 65535, 0, 65537, 0, 0, 65537, 1, 0, 65537, 2, 0, 65537, 3, 0, 65538, 131068, 0, 65536, 131069, 0, 65537, 131070, 0, 65537, 131071, 0, 65537, 65536, 0, 65537, 65537, 0, 65537, 65538, 0, 65537, 65539, 0, 65538, 196604, 0, 131072, 196605, 0, 131073, 196606, 0, 131073, 196607, 0, 131073, 131072, 0, 131073, 131073, 0, 131073, 131074, 0, 131073, 131075, 0, 131074 )
[node name="Foreground" type="TileMap" parent="."]
tile_set = ExtResource( 2 )
format = 1
tile_data = PoolIntArray( -1900525, 1, 0, -1769494, 0, 0, -1769493, 0, 0, -1834990, 1, 0, -1834989, 1, 0, -1834986, 1, 0, -1834980, 1, 0, -1703959, 0, 0, -1703958, 0, 0, -1703957, 0, 0, -1703956, 0, 0, -1769454, 1, 0, -1769453, 1, 0, -1769452, 1, 0, -1769450, 1, 0, -1638426, 0, 0, -1638425, 0, 0, -1638424, 0, 0, -1638423, 0, 0, -1638420, 0, 0, -1703919, 1, 0, -1703918, 1, 0, -1703916, 1, 0, -1703915, 1, 0, -1703914, 1, 0, -1703909, 1, 0, -1572891, 0, 0, -1572890, 0, 0, -1572888, 0, 0, -1572884, 0, 0, -1638379, 1, 0, -1638373, 1, 0, -1507355, 0, 0, -1507349, 0, 0, -1507348, 0, 0, -1572843, 1, 0, -1572838, 1, 0, -1572837, 1, 0, -1441819, 0, 0, -1441814, 0, 0, -1441813, 0, 0, -1507302, 1, 0, -1376283, 0, 0, -1376282, 0, 0, -1376278, 0, 0, -1441789, 1, 0, -1441788, 1, 0, -1441787, 1, 0, -1441786, 1, 0, -1441785, 1, 0, -1441784, 1, 0, -1310746, 0, 0, -1310745, 0, 0, -1310743, 0, 0, -1310742, 0, 0, -1376251, 1, 0, -1376250, 1, 0, -1376249, 1, 0, -1245209, 0, 0, -1245208, 0, 0, -1245207, 0, 0, -1310715, 1, 0, -1310714, 1, 0, -1245179, 1, 0, -458775, 0, 0, -393239, 0, 0, -393235, 0, 0, -327708, 0, 0, -327707, 0, 0, -327700, 0, 0, -327699, 0, 0, -262168, 0, 0, -262167, 0, 0, -262165, 0, 0, -262164, 0, 0, -196633, 0, 0, -196632, 0, 0, -196631, 0, 0, -196615, 1, 0, -196614, 1, 0, -196611, 1, 0, -196610, 1, 0, -131097, 0, 0, -131096, 0, 0, -131095, 0, 0, -131094, 0, 0, -131079, 1, 0, -131078, 1, 0, -131075, 1, 0, -131074, 1, 0, -196595, 0, 0, -196586, 0, 0, -65561, 0, 0, -65560, 0, 0, -65559, 0, 0, -65558, 0, 0, -131059, 0, 0, -131056, 0, 0, -131055, 0, 0, -131050, 0, 0, -29, 0, 0, -28, 0, 0, -27, 0, 0, -20, 0, 0, -8, 1, 0, -1, 1, 0, -65524, 0, 0, -65520, 0, 0, 65507, 0, 0, 65511, 0, 0, 65516, 0, 0, 65517, 0, 0, 65528, 1, 0, 65529, 1, 0, 65534, 1, 0, 65535, 1, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 21, 0, 0, 131047, 0, 0, 131048, 0, 0, 131053, 0, 0, 131065, 1, 0, 131066, 1, 0, 131067, 1, 0, 131068, 1, 0, 131069, 1, 0, 131070, 1, 0, 65547, 0, 0, 65548, 0, 0, 65550, 0, 0, 65551, 0, 0, 65557, 0, 0, 131083, 0, 0, 131085, 0, 0, 131092, 0, 0, 262141, 1, 0, 262142, 1, 0, 262143, 1, 0, 196608, 1, 0, 196609, 1, 0, 196610, 1, 0, 196627, 0, 0, 196628, 0, 0, 327676, 1, 0, 327677, 1, 0, 327678, 0, 0, 327679, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 1, 0, 262147, 1, 0, 393193, 0, 0, 393194, 0, 0, 393212, 1, 0, 393213, 1, 0, 393214, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 0, 0, 327683, 1, 0, 327684, 1, 0, 458729, 0, 0, 458730, 0, 0, 458734, 0, 0, 458735, 0, 0, 458736, 0, 0, 458749, 1, 0, 458750, 0, 0, 458751, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 0, 0, 393220, 1, 0, 524265, 0, 0, 524266, 0, 0, 524269, 0, 0, 524270, 0, 0, 524271, 0, 0, 524272, 0, 0, 524273, 0, 0, 524285, 1, 0, 524286, 0, 0, 524287, 1, 0, 458752, 1, 0, 458753, 0, 0, 458754, 0, 0, 458756, 1, 0, 589805, 0, 0, 589806, 0, 0, 589807, 0, 0, 589808, 0, 0, 589809, 0, 0, 589821, 1, 0, 589822, 0, 0, 589823, 1, 0, 524288, 1, 0, 524289, 0, 0, 524292, 1, 0, 655342, 0, 0, 655343, 0, 0, 655344, 0, 0, 655357, 1, 0, 655358, 1, 0, 655359, 1, 0, 589824, 1, 0, 589825, 1, 0, 589827, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 0, 655363, 1, 0, 786408, 0, 0, 851943, 0, 0, 851944, 0, 0, 851951, 0, 0, 851952, 0, 0, 851962, 1, 0, 917478, 0, 0, 917479, 0, 0, 917480, 0, 0, 917486, 0, 0, 917487, 0, 0, 917488, 0, 0, 917500, 1, 0, 851983, 0, 0, 851984, 0, 0, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 851988, 0, 0, 851989, 0, 0, 851990, 0, 0, 851991, 0, 0, 851992, 0, 0, 851993, 0, 0, 851994, 0, 0, 983015, 0, 0, 983016, 0, 0, 983017, 0, 0, 983018, 0, 0, 983019, 0, 0, 983020, 0, 0, 983021, 0, 0, 983022, 0, 0, 917518, 0, 0, 917521, 0, 0, 917522, 0, 0, 917524, 0, 0, 917525, 0, 0, 917527, 0, 0, 917528, 0, 0, 917530, 0, 0, 1048552, 0, 0, 1048553, 0, 0, 1048554, 0, 0, 1048555, 0, 0, 983047, 0, 0, 983048, 0, 0, 983049, 0, 0, 983050, 0, 0, 983051, 0, 0, 983052, 0, 0, 983053, 0, 0, 983054, 0, 0, 983055, 0, 0, 983056, 0, 0, 983057, 0, 0, 983058, 0, 0, 983060, 0, 0, 983061, 0, 0, 983063, 0, 0, 983064, 0, 0, 983065, 0, 0, 983066, 0, 0, 983067, 0, 0, 1048582, 0, 0, 1048583, 0, 0, 1048584, 0, 0, 1048585, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 0, 0, 1048590, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1048594, 0, 0, 1048599, 0, 0, 1048600, 0, 0, 1048601, 0, 0, 1048602, 0, 0, 1048603, 0, 0, 1114117, 0, 0, 1114118, 0, 0, 1114120, 0, 0, 1114121, 0, 0, 1114122, 0, 0, 1114123, 0, 0, 1114124, 0, 0, 1114126, 0, 0, 1114127, 0, 0, 1179656, 0, 0, 1179657, 0, 0, 1179658, 0, 0, 1179659, 0, 0, 1179660, 0, 0 )
script = ExtResource( 3 )
array2D = PoolIntArray( )

86
scenes/overworld.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,28 +1,134 @@
[gd_scene load_steps=5 format=2]
[gd_scene load_steps=14 format=3 uid="uid://bxaheg7l4h1ip"]
[ext_resource path="res://assets/textures/banana.png" type="Texture" id=1]
[ext_resource path="res://src/player.cs" type="Script" id=2]
[ext_resource type="Script" path="res://src/scene-scripts/player.cs" id="1_qehox"]
[ext_resource type="Texture2D" uid="uid://olceowuycu8c" path="res://assets/textures/debug/dummy-player-atlas.png" id="2_yu1q5"]
[ext_resource type="PackedScene" uid="uid://bkm7365u1mm3o" path="res://scenes/gui/dialog_bubble.tscn" id="3_8f573"]
[sub_resource type="SpriteFrames" id=1]
animations = [ {
"frames": [ ExtResource( 1 ) ],
[sub_resource type="AtlasTexture" id="AtlasTexture_068kt"]
atlas = ExtResource("2_yu1q5")
region = Rect2(0, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_tubtg"]
atlas = ExtResource("2_yu1q5")
region = Rect2(59, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_ck0si"]
atlas = ExtResource("2_yu1q5")
region = Rect2(118, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_48laa"]
atlas = ExtResource("2_yu1q5")
region = Rect2(177, 0, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_dp3ld"]
atlas = ExtResource("2_yu1q5")
region = Rect2(177, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_7t6sn"]
atlas = ExtResource("2_yu1q5")
region = Rect2(0, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_w5lt5"]
atlas = ExtResource("2_yu1q5")
region = Rect2(59, 90, 59, 90)
[sub_resource type="AtlasTexture" id="AtlasTexture_0gngb"]
atlas = ExtResource("2_yu1q5")
region = Rect2(118, 90, 59, 90)
[sub_resource type="SpriteFrames" id="SpriteFrames_65gi3"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_068kt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tubtg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_068kt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ck0si")
}],
"loop": true,
"name": "default",
"name": &"move_down",
"speed": 5.0
} ]
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_48laa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dp3ld")
}],
"loop": true,
"name": &"move_side",
"speed": 4.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7t6sn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w5lt5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7t6sn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0gngb")
}],
"loop": true,
"name": &"move_up",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 19, 29 )
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_38v5o"]
radius = 7.99997
height = 54.0
[node name="Player" type="KinematicBody2D"]
script = ExtResource( 2 )
[node name="player" type="CharacterBody2D"]
process_mode = 1
script = ExtResource("1_qehox")
metadata/_edit_lock_ = true
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
frames = SubResource( 1 )
[node name="rotation_center" type="Marker2D" parent="."]
metadata/_edit_lock_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 0, 2 )
shape = SubResource( 2 )
[node name="ray_cast_2d" type="RayCast2D" parent="rotation_center"]
rotation = 3.14159
target_position = Vector2(-32, 0)
collision_mask = 2
hit_from_inside = true
collide_with_areas = true
collide_with_bodies = false
metadata/_edit_lock_ = true
[node name="Camera2D" type="Camera2D" parent="."]
current = true
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_65gi3")
animation = &"move_down"
metadata/_edit_lock_ = true
[node name="main_cam" type="Camera2D" parent="."]
process_callback = 0
position_smoothing_enabled = true
position_smoothing_speed = 3.0
drag_horizontal_enabled = true
drag_vertical_enabled = true
editor_draw_drag_margin = true
metadata/_edit_lock_ = true
[node name="cheat_cam" type="Camera2D" parent="."]
metadata/_edit_lock_ = true
[node name="audio_listener_2d" type="AudioListener2D" parent="."]
metadata/_edit_lock_ = true
[node name="dialog_bubble" parent="." instance=ExtResource("3_8f573")]
visible = false
[node name="collision_shape" type="CollisionShape2D" parent="."]
position = Vector2(0, 37)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_38v5o")

View File

@@ -0,0 +1,49 @@
[gd_scene load_steps=4 format=3 uid="uid://ct6s1gfjkciva"]
[ext_resource type="PackedScene" uid="uid://boxvq5qowh8nn" path="res://scenes/3D/3d_cube.tscn" id="1_643fx"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lxe27"]
size = Vector2(64, 64)
[sub_resource type="GDScript" id="GDScript_1h1n3"]
resource_name = "visibillity"
script/source = "extends VisibleOnScreenNotifier2D
func OnScreenEntered():
get_child(0).visible = true
pass
func OnScreenExited():
get_child(0).visible = false
pass
"
[node name="3d_cube_tile" type="Node2D"]
[node name="static_body_2d" type="StaticBody2D" parent="."]
position = Vector2(0, 1)
[node name="collision_shape_2d" type="CollisionShape2D" parent="static_body_2d"]
position = Vector2(1, -2)
shape = SubResource("RectangleShape2D_lxe27")
[node name="visible_on_screen_notifier_2d" type="VisibleOnScreenNotifier2D" parent="."]
script = SubResource("GDScript_1h1n3")
[node name="sub_viewport_container" type="SubViewportContainer" parent="visible_on_screen_notifier_2d"]
offset_left = -115.0
offset_top = -110.0
offset_right = 141.0
offset_bottom = 146.0
[node name="sub_viewport" type="SubViewport" parent="visible_on_screen_notifier_2d/sub_viewport_container"]
own_world_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(230, 230)
render_target_update_mode = 4
[node name="Node3D" parent="visible_on_screen_notifier_2d/sub_viewport_container/sub_viewport" instance=ExtResource("1_643fx")]
[connection signal="screen_entered" from="visible_on_screen_notifier_2d" to="visible_on_screen_notifier_2d" method="OnScreenEntered"]
[connection signal="screen_exited" from="visible_on_screen_notifier_2d" to="visible_on_screen_notifier_2d" method="OnScreenExited"]

18
scenes/tiles/cupcake.tscn Normal file
View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://dckxciecwjfgf"]
[ext_resource type="Texture2D" uid="uid://p5ubildre2tg" path="res://assets/textures/debug/cupcake.png" id="1_5n0fd"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pchpi"]
size = Vector2(64, 14.625)
[node name="dialogdebug_cupcake" type="StaticBody2D"]
metadata/_edit_lock_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_5n0fd")
metadata/_edit_lock_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 23)
shape = SubResource("RectangleShape2D_pchpi")
metadata/_edit_lock_ = true

View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://dk7fqaw2b3w1k"]
[ext_resource type="Texture2D" uid="uid://diwxy1fl5m02y" path="res://assets/textures/debug/debugitem_one64.png" id="1_2m632"]
[sub_resource type="CircleShape2D" id="CircleShape2D_qgi6t"]
radius = 33.1361
[node name="rigid_body_2d" type="RigidBody2D"]
collision_layer = 2
collision_mask = 3
gravity_scale = 0.0
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, -4)
texture = ExtResource("1_2m632")
[node name="collision_shape_2d" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_qgi6t")

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=5 format=3 uid="uid://c4dkrtswpv8cv"]
[ext_resource type="Texture2D" uid="uid://ciidukjv5k6oa" path="res://assets/textures/debug/banana.png" id="1_7651j"]
[ext_resource type="AudioStream" uid="uid://s64cl4x57oae" path="res://assets/audios/sound_explode.wav" id="3_dnu2u"]
[sub_resource type="GDScript" id="GDScript_krkfl"]
resource_name = "sound_debug_tile"
script/source = "extends StaticBody2D
@export var soundOn = true
func _ready():
$audio_stream_player_2d.autoplay = soundOn
if(soundOn):
$audio_stream_player_2d.play()
func OnAudioFinished():
if(soundOn):
$audio_stream_player_2d.play()
"
[sub_resource type="CircleShape2D" id="CircleShape2D_2d5dy"]
radius = 30.8058
[node name="sound_debug_tile" type="StaticBody2D"]
script = SubResource("GDScript_krkfl")
soundOn = false
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_7651j")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-1, 4)
shape = SubResource("CircleShape2D_2d5dy")
[node name="audio_stream_player_2d" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_dnu2u")
max_distance = 1700.0
attenuation = 1.7
[connection signal="finished" from="audio_stream_player_2d" to="." method="OnAudioFinished"]

50
src/essential.cs Normal file
View File

@@ -0,0 +1,50 @@
using Godot;
using System;
public partial class essential : Node
{
public static string currentController = Input.GetJoyName(0);
public override void _Input(InputEvent @event)
{
//Checks if using Keyboard or controller. It gives out the current controller and changes cursor visibillity
if (@event is InputEventKey || @event is InputEventMouseButton || @event is InputEventMouseMotion || currentController == "")
{
currentController = "PC";
Input.MouseMode = Input.MouseModeEnum.Visible;
}
if (@event is InputEventJoypadButton || @event is InputEventJoypadMotion & Input.GetVector("move_left", "move_right", "move_up", "move_down") != Vector2.Zero && currentController != Input.GetJoyName(0))
{
currentController = Input.GetJoyName(0);
Input.MouseMode = Input.MouseModeEnum.Hidden;
}
}
public override void _Process(double delta)
{
//CHANGE INPUT FOR NINTENDO CONTROLLER
InputEventJoypadButton JoyButtonA = new InputEventJoypadButton() { ButtonIndex = JoyButton.A };
InputEventJoypadButton JoyButtonB = new InputEventJoypadButton() { ButtonIndex = JoyButton.B };
if (currentController.StartsWith("Nintendo") && InputMap.ActionHasEvent("ui_accept", JoyButtonA))
{
InputMap.ActionEraseEvent("ui_accept", JoyButtonA);
InputMap.ActionEraseEvent("ui_cancel", JoyButtonB);
InputMap.ActionAddEvent("ui_accept", JoyButtonB);
InputMap.ActionAddEvent("ui_cancel", JoyButtonA);
}
else if (InputMap.ActionHasEvent("ui_accept", JoyButtonB))
{
InputMap.ActionEraseEvent("ui_accept", JoyButtonB);
InputMap.ActionEraseEvent("ui_cancel", JoyButtonA);
InputMap.ActionAddEvent("ui_accept", JoyButtonA);
InputMap.ActionAddEvent("ui_cancel", JoyButtonB);
}
//FULLSCREEN HOTKEY
if (Input.IsActionJustPressed("hotkey_fullscreen"))
{
if (DisplayServer.WindowGetMode() == DisplayServer.WindowMode.Fullscreen)
DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed);
else DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen);
}
}
}

View File

@@ -1,19 +0,0 @@
using Godot;
using System;
public class main : Node2D
{
public override void _Ready()
{
}
public override void _Process(float delta)
{
if (Input.IsActionJustReleased("fullscreen"))
{
OS.WindowFullscreen = !OS.WindowFullscreen;
}
}
}

View File

@@ -1,45 +0,0 @@
using Godot;
using System;
public class player : KinematicBody2D
{
[Export]
public int speed = 400;
public override void _PhysicsProcess(float delta)
{
MoveAndCollide(new Vector2
(
Input.GetActionStrength("move_right")
- Input.GetActionStrength("move_left"),
Input.GetActionStrength("move_down")
- Input.GetActionStrength("move_up")
).LimitLength(1)
* speed * delta
);
}
public override void _Process(float delta)
{
//debug the grid
int currentCellID = 1;
var tilemap = GetNode<TileMap>("/root/Main/World/Foreground");
Vector2 coordinates = tilemap.WorldToMap(Position);
if (Input.IsActionJustReleased("debug"))
{
GD.Print("All Number 1 tiles: " + tilemap.GetUsedCellsById(1));
GD.Print("Player coordinate: " + coordinates);
}
if (Input.IsKeyPressed((int)KeyList.F1))
{
tilemap.SetCell((int)coordinates.x, (int)coordinates.y, -1);
}
if (Input.IsKeyPressed((int)KeyList.F2))
{
if(tilemap.GetCell((int)coordinates.x, (int)coordinates.y) == -1)
{
tilemap.SetCell((int)coordinates.x, (int)coordinates.y, currentCellID); //place offset coordinates += offset = build coordinates
}
}
}
}

19
src/player_variables.cs Normal file
View File

@@ -0,0 +1,19 @@
using Godot;
using System;
using System.Text.RegularExpressions;
public partial class player_variables : Node
{
private static string _playername = "Yannik";
public static string PlayerName
{
get { return _playername; }
set
{
_playername = Regex.Replace(value, @"\[[^]]+\]", "");
_playername = Regex.Replace(_playername, @"<[^>]*>", "");
if (PlayerName.Length > 12)
_playername = PlayerName.Substring(0, 12);
}
}
}

View File

@@ -0,0 +1,11 @@
{
"help": " [command] - Shows help or help for a specific command",
"consoleclear": " - Clears the console",
"speed": " <multiplier number> - Multiplies the player speed by the given value",
"noclip": " - Toggles the player collision and lets you walk through walls and world barriers",
"stickycamera": " - Toggles the camera mode. Stickycamera follows the player without limits and extra animation",
"playername": " <new name> - Renames the player",
"closedialogue": " - Closes the current dialogue box",
"reload": " - Reloads the current level (for softlocks or other issues)",
"visiblecollision": " - Toggles if collision shapes hitboxes and hitmarkers are visible. Use 'reload' to see changes!"
}

View File

@@ -0,0 +1,153 @@
using Godot;
using Godot.Collections;
public partial class console : PopupPanel
{
private string[] gamepadCheatcode = { "ui_up", "ui_up", "ui_down", "ui_down", "ui_left", "ui_right", "ui_left", "ui_right", "ui_cancel", "ui_accept", "cheat_start" };
private int gpCcIndexer = 0;
private InputEvent inputEvent;
private static RichTextLabel textblock;
private LineEdit line;
private Dictionary commandDict;
private string error = "Not found! :(";
//functions with capital letters can't be used inside the console
public override void _Ready()
{
Visible = false;
textblock = GetNode<RichTextLabel>("v_box_container/rich_text_label");
line = GetNode<LineEdit>("v_box_container/line_edit");
commandDict = Json.ParseString(FileAccess.GetFileAsString("res://src/scene-scripts/console/commands.json").ToString()).AsGodotDictionary();
}
public override void _Process(double delta)
{
//Cheatcode
if (Input.IsActionJustPressed(gamepadCheatcode[gpCcIndexer]))
{
gpCcIndexer++;
GetNode<Timer>("cheatcode_timer").Start();
if (gpCcIndexer == gamepadCheatcode.Length)
{
gpCcIndexer = 0;
ToggleVisible();
}
}
if (Input.IsActionJustPressed("ui_cancel"))
Visible = false;
//Normal keyboard hotkey
if (Input.IsActionJustPressed("console"))
ToggleVisible();
//OS console
/*if (OS.ReadStringFromStdIn() != "") //not tested yet
OnLineEditTextSubmitted(OS.ReadStringFromStdIn());*/
}
private void ToggleVisible()
{
Visible = !Visible;
player.allowMovement = !Visible;
line.GrabFocus();
}
private void OnPopupHide() { if (dialog_bubble.isTalking == false) player.allowMovement = true; }
private void OnLineEditTextSubmitted(string command)
{
line.Clear();
//repeat user input to console
if (command.Length != 0) Print(player_variables.PlayerName + " > " + command);
//splits command into arguments and uses the right call functions for the given amount of split string arguments by the user
Variant args;
if (command.Split(' ').Length == 2 && commandDict.ContainsKey(command.Split(' ')[0].ToLower()))
{
int i = command.IndexOf(" ") + 1;
args = command.Substring(i);
commandDict.ContainsKey(command.Split(' ')[0].ToLower());
Call(command.Split(' ')[0].ToLower(), args);
}
else if (command.Split(' ').Length > 2 && commandDict.ContainsKey(command.Split(' ')[0].ToLower()))
{
int i = command.IndexOf(" ") + 1;
args = command.Substring(i).Split(' ');
commandDict.ContainsKey(command.Split(' ')[0].ToLower());
Callv(command.Split(' ')[0].ToLower(), args.AsGodotArray());
}
else if (commandDict.ContainsKey(command.ToLower()))
{
Call(command.ToLower());
}
else if (command.Length != 0) Print(error);
}
public static void Print(string text)
{
GD.Print(text);
textblock.AddText(text + "\n");
}
private void help()
{
Print("==================================== Help ====================================");
for (int i = 0; i < commandDict.Count; i++)
{
Print((i + 1) + ". " + Json.ParseString(commandDict.Keys.ToString()).AsStringArray()[i]
+ Json.ParseString(commandDict.Values.ToString()).AsStringArray()[i]);
}
}
private void help(string key) //Optional parameters aren't optional in Call()/Callv() so i use overloads instead
{
key = key.ToLower();
if (key.Length != 0 && commandDict.ContainsKey(key))
{
Print(key);
Print(commandDict[key].ToString());
}
else
{
Print(error);
help("help");
};
}
private void consoleclear() => textblock.Clear();
private void speed(float multiplier)
{
player.speed = Mathf.Clamp(multiplier, 0.01f, 15f);
Print("Set player speed to " + Mathf.Clamp(multiplier, 0.01f, 15f));
}
private void noclip()
{
try { Print(player.CollisionToggle()); }
catch
{
Print("Player is not accessable");
help("noclip");
}
}
private void stickycamera()
{
try { Print(player.CheatCam()); }
catch
{
Print("Player is not accessable");
help("stickycamera");
}
}
private void playername(string name)
{
player_variables.PlayerName = name;
Print("Your new name is now: " + player_variables.PlayerName);
}
private void closedialogue()
{
dialog_bubble.forceClose = true;
Print("Dialogue got closed!");
}
private void reload()
{
GetTree().ReloadCurrentScene();
Print("Level got reloaded!");
}
private void visiblecollision()
{
GetTree().DebugCollisionsHint = !GetTree().DebugCollisionsHint;
Print("Visible collision shapes and hitmarker now set to: " + GetTree().DebugCollisionsHint + "Use 'reload' to see changes!");
}
}

View File

@@ -0,0 +1,171 @@
using Godot;
using System.Text.RegularExpressions;
public partial class dialog_bubble : CanvasLayer
{
public Variant parsedDlg;
public Variant dlgLines;
public int dlgPointer = 0;
public RichTextLabel richText;
public Timer typewriterTimer;
public string title;
public Area2D triggerArea;
public static bool forceClose;
public static bool isTalking;
/*TODO:
- Dont repeat the same randomized dialogue after you get asked do you need something "else"
- add tree support (example: "story" key)
- ability to add dialogue begin answers on the fly (special ones are colored)
they will be in a dictionary with event IDs or Dictionary keys it also needs an array wich ones are active
-strings like in the "goodbye" key should be randomized without the array brackets so they are only needed for multiline texts
-answers should work more like dialogue for tree support*/
public override void _Ready()
{
richText = GetNode<RichTextLabel>("box/rich_text_label");
typewriterTimer = GetNode<Timer>("typewriter_timer");
}
public void GetDialog(string file, Area2D actor)
{
console.Print("Loaded dialogue from: " + file + "\nClose dialogue with 'closedialogue'");
triggerArea = actor;
title = actor.Get("title").AsString();
bool introducedVillager = actor.Get("introducedVillager").AsBool();
parsedDlg = Json.ParseString(FileAccess.Open(file, FileAccess.ModeFlags.Read).GetAsText()
.Replace("{player}", "[color=cyan]" + player_variables.PlayerName + "[/color]").Replace("{title}", "[color=purple]" + title + "[/color]"));
if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() != "villager" || introducedVillager)
GetNode<Label>("box/name_label").Text = title;
player.allowMovement = false;
//Get first key
if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() == "villager")
if (introducedVillager)
GatherDialog("welcome");
else
GatherDialog("intro");
else if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() == "message")
GatherDialog("message");
Visible = true;
isTalking = true;
}
public void GatherDialog(string key)
{
dlgPointer = 0;
dlgLines = parsedDlg.AsGodotDictionary()[key].AsGodotArray();
dlgLines = dlgLines.AsGodotArray()[GD.RandRange(0, dlgLines.AsGodotArray().Count - 1)];
//TODO:copy a clean default array and remove already used indexes and copy from clean array when its empty
}
public void OnVisibilityChanged()
{
if (Visible)
ProcessMode = ProcessModeEnum.Inherit;
else ProcessMode = ProcessModeEnum.Disabled;
}
public override void _Process(double delta)
{
DialogControlls();
AnswerBoxControlls();
}
public void DialogControlls()
{
if (Input.IsActionJustPressed("ui_cancel")) richText.VisibleCharacters = richText.Text.Length;
if (Input.IsActionJustPressed("ui_accept") && GetNode<console>("/root/Console").Visible == false && GetNode<PanelContainer>("box/panel_container").Visible == false
&& richText.VisibleCharacters == -1 | Regex.Replace(richText.Text, @"\[[^]]+\]", "").Length <= richText.VisibleCharacters)
{
if (dlgPointer < dlgLines.AsGodotArray().Count)
{
//read and write the dialogue
if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Float)
InDialogEvents((int)dlgLines.AsGodotArray()[dlgPointer]);
else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.String && !dlgLines.AsGodotArray()[dlgPointer].AsString().StartsWith("<goto:>"))
UpdateDialog();
else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.String && dlgLines.AsGodotArray()[dlgPointer].AsString().StartsWith("<goto:>"))
{
GatherDialog(dlgLines.AsGodotArray()[dlgPointer].AsString().Replace("<goto:>", ""));
UpdateDialog();
}
else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Dictionary)
MakeAnswerBox(Json.ParseString(dlgLines.AsGodotArray()[dlgPointer].AsGodotDictionary().Keys.ToString()).AsStringArray());
}
dlgPointer++;
}
if (dlgPointer > dlgLines.AsGodotArray().Count || forceClose)
CloseDialog();
}
public void UpdateDialog()
{
richText.Text = dlgLines.AsGodotArray()[dlgPointer].ToString();
richText.VisibleCharacters = 0;
typewriterTimer.Start();
}
public void OnTypewriterTimerTimeout()
{
if (richText.VisibleCharacters < Regex.Replace(richText.Text, @"\[[^]]+\]", "").Length)
{
richText.VisibleCharacters++;
GetNode<AudioStreamPlayer>("typewriter_audio_stream").Play();
}
else typewriterTimer.Stop();
}
public void MakeAnswerBox(string[] dialogOptions)
{
var parent = GetNode("box/panel_container/margin_container");
if (parent.GetChildCount() == 1) parent.GetChild(0).Free();
parent.AddChild(new VBoxContainer());
parent = parent.GetChild(0);
for (int i = 0; parent.GetChildCount() < dialogOptions.Length; i++)
{
parent.AddChild(GD.Load<PackedScene>("res://scenes/gui/dlg_answer_button.tscn").Instantiate());
if (dialogOptions[i].StartsWith("<!>")) parent.GetChild<Button>(i).Disabled = true;
parent.GetChild<Button>(i).Text = dialogOptions[i].Replace("<!>", "");
}
GetNode<PanelContainer>("box/panel_container").Visible = true;
parent.GetChild<Button>(0).GrabFocus();
}
public void AnswerBoxControlls()
{
if (GetNode<PanelContainer>("box/panel_container").Visible == true
&& GetNode("box/panel_container/margin_container").GetChild(0).GetChild<Button>(0).ButtonGroup.GetPressedButton() != null)
{
GetNode<AudioStreamPlayer>("answerbtn_audio_stream").Play(); //BUG: dialogue box breaks while game console is open.
var answer = dlgLines.AsGodotArray()[dlgPointer - 1].AsGodotDictionary()[GetNode<Button>(GetNode("box/panel_container/margin_container")
.GetChild(0).GetChild<Button>(0).ButtonGroup.GetPressedButton().GetPath()).Text];
GetNode<PanelContainer>("box/panel_container").Visible = false;
if (answer.VariantType == Variant.Type.String && answer.AsString().StartsWith("<goto:>"))
{
GatherDialog(answer.AsString().Replace("<goto:>", ""));
UpdateDialog();
}
dlgPointer++;
}
}
public void InDialogEvents(int eventID)
{
switch (eventID)
{
case 0:
GetNode<Label>("box/name_label").Text = title;
triggerArea.Set("introducedVillager", true);
GatherDialog("begindialog");
UpdateDialog();
break;
}
}
public void CloseDialog()
{
Visible = false;
dlgPointer = 0;
richText.VisibleCharacters = -1;
GetNode<Label>("box/name_label").Text = "???";
richText.Text = "";
if (GetParent().Name == "player") player.allowMovement = true;
isTalking = false;
forceClose = false;
}
}

106
src/scene-scripts/player.cs Normal file
View File

@@ -0,0 +1,106 @@
using Godot;
using System;
using System.Text.RegularExpressions;
public partial class player : CharacterBody2D
{
[Export] public static float speed = 1;
public static bool allowMovement = true;
public Vector2 movement;
public AnimatedSprite2D animatedSprite;
public Marker2D rotCenter;
public RayCast2D dialogRayCast;
//console cheats:
private static Camera2D cheatCam;
private static Camera2D mainCam;
private static CollisionShape2D collision;
public override void _Ready()
{
animatedSprite = GetNode<AnimatedSprite2D>("animated_sprite_2d");
rotCenter = GetNode<Marker2D>("rotation_center");
dialogRayCast = GetNode<RayCast2D>("rotation_center/ray_cast_2d");
cheatCam = GetNode<Camera2D>("cheat_cam");
mainCam = GetNode<Camera2D>("main_cam");
collision = GetNode<CollisionShape2D>("collision_shape");
}
public override void _PhysicsProcess(double delta)
{
if (allowMovement)
movement = Input.GetVector("move_left", "move_right", "move_up", "move_down");
else movement = Vector2.Zero;
if (Math.Round(movement.Length(), 0) != 0) rotCenter.Rotation = new Vector2((float)Math.Round(movement.X, 0), (float)Math.Round(movement.Y, 0)).Angle();
MoveAndCollide(movement * speed * 200 * (float)delta);
}
public override void _Process(double delta)
{
if (Input.IsActionJustPressed("ui_accept") && dialogRayCast.IsColliding() && allowMovement)
GetNode<dialog_bubble>("dialog_bubble").GetDialog(dialogRayCast.GetCollider().Get("file").AsString(), (Area2D)dialogRayCast.GetCollider());
//animation system (with controller support wich cant get normalized vector)
if (allowMovement == false)
{
animatedSprite.Stop();
animatedSprite.Frame = 0;
}
if (movement.Length() != 0)
animatedSprite.Play();
else
{
animatedSprite.Frame = 0;
animatedSprite.Stop();
}
if (Math.Round(movement.X, 0) != 0)
{
animatedSprite.Animation = "move_side";
animatedSprite.FlipH = movement.X < 0.5;
animatedSprite.SpeedScale = Math.Abs(movement.X * speed * 1.3f);
}
else if (Math.Round(movement.Y, 0) != 0)
{
if (movement.Y > 0.05) animatedSprite.Animation = "move_down";
if (movement.Y < 0.05) animatedSprite.Animation = "move_up";
animatedSprite.FlipH = false;
animatedSprite.SpeedScale = Math.Abs(movement.Y * speed * 1.3f);
}
}
public int BeginDialogue(int i)
{
return 0;
}
public void OnAnimationChanged()
{
if (animatedSprite.Animation == "move_side")
{
//GetNode<CollisionShape2D>("collision_shape").Shape
}
else
{
}
}
//CONSOLE CHEATS
public static string CheatCam()
{
if (mainCam.Enabled)
{
cheatCam.Enabled = true;
mainCam.Enabled = false;
return "cheat_cam has been enabled\n";
}
else
{
cheatCam.Enabled = false;
mainCam.Enabled = true;
return "cheat_cam has been disabled\n";
}
}
public static string CollisionToggle()
{
collision.Disabled = !collision.Disabled;
return ("Noclip is now set to: " + collision.Disabled + "\n");
}
}

View File

@@ -1,27 +0,0 @@
using Godot;
using System;
using System.Linq;
public class tilemap_foreground : TileMap
{
public override void _Process(float delta)
{
ReplaceStaticTiles(1, "debug_tile_one");
}
public void ReplaceStaticTiles(int CellID, string sceneName)
{
Vector2[] allCells = GetUsedCellsById(CellID).OfType<Vector2>().ToArray();
for(int i = 0; i < allCells.Length; i++)
{
GD.Print(allCells[i]);
SetCell((int)allCells[i].x, (int)allCells[i].y, -1);
var scene = GD.Load<PackedScene>("res://scenes/interactable_tiles/" + sceneName + ".tscn");
var instance = scene.Instance();
AddChild(instance);
var node = GetNode<Node2D>(instance.GetPath());
node.Position = allCells[i] * CellSize; //node has to be Node2D and can't be centered
GD.Print(node);
}
}
}

26
theme/main_theme.tres Normal file
View File

@@ -0,0 +1,26 @@
[gd_resource type="Theme" load_steps=3 format=3 uid="uid://drfpgi5fnigok"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4bp5o"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fdtmb"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.13125, 0.15, 0.18125, 1)
border_color = Color(0.084, 0.096, 0.116, 1)
corner_radius_top_left = 3
corner_radius_top_right = 3
corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
corner_detail = 3
anti_aliasing = false
[resource]
RichTextLabel/colors/default_color = Color(0.8025, 0.81, 0.8225, 1)
RichTextLabel/colors/font_shadow_color = Color(0, 0, 0, 0)
RichTextLabel/constants/shadow_offset_x = 1
RichTextLabel/constants/shadow_offset_y = 1
RichTextLabel/constants/shadow_outline_size = 1
RichTextLabel/styles/focus = SubResource("StyleBoxEmpty_4bp5o")
RichTextLabel/styles/normal = SubResource("StyleBoxFlat_fdtmb")

View File

@@ -1,137 +0,0 @@
[gd_resource type="TileSet" load_steps=14 format=2]
[ext_resource path="res://assets/textures/test_background_tileset.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 512, 512, 448, 512, 448, 0, 512, 0 )
[sub_resource type="ConvexPolygonShape2D" id=3]
points = PoolVector2Array( 512, 64, 0, 64, 0, 0, 512, 0 )
[sub_resource type="ConvexPolygonShape2D" id=4]
points = PoolVector2Array( 512, 64, 0, 64, 0, 0, 512, 0 )
[sub_resource type="ConvexPolygonShape2D" id=6]
points = PoolVector2Array( 0, 0, 64, 0, 64, 512, 0, 512 )
[sub_resource type="ConvexPolygonShape2D" id=7]
points = PoolVector2Array( 64, 512, 0, 512, 0, 0, 64, 0 )
[sub_resource type="ConvexPolygonShape2D" id=8]
points = PoolVector2Array( 512, 512, 0, 512, 0, 448, 512, 448 )
[sub_resource type="ConvexPolygonShape2D" id=10]
points = PoolVector2Array( 0, 448, 512, 448, 512, 512, 0, 512 )
[sub_resource type="ConvexPolygonShape2D" id=12]
points = PoolVector2Array( 512, 512, 0, 512, 0, 448, 512, 448 )
[sub_resource type="ConvexPolygonShape2D" id=13]
points = PoolVector2Array( 512, 512, 448, 512, 448, 64, 512, 64 )
[sub_resource type="ConvexPolygonShape2D" id=14]
points = PoolVector2Array( 512, 64, 64, 64, 64, 0, 512, 0 )
[sub_resource type="ConvexPolygonShape2D" id=15]
points = PoolVector2Array( 64, 448, 0, 448, 0, 0, 64, 0 )
[sub_resource type="ConvexPolygonShape2D" id=16]
points = PoolVector2Array( 512, 448, 448, 448, 448, 0, 512, 0 )
[resource]
0/name = "test_background_tileset.png 0"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 1536, 1536 )
0/tile_mode = 1
0/autotile/bitmask_mode = 0
0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 256, Vector2( 0, 1 ), 260, Vector2( 0, 2 ), 4, Vector2( 1, 0 ), 320, Vector2( 1, 1 ), 325, Vector2( 1, 2 ), 5, Vector2( 2, 0 ), 64, Vector2( 2, 1 ), 65, Vector2( 2, 2 ), 1 ]
0/autotile/icon_coordinate = Vector2( 1, 1 )
0/autotile/tile_size = Vector2( 512, 512 )
0/autotile/spacing = 0
0/autotile/occluder_map = [ ]
0/autotile/navpoly_map = [ ]
0/autotile/priority_map = [ Vector3( 0, 0, 9 ), Vector3( 0, 1, 6 ), Vector3( 0, 2, 3 ), Vector3( 1, 0, 8 ), Vector3( 1, 1, 5 ), Vector3( 1, 2, 2 ), Vector3( 2, 0, 7 ), Vector3( 2, 1, 4 ) ]
0/autotile/z_index_map = [ ]
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape = SubResource( 1 )
0/shape_one_way = false
0/shape_one_way_margin = 1.0
0/shapes = [ {
"autotile_coord": Vector2( 2, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 3 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 1, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 4 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 6 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 1 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 7 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 1, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 8 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 10 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 12 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 13 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 14 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 0, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 15 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 2, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 16 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
0/z_index = 0

View File

@@ -1,54 +0,0 @@
[gd_resource type="TileSet" load_steps=7 format=2]
[ext_resource path="res://assets/textures/cupcake.png" type="Texture" id=1]
[ext_resource path="res://assets/textures/debugitem_one64.png" type="Texture" id=2]
[sub_resource type="NavigationPolygon" id=1]
vertices = PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ) ]
outlines = [ PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 ) ]
[sub_resource type="OccluderPolygon2D" id=2]
polygon = PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 )
[sub_resource type="NavigationPolygon" id=6]
vertices = PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ) ]
outlines = [ PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 ) ]
[sub_resource type="OccluderPolygon2D" id=7]
polygon = PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 )
[resource]
0/name = "cupcake.png 0"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 64, 64 )
0/tile_mode = 0
0/occluder_offset = Vector2( 0, 0 )
0/occluder = SubResource( 2 )
0/navigation_offset = Vector2( 0, 0 )
0/navigation = SubResource( 1 )
0/shape_offset = Vector2( 0, 0 )
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
0/shape_one_way = false
0/shape_one_way_margin = 0.0
0/shapes = [ ]
0/z_index = 0
1/name = "debugitem_one64.png 1"
1/texture = ExtResource( 2 )
1/tex_offset = Vector2( 0, 0 )
1/modulate = Color( 1, 1, 1, 1 )
1/region = Rect2( 0, 0, 64, 64 )
1/tile_mode = 0
1/occluder_offset = Vector2( 0, 0 )
1/occluder = SubResource( 7 )
1/navigation_offset = Vector2( 0, 0 )
1/navigation = SubResource( 6 )
1/shape_offset = Vector2( 0, 0 )
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
1/shape_one_way = false
1/shape_one_way_margin = 0.0
1/shapes = [ ]
1/z_index = 0

View File

@@ -0,0 +1,36 @@
[gd_resource type="TileSet" load_steps=11 format=3 uid="uid://dcg1tdmkkx22p"]
[ext_resource type="PackedScene" uid="uid://dk7fqaw2b3w1k" path="res://scenes/tiles/first_debug_tile.tscn" id="1_uxmn6"]
[ext_resource type="PackedScene" uid="uid://dckxciecwjfgf" path="res://scenes/tiles/cupcake.tscn" id="2_v4037"]
[ext_resource type="PackedScene" uid="uid://c4dkrtswpv8cv" path="res://scenes/tiles/sound_debug_tile.tscn" id="3_lf2fs"]
[ext_resource type="Texture2D" uid="uid://d3l4uomk1gw8c" path="res://assets/textures/debug/grass_tile.png" id="4_k7c1q"]
[ext_resource type="PackedScene" uid="uid://ct6s1gfjkciva" path="res://scenes/tiles/3d_cube_tile.tscn" id="5_x3uol"]
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_lcrun"]
resource_name = "test"
scenes/0/scene = ExtResource("1_uxmn6")
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_eskkr"]
resource_name = "cupcake"
scenes/2/scene = ExtResource("2_v4037")
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_xtxu0"]
resource_name = "sounddebug"
scenes/1/scene = ExtResource("3_lf2fs")
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_na45g"]
texture = ExtResource("4_k7c1q")
texture_region_size = Vector2i(64, 64)
0:0/0 = 0
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_loadc"]
resource_name = "3d cube"
scenes/1/scene = ExtResource("5_x3uol")
[resource]
tile_size = Vector2i(64, 64)
sources/0 = SubResource("TileSetScenesCollectionSource_lcrun")
sources/1 = SubResource("TileSetScenesCollectionSource_eskkr")
sources/2 = SubResource("TileSetScenesCollectionSource_xtxu0")
sources/3 = SubResource("TileSetAtlasSource_na45g")
sources/4 = SubResource("TileSetScenesCollectionSource_loadc")