From 2f68d123d7251fb7d9398fbab750ac6f83257c09 Mon Sep 17 00:00:00 2001 From: Rendo Date: Wed, 15 Oct 2025 00:38:41 +0500 Subject: [PATCH 1/2] Fixed confict between null inventories, non conveyor inventories and conveyor --- scripts/inventory/inventory.gd | 4 ++++ scripts/inventory/queue.gd | 6 ++++++ scripts/inventory/storage.gd | 6 ++++++ scripts/structures/conveyor.gd | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/inventory/inventory.gd b/scripts/inventory/inventory.gd index 17faa33..6512556 100644 --- a/scripts/inventory/inventory.gd +++ b/scripts/inventory/inventory.gd @@ -13,10 +13,14 @@ func _init() -> void: ## Tries to add an item into inventory. Returns not stored stack of item. @abstract func add(stack : Stack) -> Stack +@abstract +func add_from_side(stack : Stack, ang_diff : float) -> Stack ## Returns if conditions of adding are met @abstract func can_add() -> bool +@abstract +func can_add_from_side(ang_diff : float) -> bool ## Tries to take first item. Returns null if no items in inventory @abstract diff --git a/scripts/inventory/queue.gd b/scripts/inventory/queue.gd index 511fc79..45ee8cc 100644 --- a/scripts/inventory/queue.gd +++ b/scripts/inventory/queue.gd @@ -44,12 +44,18 @@ func add(stack: Stack) -> Stack: return null return stack +func add_from_side(stack : Stack, _ang_diff : float) -> Stack: + return add(stack) + func can_add() -> bool: for i in range(capacity): if internal_array[i].amount == 0: return true return false +func can_add_from_side(_ang_diff : float) -> bool: + return can_add() + ## Tries to take first item. Returns null if no items in inventory func pop() -> Stack: if internal_array[0].held_item == null: diff --git a/scripts/inventory/storage.gd b/scripts/inventory/storage.gd index dd58e21..f1d2dfe 100644 --- a/scripts/inventory/storage.gd +++ b/scripts/inventory/storage.gd @@ -48,12 +48,18 @@ func add(stack: Stack) -> Stack: return null return stack +func add_from_side(stack : Stack, _ang_diff : float) -> Stack: + return add(stack) + func can_add() -> bool: for i in range(capacity): if internal_array[i].amount == 0: return true return false +func can_add_from_side(_ang_diff : float) -> bool: + return can_add() + ## Tries to take first item. Returns null if no items in inventory func pop() -> Stack: for i in range(len(internal_array)): diff --git a/scripts/structures/conveyor.gd b/scripts/structures/conveyor.gd index 02cf5ef..d851cbc 100644 --- a/scripts/structures/conveyor.gd +++ b/scripts/structures/conveyor.gd @@ -20,7 +20,7 @@ func _process(delta: float) -> void: inventory.advance(delta) queue_redraw() var next : Structure = get_next() - if next == null or next.inventory.can_add_from_side(Globals.facing_difference(next.facing,parent_structure.facing)) == false: + if next == null or next.inventory == null or next.inventory.can_add_from_side(Globals.facing_difference(next.facing,parent_structure.facing)) == false: return var popped = inventory.pop() if popped == null: From eab885b9d3027ca020eccdbd5e9984ee2a040130 Mon Sep 17 00:00:00 2001 From: Rendo Date: Wed, 15 Oct 2025 00:41:06 +0500 Subject: [PATCH 2/2] Conveyor renamed to belt internally --- project.godot | 2 +- scenes/conveyor.tscn | 4 ++-- scripts/autoloads/{conveyor_manager.gd => belt_manager.gd} | 0 .../{conveyor_manager.gd.uid => belt_manager.gd.uid} | 0 .../inventory/{conveyor_inventory.gd => belt_inventory.gd} | 2 +- .../{conveyor_inventory.gd.uid => belt_inventory.gd.uid} | 0 scripts/structures/{conveyor.gd => belt.gd} | 4 ++-- scripts/structures/{conveyor.gd.uid => belt.gd.uid} | 0 8 files changed, 6 insertions(+), 6 deletions(-) rename scripts/autoloads/{conveyor_manager.gd => belt_manager.gd} (100%) rename scripts/autoloads/{conveyor_manager.gd.uid => belt_manager.gd.uid} (100%) rename scripts/inventory/{conveyor_inventory.gd => belt_inventory.gd} (99%) rename scripts/inventory/{conveyor_inventory.gd.uid => belt_inventory.gd.uid} (100%) rename scripts/structures/{conveyor.gd => belt.gd} (95%) rename scripts/structures/{conveyor.gd.uid => belt.gd.uid} (100%) diff --git a/project.godot b/project.godot index 5d46001..0a66f97 100644 --- a/project.godot +++ b/project.godot @@ -20,7 +20,7 @@ config/icon="res://icon.svg" GuiEventBus="*res://scripts/gui/gui_event_bus.gd" RuntimePlayerData="*res://scripts/autoloads/runtime_player_data.gd" Registry="*res://scripts/autoloads/registry.gd" -ConveyorManager="*res://scripts/autoloads/conveyor_manager.gd" +BeltManager="*res://scripts/autoloads/belt_manager.gd" [display] diff --git a/scenes/conveyor.tscn b/scenes/conveyor.tscn index 41d461a..3887af2 100644 --- a/scenes/conveyor.tscn +++ b/scenes/conveyor.tscn @@ -3,8 +3,8 @@ [ext_resource type="Texture2D" uid="uid://gfkhedfdi7ug" path="res://sprites/atlasses/Popekko.png" id="1_kqxj7"] [ext_resource type="Script" uid="uid://bbd7o2st8kmgl" path="res://scripts/structure.gd" id="1_y326v"] [ext_resource type="Script" uid="uid://bd4ojfqrl8idm" path="res://scripts/inventory/inventory_slot.gd" id="2_54w8r"] -[ext_resource type="Script" uid="uid://v0hkuo3gda1b" path="res://scripts/inventory/conveyor_inventory.gd" id="3_ruvuk"] -[ext_resource type="Script" uid="uid://bp341eiwvfvyl" path="res://scripts/structures/conveyor.gd" id="5_54w8r"] +[ext_resource type="Script" uid="uid://v0hkuo3gda1b" path="res://scripts/inventory/belt_inventory.gd" id="3_ruvuk"] +[ext_resource type="Script" uid="uid://bp341eiwvfvyl" path="res://scripts/structures/belt.gd" id="5_54w8r"] [sub_resource type="Resource" id="Resource_t4je2"] resource_local_to_scene = true diff --git a/scripts/autoloads/conveyor_manager.gd b/scripts/autoloads/belt_manager.gd similarity index 100% rename from scripts/autoloads/conveyor_manager.gd rename to scripts/autoloads/belt_manager.gd diff --git a/scripts/autoloads/conveyor_manager.gd.uid b/scripts/autoloads/belt_manager.gd.uid similarity index 100% rename from scripts/autoloads/conveyor_manager.gd.uid rename to scripts/autoloads/belt_manager.gd.uid diff --git a/scripts/inventory/conveyor_inventory.gd b/scripts/inventory/belt_inventory.gd similarity index 99% rename from scripts/inventory/conveyor_inventory.gd rename to scripts/inventory/belt_inventory.gd index 0b2a71b..e60cec7 100644 --- a/scripts/inventory/conveyor_inventory.gd +++ b/scripts/inventory/belt_inventory.gd @@ -1,7 +1,7 @@ @tool extends Inventory -class_name ConveyorInventory +class_name BeltInventory ## Amount of stacks that can be held in storage @export var capacity : int: diff --git a/scripts/inventory/conveyor_inventory.gd.uid b/scripts/inventory/belt_inventory.gd.uid similarity index 100% rename from scripts/inventory/conveyor_inventory.gd.uid rename to scripts/inventory/belt_inventory.gd.uid diff --git a/scripts/structures/conveyor.gd b/scripts/structures/belt.gd similarity index 95% rename from scripts/structures/conveyor.gd rename to scripts/structures/belt.gd index d851cbc..be88879 100644 --- a/scripts/structures/conveyor.gd +++ b/scripts/structures/belt.gd @@ -1,14 +1,14 @@ extends Node2D @onready var parent_structure : Structure = get_parent() -@onready var inventory : ConveyorInventory = parent_structure.inventory +@onready var inventory : BeltInventory = parent_structure.inventory @onready var animator : AnimationPlayer = $"../AnimationPlayer" func _ready() -> void: sync_animations.call_deferred() func sync_animations() -> void: - animator.seek(ConveyorManager.sync_time,true) + animator.seek(BeltManager.sync_time,true) func _draw() -> void: for i in range(inventory.capacity): diff --git a/scripts/structures/conveyor.gd.uid b/scripts/structures/belt.gd.uid similarity index 100% rename from scripts/structures/conveyor.gd.uid rename to scripts/structures/belt.gd.uid