dev-base #36
84
.gitea/workflows/build.yml
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
name: "godot-ci export"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- nightly
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
export_game:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Export Game
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout@v3.3.0
|
||||||
|
- name: Install Packages
|
||||||
|
id: wine_install
|
||||||
|
run: |
|
||||||
|
apt update -y && apt upgrade -y
|
||||||
|
apt install -y wine64 nodejs p7zip-full ca-certificates tree jq curl zip
|
||||||
|
echo "WINE_PATH=$(which wine64)" >> $GITHUB_OUTPUT
|
||||||
|
- name: Download Godot build-libs
|
||||||
|
run: |
|
||||||
|
mkdir -p /root/.local/share/godot/
|
||||||
|
wget -nv https://github.com/godotengine/godot/releases/download/4.0.2-stable/Godot_v4.0.2-stable_linux.x86_64.zip -O "/root/.local/share/godot/godot.zip"
|
||||||
|
wget -nv https://github.com/godotengine/godot/releases/download/4.0.2-stable/Godot_v4.0.2-stable_export_templates.tpz -O /root/.local/share/godot/godot_templates.tpz
|
||||||
|
- name: Setup Godot build-libs
|
||||||
|
run: |
|
||||||
|
7z x /root/.local/share/godot/godot.zip -o/root/.local/share/godot/godot_executable -y
|
||||||
|
chmod +x /root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64
|
||||||
|
unzip /root/.local/share/godot/godot_templates.tpz -d /root/.local/share/godot
|
||||||
|
mv /root/.local/share/godot/templates /root/.local/share/godot/4.0.2.stable
|
||||||
|
mkdir -p /root/.local/share/godot/export_templates
|
||||||
|
mv /root/.local/share/godot/4.0.2.stable /root/.local/share/godot/export_templates
|
||||||
|
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 --version
|
||||||
|
- name: Export for Linux
|
||||||
|
run: |
|
||||||
|
mkdir -p ./builds/linux/
|
||||||
|
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 /var/lib/actions/project.godot -q --headless --export-release "Linux/X11" ./builds/linux/Game.x86_64
|
||||||
|
- name: Package for Linux
|
||||||
|
run: |
|
||||||
|
cd builds
|
||||||
|
tar -czvf linux.tar.gz -C linux/ .
|
||||||
|
- name: Export for Windows
|
||||||
|
run: |
|
||||||
|
mkdir -p ./builds/windows/
|
||||||
|
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 /var/lib/actions/project.godot -q --headless --export-release "Windows Desktop" ./builds/windows/Game.exe
|
||||||
|
- name: Package for Windows
|
||||||
|
run: |
|
||||||
|
cd builds
|
||||||
|
cd windows; zip -r ../windows.zip *
|
||||||
|
cd ..
|
||||||
|
- name: Create Release
|
||||||
|
run: |
|
||||||
|
echo "Getting last Release Tag"
|
||||||
|
VERSION=$(curl -X 'GET' 'https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases?page=1&limit=1' -H 'accept: application/json' -H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' )
|
||||||
|
echo $VERSION | jq -r '.[0].tag_name'
|
||||||
|
VERSION=$(echo $VERSION | jq -r '.[0].tag_name' | awk -F. -v OFS=. '{$NF += 1 ; print}')
|
||||||
|
echo "Generate new Release with tag: $VERSION"
|
||||||
|
ID=$(curl -X 'POST' \
|
||||||
|
'https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases' \
|
||||||
|
-H 'accept: application/json' \
|
||||||
|
-H 'Content-Type: application/json' \
|
||||||
|
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
|
||||||
|
-d "{
|
||||||
|
\"body\": \"Automated Nightly Build\",
|
||||||
|
\"draft\": true,
|
||||||
|
\"name\": \"Automated Nightly Release $VERSION\",
|
||||||
|
\"prerelease\": true,
|
||||||
|
\"tag_name\": \"$VERSION\"
|
||||||
|
}")
|
||||||
|
ID=$(echo $ID | jq -r '.id')
|
||||||
|
echo $ID Upload Linux
|
||||||
|
curl -X 'POST' \
|
||||||
|
"https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases/$ID/assets?name=Linux.tar.gz" \
|
||||||
|
-H 'accept: application/json' \
|
||||||
|
-H 'Content-Type: multipart/form-data' \
|
||||||
|
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
|
||||||
|
-F 'attachment=@./builds/linux.tar.gz;type=application/gzip'
|
||||||
|
echo $ID Upload Windows
|
||||||
|
curl -X 'POST' \
|
||||||
|
"https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases/$ID/assets?name=Windows.zip" \
|
||||||
|
-H 'accept: application/json' \
|
||||||
|
-H 'Content-Type: multipart/form-data' \
|
||||||
|
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
|
||||||
|
-F 'attachment=@./builds/windows.zip;type=application/gzip'
|
BIN
Assets/Textures/Tilesets/colony-brown.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
34
Assets/Textures/Tilesets/colony-brown.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ctjc4gqtv3qc6"
|
||||||
|
path="res://.godot/imported/colony-brown.png-d928b571d768ac6c176f3573fe704ab7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Textures/Tilesets/colony-brown.png"
|
||||||
|
dest_files=["res://.godot/imported/colony-brown.png-d928b571d768ac6c176f3573fe704ab7.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/Tilesets/colony-gray.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
34
Assets/Textures/Tilesets/colony-gray.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cjkgicvayjjol"
|
||||||
|
path="res://.godot/imported/colony-gray.png-9a34ec3b88057b1852fb487901160fe8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Textures/Tilesets/colony-gray.png"
|
||||||
|
dest_files=["res://.godot/imported/colony-gray.png-9a34ec3b88057b1852fb487901160fe8.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/Tilesets/colony-green.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
34
Assets/Textures/Tilesets/colony-green.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://chbqdp7mae1vu"
|
||||||
|
path="res://.godot/imported/colony-green.png-7ee3c69f1f46aa9cb608adfe2dc4035e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Textures/Tilesets/colony-green.png"
|
||||||
|
dest_files=["res://.godot/imported/colony-green.png-7ee3c69f1f46aa9cb608adfe2dc4035e.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/Tilesets/colony-red.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
34
Assets/Textures/Tilesets/colony-red.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dpqdlxd60d8be"
|
||||||
|
path="res://.godot/imported/colony-red.png-1c62c66c6ffbb95f273cd5ad854bf691.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Textures/Tilesets/colony-red.png"
|
||||||
|
dest_files=["res://.godot/imported/colony-red.png-1c62c66c6ffbb95f273cd5ad854bf691.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: 24 KiB |
Before Width: | Height: | Size: 30 KiB |
BIN
Assets/Textures/basic_enemy.png
Normal file
After Width: | Height: | Size: 139 B |
34
Assets/Textures/basic_enemy.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dx5k5qa1pwbfl"
|
||||||
|
path="res://.godot/imported/basic_enemy.png-86528a00f666ed79fdb26797653efdd4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Textures/basic_enemy.png"
|
||||||
|
dest_files=["res://.godot/imported/basic_enemy.png-86528a00f666ed79fdb26797653efdd4.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: 195 B After Width: | Height: | Size: 195 B |
|
@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/color_cube.png-4881adb426dcdbd1db4cca9d44eddf
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=false
|
||||||
|
|
BIN
Guidelines/ColorPallet.png
Normal file
After Width: | Height: | Size: 240 B |
|
@ -2,23 +2,23 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://vdjct0e80o51"
|
uid="uid://cua6xdncubtid"
|
||||||
path="res://.godot/imported/colony.png-7e0f1c6e1f6ff8cbe6d6c840c822d3ba.ctex"
|
path="res://.godot/imported/ColorPallet.png-d411989842053c34062059f3968fb7f0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Assets/Textures/Tilesets/colony.png"
|
source_file="res://Guidelines/ColorPallet.png"
|
||||||
dest_files=["res://.godot/imported/colony.png-7e0f1c6e1f6ff8cbe6d6c840c822d3ba.ctex"]
|
dest_files=["res://.godot/imported/ColorPallet.png-d411989842053c34062059f3968fb7f0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/bptc_ldr=0
|
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=false
|
399
Guidelines/ColorPallet.tres
Normal file
|
@ -0,0 +1,399 @@
|
||||||
|
[gd_resource type="Resource" load_steps=67 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/Palette/PaletteColor.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://src/Palette/Palette.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=1]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.901961, 0.360784, 0.4, 1 )
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=2]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.901961, 0.592157, 0.360784, 1 )
|
||||||
|
index = 1
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=3]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.894118, 0.901961, 0.360784, 1 )
|
||||||
|
index = 2
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=4]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.360784, 0.901961, 0.360784, 1 )
|
||||||
|
index = 3
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=5]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.360784, 0.901961, 0.733333, 1 )
|
||||||
|
index = 4
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=6]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.360784, 0.815686, 0.901961, 1 )
|
||||||
|
index = 5
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=7]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.360784, 0.423529, 0.901961, 1 )
|
||||||
|
index = 6
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=8]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.545098, 0.360784, 0.901961, 1 )
|
||||||
|
index = 7
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=9]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.74902, 0.298039, 0.329412, 1 )
|
||||||
|
index = 8
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=10]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.74902, 0.490196, 0.298039, 1 )
|
||||||
|
index = 9
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=11]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.741176, 0.74902, 0.298039, 1 )
|
||||||
|
index = 10
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=12]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.298039, 0.74902, 0.298039, 1 )
|
||||||
|
index = 11
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=13]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.298039, 0.74902, 0.611765, 1 )
|
||||||
|
index = 12
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=14]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.298039, 0.682353, 0.74902, 1 )
|
||||||
|
index = 13
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=15]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.298039, 0.352941, 0.74902, 1 )
|
||||||
|
index = 14
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=16]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.458824, 0.298039, 0.74902, 1 )
|
||||||
|
index = 15
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=17]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.501961, 0.2, 0.223529, 1 )
|
||||||
|
index = 16
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=18]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.501961, 0.32549, 0.2, 1 )
|
||||||
|
index = 17
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=19]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.498039, 0.501961, 0.2, 1 )
|
||||||
|
index = 18
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=20]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.501961, 0.2, 1 )
|
||||||
|
index = 19
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=21]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.501961, 0.411765, 1 )
|
||||||
|
index = 20
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=22]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.45098, 0.501961, 1 )
|
||||||
|
index = 21
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=23]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.235294, 0.501961, 1 )
|
||||||
|
index = 22
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=24]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.305882, 0.2, 0.501961, 1 )
|
||||||
|
index = 23
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=25]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.4, 0.160784, 0.180392, 1 )
|
||||||
|
index = 24
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=26]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.4, 0.262745, 0.160784, 1 )
|
||||||
|
index = 25
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=27]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.396078, 0.4, 0.160784, 1 )
|
||||||
|
index = 26
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=28]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.160784, 0.4, 0.160784, 1 )
|
||||||
|
index = 27
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=29]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.160784, 0.4, 0.32549, 1 )
|
||||||
|
index = 28
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=30]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.160784, 0.364706, 0.4, 1 )
|
||||||
|
index = 29
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=31]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.160784, 0.188235, 0.4, 1 )
|
||||||
|
index = 30
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=32]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.243137, 0.160784, 0.4, 1 )
|
||||||
|
index = 31
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=33]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.278431, 0.113725, 0.12549, 1 )
|
||||||
|
index = 32
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=34]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.278431, 0.184314, 0.113725, 1 )
|
||||||
|
index = 33
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=35]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.27451, 0.278431, 0.113725, 1 )
|
||||||
|
index = 34
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=36]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.113725, 0.278431, 0.113725, 1 )
|
||||||
|
index = 35
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=37]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.113725, 0.278431, 0.231373, 1 )
|
||||||
|
index = 36
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=38]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.113725, 0.254902, 0.278431, 1 )
|
||||||
|
index = 37
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=39]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.113725, 0.129412, 0.278431, 1 )
|
||||||
|
index = 38
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=40]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.168627, 0.113725, 0.278431, 1 )
|
||||||
|
index = 39
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=41]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.0823529, 0.0901961, 1 )
|
||||||
|
index = 40
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=42]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.129412, 0.0823529, 1 )
|
||||||
|
index = 41
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=43]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.2, 0.0823529, 1 )
|
||||||
|
index = 42
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=44]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0823529, 0.2, 0.0823529, 1 )
|
||||||
|
index = 43
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=45]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0823529, 0.2, 0.164706, 1 )
|
||||||
|
index = 44
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=46]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0823529, 0.184314, 0.2, 1 )
|
||||||
|
index = 45
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=47]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0823529, 0.0941176, 0.2, 1 )
|
||||||
|
index = 46
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=48]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.121569, 0.0823529, 0.2, 1 )
|
||||||
|
index = 47
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=49]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.14902, 0.0627451, 0.0705882, 1 )
|
||||||
|
index = 48
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=50]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.14902, 0.0980392, 0.0627451, 1 )
|
||||||
|
index = 49
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=51]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.14902, 0.14902, 0.0627451, 1 )
|
||||||
|
index = 50
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=52]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0627451, 0.14902, 0.0627451, 1 )
|
||||||
|
index = 51
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=53]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0627451, 0.14902, 0.121569, 1 )
|
||||||
|
index = 52
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=54]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0627451, 0.137255, 0.14902, 1 )
|
||||||
|
index = 53
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=55]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0627451, 0.0705882, 0.14902, 1 )
|
||||||
|
index = 54
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=56]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.0862745, 0.0627451, 0.14902, 1 )
|
||||||
|
index = 55
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=57]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.901961, 0.901961, 0.901961, 1 )
|
||||||
|
index = 56
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=58]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.74902, 0.74902, 0.74902, 1 )
|
||||||
|
index = 57
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=59]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.501961, 0.501961, 0.501961, 1 )
|
||||||
|
index = 58
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=60]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.4, 0.4, 0.4, 1 )
|
||||||
|
index = 59
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=61]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.278431, 0.278431, 0.278431, 1 )
|
||||||
|
index = 60
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=62]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.2, 0.2, 0.2, 1 )
|
||||||
|
index = 61
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=63]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.14902, 0.14902, 0.14902, 1 )
|
||||||
|
index = 62
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=64]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
color = Color( 0.101961, 0.101961, 0.101961, 1 )
|
||||||
|
index = 63
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
resource_name = "ColorPallet"
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
name = "Color Pallet"
|
||||||
|
comment = ""
|
||||||
|
width = 8
|
||||||
|
height = 8
|
||||||
|
colors = {
|
||||||
|
0: SubResource( 1 ),
|
||||||
|
1: SubResource( 2 ),
|
||||||
|
2: SubResource( 3 ),
|
||||||
|
3: SubResource( 4 ),
|
||||||
|
4: SubResource( 5 ),
|
||||||
|
5: SubResource( 6 ),
|
||||||
|
6: SubResource( 7 ),
|
||||||
|
7: SubResource( 8 ),
|
||||||
|
8: SubResource( 9 ),
|
||||||
|
9: SubResource( 10 ),
|
||||||
|
10: SubResource( 11 ),
|
||||||
|
11: SubResource( 12 ),
|
||||||
|
12: SubResource( 13 ),
|
||||||
|
13: SubResource( 14 ),
|
||||||
|
14: SubResource( 15 ),
|
||||||
|
15: SubResource( 16 ),
|
||||||
|
16: SubResource( 17 ),
|
||||||
|
17: SubResource( 18 ),
|
||||||
|
18: SubResource( 19 ),
|
||||||
|
19: SubResource( 20 ),
|
||||||
|
20: SubResource( 21 ),
|
||||||
|
21: SubResource( 22 ),
|
||||||
|
22: SubResource( 23 ),
|
||||||
|
23: SubResource( 24 ),
|
||||||
|
24: SubResource( 25 ),
|
||||||
|
25: SubResource( 26 ),
|
||||||
|
26: SubResource( 27 ),
|
||||||
|
27: SubResource( 28 ),
|
||||||
|
28: SubResource( 29 ),
|
||||||
|
29: SubResource( 30 ),
|
||||||
|
30: SubResource( 31 ),
|
||||||
|
31: SubResource( 32 ),
|
||||||
|
32: SubResource( 33 ),
|
||||||
|
33: SubResource( 34 ),
|
||||||
|
34: SubResource( 35 ),
|
||||||
|
35: SubResource( 36 ),
|
||||||
|
36: SubResource( 37 ),
|
||||||
|
37: SubResource( 38 ),
|
||||||
|
38: SubResource( 39 ),
|
||||||
|
39: SubResource( 40 ),
|
||||||
|
40: SubResource( 41 ),
|
||||||
|
41: SubResource( 42 ),
|
||||||
|
42: SubResource( 43 ),
|
||||||
|
43: SubResource( 44 ),
|
||||||
|
44: SubResource( 45 ),
|
||||||
|
45: SubResource( 46 ),
|
||||||
|
46: SubResource( 47 ),
|
||||||
|
47: SubResource( 48 ),
|
||||||
|
48: SubResource( 49 ),
|
||||||
|
49: SubResource( 50 ),
|
||||||
|
50: SubResource( 51 ),
|
||||||
|
51: SubResource( 52 ),
|
||||||
|
52: SubResource( 53 ),
|
||||||
|
53: SubResource( 54 ),
|
||||||
|
54: SubResource( 55 ),
|
||||||
|
55: SubResource( 56 ),
|
||||||
|
56: SubResource( 57 ),
|
||||||
|
57: SubResource( 58 ),
|
||||||
|
58: SubResource( 59 ),
|
||||||
|
59: SubResource( 60 ),
|
||||||
|
60: SubResource( 61 ),
|
||||||
|
61: SubResource( 62 ),
|
||||||
|
62: SubResource( 63 ),
|
||||||
|
63: SubResource( 64 )
|
||||||
|
}
|
||||||
|
colors_max = 64
|
2
Guidelines/DESIGN_GUIDELINES.md
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
- Base Sprite Size is 16x16
|
||||||
|
- Small Sprite Size is 8x8
|
15
README.md
|
@ -1,12 +1,25 @@
|
||||||
# 2DHackAndSlay
|
# 2DHackAndSlay
|
||||||
|
|
||||||
## Branches
|
## Branches
|
||||||
|
|
||||||
- [stable](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/stable) - This is the Most stable branch and only will get PRs from [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
|
- [stable](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/stable) - This is the Most stable branch and only will get PRs from [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
|
||||||
- [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly) - This Branch will only get PRs from [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base)its meant for testing
|
- [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly) - This Branch will only get PRs from [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base)its meant for testing
|
||||||
- [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base) - On This branch the Diffrent dev branches will be merged and code may be written to combine everything. when this branch is at a somewhat stable branch it gets a PR to [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
|
- [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base) - On This branch the Diffrent dev branches will be merged and code may be written to combine everything. when this branch is at a somewhat stable branch it gets a PR to [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
|
||||||
- dev-* - Dev branches with their respective goal which will be merged into dev-base
|
- dev-* - Dev branches with their respective goal which will be merged into dev-base
|
||||||
|
|
||||||
|
## Code Linting Rules
|
||||||
|
### Use Tabs
|
||||||
|
Tabs are just cooler
|
||||||
|
|
||||||
|
### Use Sign-Form instead of Text-Form
|
||||||
|
|
||||||
|
#### Why
|
||||||
|
There are a lot of Operators in godot, and most are based around signs, so for consistency we stay at the Sign-Forms
|
||||||
|
|
||||||
|
#### Boolean operators
|
||||||
|
- `&&` instead of `and`
|
||||||
|
- `||` instead of `or`
|
||||||
|
- `!` instead of `not`
|
||||||
|
|
||||||
## Resources used:
|
## Resources used:
|
||||||
|
|
||||||
### Game Art
|
### Game Art
|
||||||
|
|
132
Scripts/Enemy/EnemyController.gd
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
extends RigidBody2D
|
||||||
|
|
||||||
|
@export_group("Movement Properties")
|
||||||
|
@export var speed := 100.0
|
||||||
|
@export var turn_speed := 25.0
|
||||||
|
|
||||||
|
@export_group("Vision Properties")
|
||||||
|
@export var ray : RayCast2D
|
||||||
|
@export_flags_2d_physics var player_collision_layer := 2
|
||||||
|
@export var max_view_distance := 120.0
|
||||||
|
@export_range(0.0, 360.0) var angle_cone_of_vision := 120.0
|
||||||
|
@export_range(0, 72) var sweeping_steps := 34.0
|
||||||
|
@export var debug_vision := false
|
||||||
|
|
||||||
|
@export_group("Behaviour Properties")
|
||||||
|
@export var follow_keep_distance := 30.0
|
||||||
|
|
||||||
|
enum STATES {
|
||||||
|
IDLE,
|
||||||
|
TARGETING
|
||||||
|
}
|
||||||
|
|
||||||
|
var state : STATES
|
||||||
|
var target_positons : Array
|
||||||
|
var target_distance : float
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
# Set Raycast into view Direction
|
||||||
|
ray.target_position = Vector2(max_view_distance, 0)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func swipe_view() -> Array:
|
||||||
|
# Set Raycast to starting position
|
||||||
|
ray.rotation_degrees = -angle_cone_of_vision / 2
|
||||||
|
|
||||||
|
# Create Array to Store Angles of Hits
|
||||||
|
var hit_angles : Array
|
||||||
|
|
||||||
|
# Clear Player Positions Array
|
||||||
|
target_positons.clear()
|
||||||
|
# Reset Targets distance to Infinity
|
||||||
|
target_distance = INF
|
||||||
|
|
||||||
|
for step in sweeping_steps + 1:
|
||||||
|
# Check Ray
|
||||||
|
ray.force_raycast_update()
|
||||||
|
if ray.is_colliding():
|
||||||
|
# Get Collider
|
||||||
|
var collider = ray.get_collider()
|
||||||
|
var collider_class = collider.get_class()
|
||||||
|
var collision_layer : int
|
||||||
|
|
||||||
|
# Get Collision Layer
|
||||||
|
if collider_class == "TileMap":
|
||||||
|
collider = collider as TileMap
|
||||||
|
collision_layer = collider.tile_set.get_physics_layer_collision_layer(0)
|
||||||
|
else:
|
||||||
|
collision_layer = collider.get_collision_layer()
|
||||||
|
|
||||||
|
# Break if No relevant Collision
|
||||||
|
if collision_layer & player_collision_layer > 0:
|
||||||
|
# Checking Collision Layer
|
||||||
|
hit_angles.append(ray.rotation_degrees)
|
||||||
|
target_positons.append(to_local(ray.get_collision_point()))
|
||||||
|
|
||||||
|
# Check distance
|
||||||
|
target_distance = min(target_distance, ray.get_collision_point().distance_to(self.global_position))
|
||||||
|
|
||||||
|
# Rotate Ray
|
||||||
|
ray.rotation_degrees += angle_cone_of_vision / sweeping_steps
|
||||||
|
return hit_angles
|
||||||
|
|
||||||
|
func look_at_player(delta : float) -> float:
|
||||||
|
# Get All Angles at which the Player can be seen
|
||||||
|
var hit_angles = swipe_view()
|
||||||
|
|
||||||
|
# If The Player cant be seen, return and do nothing
|
||||||
|
if hit_angles.size() <= 0:
|
||||||
|
state = STATES.IDLE
|
||||||
|
return 0
|
||||||
|
state = STATES.TARGETING
|
||||||
|
|
||||||
|
# Calculate Average Angle Of Player
|
||||||
|
var average_angle : float
|
||||||
|
for angle in hit_angles:
|
||||||
|
average_angle += angle
|
||||||
|
average_angle /= hit_angles.size()
|
||||||
|
|
||||||
|
# Rotate towards Player, but limit it by rotation speed
|
||||||
|
self.rotation_degrees += clampf(average_angle, -2 * PI * delta * turn_speed, 2 * PI * delta * turn_speed)
|
||||||
|
return average_angle
|
||||||
|
|
||||||
|
func follow_player(angle : float, delta : float):
|
||||||
|
if(target_distance > follow_keep_distance):
|
||||||
|
self.apply_central_force(Vector2.RIGHT.rotated(self.rotation).rotated(deg_to_rad(angle)) * speed * delta * 60)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta: float):
|
||||||
|
var angle := look_at_player(delta)
|
||||||
|
match state:
|
||||||
|
STATES.TARGETING:
|
||||||
|
follow_player(angle, delta)
|
||||||
|
STATES.IDLE:
|
||||||
|
# Do Idle Stuff
|
||||||
|
print("Dam, Nice a pause, time for a Coffee")
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _process(delta: float):
|
||||||
|
if debug_vision:
|
||||||
|
queue_redraw()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
# Draw a Debug Arc in case that Debug Vision is enabled
|
||||||
|
if debug_vision:
|
||||||
|
|
||||||
|
# Draw All Ray Positions
|
||||||
|
var angle = -angle_cone_of_vision / 2
|
||||||
|
for step in sweeping_steps + 1:
|
||||||
|
self.draw_line(Vector2(), Vector2(max_view_distance,0).rotated(deg_to_rad(angle)), Color.DARK_RED, 0.5, false)
|
||||||
|
angle += angle_cone_of_vision / sweeping_steps
|
||||||
|
|
||||||
|
# Draw Ray Arc
|
||||||
|
self.draw_arc(Vector2(), max_view_distance, deg_to_rad(-angle_cone_of_vision / 2), deg_to_rad(angle_cone_of_vision / 2), sweeping_steps + 1, Color.RED, 0.5, false)
|
||||||
|
|
||||||
|
# Draw A Circle Around the Player if hes seen
|
||||||
|
for pos in target_positons:
|
||||||
|
self.draw_circle(pos, 1, Color.RED)
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
9
Scripts/GameManager.gd
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
24
Scripts/Player/PlayerController.gd
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
@export var speed = 100
|
||||||
|
@export_range(0, 1) var damping_factor := 0.6
|
||||||
|
|
||||||
|
func get_move_vector():
|
||||||
|
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized()
|
||||||
|
return input_direction
|
||||||
|
|
||||||
|
func move_player(delta : float):
|
||||||
|
if get_move_vector() == Vector2.ZERO:
|
||||||
|
# Damp Players Velocity if no Input
|
||||||
|
self.velocity = self.velocity * (1 - min(1, damping_factor * 60 * delta))
|
||||||
|
else:
|
||||||
|
# Set Players Velocity to the Input Direction in the Players Speed
|
||||||
|
self.velocity = get_move_vector() * speed * delta * 60
|
||||||
|
|
||||||
|
# Update The Players Physics Calculations
|
||||||
|
self.move_and_slide()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _physics_process(delta : float):
|
||||||
|
move_player(delta)
|
||||||
|
pass
|
|
@ -1,18 +0,0 @@
|
||||||
extends CharacterBody2D
|
|
||||||
|
|
||||||
@export var speed = 50
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready():
|
|
||||||
pass # Replace with function body.
|
|
||||||
|
|
||||||
func get_input():
|
|
||||||
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
|
|
||||||
velocity = input_direction * speed
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _physics_process(delta):
|
|
||||||
get_input()
|
|
||||||
move_and_slide()
|
|
||||||
|
|
||||||
|
|
106
export_presets.cfg
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Linux/X11"
|
||||||
|
platform="Linux/X11"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../Downloads/2d Hack And Slay.x86_64"
|
||||||
|
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=false
|
||||||
|
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}\""
|
||||||
|
|
||||||
|
[preset.1]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path=""
|
||||||
|
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=false
|
||||||
|
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=""
|
||||||
|
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}'"
|
|
@ -14,9 +14,15 @@ config/name="2d Hack And Slay"
|
||||||
run/main_scene="res://Scenes/Test Scene.tscn"
|
run/main_scene="res://Scenes/Test Scene.tscn"
|
||||||
config/features=PackedStringArray("4.0")
|
config/features=PackedStringArray("4.0")
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
GameManager="*res://Scripts/GameManager.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/stretch/aspect="ignore"
|
window/stretch/mode="viewport"
|
||||||
|
window/stretch/aspect="expand"
|
||||||
|
window/stretch/scale=0.7
|
||||||
|
|
||||||
[editor]
|
[editor]
|
||||||
|
|
||||||
|
@ -57,6 +63,17 @@ move_right={
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
do_shake={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
2d_physics/layer_1="Map"
|
||||||
|
2d_physics/layer_2="Player"
|
||||||
|
2d_physics/layer_3="Enemys"
|
||||||
|
|
||||||
[physics]
|
[physics]
|
||||||
|
|
||||||
|
|