Compare commits
250 Commits
Author | SHA1 | Date | |
---|---|---|---|
63312425e9 | |||
fbacee48f0 | |||
35d61c4169 | |||
|
6e3cebb653 | ||
|
1b1c72e86a | ||
|
20d1ade391 | ||
|
f985225515 | ||
|
9c45bd7f69 | ||
|
e279f80793 | ||
|
4bdd594045 | ||
|
9140220ef1 | ||
|
4c58781fb6 | ||
|
15b938e0a0 | ||
f149fa7c53 | |||
7bff319b39 | |||
86ffc9682b | |||
d05cbb2260 | |||
8208919dd2 | |||
6fedaad0b3 | |||
57f1bd959e | |||
6c71aa302c | |||
ca77ad3fc1 | |||
33c8c127e7 | |||
e9241eff46 | |||
b79884e5d2 | |||
a8409c76ad | |||
3ecd50fc45 | |||
fbe731136f | |||
9734d53d62 | |||
7cbf5c634d | |||
fc84f8889f | |||
86d6563975 | |||
a94ee84718 | |||
a118a259c9 | |||
4318ba1982 | |||
4f58350f83 | |||
ee9d33f6ec | |||
b93207ba23 | |||
d9576d76cc | |||
edfa2b715c | |||
1d03dc06a8 | |||
2bb5b069fd | |||
b2d0db4360 | |||
19f8972c1d | |||
cfd9f3dec8 | |||
c5fe7cfd3b | |||
721c538b68 | |||
db6cb15d1a | |||
43139e54af | |||
851a9fa99c | |||
294abe6b6f | |||
8132530da3 | |||
2c7a696821 | |||
fef7db9b7a | |||
cc25674987 | |||
fb6f079895 | |||
bfadb4bf13 | |||
6c8433a0e0 | |||
97465bf600 | |||
4979c70852 | |||
4e0ec4994f | |||
08b306f827 | |||
a7932ce12b | |||
ca1957d618 | |||
43bbd5d032 | |||
f0f484268b | |||
9d9d37e173 | |||
bed09ceace | |||
4895a72509 | |||
cfe3a82cad | |||
14c9458805 | |||
6e8dcba561 | |||
6e7c6b94f4 | |||
ef36f97ef6 | |||
e60c916ab0 | |||
da44882f06 | |||
9c135cc6e5 | |||
9c95c2d7b7 | |||
e584ee67c1 | |||
549968d3ba | |||
c5e1887fb4 | |||
a7c1cb845a | |||
f167b80906 | |||
98a55ef02d | |||
c47ed9715e | |||
21c20bff1f | |||
4397c83b86 | |||
526dbee987 | |||
a9ccc3d49f | |||
aee94697a5 | |||
2e2716f43a | |||
fff915bb51 | |||
eaa056ce88 | |||
0be8de000a | |||
3054f08779 | |||
5217ce9bf0 | |||
47c6d08f53 | |||
953210b65f | |||
f518d4707a | |||
da37f68b4c | |||
3dbac63189 | |||
7c60e5df9f | |||
b12556f950 | |||
30c8c1c6e0 | |||
4718adb460 | |||
b0f6e48347 | |||
8ca6574384 | |||
62db62152c | |||
c470bb43de | |||
ca50d4148c | |||
0f706f782a | |||
c49a89eada | |||
e1318d657e | |||
57e8bfe4a9 | |||
f3e4300332 | |||
eee3897b85 | |||
dcd10e4a2e | |||
3dd985f0a0 | |||
85e3f05b8b | |||
bb96b09847 | |||
eb15507293 | |||
fa4701d650 | |||
0282628b5b | |||
e76c771eac | |||
70fb5690e3 | |||
da49792e20 | |||
a66cb533fb | |||
ac607fa875 | |||
c660b0f1d5 | |||
b63c08a8f9 | |||
eaaf76eab3 | |||
15407f5f06 | |||
1d363e7741 | |||
a0c95ec074 | |||
94289dfba3 | |||
4cc57adabb | |||
fe1c63c3bf | |||
cf307869d6 | |||
6ee9a3cecd | |||
f94393e883 | |||
04348e38e4 | |||
38bd6d47b9 | |||
0190b6bdb2 | |||
72421f4a32 | |||
cec3a13a66 | |||
271084a94d | |||
88b72232c6 | |||
c82f1efcca | |||
f7e21203af | |||
30bc16bf6b | |||
0b4481f5c2 | |||
d517aa5846 | |||
2be8c5a85e | |||
1a142bcc9d | |||
9fa1d5987f | |||
d204d15f4a | |||
fdd150d8ac | |||
1648171f0b | |||
bf09061c5e | |||
d119321104 | |||
2c804bb95e | |||
0e3124430b | |||
53d35083a3 | |||
ea07e94e0a | |||
547e866597 | |||
0177c9199b | |||
42265ef256 | |||
c86931a2cf | |||
e9fd520194 | |||
6e274922d9 | |||
28d31c8e90 | |||
a88a8cdac7 | |||
8826213317 | |||
077451a574 | |||
5ce5dc090e | |||
6b859002d3 | |||
5434940992 | |||
126d9eb77a | |||
ff3aad1b4a | |||
676d0d8b11 | |||
aa0d32ae85 | |||
307ccf071f | |||
5407d65c28 | |||
54d0f44960 | |||
5b61c662af | |||
6a52d487c7 | |||
9616c1f0d1 | |||
3307edef49 | |||
8cf6372d8b | |||
771b2e801e | |||
b7c72ec95f | |||
|
098bc5f879 | ||
5b9fd9229d | |||
d2ff18fee2 | |||
b43cf411cb | |||
0a90c41a23 | |||
c186097d0e | |||
559a35532c | |||
de7d239282 | |||
6c57a23f85 | |||
d3cc88ecd6 | |||
114c8045eb | |||
57cbbacc47 | |||
bb05e7a4bd | |||
183c678d69 | |||
d0f355e3e9 | |||
f62e44a4f2 | |||
0b4abc2365 | |||
29d3a7d130 | |||
c4500b09f4 | |||
f093d3c0b5 | |||
5e983a9a5f | |||
68d16fbd4f | |||
c01a20e603 | |||
f0bf7b1966 | |||
078695b02d | |||
2f57e22f06 | |||
9865198883 | |||
b719aae87d | |||
8e63ba5207 | |||
0e6a8e660f | |||
a8d98142f9 | |||
43a7ddbf76 | |||
67d2f5ca59 | |||
f4e57aaaa5 | |||
dbb515ac49 | |||
848c76b223 | |||
87a91c1dc6 | |||
e9cb52fa3c | |||
8fa39a2898 | |||
aa2e732a93 | |||
964722a41a | |||
ca57159c22 | |||
29b5153434 | |||
36c4797fb5 | |||
e2f883e736 | |||
67fa20c946 | |||
d2e1e536d5 | |||
7db764c459 | |||
777cb3a1b2 | |||
280ec83e8a | |||
e28be76afe | |||
a3aab2de97 | |||
fc678778b8 | |||
dbeac992bd | |||
6ac6d14a44 | |||
b491814f20 | |||
af3542b932 | |||
ed6636d806 | |||
2e97d1fec7 |
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
32
.github/workflows/godot-ci.yml
vendored
@@ -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
@@ -1,12 +1,4 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
# Godot-specific ignores
|
.godot/
|
||||||
.import/
|
|
||||||
export.cfg
|
|
||||||
export_presets.cfg
|
|
||||||
|
|
||||||
# Mono-specific ignores
|
|
||||||
.mono/
|
|
||||||
data_*/
|
|
||||||
|
|
||||||
#custom
|
#custom
|
||||||
.vs/
|
.vs/
|
||||||
|
@@ -1,2 +1,3 @@
|
|||||||
# rpg-test
|
# 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
@@ -0,0 +1,10 @@
|
|||||||
|
<Project Sdk="Godot.NET.Sdk/4.0.2">
|
||||||
|
<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
@@ -0,0 +1,10 @@
|
|||||||
|
<Project Sdk="Godot.NET.Sdk/4.0.1">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
<RootNamespace>RPGTestgd4</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="villager_normal.json" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@@ -1,6 +1,6 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2012
|
# 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
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -9,11 +9,11 @@ Global
|
|||||||
ExportRelease|Any CPU = ExportRelease|Any CPU
|
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{03530658-9683-4AB8-AC24-354105EBCCDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{03530658-9683-4AB8-AC24-354105EBCCDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||||
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||||
{03530658-9683-4AB8-AC24-354105EBCCDD}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
{27424726-AFC3-4E97-8F36-EB38E4D2768D}.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}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
@@ -1,6 +0,0 @@
|
|||||||
<Project Sdk="Godot.NET.Sdk/3.3.0">
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net472</TargetFramework>
|
|
||||||
<RootNamespace>RPGTest</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
BIN
assets/audios/sound_explode.wav
Normal file
24
assets/audios/sound_explode.wav.import
Normal 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
|
BIN
assets/audios/typewrite/default_tw.wav
Normal file
24
assets/audios/typewrite/default_tw.wav.import
Normal 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
|
BIN
assets/audios/ui/small_btn.wav
Normal file
24
assets/audios/ui/small_btn.wav.import
Normal 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
|
BIN
assets/fonts/urbane-rounded-medium.otf
Normal file
33
assets/fonts/urbane-rounded-medium.otf.import
Normal 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={}
|
3
assets/lang/en/dialogue/npcs/message_one.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"<message>": "[cuss]FUCKING HELL[/cuss]"
|
||||||
|
}
|
107
assets/lang/en/dialogue/npcs/villager_normal.json
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
"<dialogType>": "villager",
|
||||||
|
"<intro>": [
|
||||||
|
[
|
||||||
|
"Hello i'm {title}. Your name must be {player}!",
|
||||||
|
0
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"<welcome>": [
|
||||||
|
[
|
||||||
|
"Oh hello, {player}... You look great!",
|
||||||
|
"<goto:0:begindialog>"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Hey, {player}! Hope you have fun today!",
|
||||||
|
"<goto:0:begindialog>"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Hi! What's up {player}?",
|
||||||
|
"<goto:0:begindialog>"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"<begindialog>": [
|
||||||
|
[
|
||||||
|
"What can I do for you?",
|
||||||
|
{
|
||||||
|
"<eventBeginAnswers>": true,
|
||||||
|
"I just wanna talk": "<goto:0:tipp>",
|
||||||
|
"Nevermind!": "<goto:0:goodbye>"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"So what do you want?",
|
||||||
|
{
|
||||||
|
"<eventBeginAnswers>": true,
|
||||||
|
"What's up": "<goto:0:tipp>",
|
||||||
|
"Nothing": "<goto:0:goodbye>"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"<else>": [
|
||||||
|
[
|
||||||
|
"Do you need something else?",
|
||||||
|
{
|
||||||
|
"Can you tell me more?": "<goto:0:tipp>",
|
||||||
|
"No, thanks!": "<goto:0:goodbye>"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"So can i help you with something else?",
|
||||||
|
{
|
||||||
|
"Tell me a bit more": "<goto:0:tipp>",
|
||||||
|
"I'm good, thank you!": "<goto:0: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:0: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:0: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"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
4
assets/lang/en/warnings.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"cheatalert_message": "This game closed any suspicious software automatically. If this causes problems, please exit the game and contact support for help immediately.",
|
||||||
|
"cheatalert_title": "Cheat process detected in your operating system! D:<"
|
||||||
|
}
|
@@ -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
|
|
@@ -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
After Width: | Height: | Size: 1.3 KiB |
34
assets/textures/cursor.png.import
Normal 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
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
34
assets/textures/debug/banana.png.import
Normal 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/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
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
34
assets/textures/debug/cupcake.png.import
Normal 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/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
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
34
assets/textures/debug/debugitem_one64.png.import
Normal 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/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
|
BIN
assets/textures/debug/dummy-npc-atlas.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
34
assets/textures/debug/dummy-npc-atlas.png.import
Normal 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
|
BIN
assets/textures/debug/dummy-player-atlas.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
34
assets/textures/debug/dummy-player-atlas.png.import
Normal 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
|
BIN
assets/textures/debug/dummy-player-normal.png
Normal file
After Width: | Height: | Size: 552 B |
34
assets/textures/debug/dummy-player-normal.png.import
Normal 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/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
|
BIN
assets/textures/debug/grass_tile.png
Normal file
After Width: | Height: | Size: 189 B |
34
assets/textures/debug/grass_tile.png.import
Normal 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
|
@@ -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
|
|
BIN
assets/textures/dialogue/circle.png
Normal file
After Width: | Height: | Size: 301 B |
34
assets/textures/dialogue/circle.png.import
Normal 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
|
BIN
assets/textures/dialogue/dialogue_answer_ninepatch.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
@@ -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
|
BIN
assets/textures/enemies/slime_green_atlas.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
34
assets/textures/enemies/slime_green_atlas.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ca1es3hoj53wg"
|
||||||
|
path="res://.godot/imported/slime_green_atlas.png-e4460cfe974755b8ce33e1b93831e12b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/textures/enemies/slime_green_atlas.png"
|
||||||
|
dest_files=["res://.godot/imported/slime_green_atlas.png-e4460cfe974755b8ce33e1b93831e12b.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
|
Before Width: | Height: | Size: 148 KiB |
@@ -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
@@ -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"
|
@@ -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
@@ -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}\""
|
@@ -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
|
|
145
project.godot
@@ -6,80 +6,141 @@
|
|||||||
; [section] ; section goes between []
|
; [section] ; section goes between []
|
||||||
; param=value ; assign values to parameters
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
config_version=4
|
config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="RPG-Test"
|
config/name="RPG Test"
|
||||||
run/main_scene="res://scenes/maps/main.tscn"
|
run/main_scene="res://scenes/overworld.tscn"
|
||||||
|
config/features=PackedStringArray("4.0", "Forward Plus")
|
||||||
|
run/max_fps=60
|
||||||
boot_splash/show_image=false
|
boot_splash/show_image=false
|
||||||
boot_splash/bg_color=Color( 0.141176, 0.141176, 0.141176, 1 )
|
config/icon="res://assets/textures/debug/dummy-player-normal.png"
|
||||||
config/icon="res://icon.png"
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Essential="res://src/essential.cs"
|
||||||
|
PlayerVariables="*res://src/player_variables.cs"
|
||||||
|
Console="*res://scenes/gui/console.tscn"
|
||||||
|
Anticheat="*res://src/anticheat.cs"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/height=640
|
window/size/viewport_width=1844
|
||||||
window/stretch/aspect="keep"
|
window/size/viewport_height=1037
|
||||||
|
window/size/window_width_override=1537
|
||||||
|
window/size/window_height_override=864
|
||||||
|
window/stretch/mode="canvas_items"
|
||||||
|
mouse_cursor/custom_image="res://assets/textures/cursor.png"
|
||||||
|
|
||||||
[gui]
|
[dotnet]
|
||||||
|
|
||||||
common/drop_mouse_on_gui_input_disabled=true
|
project/assembly_name="RPG Test gd4"
|
||||||
|
|
||||||
|
[editor]
|
||||||
|
|
||||||
|
naming/node_name_num_separator=2
|
||||||
|
naming/node_name_casing=2
|
||||||
|
naming/default_signal_callback_name="On{NodeName}{SignalName}"
|
||||||
|
naming/default_signal_callback_to_self_name="On{SignalName}"
|
||||||
|
node_naming/name_casing=2
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
fullscreen={
|
ui_accept={
|
||||||
"deadzone": 0.5,
|
"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)
|
"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,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":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":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={
|
move_left={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.2,
|
||||||
"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)
|
"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(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={
|
move_right={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.2,
|
||||||
"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)
|
"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(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={
|
move_up={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.2,
|
||||||
"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)
|
"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(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={
|
move_down={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.2,
|
||||||
"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)
|
"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(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,
|
"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={}
|
||||||
|
|
||||||
[physics]
|
[layer_names]
|
||||||
|
|
||||||
common/enable_pause_aware_picking=true
|
2d_physics/layer_1="World"
|
||||||
|
2d_physics/layer_2="Interactable"
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
2d/snapping/use_gpu_pixel_snap=true
|
camera/depth_of_field/depth_of_field_bokeh_quality=2
|
||||||
environment/default_environment="res://default_env.tres"
|
|
||||||
|
34
scenes/3D/3d_cube.tscn
Normal 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
|
116
scenes/base_npc.tscn
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
[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"]
|
||||||
|
collision_mask = 0
|
||||||
|
collision_priority = 15.0
|
||||||
|
|
||||||
|
[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"]
|
17
scenes/dialog_trigger_area.tscn
Normal 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
@@ -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"]
|
120
scenes/gui/dialog_bubble.tscn
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
[gd_scene load_steps=8 format=3 uid="uid://di368n7hi66po"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/scene-scripts/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="RichTextEffect" uid="uid://0o1lbwcdjg28" path="res://src/gdscript/tool/bbcodeeffects/cuss.tres" id="3_lmnhk"]
|
||||||
|
[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")
|
||||||
|
eventBeginAnswers = {}
|
||||||
|
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
|
||||||
|
custom_effects = [ExtResource("3_lmnhk")]
|
||||||
|
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"]
|
46
scenes/gui/dlg_answer_button.tscn
Normal 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")
|
@@ -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 )
|
|
@@ -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
|
|
@@ -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( )
|
|
92
scenes/overworld.tscn
Normal file
@@ -1,28 +1,137 @@
|
|||||||
[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 type="Script" path="res://src/scene-scripts/player.cs" id="1_qehox"]
|
||||||
[ext_resource path="res://src/player.cs" type="Script" id=2]
|
[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://di368n7hi66po" path="res://scenes/gui/dialog_bubble.tscn" id="3_8f573"]
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=1]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_068kt"]
|
||||||
animations = [ {
|
atlas = ExtResource("2_yu1q5")
|
||||||
"frames": [ ExtResource( 1 ) ],
|
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,
|
"loop": true,
|
||||||
"name": "default",
|
"name": &"move_down",
|
||||||
"speed": 5.0
|
"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]
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_38v5o"]
|
||||||
extents = Vector2( 19, 29 )
|
height = 54.0
|
||||||
|
|
||||||
[node name="Player" type="KinematicBody2D"]
|
[node name="player" type="CharacterBody2D"]
|
||||||
script = ExtResource( 2 )
|
process_mode = 1
|
||||||
|
collision_layer = 5
|
||||||
|
collision_mask = 5
|
||||||
|
motion_mode = 1
|
||||||
|
script = ExtResource("1_qehox")
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
[node name="rotation_center" type="Marker2D" parent="."]
|
||||||
frames = SubResource( 1 )
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="ray_cast_2d" type="RayCast2D" parent="rotation_center"]
|
||||||
position = Vector2( 0, 2 )
|
rotation = 3.14159
|
||||||
shape = SubResource( 2 )
|
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="."]
|
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
|
||||||
current = true
|
sprite_frames = SubResource("SpriteFrames_65gi3")
|
||||||
|
animation = &"move_down"
|
||||||
|
|
||||||
|
[node name="main_cam" type="Camera2D" parent="."]
|
||||||
|
process_callback = 0
|
||||||
|
position_smoothing_enabled = true
|
||||||
|
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, 34)
|
||||||
|
rotation = 1.5708
|
||||||
|
shape = SubResource("CapsuleShape2D_38v5o")
|
||||||
|
|
||||||
|
[node name="globalposition_timer" type="Timer" parent="."]
|
||||||
|
wait_time = 1.5
|
||||||
|
autostart = true
|
||||||
|
50
scenes/tiles/3d_cube_tile.tscn
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
[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)
|
||||||
|
collision_priority = 20.0
|
||||||
|
|
||||||
|
[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"]
|
19
scenes/tiles/cupcake.tscn
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[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"]
|
||||||
|
collision_priority = 20.0
|
||||||
|
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
|
62
scenes/tiles/enemies/slime.tscn
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
[gd_scene load_steps=8 format=3 uid="uid://cpu7t7csffoxg"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ca1es3hoj53wg" path="res://assets/textures/enemies/slime_green_atlas.png" id="1_bw6us"]
|
||||||
|
[ext_resource type="Script" path="res://src/scene-scripts/enemies/slime.cs" id="1_l1742"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_eghup"]
|
||||||
|
atlas = ExtResource("1_bw6us")
|
||||||
|
region = Rect2(0, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_8p5ni"]
|
||||||
|
atlas = ExtResource("1_bw6us")
|
||||||
|
region = Rect2(64, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_j8570"]
|
||||||
|
atlas = ExtResource("1_bw6us")
|
||||||
|
region = Rect2(128, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_bwr2v"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_eghup")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_8p5ni")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_j8570")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_eghup")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_e6mi3"]
|
||||||
|
radius = 6.0
|
||||||
|
height = 40.0
|
||||||
|
|
||||||
|
[node name="slime" type="CharacterBody2D" groups=["enemies"]]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 9
|
||||||
|
motion_mode = 1
|
||||||
|
floor_stop_on_slope = false
|
||||||
|
floor_constant_speed = true
|
||||||
|
script = ExtResource("1_l1742")
|
||||||
|
|
||||||
|
[node name="animated_sprite_2d" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(0, 24)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_bwr2v")
|
||||||
|
frame_progress = 0.348187
|
||||||
|
|
||||||
|
[node name="collision_shape_2d" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, 33)
|
||||||
|
rotation = 1.5708
|
||||||
|
shape = SubResource("CapsuleShape2D_e6mi3")
|
||||||
|
|
||||||
|
[node name="visible_notifier_2d" type="VisibleOnScreenNotifier2D" parent="."]
|
||||||
|
position = Vector2(0, 9)
|
||||||
|
rect = Rect2(-25, 0, 50, 30)
|
19
scenes/tiles/first_debug_tile.tscn
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[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 = 11
|
||||||
|
collision_priority = 25.0
|
||||||
|
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")
|
41
scenes/tiles/sound_debug_tile.tscn
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[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"]
|
||||||
|
collision_priority = 20.0
|
||||||
|
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"]
|
29
src/anticheat.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System.Diagnostics;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
public partial class anticheat : Node
|
||||||
|
{
|
||||||
|
string[] suspiciousProcesses = { "cheat", "wemod" };
|
||||||
|
string alertMessage;
|
||||||
|
string alertTitle;
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
var lang = Json.ParseString(FileAccess.Open("res://assets/lang/en/warnings.json", FileAccess.ModeFlags.Read).GetAsText()).AsGodotDictionary();
|
||||||
|
alertMessage = lang["cheatalert_message"].ToString();
|
||||||
|
alertTitle = lang["cheatalert_title"].ToString();
|
||||||
|
}
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
foreach (Process p in Process.GetProcesses())
|
||||||
|
foreach (string s in suspiciousProcesses)
|
||||||
|
{
|
||||||
|
if (p.ProcessName.Find(s) >= 0) //cheat gets detected
|
||||||
|
{
|
||||||
|
GetTree().Paused = true;
|
||||||
|
OS.Kill(p.Id);
|
||||||
|
OS.Alert(alertMessage, alertTitle);
|
||||||
|
GetTree().Paused = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
50
src/essential.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
src/gdscript/tool/bbcodeeffects/cuss.gd
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
@tool
|
||||||
|
extends RichTextEffect
|
||||||
|
|
||||||
|
|
||||||
|
# Syntax: [cuss][/cuss]
|
||||||
|
var bbcode = "cuss"
|
||||||
|
|
||||||
|
var VOWELS : PackedInt32Array = [97,101,105,111,117,65,69,73,79,85]#a,e,i,o,u,A,E,I,O,U
|
||||||
|
var CHARS : PackedInt32Array = [38,36,33,64,42,35,37]#&,$,!,@,*,#,%
|
||||||
|
var SPACE : int = 32
|
||||||
|
|
||||||
|
var _was_space = false
|
||||||
|
|
||||||
|
func get_text_server():
|
||||||
|
return TextServerManager.get_primary_interface()
|
||||||
|
|
||||||
|
func _process_custom_fx(char_fx):
|
||||||
|
var c = char_fx.glyph_index
|
||||||
|
|
||||||
|
var vowelBool : bool = false
|
||||||
|
for x in VOWELS:
|
||||||
|
if char_fx.glyph_index == get_text_server().font_get_glyph_index(char_fx.font, 1, x, 0):
|
||||||
|
vowelBool = true
|
||||||
|
|
||||||
|
if not _was_space and not char_fx.relative_index == 0 and not c == get_text_server().font_get_glyph_index(char_fx.font, 1, SPACE, 0):
|
||||||
|
var t = char_fx.elapsed_time + char_fx.glyph_index * 10.2 + char_fx.relative_index * 2
|
||||||
|
t *= 4.3
|
||||||
|
if vowelBool or sin(t) > 0.0:
|
||||||
|
char_fx.glyph_index = get_text_server().font_get_glyph_index(char_fx.font, 1, CHARS[int(t) % len(CHARS)], 0)
|
||||||
|
|
||||||
|
_was_space = c == get_text_server().font_get_glyph_index(char_fx.font, 1, SPACE, 0)
|
||||||
|
|
||||||
|
return true
|
7
src/gdscript/tool/bbcodeeffects/cuss.tres
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="RichTextEffect" load_steps=2 format=3 uid="uid://0o1lbwcdjg28"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://src/gdscript/tool/bbcodeeffects/cuss.gd" id="1_ctc4u"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
resource_name = "cuss"
|
||||||
|
script = ExtResource("1_ctc4u")
|
19
src/main.cs
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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
@@ -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
|
||||||
|
{
|
||||||
|
_playername = Regex.Replace(_playername, @"[<卐卍࿕࿖࿗࿘ꖦ⃠\uD83C-\uDBFF\uDC00-\uDFFF]", "").StripEdges(); //todo swearword censoring with bbcode effect
|
||||||
|
if (_playername.Length > 12)
|
||||||
|
_playername = _playername.Substring(0, 12);
|
||||||
|
return _playername.Replace(@"\s+", " ").Replace(@"\", @"\\").Replace("\"", "\\\"").Replace("'", "\\'");
|
||||||
|
}
|
||||||
|
set { _playername = value; }
|
||||||
|
}
|
||||||
|
}
|
11
src/scene-scripts/console/commands.json
Normal 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!"
|
||||||
|
}
|
157
src/scene-scripts/console/console.cs
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
|
public partial class console : PopupPanel
|
||||||
|
{
|
||||||
|
string[] gamepadCheatcode = { "ui_up", "ui_up", "ui_down", "ui_down", "ui_left", "ui_right", "ui_left", "ui_right", "ui_cancel", "ui_accept", "cheat_start" };
|
||||||
|
int gpCcIndexer = 0;
|
||||||
|
InputEvent inputEvent;
|
||||||
|
private static RichTextLabel textblock;
|
||||||
|
LineEdit line;
|
||||||
|
Dictionary commandDict;
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
void ToggleVisible()
|
||||||
|
{
|
||||||
|
Visible = !Visible;
|
||||||
|
player.allowMovement = !Visible;
|
||||||
|
line.GrabFocus();
|
||||||
|
}
|
||||||
|
void OnPopupHide() { if (dialog_bubble.isTalking == false) player.allowMovement = true; }
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
void consoleclear() => textblock.Clear();
|
||||||
|
void speed(float multiplier)
|
||||||
|
{
|
||||||
|
player.speed = Mathf.Clamp(multiplier, 0.01f, 15f);
|
||||||
|
Print("Set player speed to " + Mathf.Clamp(multiplier, 0.01f, 15f));
|
||||||
|
}
|
||||||
|
void noclip()
|
||||||
|
{
|
||||||
|
try { Print(player.CollisionToggle()); }
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Print("Player is not accessable");
|
||||||
|
help("noclip");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void stickycamera()
|
||||||
|
{
|
||||||
|
try { Print(player.CheatCam()); }
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Print("Player is not accessable");
|
||||||
|
help("stickycamera");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void playername(string name)
|
||||||
|
{
|
||||||
|
string tmpPlayerName = player_variables.PlayerName;
|
||||||
|
player_variables.PlayerName = name;
|
||||||
|
if (player_variables.PlayerName == "")
|
||||||
|
{
|
||||||
|
player_variables.PlayerName = tmpPlayerName;
|
||||||
|
Print("The name had too much incorrect symbols and would be empty when changed.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Print("Your new name is now: " + player_variables.PlayerName);
|
||||||
|
}
|
||||||
|
void closedialogue()
|
||||||
|
{
|
||||||
|
dialog_bubble.forceClose = true;
|
||||||
|
Print("Dialogue got closed!");
|
||||||
|
}
|
||||||
|
void reload()
|
||||||
|
{
|
||||||
|
GetTree().ReloadCurrentScene();
|
||||||
|
Print("Level got reloaded!");
|
||||||
|
}
|
||||||
|
void visiblecollision()
|
||||||
|
{
|
||||||
|
GetTree().DebugCollisionsHint = !GetTree().DebugCollisionsHint;
|
||||||
|
Print("Visible collision shapes and hitmarker now set to: " + GetTree().DebugCollisionsHint + "Use 'reload' to see changes!");
|
||||||
|
}
|
||||||
|
}
|
176
src/scene-scripts/dialog_bubble.cs
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
public partial class dialog_bubble : CanvasLayer
|
||||||
|
{
|
||||||
|
[Export] Dictionary eventBeginAnswers;
|
||||||
|
Variant parsedDlg;
|
||||||
|
Variant dlgLines;
|
||||||
|
int dlgPointer = 0;
|
||||||
|
int parsedDlgPointer = 0;
|
||||||
|
RichTextLabel richText;
|
||||||
|
Timer typewriterTimer;
|
||||||
|
string title;
|
||||||
|
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
|
||||||
|
-answers should work more like gatherdialogue for tree support
|
||||||
|
- the int in <goto:0 <- should represent the parsedDlgPointer*/
|
||||||
|
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 (introducedVillager)
|
||||||
|
GetNode<Label>("box/name_label").Text = title;
|
||||||
|
player.allowMovement = false;
|
||||||
|
//Get first key
|
||||||
|
if (introducedVillager && parsedDlg.AsGodotDictionary().ContainsKey("<welcome>"))
|
||||||
|
GatherDialog("<welcome>");
|
||||||
|
else if (parsedDlg.AsGodotDictionary().ContainsKey("<intro>"))
|
||||||
|
GatherDialog("<intro>");
|
||||||
|
else if (parsedDlg.AsGodotDictionary().ContainsKey("<message>"))
|
||||||
|
{
|
||||||
|
GetNode<Label>("box/name_label").Text = title;
|
||||||
|
GatherDialog("<message>");
|
||||||
|
}
|
||||||
|
|
||||||
|
Visible = true;
|
||||||
|
isTalking = true;
|
||||||
|
}
|
||||||
|
void GatherDialog(string key)
|
||||||
|
{
|
||||||
|
dlgPointer = 0;
|
||||||
|
if (parsedDlg.AsGodotDictionary()[key].VariantType == Variant.Type.String)
|
||||||
|
{
|
||||||
|
string[] oneline = { parsedDlg.AsGodotDictionary()[key].AsString() };
|
||||||
|
dlgLines = oneline;
|
||||||
|
}
|
||||||
|
if (parsedDlg.AsGodotDictionary()[key].VariantType == Variant.Type.Array)
|
||||||
|
dlgLines = parsedDlg.AsGodotDictionary()[key].AsGodotArray();
|
||||||
|
if (dlgLines.AsGodotArray()[0].VariantType == Variant.Type.Array)
|
||||||
|
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
|
||||||
|
}
|
||||||
|
void OnVisibilityChanged()
|
||||||
|
{
|
||||||
|
if (Visible)
|
||||||
|
ProcessMode = ProcessModeEnum.Inherit;
|
||||||
|
else if (richText != null)
|
||||||
|
{
|
||||||
|
dlgPointer = 0;
|
||||||
|
richText.VisibleCharacters = -1;
|
||||||
|
GetNode<Label>("box/name_label").Text = "???";
|
||||||
|
richText.Text = "";
|
||||||
|
if (GetParent().Name == "player") player.allowMovement = true;
|
||||||
|
isTalking = false;
|
||||||
|
forceClose = false;
|
||||||
|
ProcessMode = ProcessModeEnum.Disabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
DialogControlls();
|
||||||
|
AnswerBoxControlls();
|
||||||
|
}
|
||||||
|
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:0:", ""));
|
||||||
|
UpdateDialog();
|
||||||
|
}
|
||||||
|
else if (dlgLines.AsGodotArray()[dlgPointer].VariantType == Variant.Type.Dictionary)
|
||||||
|
MakeAnswerBox(Json.ParseString(dlgLines.AsGodotArray()[dlgPointer].AsGodotDictionary().Keys.ToString()).AsStringArray());
|
||||||
|
}
|
||||||
|
dlgPointer++;
|
||||||
|
}
|
||||||
|
Visible = !(dlgPointer > dlgLines.AsGodotArray().Count || forceClose);
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
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:0:", ""));
|
||||||
|
UpdateDialog();
|
||||||
|
}
|
||||||
|
dlgPointer++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void InDialogEvents(int eventID)
|
||||||
|
{
|
||||||
|
switch (eventID)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
GetNode<Label>("box/name_label").Text = title;
|
||||||
|
triggerArea.Set("introducedVillager", true);
|
||||||
|
GatherDialog("<begindialog>");
|
||||||
|
UpdateDialog();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
17
src/scene-scripts/enemies/slime.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public partial class slime : CharacterBody2D
|
||||||
|
{
|
||||||
|
[Export] int speed = 70;
|
||||||
|
Vector2 motion = Vector2.Zero;
|
||||||
|
public override void _Ready() => GetNode<AnimatedSprite2D>("animated_sprite_2d").Play();
|
||||||
|
public override void _PhysicsProcess(double delta)
|
||||||
|
{
|
||||||
|
if (GetNode<VisibleOnScreenNotifier2D>("visible_notifier_2d").IsOnScreen())
|
||||||
|
motion = Position.DirectionTo(player.globalPlayerPosition) * speed;
|
||||||
|
else motion = Vector2.Zero;
|
||||||
|
Velocity = motion;
|
||||||
|
MoveAndSlide();
|
||||||
|
}
|
||||||
|
}
|
104
src/scene-scripts/player.cs
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
public partial class player : CharacterBody2D
|
||||||
|
{
|
||||||
|
[Export] public static float speed = 1;
|
||||||
|
public static bool allowMovement = true;
|
||||||
|
Vector2 movement;
|
||||||
|
AnimatedSprite2D animatedSprite;
|
||||||
|
Marker2D rotCenter;
|
||||||
|
RayCast2D dialogRayCast;
|
||||||
|
public static Vector2 globalPlayerPosition;
|
||||||
|
//console cheats:
|
||||||
|
static Camera2D cheatCam;
|
||||||
|
static Camera2D mainCam;
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
globalPlayerPosition = Position;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cheatCam.Enabled = false;
|
||||||
|
mainCam.Enabled = true;
|
||||||
|
return "cheat_cam has been disabled";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static string CollisionToggle()
|
||||||
|
{
|
||||||
|
collision.Disabled = !collision.Disabled;
|
||||||
|
return ("Noclip is now set to: " + collision.Disabled);
|
||||||
|
}
|
||||||
|
}
|
@@ -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
@@ -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")
|
@@ -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
|
|
@@ -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
|
|
30
tilesets/main_tileset.tres
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[gd_resource type="TileSet" load_steps=10 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"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpu7t7csffoxg" path="res://scenes/tiles/enemies/slime.tscn" id="6_mcy76"]
|
||||||
|
|
||||||
|
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_lcrun"]
|
||||||
|
resource_name = "debug"
|
||||||
|
scenes/0/scene = ExtResource("1_uxmn6")
|
||||||
|
scenes/1/scene = ExtResource("5_x3uol")
|
||||||
|
scenes/2/scene = ExtResource("2_v4037")
|
||||||
|
scenes/3/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_d4uti"]
|
||||||
|
resource_name = "enemies"
|
||||||
|
scenes/1/scene = ExtResource("6_mcy76")
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
tile_size = Vector2i(64, 64)
|
||||||
|
sources/0 = SubResource("TileSetScenesCollectionSource_lcrun")
|
||||||
|
sources/3 = SubResource("TileSetAtlasSource_na45g")
|
||||||
|
sources/5 = SubResource("TileSetScenesCollectionSource_d4uti")
|