fixed recipe checking, hoping it doesnt cost too much performace

This commit is contained in:
Tabby 2026-01-13 13:05:20 +11:00
parent dc03f4d353
commit 09625d8285
2 changed files with 29 additions and 19 deletions

View file

@ -54,20 +54,37 @@ func check_recipes():
elif filled_slots() > 1: elif filled_slots() > 1:
# check crafting recipes # check crafting recipes
var possible_recipes : Array[CraftRecipe] = RecipeManager.craft_recipes.duplicate() #var possible_recipes : Array[CraftRecipe] = RecipeManager.craft_recipes.duplicate()
for x in range(9): #for x in range(9):
for recipe in possible_recipes: #for recipe in possible_recipes:
#if recipe.ingredients[x] and slots[x].item:
#if recipe.ingredients[x].item_name != slots[x].item.item_name:
#possible_recipes.erase(recipe)
#elif recipe.ingredients[x] or slots[x].item:
#possible_recipes.erase(recipe)
##print("Possible recipes: " + str(possible_recipes.size()))
#if possible_recipes.size() == 1:
##print("found our recipe!")
#matched_recipe = possible_recipes[0]
#style_assemble()
#return
for recipe in RecipeManager.craft_recipes:
var matches : int = 0
for x in range(9):
if recipe.ingredients[x] and slots[x].item: if recipe.ingredients[x] and slots[x].item:
if recipe.ingredients[x].item_name != slots[x].item.item_name: if recipe.ingredients[x].item_name != slots[x].item.item_name:
possible_recipes.erase(recipe) matches = 0
else:
matches += 1
elif recipe.ingredients[x] or slots[x].item: elif recipe.ingredients[x] or slots[x].item:
possible_recipes.erase(recipe) matches = 0
#print("Possible recipes: " + str(possible_recipes.size())) else:
if possible_recipes.size() == 1: matches += 1
#print("found our recipe!")
matched_recipe = possible_recipes[0] if matches == 9:
style_assemble() matched_recipe = recipe
return style_assemble()
return
func style_assemble(): func style_assemble():
action_button.add_theme_stylebox_override("normal",assemble_style) action_button.add_theme_stylebox_override("normal",assemble_style)

View file

@ -1,12 +1,7 @@
[gd_scene load_steps=12 format=3 uid="uid://f06ym5ujhdsc"] [gd_scene load_steps=7 format=3 uid="uid://f06ym5ujhdsc"]
[ext_resource type="Script" uid="uid://br4fgimf7nygr" path="res://inv_system/crafting_panel.gd" id="1_441s3"] [ext_resource type="Script" uid="uid://br4fgimf7nygr" path="res://inv_system/crafting_panel.gd" id="1_441s3"]
[ext_resource type="PackedScene" uid="uid://dgqs20xf7l8c" path="res://inv_system/item_slot.tscn" id="2_h0v0h"] [ext_resource type="PackedScene" uid="uid://dgqs20xf7l8c" path="res://inv_system/item_slot.tscn" id="2_h0v0h"]
[ext_resource type="Script" uid="uid://b4iu5xrdf0evs" path="res://crafting/craft_recipe.gd" id="2_ytbts"]
[ext_resource type="Resource" uid="uid://dp4hnei3ur6oe" path="res://crafting/crafts/computer_craft.tres" id="3_4h4i0"]
[ext_resource type="Script" uid="uid://boqr1fowaqmt0" path="res://crafting/scavenge_recipe.gd" id="4_qjage"]
[ext_resource type="Resource" uid="uid://deohei5avmspt" path="res://crafting/scavenges/large_psu_scav.tres" id="5_8c40c"]
[ext_resource type="Resource" uid="uid://dpnp3xlwhla4h" path="res://crafting/scavenges/small_psu_scav.tres" id="6_8c40c"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h0v0h"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h0v0h"]
content_margin_left = 0.0 content_margin_left = 0.0
@ -87,8 +82,6 @@ offset_right = 962.0
offset_bottom = 382.0 offset_bottom = 382.0
script = ExtResource("1_441s3") script = ExtResource("1_441s3")
action_button = NodePath("MarginContainer/VBoxContainer/ActionButton") action_button = NodePath("MarginContainer/VBoxContainer/ActionButton")
craft_recipes = Array[ExtResource("2_ytbts")]([ExtResource("3_4h4i0")])
scavenge_recipes = Array[ExtResource("4_qjage")]([ExtResource("5_8c40c"), ExtResource("6_8c40c")])
assemble_style = SubResource("StyleBoxFlat_h0v0h") assemble_style = SubResource("StyleBoxFlat_h0v0h")
assemble_style_hover = SubResource("StyleBoxFlat_441s3") assemble_style_hover = SubResource("StyleBoxFlat_441s3")
assemble_style_pressed = SubResource("StyleBoxFlat_h0v0h") assemble_style_pressed = SubResource("StyleBoxFlat_h0v0h")