Add a lot of basic things to the game
This commit is contained in:
parent
bf9bf97da0
commit
27149e3563
|
@ -1,5 +1,6 @@
|
|||
extends KinematicBody2D
|
||||
|
||||
const SPEED_MULTIPLIER_WHEN_ATTACHED = 0.8
|
||||
|
||||
export var speed = 200 # How fast the player will move (pixels/sec).
|
||||
var screen_size # Size of the game window.
|
||||
|
@ -8,15 +9,47 @@ var screen_size # Size of the game window.
|
|||
func _ready():
|
||||
screen_size = get_viewport_rect().size
|
||||
|
||||
func _physics_process(delta):
|
||||
func _physics_process(_delta):
|
||||
var velocity = Vector2.ZERO # The player's movement vector.
|
||||
velocity.x += Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
|
||||
velocity.y += Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
|
||||
|
||||
if velocity.length() > 0:
|
||||
velocity = velocity.normalized() * speed
|
||||
var direction = velocity.normalized()
|
||||
if $PlayerAttachmentManager.attached != null:
|
||||
velocity = direction * speed * SPEED_MULTIPLIER_WHEN_ATTACHED
|
||||
else:
|
||||
velocity = direction * speed
|
||||
$AnimatedSprite.play()
|
||||
if $PlayerAttachmentManager.attached != null:
|
||||
var _att_lin_vel = $PlayerAttachmentManager.attached.move_and_slide(velocity)
|
||||
var _lin_vel = self.move_and_slide(velocity)
|
||||
if abs(velocity.x) > 0:
|
||||
$AnimatedSprite.flip_h = velocity.x < 0
|
||||
|
||||
$InteractionArea.rotation = direction.angle()
|
||||
else:
|
||||
$AnimatedSprite.stop()
|
||||
|
||||
self.move_and_slide(velocity)
|
||||
|
||||
func _process(_delta):
|
||||
if Input.is_action_just_pressed("interact"):
|
||||
print("interact")
|
||||
|
||||
if $PlayerAttachmentManager.attached != null:
|
||||
print("detach")
|
||||
$PlayerAttachmentManager.detach()
|
||||
return
|
||||
|
||||
var bodies = $InteractionArea.get_overlapping_bodies()
|
||||
print("found", len(bodies))
|
||||
for body in bodies:
|
||||
print(body)
|
||||
if body.is_in_group("attachable"):
|
||||
print("attachable!")
|
||||
$PlayerAttachmentManager.attach(body)
|
||||
break
|
||||
|
||||
if body.is_in_group("interactable"):
|
||||
print("interactable!")
|
||||
body.interact(self)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=5 format=2]
|
||||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://characters/player/player1_r.png" type="Texture" id=1]
|
||||
[ext_resource path="res://characters/player/Player.gd" type="Script" id=2]
|
||||
[ext_resource path="res://characters/player/PlayerAttachmentManager.tscn" type="PackedScene" id=3]
|
||||
|
||||
[sub_resource type="SpriteFrames" id=1]
|
||||
animations = [ {
|
||||
|
@ -16,9 +17,12 @@ radius = 23.0217
|
|||
|
||||
[node name="Player" type="KinematicBody2D"]
|
||||
script = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_edit_horizontal_guides_": [ -111.0 ]
|
||||
}
|
||||
|
||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||
position = Vector2( 11, 5 )
|
||||
position = Vector2( 5.68434e-14, -3 )
|
||||
scale = Vector2( 0.05, 0.05 )
|
||||
frames = SubResource( 1 )
|
||||
animation = "right"
|
||||
|
@ -28,3 +32,12 @@ __meta__ = {
|
|||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="InteractionArea" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="InteractionArea"]
|
||||
polygon = PoolVector2Array( 0, -21, 20, -8, 20, 12, 0, 24, 0, 35, 52, 21, 52, -20, 0, -32 )
|
||||
|
||||
[node name="PlayerAttachmentManager" parent="." instance=ExtResource( 3 )]
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
extends Node2D
|
||||
|
||||
const SPEED_PER_DISTANCE = 15
|
||||
const MAX_SPEED = 200
|
||||
const MAX_DISTANCE_BEFORE_DETACH = 32
|
||||
|
||||
var attached: KinematicBody2D = null
|
||||
var anchor_offset = Vector2.ZERO
|
||||
|
||||
func attach(node: KinematicBody2D):
|
||||
attached = node
|
||||
anchor_offset = -(node.global_position - self.global_position)
|
||||
|
||||
func detach():
|
||||
attached = null
|
||||
anchor_offset = Vector2.ZERO
|
||||
|
||||
func _physics_process(_delta):
|
||||
if attached == null:
|
||||
return
|
||||
|
||||
var anchor_relative_to_us = (attached.global_position + anchor_offset) - self.global_position
|
||||
var distance = anchor_relative_to_us.length()
|
||||
if distance < 0.1:
|
||||
return
|
||||
|
||||
if distance > MAX_DISTANCE_BEFORE_DETACH:
|
||||
attached = null
|
||||
anchor_offset = Vector2.ZERO
|
||||
# TODO play sfx
|
||||
print("detached!")
|
||||
return
|
||||
|
||||
var velocity = (-anchor_relative_to_us.normalized()) * min(MAX_SPEED, SPEED_PER_DISTANCE * distance)
|
||||
attached.move_and_slide(velocity)
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://characters/player/PlayerAttachmentManager.gd" type="Script" id=1]
|
||||
|
||||
[node name="PlayerAttachmentManager" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
BIN
characters/player/player1_r.kra (Stored with Git LFS)
BIN
characters/player/player1_r.kra (Stored with Git LFS)
Binary file not shown.
BIN
characters/player/player1_r.png (Stored with Git LFS)
BIN
characters/player/player1_r.png (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bottle_oliveoil.png-520178365b65481ca2e1277d900f657c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/bottle_oliveoil.png"
|
||||
dest_files=[ "res://.import/bottle_oliveoil.png-520178365b65481ca2e1277d900f657c.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bottle_oliveoil_bottle.png-dbd895a4ca0607ad24e0381b26eef669.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/bottle_oliveoil_bottle.png"
|
||||
dest_files=[ "res://.import/bottle_oliveoil_bottle.png-dbd895a4ca0607ad24e0381b26eef669.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bottle_oliveoil_label.png-3a6ea91cfcdff5baef1070651bff65c3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/bottle_oliveoil_label.png"
|
||||
dest_files=[ "res://.import/bottle_oliveoil_label.png-3a6ea91cfcdff5baef1070651bff65c3.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bottle_oliveoil_lid.png-2ab93bd20adf0296825e924b6849ab0b.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/bottle_oliveoil_lid.png"
|
||||
dest_files=[ "res://.import/bottle_oliveoil_lid.png-2ab93bd20adf0296825e924b6849ab0b.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bottle_oliveoil_oil.png-b055cb18e976a17de69e9437975a2fb8.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/bottle_oliveoil_oil.png"
|
||||
dest_files=[ "res://.import/bottle_oliveoil_oil.png-b055cb18e976a17de69e9437975a2fb8.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/olive.png-1b9011d0c54af177dc910283c94c238c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://items/olive.png"
|
||||
dest_files=[ "res://.import/olive.png-1b9011d0c54af177dc910283c94c238c.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -0,0 +1,36 @@
|
|||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://scenery/tiles/ohld_tileset.tres" type="TileSet" id=1]
|
||||
[ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://scenery/facilities/OliveTree.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://scenery/facilities/Wheelbarrow.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://scenery/facilities/Press.tscn" type="PackedScene" id=5]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="TileMapGround" type="TileMap" parent="."]
|
||||
z_index = -10
|
||||
tile_set = ExtResource( 1 )
|
||||
format = 1
|
||||
tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 8, 0, 262147, 8, 0, 262148, 8, 0, 262149, 8, 0, 262150, 11, 0, 262151, 11, 0, 262152, 8, 0, 262153, 8, 0, 262154, 8, 0, 262155, 8, 0, 262156, 8, 0, 262157, 8, 0, 262158, 0, 0, 262159, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 8, 0, 327683, 8, 0, 327684, 8, 0, 327685, 8, 0, 327686, 8, 0, 327687, 8, 0, 327688, 8, 0, 327689, 8, 0, 327690, 8, 0, 327691, 8, 0, 327692, 8, 0, 327693, 8, 0, 327694, 0, 0, 327695, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 8, 0, 393219, 8, 0, 393220, 8, 0, 393221, 8, 0, 393222, 8, 0, 393223, 8, 0, 393224, 8, 0, 393225, 8, 0, 393226, 8, 0, 393227, 8, 0, 393228, 8, 0, 393229, 8, 0, 393230, 0, 0, 393231, 0, 0, 458752, 0, 0, 458753, 0, 0, 458754, 8, 0, 458755, 8, 0, 458756, 8, 0, 458757, 8, 0, 458758, 8, 0, 458759, 8, 0, 458760, 8, 0, 458761, 8, 0, 458762, 8, 0, 458763, 8, 0, 458764, 8, 0, 458765, 8, 0, 458766, 0, 0, 458767, 0, 0, 524288, 0, 0, 524289, 0, 0, 524290, 0, 0, 524291, 10, 0, 524292, 10, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0 )
|
||||
|
||||
[node name="TileMapWalls" type="TileMap" parent="."]
|
||||
z_index = -1
|
||||
tile_set = ExtResource( 1 )
|
||||
format = 1
|
||||
tile_data = PoolIntArray( 262145, 5, 0, 262146, 1, 0, 262147, 1, 0, 262148, 1, 0, 262149, 1, 0, 262150, 2, 0, 262151, 3, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 6, 0, 327681, 4, 0, 327694, 7, 0, 393217, 4, 0, 393226, 4, 0, 393227, 1, 0, 393228, 9, 0, 393229, 1, 0, 393230, 7, 0, 458753, 4, 0, 458762, 4, 0, 458766, 7, 0, 524289, 3, 0, 524290, 1, 0, 524291, 2, 0, 524292, 3, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 2, 0 )
|
||||
|
||||
[node name="Press" parent="." instance=ExtResource( 5 )]
|
||||
position = Vector2( 120, 257 )
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 486, 154 )
|
||||
|
||||
[node name="Node2D" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 701, 189 )
|
||||
|
||||
[node name="Node2D2" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 135, 190 )
|
||||
|
||||
[node name="Node2D3" parent="." instance=ExtResource( 4 )]
|
||||
position = Vector2( 542, 475 )
|
|
@ -11,11 +11,12 @@ config_version=4
|
|||
[application]
|
||||
|
||||
config/name="Olive Harvest LD52"
|
||||
run/main_scene="res://characters/player/Player.tscn"
|
||||
run/main_scene="res://levels/Level0A.tscn"
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/height=640
|
||||
window/stretch/mode="2d"
|
||||
window/stretch/aspect="keep"
|
||||
|
||||
|
@ -53,6 +54,18 @@ move_down={
|
|||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
interact={
|
||||
"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":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
2d_physics/layer_1="Collision"
|
||||
2d_physics/layer_2="Interaction"
|
||||
2d_physics/layer_3="AutoCollection"
|
||||
|
||||
[physics]
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
extends Area2D
|
||||
|
||||
var shooting_to_ground = false
|
||||
|
||||
var wheelbarrow = null
|
||||
var slot = null
|
||||
|
||||
func shoot_to(target_pos: Vector2, in_time: float):
|
||||
$Tween.interpolate_property(self, "position:x", self.position.x, target_pos.x, in_time, Tween.TRANS_QUART, Tween.EASE_OUT)
|
||||
$Tween.interpolate_property(self, "position:y", self.position.y, target_pos.y, in_time, Tween.TRANS_BOUNCE, Tween.EASE_OUT)
|
||||
$Tween.start()
|
||||
shooting_to_ground = true
|
||||
|
||||
func harvest_into_wheelbarrow(target_pos: Vector2, target_rotation: float, new_wheelbarrow: Node2D, new_slot: Node2D):
|
||||
var first_stage_time = rand_range(0.2, 0.5)
|
||||
var second_stage_time = rand_range(0.2, 0.6)
|
||||
|
||||
var mid_pos = Vector2(target_pos.x + rand_range(-4, 4), target_pos.y - 40)
|
||||
|
||||
$Tween.interpolate_property(self, "position", self.position, mid_pos, first_stage_time, Tween.TRANS_QUART, Tween.EASE_OUT)
|
||||
$Tween.interpolate_property(self, "position:x", mid_pos.x, target_pos.x, second_stage_time, Tween.TRANS_QUART, Tween.EASE_OUT, first_stage_time)
|
||||
$Tween.interpolate_property(self, "position:y", mid_pos.y, target_pos.y, second_stage_time, Tween.TRANS_BOUNCE, Tween.EASE_OUT, first_stage_time)
|
||||
$Tween.interpolate_property(self, "rotation", self.rotation, target_rotation, first_stage_time, Tween.TRANS_QUAD, Tween.EASE_IN_OUT)
|
||||
$Tween.start()
|
||||
|
||||
wheelbarrow = new_wheelbarrow
|
||||
slot = new_slot
|
||||
|
||||
func _on_Tween_tween_all_completed():
|
||||
$Tween.remove_all()
|
||||
if shooting_to_ground:
|
||||
self.add_to_group("olive_collectible")
|
||||
shooting_to_ground = false
|
||||
elif wheelbarrow != null:
|
||||
wheelbarrow.slot_entry_complete(slot)
|
||||
self.queue_free()
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://items/olive.png" type="Texture" id=1]
|
||||
[ext_resource path="res://projectiles/OliveProjectile.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 8.95455
|
||||
height = 8.67516
|
||||
|
||||
[node name="OliveProjectile" type="Area2D"]
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 11, 9 )
|
||||
rotation = -0.87441
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Tween" type="Tween" parent="."]
|
||||
|
||||
[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_tween_all_completed"]
|
|
@ -0,0 +1,23 @@
|
|||
extends StaticBody2D
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
func interact(_player):
|
||||
# drop the olives!
|
||||
for child in self.get_children():
|
||||
if child.has_method("drop_olive"):
|
||||
if child.drop_olive():
|
||||
break
|
|
@ -0,0 +1,40 @@
|
|||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://scenery/facilities/olivetree.png" type="Texture" id=1]
|
||||
[ext_resource path="res://scenery/facilities/OliveTreeBud.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://scenery/facilities/OliveTree.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=1]
|
||||
radius = 28.0
|
||||
height = 34.0
|
||||
|
||||
[node name="OliveTree" type="StaticBody2D" groups=["interactable"]]
|
||||
collision_layer = 3
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
position = Vector2( 0, -66 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( -7, -30 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="OliveTreeBud" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 38, -105 )
|
||||
|
||||
[node name="OliveTreeBud2" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( -54, -75 )
|
||||
rotation = 1.53065
|
||||
|
||||
[node name="OliveTreeBud3" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( -42, -127 )
|
||||
rotation = 0.98262
|
||||
|
||||
[node name="OliveTreeBud4" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 8, -72 )
|
||||
rotation = 0.546288
|
||||
|
||||
[node name="OliveTreeBud5" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 2, -131 )
|
||||
rotation = 0.328122
|
|
@ -0,0 +1,60 @@
|
|||
extends Node2D
|
||||
|
||||
var progress: float = 0.0
|
||||
var growing: bool = false
|
||||
export var grow_rate: float = 0.05
|
||||
|
||||
# TODO 50 is debug
|
||||
const GROW_RATE = 50.05
|
||||
|
||||
func _ready():
|
||||
reset()
|
||||
start_growing()
|
||||
grow_rate = rand_range(0.03, 0.07)
|
||||
|
||||
func set_progress(new_progress: float):
|
||||
progress = new_progress
|
||||
$SpriteOlive.scale = Vector2(1, 1) * max(progress, 0)
|
||||
|
||||
if progress >= 1.0:
|
||||
$Tween.interpolate_property($SpriteOlive, "modulate", $SpriteOlive.modulate, Color.white, 2.5, Tween.TRANS_QUAD, Tween.EASE_IN_OUT)
|
||||
$Tween.start()
|
||||
|
||||
func reset():
|
||||
set_progress(rand_range(-0.5, 0.0))
|
||||
$SpriteOlive.modulate = Color(0.4, 0.4, 0.4)
|
||||
$Tween.remove_all()
|
||||
|
||||
func start_growing():
|
||||
growing = true
|
||||
|
||||
func _process(delta):
|
||||
if growing and progress < 1.0:
|
||||
set_progress(min(1.0, progress + GROW_RATE * delta))
|
||||
|
||||
func drop_olive():
|
||||
if progress < 1.0:
|
||||
return false
|
||||
|
||||
## Calculate where the olive needs to go.
|
||||
|
||||
# tree is my parent.
|
||||
# world is the tree's parent.
|
||||
var new_parent = self.get_parent().get_parent()
|
||||
|
||||
# we want to be at ground level
|
||||
var target_y = self.get_parent().position.y + rand_range(-8, 8)
|
||||
var target_x = self.get_parent().position.x + (self.position.x * rand_range(1.25, 2.0))
|
||||
var target_pos = Vector2(target_x, target_y)
|
||||
|
||||
var new_olive = preload("res://projectiles/OliveProjectile.tscn").instance()
|
||||
new_olive.position = self.global_position
|
||||
new_olive.rotation = self.global_rotation
|
||||
|
||||
new_parent.add_child_below_node(self.get_parent(), new_olive)
|
||||
|
||||
new_olive.shoot_to(target_pos, rand_range(0.5, 1.5))
|
||||
grow_rate = max(rand_range(0.9, 1.1) * grow_rate, 0.025)
|
||||
self.reset()
|
||||
|
||||
return true
|
|
@ -0,0 +1,14 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://items/olive.png" type="Texture" id=1]
|
||||
[ext_resource path="res://scenery/facilities/OliveTreeBud.gd" type="Script" id=3]
|
||||
|
||||
[node name="OliveTreeBud" type="Node2D"]
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[node name="SpriteOlive" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Tween" type="Tween" parent="."]
|
|
@ -0,0 +1,82 @@
|
|||
[gd_scene load_steps=10 format=2]
|
||||
|
||||
[ext_resource path="res://items/bottle_oliveoil.png" type="Texture" id=1]
|
||||
[ext_resource path="res://items/bottle_oliveoil_bottle.png" type="Texture" id=2]
|
||||
[ext_resource path="res://scenery/facilities/press_front.png" type="Texture" id=3]
|
||||
[ext_resource path="res://items/bottle_oliveoil_label.png" type="Texture" id=4]
|
||||
[ext_resource path="res://scenery/facilities/press_back.png" type="Texture" id=5]
|
||||
[ext_resource path="res://items/bottle_oliveoil_oil.png" type="Texture" id=6]
|
||||
[ext_resource path="res://items/bottle_oliveoil_lid.png" type="Texture" id=7]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 29.5128, 2.79108 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2( 104, 10 )
|
||||
|
||||
[node name="Press" type="StaticBody2D"]
|
||||
|
||||
[node name="PressB" type="Sprite" parent="."]
|
||||
z_index = -1
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="PressF" type="Sprite" parent="."]
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="FillingBottle" type="Node2D" parent="."]
|
||||
position = Vector2( 32, 136 )
|
||||
|
||||
[node name="BottleOliveoilOil" type="Sprite" parent="FillingBottle"]
|
||||
texture = ExtResource( 6 )
|
||||
region_enabled = true
|
||||
region_rect = Rect2( 0, 0, 32, 48 )
|
||||
|
||||
[node name="BottleOliveoilBottle" type="Sprite" parent="FillingBottle"]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="BottleOliveoilLid" type="Sprite" parent="FillingBottle"]
|
||||
texture = ExtResource( 7 )
|
||||
|
||||
[node name="BottleOliveoilLabel" type="Sprite" parent="FillingBottle"]
|
||||
texture = ExtResource( 4 )
|
||||
|
||||
[node name="BottleOliveoil" type="Sprite" parent="."]
|
||||
position = Vector2( 63, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="BottleOliveoil2" type="Sprite" parent="."]
|
||||
position = Vector2( 92, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="BottleOliveoil3" type="Sprite" parent="."]
|
||||
position = Vector2( 120, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="BottleOliveoil4" type="Sprite" parent="."]
|
||||
position = Vector2( 147, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="BottleOliveoil5" type="Sprite" parent="."]
|
||||
position = Vector2( 174, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="BottleOliveoil6" type="Sprite" parent="."]
|
||||
position = Vector2( 201, 166 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PoolVector2Array( 208, 27, 160, 7, 106, 7, 60, 24, 60, 48, 84, 32, 120, 26, 158, 26, 190, 39, 208, 56 )
|
||||
|
||||
[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PoolVector2Array( 60, 47, 60, 136, 90, 151, 122, 155, 157, 155, 185, 146, 208, 129, 208, 125, 184, 143, 158, 151, 123, 151, 92, 147, 62, 134 )
|
||||
|
||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 230, 134 )
|
||||
rotation = 0.628319
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 118, 173 )
|
||||
shape = SubResource( 2 )
|
|
@ -0,0 +1,32 @@
|
|||
extends KinematicBody2D
|
||||
|
||||
var free_slots = []
|
||||
var used_slots = []
|
||||
|
||||
func _ready():
|
||||
free_slots = [$Olive, $Olive2, $Olive3, $Olive4, $Olive5]
|
||||
|
||||
# Something has entered the collection area.
|
||||
# If it's an olive and we have space, pick it up!
|
||||
func _on_CollectionArea_area_entered(area: Area2D):
|
||||
if area.is_in_group("olive_collectible"):
|
||||
var olive_slot = free_slots.pop_back()
|
||||
if olive_slot == null:
|
||||
return
|
||||
|
||||
area.remove_from_group("olive_collectible")
|
||||
|
||||
self.call_deferred("_collect_olive", area, olive_slot)
|
||||
|
||||
func _collect_olive(olive: Area2D, olive_slot: Node2D):
|
||||
# new olive found!
|
||||
var olive_gpos = olive.global_position
|
||||
olive.get_parent().remove_child(olive)
|
||||
self.add_child_below_node(olive_slot, olive)
|
||||
olive.global_position = olive_gpos
|
||||
olive.harvest_into_wheelbarrow(olive_slot.position, olive_slot.rotation, self, olive_slot)
|
||||
|
||||
|
||||
func slot_entry_complete(slot: Node2D):
|
||||
used_slots.push_back(slot)
|
||||
slot.visible = true
|
|
@ -0,0 +1,80 @@
|
|||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://scenery/facilities/wheelbarrow_back.png" type="Texture" id=1]
|
||||
[ext_resource path="res://scenery/facilities/wheelbarrow_fore.png" type="Texture" id=2]
|
||||
[ext_resource path="res://scenery/facilities/Wheelbarrow.gd" type="Script" id=3]
|
||||
[ext_resource path="res://items/olive.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 43.125, 19.5 )
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=2]
|
||||
radius = 31.5
|
||||
height = 61.25
|
||||
|
||||
[node name="Wheelbarrow" type="KinematicBody2D" groups=["attachable"]]
|
||||
position = Vector2( 0, -11 )
|
||||
collision_layer = 3
|
||||
script = ExtResource( 3 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 1.875, 6.5 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="CollectionArea" type="Area2D" parent="."]
|
||||
position = Vector2( 1.875, 6.5 )
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="CollectionArea"]
|
||||
rotation = 1.5708
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="SpriteB" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="Olive" type="Sprite" parent="."]
|
||||
visible = false
|
||||
position = Vector2( -32, -19 )
|
||||
rotation = 0.460767
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Olive3" type="Sprite" parent="."]
|
||||
visible = false
|
||||
position = Vector2( 10, -21 )
|
||||
rotation = 0.218166
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Olive4" type="Sprite" parent="."]
|
||||
visible = false
|
||||
position = Vector2( -18, 3 )
|
||||
rotation = -2.29511
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Olive5" type="Sprite" parent="."]
|
||||
visible = false
|
||||
position = Vector2( 2, -25 )
|
||||
rotation = 0.546288
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="Olive2" type="Sprite" parent="."]
|
||||
visible = false
|
||||
position = Vector2( -9, -26 )
|
||||
rotation = 0.656244
|
||||
scale = Vector2( 1, 1 )
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
offset = Vector2( -5, -5 )
|
||||
|
||||
[node name="SpriteF" type="Sprite" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[connection signal="area_entered" from="CollectionArea" to="." method="_on_CollectionArea_area_entered"]
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/olivetree.png-0924dba8dc020757ab0b35737dc1b108.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/olivetree.png"
|
||||
dest_files=[ "res://.import/olivetree.png-0924dba8dc020757ab0b35737dc1b108.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/olivetreebud.png-3b362a873c4f5cb320092e567c0c91e2.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/olivetreebud.png"
|
||||
dest_files=[ "res://.import/olivetreebud.png-3b362a873c4f5cb320092e567c0c91e2.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/press_back.png-ee6213facc0f2fe3e67dd7395f550f73.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/press_back.png"
|
||||
dest_files=[ "res://.import/press_back.png-ee6213facc0f2fe3e67dd7395f550f73.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/press_front.png-b3e7dd95c2f183aa8b8a24782f53c14a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/press_front.png"
|
||||
dest_files=[ "res://.import/press_front.png-b3e7dd95c2f183aa8b8a24782f53c14a.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/wheelbarrow_back.png-4196918e6f6b437135040ebf4919c2c9.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/wheelbarrow_back.png"
|
||||
dest_files=[ "res://.import/wheelbarrow_back.png-4196918e6f6b437135040ebf4919c2c9.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/wheelbarrow_fore.png-ed11a923b3a9b8b2660c222599569660.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/facilities/wheelbarrow_fore.png"
|
||||
dest_files=[ "res://.import/wheelbarrow_fore.png-ed11a923b3a9b8b2660c222599569660.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/brickwall_set.png-346545cf523751f7f8264a4671445c46.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/tiles/brickwall_set.png"
|
||||
dest_files=[ "res://.import/brickwall_set.png-346545cf523751f7f8264a4671445c46.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/concrete.png-3d2e5448bb2a4fe28d8554fe731e99da.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/tiles/concrete.png"
|
||||
dest_files=[ "res://.import/concrete.png-3d2e5448bb2a4fe28d8554fe731e99da.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/grass.png-53030a0dfa97d02269c0aa54952e82ea.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/tiles/grass.png"
|
||||
dest_files=[ "res://.import/grass.png-53030a0dfa97d02269c0aa54952e82ea.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/grasswallconcrete.png-ad116c1f7d869d8461690c1897959ded.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenery/tiles/grasswallconcrete.png"
|
||||
dest_files=[ "res://.import/grasswallconcrete.png-ad116c1f7d869d8461690c1897959ded.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,265 @@
|
|||
[gd_resource type="TileSet" load_steps=14 format=2]
|
||||
|
||||
[ext_resource path="res://scenery/tiles/grass.png" type="Texture" id=1]
|
||||
[ext_resource path="res://scenery/tiles/brickwall_set.png" type="Texture" id=2]
|
||||
[ext_resource path="res://scenery/tiles/concrete.png" type="Texture" id=3]
|
||||
[ext_resource path="res://scenery/tiles/grasswallconcrete.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PoolVector2Array( 64, 52, 0, 51, 0, 0, 64, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
points = PoolVector2Array( 5.0014, 53.8965, 0.647736, 53.8965, 0, 0, 5.0014, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
points = PoolVector2Array( 57.6494, 0, 64, 0, 64, 53.5696, 57.6494, 53.5696 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
points = PoolVector2Array( 61.3984, 64, 57.9098, 64, 57.9098, 0, 61.6309, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
points = PoolVector2Array( 64, 64, 57.5154, 64, 57.5154, 0, 64, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
points = PoolVector2Array( 4.6665, 64, 0, 64, 0, 0, 4.6665, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
points = PoolVector2Array( 5.3363, 64, 2.32224, 64, 2.1868, 0, 5.0939, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
points = PoolVector2Array( 0, 0.381836, 4.701, 0.381836, 4.701, 54.9702, 0, 54.9702 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||
points = PoolVector2Array( 64, 54.3004, 58.2847, 54.3004, 58.2847, 0.381836, 64, 0.381836 )
|
||||
|
||||
[resource]
|
||||
0/name = "grass.png 0"
|
||||
0/texture = ExtResource( 1 )
|
||||
0/tex_offset = Vector2( 0, 0 )
|
||||
0/modulate = Color( 1, 1, 1, 1 )
|
||||
0/region = Rect2( 0, 0, 64, 64 )
|
||||
0/tile_mode = 0
|
||||
0/occluder_offset = Vector2( 0, 0 )
|
||||
0/navigation_offset = Vector2( 0, 0 )
|
||||
0/shape_offset = Vector2( 0, 0 )
|
||||
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
0/shape_one_way = false
|
||||
0/shape_one_way_margin = 0.0
|
||||
0/shapes = [ ]
|
||||
0/z_index = 0
|
||||
1/name = "brickwall_set.png 1"
|
||||
1/texture = ExtResource( 2 )
|
||||
1/tex_offset = Vector2( 0, 0 )
|
||||
1/modulate = Color( 1, 1, 1, 1 )
|
||||
1/region = Rect2( 64, 128, 64, 64 )
|
||||
1/tile_mode = 0
|
||||
1/occluder_offset = Vector2( 0, 0 )
|
||||
1/navigation_offset = Vector2( 0, 0 )
|
||||
1/shape_offset = Vector2( 0, 0 )
|
||||
1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
1/shape = SubResource( 1 )
|
||||
1/shape_one_way = false
|
||||
1/shape_one_way_margin = 1.0
|
||||
1/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 )
|
||||
} ]
|
||||
1/z_index = 0
|
||||
2/name = "brickwall_set.png 2"
|
||||
2/texture = ExtResource( 2 )
|
||||
2/tex_offset = Vector2( 0, 0 )
|
||||
2/modulate = Color( 1, 1, 1, 1 )
|
||||
2/region = Rect2( 128, 128, 64, 64 )
|
||||
2/tile_mode = 0
|
||||
2/occluder_offset = Vector2( 0, 0 )
|
||||
2/navigation_offset = Vector2( 0, 0 )
|
||||
2/shape_offset = Vector2( 0, 0 )
|
||||
2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
2/shape = SubResource( 2 )
|
||||
2/shape_one_way = false
|
||||
2/shape_one_way_margin = 1.0
|
||||
2/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 2 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
2/z_index = 0
|
||||
3/name = "brickwall_set.png 3"
|
||||
3/texture = ExtResource( 2 )
|
||||
3/tex_offset = Vector2( 0, 0 )
|
||||
3/modulate = Color( 1, 1, 1, 1 )
|
||||
3/region = Rect2( 0, 128, 64, 64 )
|
||||
3/tile_mode = 0
|
||||
3/occluder_offset = Vector2( 0, 0 )
|
||||
3/navigation_offset = Vector2( 0, 0 )
|
||||
3/shape_offset = Vector2( 0, 0 )
|
||||
3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
3/shape = SubResource( 3 )
|
||||
3/shape_one_way = false
|
||||
3/shape_one_way_margin = 1.0
|
||||
3/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 3 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
3/z_index = 0
|
||||
4/name = "brickwall_set.png 4"
|
||||
4/texture = ExtResource( 2 )
|
||||
4/tex_offset = Vector2( 0, 0 )
|
||||
4/modulate = Color( 1, 1, 1, 1 )
|
||||
4/region = Rect2( 0, 64, 64, 64 )
|
||||
4/tile_mode = 0
|
||||
4/occluder_offset = Vector2( 0, 0 )
|
||||
4/navigation_offset = Vector2( 0, 0 )
|
||||
4/shape_offset = Vector2( 0, 0 )
|
||||
4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
4/shape = SubResource( 4 )
|
||||
4/shape_one_way = false
|
||||
4/shape_one_way_margin = 1.0
|
||||
4/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 4 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
4/z_index = 0
|
||||
5/name = "brickwall_set.png 5"
|
||||
5/texture = ExtResource( 2 )
|
||||
5/tex_offset = Vector2( 0, 0 )
|
||||
5/modulate = Color( 1, 1, 1, 1 )
|
||||
5/region = Rect2( 0, 0, 64, 64 )
|
||||
5/tile_mode = 0
|
||||
5/occluder_offset = Vector2( 0, 0 )
|
||||
5/navigation_offset = Vector2( 0, 0 )
|
||||
5/shape_offset = Vector2( 0, 0 )
|
||||
5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
5/shape = SubResource( 5 )
|
||||
5/shape_one_way = false
|
||||
5/shape_one_way_margin = 1.0
|
||||
5/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 5 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
5/z_index = 0
|
||||
6/name = "brickwall_set.png 6"
|
||||
6/texture = ExtResource( 2 )
|
||||
6/tex_offset = Vector2( 0, 0 )
|
||||
6/modulate = Color( 1, 1, 1, 1 )
|
||||
6/region = Rect2( 128, 0, 64, 64 )
|
||||
6/tile_mode = 0
|
||||
6/occluder_offset = Vector2( 0, 0 )
|
||||
6/navigation_offset = Vector2( 0, 0 )
|
||||
6/shape_offset = Vector2( 0, 0 )
|
||||
6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
6/shape = SubResource( 6 )
|
||||
6/shape_one_way = false
|
||||
6/shape_one_way_margin = 1.0
|
||||
6/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 6 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
6/z_index = 0
|
||||
7/name = "brickwall_set.png 7"
|
||||
7/texture = ExtResource( 2 )
|
||||
7/tex_offset = Vector2( 0, 0 )
|
||||
7/modulate = Color( 1, 1, 1, 1 )
|
||||
7/region = Rect2( 128, 64, 64, 64 )
|
||||
7/tile_mode = 0
|
||||
7/occluder_offset = Vector2( 0, 0 )
|
||||
7/navigation_offset = Vector2( 0, 0 )
|
||||
7/shape_offset = Vector2( 0, 0 )
|
||||
7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
7/shape = SubResource( 7 )
|
||||
7/shape_one_way = false
|
||||
7/shape_one_way_margin = 1.0
|
||||
7/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 7 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
7/z_index = 0
|
||||
8/name = "concrete.png 8"
|
||||
8/texture = ExtResource( 3 )
|
||||
8/tex_offset = Vector2( 0, 0 )
|
||||
8/modulate = Color( 1, 1, 1, 1 )
|
||||
8/region = Rect2( 0, 0, 64, 64 )
|
||||
8/tile_mode = 0
|
||||
8/occluder_offset = Vector2( 0, 0 )
|
||||
8/navigation_offset = Vector2( 0, 0 )
|
||||
8/shape_offset = Vector2( 0, 0 )
|
||||
8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
8/shape_one_way = false
|
||||
8/shape_one_way_margin = 0.0
|
||||
8/shapes = [ ]
|
||||
8/z_index = 0
|
||||
9/name = "brickwall_set.png 9"
|
||||
9/texture = ExtResource( 2 )
|
||||
9/tex_offset = Vector2( 0, 0 )
|
||||
9/modulate = Color( 1, 1, 1, 1 )
|
||||
9/region = Rect2( 64, 0, 64, 64 )
|
||||
9/tile_mode = 0
|
||||
9/occluder_offset = Vector2( 0, 0 )
|
||||
9/navigation_offset = Vector2( 0, 0 )
|
||||
9/shape_offset = Vector2( 0, 0 )
|
||||
9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
9/shape = SubResource( 8 )
|
||||
9/shape_one_way = false
|
||||
9/shape_one_way_margin = 1.0
|
||||
9/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 8 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 9 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
9/z_index = 0
|
||||
10/name = "grasswallconcrete.png 10"
|
||||
10/texture = ExtResource( 4 )
|
||||
10/tex_offset = Vector2( 0, 0 )
|
||||
10/modulate = Color( 1, 1, 1, 1 )
|
||||
10/region = Rect2( 0, 0, 64, 64 )
|
||||
10/tile_mode = 0
|
||||
10/occluder_offset = Vector2( 0, 0 )
|
||||
10/navigation_offset = Vector2( 0, 0 )
|
||||
10/shape_offset = Vector2( 0, 0 )
|
||||
10/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
10/shape_one_way = false
|
||||
10/shape_one_way_margin = 0.0
|
||||
10/shapes = [ ]
|
||||
10/z_index = 0
|
||||
11/name = "grasswallconcrete.png 11"
|
||||
11/texture = ExtResource( 4 )
|
||||
11/tex_offset = Vector2( 0, 0 )
|
||||
11/modulate = Color( 1, 1, 1, 1 )
|
||||
11/region = Rect2( 64, 0, 64, 64 )
|
||||
11/tile_mode = 0
|
||||
11/occluder_offset = Vector2( 0, 0 )
|
||||
11/navigation_offset = Vector2( 0, 0 )
|
||||
11/shape_offset = Vector2( 0, 0 )
|
||||
11/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
11/shape_one_way = false
|
||||
11/shape_one_way_margin = 0.0
|
||||
11/shapes = [ ]
|
||||
11/z_index = 0
|
Loading…
Reference in New Issue