Compare commits

..

2 Commits
3.5 ... 3.4

Author SHA1 Message Date
Aaron Franke
cd242f60fb [3.4] Simplify list of branches in the README (#1255) 2025-10-02 17:01:44 -07:00
Rémi Verschelde
7a4d361d4d Update README for new branches, matches Godot upstream
(cherry picked from commit c0180d20d1)
2023-02-28 18:36:03 +01:00
360 changed files with 1167 additions and 1925 deletions

View File

@@ -5,7 +5,7 @@ platform="HTML5"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter="*.json"
include_filter=""
exclude_filter=""
export_path=""
script_export_mode=1

View File

@@ -2,7 +2,6 @@ extends CanvasLayer
signal start_game
func show_message(text):
$MessageLabel.text = text
$MessageLabel.show()

View File

@@ -3,7 +3,6 @@ extends Node
export(PackedScene) var mob_scene
var score
func _ready():
randomize()
@@ -51,7 +50,6 @@ func _on_MobTimer_timeout():
# Spawn the mob by adding it to the Main scene.
add_child(mob)
func _on_ScoreTimer_timeout():
score += 1
$HUD.update_score(score)

View File

@@ -20,6 +20,9 @@ mob_scene = ExtResource( 2 )
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0.219608, 0.372549, 0.380392, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Player" parent="." instance=ExtResource( 3 )]

View File

@@ -1,6 +1,5 @@
extends RigidBody2D
func _ready():
$AnimatedSprite.playing = true
var mob_types = $AnimatedSprite.frames.get_animation_names()

View File

@@ -5,7 +5,6 @@ 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()

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -7,6 +7,9 @@ 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

View File

@@ -2,7 +2,6 @@ extends Panel
onready var fsm_node = get_node("../../Player/StateMachine")
func _process(_delta):
var states_names = ""
var numbers = ""

View File

@@ -5,7 +5,6 @@ export(float) var speed = 1000.0
onready var root = get_tree().root
func _ready():
set_as_toplevel(true)

View File

@@ -2,7 +2,6 @@ extends Node2D
var bullet = preload("Bullet.tscn")
func _unhandled_input(event):
if event.is_action_pressed("fire"):
fire()

View File

@@ -7,7 +7,6 @@ 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

View File

@@ -6,7 +6,6 @@ onready var jump = $Jump
onready var stagger = $Stagger
onready var attack = $Attack
func _ready():
states_map = {
"idle": idle,

View File

@@ -1,6 +1,5 @@
extends "res://state_machine/state.gd"
func enter():
owner.get_node("AnimationPlayer").play("idle")

View File

@@ -3,7 +3,6 @@ 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")

View File

@@ -2,7 +2,6 @@ extends Label
var start_position = Vector2()
func _ready():
start_position = rect_position

View File

@@ -1,6 +1,5 @@
extends "res://state_machine/state.gd"
# Initialize the state. E.g. change the animation.
func enter():
owner.set_dead(true)

View File

@@ -17,7 +17,6 @@ var horizontal_velocity = Vector2()
var vertical_speed = 0.0
var height = 0.0
func initialize(speed, velocity):
horizontal_speed = speed
if speed > 0.0:

View File

@@ -1,7 +1,6 @@
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")

View File

@@ -1,6 +1,5 @@
extends "on_ground.gd"
func enter():
owner.get_node("AnimationPlayer").play("idle")

View File

@@ -1,9 +1,7 @@
extends "on_ground.gd"
export(float) var max_walk_speed = 450.0
export(float) var max_run_speed = 700.0
export(float) var max_walk_speed = 450
export(float) var max_run_speed = 700
func enter():
speed = 0.0

View File

@@ -4,7 +4,6 @@ extends "../motion.gd"
var speed = 0.0
var velocity = Vector2()
func handle_input(event):
if event.is_action_pressed("jump"):
emit_signal("finished", "jump")

View File

@@ -30,7 +30,6 @@ var combo = [{
var hit_objects = []
func _ready():
# warning-ignore:return_value_discarded
$AnimationPlayer.connect("animation_finished", self, "_on_animation_finished")

View File

@@ -2,7 +2,6 @@ extends Position2D
var z_index_start = 0
func _ready():
#warning-ignore:return_value_discarded
owner.connect("direction_changed", self, "_on_Parent_direction_changed")

View File

@@ -6,7 +6,6 @@ extends Node
# warning-ignore:unused_signal
signal finished(next_state_name)
# Initialize the state. E.g. change the animation.
func enter():
pass

View File

@@ -17,7 +17,6 @@ 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()

View File

@@ -48,7 +48,6 @@ 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")

View File

@@ -215,7 +215,8 @@ 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/"

View File

@@ -10,7 +10,6 @@ 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.

View File

@@ -4,7 +4,6 @@ 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

View File

@@ -3,7 +3,6 @@ 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")

View File

@@ -2,7 +2,6 @@ extends Node2D
export(PackedScene) var ball_scene = preload("res://ball.tscn")
func _unhandled_input(event):
if event.is_echo():
return

View File

@@ -2,7 +2,6 @@ extends KinematicBody2D
const MOTION_SPEED = 160 # Pixels/second.
func _physics_process(_delta):
var motion = Vector2()
motion.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")

View File

@@ -1,6 +1,5 @@
extends Node
func _on_body_entered(body):
if body.name == "Player":
$"../WinText".show()

View File

@@ -9,7 +9,6 @@ var velocity = Vector2()
onready var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
func _physics_process(delta):
# Horizontal movement code. First, get the player's input.
var walk = WALK_FORCE * (Input.get_action_strength("move_right") - Input.get_action_strength("move_left"))

View File

@@ -1,33 +0,0 @@
extends Sprite
export(float) var character_speed = 400.0
onready var navigation_agent: NavigationAgent2D = $NavigationAgent2D
onready var navigation_path_debug_line: Line2D = $Line2D
func _ready():
navigation_path_debug_line.set_as_toplevel(true)
func set_target_location(target_location: Vector2):
navigation_agent.set_target_location(target_location)
# Alternative way to get a full navigation path with Server API.
var navigation_map: RID = get_world_2d().get_navigation_map()
var start_position: Vector2 = get_global_transform().get_origin()
var target_position: Vector2 = target_location
var optimize: bool = true
navigation_path_debug_line.points = Navigation2DServer.map_get_path(
navigation_map,
start_position,
target_position,
optimize
)
func _physics_process(delta):
if navigation_agent.is_navigation_finished():
return
var next_position: Vector2 = navigation_agent.get_next_location()
global_position = global_position.move_toward(next_position, delta * character_speed)

View File

@@ -1,19 +1,18 @@
[gd_scene load_steps=6 format=2]
[gd_scene load_steps=5 format=2]
[ext_resource path="res://navigation.gd" type="Script" id=1]
[ext_resource path="res://map.png" type="Texture" id=2]
[ext_resource path="res://character.png" type="Texture" id=3]
[ext_resource path="res://character.gd" type="Script" id=4]
[sub_resource type="NavigationPolygon" id=1]
vertices = PoolVector2Array( 587.833, 271.924, 530.464, 284.878, 508.256, 281.177, 497.153, 255.269, 624.926, 359.595, 648.903, 394.065, 620.443, 383.995, 669.26, 297.833, 648.903, 321.891, 650.754, 251.567, 619.293, 510.654, 676.663, 493.998, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 710.106, 179.216, 630.397, 212.704, 597.086, 192.348, 471.244, 251.567, 421.277, 270.074, 428.68, 246.015, 502.704, 97.9661, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 495.302, 164.588, 487.899, 85.0117, 310.24, 75.7586, 308.39, 92.4142, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 288.033, 231.211, 319.493, 190.497, 193.651, 423.675, 245.469, 477.343, 221.41, 488.446, 147.386, 408.87, 182.548, 382.961, 145.584, 224.311, 175.145, 332.995, 202.904, 99.8167, 310.24, 62.8043, 695.169, 303.385, 682.214, 284.878, 598.937, 492.148, 571.177, 501.401, 605.437, 456.366, 621.144, 486.596, 538.077, 499.891, 395.879, 501.87, 536.407, 524.944, 371.311, 518.056, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 350.954, 447.733, 363.908, 351.501, 384.265, 351.501, 376.862, 418.123, 373.441, 436.494, 424.978, 334.845, 421.277, 360.754, 352.804, 320.04, 321.344, 338.546, 299.136, 283.028, 241.767, 327.443, 234.365, 244.165, 325.228, 486.302, 300.441, 497.494, 317.643, 447.733, 332.441, 457.494, 524.608, 359.37, 526.762, 342.248, 366.441, 467.494, 480.497, 434.779, 496.638, 439.381, 476.441, 468.494, 265.825, 407.019, 184.398, 349.65, 310.24, 112.771, 267.676, 153.485, 221.41, 171.991, 700.721, 268.223, 397.219, 188.646, 415.725, 177.543, 465.692, 179.393, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 452.738, 166.439, 460.14, 123.875, 476.796, 149.783, 189.95, 231.211 )
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6 ), PoolIntArray( 7, 8, 9 ), PoolIntArray( 10, 11, 12, 13, 14 ), PoolIntArray( 15, 16, 17, 18, 19, 20 ), PoolIntArray( 21, 3, 2, 22, 23 ), PoolIntArray( 24, 25, 26, 27, 28 ), PoolIntArray( 25, 24, 29 ), PoolIntArray( 30, 25, 29, 31 ), PoolIntArray( 32, 33, 34, 35, 36 ), PoolIntArray( 37, 38, 39, 40 ), PoolIntArray( 41, 37, 40 ), PoolIntArray( 41, 40, 42, 43 ), PoolIntArray( 44, 45, 30, 31 ), PoolIntArray( 46, 12, 11, 7, 47 ), PoolIntArray( 47, 7, 9 ), PoolIntArray( 48, 10, 14, 49 ), PoolIntArray( 50, 6, 5, 51, 48 ), PoolIntArray( 52, 50, 48, 49 ), PoolIntArray( 53, 52, 49, 54, 55 ), PoolIntArray( 17, 56, 57, 58, 18 ), PoolIntArray( 59, 60, 61, 62, 63 ), PoolIntArray( 64, 65, 61, 66 ), PoolIntArray( 66, 61, 60, 67, 68 ), PoolIntArray( 68, 67, 69, 70 ), PoolIntArray( 68, 70, 35, 34 ), PoolIntArray( 71, 53, 55, 72 ), PoolIntArray( 71, 72, 73, 74 ), PoolIntArray( 4, 6, 75, 76 ), PoolIntArray( 63, 77, 74, 59 ), PoolIntArray( 78, 2, 1, 76, 75, 79, 80 ), PoolIntArray( 78, 80, 63, 62 ), PoolIntArray( 81, 59, 74, 73 ), PoolIntArray( 81, 73, 41, 82 ), PoolIntArray( 44, 31, 83, 84, 85 ), PoolIntArray( 18, 86, 47, 9, 19 ), PoolIntArray( 15, 20, 3, 21 ), PoolIntArray( 23, 22, 87, 88 ), PoolIntArray( 89, 28, 27, 90, 91 ), PoolIntArray( 89, 91, 92, 93 ), PoolIntArray( 36, 94, 95, 93, 92 ), PoolIntArray( 36, 92, 88 ), PoolIntArray( 36, 88, 87, 32 ), PoolIntArray( 36, 35, 85, 84 ), PoolIntArray( 42, 44, 85, 96 ), PoolIntArray( 42, 96, 43 ), PoolIntArray( 41, 43, 82 ) ]
outlines = [ PoolVector2Array( 221.41, 488.446, 147.386, 408.87, 145.584, 224.311, 202.904, 99.8167, 310.24, 62.8043, 310.24, 75.7586, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 415.725, 177.543, 428.68, 246.015, 471.244, 251.567, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 710.106, 179.216, 700.721, 268.223, 682.214, 284.878, 695.169, 303.385, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 571.177, 501.401, 536.407, 524.944, 371.311, 518.056, 300.441, 497.494, 317.643, 447.733, 182.548, 382.961, 193.651, 423.675, 245.469, 477.343 ), PoolVector2Array( 350.954, 447.733, 363.908, 351.501, 321.344, 338.546, 241.767, 327.443, 234.365, 244.165, 288.033, 231.211, 221.41, 171.991, 189.95, 231.211, 175.145, 332.995, 184.398, 349.65, 265.825, 407.019 ), PoolVector2Array( 267.676, 153.485, 310.24, 112.771, 308.39, 92.4142, 487.899, 85.0117, 502.704, 97.9661, 495.302, 164.588, 465.692, 179.393, 452.738, 166.439, 476.796, 149.783, 460.14, 123.875, 319.493, 190.497 ), PoolVector2Array( 397.219, 188.646, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 299.136, 283.028, 352.804, 320.04, 424.978, 334.845, 421.277, 360.754, 384.265, 351.501, 376.862, 418.123, 480.497, 434.779, 508.256, 281.177, 421.277, 270.074 ), PoolVector2Array( 497.153, 255.269, 597.086, 192.348, 630.397, 212.704, 650.754, 251.567, 648.903, 321.891, 669.26, 297.833, 676.663, 493.998, 619.293, 510.654, 598.937, 492.148, 621.144, 486.596, 648.903, 394.065, 624.926, 359.595, 526.762, 342.248, 530.464, 284.878, 587.833, 271.924 ), PoolVector2Array( 325.228, 486.302, 332.441, 457.494, 366.441, 467.494, 373.441, 436.494, 476.441, 468.494, 496.638, 439.381, 524.608, 359.37, 620.443, 383.995, 605.437, 456.366, 538.077, 499.891, 395.879, 501.87 ) ]
[node name="NavigationDemo" type="Node2D"]
[node name="Navigation2D" type="Navigation2D"]
script = ExtResource( 1 )
[node name="NavigationPolygonInstance" type="NavigationPolygonInstance" parent="."]
[node name="Navmesh" type="NavigationPolygonInstance" parent="."]
navpoly = SubResource( 1 )
[node name="Map" type="Sprite" parent="."]
@@ -25,13 +24,6 @@ position = Vector2( 228.464, 132.594 )
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 3 )
offset = Vector2( 0, -26 )
script = ExtResource( 4 )
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Character"]
[node name="Line2D" type="Line2D" parent="Character"]
width = 4.0
default_color = Color( 1, 0, 0, 1 )
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2( 420, 300 )

View File

@@ -1,10 +1,46 @@
extends Node2D
extends Navigation2D
export(float) var character_speed = 400.0
var path = []
onready var character = $Character
func _process(delta):
var walk_distance = character_speed * delta
move_along_path(walk_distance)
# The "click" event is a custom input action defined in
# Project > Project Settings > Input Map tab.
func _unhandled_input(event):
if not event.is_action_pressed("click"):
return
character.set_target_location(get_global_mouse_position())
_update_navigation_path(character.position, get_local_mouse_position())
func move_along_path(distance):
var last_point = character.position
while path.size():
var distance_between_points = last_point.distance_to(path[0])
# The position to move to falls between two points.
if distance <= distance_between_points:
character.position = last_point.linear_interpolate(path[0], distance / distance_between_points)
return
# The position is past the end of the segment.
distance -= distance_between_points
last_point = path[0]
path.remove(0)
# The character reached the end of the path.
character.position = last_point
set_process(false)
func _update_navigation_path(start_position, end_position):
# get_simple_path is part of the Navigation2D class.
# It returns a PoolVector2Array of points that lead you
# from the start_position to the end_position.
path = get_simple_path(start_position, end_position, true)
# The first point is always the start_position.
# We don't need it in this example as it corresponds to the character's position.
path.remove(0)
set_process(true)

View File

@@ -14,7 +14,6 @@ var _target_position = Vector2()
var _velocity = Vector2()
func _ready():
_change_state(States.IDLE)
@@ -34,7 +33,7 @@ func _process(_delta):
func _unhandled_input(event):
if event.is_action_pressed("click"):
var global_mouse_pos = get_global_mouse_position()
if Input.is_key_pressed(KEY_SHIFT) and get_parent().get_node("TileMap").check_start_position(global_mouse_pos):
if Input.is_key_pressed(KEY_SHIFT):
global_position = global_mouse_pos
else:
_target_position = global_mouse_pos

View File

@@ -20,7 +20,6 @@ onready var astar_node = AStar.new()
onready var obstacles = get_used_cells_by_id(0)
onready var _half_cell_size = cell_size / 2
func _ready():
var walkable_cells_list = astar_add_walkable_cells(obstacles)
astar_connect_walkable_cells(walkable_cells_list)
@@ -127,14 +126,6 @@ func is_outside_map_bounds(point):
return point.x < 0 or point.y < 0 or point.x >= map_size.x or point.y >= map_size.y
func check_start_position(world_start):
var start_point = world_to_map(world_start)
if start_point in obstacles:
return false
return true
func get_astar_path(world_start, world_end):
self.path_start_position = world_to_map(world_start)
self.path_end_position = world_to_map(world_end)

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -17,7 +17,5 @@ force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
edit/loop=false
compress/mode=0

View File

@@ -3,7 +3,6 @@ extends Area2D
var taken = false
func _on_body_enter(body):
if not taken and body is Player:
($AnimationPlayer as AnimationPlayer).play("taken")

View File

@@ -18,7 +18,6 @@ var Bullet = preload("res://player/bullet.gd")
onready var rc_left = $RaycastLeft
onready var rc_right = $RaycastRight
func _integrate_forces(s):
var lv = s.get_linear_velocity()
var new_anim = anim

View File

@@ -6,7 +6,6 @@ export var cycle = 1.0
var accum = 0.0
func _physics_process(delta):
accum += delta * (1.0 / cycle) * TAU
accum = fmod(accum, TAU)

View File

@@ -3,7 +3,6 @@ extends RigidBody2D
var disabled = false
func _ready():
($Timer as Timer).start()

View File

@@ -54,7 +54,6 @@ onready var sprite_smoke = sprite.get_node(@"Smoke")
onready var animation_player = $AnimationPlayer
onready var bullet_shoot = $BulletShoot
func _integrate_forces(s):
var lv = s.get_linear_velocity()
var step = s.get_step()

View File

@@ -21,7 +21,6 @@ func _ready():
options.add_menu_item(OPTION_TEST_CASE_DETECT_FLOOR_NO_SNAP)
options.add_menu_item(OPTION_TEST_CASE_DETECT_FLOOR_MOTION_CHANGES)
func _physics_process(_delta):
if _moving_body:
if _moving_body.is_on_floor():

View File

@@ -12,3 +12,6 @@ text = "TEST OPTIONS"
flat = false
align = 0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@@ -2,10 +2,6 @@
[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="DynamicFontData" id=1]
[sub_resource type="DynamicFont" id=6]
size = 30
font_data = ExtResource( 1 )
[sub_resource type="StyleBoxFlat" id=1]
content_margin_left = 6.0
content_margin_right = 6.0
@@ -66,6 +62,10 @@ border_width_right = 1
border_width_bottom = 1
border_color = Color( 0.41, 0.61, 0.91, 1 )
[sub_resource type="DynamicFont" id=6]
size = 30
font_data = ExtResource( 1 )
[resource]
default_font = SubResource( 6 )
Button/colors/font_color = Color( 0.8, 0.8075, 0.8275, 1 )
@@ -75,7 +75,7 @@ Button/colors/font_color_pressed = Color( 0.411765, 0.611765, 0.909804, 1 )
Button/colors/icon_color_hover = Color( 1.15, 1.15, 1.15, 1 )
Button/colors/icon_color_pressed = Color( 0.4715, 0.7015, 1.0465, 1 )
Button/constants/hseparation = 2
Button/fonts/font = SubResource( 6 )
Button/fonts/font = null
Button/styles/disabled = SubResource( 1 )
Button/styles/focus = SubResource( 2 )
Button/styles/hover = SubResource( 3 )

View File

@@ -12,7 +12,6 @@ const FLOOR_NORMAL = Vector2.UP
var _velocity = Vector2.ZERO
# _physics_process is called after the inherited _physics_process function.
# This allows the Player and Enemy scenes to be affected by gravity.
func _physics_process(delta):

View File

@@ -15,13 +15,11 @@ onready var floor_detector_right = $FloorDetectorRight
onready var sprite = $Sprite
onready var animation_player = $AnimationPlayer
# This function is called when the scene enters the scene tree.
# We can initialize variables here.
func _ready():
_velocity.x = speed.x
# Physics process is a built-in loop in Godot.
# If you define _physics_process on a node, Godot will call it every frame.

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=2]
[gd_scene load_steps=13 format=2]
[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture" id=1]
[ext_resource path="res://assets/audio/sfx/explode.wav" type="AudioStream" id=2]
@@ -8,21 +8,6 @@
[sub_resource type="CanvasItemMaterial" id=1]
[sub_resource type="Animation" id=8]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Explosion:scale_amount")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 4.0 ]
}
[sub_resource type="Animation" id=2]
resource_name = "destroy"
length = 1.5
@@ -75,36 +60,48 @@ tracks/3/keys = {
"values": [ false, true ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Hit:playing")
tracks/4/path = NodePath("Explosion:process_material:scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.00999999 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ true ]
"times": PoolRealArray( 0.6, 1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ 1.0, 4.0 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("Explode:playing")
tracks/5/path = NodePath("Hit:playing")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0.8 ),
"times": PoolRealArray( 0.00999999 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ true ]
}
tracks/6/type = "method"
tracks/6/path = NodePath(".")
tracks/6/type = "value"
tracks/6/path = NodePath("Explode:playing")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0.8 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ true ]
}
tracks/7/type = "method"
tracks/7/path = NodePath(".")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 1.5 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
@@ -112,41 +109,29 @@ tracks/6/keys = {
"method": "queue_free"
} ]
}
tracks/7/type = "value"
tracks/7/path = NodePath(".:collision_layer")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Sprite:position")
tracks/8/path = NodePath(".:collision_layer")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0, 0.2, 0.4 ),
"transitions": PoolRealArray( 2.2974, 0.183011, 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ), Vector2( 0, -32 ), Vector2( 0, 0 ) ]
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("Explosion:scale_amount")
tracks/9/path = NodePath("Sprite:position")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0.6, 1 ),
"transitions": PoolRealArray( 1, 1 ),
"times": PoolRealArray( 0, 0.2, 0.4 ),
"transitions": PoolRealArray( 2.2974, 0.183011, 1 ),
"update": 0,
"values": [ 1.0, 4.0 ]
"values": [ Vector2( 0, 0 ), Vector2( 0, -32 ), Vector2( 0, 0 ) ]
}
[sub_resource type="Animation" id=3]
@@ -226,7 +211,6 @@ hframes = 8
frame = 7
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/RESET = SubResource( 8 )
anims/destroy = SubResource( 2 )
anims/idle = SubResource( 3 )
anims/walk = SubResource( 4 )
@@ -253,7 +237,6 @@ gravity = Vector2( 0, 250 )
initial_velocity = 120.0
initial_velocity_random = 0.5
angle_random = 1.0
scale_amount = 4.0
scale_amount_random = 1.0
color_ramp = SubResource( 7 )
hue_variation = 0.05

View File

@@ -1,12 +1,10 @@
extends Node2D
const LIMIT_LEFT = -315
const LIMIT_TOP = -250
const LIMIT_RIGHT = 955
const LIMIT_BOTTOM = 690
func _ready():
for child in get_children():
if child is Player:

View File

@@ -1,11 +1,9 @@
extends AudioStreamPlayer
const DOUBLE_VOLUME_DB = 6 # Do not change. Represents doubling of sound pressure.
export(int) var base_volume_db = -14
func _ready():
# To avoid AudioStreamPlayer2D sounds playing on top of each other and
# being very loud, let's decrease the volume for splitscreen mode, but

View File

@@ -25,18 +25,10 @@ func _unhandled_input(event):
if event.is_action_pressed("toggle_fullscreen"):
OS.window_fullscreen = not OS.window_fullscreen
get_tree().set_input_as_handled()
# The desired behavior is when pausing is to pause the gamplay,
# but the Pause Menu should continue to process.
# To achieve this, the "Pause Mode" field is used on nodes in the Game scene:
# 1. The root node in the Game scene is set to process even when the game is paused
# (via Pause Mode = Process), so this Game script keeps running in order to open/close
# the Pause Menu when the player presses the "toggle_pause" action.
# 2. The Level scene has Pause Mode = Stop (and its child Player scene has Pause Mode = Inherit),
# so the gameplay will stop.
# 3. The InterfaceLayer node has Pause Mode = Inherit, with its child PauseMenu scene having
# Pause Mode = Process, so it will continue to process even when the game is paused.
# To see the Pause Mode of any node, select the node and you'll see "Pause Mode" near the bottom
# of the Inspector under "Node" fields.
# The GlobalControls node, in the Stage scene, is set to process even
# when the game is paused, so this code keeps running.
# To see that, select GlobalControls, and scroll down to the Pause category
# in the inspector.
elif event.is_action_pressed("toggle_pause"):
var tree = get_tree()
tree.paused = not tree.paused

View File

@@ -2,7 +2,6 @@ class_name Coin
extends Area2D
# Collectible that disappears when the player touches it.
onready var animation_player = $AnimationPlayer
# The Coins only detects collisions with the Player thanks to its collision mask.

View File

@@ -1,6 +1,5 @@
extends Panel
var coins_collected = 0
onready var coins_label = $Label

View File

@@ -40,6 +40,9 @@ rect_min_size = Vector2( 100, 45 )
theme = ExtResource( 1 )
custom_styles/panel = SubResource( 1 )
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" type="Label" parent="."]
anchor_right = 1.0

View File

@@ -1,6 +1,5 @@
extends Area2D
const DEFAULT_SPEED = 100
var _speed = DEFAULT_SPEED
@@ -8,7 +7,6 @@ var direction = Vector2.LEFT
onready var _initial_pos = position
func _process(delta):
_speed += delta * 2
position += _speed * delta * direction

View File

@@ -1,9 +1,7 @@
extends Area2D
export var _bounce_direction = 1
func _on_area_entered(area):
if area.name == "Ball":
area.direction = (area.direction + Vector2(0, _bounce_direction)).normalized()

View File

@@ -1,6 +1,5 @@
extends Area2D
const MOVE_SPEED = 100
var _ball_dir
@@ -9,7 +8,6 @@ var _down
onready var _screen_size_y = get_viewport_rect().size.y
func _ready():
var n = String(name).to_lower()
_up = n + "_move_up"

View File

@@ -1,6 +1,5 @@
extends Area2D
func _on_wall_area_entered(area):
if area.name == "Ball":
#oops, ball went out of game place, reset

View File

@@ -22,7 +22,7 @@ window/size/width=640
window/size/height=400
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/aspect="keep"
window/stretch/aspect="expand"
stretch_2d=true
[gdnative]

View File

@@ -1,12 +1,10 @@
extends Node
const PLAYER_WIN = "res://dialogue/dialogue_data/player_won.json"
const PLAYER_LOSE = "res://dialogue/dialogue_data/player_lose.json"
export(NodePath) var combat_screen
export(NodePath) var exploration_screen
const PLAYER_WIN = "res://dialogue/dialogue_data/player_won.json"
const PLAYER_LOSE = "res://dialogue/dialogue_data/player_lose.json"
func _ready():
exploration_screen = get_node(exploration_screen)

View File

@@ -1,9 +1,7 @@
extends Node
signal combat_finished(winner, loser)
func initialize(combat_combatants):
for combatant in combat_combatants:
combatant = combatant.instance()

View File

@@ -1,12 +1,10 @@
extends Node
signal active_combatant_changed(active_combatant)
export(NodePath) var combatants_list
var queue = [] setget set_queue
var active_combatant = null setget _set_active_combatant
signal active_combatant_changed(active_combatant)
func _ready():
combatants_list = get_node(combatants_list)

View File

@@ -1,15 +1,11 @@
class_name Combatant
extends Node
signal turn_finished
export(int) var damage = 1
export(int) var defense = 1
var active = false setget set_active
signal turn_finished
func set_active(value):
active = value

View File

@@ -1,6 +1,5 @@
extends Node
signal dead
signal health_changed(life)
@@ -9,7 +8,6 @@ export var max_life = 10
export var base_armor = 0
var armor = 0
func _ready():
armor = base_armor

View File

@@ -1,6 +1,5 @@
extends Combatant
func set_active(value):
.set_active(value)
if not active:

View File

@@ -7,6 +7,9 @@ margin_right = 409.0
margin_bottom = 239.0
size_flags_horizontal = 3
size_flags_vertical = 3
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VBoxContainer" type="VBoxContainer" parent="."]
margin_left = 7.0

View File

@@ -1,10 +1,8 @@
extends Control
export(NodePath) var combatants_node
export(PackedScene) var info_scene
func _ready():
combatants_node = get_node(combatants_node)

View File

@@ -1,15 +1,13 @@
extends Node
signal dialogue_started
signal dialogue_finished
export(String, FILE, "*.json") var dialogue_file
var dialogue_keys = []
var dialogue_name = ""
var current = 0
var dialogue_text = ""
signal dialogue_started
signal dialogue_finished
func start_dialogue():
emit_signal("dialogue_started")

View File

@@ -1,9 +1,7 @@
extends Control
var dialogue_node = null
func _ready():
hide()

View File

@@ -9,6 +9,9 @@ margin_right = 1280.0
margin_bottom = 720.0
theme = ExtResource( 1 )
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Name" type="RichTextLabel" parent="."]
margin_left = 40.0

View File

@@ -1,10 +1,8 @@
extends TileMap
enum CellType { ACTOR, OBSTACLE, OBJECT }
export(NodePath) var dialogue_ui
func _ready():
for child in get_children():
set_cellv(world_to_map(child.position), child.type)

View File

@@ -1,9 +1,7 @@
extends Pawn
var lost = false
onready var Grid = get_parent()
var lost = false
func _ready():
update_look_direction(Vector2.RIGHT)

View File

@@ -1,11 +1,9 @@
extends Pawn
#warning-ignore:unused_class_variable
export(PackedScene) var combat_actor
#warning-ignore:unused_class_variable
var lost = false
func _ready():
set_process(false)

View File

@@ -1,14 +1,12 @@
class_name Pawn
extends Node2D
enum CellType { ACTOR, OBSTACLE, OBJECT }
#warning-ignore:unused_class_variable
export(CellType) var type = CellType.ACTOR
var active = true setget set_active
func set_active(value):
active = value
set_process(value)

View File

@@ -1,12 +1,10 @@
extends Pawn
onready var parent = get_parent()
#warning-ignore:unused_class_variable
export(PackedScene) var combat_actor
#warning-ignore:unused_class_variable
var lost = false
onready var parent = get_parent()
func _ready():
update_look_direction(Vector2.RIGHT)

View File

@@ -1,6 +1,5 @@
extends Control
onready var effect = $Effect
onready var effects = $Effects
onready var picture = $Picture

View File

@@ -1,12 +1,10 @@
extends Node2D
const LIMIT_LEFT = -315
const LIMIT_TOP = -250
const LIMIT_RIGHT = 955
const LIMIT_BOTTOM = 690
func _ready():
for child in get_children():
if child is Player:

View File

@@ -1,7 +1,6 @@
class_name Player
extends KinematicBody2D
# Keep this in sync with the AnimationTree's state names and numbers.
enum States {
IDLE = 0,

View File

@@ -1747,7 +1747,7 @@ nodes/walk_animation/node = SubResource( 21 )
nodes/walk_animation/position = Vector2( 0, 140 )
nodes/walk_timescale/node = SubResource( 22 )
nodes/walk_timescale/position = Vector2( 200, 120 )
node_connections = [ "jump", 0, "state", "jump", 1, "jump_animation", "land", 0, "jump", "land", 1, "land_animation", "land_hard", 0, "land", "land_hard", 1, "land_hard_animation", "run_timescale", 0, "run_animation", "walk_timescale", 0, "walk_animation", "state", 0, "idle_animation", "state", 1, "walk_timescale", "state", 2, "run_timescale", "state", 3, "fly_animation", "state", 4, "fall_animation", "output", 0, "land_hard" ]
node_connections = [ "state", 0, "idle_animation", "state", 1, "walk_timescale", "state", 2, "run_timescale", "state", 3, "fly_animation", "state", 4, "fall_animation", "output", 0, "land_hard", "land", 0, "jump", "land", 1, "land_animation", "jump", 0, "state", "jump", 1, "jump_animation", "land_hard", 0, "land", "land_hard", 1, "land_hard_animation", "run_timescale", 0, "run_animation", "walk_timescale", 0, "walk_animation" ]
[sub_resource type="RectangleShape2D" id=24]
extents = Vector2( 11, 16.4358 )
@@ -1878,7 +1878,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 237.601, 31.7394, 217.703, 30.1435, 183.732, 47.8469, 274.303, 49.2926, 271.111, 94.5053, 183.877, 89.7181, 185.505, 166.856, 248.688, 172.323, 242.541, 187.015, 189.46, 182.958, 190.308, 202.449, 180.383, 225.837, 201.435, 321.531, 242.841, 196.76, 256.334, 215.801, 276.077, 283.732, 295.215, 310.526, 272.249, 351.675, 216.746, 356.459 )
uv = PoolVector2Array( 235.407, 30.1435, 217.703, 30.1435, 183.732, 47.8469, 276.555, 49.2823, 274.641, 85.6459, 181.34, 83.7321, 184.689, 180.383, 253.11, 178.469, 243.541, 188.995, 188.038, 187.081, 188.995, 200, 180.383, 225.837, 201.435, 321.531, 244.976, 199.043, 259.809, 215.789, 276.077, 283.732, 295.215, 310.526, 272.249, 351.675, 216.746, 356.459 )
polygons = [ PoolIntArray( 0, 1, 2, 5, 4, 3 ), PoolIntArray( 4, 7, 6, 5 ), PoolIntArray( 8, 7, 6, 9 ), PoolIntArray( 13, 8, 9, 10 ), PoolIntArray( 13, 14, 11, 10 ), PoolIntArray( 14, 15, 12, 11 ), PoolIntArray( 15, 16, 17, 18, 12 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/RightArm", PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 1, 1, 0.5, 1, 1, 0.5, 0, 0, 0 ), "Hip/Chest/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0, 0, 0.5, 1, 1, 1 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/RightArm"), PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 0.5, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 1, 1, 0.5, 1, 1, 0.5, 0, 0, 0 ), NodePath("Hip/Chest/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0, 0, 0.5, 1, 1, 1 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 19
[node name="RightLeg" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1888,7 +1888,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 348.266, 400, 289.099, 380.833, 280.766, 435, 276.599, 470.833, 250.766, 515, 249.933, 604.167, 246.599, 690.833, 407.433, 695.833, 409.099, 659.167, 384.099, 606.667, 349.099, 599.167, 330.766, 550, 342.433, 476.667, 337.433, 442.5 )
uv = PoolVector2Array( 348.266, 400, 289.099, 380.833, 280.766, 435, 276.599, 470.833, 250.766, 515, 249.933, 604.167, 246.599, 690.833, 407.433, 695.833, 409.099, 659.167, 384.099, 606.667, 349.099, 599.167, 330.766, 550, 342.433, 476.667, 337.433, 442.5 )
polygons = [ PoolIntArray( 0, 1, 2, 13 ), PoolIntArray( 13, 12, 3, 2 ), PoolIntArray( 12, 11, 4, 3 ), PoolIntArray( 11, 10, 5, 4 ), PoolIntArray( 10, 9, 8, 7, 6, 5 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg", PoolRealArray( 1, 1, 1, 0.53, 0, 0, 0, 0, 0, 0, 0, 0, 0.53, 1 ), "Hip/RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0.53, 1, 1, 0, 0, 0, 0, 0, 1, 0.53, 0 ), "Hip/RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.53, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg"), PoolRealArray( 1, 1, 1, 0.53, 0, 0, 0, 0, 0, 0, 0, 0, 0.53, 1 ), NodePath("Hip/RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0.53, 1, 1, 0, 0, 0, 0, 0, 1, 0.53, 0 ), NodePath("Hip/RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.53, 0, 0, 0 ) ]
internal_vertex_count = 14
[node name="Body" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1898,7 +1898,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 473.936, 29.2553, 430.851, 19.6809, 384.043, 78.7234, 344.681, 107.447, 348.404, 192.553, 375.532, 240.426, 375, 255.319, 351.064, 269.681, 347.34, 294.681, 371.809, 334.574, 468.085, 347.872, 490.957, 296.809, 489.894, 276.596, 472.368, 259.211, 473.936, 245.745, 505.319, 222.34, 522.872, 179.787, 507.447, 121.809, 484.043, 84.0426, 398.404, 38.2979, 419.681, 344.149 )
uv = PoolVector2Array( 473.936, 29.2553, 430.851, 19.6809, 384.043, 78.7234, 344.681, 107.447, 348.404, 192.553, 375.532, 240.426, 375, 255.319, 351.064, 269.681, 347.34, 294.681, 371.809, 334.574, 468.085, 347.872, 490.957, 296.809, 489.894, 276.596, 472.368, 259.211, 473.936, 245.745, 505.319, 222.34, 522.872, 179.787, 507.447, 121.809, 484.043, 84.0426, 398.404, 38.2979, 419.681, 344.149 )
polygons = [ PoolIntArray( 2, 19, 1, 0, 18 ), PoolIntArray( 2, 3, 17, 18 ), PoolIntArray( 3, 4, 15, 16, 17 ), PoolIntArray( 4, 5, 14, 15 ), PoolIntArray( 5, 6, 13, 14 ), PoolIntArray( 6, 7, 12, 13 ), PoolIntArray( 7, 8, 11, 12 ), PoolIntArray( 8, 9, 20, 10, 11 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0.51, 0.51, 1, 1, 1, 1, 1, 1, 0.51, 0.51, 0, 0, 0, 0, 0, 1 ), "Hip/Chest", PoolRealArray( 1, 1, 1, 1, 1, 0.51, 0.51, 0, 0, 0, 0, 0, 0, 0.51, 0.51, 1, 1, 1, 1, 1, 0 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0.51, 0.51, 1, 1, 1, 1, 1, 1, 0.51, 0.51, 0, 0, 0, 0, 0, 1 ), NodePath("Hip/Chest"), PoolRealArray( 1, 1, 1, 1, 1, 0.51, 0.51, 0, 0, 0, 0, 0, 0, 0.51, 0.51, 1, 1, 1, 1, 1, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 21
[node name="LeftLeg" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1908,7 +1908,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 65.7658, 390, 92.4325, 386.667, 119.099, 398.333, 119.099, 426.667, 120.766, 477.5, 107.433, 551.667, 129.099, 592.5, 163.266, 604.167, 188.266, 675, 173.266, 692.5, 20.7658, 686.667, 25.7658, 648.333, 29.9325, 608.333, 24.0992, 530.833, 54.9325, 472.5 )
uv = PoolVector2Array( 65.7658, 390, 92.4325, 386.667, 119.099, 398.333, 119.099, 426.667, 120.766, 477.5, 107.433, 551.667, 129.099, 592.5, 163.266, 604.167, 188.266, 675, 173.266, 692.5, 20.7658, 686.667, 25.7658, 648.333, 29.9325, 608.333, 24.0992, 530.833, 54.9325, 472.5 )
polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 14 ), PoolIntArray( 4, 5, 13, 14 ), PoolIntArray( 5, 6, 12, 13 ), PoolIntArray( 6, 7, 8, 9, 10, 11, 12 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0.03, 1, 0, 0, 0, 0, 0, 0, 0.53, 0.5, 0.03 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0.53, 1, 1, 1, 1, 1, 0, 0, 0 ), "RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0.03, 1, 0, 0, 0, 0, 0, 0, 0.53, 0.5, 0.03 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0.53, 1, 1, 1, 1, 1, 0, 0, 0 ), NodePath("RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 15
[node name="Head" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1918,7 +1918,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 616.26, 246.341, 555.285, 285.366, 508.13, 330.894, 482.114, 380.488, 482.114, 448.781, 492.683, 498.374, 552.846, 534.146, 656.911, 538.211, 773.984, 511.382, 807.317, 506.504, 813.821, 342.276, 789.431, 297.561, 757.724, 269.106, 669.106, 249.594 )
uv = PoolVector2Array( 616.26, 246.341, 555.285, 285.366, 508.13, 330.894, 482.114, 380.488, 482.114, 448.781, 492.683, 498.374, 552.846, 534.146, 656.911, 538.211, 773.984, 511.382, 807.317, 506.504, 813.821, 342.276, 789.431, 297.561, 757.724, 269.106, 669.106, 249.594 )
polygons = [ PoolIntArray( 10, 11, 12, 13, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head", PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 14
[node name="Chin" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1929,7 +1929,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 486, 576, 812, 562, 823, 605, 790, 666, 722, 690, 547, 686, 493, 646 )
uv = PoolVector2Array( 486, 576, 812, 562, 823, 605, 790, 666, 722, 690, 547, 686, 493, 646 )
polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 5, 6 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), "Hip/LeftArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), "RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), NodePath("Hip/LeftArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ), NodePath("RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 7
[node name="LeftArm" type="Polygon2D" parent="Sprite/Polygons"]
@@ -1939,7 +1939,7 @@ skeleton = NodePath("../../Skeleton2D")
polygon = PoolVector2Array( 89.9521, 16.268, 77.5119, 15.7895, 55.5023, 25.8373, 39.2344, 29.1866, 33.9712, 59.3302, 27.2727, 154.545, 29.1865, 180.861, 33.4928, 196.172, 20.5741, 240.67, 36.842, 321.531, 61.244, 359.809, 125.837, 353.11, 137.799, 309.569, 122.967, 287.56, 106.22, 202.871, 92.3444, 191.866, 91.866, 179.426, 127.273, 70.3349, 134.928, 48.3254, 119.617, 30.622 )
uv = PoolVector2Array( 89.9521, 16.268, 77.5119, 15.7895, 55.5023, 25.8373, 39.2344, 29.1866, 33.9712, 59.3302, 27.2727, 154.545, 29.1865, 180.861, 33.4928, 196.172, 20.5741, 240.67, 36.842, 321.531, 61.244, 359.809, 125.837, 353.11, 137.799, 309.569, 122.967, 287.56, 106.22, 202.871, 92.3444, 191.866, 91.866, 179.426, 127.273, 70.3349, 134.928, 48.3254, 119.617, 30.622 )
polygons = [ PoolIntArray( 3, 2, 1, 0, 19, 18, 17, 4 ), PoolIntArray( 4, 5, 16, 17 ), PoolIntArray( 16, 15, 7, 6 ), PoolIntArray( 16, 6, 5 ), PoolIntArray( 7, 8, 14, 15 ), PoolIntArray( 14, 13, 9, 8 ), PoolIntArray( 13, 12, 11, 10, 9 ) ]
bones = [ "Hip", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/RightArm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/RightArm/RightForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/RightArm/RightForearm/RightHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/Head/Chin", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/Chest/LeftArm", PoolRealArray( 1, 1, 1, 1, 1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 1, 1, 1 ), "Hip/Chest/LeftArm/LeftForearm", PoolRealArray( 0, 0, 0, 0, 0, 0, 1, 1, 1, 0.5, 0, 0, 0, 0.5, 1, 1, 0.5, 0, 0, 0 ), "Hip/Chest/LeftArm/LeftForearm/LeftHand", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 1, 1, 1, 0.5, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/LeftLeg/LeftLowerLeg/LeftFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg/RightLowerLeg", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), "Hip/RightLeg/RightLowerLeg/RightFoot", PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
bones = [ NodePath("Hip"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/RightArm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/RightArm/RightForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/RightArm/RightForearm/RightHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/Head/Chin"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/Chest/LeftArm"), PoolRealArray( 1, 1, 1, 1, 1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 1, 1, 1 ), NodePath("Hip/Chest/LeftArm/LeftForearm"), PoolRealArray( 0, 0, 0, 0, 0, 0, 1, 1, 1, 0.5, 0, 0, 0, 0.5, 1, 1, 0.5, 0, 0, 0 ), NodePath("Hip/Chest/LeftArm/LeftForearm/LeftHand"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 1, 1, 1, 0.5, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/LeftLeg/LeftLowerLeg/LeftFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg/RightLowerLeg"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ), NodePath("Hip/RightLeg/RightLowerLeg/RightFoot"), PoolRealArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) ]
internal_vertex_count = 20
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View File

@@ -21,7 +21,7 @@ compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

@@ -61,68 +61,64 @@ shader_param/amount = 4.0
[node name="SpriteShaders" type="Node2D"]
material = SubResource( 1 )
position = Vector2( 512, 300 )
position = Vector2( 263.737, 179.444 )
scale = Vector2( 0.3, 0.3 )
[node name="Normal" type="Sprite" parent="."]
material = SubResource( 2 )
position = Vector2( -300, -150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( -2.16144, 0 )
texture = ExtResource( 2 )
[node name="Outline" type="Sprite" parent="."]
material = SubResource( 3 )
position = Vector2( -150, -150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 400, 0 )
texture = ExtResource( 2 )
[node name="Aura" type="Sprite" parent="."]
material = SubResource( 4 )
position = Vector2( 0, -150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 800, 0 )
texture = ExtResource( 2 )
[node name="Blur" type="Sprite" parent="."]
material = SubResource( 5 )
position = Vector2( 150, -150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 1200, 0 )
texture = ExtResource( 2 )
[node name="Fatty" type="Sprite" parent="."]
material = SubResource( 6 )
position = Vector2( 300, -150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 1600, 0 )
texture = ExtResource( 2 )
[node name="DropShadow" type="Sprite" parent="."]
material = SubResource( 7 )
position = Vector2( -300, 150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 0, 800 )
texture = ExtResource( 2 )
[node name="OffsetShadow" type="Sprite" parent="."]
material = SubResource( 8 )
position = Vector2( -150, 150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 400, 800 )
texture = ExtResource( 2 )
[node name="Silouette" type="Sprite" parent="."]
material = SubResource( 9 )
position = Vector2( 0, 150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 800, 800 )
texture = ExtResource( 2 )
[node name="Glow" type="Sprite" parent="."]
material = SubResource( 10 )
position = Vector2( 150, 150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 1200, 800 )
texture = ExtResource( 2 )
[node name="Disintegrate" type="Sprite" parent="."]
material = SubResource( 11 )
position = Vector2( 300, 150 )
scale = Vector2( 0.375, 0.375 )
position = Vector2( 1600, 800 )
texture = ExtResource( 2 )
region_rect = Rect2( 141, 115, 39, 6 )
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2( 248, 120 )
current = true
drag_margin_left = 0.0
drag_margin_top = 0.0
drag_margin_right = 0.0
drag_margin_bottom = 0.0

View File

@@ -1,6 +1,5 @@
extends Control
const trans_list = ["Linear", "Sine", "Quint", "Quart", "Quad", "Expo", "Elastic", "Cubic", "Circ", "Bounce", "Back"]
const eases_list = ["In", "Out", "InOut", "OutIn"]
const modes_list = ["Move", "Color", "Scale", "Rotate", "Callback", "Follow", "Repeat", "Pause"]
@@ -30,7 +29,6 @@ onready var follow_mode = modes_vbox.get_node(@"Follow")
onready var repeat_mode = modes_vbox.get_node(@"Repeat")
onready var paused_mode = modes_vbox.get_node(@"Pause")
func _ready():
for index in range(trans_list.size()):
trans_vbox.get_node(trans_list[index]).connect("pressed", self, "on_trans_changed", [index])

View File

@@ -91,8 +91,8 @@ custom_constants/separation = 20
alignment = 1
[node name="Modes" type="VBoxContainer" parent="Controls"]
margin_left = 23.0
margin_right = 96.0
margin_left = 37.0
margin_right = 110.0
margin_bottom = 383.0
rect_min_size = Vector2( 70, 0 )
size_flags_vertical = 0
@@ -178,8 +178,8 @@ toggle_mode = true
text = "pause"
[node name="Transitions" type="VBoxContainer" parent="Controls"]
margin_left = 116.0
margin_right = 201.0
margin_left = 130.0
margin_right = 215.0
margin_bottom = 518.0
rect_min_size = Vector2( 70, 0 )
size_flags_vertical = 0
@@ -283,8 +283,8 @@ toggle_mode = true
text = "back"
[node name="Eases" type="VBoxContainer" parent="Controls"]
margin_left = 221.0
margin_right = 291.0
margin_left = 235.0
margin_right = 305.0
margin_bottom = 203.0
rect_min_size = Vector2( 70, 0 )
size_flags_vertical = 0
@@ -334,7 +334,7 @@ toggle_mode = true
text = "out_in"
[node name="ColorFrom" type="VBoxContainer" parent="Controls"]
margin_left = 311.0
margin_left = 325.0
margin_right = 646.0
margin_bottom = 570.0
rect_min_size = Vector2( 320, 570 )
@@ -349,7 +349,7 @@ text = "Color From:"
[node name="ColorPicker" type="ColorPicker" parent="Controls/ColorFrom"]
margin_top = 27.0
margin_right = 335.0
margin_right = 321.0
margin_bottom = 539.0
size_flags_horizontal = 2
size_flags_vertical = 2
@@ -359,7 +359,7 @@ __meta__ = {
[node name="ColorTo" type="VBoxContainer" parent="Controls"]
margin_left = 666.0
margin_right = 1001.0
margin_right = 987.0
margin_bottom = 570.0
rect_min_size = Vector2( 320, 570 )
rect_clip_content = true
@@ -374,7 +374,7 @@ text = "Color To:"
[node name="ColorPicker" type="ColorPicker" parent="Controls/ColorTo"]
margin_top = 27.0
margin_right = 335.0
margin_right = 321.0
margin_bottom = 539.0
size_flags_horizontal = 2
size_flags_vertical = 2

View File

@@ -1,6 +1,5 @@
extends Camera
const MOUSE_SENSITIVITY = 0.002
const MOVE_SPEED = 1.5

View File

@@ -9,6 +9,5 @@ background_mode = 2
background_sky = SubResource( 1 )
fog_sun_amount = 1.0
fog_depth_begin = 0.0
tonemap_mode = 4
tonemap_mode = 2
tonemap_white = 6.0
ssao_intensity = 0.5

View File

@@ -27,9 +27,9 @@ cycle_gi_mode={
"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":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
cycle_reflection_probe_mode={
toggle_reflection_probe={
"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":0,"physical_scancode":82,"unicode":0,"echo":false,"script":null)
"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":82,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
move_forward={
@@ -62,11 +62,6 @@ toggle_mouse_capture={
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777217,"unicode":0,"echo":false,"script":null)
]
}
toggle_ssao={
"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":0,"physical_scancode":70,"unicode":0,"echo":false,"script":null)
]
}
[physics]
@@ -75,7 +70,4 @@ common/enable_pause_aware_picking=true
[rendering]
quality/shadows/filter_mode=2
quality/filters/use_fxaa=true
quality/filters/use_debanding=true
environment/default_environment="res://default_env.tres"
quality/filters/use_debanding.mobile=false

View File

@@ -1,6 +1,5 @@
extends Spatial
enum GIMode {
NONE,
BAKED_LIGHTMAP_ALL,
@@ -9,13 +8,6 @@ enum GIMode {
MAX, # Maximum value of the enum, used internally.
}
enum ReflectionProbeMode {
NONE,
ONCE,
ALWAYS,
MAX,
}
# Keep this in sync with the GIMode enum (except for MAX).
const GI_MODE_TEXTS = [
"Environment Lighting (Fastest)",
@@ -24,39 +16,25 @@ const GI_MODE_TEXTS = [
"GIProbe (Slow)",
]
# Keep this in sync with the ReflectionProbeMode enum (except for MAX).
const REFLECTION_PROBE_MODE_TEXTS = [
"Disabled - Using environment, VoxelGI or SDFGI reflections (Fastest)",
"Enabled - \"Once\" Update Mode (Average)",
"Enabled - \"Always\" Update Mode (Slow)",
]
var gi_mode = GIMode.NONE
var reflection_probe_mode = ReflectionProbeMode.NONE
var use_ssao = false
var use_reflection_probe = false
onready var environment = preload("res://default_env.tres")
onready var gi_mode_label = $GIMode
onready var reflection_probe_mode_label = $ReflectionProbeMode
onready var ssao_label = $SSAO
onready var reflection_probe = $Camera/ReflectiveSphere/ReflectionProbe
func _ready():
set_gi_mode(GIMode.NONE)
set_reflection_probe_mode(ReflectionProbeMode.NONE)
set_use_ssao(use_ssao)
set_use_reflection_probe(false)
func _input(event):
if event.is_action_pressed("cycle_gi_mode"):
set_gi_mode(wrapi(gi_mode + 1, 0, GIMode.MAX))
if event.is_action_pressed("cycle_reflection_probe_mode"):
set_reflection_probe_mode(wrapi(reflection_probe_mode + 1, 0, ReflectionProbeMode.MAX))
if event.is_action_pressed("toggle_ssao"):
set_use_ssao(not use_ssao)
if event.is_action_pressed("toggle_reflection_probe"):
set_use_reflection_probe(not use_reflection_probe)
func set_gi_mode(p_gi_mode):
@@ -125,24 +103,12 @@ func set_gi_mode(p_gi_mode):
$CornerSpotLight.light_bake_mode = Light.BAKE_INDIRECT
func set_reflection_probe_mode(p_reflection_probe_mode):
reflection_probe_mode = p_reflection_probe_mode
reflection_probe_mode_label.text = "Reflection probe: %s " % REFLECTION_PROBE_MODE_TEXTS[reflection_probe_mode]
func set_use_reflection_probe(p_visible):
use_reflection_probe = p_visible
match p_reflection_probe_mode:
ReflectionProbeMode.NONE:
reflection_probe.visible = false
reflection_probe.update_mode = ReflectionProbe.UPDATE_ONCE
ReflectionProbeMode.ONCE:
reflection_probe.visible = true
reflection_probe.update_mode = ReflectionProbe.UPDATE_ONCE
ReflectionProbeMode.ALWAYS:
reflection_probe.visible = true
reflection_probe.update_mode = ReflectionProbe.UPDATE_ALWAYS
if p_visible:
reflection_probe_mode_label.text = "Current reflection probe mode: Enabled - Using reflection probe (Average)"
else:
reflection_probe_mode_label.text = "Current reflection probe mode: Disabled - Using environment or GIProbe reflections (Fast)"
func set_use_ssao(p_use_ssao):
use_ssao = p_use_ssao
ssao_label.text = "Screen-space ambient occlusion: %s" % "Enabled (Slow)" if use_ssao else "Disabled (Fastest)"
environment.ssao_enabled = use_ssao
reflection_probe.visible = p_visible

View File

@@ -84,8 +84,6 @@ data = SubResource( 1 )
[node name="Sun" type="DirectionalLight" parent="."]
transform = Transform( 0.889832, -0.251497, 0.380722, 0, 0.834387, 0.551179, -0.456289, -0.490456, 0.742464, 4.47302, 6.47568, 8.72305 )
shadow_enabled = true
directional_shadow_normal_bias = 0.1
directional_shadow_bias_split_scale = 1.0
directional_shadow_max_distance = 85.0
[node name="GrateOmniLight" type="OmniLight" parent="."]
@@ -135,7 +133,7 @@ material/0 = SubResource( 3 )
[node name="ReflectionProbe" type="ReflectionProbe" parent="Camera/ReflectiveSphere"]
transform = Transform( 1, -8.38189e-09, -8.9407e-08, 5.58791e-09, 1, -5.21541e-07, 4.47035e-08, 1.11759e-07, 1, 0, 0, 0 )
max_distance = 50.0
extents = Vector3( 2, 2, 2 )
extents = Vector3( 10, 10, 10 )
box_projection = true
enable_shadows = true
@@ -154,26 +152,20 @@ margin_left = 16.0
margin_top = 40.0
margin_right = 272.0
margin_bottom = 54.0
text = "Disabled - Using environment, VoxelGI or SDFGI reflections (Fastest)"
[node name="SSAO" type="Label" parent="."]
margin_left = 16.0
margin_top = 64.0
margin_right = 455.0
margin_bottom = 78.0
text = "Screen-space ambient occlusion: Disabled (Fastest)"
text = "Reflection probe:"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" type="Label" parent="."]
anchor_top = 1.0
anchor_bottom = 1.0
margin_left = 16.0
margin_top = -89.0
margin_right = 496.0
margin_bottom = -15.0
custom_constants/line_spacing = 6
text = "Space: Cycle between GI modes
R: Cycle reflection probe modes
F: Cycle between screen-space lighting effect modes
Escape or F10: Toggle mouse capture"
margin_top = 64.0
margin_right = 454.0
margin_bottom = 78.0
text = "Press Space to cycle between GI modes, R to toggle reflection probe
Press Esc or F10 to toggle mouse capture"
__meta__ = {
"_edit_use_anchors_": false
}
[editable path="GlowingBox"]

View File

@@ -1,7 +1,6 @@
tool
extends Spatial
export(NodePath) var skeleton_path setget _set_skeleton_path
export(String) var bone_name = ""
export(int, "_process", "_physics_process", "_notification", "none") var update_mode = 0 setget _set_update

View File

@@ -1,7 +1,6 @@
tool
extends EditorPlugin
func _enter_tree():
# Plugin Initialization here!
add_custom_type("IK_LookAt", "Spatial", preload("ik_look_at.gd"), preload("ik_look_at.png"))

View File

@@ -1,6 +1,5 @@
extends Button
export(String, FILE) var scene_to_change_to = null

Some files were not shown because too many files have changed in this diff Show More