Compare commits

..

No commits in common. "1c20d54651944b9bb5dfb7ce4cdbdb7a24e62810" and "81451bd35613cd6b960b7b71195abfc2d2894469" have entirely different histories.

5 changed files with 23 additions and 30 deletions

View file

@ -1,15 +1,26 @@
[gd_scene load_steps=5 format=3 uid="uid://cteh8r405wqwk"]
[gd_scene load_steps=8 format=3 uid="uid://cteh8r405wqwk"]
[ext_resource type="Script" uid="uid://bbd7o2st8kmgl" path="res://scripts/structure.gd" id="1_uhivg"]
[ext_resource type="Texture2D" uid="uid://gfkhedfdi7ug" path="res://sprites/atlasses/Popekko.png" id="2_evk1q"]
[ext_resource type="Script" uid="uid://bd4ojfqrl8idm" path="res://scripts/inventory/inventory_slot.gd" id="2_0phsd"]
[ext_resource type="Texture2D" uid="uid://dinyjq8853usn" path="res://sprites/atlasses/Popekko.png" id="2_evk1q"]
[ext_resource type="Script" uid="uid://1scdy7mttx5h" path="res://scripts/inventory/storage.gd" id="3_nh3xp"]
[ext_resource type="Script" uid="uid://v3j1d3qyg30i" path="res://scripts/structures/debug_item_deposit.gd" id="5_nh3xp"]
[sub_resource type="Resource" id="Resource_vi75d"]
resource_local_to_scene = true
script = ExtResource("3_nh3xp")
capacity = 1
internal_array = Array[ExtResource("2_0phsd")]([Object(RefCounted,"script":ExtResource("2_0phsd"),"held_item":null,"amount":0)
])
metadata/_custom_type_script = "uid://1scdy7mttx5h"
[sub_resource type="AtlasTexture" id="AtlasTexture_wxqk4"]
atlas = ExtResource("2_evk1q")
region = Rect2(16, 0, 16, 16)
[node name="DebugItemDeposit" type="Node2D"]
script = ExtResource("1_uhivg")
inventory = SubResource("Resource_vi75d")
metadata/_custom_type_script = "uid://bbd7o2st8kmgl"
[node name="Sprite2D" type="Sprite2D" parent="."]

View file

@ -46,26 +46,19 @@ func add(stack: Stack) -> Stack:
return internal_array[0].merge_stack(stack)
func add_from_side(stack : Stack, ang_diff : float) -> Stack:
if is_equal_approx(abs(ang_diff),PI/2):
if abs(ang_diff) >= PI/4:
if internal_array[capacity/2].amount != 0:
return null
stack_added.emit(stack,capacity/2)
return internal_array[capacity/2].merge_stack(stack)
elif is_equal_approx(abs(ang_diff), PI):
if internal_array[capacity-1].amount != 0:
return null
stack_added.emit(stack,capacity-1)
return internal_array[capacity-1].merge_stack(stack)
return add(stack)
func can_add() -> bool:
return internal_array[0].amount == 0
func can_add_from_side(ang_diff : float) -> bool:
if is_equal_approx(abs(ang_diff),PI/2):
if abs(ang_diff) >= PI/4:
return internal_array[capacity/2].amount == 0
elif is_equal_approx(abs(ang_diff),PI):
return internal_array[capacity-1].amount == 0
return can_add()
## Tries to take first item. Returns null if no items in inventory

View file

@ -2,7 +2,6 @@ extends Node2D
## Currently held structure
var held_construction : Structure
var selected_prototype : Prototype
func _ready() -> void:
GuiEventBus.construction_selected.connect(on_construction_selected)
@ -12,25 +11,23 @@ func _input(event: InputEvent) -> void:
return
if event.is_action_pressed("plc_place"):
var zone = try_get_zone(held_construction.global_position)
if zone != null and held_construction.try_place(zone):
var facing = held_construction.facing
held_construction = selected_prototype.scene.instantiate()
add_child(held_construction)
held_construction.set_facing(facing)
if zone == null:
held_construction.queue_free()
else:
if held_construction.try_place(zone):
held_construction = null
if event.is_action_pressed("plc_rotate_up"):
if held_construction != null:
held_construction.cycle_up_facing()
if event.is_action_pressed("plc_cancel"):
held_construction.queue_free()
selected_prototype = null
func on_construction_selected(constructible : Prototype):
if held_construction:
held_construction.queue_free()
held_construction = constructible.scene.instantiate()
add_child(held_construction)
selected_prototype = constructible
func _process(_delta: float) -> void:

View file

@ -83,16 +83,8 @@ func get_dimension_points() -> Array[Vector2]:
result[x + y * dimensions.size.x] = (Vector2(x,y)*Globals.GRID_SIZE + Vector2(dimensions.position))
return result
func set_facing(to : Facing) -> void:
facing = to
switched_facing.emit(facing)
func cycle_up_facing() -> void:
if facing == Facing.UNDIRECTIONAL:
return
set_facing(wrapi(facing+1,1,5))
func cycle_down_facing() -> void:
if facing == Facing.UNDIRECTIONAL:
return
set_facing(wrapi(facing-1,1,5))
facing = wrapi(facing+1,1,5) as Facing
switched_facing.emit(facing)

View file

@ -5,5 +5,5 @@ const test_item :=preload("res://generic/items/dbg_item.tres")
func _process(_delta: float) -> void:
for point in [Vector2(-1,0),Vector2(1,0),Vector2(0,1),Vector2(0,-1)]:
var found_structure = get_parent().get_relative(point)
if found_structure and found_structure.inventory:
if found_structure:
found_structure.inventory.add(Stack.new(test_item,1))