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]
|
||||
|
||||
[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
|
||||
|
|
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"
|
||||
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.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]
|
||||
|
||||
[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 )
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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="."]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
||||
|
|
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