Compare commits
79 Commits
3.4-585455
...
3.x
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe1ccaea77 | ||
|
|
ec368a812b | ||
|
|
0a826508da | ||
|
|
a2d63288fa | ||
|
|
aae565b34a | ||
|
|
d52d430af7 | ||
|
|
bfcd81aa85 | ||
|
|
cdffdc025f | ||
|
|
ed3e2a1635 | ||
|
|
e292b09d9e | ||
|
|
c17d803a1b | ||
|
|
c0180d20d1 | ||
|
|
edee4413e3 | ||
|
|
3a23fdbe6a | ||
|
|
c8bb3b874a | ||
|
|
c8f0706055 | ||
|
|
ccc4354331 | ||
|
|
1849640ff8 | ||
|
|
3ae7f01a23 | ||
|
|
690dd395fd | ||
|
|
f85f8b2b4d | ||
|
|
7ddaf29f8d | ||
|
|
b626d3e628 | ||
|
|
a39928fc55 | ||
|
|
9e68af38d9 | ||
|
|
4357b5b620 | ||
|
|
24519e58a8 | ||
|
|
219e37b592 | ||
|
|
fe6f646c9d | ||
|
|
06bdeb97dc | ||
|
|
b1f9f2da48 | ||
|
|
d7c7e4ede3 | ||
|
|
0550497e60 | ||
|
|
5c13d21260 | ||
|
|
2f60828e6e | ||
|
|
61d9e0f1ab | ||
|
|
cd72b05a7d | ||
|
|
69758f2523 | ||
|
|
0f848370fe | ||
|
|
4618c9b04e | ||
|
|
6ddead591a | ||
|
|
6eec19b9af | ||
|
|
935e9bbc44 | ||
|
|
59d443e889 | ||
|
|
2e40f67b1b | ||
|
|
f1de905f87 | ||
|
|
b0d4a7cb8a | ||
|
|
fed698d0d2 | ||
|
|
db01a216fd | ||
|
|
b46a823342 | ||
|
|
2190128fd3 | ||
|
|
9e096b1c89 | ||
|
|
14580c55ac | ||
|
|
076b0453c6 | ||
|
|
6b983c0542 | ||
|
|
07d6c311d7 | ||
|
|
58c337c33c | ||
|
|
aeb2d7b8d5 | ||
|
|
b0fdd8cf76 | ||
|
|
fbde23fbb0 | ||
|
|
3f507c0363 | ||
|
|
a2979d237b | ||
|
|
9d67db049a | ||
|
|
851f486a48 | ||
|
|
be43d1644b | ||
|
|
75505ca79f | ||
|
|
7c8b9962ca | ||
|
|
149cfcb995 | ||
|
|
7611baf52e | ||
|
|
efd3a46331 | ||
|
|
4c0cb41a0e | ||
|
|
f6594e9923 | ||
|
|
4a832ad714 | ||
|
|
0200ba6c95 | ||
|
|
0fc59325ab | ||
|
|
eba852bbde | ||
|
|
f82dd94089 | ||
|
|
3e9e2079a7 | ||
|
|
87cfcb7a4f |
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,8 +1,7 @@
|
||||
<!--
|
||||
Only submit a pull request if all of the following conditions are met:
|
||||
|
||||
* It must work with the latest stable Godot version. Do not submit a
|
||||
pull request if it only works with alpha/beta builds.
|
||||
* It must work with the latest Godot version of the branch you're submitting to.
|
||||
|
||||
* It must follow all of the Godot style guides, including the GDScript
|
||||
style guide and the C# style guide.
|
||||
|
||||
2
.github/dist/export_presets.cfg
vendored
@@ -5,7 +5,7 @@ platform="HTML5"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
include_filter="*.json"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
|
||||
19
.github/dist/footer.html
vendored
@@ -2,15 +2,16 @@
|
||||
</ul>
|
||||
<h2>Unavailable demos</h2>
|
||||
<ul>
|
||||
<li><code>2d/hdr/</code>: Not supported on HTML5 yet.
|
||||
<li><code>3d/voxel/</code>: Not supported on HTML5 yet.
|
||||
<li><code>audio/device_changer/</code>: Not supported on HTML5 due to browser limitations.
|
||||
<li><code>loading/background_load/</code>: Not supported on HTML5 yet.
|
||||
<li><code>loading/multiple_threads_loading/</code>: Not supported on HTML5 yet.
|
||||
<li><code>loading/threads/</code>: Not supported on HTML5 yet.
|
||||
<li><code>misc/matrix_transform/</code>: Results are only visible in the editor.
|
||||
<li><code>mobile/android_iap/</code>: Only relevant on native Android.
|
||||
<li><code>mobile/sensors/</code>: Not supported on HTML5 yet.
|
||||
<li><code>2d/hdr/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>3d/global_illumination/</code>: Not supported on HTML5 yet (freezes the browser).</li>
|
||||
<li><code>3d/voxel/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>audio/device_changer/</code>: Not supported on HTML5 due to browser limitations.</li>
|
||||
<li><code>loading/background_load/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>loading/multiple_threads_loading/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>loading/threads/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>misc/matrix_transform/</code>: Results are only visible in the editor.</li>
|
||||
<li><code>mobile/android_iap/</code>: Only relevant on native Android.</li>
|
||||
<li><code>mobile/sensors/</code>: Not supported on HTML5 yet.</li>
|
||||
<li><code>mono/*/</code>: Not available yet (requires Mono-enabled HTML5 build).</li>
|
||||
<li><code>networking/*/</code>: Doesn't make sense to be hosted on a static host, as the server must be hosted on the same origin due to the browser's same-origin policy.</li>
|
||||
<li><code>plugins/*/</code>: Only effective within the editor.</li>
|
||||
|
||||
99
.github/workflows/export_html5.yml
vendored
@@ -1,99 +0,0 @@
|
||||
name: Export projects to HTML5 and deploy to GitHub Pages
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
GODOT_VERSION: 3.3.3
|
||||
|
||||
jobs:
|
||||
export-html5:
|
||||
name: Export projects to HTML5 and deploy to GitHub Pages
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: barichello/godot-ci:3.3.3
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup
|
||||
run: |
|
||||
mkdir -p ~/.local/share/godot/templates/
|
||||
mv /root/.local/share/godot/templates/$GODOT_VERSION.stable ~/.local/share/godot/templates/$GODOT_VERSION.stable
|
||||
|
||||
- name: Export projects to HTML5
|
||||
run: |
|
||||
apt-get update -qq && apt-get install -qqq imagemagick
|
||||
|
||||
# Don't export Mono demos (not supported yet), demos that can't be run in HTML5
|
||||
# since they're platform-specific or demos that are currently broken in HTML5.
|
||||
# Remember to update `.github/dist/footer.html` when updating the list of excluded demos.
|
||||
rm -rf \
|
||||
2d/hdr/ \
|
||||
3d/voxel/ \
|
||||
audio/device_changer/ \
|
||||
loading/background_load/ \
|
||||
loading/multiple_threads_loading/ \
|
||||
loading/threads/ \
|
||||
misc/matrix_transform/ \
|
||||
mobile/android_iap/ \
|
||||
mobile/sensors/ \
|
||||
mono/ \
|
||||
networking/ \
|
||||
plugins/
|
||||
|
||||
for panorama in 3d/material_testers/backgrounds/*.hdr; do
|
||||
# Decrease the resolution to get below the 20 MB per-file limit.
|
||||
# Otherwise, the website can't be deployed as files larger than 20 MB
|
||||
# can't be pushed to GitHub anymore.
|
||||
mogrify -resize 75% "$panorama"
|
||||
done
|
||||
|
||||
BASEDIR="$PWD"
|
||||
|
||||
# Use absolute paths so that we can `cd` without having to go back to the parent directory manually.
|
||||
for demo in */*/; do
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo "Exporting demo $demo..."
|
||||
echo "================================"
|
||||
|
||||
mkdir -p "$BASEDIR/.github/dist/$demo"
|
||||
cd "$BASEDIR/$demo"
|
||||
|
||||
# Copy an export template preset file configured for HTML5 exporting.
|
||||
# This way, we don't have to commit `export_presets.cfg` for each project.
|
||||
cp "$BASEDIR/.github/dist/export_presets.cfg" .
|
||||
godot --export "HTML5" "$BASEDIR/.github/dist/$demo/index.html"
|
||||
|
||||
# Replace the WASM file with a symbolic link to avoid duplicating files in the pushed branch.
|
||||
# (WASM files are identical across projects, but not PCK or HTML files.)
|
||||
mv -f "$BASEDIR/.github/dist/$demo/index.wasm" "$BASEDIR/.github/dist/index.wasm"
|
||||
# The symlink must be relative as it needs to point to a file within the pushed repository.
|
||||
ln -s "../../index.wasm" "$BASEDIR/.github/dist/$demo/index.wasm"
|
||||
|
||||
# Append the demo to the list of demos for the website.
|
||||
PROJECT_NAME=$(cat project.godot | grep "config/name" | cut -d '"' -f 2 | tr -d "\n")
|
||||
echo "<li><a href='$demo'><img width="64" height="64" src="$demo/favicon.png" alt=""><p>$PROJECT_NAME</p></a></li>" >> "$BASEDIR/.github/dist/demos.html"
|
||||
done
|
||||
|
||||
cat "$BASEDIR/.github/dist/header.html" "$BASEDIR/.github/dist/demos.html" "$BASEDIR/.github/dist/footer.html" > "$BASEDIR/.github/dist/index.html"
|
||||
|
||||
# Clean up files that don't need to be deployed.
|
||||
rm -f "$BASEDIR/.github/dist/header.html" "$BASEDIR/.github/dist/demos.html" "$BASEDIR/.github/dist/footer.html" "$BASEDIR/.github/dist/export_presets.cfg"
|
||||
|
||||
# Installing rsync is needed in order to deploy to GitHub Pages. Without it, the build will fail.
|
||||
- name: Install rsync 📚
|
||||
run: |
|
||||
apt-get update -qq && apt-get install -qqq rsync
|
||||
- name: Deploy to GitHub Pages 🚀
|
||||
uses: JamesIves/github-pages-deploy-action@releases/v3
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# The branch the action should deploy to.
|
||||
BRANCH: gh-pages
|
||||
# The folder the action should deploy.
|
||||
FOLDER: .github/dist
|
||||
# Artifacts are large; don't keep the branch's history.
|
||||
SINGLE_COMMIT: true
|
||||
4
.github/workflows/static_checks.yml
vendored
@@ -4,10 +4,10 @@ on: [push, pull_request]
|
||||
jobs:
|
||||
format:
|
||||
name: File formatting (file_format.sh)
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
|
||||
1
.gitignore
vendored
@@ -18,4 +18,5 @@ mono_crash.*.json
|
||||
|
||||
# System/tool-specific ignores
|
||||
.directory
|
||||
.DS_Store
|
||||
*~
|
||||
|
||||
@@ -5,4 +5,4 @@ These demos are all 2D, but otherwise do not have a common theme.
|
||||
Languages: Most have GDScript, some have
|
||||
[GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html)
|
||||
|
||||
Renderers: 6 of them are GLES 3, but most are GLES 2
|
||||
Renderers: 4 of them are GLES 3, but most are GLES 2
|
||||
|
||||
@@ -2,6 +2,7 @@ extends CanvasLayer
|
||||
|
||||
signal start_game
|
||||
|
||||
|
||||
func show_message(text):
|
||||
$MessageLabel.text = text
|
||||
$MessageLabel.show()
|
||||
|
||||
@@ -12,7 +12,7 @@ size = 64
|
||||
font_data = ExtResource( 2 )
|
||||
|
||||
[sub_resource type="InputEventAction" id=3]
|
||||
action = "ui_select"
|
||||
action = "start_game"
|
||||
|
||||
[sub_resource type="ShortCut" id=4]
|
||||
shortcut = SubResource( 3 )
|
||||
@@ -50,6 +50,9 @@ margin_bottom = -100.0
|
||||
custom_fonts/font = SubResource( 2 )
|
||||
shortcut = SubResource( 4 )
|
||||
text = "Start"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="MessageTimer" type="Timer" parent="."]
|
||||
one_shot = true
|
||||
|
||||
@@ -3,6 +3,7 @@ extends Node
|
||||
export(PackedScene) var mob_scene
|
||||
var score
|
||||
|
||||
|
||||
func _ready():
|
||||
randomize()
|
||||
|
||||
@@ -26,14 +27,13 @@ func new_game():
|
||||
|
||||
|
||||
func _on_MobTimer_timeout():
|
||||
# Create a new instance of the Mob scene.
|
||||
var mob = mob_scene.instance()
|
||||
|
||||
# Choose a random location on Path2D.
|
||||
var mob_spawn_location = get_node("MobPath/MobSpawnLocation")
|
||||
mob_spawn_location.offset = randi()
|
||||
|
||||
# Create a Mob instance and add it to the scene.
|
||||
var mob = mob_scene.instance()
|
||||
add_child(mob)
|
||||
|
||||
# Set the mob's direction perpendicular to the path direction.
|
||||
var direction = mob_spawn_location.rotation + PI / 2
|
||||
|
||||
@@ -48,6 +48,9 @@ func _on_MobTimer_timeout():
|
||||
var velocity = Vector2(rand_range(150.0, 250.0), 0.0)
|
||||
mob.linear_velocity = velocity.rotated(direction)
|
||||
|
||||
# Spawn the mob by adding it to the Main scene.
|
||||
add_child(mob)
|
||||
|
||||
|
||||
func _on_ScoreTimer_timeout():
|
||||
score += 1
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends RigidBody2D
|
||||
|
||||
|
||||
func _ready():
|
||||
$AnimatedSprite.playing = true
|
||||
var mob_types = $AnimatedSprite.frames.get_animation_names()
|
||||
|
||||
@@ -5,6 +5,7 @@ signal hit
|
||||
export var speed = 400 # How fast the player will move (pixels/sec).
|
||||
var screen_size # Size of the game window.
|
||||
|
||||
|
||||
func _ready():
|
||||
screen_size = get_viewport_rect().size
|
||||
hide()
|
||||
|
||||
@@ -4,7 +4,7 @@ This is a simple game where your character must move
|
||||
and avoid the enemies for as long as possible.
|
||||
|
||||
This is a finished version of the game featured in the
|
||||
["Your first game"](https://docs.godotengine.org/en/latest/getting_started/step_by_step/your_first_game.html)
|
||||
["Your first 2D game"](https://docs.godotengine.org/en/latest/getting_started/first_2d_game/index.html)
|
||||
tutorial in the documentation. For more details,
|
||||
consider following the tutorial in the documentation.
|
||||
|
||||
|
||||
@@ -17,5 +17,7 @@ force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
|
||||
@@ -14,7 +14,7 @@ config/name="Dodge the Creeps"
|
||||
config/description="This is a simple game where your character must move
|
||||
and avoid the enemies for as long as possible.
|
||||
|
||||
This is a finished version of the game featured in the 'Your first game'
|
||||
This is a finished version of the game featured in the 'Your first 2D game'
|
||||
tutorial in the documentation. For more details, consider
|
||||
following the tutorial in the documentation."
|
||||
run/main_scene="res://Main.tscn"
|
||||
@@ -61,3 +61,8 @@ move_down={
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
start_game={
|
||||
"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":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
@@ -49,9 +49,6 @@ __meta__ = {
|
||||
[node name="Control" type="Control" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="StatesStackDiplayer" parent="Control" instance=ExtResource( 3 )]
|
||||
|
||||
|
||||
@@ -7,9 +7,6 @@ anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
margin_left = -220.0
|
||||
margin_bottom = 170.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Keys" type="Label" parent="."]
|
||||
anchor_right = 1.0
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Panel
|
||||
|
||||
onready var fsm_node = get_node("../../Player/StateMachine")
|
||||
|
||||
|
||||
func _process(_delta):
|
||||
var states_names = ""
|
||||
var numbers = ""
|
||||
|
||||
@@ -104,6 +104,7 @@ position = Vector2( 110, 0 )
|
||||
polygon = PoolVector2Array( -20, 0, -20, -20, 20, -20, 20, 0 )
|
||||
|
||||
[node name="StateNameDisplayer" type="Label" parent="."]
|
||||
physics_interpolation_mode = 2
|
||||
margin_left = -109.0
|
||||
margin_top = -172.0
|
||||
margin_right = 110.0
|
||||
@@ -114,9 +115,6 @@ align = 1
|
||||
valign = 1
|
||||
uppercase = true
|
||||
script = ExtResource( 15 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[connection signal="state_changed" from="StateMachine" to="BodyPivot/WeaponPivot/Offset/Sword" method="_on_StateMachine_state_changed"]
|
||||
[connection signal="state_changed" from="StateMachine" to="StateNameDisplayer" method="_on_StateMachine_state_changed"]
|
||||
|
||||
@@ -5,6 +5,7 @@ export(float) var speed = 1000.0
|
||||
|
||||
onready var root = get_tree().root
|
||||
|
||||
|
||||
func _ready():
|
||||
set_as_toplevel(true)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Node2D
|
||||
|
||||
var bullet = preload("Bullet.tscn")
|
||||
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event.is_action_pressed("fire"):
|
||||
fire()
|
||||
@@ -13,6 +14,6 @@ func fire():
|
||||
|
||||
$CooldownTimer.start()
|
||||
var new_bullet = bullet.instance()
|
||||
add_child(new_bullet)
|
||||
new_bullet.position = global_position
|
||||
new_bullet.direction = owner.look_direction
|
||||
add_child(new_bullet)
|
||||
|
||||
@@ -7,6 +7,7 @@ signal direction_changed(new_direction)
|
||||
|
||||
var look_direction = Vector2.RIGHT setget set_look_direction
|
||||
|
||||
|
||||
func take_damage(attacker, amount, effect = null):
|
||||
if is_a_parent_of(attacker):
|
||||
return
|
||||
|
||||
@@ -6,6 +6,7 @@ onready var jump = $Jump
|
||||
onready var stagger = $Stagger
|
||||
onready var attack = $Attack
|
||||
|
||||
|
||||
func _ready():
|
||||
states_map = {
|
||||
"idle": idle,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends "res://state_machine/state.gd"
|
||||
|
||||
|
||||
func enter():
|
||||
owner.get_node("AnimationPlayer").play("idle")
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ extends "res://state_machine/state.gd"
|
||||
# The animation only affects the Body Sprite's modulate property so it
|
||||
# could stack with other animations if we had two AnimationPlayer nodes.
|
||||
|
||||
|
||||
func enter():
|
||||
owner.get_node("AnimationPlayer").play("stagger")
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Label
|
||||
|
||||
var start_position = Vector2()
|
||||
|
||||
|
||||
func _ready():
|
||||
start_position = rect_position
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends "res://state_machine/state.gd"
|
||||
|
||||
|
||||
# Initialize the state. E.g. change the animation.
|
||||
func enter():
|
||||
owner.set_dead(true)
|
||||
|
||||
@@ -17,6 +17,7 @@ var horizontal_velocity = Vector2()
|
||||
var vertical_speed = 0.0
|
||||
var height = 0.0
|
||||
|
||||
|
||||
func initialize(speed, velocity):
|
||||
horizontal_speed = speed
|
||||
if speed > 0.0:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
extends "res://state_machine/state.gd"
|
||||
# Collection of important methods to handle direction and animation.
|
||||
|
||||
|
||||
func handle_input(event):
|
||||
if event.is_action_pressed("simulate_damage"):
|
||||
emit_signal("finished", "stagger")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends "on_ground.gd"
|
||||
|
||||
|
||||
func enter():
|
||||
owner.get_node("AnimationPlayer").play("idle")
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
extends "on_ground.gd"
|
||||
|
||||
export(float) var max_walk_speed = 450
|
||||
export(float) var max_run_speed = 700
|
||||
|
||||
export(float) var max_walk_speed = 450.0
|
||||
export(float) var max_run_speed = 700.0
|
||||
|
||||
|
||||
func enter():
|
||||
speed = 0.0
|
||||
|
||||
@@ -4,6 +4,7 @@ extends "../motion.gd"
|
||||
var speed = 0.0
|
||||
var velocity = Vector2()
|
||||
|
||||
|
||||
func handle_input(event):
|
||||
if event.is_action_pressed("jump"):
|
||||
emit_signal("finished", "jump")
|
||||
|
||||
@@ -30,6 +30,7 @@ var combo = [{
|
||||
|
||||
var hit_objects = []
|
||||
|
||||
|
||||
func _ready():
|
||||
# warning-ignore:return_value_discarded
|
||||
$AnimationPlayer.connect("animation_finished", self, "_on_animation_finished")
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Position2D
|
||||
|
||||
var z_index_start = 0
|
||||
|
||||
|
||||
func _ready():
|
||||
#warning-ignore:return_value_discarded
|
||||
owner.connect("direction_changed", self, "_on_Parent_direction_changed")
|
||||
|
||||
@@ -94,6 +94,10 @@ attack={
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
common/physics_interpolation=true
|
||||
|
||||
[rendering]
|
||||
|
||||
quality/driver/driver_name="GLES2"
|
||||
|
||||
@@ -6,6 +6,7 @@ extends Node
|
||||
# warning-ignore:unused_signal
|
||||
signal finished(next_state_name)
|
||||
|
||||
|
||||
# Initialize the state. E.g. change the animation.
|
||||
func enter():
|
||||
pass
|
||||
|
||||
@@ -17,6 +17,7 @@ var states_stack = []
|
||||
var current_state = null
|
||||
var _active = false setget set_active
|
||||
|
||||
|
||||
func _ready():
|
||||
if not start_state:
|
||||
start_state = get_child(0).get_path()
|
||||
|
||||
@@ -48,6 +48,7 @@ var brush_shape = BrushShapes.CIRCLE;
|
||||
# in the _draw function for more details).
|
||||
var bg_color = Color.white
|
||||
|
||||
|
||||
func _ready():
|
||||
# Get the top left position node. We need this to find out whether or not the mouse is inside the canvas.
|
||||
TL_node = get_node("TLPos")
|
||||
|
||||
@@ -215,8 +215,7 @@ text = "Clear picture"
|
||||
[node name="SaveFileDialog" type="FileDialog" parent="."]
|
||||
margin_right = 600.0
|
||||
margin_bottom = 400.0
|
||||
rect_min_size = Vector2( 300, 105 )
|
||||
resizable = true
|
||||
access = 2
|
||||
filters = PoolStringArray( "*.png" )
|
||||
current_dir = "/home/aaronfranke/workspace/godot-demo-projects/2d/gd_paint"
|
||||
current_path = "/home/aaronfranke/workspace/godot-demo-projects/2d/gd_paint/"
|
||||
|
||||
@@ -10,6 +10,7 @@ onready var _parent = get_parent()
|
||||
onready var save_dialog = _parent.get_node(@"SaveFileDialog")
|
||||
onready var paint_control = _parent.get_node(@"PaintControl")
|
||||
|
||||
|
||||
func _ready():
|
||||
# warning-ignore-all:return_value_discarded
|
||||
# Assign all of the needed signals for the oppersation buttons.
|
||||
|
||||
@@ -4,6 +4,7 @@ const CAVE_LIMIT = 1000
|
||||
|
||||
onready var cave = $Cave
|
||||
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event is InputEventMouseMotion and event.button_mask > 0:
|
||||
var rel_x = event.relative.x
|
||||
|
||||
@@ -60,6 +60,11 @@ move_up={
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
common/physics_fps=120
|
||||
common/physics_interpolation=true
|
||||
|
||||
[rendering]
|
||||
|
||||
quality/driver/driver_name="GLES2"
|
||||
|
||||
@@ -3,6 +3,7 @@ extends KinematicBody2D
|
||||
const MOTION_SPEED = 160 # Pixels/second.
|
||||
const TAN30DEG = tan(deg2rad(30))
|
||||
|
||||
|
||||
func _physics_process(_delta):
|
||||
var motion = Vector2()
|
||||
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
|
||||
|
||||
@@ -18,3 +18,4 @@ shape = SubResource( 1 )
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
current = true
|
||||
process_mode = 0
|
||||
|
||||
@@ -2,6 +2,7 @@ extends Node2D
|
||||
|
||||
export(PackedScene) var ball_scene = preload("res://ball.tscn")
|
||||
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event.is_echo():
|
||||
return
|
||||
|
||||
@@ -29,7 +29,9 @@ singletons=[ ]
|
||||
|
||||
[physics]
|
||||
|
||||
common/physics_fps=120
|
||||
2d/default_gravity=300
|
||||
common/physics_interpolation=true
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -90,3 +90,4 @@ physics_material_override = SubResource( 10 )
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
offset = Vector2( 400, 300 )
|
||||
current = true
|
||||
process_mode = 0
|
||||
|
||||
BIN
2d/isometric/decorations/banner.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
35
2d/isometric/decorations/banner.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/banner.png-45264389ab2131df9b78c5ec3b246773.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/banner.png"
|
||||
dest_files=[ "res://.import/banner.png-45264389ab2131df9b78c5ec3b246773.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
2d/isometric/decorations/bone_pile_1.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
35
2d/isometric/decorations/bone_pile_1.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bone_pile_1.png-72c582c4f31012bb8009120719983b0c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/bone_pile_1.png"
|
||||
dest_files=[ "res://.import/bone_pile_1.png-72c582c4f31012bb8009120719983b0c.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
|
||||
20
2d/isometric/decorations/bone_pile_1.tscn
Normal file
@@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/bone_pile_1.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 18.0
|
||||
height = 28.0
|
||||
|
||||
[node name="bone_pile" type="Node2D"]
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -14 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -15 )
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 1 )
|
||||
BIN
2d/isometric/decorations/bone_pile_2.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
35
2d/isometric/decorations/bone_pile_2.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bone_pile_2.png-f448133711e0ebea56f9e49e956ac902.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/bone_pile_2.png"
|
||||
dest_files=[ "res://.import/bone_pile_2.png-f448133711e0ebea56f9e49e956ac902.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
|
||||
20
2d/isometric/decorations/bone_pile_2.tscn
Normal file
@@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/bone_pile_2.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 13.0
|
||||
height = 26.0001
|
||||
|
||||
[node name="bone_pile" type="Node2D"]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
position = Vector2( 0, -13 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -13 )
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 1 )
|
||||
BIN
2d/isometric/decorations/candle.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
35
2d/isometric/decorations/candle.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/candle.png-223de51ae9e8ec99121079382498836e.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/candle.png"
|
||||
dest_files=[ "res://.import/candle.png-223de51ae9e8ec99121079382498836e.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
|
||||
131
2d/isometric/decorations/candle.tscn
Normal file
@@ -0,0 +1,131 @@
|
||||
[gd_scene load_steps=14 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/sparkle.png" type="Texture" id=1]
|
||||
[ext_resource path="res://decorations/candle.png" type="Texture" id=2]
|
||||
[ext_resource path="res://decorations/fire.png" type="Texture" id=3]
|
||||
[ext_resource path="res://decorations/glow.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id=1]
|
||||
particles_animation = true
|
||||
particles_anim_h_frames = 11
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="Gradient" id=2]
|
||||
offsets = PoolRealArray( 0, 0.625698, 1 )
|
||||
colors = PoolColorArray( 1, 0.584314, 0, 1, 1, 0.84063, 0.226563, 1, 1, 0.584314, 0, 1 )
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id=3]
|
||||
blend_mode = 1
|
||||
particles_animation = true
|
||||
particles_anim_h_frames = 8
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="Curve" id=4]
|
||||
max_value = 0.3
|
||||
_data = [ Vector2( 0, 0 ), 0.0, 1.36377, 0, 0, Vector2( 0.262376, 0.188182 ), 0.41974, 0.41974, 0, 0, Vector2( 1, 0.0295454 ), -1.06101, 0.0, 0, 0 ]
|
||||
|
||||
[sub_resource type="Gradient" id=5]
|
||||
offsets = PoolRealArray( 0, 0.435754, 1 )
|
||||
colors = PoolColorArray( 1, 0.351563, 0, 1, 0.895996, 0.745333, 0.230999, 1, 1, 0.426842, 0.0234375, 1 )
|
||||
|
||||
[sub_resource type="Gradient" id=12]
|
||||
offsets = PoolRealArray( 0, 0.100559, 0.234637, 0.480447, 0.603352, 1 )
|
||||
colors = PoolColorArray( 0.714844, 0.714844, 0.714844, 1, 0.382813, 0.382813, 0.382813, 1, 0.601563, 0.601563, 0.601563, 1, 0.229687, 0.229687, 0.229687, 1, 0.0197581, 0.0197581, 0.0197581, 1, 0, 0, 0, 1 )
|
||||
|
||||
[sub_resource type="GradientTexture2D" id=9]
|
||||
gradient = SubResource( 12 )
|
||||
width = 128
|
||||
height = 128
|
||||
fill = 1
|
||||
fill_from = Vector2( 0.5, 0.5 )
|
||||
fill_to = Vector2( 0, 0 )
|
||||
|
||||
[sub_resource type="Gradient" id=13]
|
||||
offsets = PoolRealArray( 0.0111732, 0.843575 )
|
||||
colors = PoolColorArray( 0.648926, 0.648926, 0.648926, 1, 0, 0, 0, 1 )
|
||||
|
||||
[sub_resource type="GradientTexture2D" id=10]
|
||||
gradient = SubResource( 13 )
|
||||
width = 800
|
||||
height = 500
|
||||
fill = 1
|
||||
fill_from = Vector2( 0.5, 0.5 )
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
light_mask = 128
|
||||
position = Vector2( 0, -11 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="glow" type="CPUParticles2D" parent="Sprite"]
|
||||
modulate = Color( 1, 0.360784, 0.113725, 1 )
|
||||
light_mask = 128
|
||||
position = Vector2( -13, -33.244 )
|
||||
scale = Vector2( 0.3, 0.5 )
|
||||
amount = 1
|
||||
lifetime = 0.8
|
||||
texture = ExtResource( 4 )
|
||||
gravity = Vector2( 0, 0 )
|
||||
|
||||
[node name="Fire" type="CPUParticles2D" parent="Sprite"]
|
||||
light_mask = 128
|
||||
material = SubResource( 1 )
|
||||
position = Vector2( -13, -35 )
|
||||
scale = Vector2( 0.6, 0.6 )
|
||||
amount = 1
|
||||
lifetime = 0.8
|
||||
texture = ExtResource( 3 )
|
||||
gravity = Vector2( 0, 0 )
|
||||
color_ramp = SubResource( 2 )
|
||||
anim_speed = 1.0
|
||||
|
||||
[node name="Sparkle" type="CPUParticles2D" parent="Sprite"]
|
||||
light_mask = 128
|
||||
material = SubResource( 3 )
|
||||
position = Vector2( -13, -35 )
|
||||
scale = Vector2( 0.6, 0.6 )
|
||||
amount = 3
|
||||
texture = ExtResource( 1 )
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 8.0
|
||||
gravity = Vector2( 0, -80 )
|
||||
angular_velocity = 1.0
|
||||
tangential_accel = 49.54
|
||||
scale_amount_curve = SubResource( 4 )
|
||||
color_ramp = SubResource( 5 )
|
||||
anim_speed = 1.0
|
||||
|
||||
[node name="flow front" type="CPUParticles2D" parent="Sprite"]
|
||||
modulate = Color( 0.94902, 1, 0, 1 )
|
||||
light_mask = 128
|
||||
position = Vector2( -13, -28.689 )
|
||||
scale = Vector2( 0.25, 0.25 )
|
||||
amount = 1
|
||||
lifetime = 0.8
|
||||
texture = ExtResource( 4 )
|
||||
gravity = Vector2( 0, 0 )
|
||||
|
||||
[node name="Light2D2" type="Light2D" parent="."]
|
||||
light_mask = 2
|
||||
position = Vector2( -15, -49 )
|
||||
texture = SubResource( 9 )
|
||||
color = Color( 1, 0.466667, 0.0352941, 1 )
|
||||
energy = 2.0
|
||||
range_height = 450.9
|
||||
range_item_cull_mask = 145
|
||||
shadow_buffer_size = 512
|
||||
shadow_gradient_length = 30.0
|
||||
shadow_item_cull_mask = 145
|
||||
|
||||
[node name="Light2D" type="Light2D" parent="."]
|
||||
light_mask = 2
|
||||
texture = SubResource( 10 )
|
||||
color = Color( 0.709804, 0.388235, 0.313726, 1 )
|
||||
range_height = 901.9
|
||||
range_item_cull_mask = 17
|
||||
shadow_enabled = true
|
||||
shadow_gradient_length = 20.0
|
||||
shadow_item_cull_mask = 17
|
||||
BIN
2d/isometric/decorations/coin_pile.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
35
2d/isometric/decorations/coin_pile.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/coin_pile.png-e6c4ef8bf22301fe805244aafb152afe.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/coin_pile.png"
|
||||
dest_files=[ "res://.import/coin_pile.png-e6c4ef8bf22301fe805244aafb152afe.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
|
||||
20
2d/isometric/decorations/coin_pile.tscn
Normal file
@@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/coin_pile.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 12.0
|
||||
height = 38.0
|
||||
|
||||
[node name="coin_pile" type="Node2D"]
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -23 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -13 )
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 1 )
|
||||
BIN
2d/isometric/decorations/crow_looking.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
35
2d/isometric/decorations/crow_looking.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/crow_looking.png-21ce662085fe50bb572e6cecb19ea02a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/crow_looking.png"
|
||||
dest_files=[ "res://.import/crow_looking.png-21ce662085fe50bb572e6cecb19ea02a.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
2d/isometric/decorations/crow_sleep.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
35
2d/isometric/decorations/crow_sleep.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/crow_sleep.png-8118ad8761e95d588250a6deae9ca9c0.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/crow_sleep.png"
|
||||
dest_files=[ "res://.import/crow_sleep.png-8118ad8761e95d588250a6deae9ca9c0.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
2d/isometric/decorations/drape_1.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
35
2d/isometric/decorations/drape_1.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/drape_1.png-4cc207f7e61e16248cb4322ecca80e49.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/drape_1.png"
|
||||
dest_files=[ "res://.import/drape_1.png-4cc207f7e61e16248cb4322ecca80e49.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
2d/isometric/decorations/fire.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
@@ -2,15 +2,15 @@
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"
|
||||
path="res://.import/fire.png-3d46874d6317d8fad2d37ee8071d140d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://isotiles.png"
|
||||
dest_files=[ "res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex" ]
|
||||
source_file="res://decorations/fire.png"
|
||||
dest_files=[ "res://.import/fire.png-3d46874d6317d8fad2d37ee8071d140d.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/isometric/decorations/glow.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
35
2d/isometric/decorations/glow.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/glow.png-412cb028114e1a11dcd8adb3e27078d4.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/glow.png"
|
||||
dest_files=[ "res://.import/glow.png-412cb028114e1a11dcd8adb3e27078d4.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
|
||||
9
2d/isometric/decorations/internal_shadow.tscn
Normal file
@@ -0,0 +1,9 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/shadow_gradient.png" type="Texture" id=1]
|
||||
|
||||
[node name="InternalShadow" type="Polygon2D"]
|
||||
color = Color( 0.0705882, 0.0705882, 0.266667, 0.85098 )
|
||||
texture = ExtResource( 1 )
|
||||
polygon = PoolVector2Array( -92, -289, -94, 1, 128, -1, 121, -295 )
|
||||
uv = PoolVector2Array( -2, -1, -2, 292, 264, 291, 261, -2 )
|
||||
BIN
2d/isometric/decorations/looking.psd
Normal file
BIN
2d/isometric/decorations/paw_prints.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
35
2d/isometric/decorations/paw_prints.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/paw_prints.png-f99788aaeccec00607d299cbda1deba3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/paw_prints.png"
|
||||
dest_files=[ "res://.import/paw_prints.png-f99788aaeccec00607d299cbda1deba3.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
2d/isometric/decorations/rug_1.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
35
2d/isometric/decorations/rug_1.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/rug_1.png-73bb18740fb0416ff279c3e2e040e1e3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/rug_1.png"
|
||||
dest_files=[ "res://.import/rug_1.png-73bb18740fb0416ff279c3e2e040e1e3.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
2d/isometric/decorations/shadow_gradient.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
35
2d/isometric/decorations/shadow_gradient.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/shadow_gradient.png-ada77e271da2569a07ee8c308bf8f891.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/shadow_gradient.png"
|
||||
dest_files=[ "res://.import/shadow_gradient.png-ada77e271da2569a07ee8c308bf8f891.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
2d/isometric/decorations/sparkle.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
35
2d/isometric/decorations/sparkle.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/sparkle.png-19a635cf744f1090fe6b7df22aa07aa4.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/sparkle.png"
|
||||
dest_files=[ "res://.import/sparkle.png-19a635cf744f1090fe6b7df22aa07aa4.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
2d/isometric/decorations/vase_1.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
35
2d/isometric/decorations/vase_1.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/vase_1.png-926d438e092a6711354055578c6046bd.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/vase_1.png"
|
||||
dest_files=[ "res://.import/vase_1.png-926d438e092a6711354055578c6046bd.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
|
||||
19
2d/isometric/decorations/vase_1.tscn
Normal file
@@ -0,0 +1,19 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/vase_1.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 9.0
|
||||
|
||||
[node name="Vase1" type="Node2D"]
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -29 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2( 0, -9 )
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 1 )
|
||||
BIN
2d/isometric/decorations/vase_2.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
35
2d/isometric/decorations/vase_2.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/vase_2.png-d6cca4a3647dd9b8a230cb201e6f4d32.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/vase_2.png"
|
||||
dest_files=[ "res://.import/vase_2.png-d6cca4a3647dd9b8a230cb201e6f4d32.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
|
||||
20
2d/isometric/decorations/vase_2.tscn
Normal file
@@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://decorations/vase_2.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 9.0
|
||||
height = 18.0
|
||||
|
||||
[node name="vase2" type="Node2D"]
|
||||
|
||||
[node name="Area2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Area2D"]
|
||||
position = Vector2( 0, -20 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
position = Vector2( 0, -8 )
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 1 )
|
||||
BIN
2d/isometric/decorations/wall_skull.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
35
2d/isometric/decorations/wall_skull.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/wall_skull.png-b65fc438ee51c09cef1ea57aa5c7d6b2.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://decorations/wall_skull.png"
|
||||
dest_files=[ "res://.import/wall_skull.png-b65fc438ee51c09cef1ea57aa5c7d6b2.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
|
||||
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 200 KiB |
54
2d/isometric/player/goblin.gd
Normal file
@@ -0,0 +1,54 @@
|
||||
extends KinematicBody2D
|
||||
|
||||
const MOTION_SPEED = 160 # Pixels/second.
|
||||
|
||||
var last_direction = Vector2(1, 0)
|
||||
|
||||
var anim_directions = {
|
||||
"idle": [ # list of [animation name, horizontal flip]
|
||||
["side_right_idle", false],
|
||||
["45front_right_idle", false],
|
||||
["front_idle", false],
|
||||
["45front_left_idle", false],
|
||||
["side_left_idle", false],
|
||||
["45back_left_idle", false],
|
||||
["back_idle", false],
|
||||
["45back_right_idle", false],
|
||||
],
|
||||
|
||||
"walk": [
|
||||
["side_right_walk", false],
|
||||
["45front_right_walk", false],
|
||||
["front_walk", false],
|
||||
["45front_left_walk", false],
|
||||
["side_left_walk", false],
|
||||
["45back_left_walk", false],
|
||||
["back_walk", false],
|
||||
["45back_right_walk", false],
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
func _physics_process(_delta):
|
||||
var motion = Vector2()
|
||||
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
|
||||
motion.y = Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
|
||||
motion.y /= 2
|
||||
motion = motion.normalized() * MOTION_SPEED
|
||||
#warning-ignore:return_value_discarded
|
||||
var dir = move_and_slide(motion)
|
||||
|
||||
if dir.length() > 0:
|
||||
last_direction = dir
|
||||
update_animation("walk")
|
||||
else:
|
||||
update_animation("idle")
|
||||
|
||||
|
||||
func update_animation(anim_set):
|
||||
|
||||
var angle = rad2deg(last_direction.angle()) + 22.5
|
||||
var slice_dir = floor(angle / 45)
|
||||
|
||||
$Sprite.set_animation(anim_directions[anim_set][slice_dir][0])
|
||||
$Sprite.flip_h = anim_directions[anim_set][slice_dir][1]
|
||||
BIN
2d/isometric/player/goblin.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
35
2d/isometric/player/goblin.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/goblin.png-32452b37152c86975cc3bde34afb02b5.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://player/goblin.png"
|
||||
dest_files=[ "res://.import/goblin.png-32452b37152c86975cc3bde34afb02b5.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=1.0
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
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=false
|
||||
svg/scale=1.0
|
||||
1415
2d/isometric/player/goblin.tscn
Normal file
@@ -68,6 +68,11 @@ move_up={
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
common/physics_fps=120
|
||||
common/physics_interpolation=true
|
||||
|
||||
[rasterizer]
|
||||
|
||||
use_pixel_snap=true
|
||||
|
||||
BIN
2d/isometric/tileset/isotiles.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
35
2d/isometric/tileset/isotiles.png.import
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/isotiles.png-525cf6639aba62989bb423b9cdb9e1f3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://tileset/isotiles.png"
|
||||
dest_files=[ "res://.import/isotiles.png-525cf6639aba62989bb423b9cdb9e1f3.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,15 +1,15 @@
|
||||
[gd_resource type="TileSet" load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://isotiles.png" type="Texture" id=1]
|
||||
[ext_resource path="res://tileset/isotiles.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PoolVector2Array( 0, -32, 64, 0, 0, 32, -64, 0 )
|
||||
points = PoolVector2Array( 68, 68, 132, 100, 68, 132, 4, 100 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
points = PoolVector2Array( -24, -12, -10, -22, 10, -22, 24, -12, 24, 2, 10, 12, -10, 12, -24, 2 )
|
||||
points = PoolVector2Array( 5, 67, 17, 59, 41, 59, 53, 67, 53, 83, 41, 91, 21, 91, 5, 83 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
points = PoolVector2Array( 2, 86, 82, 46, 82, 70, 2, 110 )
|
||||
|
||||
[resource]
|
||||
0/name = "Base"
|
||||
@@ -46,10 +46,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
2/modulate = Color( 1, 1, 1, 1 )
|
||||
2/region = Rect2( 28, 220, 140, 140 )
|
||||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 70, 70 )
|
||||
2/navigation_offset = Vector2( 70, 70 )
|
||||
2/shape_offset = Vector2( 70, 70 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 70, 70 )
|
||||
2/occluder_offset = Vector2( 0, 0 )
|
||||
2/navigation_offset = Vector2( 0, 0 )
|
||||
2/shape_offset = Vector2( 0, 0 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
2/shape = SubResource( 1 )
|
||||
2/shape_one_way = false
|
||||
2/shape_one_way_margin = 1.0
|
||||
@@ -58,7 +58,7 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 1 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 70, 70 )
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
2/z_index = 0
|
||||
3/name = "Column"
|
||||
@@ -67,10 +67,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
3/modulate = Color( 1, 1, 1, 1 )
|
||||
3/region = Rect2( 259, 241, 55, 95 )
|
||||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 27.5, 47.5 )
|
||||
3/navigation_offset = Vector2( 27.5, 47.5 )
|
||||
3/shape_offset = Vector2( 29.5, 47.5 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape = SubResource( 2 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 1.0
|
||||
@@ -79,7 +79,7 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 2 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
3/z_index = 0
|
||||
4/name = "Door1"
|
||||
@@ -88,10 +88,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
4/modulate = Color( 1, 1, 1, 1 )
|
||||
4/region = Rect2( 54, 426, 85, 110 )
|
||||
4/tile_mode = 0
|
||||
4/occluder_offset = Vector2( 42.5, 55 )
|
||||
4/navigation_offset = Vector2( 42.5, 55 )
|
||||
4/shape_offset = Vector2( 42.5, 55 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 42.5, 55 )
|
||||
4/occluder_offset = Vector2( 0, 0 )
|
||||
4/navigation_offset = Vector2( 0, 0 )
|
||||
4/shape_offset = Vector2( 0, 0 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
4/shape = SubResource( 3 )
|
||||
4/shape_one_way = false
|
||||
4/shape_one_way_margin = 1.0
|
||||
@@ -100,6 +100,6 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 3 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 42.5, 55 )
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
4/z_index = 0
|
||||