// @generated by protoc-gen-es v2.13.0 with parameter "target=ts,import_extension=js"
// @generated from file soulfire/world.proto (package soulfire.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_google_api_annotations } from "../google/api/annotations_pb.js";
import { file_google_api_field_behavior } from "../google/api/field_behavior_pb.js";
import { file_soulfire_api_docs } from "./api_docs_pb.js";
import type { BlockFace } from "./bot_live_pb.js";
import { file_soulfire_bot_live } from "./bot_live_pb.js";
import type { BlockPosition, WorldPosition } from "./common_pb.js";
import { file_soulfire_common } from "./common_pb.js";
import type { BlockSnapshot, EntityCategory, EntityReference, EntitySnapshot, PlayerSnapshot, Vec3 } from "./domain_pb.js";
import { file_soulfire_domain } from "./domain_pb.js";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file soulfire/world.proto.
 */
export const file_soulfire_world: GenFile = /*@__PURE__*/
  fileDesc(" ", [file_google_api_annotations, file_google_api_field_behavior, file_soulfire_api_docs, file_soulfire_bot_live, file_soulfire_common, file_soulfire_domain]);

/**
 * @generated from message soulfire.v1.IntRange
 */
export type IntRange = Message<"soulfire.v1.IntRange"> & {
  /**
   * @generated from field: optional int32 minimum = 1;
   */
  minimum?: number | undefined;

  /**
   * @generated from field: optional int32 maximum = 2;
   */
  maximum?: number | undefined;
};

/**
 * Describes the message soulfire.v1.IntRange.
 * Use `create(IntRangeSchema)` to create a new message.
 */
export const IntRangeSchema: GenMessage<IntRange> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 0);

/**
 * @generated from message soulfire.v1.FloatRange
 */
export type FloatRange = Message<"soulfire.v1.FloatRange"> & {
  /**
   * @generated from field: optional float minimum = 1;
   */
  minimum?: number | undefined;

  /**
   * @generated from field: optional float maximum = 2;
   */
  maximum?: number | undefined;
};

/**
 * Describes the message soulfire.v1.FloatRange.
 * Use `create(FloatRangeSchema)` to create a new message.
 */
export const FloatRangeSchema: GenMessage<FloatRange> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 1);

/**
 * @generated from message soulfire.v1.BlockSelector
 */
export type BlockSelector = Message<"soulfire.v1.BlockSelector"> & {
  /**
   * @generated from field: repeated string block_ids = 1;
   */
  blockIds: string[];

  /**
   * @generated from field: repeated string tags = 2;
   */
  tags: string[];

  /**
   * @generated from field: map<string, string> properties = 3;
   */
  properties: { [key: string]: string };

  /**
   * @generated from field: optional bool solid = 4;
   */
  solid?: boolean | undefined;

  /**
   * @generated from field: optional bool replaceable = 5;
   */
  replaceable?: boolean | undefined;

  /**
   * @generated from field: optional bool interactive = 6;
   */
  interactive?: boolean | undefined;

  /**
   * @generated from field: optional bool diggable = 7;
   */
  diggable?: boolean | undefined;

  /**
   * @generated from field: repeated string effective_tool_tags = 8;
   */
  effectiveToolTags: string[];

  /**
   * @generated from field: repeated string biome_ids = 9;
   */
  biomeIds: string[];

  /**
   * @generated from field: optional soulfire.v1.IntRange sky_light = 10;
   */
  skyLight?: IntRange | undefined;

  /**
   * @generated from field: optional soulfire.v1.IntRange block_light = 11;
   */
  blockLight?: IntRange | undefined;

  /**
   * @generated from field: bool include_block_entity = 12;
   */
  includeBlockEntity: boolean;

  /**
   * @generated from field: bool require_line_of_sight = 13;
   */
  requireLineOfSight: boolean;
};

/**
 * Describes the message soulfire.v1.BlockSelector.
 * Use `create(BlockSelectorSchema)` to create a new message.
 */
export const BlockSelectorSchema: GenMessage<BlockSelector> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 2);

/**
 * @generated from message soulfire.v1.EntitySelector
 */
export type EntitySelector = Message<"soulfire.v1.EntitySelector"> & {
  /**
   * @generated from field: repeated string entity_types = 1;
   */
  entityTypes: string[];

  /**
   * @generated from field: repeated string tags = 2;
   */
  tags: string[];

  /**
   * @generated from field: repeated soulfire.v1.EntityCategory categories = 3;
   */
  categories: EntityCategory[];

  /**
   * @generated from field: optional string uuid = 4;
   */
  uuid?: string | undefined;

  /**
   * @generated from field: optional int32 network_id = 5;
   */
  networkId?: number | undefined;

  /**
   * @generated from field: optional string player_name = 6;
   */
  playerName?: string | undefined;

  /**
   * @generated from field: optional bool alive = 7;
   */
  alive?: boolean | undefined;

  /**
   * @generated from field: optional soulfire.v1.FloatRange health = 8;
   */
  health?: FloatRange | undefined;

  /**
   * @generated from field: optional string custom_name = 9;
   */
  customName?: string | undefined;

  /**
   * @generated from field: repeated string equipped_item_ids = 10;
   */
  equippedItemIds: string[];

  /**
   * @generated from field: repeated string effect_ids = 11;
   */
  effectIds: string[];

  /**
   * @generated from field: optional string owner_uuid = 12;
   */
  ownerUuid?: string | undefined;

  /**
   * @generated from field: bool require_line_of_sight = 13;
   */
  requireLineOfSight: boolean;
};

/**
 * Describes the message soulfire.v1.EntitySelector.
 * Use `create(EntitySelectorSchema)` to create a new message.
 */
export const EntitySelectorSchema: GenMessage<EntitySelector> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 3);

/**
 * @generated from message soulfire.v1.QueryRegion
 */
export type QueryRegion = Message<"soulfire.v1.QueryRegion"> & {
  /**
   * @generated from oneof soulfire.v1.QueryRegion.region
   */
  region: {
    /**
     * @generated from field: soulfire.v1.SphereRegion sphere = 1;
     */
    value: SphereRegion;
    case: "sphere";
  } | {
    /**
     * @generated from field: soulfire.v1.BoxRegion box = 2;
     */
    value: BoxRegion;
    case: "box";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message soulfire.v1.QueryRegion.
 * Use `create(QueryRegionSchema)` to create a new message.
 */
export const QueryRegionSchema: GenMessage<QueryRegion> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 4);

/**
 * @generated from message soulfire.v1.SphereRegion
 */
export type SphereRegion = Message<"soulfire.v1.SphereRegion"> & {
  /**
   * @generated from field: soulfire.v1.WorldPosition center = 1;
   */
  center?: WorldPosition | undefined;

  /**
   * @generated from field: float radius = 2;
   */
  radius: number;
};

/**
 * Describes the message soulfire.v1.SphereRegion.
 * Use `create(SphereRegionSchema)` to create a new message.
 */
export const SphereRegionSchema: GenMessage<SphereRegion> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 5);

/**
 * @generated from message soulfire.v1.BoxRegion
 */
export type BoxRegion = Message<"soulfire.v1.BoxRegion"> & {
  /**
   * @generated from field: soulfire.v1.BlockPosition minimum = 1;
   */
  minimum?: BlockPosition | undefined;

  /**
   * @generated from field: soulfire.v1.BlockPosition maximum = 2;
   */
  maximum?: BlockPosition | undefined;
};

/**
 * Describes the message soulfire.v1.BoxRegion.
 * Use `create(BoxRegionSchema)` to create a new message.
 */
export const BoxRegionSchema: GenMessage<BoxRegion> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 6);

/**
 * @generated from message soulfire.v1.GetPlayerSnapshotRequest
 */
export type GetPlayerSnapshotRequest = Message<"soulfire.v1.GetPlayerSnapshotRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;
};

/**
 * Describes the message soulfire.v1.GetPlayerSnapshotRequest.
 * Use `create(GetPlayerSnapshotRequestSchema)` to create a new message.
 */
export const GetPlayerSnapshotRequestSchema: GenMessage<GetPlayerSnapshotRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 7);

/**
 * @generated from message soulfire.v1.GetPlayerSnapshotResponse
 */
export type GetPlayerSnapshotResponse = Message<"soulfire.v1.GetPlayerSnapshotResponse"> & {
  /**
   * @generated from field: soulfire.v1.PlayerSnapshot player = 1;
   */
  player?: PlayerSnapshot | undefined;
};

/**
 * Describes the message soulfire.v1.GetPlayerSnapshotResponse.
 * Use `create(GetPlayerSnapshotResponseSchema)` to create a new message.
 */
export const GetPlayerSnapshotResponseSchema: GenMessage<GetPlayerSnapshotResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 8);

/**
 * @generated from message soulfire.v1.GetWorldBlockRequest
 */
export type GetWorldBlockRequest = Message<"soulfire.v1.GetWorldBlockRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.BlockPosition position = 3;
   */
  position?: BlockPosition | undefined;

  /**
   * @generated from field: bool include_block_entity = 4;
   */
  includeBlockEntity: boolean;

  /**
   * @generated from field: bool include_shapes = 5;
   */
  includeShapes: boolean;
};

/**
 * Describes the message soulfire.v1.GetWorldBlockRequest.
 * Use `create(GetWorldBlockRequestSchema)` to create a new message.
 */
export const GetWorldBlockRequestSchema: GenMessage<GetWorldBlockRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 9);

/**
 * @generated from message soulfire.v1.GetWorldBlockResponse
 */
export type GetWorldBlockResponse = Message<"soulfire.v1.GetWorldBlockResponse"> & {
  /**
   * @generated from field: soulfire.v1.BlockSnapshot block = 1;
   */
  block?: BlockSnapshot | undefined;
};

/**
 * Describes the message soulfire.v1.GetWorldBlockResponse.
 * Use `create(GetWorldBlockResponseSchema)` to create a new message.
 */
export const GetWorldBlockResponseSchema: GenMessage<GetWorldBlockResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 10);

/**
 * @generated from message soulfire.v1.QueryBlocksRequest
 */
export type QueryBlocksRequest = Message<"soulfire.v1.QueryBlocksRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.QueryRegion region = 3;
   */
  region?: QueryRegion | undefined;

  /**
   * @generated from field: soulfire.v1.BlockSelector selector = 4;
   */
  selector?: BlockSelector | undefined;

  /**
   * @generated from field: soulfire.v1.QuerySort sort = 5;
   */
  sort: QuerySort;

  /**
   * @generated from field: uint32 page_size = 6;
   */
  pageSize: number;

  /**
   * @generated from field: string page_token = 7;
   */
  pageToken: string;
};

/**
 * Describes the message soulfire.v1.QueryBlocksRequest.
 * Use `create(QueryBlocksRequestSchema)` to create a new message.
 */
export const QueryBlocksRequestSchema: GenMessage<QueryBlocksRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 11);

/**
 * @generated from message soulfire.v1.QueryBlocksResponse
 */
export type QueryBlocksResponse = Message<"soulfire.v1.QueryBlocksResponse"> & {
  /**
   * @generated from field: repeated soulfire.v1.BlockSnapshot blocks = 1;
   */
  blocks: BlockSnapshot[];

  /**
   * @generated from field: string next_page_token = 2;
   */
  nextPageToken: string;

  /**
   * @generated from field: uint64 world_revision = 3;
   */
  worldRevision: bigint;
};

/**
 * Describes the message soulfire.v1.QueryBlocksResponse.
 * Use `create(QueryBlocksResponseSchema)` to create a new message.
 */
export const QueryBlocksResponseSchema: GenMessage<QueryBlocksResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 12);

/**
 * @generated from message soulfire.v1.GetWorldEntityRequest
 */
export type GetWorldEntityRequest = Message<"soulfire.v1.GetWorldEntityRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.EntityReference entity = 3;
   */
  entity?: EntityReference | undefined;
};

/**
 * Describes the message soulfire.v1.GetWorldEntityRequest.
 * Use `create(GetWorldEntityRequestSchema)` to create a new message.
 */
export const GetWorldEntityRequestSchema: GenMessage<GetWorldEntityRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 13);

/**
 * @generated from message soulfire.v1.GetWorldEntityResponse
 */
export type GetWorldEntityResponse = Message<"soulfire.v1.GetWorldEntityResponse"> & {
  /**
   * @generated from field: soulfire.v1.EntitySnapshot entity = 1;
   */
  entity?: EntitySnapshot | undefined;
};

/**
 * Describes the message soulfire.v1.GetWorldEntityResponse.
 * Use `create(GetWorldEntityResponseSchema)` to create a new message.
 */
export const GetWorldEntityResponseSchema: GenMessage<GetWorldEntityResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 14);

/**
 * @generated from message soulfire.v1.QueryEntitiesRequest
 */
export type QueryEntitiesRequest = Message<"soulfire.v1.QueryEntitiesRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: optional soulfire.v1.WorldPosition origin = 3;
   */
  origin?: WorldPosition | undefined;

  /**
   * @generated from field: float radius = 4;
   */
  radius: number;

  /**
   * @generated from field: soulfire.v1.EntitySelector selector = 5;
   */
  selector?: EntitySelector | undefined;

  /**
   * @generated from field: soulfire.v1.QuerySort sort = 6;
   */
  sort: QuerySort;

  /**
   * @generated from field: uint32 page_size = 7;
   */
  pageSize: number;

  /**
   * @generated from field: string page_token = 8;
   */
  pageToken: string;
};

/**
 * Describes the message soulfire.v1.QueryEntitiesRequest.
 * Use `create(QueryEntitiesRequestSchema)` to create a new message.
 */
export const QueryEntitiesRequestSchema: GenMessage<QueryEntitiesRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 15);

/**
 * @generated from message soulfire.v1.QueryEntitiesResponse
 */
export type QueryEntitiesResponse = Message<"soulfire.v1.QueryEntitiesResponse"> & {
  /**
   * @generated from field: repeated soulfire.v1.EntitySnapshot entities = 1;
   */
  entities: EntitySnapshot[];

  /**
   * @generated from field: string next_page_token = 2;
   */
  nextPageToken: string;

  /**
   * @generated from field: uint64 world_revision = 3;
   */
  worldRevision: bigint;
};

/**
 * Describes the message soulfire.v1.QueryEntitiesResponse.
 * Use `create(QueryEntitiesResponseSchema)` to create a new message.
 */
export const QueryEntitiesResponseSchema: GenMessage<QueryEntitiesResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 16);

/**
 * @generated from message soulfire.v1.RaycastRequest
 */
export type RaycastRequest = Message<"soulfire.v1.RaycastRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * Ray origin. Omit to start at the bot player's current eye position.
   *
   * @generated from field: soulfire.v1.WorldPosition origin = 3;
   */
  origin?: WorldPosition | undefined;

  /**
   * Ray direction. Omit to use the bot player's current view direction.
   *
   * @generated from field: soulfire.v1.Vec3 direction = 4;
   */
  direction?: Vec3 | undefined;

  /**
   * @generated from field: float maximum_distance = 5;
   */
  maximumDistance: number;

  /**
   * @generated from field: bool include_fluids = 6;
   */
  includeFluids: boolean;

  /**
   * @generated from field: bool include_entities = 7;
   */
  includeEntities: boolean;
};

/**
 * Describes the message soulfire.v1.RaycastRequest.
 * Use `create(RaycastRequestSchema)` to create a new message.
 */
export const RaycastRequestSchema: GenMessage<RaycastRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 17);

/**
 * @generated from message soulfire.v1.RaycastResponse
 */
export type RaycastResponse = Message<"soulfire.v1.RaycastResponse"> & {
  /**
   * @generated from field: optional soulfire.v1.BlockSnapshot block = 1;
   */
  block?: BlockSnapshot | undefined;

  /**
   * @generated from field: optional soulfire.v1.EntitySnapshot entity = 2;
   */
  entity?: EntitySnapshot | undefined;

  /**
   * @generated from field: optional soulfire.v1.WorldPosition hit_position = 3;
   */
  hitPosition?: WorldPosition | undefined;

  /**
   * @generated from field: optional soulfire.v1.BlockFace block_face = 4;
   */
  blockFace?: BlockFace | undefined;

  /**
   * @generated from field: float distance = 5;
   */
  distance: number;
};

/**
 * Describes the message soulfire.v1.RaycastResponse.
 * Use `create(RaycastResponseSchema)` to create a new message.
 */
export const RaycastResponseSchema: GenMessage<RaycastResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 18);

/**
 * @generated from message soulfire.v1.CanSeeBlockRequest
 */
export type CanSeeBlockRequest = Message<"soulfire.v1.CanSeeBlockRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.BlockPosition position = 3;
   */
  position?: BlockPosition | undefined;
};

/**
 * Describes the message soulfire.v1.CanSeeBlockRequest.
 * Use `create(CanSeeBlockRequestSchema)` to create a new message.
 */
export const CanSeeBlockRequestSchema: GenMessage<CanSeeBlockRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 19);

/**
 * @generated from message soulfire.v1.CanSeeBlockResponse
 */
export type CanSeeBlockResponse = Message<"soulfire.v1.CanSeeBlockResponse"> & {
  /**
   * @generated from field: bool visible = 1;
   */
  visible: boolean;

  /**
   * @generated from field: float distance = 2;
   */
  distance: number;

  /**
   * @generated from field: soulfire.v1.BlockSnapshot block = 3;
   */
  block?: BlockSnapshot | undefined;
};

/**
 * Describes the message soulfire.v1.CanSeeBlockResponse.
 * Use `create(CanSeeBlockResponseSchema)` to create a new message.
 */
export const CanSeeBlockResponseSchema: GenMessage<CanSeeBlockResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 20);

/**
 * @generated from message soulfire.v1.EstimateDigTimeRequest
 */
export type EstimateDigTimeRequest = Message<"soulfire.v1.EstimateDigTimeRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.BlockPosition position = 3;
   */
  position?: BlockPosition | undefined;
};

/**
 * Describes the message soulfire.v1.EstimateDigTimeRequest.
 * Use `create(EstimateDigTimeRequestSchema)` to create a new message.
 */
export const EstimateDigTimeRequestSchema: GenMessage<EstimateDigTimeRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 21);

/**
 * @generated from message soulfire.v1.EstimateDigTimeResponse
 */
export type EstimateDigTimeResponse = Message<"soulfire.v1.EstimateDigTimeResponse"> & {
  /**
   * @generated from field: bool diggable = 1;
   */
  diggable: boolean;

  /**
   * @generated from field: bool instant = 2;
   */
  instant: boolean;

  /**
   * @generated from field: uint32 ticks = 3;
   */
  ticks: number;

  /**
   * @generated from field: uint64 duration_ms = 4;
   */
  durationMs: bigint;

  /**
   * @generated from field: float progress_per_tick = 5;
   */
  progressPerTick: number;

  /**
   * @generated from field: bool correct_tool_for_drops = 6;
   */
  correctToolForDrops: boolean;

  /**
   * @generated from field: soulfire.v1.BlockSnapshot block = 7;
   */
  block?: BlockSnapshot | undefined;
};

/**
 * Describes the message soulfire.v1.EstimateDigTimeResponse.
 * Use `create(EstimateDigTimeResponseSchema)` to create a new message.
 */
export const EstimateDigTimeResponseSchema: GenMessage<EstimateDigTimeResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 22);

/**
 * @generated from message soulfire.v1.EstimateExplosionDamageRequest
 */
export type EstimateExplosionDamageRequest = Message<"soulfire.v1.EstimateExplosionDamageRequest"> & {
  /**
   * @generated from field: string instance_id = 1;
   */
  instanceId: string;

  /**
   * @generated from field: string bot_id = 2;
   */
  botId: string;

  /**
   * @generated from field: soulfire.v1.EntityReference target = 3;
   */
  target?: EntityReference | undefined;

  /**
   * @generated from field: soulfire.v1.WorldPosition center = 4;
   */
  center?: WorldPosition | undefined;

  /**
   * Vanilla explosion power. The damage radius is twice this value.
   *
   * @generated from field: float power = 5;
   */
  power: number;
};

/**
 * Describes the message soulfire.v1.EstimateExplosionDamageRequest.
 * Use `create(EstimateExplosionDamageRequestSchema)` to create a new message.
 */
export const EstimateExplosionDamageRequestSchema: GenMessage<EstimateExplosionDamageRequest> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 23);

/**
 * @generated from message soulfire.v1.EstimateExplosionDamageResponse
 */
export type EstimateExplosionDamageResponse = Message<"soulfire.v1.EstimateExplosionDamageResponse"> & {
  /**
   * @generated from field: float distance = 1;
   */
  distance: number;

  /**
   * @generated from field: float damage_radius = 2;
   */
  damageRadius: number;

  /**
   * Fraction of sampled target volume visible from the explosion center.
   *
   * @generated from field: float exposure = 3;
   */
  exposure: number;

  /**
   * @generated from field: float raw_damage = 4;
   */
  rawDamage: number;

  /**
   * @generated from field: float damage_after_armor = 5;
   */
  damageAfterArmor: number;

  /**
   * @generated from field: float damage_after_resistance = 6;
   */
  damageAfterResistance: number;

  /**
   * @generated from field: float damage_after_enchantments = 7;
   */
  damageAfterEnchantments: number;

  /**
   * @generated from field: float absorbed_damage = 8;
   */
  absorbedDamage: number;

  /**
   * @generated from field: float estimated_health_damage = 9;
   */
  estimatedHealthDamage: number;

  /**
   * @generated from field: bool invulnerable = 10;
   */
  invulnerable: boolean;

  /**
   * @generated from field: uint32 armor_points = 11;
   */
  armorPoints: number;

  /**
   * @generated from field: float armor_toughness = 12;
   */
  armorToughness: number;

  /**
   * @generated from field: uint32 resistance_level = 13;
   */
  resistanceLevel: number;

  /**
   * @generated from field: uint32 explosion_protection = 14;
   */
  explosionProtection: number;
};

/**
 * Describes the message soulfire.v1.EstimateExplosionDamageResponse.
 * Use `create(EstimateExplosionDamageResponseSchema)` to create a new message.
 */
export const EstimateExplosionDamageResponseSchema: GenMessage<EstimateExplosionDamageResponse> = /*@__PURE__*/
  messageDesc(file_soulfire_world, 24);

/**
 * @generated from enum soulfire.v1.QuerySort
 */
export enum QuerySort {
  /**
   * @generated from enum value: QUERY_SORT_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: QUERY_SORT_NEAREST = 1;
   */
  NEAREST = 1,

  /**
   * @generated from enum value: QUERY_SORT_FARTHEST = 2;
   */
  FARTHEST = 2,

  /**
   * @generated from enum value: QUERY_SORT_XYZ = 3;
   */
  XYZ = 3,
}

/**
 * Describes the enum soulfire.v1.QuerySort.
 */
export const QuerySortSchema: GenEnum<QuerySort> = /*@__PURE__*/
  enumDesc(file_soulfire_world, 0);

/**
 * @generated from service soulfire.v1.WorldService
 */
export const WorldService: GenService<{
  /**
   * @generated from rpc soulfire.v1.WorldService.GetPlayerSnapshot
   */
  getPlayerSnapshot: {
    methodKind: "unary";
    input: typeof GetPlayerSnapshotRequestSchema;
    output: typeof GetPlayerSnapshotResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.GetWorldBlock
   */
  getWorldBlock: {
    methodKind: "unary";
    input: typeof GetWorldBlockRequestSchema;
    output: typeof GetWorldBlockResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.QueryBlocks
   */
  queryBlocks: {
    methodKind: "unary";
    input: typeof QueryBlocksRequestSchema;
    output: typeof QueryBlocksResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.GetWorldEntity
   */
  getWorldEntity: {
    methodKind: "unary";
    input: typeof GetWorldEntityRequestSchema;
    output: typeof GetWorldEntityResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.QueryEntities
   */
  queryEntities: {
    methodKind: "unary";
    input: typeof QueryEntitiesRequestSchema;
    output: typeof QueryEntitiesResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.Raycast
   */
  raycast: {
    methodKind: "unary";
    input: typeof RaycastRequestSchema;
    output: typeof RaycastResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.CanSeeBlock
   */
  canSeeBlock: {
    methodKind: "unary";
    input: typeof CanSeeBlockRequestSchema;
    output: typeof CanSeeBlockResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.EstimateDigTime
   */
  estimateDigTime: {
    methodKind: "unary";
    input: typeof EstimateDigTimeRequestSchema;
    output: typeof EstimateDigTimeResponseSchema;
  },
  /**
   * @generated from rpc soulfire.v1.WorldService.EstimateExplosionDamage
   */
  estimateExplosionDamage: {
    methodKind: "unary";
    input: typeof EstimateExplosionDamageRequestSchema;
    output: typeof EstimateExplosionDamageResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_soulfire_world, 0);
