# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: soulfire/recipe.proto
# Protobuf Python Version: 6.31.1
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
    _runtime_version.Domain.PUBLIC,
    6,
    31,
    1,
    '',
    'soulfire/recipe.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
from soulfire import api_docs_pb2 as soulfire_dot_api__docs__pb2
from soulfire import bot_live_pb2 as soulfire_dot_bot__live__pb2
from soulfire import common_pb2 as soulfire_dot_common__pb2
from soulfire import domain_pb2 as soulfire_dot_domain__pb2
from soulfire import inventory_pb2 as soulfire_dot_inventory__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15soulfire/recipe.proto\x12\x0bsoulfire.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x17soulfire/api_docs.proto\x1a\x17soulfire/bot_live.proto\x1a\x15soulfire/common.proto\x1a\x15soulfire/domain.proto\x1a\x18soulfire/inventory.proto\"W\n\x10IngredientChoice\x12\x19\n\x08item_ids\x18\x01 \x03(\tR\x07itemIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags\x12\x14\n\x05\x63ount\x18\x03 \x01(\x05R\x05\x63ount\"\x84\x03\n\x0eRecipeSnapshot\x12\x1b\n\trecipe_id\x18\x01 \x01(\tR\x08recipeId\x12\x1f\n\x0brecipe_type\x18\x02 \x01(\tR\nrecipeType\x12\x19\n\x05group\x18\x03 \x01(\tH\x00R\x05group\x88\x01\x01\x12?\n\x0bingredients\x18\x04 \x03(\x0b\x32\x1d.soulfire.v1.IngredientChoiceR\x0bingredients\x12\x36\n\x06result\x18\x05 \x01(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x06result\x12#\n\nexperience\x18\x06 \x01(\x02H\x01R\nexperience\x88\x01\x01\x12\x31\n\x12\x63ooking_time_ticks\x18\x07 \x01(\x05H\x02R\x10\x63ookingTimeTicks\x88\x01\x01\x12\x18\n\x07special\x18\x08 \x01(\x08R\x07specialB\x08\n\x06_groupB\r\n\x0b_experienceB\x15\n\x13_cooking_time_ticks\"\xb8\x02\n\x12ListRecipesRequest\x12)\n\x0eresult_item_id\x18\x01 \x01(\tH\x00R\x0cresultItemId\x88\x01\x01\x12>\n\ningredient\x18\x02 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorH\x01R\ningredient\x88\x01\x01\x12!\n\x0crecipe_types\x18\x03 \x03(\tR\x0brecipeTypes\x12\x1b\n\tpage_size\x18\x04 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x05 \x01(\tR\tpageToken\x12\x36\n\x05scope\x18\x06 \x01(\x0b\x32\x1b.soulfire.v1.InventoryScopeB\x03\xe0\x41\x02R\x05scopeB\x11\n\x0f_result_item_idB\r\n\x0b_ingredient\"\x99\x01\n\x13ListRecipesResponse\x12\x35\n\x07recipes\x18\x01 \x03(\x0b\x32\x1b.soulfire.v1.RecipeSnapshotR\x07recipes\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12#\n\rregistry_hash\x18\x03 \x01(\tR\x0cregistryHash\"w\n\x0f\x43\x61nCraftRequest\x12\x31\n\x05scope\x18\x01 \x01(\x0b\x32\x1b.soulfire.v1.InventoryScopeR\x05scope\x12\x1b\n\trecipe_id\x18\x02 \x01(\tR\x08recipeId\x12\x14\n\x05\x63ount\x18\x03 \x01(\x05R\x05\x63ount\"\x8a\x01\n\x11MissingIngredient\x12=\n\ningredient\x18\x01 \x01(\x0b\x32\x1d.soulfire.v1.IngredientChoiceR\ningredient\x12\x1c\n\tavailable\x18\x02 \x01(\x05R\tavailable\x12\x18\n\x07missing\x18\x03 \x01(\x05R\x07missing\"\xde\x01\n\x10\x43\x61nCraftResponse\x12\x1b\n\tcan_craft\x18\x01 \x01(\x08R\x08\x63\x61nCraft\x12.\n\x13maximum_craft_count\x18\x02 \x01(\x05R\x11maximumCraftCount\x12\x38\n\x07missing\x18\x03 \x03(\x0b\x32\x1e.soulfire.v1.MissingIngredientR\x07missing\x12.\n\x10required_station\x18\x04 \x01(\tH\x00R\x0frequiredStation\x88\x01\x01\x42\x13\n\x11_required_station\"\x85\x01\n\tCraftTask\x12\x1b\n\trecipe_id\x18\x01 \x01(\tR\x08recipeId\x12\x14\n\x05\x63ount\x18\x02 \x01(\x05R\x05\x63ount\x12\x39\n\x07station\x18\x03 \x01(\x0b\x32\x1a.soulfire.v1.BlockPositionH\x00R\x07station\x88\x01\x01\x42\n\n\x08_station\"c\n\x0f\x43raftTaskResult\x12\x36\n\x06result\x18\x01 \x01(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x06result\x12\x18\n\x07\x63rafted\x18\x02 \x01(\x05R\x07\x63rafted\"\xd6\x01\n\tSmeltTask\x12/\n\x05input\x18\x01 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorR\x05input\x12\x14\n\x05\x63ount\x18\x02 \x01(\x05R\x05\x63ount\x12\x32\n\x04\x66uel\x18\x03 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorH\x00R\x04\x66uel\x88\x01\x01\x12\x39\n\x07station\x18\x04 \x01(\x0b\x32\x1a.soulfire.v1.BlockPositionH\x01R\x07station\x88\x01\x01\x42\x07\n\x05_fuelB\n\n\x08_station\"K\n\x0fSmeltTaskResult\x12\x38\n\x07outputs\x18\x01 \x03(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x07outputs\"\xed\x02\n\x08\x42rewTask\x12/\n\x05input\x18\x01 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorR\x05input\x12\x39\n\ningredient\x18\x02 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorR\ningredient\x12\x14\n\x05\x63ount\x18\x03 \x01(\x05R\x05\x63ount\x12\x32\n\x04\x66uel\x18\x04 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorH\x00R\x04\x66uel\x88\x01\x01\x12\x39\n\x07station\x18\x05 \x01(\x0b\x32\x1a.soulfire.v1.BlockPositionH\x01R\x07station\x88\x01\x01\x12G\n\x0f\x65xpected_result\x18\x06 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorH\x02R\x0e\x65xpectedResult\x88\x01\x01\x42\x07\n\x05_fuelB\n\n\x08_stationB\x12\n\x10_expected_result\"J\n\x0e\x42rewTaskResult\x12\x38\n\x07outputs\x18\x01 \x03(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x07outputs\"\xab\x04\n\x1aVillagerTradeOfferSnapshot\x12\x1f\n\x0boffer_index\x18\x01 \x01(\rR\nofferIndex\x12=\n\nfirst_cost\x18\x02 \x01(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\tfirstCost\x12\x44\n\x0bsecond_cost\x18\x03 \x01(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotH\x00R\nsecondCost\x88\x01\x01\x12\x36\n\x06result\x18\x04 \x01(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x06result\x12\x12\n\x04uses\x18\x05 \x01(\x05R\x04uses\x12!\n\x0cmaximum_uses\x18\x06 \x01(\x05R\x0bmaximumUses\x12 \n\x0cout_of_stock\x18\x07 \x01(\x08R\noutOfStock\x12-\n\x12rewards_experience\x18\x08 \x01(\x08R\x11rewardsExperience\x12/\n\x13villager_experience\x18\t \x01(\x05R\x12villagerExperience\x12\x16\n\x06\x64\x65mand\x18\n \x01(\x05R\x06\x64\x65mand\x12#\n\rspecial_price\x18\x0b \x01(\x05R\x0cspecialPrice\x12)\n\x10price_multiplier\x18\x0c \x01(\x02R\x0fpriceMultiplierB\x0e\n\x0c_second_cost\"S\n\x19ListVillagerTradesRequest\x12\x36\n\x05scope\x18\x01 \x01(\x0b\x32\x1b.soulfire.v1.InventoryScopeB\x03\xe0\x41\x02R\x05scope\"\xa8\x02\n\x1aListVillagerTradesResponse\x12?\n\x06offers\x18\x01 \x03(\x0b\x32\'.soulfire.v1.VillagerTradeOfferSnapshotR\x06offers\x12%\n\x0evillager_level\x18\x02 \x01(\x05R\rvillagerLevel\x12/\n\x13villager_experience\x18\x03 \x01(\x05R\x12villagerExperience\x12\x1f\n\x0b\x63\x61n_restock\x18\x04 \x01(\x08R\ncanRestock\x12!\n\x0c\x63ontainer_id\x18\x05 \x01(\x05R\x0b\x63ontainerId\x12-\n\x12\x63ontainer_revision\x18\x06 \x01(\x05R\x11\x63ontainerRevision\"\xcf\x01\n\x11VillagerTradeTask\x12\x1f\n\x0boffer_index\x18\x01 \x01(\rR\nofferIndex\x12\x14\n\x05\x63ount\x18\x02 \x01(\x05R\x05\x63ount\x12G\n\x0f\x65xpected_result\x18\x03 \x01(\x0b\x32\x19.soulfire.v1.ItemSelectorH\x00R\x0e\x65xpectedResult\x88\x01\x01\x12&\n\x0f\x63lose_when_done\x18\x04 \x01(\x08R\rcloseWhenDoneB\x12\n\x10_expected_result\"~\n\x17VillagerTradeTaskResult\x12\x38\n\x07outputs\x18\x01 \x03(\x0b\x32\x1e.soulfire.v1.ItemStackSnapshotR\x07outputs\x12)\n\x10\x63ompleted_trades\x18\x02 \x01(\x05R\x0f\x63ompletedTrades2\x8e\x04\n\rRecipeService\x12\x94\x01\n\x0bListRecipes\x12\x1f.soulfire.v1.ListRecipesRequest\x1a .soulfire.v1.ListRecipesResponse\"B\xca\xf3\x18+\n\x0cList recipes\x1a\rREAD_BOT_INFO\"\x0cinstance.bot\x82\xd3\xe4\x93\x02\r\x12\x0b/v1/recipes\x12\xa1\x01\n\x08\x43\x61nCraft\x12\x1c.soulfire.v1.CanCraftRequest\x1a\x1d.soulfire.v1.CanCraftResponse\"X\xca\xf3\x18\x35\n\x16\x43heck recipe materials\x1a\rREAD_BOT_INFO\"\x0cinstance.bot\x82\xd3\xe4\x93\x02\x19\"\x14/v1/recipes:canCraft:\x01*\x12\xc1\x01\n\x12ListVillagerTrades\x12&.soulfire.v1.ListVillagerTradesRequest\x1a\'.soulfire.v1.ListVillagerTradesResponse\"Z\xca\xf3\x18\x33\n\x14List villager trades\x1a\rREAD_BOT_INFO\"\x0cinstance.bot\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/recipes/villager-tradesB!\n\x1d\x63om.soulfiremc.grpc.generatedP\x01\x62\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'soulfire.recipe_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'\n\035com.soulfiremc.grpc.generatedP\001'
  _globals['_LISTRECIPESREQUEST'].fields_by_name['scope']._loaded_options = None
  _globals['_LISTRECIPESREQUEST'].fields_by_name['scope']._serialized_options = b'\340A\002'
  _globals['_LISTVILLAGERTRADESREQUEST'].fields_by_name['scope']._loaded_options = None
  _globals['_LISTVILLAGERTRADESREQUEST'].fields_by_name['scope']._serialized_options = b'\340A\002'
  _globals['_RECIPESERVICE'].methods_by_name['ListRecipes']._loaded_options = None
  _globals['_RECIPESERVICE'].methods_by_name['ListRecipes']._serialized_options = b'\312\363\030+\n\014List recipes\032\rREAD_BOT_INFO\"\014instance.bot\202\323\344\223\002\r\022\013/v1/recipes'
  _globals['_RECIPESERVICE'].methods_by_name['CanCraft']._loaded_options = None
  _globals['_RECIPESERVICE'].methods_by_name['CanCraft']._serialized_options = b'\312\363\0305\n\026Check recipe materials\032\rREAD_BOT_INFO\"\014instance.bot\202\323\344\223\002\031\"\024/v1/recipes:canCraft:\001*'
  _globals['_RECIPESERVICE'].methods_by_name['ListVillagerTrades']._loaded_options = None
  _globals['_RECIPESERVICE'].methods_by_name['ListVillagerTrades']._serialized_options = b'\312\363\0303\n\024List villager trades\032\rREAD_BOT_INFO\"\014instance.bot\202\323\344\223\002\035\022\033/v1/recipes/villager-trades'
  _globals['_INGREDIENTCHOICE']._serialized_start=223
  _globals['_INGREDIENTCHOICE']._serialized_end=310
  _globals['_RECIPESNAPSHOT']._serialized_start=313
  _globals['_RECIPESNAPSHOT']._serialized_end=701
  _globals['_LISTRECIPESREQUEST']._serialized_start=704
  _globals['_LISTRECIPESREQUEST']._serialized_end=1016
  _globals['_LISTRECIPESRESPONSE']._serialized_start=1019
  _globals['_LISTRECIPESRESPONSE']._serialized_end=1172
  _globals['_CANCRAFTREQUEST']._serialized_start=1174
  _globals['_CANCRAFTREQUEST']._serialized_end=1293
  _globals['_MISSINGINGREDIENT']._serialized_start=1296
  _globals['_MISSINGINGREDIENT']._serialized_end=1434
  _globals['_CANCRAFTRESPONSE']._serialized_start=1437
  _globals['_CANCRAFTRESPONSE']._serialized_end=1659
  _globals['_CRAFTTASK']._serialized_start=1662
  _globals['_CRAFTTASK']._serialized_end=1795
  _globals['_CRAFTTASKRESULT']._serialized_start=1797
  _globals['_CRAFTTASKRESULT']._serialized_end=1896
  _globals['_SMELTTASK']._serialized_start=1899
  _globals['_SMELTTASK']._serialized_end=2113
  _globals['_SMELTTASKRESULT']._serialized_start=2115
  _globals['_SMELTTASKRESULT']._serialized_end=2190
  _globals['_BREWTASK']._serialized_start=2193
  _globals['_BREWTASK']._serialized_end=2558
  _globals['_BREWTASKRESULT']._serialized_start=2560
  _globals['_BREWTASKRESULT']._serialized_end=2634
  _globals['_VILLAGERTRADEOFFERSNAPSHOT']._serialized_start=2637
  _globals['_VILLAGERTRADEOFFERSNAPSHOT']._serialized_end=3192
  _globals['_LISTVILLAGERTRADESREQUEST']._serialized_start=3194
  _globals['_LISTVILLAGERTRADESREQUEST']._serialized_end=3277
  _globals['_LISTVILLAGERTRADESRESPONSE']._serialized_start=3280
  _globals['_LISTVILLAGERTRADESRESPONSE']._serialized_end=3576
  _globals['_VILLAGERTRADETASK']._serialized_start=3579
  _globals['_VILLAGERTRADETASK']._serialized_end=3786
  _globals['_VILLAGERTRADETASKRESULT']._serialized_start=3788
  _globals['_VILLAGERTRADETASKRESULT']._serialized_end=3914
  _globals['_RECIPESERVICE']._serialized_start=3917
  _globals['_RECIPESERVICE']._serialized_end=4443
# @@protoc_insertion_point(module_scope)
