[{"data":1,"prerenderedAt":344},["ShallowReactive",2],{"navigation":3,"class-ref-GGCrafting":75},[4,13,40,60],{"title":5,"_path":6,"children":7},"Getting Started","/getting-started",[8,10],{"title":9,"_path":6},"Introduction",{"title":11,"_path":12},"Installation","/getting-started/installation",{"title":14,"_path":15,"children":16},"Concepts","/concepts",[17,19,22,25,28,31,34,37],{"title":18,"_path":15},"Overview",{"title":20,"_path":21},"Inventory","/concepts/inventory",{"title":23,"_path":24},"Interactions","/concepts/interaction",{"title":26,"_path":27},"Permissions","/concepts/permissions",{"title":29,"_path":30},"Multiplayer","/concepts/multiplayer",{"title":32,"_path":33},"User Interface","/concepts/user-interface",{"title":35,"_path":36},"Game Integration","/concepts/game-integration",{"title":38,"_path":39},"Crafting","/concepts/crafting",{"title":41,"_path":42,"children":43},"Demos","/demos",[44,46,49,52,54,57],{"title":45,"_path":42},"Inventory Tour",{"title":47,"_path":48},"Inventory UI Playground","/demos/inventory_ui",{"title":50,"_path":51},"Inventory Game UI","/demos/inventory_game_ui",{"title":38,"_path":53},"/demos/crafting",{"title":55,"_path":56},"Multiplayer Lobby","/demos/mp_lobby",{"title":58,"_path":59},"Sequencer (prototype)","/demos/sequencer",{"title":61,"_path":62,"children":63},"Guide","/guide",[64,66,69,72],{"title":65,"_path":62},"Architecture Deep Dive",{"title":67,"_path":68},"Design Principles","/guide/design-principles",{"title":70,"_path":71},"Changelog v2.x","/guide/changelog-v2",{"title":73,"_path":74},"Changelog v1.x","/guide/changelog",{"_path":76,"_dir":77,"_draft":78,"_partial":78,"_locale":79,"_id":80,"navigation":78,"addon":77,"version":81,"brief_description":82,"description":83,"tutorials":79,"methods":84,"members":240,"signals":300,"constants":325,"inherits":106,"name":339,"title":339,"_source":340,"_file":341,"_stem":342,"_extension":343},"/reference/2.0/gg_crafting/ggcrafting","gg_crafting",false,"","content:40.reference:2.0:gg_crafting:GGCrafting.xml","2.0","This Crafting component crafts items using inventories.","What items can be crafted is specified by the [member recipes]. If [member auto_craft] is [code]true[/code], the crafting component will automatically monitor the [member input_inventory] and start crafting when it contains sufficient ingredients for any of its craftable recipes. Items are consumed from the [member input_inventory], crafted, and deposited into the [member output_inventory]. Use the [method craft] method to craft items manually. The [member current_state] will indicate the crafting [enum State]. If there's insufficient room in the [member output_inventory], crafting will remain in the [code]DEPOSITING[/code] state until there is room.",[85,89,95,107,115,121,128,135,141,147,152,156,160,164,169,173,177,180,183,187,191,194,197,200,205,209,214,217,221,232],{"description":79,"name":86,"public":78,"returnType":87,"params":88},"_ready","void",[],{"description":79,"name":90,"public":78,"returnType":87,"params":91},"_process",[92],{"name":93,"type":94},"delta","float",{"description":96,"name":97,"public":98,"returnType":99,"params":100},"Returns whether the [param actor] can craft the [param recipe].","can_craft",true,"bool",[101,104],{"name":102,"type":103},"recipe","GGCraftingRecipe",{"name":105,"type":106},"actor","Node",{"description":108,"name":109,"public":98,"returnType":99,"params":110},"Returns whether the [param actor] can make the [param amount] of progress while crafting the [param recipe].","can_progress",[111,112,114],{"name":102,"type":103},{"name":113,"type":94},"amount",{"name":105,"type":106},{"description":116,"name":117,"public":98,"returnType":99,"params":118},"Craft the items specified by the [param recipe]. The [param actor] is the character performing the crafting. If crafting is automatic (via [member auto_craft]), then the [param actor] is the [GGCrafting] component itself. Returns [code]true[/code] if the [member input_inventory] has the ingredients, which kicks off the crafting process. If there are insufficient ingredients, crafting will not start, and the method will return [code]false[/code].","start_crafting",[119,120],{"name":102,"type":103},{"name":105,"type":106},{"description":79,"name":122,"public":98,"returnType":87,"params":123},"request_start_crafting",[124,125],{"name":102,"type":103},{"name":126,"type":127},"context_id","int",{"description":79,"name":129,"public":78,"returnType":87,"params":130},"_request_start_crafting",[131,134],{"name":132,"type":133},"recipe_resource_path","String",{"name":126,"type":127},{"description":79,"name":136,"public":98,"returnType":87,"params":137},"progress_crafting",[138,140],{"name":139,"type":94},"progress",{"name":105,"type":106},{"description":142,"name":143,"public":98,"returnType":87,"params":144},"Adds [param progress] to the current crafting.","request_progress_crafting",[145,146],{"name":113,"type":94},{"name":126,"type":127},{"description":79,"name":148,"public":78,"returnType":87,"params":149},"_request_progress_crafting",[150,151],{"name":113,"type":94},{"name":126,"type":127},{"description":79,"name":153,"public":78,"returnType":103,"params":154},"_find_recipe_in_collection",[155],{"name":132,"type":133},{"description":79,"name":157,"public":78,"returnType":106,"params":158},"_find_actor_for_context",[159],{"name":126,"type":127},{"description":79,"name":161,"public":98,"returnType":162,"params":163},"get_subscribers","int[]",[],{"description":79,"name":165,"public":78,"returnType":87,"params":166},"_set_enabled",[167],{"name":168,"type":99},"value",{"description":79,"name":170,"public":78,"returnType":87,"params":171},"_set_current_recipe",[172],{"name":168,"type":103},{"description":79,"name":174,"public":78,"returnType":87,"params":175},"_cl_set_current_recipe",[176],{"name":132,"type":133},{"description":79,"name":178,"public":78,"returnType":87,"params":179},"_notify_crafting_started",[],{"description":79,"name":181,"public":78,"returnType":87,"params":182},"_cl_notify_crafting_started",[],{"description":79,"name":184,"public":78,"returnType":87,"params":185},"_notify_crafting_progress",[186],{"name":139,"type":94},{"description":79,"name":188,"public":78,"returnType":87,"params":189},"_cl_notify_crafting_progress",[190],{"name":139,"type":94},{"description":79,"name":192,"public":78,"returnType":87,"params":193},"_notify_crafting_finished",[],{"description":79,"name":195,"public":78,"returnType":87,"params":196},"_cl_notify_crafting_finished",[],{"description":79,"name":198,"public":78,"returnType":87,"params":199},"_auto_craft_next",[],{"description":79,"name":201,"public":78,"returnType":87,"params":202},"_notify_change_state",[203],{"name":204,"type":127},"new_state",{"description":79,"name":206,"public":78,"returnType":87,"params":207},"_cl_notify_change_state",[208],{"name":204,"type":127},{"description":79,"name":210,"public":78,"returnType":87,"params":211},"_on_input_inventory_items_changed",[212],{"name":213,"type":162},"slot_ids",{"description":79,"name":215,"public":98,"returnType":103,"params":216},"find_first_craftable_recipe",[],{"description":79,"name":218,"public":98,"returnType":219,"params":220},"find_craftable_recipes","GGCraftingRecipe[]",[],{"description":79,"name":222,"public":78,"returnType":87,"params":223},"_on_context_opened",[224,226,228,230],{"name":225,"type":127},"_context_id",{"name":227,"type":106},"_actor",{"name":229,"type":127},"_nonce",{"name":231,"type":127},"remote_sender_id",{"description":79,"name":233,"public":78,"returnType":87,"params":234},"_on_context_closed",[235,236,237,238],{"name":225,"type":127},{"name":227,"type":106},{"name":229,"type":127},{"name":239,"type":127},"_remote_sender_id",[241,244,249,252,256,259,263,267,270,275,278,280,284,286,290,294,298],{"name":242,"type":99,"setter":165,"getter":79,"default":243,"public":98},"enabled","true",{"name":245,"description":246,"type":247,"setter":248,"getter":79,"public":98},"input_inventory","The inventory that ingredients are taken from.","GGInventory","@input_inventory_setter",{"name":250,"description":251,"type":247,"setter":79,"getter":79,"public":98},"output_inventory","The inventory that crafting results are output to.",{"name":253,"description":254,"type":255,"setter":79,"getter":79,"public":98},"recipes","A list of recipes that can be crafted.","GGRecipeCollection",{"name":257,"type":258,"setter":79,"getter":79,"public":98},"crafting_strategy","GGCraftingStrategy",{"name":260,"description":261,"type":94,"setter":79,"getter":79,"default":262,"public":98},"speed_multiplier","A larger number speeds up crafting.","1.0",{"name":264,"description":265,"type":99,"setter":266,"getter":79,"default":243,"public":98},"auto_craft","Automatically starts crafting if sufficient ingredients are found.","@auto_craft_setter",{"name":268,"description":269,"type":94,"setter":79,"getter":79,"default":262,"public":98},"auto_craft_delay","How long to wait before crafting starts. This can help improve the user experience by ensuring the player sees the items they're adding to the inventory before they're consumed by crafting.",{"name":271,"description":272,"type":273,"setter":274,"getter":79,"public":98},"entity_access_manager","Helps resolve [code]context_id[/code]s.","GGEntityAccessManager","@entity_access_manager_setter",{"name":276,"type":277,"setter":79,"getter":79,"public":98},"crafting_policy","GGCraftingPolicy",{"name":279,"type":94,"setter":79,"getter":79,"default":262,"public":98},"multiplayer_update_rate",{"@enum":281,"name":282,"description":283,"type":127,"setter":79,"getter":79,"public":98},"GGCrafting.State","current_state","What the crafting mechanism is currently doing",{"name":285,"type":106,"setter":79,"getter":79,"public":98},"current_crafter",{"name":287,"description":288,"type":289,"setter":79,"getter":79,"public":98},"current_output","Once crafting is finished, the results are temporarily stored here before being moved to the [member output_inventory]. If the [member output_inventory] has no room, the results are held until room becomes available.","GGItemData[]",{"name":291,"description":292,"type":94,"setter":79,"getter":79,"default":293,"public":98},"work_progress","The current crafting progress. This is a value between 0 and [member current_recipe][code].work[/code].","0.0",{"name":295,"description":296,"type":103,"setter":170,"getter":79,"default":297,"public":98},"current_recipe","The currently active recipe that is being crafted. [br][br][b]Note[/b]: The recipe provided must be in the [member recipes] collection. This is required for clients to correctly set the recipe on their side.","null",{"name":299,"type":94,"setter":79,"getter":79,"default":293,"public":78},"_last_client_update",[301,305,311,315,322],{"description":302,"name":303,"params":304},"Emitted when crafting has started for the [param recipe].","crafting_started",[],{"description":306,"name":307,"params":308},"Continuously emitted as the [param recipe] is crafted. The [param progress_percent] indicates how far crafting has progressed in percent (from 0.0 - 1.0).","crafting_progress",[309],{"name":310,"type":94},"progress_percent",{"description":312,"name":313,"params":314},"Emitted when crafting the [param recipe] has finished. The crafted items can be retrieved via the [member output] property. The signal is emitted before the items are added to the [member output_inventory]. This signal can be used to modify items after crafting.","crafting_finished",[],{"description":316,"name":317,"params":318},"Emitted when crafting changes state. The [param new_state] and [param old_state] will each be a [enum State].","crafting_state_changed",[319,320],{"name":204,"type":127},{"name":321,"type":127},"old_state",{"description":79,"name":323,"params":324},"crafting_recipes_changed",[],[326,331,335],{"#text":327,"@name":328,"@value":329,"@enum":330},"When there's nothing to do, crafting is idle.","IDLE","0","State",{"#text":332,"@name":333,"@value":334,"@enum":330},"Crafting is in progress.","CRAFTING","1",{"#text":336,"@name":337,"@value":338,"@enum":330},"Crafted items are being deposited.","DEPOSITING","2","GGCrafting","content","40.reference/2.0/gg_crafting/GGCrafting.xml","40.reference/2.0/gg_crafting/GGCrafting","xml",1743268965317]