use yog_core::{BlockArea, BlockHit, DigSpeed, Point, BlockPos, LocalState, NearbyEntity, PlacedBlock, SlotStack};
use yog_ids as ids;
actions! {
State { } -> Option<LocalState> = ids::service_client_local::STATE, "YogClientOps.state";
Inventory { } -> Vec<SlotStack> = ids::service_client_local::INVENTORY, "YogClientOps.inventory";
Scan { min: BlockPos, max: BlockPos, ids: Vec<String> } -> Vec<PlacedBlock> = ids::service_client_local::SCAN, "YogClientOps.scan";
Area { min: BlockPos, max: BlockPos } -> Option<BlockArea> = ids::service_client_local::AREA, "YogClientOps.area";
Entities { radius: f64 } -> Vec<NearbyEntity> = ids::service_client_local::ENTITIES, "YogClientOps.entities";
DigSpeeds { blocks: Vec<String> } -> Vec<DigSpeed> = ids::service_client_local::DIG_SPEEDS, "YogDigSpeeds.of";
Raycast { from: Point, to: Point } -> Option<BlockHit> = ids::service_client_local::RAYCAST, "YogClientOps.raycast";
Target { } -> Option<BlockHit> = ids::service_client_local::TARGET, "YogClientOps.target";
Message { text: String } -> bool = ids::service_client_local::MESSAGE, "YogClientChat.message";
}