2021-04-05 20:59:49 +00:00
|
|
|
extends KinematicBody2D
|
|
|
|
|
|
|
|
const GRAVITY = 0.0
|
|
|
|
const WALK_SPEED = 200
|
|
|
|
const interaction_circle_size = 150
|
2021-04-25 10:36:01 +00:00
|
|
|
onready var background_map = get_node("/root/base_scene/background")
|
|
|
|
onready var player = get_node("/root/base_scene/Player")
|
2021-04-05 20:59:49 +00:00
|
|
|
onready var cell_size = background_map._get_cell_size()
|
2021-04-25 10:36:01 +00:00
|
|
|
onready var plants_map = get_node("/root/base_scene/interaction_map")
|
|
|
|
onready var interaction = get_node("/root/base_scene/player_interaction")
|
2021-05-28 21:41:35 +00:00
|
|
|
onready var sound = get_node("../AudioStreamPlayer")
|
2021-04-05 20:59:49 +00:00
|
|
|
|
|
|
|
var velocity = Vector2()
|
|
|
|
var world_position
|
2021-04-08 19:18:46 +00:00
|
|
|
var ItemClass = preload("res://MiscScenes/Item.tscn")
|
2021-04-23 20:16:43 +00:00
|
|
|
var previous_position = Vector2(0,0)
|
2021-04-05 20:59:49 +00:00
|
|
|
|
|
|
|
#Moving buttons
|
|
|
|
func _physics_process(delta):
|
2021-04-23 20:16:43 +00:00
|
|
|
var cur = Vector2(int(self.position.x / cell_size.x), int(self.position.y / cell_size.y))
|
|
|
|
if(cur != previous_position):
|
|
|
|
interaction.set_cell(int(self.position.x / cell_size.x), int(self.position.y / cell_size.y) , 0)
|
|
|
|
interaction.set_cell(previous_position.x, previous_position.y, -1)
|
|
|
|
previous_position = Vector2(int(self.position.x / cell_size.x), int(self.position.y / cell_size.y))
|
2021-04-05 20:59:49 +00:00
|
|
|
if Input.is_key_pressed(KEY_SPACE) or Input.is_mouse_button_pressed(BUTTON_LEFT):
|
|
|
|
_interaction_process()
|
2021-08-26 14:52:21 +00:00
|
|
|
SoundOnInteraction("standard")
|
2021-04-05 20:59:49 +00:00
|
|
|
velocity.y += delta * GRAVITY
|
|
|
|
if Input.is_action_pressed("move_left"):
|
|
|
|
velocity.x = -WALK_SPEED
|
|
|
|
elif Input.is_action_pressed("move_right"):
|
|
|
|
velocity.x = WALK_SPEED
|
|
|
|
elif Input.is_action_pressed("move_up"):
|
|
|
|
velocity.y = -WALK_SPEED
|
|
|
|
elif Input.is_action_pressed("move_down"):
|
|
|
|
velocity.y = WALK_SPEED
|
|
|
|
else:
|
|
|
|
velocity.x = 0
|
|
|
|
velocity.y = 0
|
|
|
|
move_and_slide(velocity, Vector2(0, -1))
|
2021-04-23 20:16:43 +00:00
|
|
|
|
2021-04-05 20:59:49 +00:00
|
|
|
Global.current_camera.Update()
|
|
|
|
|
|
|
|
func InteractWithCell():
|
|
|
|
var plant_cell_mouse = plants_map.get_cell(int(world_position[0] / cell_size.x), int(world_position[1] / cell_size.y))
|
|
|
|
var plant_cell_character = plants_map.get_cell(int(self.position.x / cell_size.x), int(self.position.y / cell_size.y))
|
|
|
|
|
|
|
|
var background_cell = background_map.get_cell(int(world_position[0] / cell_size.x), int(world_position[1] / cell_size.y))
|
|
|
|
var interaction_cell = interaction.get_cell(int(world_position[0] / cell_size.x), int(world_position[1] / cell_size.y))
|
2021-04-23 20:16:43 +00:00
|
|
|
|
2021-04-05 20:59:49 +00:00
|
|
|
if plant_cell_mouse > 0 and plant_cell_mouse % 2 == 0:
|
2021-04-08 19:18:46 +00:00
|
|
|
Global.AddInventoryItem(plant_cell_mouse/2, 1)
|
2021-04-05 20:59:49 +00:00
|
|
|
plants_map.set_cell(int(world_position[0] / cell_size.x), int(world_position[1] / cell_size.y), (plant_cell_mouse-1))
|
|
|
|
AnimationOnInteraction(1)
|
2021-08-26 14:52:21 +00:00
|
|
|
SoundOnInteraction("standard")
|
2021-04-08 20:58:04 +00:00
|
|
|
Global.Save()
|
2021-04-05 20:59:49 +00:00
|
|
|
elif plant_cell_character > 0 and plant_cell_character % 2 == 0:
|
2021-04-08 19:18:46 +00:00
|
|
|
Global.AddInventoryItem(plant_cell_character/2, 1)
|
2021-04-05 20:59:49 +00:00
|
|
|
plants_map.set_cell(int(self.position.x / cell_size.x), int(self.position.y / cell_size.y), (plant_cell_character-1))
|
|
|
|
AnimationOnInteraction(1)
|
2021-08-26 14:52:21 +00:00
|
|
|
SoundOnInteraction("standard")
|
2021-05-28 21:01:56 +00:00
|
|
|
else:
|
|
|
|
#space is now a test function
|
|
|
|
GlobalGameFunctions.RenderSpeech(self, "joe")
|
|
|
|
pass
|
2021-04-05 20:59:49 +00:00
|
|
|
|
|
|
|
func _interaction_process():
|
2021-04-23 20:16:43 +00:00
|
|
|
if Input.is_mouse_button_pressed(BUTTON_LEFT):
|
|
|
|
world_position = get_global_mouse_position()
|
|
|
|
InteractWithCell()
|
|
|
|
elif Input.is_key_pressed(KEY_SPACE):
|
2021-04-05 20:59:49 +00:00
|
|
|
world_position = get_global_mouse_position()
|
|
|
|
InteractWithCell()
|
|
|
|
|
|
|
|
func AnimationOnInteraction(Item):
|
|
|
|
print("Item = ", Item, " Animation")
|
|
|
|
var itemimage = TextureRect.new()
|
2021-04-08 19:18:46 +00:00
|
|
|
var item = null
|
2021-06-04 20:57:48 +00:00
|
|
|
|
2021-08-26 14:52:21 +00:00
|
|
|
func SoundOnInteraction(x):
|
2021-09-04 15:29:04 +00:00
|
|
|
var format_string = "res://Sounds/%s.wav"
|
|
|
|
var actual_string = format_string % x
|
|
|
|
var Sound = load(actual_string)
|
2021-08-26 14:52:21 +00:00
|
|
|
$AudioStreamPlayer.stream = Sound
|
2021-06-04 20:57:48 +00:00
|
|
|
$AudioStreamPlayer.play()
|
2021-04-08 20:58:04 +00:00
|
|
|
|
2021-04-05 20:59:49 +00:00
|
|
|
func _ready():
|
2021-04-08 20:58:04 +00:00
|
|
|
Global.player_inventory_items = Database.GetInventoryItems().duplicate()
|