Added BGM

master
Luke Hubmayer-Werner 2020-04-20 05:09:48 +09:30
parent 23da8b01c4
commit 50627d2355
33 changed files with 769 additions and 33 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/FranticFactoryLogo.png-f7c8e6be62e76aac49fd61d295c941a9.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://FranticFactoryLogo.png"
dest_files=[ "res://.import/FranticFactoryLogo.png-f7c8e6be62e76aac49fd61d295c941a9.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 55 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/FranticFactoryLogo.svg-e0ec1e60d4df77bc744774698ba383ef.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://FranticFactoryLogo.svg"
dest_files=[ "res://.import/FranticFactoryLogo.svg-e0ec1e60d4df77bc744774698ba383ef.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

19
Main.gd 100644
View File

@ -0,0 +1,19 @@
extends Node2D
var crosshair_16 = preload("res://assets/sprites/cursor_16.tres")
var crosshair_32 = preload("res://assets/sprites/cursor_32.tres")
var crosshair_48 = preload("res://assets/sprites/cursor_48.tres")
var crosshair_64 = preload("res://assets/sprites/cursor_64.tres")
func _ready():
update_cursor(1)
func update_cursor(size):
match size:
0:
Input.set_custom_mouse_cursor(crosshair_16, Input.CURSOR_ARROW, Vector2(8, 8))
1:
Input.set_custom_mouse_cursor(crosshair_32, Input.CURSOR_ARROW, Vector2(16, 16))
2:
Input.set_custom_mouse_cursor(crosshair_48, Input.CURSOR_ARROW, Vector2(24, 24))
3:
Input.set_custom_mouse_cursor(crosshair_64, Input.CURSOR_ARROW, Vector2(32, 32))

106
Main.tscn

File diff suppressed because one or more lines are too long

184
MainSplash.tscn 100644
View File

@ -0,0 +1,184 @@
[gd_scene load_steps=18 format=2]
[ext_resource path="res://FranticFactoryLogo.png" type="Texture" id=1]
[sub_resource type="VisualShaderNodeInput" id=6]
input_name = "color"
[sub_resource type="VisualShaderNodeColorOp" id=7]
output_port_for_preview = 0
operator = 2
[sub_resource type="VisualShaderNodeScalarFunc" id=8]
output_port_for_preview = 0
function = 0
[sub_resource type="VisualShaderNodeScalarOp" id=9]
[sub_resource type="VisualShaderNodeScalarFunc" id=10]
output_port_for_preview = 0
function = 12
[sub_resource type="VisualShaderNodeScalarOp" id=11]
default_input_values = [ 0, 0.0, 1, 0.15708 ]
operator = 2
[sub_resource type="VisualShaderNodeInput" id=12]
input_name = "time"
[sub_resource type="VisualShaderNodeInput" id=13]
input_name = "screen_uv"
[sub_resource type="VisualShaderNodeScalarOp" id=14]
operator = 1
[sub_resource type="VisualShaderNodeVectorDecompose" id=15]
[sub_resource type="VisualShaderNodeScalarOp" id=16]
[sub_resource type="VisualShaderNodeScalarFunc" id=17]
function = 17
[sub_resource type="VisualShaderNodeScalarOp" id=18]
output_port_for_preview = 0
default_input_values = [ 0, 0.0, 1, 0.33 ]
operator = 9
[sub_resource type="VisualShaderNodeScalarOp" id=19]
default_input_values = [ 0, 0.0, 1, 20.0 ]
operator = 2
[sub_resource type="VisualShader" id=20]
code = "shader_type canvas_item;
void vertex() {
// Output:0
}
void fragment() {
// Input:10
vec3 n_out10p0 = COLOR.rgb;
// Input:3
vec3 n_out3p0 = vec3(SCREEN_UV, 0.0);
// VectorDecompose:5
float n_out5p0 = n_out3p0.x;
float n_out5p1 = n_out3p0.y;
float n_out5p2 = n_out3p0.z;
// ScalarOp:4
float n_out4p0 = n_out5p0 - n_out5p1;
// ScalarOp:9
float n_in9p1 = 20.00000;
float n_out9p0 = n_out4p0 * n_in9p1;
// Input:2
float n_out2p0 = TIME;
// ScalarOp:15
float n_in15p1 = 0.15708;
float n_out15p0 = n_out2p0 * n_in15p1;
// ScalarFunc:12
float n_out12p0 = sin(n_out15p0);
// ScalarOp:13
float n_out13p0 = n_out2p0 + n_out12p0;
// ScalarOp:6
float n_out6p0 = n_out9p0 + n_out13p0;
// ScalarFunc:7
float n_out7p0 = fract(n_out6p0);
// ScalarFunc:14
float n_out14p0 = abs(n_out12p0);
// ScalarOp:8
float n_out8p0 = step(n_out7p0, n_out14p0);
// ColorOp:11
vec3 n_out11p0 = min(n_out10p0, vec3(n_out8p0));
// Output:0
COLOR.rgb = n_out11p0;
}
void light() {
// Output:0
}
"
mode = 1
flags/light_only = false
nodes/fragment/0/position = Vector2( 1120, 20 )
nodes/fragment/2/node = SubResource( 12 )
nodes/fragment/2/position = Vector2( 20, 220 )
nodes/fragment/3/node = SubResource( 13 )
nodes/fragment/3/position = Vector2( 0, 60 )
nodes/fragment/4/node = SubResource( 14 )
nodes/fragment/4/position = Vector2( 220, 40 )
nodes/fragment/5/node = SubResource( 15 )
nodes/fragment/5/position = Vector2( 0, 120 )
nodes/fragment/6/node = SubResource( 16 )
nodes/fragment/6/position = Vector2( 500, 160 )
nodes/fragment/7/node = SubResource( 17 )
nodes/fragment/7/position = Vector2( 620, 80 )
nodes/fragment/8/node = SubResource( 18 )
nodes/fragment/8/position = Vector2( 800, 80 )
nodes/fragment/9/node = SubResource( 19 )
nodes/fragment/9/position = Vector2( 380, 40 )
nodes/fragment/10/node = SubResource( 6 )
nodes/fragment/10/position = Vector2( 780, 20 )
nodes/fragment/11/node = SubResource( 7 )
nodes/fragment/11/position = Vector2( 960, 20 )
nodes/fragment/12/node = SubResource( 8 )
nodes/fragment/12/position = Vector2( 180, 300 )
nodes/fragment/13/node = SubResource( 9 )
nodes/fragment/13/position = Vector2( 320, 180 )
nodes/fragment/14/node = SubResource( 10 )
nodes/fragment/14/position = Vector2( 360, 320 )
nodes/fragment/15/node = SubResource( 11 )
nodes/fragment/15/position = Vector2( 20, 280 )
nodes/fragment/connections = PoolIntArray( 5, 0, 4, 0, 5, 1, 4, 1, 6, 0, 7, 0, 7, 0, 8, 0, 4, 0, 9, 0, 10, 0, 11, 0, 8, 0, 11, 1, 11, 0, 0, 0, 3, 0, 5, 0, 2, 0, 13, 0, 9, 0, 6, 0, 13, 0, 6, 1, 12, 0, 14, 0, 14, 0, 8, 1, 12, 0, 13, 1, 15, 0, 12, 0, 2, 0, 15, 0 )
[sub_resource type="ShaderMaterial" id=21]
shader = SubResource( 20 )
[node name="MainSplash" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ColorRect" type="ColorRect" parent="."]
material = SubResource( 21 )
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 1, 1, 0, 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MainLogo" type="TextureRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource( 1 )
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -1,7 +1,10 @@
[gd_resource type="TileSet" load_steps=2 format=2]
[gd_resource type="TileSet" load_steps=3 format=2]
[ext_resource path="res://spritesheet.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
[resource]
0/name = "belt"
0/texture = ExtResource( 1 )
@ -69,7 +72,14 @@
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( 1 )
4/shape_one_way = false
4/shape_one_way_margin = 0.0
4/shapes = [ ]
4/shape_one_way_margin = 1.0
4/shapes = [ {
"autotile_coord": Vector2( 0, 0 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 1 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ]
4/z_index = 0

BIN
assets/bgm.ogg 100644

Binary file not shown.

View File

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/bgm.ogg-e1728340e2c8938587d9482b715a001a.oggstr"
[deps]
source_file="res://assets/bgm.ogg"
dest_files=[ "res://.import/bgm.ogg-e1728340e2c8938587d9482b715a001a.oggstr" ]
[params]
loop=true
loop_offset=0

View File

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=2]
[ext_resource path="res://spritesheet.png" type="Texture" id=1]
[resource]
atlas = ExtResource( 1 )
region = Rect2( 96, 0, 16, 16 )

View File

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=2]
[ext_resource path="res://spritesheet.png" type="Texture" id=1]
[resource]
atlas = ExtResource( 1 )
region = Rect2( 112, 0, 32, 32 )

View File

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=2]
[ext_resource path="res://spritesheet.png" type="Texture" id=1]
[resource]
atlas = ExtResource( 1 )
region = Rect2( 144, 0, 48, 48 )

View File

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=2]
[ext_resource path="res://spritesheet.png" type="Texture" id=1]
[resource]
atlas = ExtResource( 1 )
region = Rect2( 192, 0, 64, 64 )

11
bgm.gd 100644
View File

@ -0,0 +1,11 @@
extends AudioStreamPlayer
const BAR_LENGTH = 0.5
const SEGMENT_TIMES = [1.0, 9.0, 15.0, 33.0, 41.0, 57.0, 83.0]
enum SEGMENT_NAMES {Intro, Bass, Piano, KeyChange, Return, Outro, Fanfare}
func _ready():
pass
func set_volume(value):
set_volume_db(linear2db(value))

5
bgm_slider.gd 100644
View File

@ -0,0 +1,5 @@
extends HSlider
func _ready():
connect("value_changed", $"/root/Main/bgm", "set_volume")
$"/root/Main/bgm".set_volume(0.5)

1
build/web/pako_inflate.min.js vendored 100644

File diff suppressed because one or more lines are too long

11
constants.gd 100644
View File

@ -0,0 +1,11 @@
extends Node
enum MATERIAL_TYPE {iORE, iSTOCK, iROD, iLADDER, iLADDER2, iLADDER4, iMOLTEN}
enum MACHINE_TYPE {SMELTER, FORGE, LATHE, WELDER}
var RECIPES = {
MACHINE_TYPE.SMELTER: {input=MATERIAL_TYPE.iORE, output=MATERIAL_TYPE.iMOLTEN, time=4.0},
MACHINE_TYPE.FORGE: {input=MATERIAL_TYPE.iMOLTEN, output=MATERIAL_TYPE.iSTOCK, time=4.0},
MACHINE_TYPE.LATHE: {input=MATERIAL_TYPE.iSTOCK, output=MATERIAL_TYPE.iROD, time=4.0},
MACHINE_TYPE.WELDER: {input=MATERIAL_TYPE.iROD, output=MATERIAL_TYPE.iLADDER, time=8.0},
}

View File

@ -0,0 +1,8 @@
[gd_resource type="AudioBusLayout" load_steps=2 format=2]
[sub_resource type="AudioEffectSpectrumAnalyzer" id=1]
resource_name = "SpectrumAnalyzer"
[resource]
bus/0/effect/0/effect = SubResource( 1 )
bus/0/effect/0/enabled = false

View File

@ -7,7 +7,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="./LD46.html"
export_path="build/web/Frantic Factory.html"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
@ -30,7 +30,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
export_path="build/LD46.apk"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
@ -220,3 +220,71 @@ permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
[preset.2]
name="Linux/X11"
platform="Linux/X11"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="build/linux/Frantic Factory.x86_64"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.2.options]
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
binary_format/embed_pck=false
custom_template/release=""
custom_template/debug=""
[preset.3]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="build/windows/Frantic Factory.exe"
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.3.options]
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
binary_format/embed_pck=false
custom_template/release=""
custom_template/debug=""
codesign/enable=false
codesign/identity=""
codesign/password=""
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PoolStringArray( )
application/icon=""
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""

BIN
icon.ico 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 25 KiB

34
machine.gd 100644
View File

@ -0,0 +1,34 @@
extends StaticBody2D
export(Constants.MACHINE_TYPE) var machine_type = Constants.MACHINE_TYPE.SMELTER
export var max_idle_time := 8.0
export var max_input_buffer := 3
var num_inputs = 0
var working := false setget set_working
var idle_time := 0.0
var anim_speed = 1.0
onready var recipe = Constants.RECIPES[machine_type]
func _ready():
pass
func _process(delta):
if num_inputs < max_input_buffer:
suck_materials()
if num_inputs <= 0:
self.working = false
idle_time += delta
else:
self.working = true
func set_working(state):
working = state
$sprite.material.set_shader_param('rps', int(state)*anim_speed)
func suck_materials():
for candidate in $SuckArea.get_overlapping_bodies():
if candidate.has_method('enter_machine'):
if candidate.material_type == recipe.input:
pass

112
object.gd 100644
View File

@ -0,0 +1,112 @@
extends KinematicBody2D
export(Constants.MATERIAL_TYPE) var material_type = Constants.MATERIAL_TYPE.iORE
var entering_machine = null
var leaving_machine = null
var feed_position: Vector2
var held = false
var grabbed_vector = null
onready var beltmap = $"../BeltTiles"
var dir_vectors = [Vector2(1,0), Vector2(0,-1), Vector2(-1,0), Vector2(0,1)]
const max_speed := 200
export var rungs := 13
export var cx := 2.0 # offset for edge feet
export var cy := 5.0 # offset for edge feet
var foot_vectors
var foot_weights
var total_weight
#var stuck_vec = null
#var stuck_dir = -1 # For going off the end of belts
func _ready():
total_weight = 1 + rungs*4
foot_vectors = [Vector2(0, 0)]
foot_weights = [3]
for i in rungs:
foot_vectors.append(Vector2(cx*(i+1), cy))
foot_vectors.append(Vector2(-cx*(i+1), cy))
foot_vectors.append(Vector2(cx*(i+1), -cy))
foot_vectors.append(Vector2(-cx*(i+1), -cy))
foot_weights.append(1)
foot_weights.append(1)
foot_weights.append(1)
foot_weights.append(1)
func get_belt_direction(tx, ty):
var xflip = beltmap.is_cell_x_flipped(tx, ty)
var tp = beltmap.is_cell_transposed(tx, ty)
return int(tp) + int(xflip)*2
func get_belt_rect(vec):
var origin = beltmap.map_to_world(vec)
return Rect2(to_local(origin), Vector2(8, 8))
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
var belt_speed = 8
if entering_machine:
move_and_slide(position.direction_to(feed_position) * belt_speed)
return
elif leaving_machine:
move_and_slide(feed_position.direction_to(position) * belt_speed)
if position.distance_to(feed_position) > $sprite.width/2:
remove_collision_exception_with(leaving_machine)
leaving_machine = null
return
var direction = Vector2(0, 0)
for i in len(foot_vectors):
var vec = beltmap.world_to_map(position + foot_vectors[i].rotated(rotation))
var celltype = beltmap.get_cell(vec.x, vec.y)
if celltype >= 0 and celltype != 4:
direction += dir_vectors[get_belt_direction(vec.x, vec.y)] * foot_weights[i]
direction /= total_weight*0.5
direction.x = clamp(direction.x, -1, 1)
direction.y = clamp(direction.y, -1, 1)
move_and_slide(direction * belt_speed)
if held: # Cursor drag code
var ggv = to_global(grabbed_vector)
var dv = get_global_mouse_position() - ggv
var dvn = dv.normalized()
var dvm = dv.length()
var velo = dvn * min(dvm*dvm, max_speed)
# move_and_slide(dvn * min(dvm*dvm, max_speed)) # Simple movement
var collision = move_and_collide(velo*delta)
if collision and collision.remainder.length_squared()>0:
if collision.collider is KinematicBody2D:
var col2 = collision.collider.move_and_collide(collision.remainder)
if col2 and col2.remainder.length_squared()>0:
if col2.collider is KinematicBody2D:
col2.collider.move_and_collide(col2.remainder)
collision.collider.move_and_collide(col2.remainder)
move_and_collide(col2.remainder)
move_and_collide(collision.remainder)
else:
move_and_collide(collision.remainder.slide(collision.normal))
func _input(event):
if entering_machine or leaving_machine:
return
if event is InputEventMouseButton:
if not event.pressed:
held = false
elif $sprite.get_rect().has_point(to_local(event.position)):
held = true
grabbed_vector = to_local(event.position)
func enter_machine(machine):
add_collision_exception_with(machine)
entering_machine = machine
held = false
func leave_machine(machine):
add_collision_exception_with(machine)
leaving_machine = machine

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_ladder4.tres" type="Texture" id=2]
[node name="BigLadder" type="KinematicBody2D"]
input_pickable = true
script = ExtResource( 1 )
material_type = 5
[node name="CS2D" type="CollisionPolygon2D" parent="."]
polygon = PoolVector2Array( -24, -7, -24, 7, 24, 7, 24, -7 )

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_ore.tres" type="Texture" id=2]
[node name="IronOre" type="KinematicBody2D"]

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_rod.tres" type="Texture" id=2]
[node name="IronRod" type="KinematicBody2D"]
input_pickable = true
script = ExtResource( 1 )
material_type = 2
rungs = 3
cx = 2.35
cy = 2.0

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_stock.tres" type="Texture" id=2]
[node name="IronStock" type="KinematicBody2D"]
input_pickable = true
script = ExtResource( 1 )
material_type = 1
rungs = 3
cx = 2.35
cy = 3.0

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_ladder2.tres" type="Texture" id=2]
[node name="MedLadder" type="KinematicBody2D"]
input_pickable = true
script = ExtResource( 1 )
material_type = 4
rungs = 7
[node name="CS2D" type="CollisionPolygon2D" parent="."]

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://kb2dladder.gd" type="Script" id=1]
[ext_resource path="res://object.gd" type="Script" id=1]
[ext_resource path="res://assets/sprites/iron_ladder.tres" type="Texture" id=2]
[node name="SmallLadder" type="KinematicBody2D"]
input_pickable = true
script = ExtResource( 1 )
material_type = 3
rungs = 3
cx = 2.35

View File

@ -19,9 +19,17 @@ config/name="LD46"
run/main_scene="res://Main.tscn"
config/icon="res://icon.png"
[autoload]
Constants="*res://constants.gd"
[debug]
settings/fps/force_fps=60
gdscript/warnings/unused_variable=false
gdscript/warnings/unused_argument=false
gdscript/warnings/unused_signal=false
gdscript/warnings/return_value_discarded=false
[display]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.