Added BGM
This commit is contained in:
parent
23da8b01c4
commit
50627d2355
Binary file not shown.
After Width: | Height: | Size: 182 KiB |
|
@ -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 |
|
@ -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
|
|
@ -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))
|
|
@ -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
|
||||||
|
}
|
|
@ -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]
|
[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]
|
[resource]
|
||||||
0/name = "belt"
|
0/name = "belt"
|
||||||
0/texture = ExtResource( 1 )
|
0/texture = ExtResource( 1 )
|
||||||
|
@ -69,7 +72,14 @@
|
||||||
4/navigation_offset = Vector2( 0, 0 )
|
4/navigation_offset = Vector2( 0, 0 )
|
||||||
4/shape_offset = Vector2( 0, 0 )
|
4/shape_offset = Vector2( 0, 0 )
|
||||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 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 = false
|
||||||
4/shape_one_way_margin = 0.0
|
4/shape_one_way_margin = 1.0
|
||||||
4/shapes = [ ]
|
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
|
4/z_index = 0
|
||||||
|
|
Binary file not shown.
|
@ -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
|
|
@ -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 )
|
|
@ -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 )
|
|
@ -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 )
|
|
@ -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 )
|
|
@ -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))
|
|
@ -0,0 +1,5 @@
|
||||||
|
extends HSlider
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
connect("value_changed", $"/root/Main/bgm", "set_volume")
|
||||||
|
$"/root/Main/bgm".set_volume(0.5)
|
File diff suppressed because one or more lines are too long
|
@ -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},
|
||||||
|
}
|
|
@ -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
|
|
@ -7,7 +7,7 @@ custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="./LD46.html"
|
export_path="build/web/Frantic Factory.html"
|
||||||
patch_list=PoolStringArray( )
|
patch_list=PoolStringArray( )
|
||||||
script_export_mode=1
|
script_export_mode=1
|
||||||
script_encryption_key=""
|
script_encryption_key=""
|
||||||
|
@ -30,7 +30,7 @@ custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path=""
|
export_path="build/LD46.apk"
|
||||||
patch_list=PoolStringArray( )
|
patch_list=PoolStringArray( )
|
||||||
script_export_mode=1
|
script_export_mode=1
|
||||||
script_encryption_key=""
|
script_encryption_key=""
|
||||||
|
@ -220,3 +220,71 @@ permissions/write_sms=false
|
||||||
permissions/write_social_stream=false
|
permissions/write_social_stream=false
|
||||||
permissions/write_sync_settings=false
|
permissions/write_sync_settings=false
|
||||||
permissions/write_user_dictionary=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.png
BIN
icon.png
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 25 KiB |
|
@ -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
|
|
@ -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
|
|
@ -1,11 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_ladder4.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="BigLadder" type="KinematicBody2D"]
|
[node name="BigLadder" type="KinematicBody2D"]
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
material_type = 5
|
||||||
|
|
||||||
[node name="CS2D" type="CollisionPolygon2D" parent="."]
|
[node name="CS2D" type="CollisionPolygon2D" parent="."]
|
||||||
polygon = PoolVector2Array( -24, -7, -24, 7, 24, 7, 24, -7 )
|
polygon = PoolVector2Array( -24, -7, -24, 7, 24, 7, 24, -7 )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_ore.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="IronOre" type="KinematicBody2D"]
|
[node name="IronOre" type="KinematicBody2D"]
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_rod.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="IronRod" type="KinematicBody2D"]
|
[node name="IronRod" type="KinematicBody2D"]
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
material_type = 2
|
||||||
rungs = 3
|
rungs = 3
|
||||||
cx = 2.35
|
cx = 2.35
|
||||||
cy = 2.0
|
cy = 2.0
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_stock.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="IronStock" type="KinematicBody2D"]
|
[node name="IronStock" type="KinematicBody2D"]
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
material_type = 1
|
||||||
rungs = 3
|
rungs = 3
|
||||||
cx = 2.35
|
cx = 2.35
|
||||||
cy = 3.0
|
cy = 3.0
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_ladder2.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="MedLadder" type="KinematicBody2D"]
|
[node name="MedLadder" type="KinematicBody2D"]
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
material_type = 4
|
||||||
rungs = 7
|
rungs = 7
|
||||||
|
|
||||||
[node name="CS2D" type="CollisionPolygon2D" parent="."]
|
[node name="CS2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[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]
|
[ext_resource path="res://assets/sprites/iron_ladder.tres" type="Texture" id=2]
|
||||||
|
|
||||||
[node name="SmallLadder" type="KinematicBody2D"]
|
[node name="SmallLadder" type="KinematicBody2D"]
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
material_type = 3
|
||||||
rungs = 3
|
rungs = 3
|
||||||
cx = 2.35
|
cx = 2.35
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,17 @@ config/name="LD46"
|
||||||
run/main_scene="res://Main.tscn"
|
run/main_scene="res://Main.tscn"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Constants="*res://constants.gd"
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
|
|
||||||
settings/fps/force_fps=60
|
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]
|
[display]
|
||||||
|
|
||||||
|
|
BIN
spritesheet.png
BIN
spritesheet.png
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
spritesheet.xcf
BIN
spritesheet.xcf
Binary file not shown.
Loading…
Reference in New Issue