pub struct GameClient<S: PlayConnection> {
pub state: GameState,
/* private fields */
}Fields§
§state: GameStateImplementations§
Source§impl<S: PlayConnection> GameClient<S>
impl<S: PlayConnection> GameClient<S>
pub fn new(session: S) -> Self
pub fn entity_id(&self) -> EntityId
pub async fn wait_until_ready(&mut self) -> Result<()>
Sourcepub fn drain_events(&mut self)
pub fn drain_events(&mut self)
Drain all pending server events (non-blocking).
Sourcepub async fn next_event(&mut self) -> Option<SessionEvent>
pub async fn next_event(&mut self) -> Option<SessionEvent>
Wait for the next server event.
pub async fn handle_event(&mut self, event: SessionEvent) -> Result<()>
pub fn is_connected(&self) -> bool
pub fn close_overlays(&mut self)
Sourcepub fn back_on_esc(&mut self) -> bool
pub fn back_on_esc(&mut self) -> bool
Esc / back — pop one UI layer instead of closing every overlay at once.
pub fn toggle_stats(&mut self)
pub fn cycle_character_sheet_tab(&mut self)
pub fn set_ledger_period_digit(&mut self, c: char)
pub fn cycle_ledger_period(&mut self)
pub fn open_rename_prompt(&mut self) -> Result<()>
pub fn cancel_rename_prompt(&mut self)
pub async fn confirm_rename_prompt(&mut self) -> Result<()>
pub fn open_worker_rename(&mut self) -> Result<()>
pub fn cancel_worker_rename(&mut self)
pub async fn confirm_worker_rename(&mut self) -> Result<()>
↑/↓ in the inventory browser, or within the “move to…” / grant picker when open.
PageUp / PageDown (±1 page) for inventory / move / grant lists.
pub fn cycle_inventory_tab(&mut self, forward: bool)
pub fn focus_inventory_filter(&mut self)
pub fn set_inventory_filter(&mut self, filter: String)
pub fn append_inventory_filter_char(&mut self, ch: char)
pub fn inventory_filter_backspace(&mut self)
Sourcepub fn clear_or_blur_inventory_filter(&mut self) -> bool
pub fn clear_or_blur_inventory_filter(&mut self) -> bool
Esc while filter focused: clear filter then blur. Returns true if handled.
Sourcepub async fn activate_inventory_selection(&mut self) -> Result<()>
pub async fn activate_inventory_selection(&mut self) -> Result<()>
Enter: unequip a worn bag, equip a weapon, wear/place a loose bag or
chest — or fall back to the “move to…” destination picker (including
loose consumables; pick “Use” in that list or press e to eat/drink).
Placed chest shells open a pick-up destination picker (l still locks).
Sourcepub async fn use_selected_consumable(&mut self) -> Result<()>
pub async fn use_selected_consumable(&mut self) -> Result<()>
e: eat/drink a consumable, or open grant-target picker for grant oils/scrolls.
Sourcepub fn open_grant_target_picker(&mut self) -> Result<()>
pub fn open_grant_target_picker(&mut self) -> Result<()>
Open picker: apply selected grant item onto inventory / worn gear.
pub fn close_grant_picker(&mut self)
pub async fn confirm_grant_picker(&mut self) -> Result<()>
Sourcepub fn open_move_picker(&mut self) -> Result<()>
pub fn open_move_picker(&mut self) -> Result<()>
m: always open the “move to…” picker for the selected item, even for
weapons/wearables that Enter would otherwise equip/wear directly.
Placed chests open the pick-up destination picker instead.
Sourcepub fn open_chest_pickup_picker(&mut self) -> Result<()>
pub fn open_chest_pickup_picker(&mut self) -> Result<()>
Enter/m on a placed chest shell: pick destinations to take it into inventory.
pub fn close_move_picker(&mut self)
pub fn move_picker_adjust_quantity(&mut self, delta: i32)
pub fn move_picker_set_quantity_max(&mut self)
pub fn destroy_picker_adjust_quantity(&mut self, delta: i32)
pub fn destroy_picker_set_quantity_max(&mut self)
Sourcepub async fn drop_selected(&mut self) -> Result<()>
pub async fn drop_selected(&mut self) -> Result<()>
d: drop the selected item on the ground immediately (no picker).
pub async fn drop_item( &mut self, item_instance_id: Uuid, from: InventoryLocation, ) -> Result<()>
Sourcepub fn open_destroy_picker(&mut self) -> Result<()>
pub fn open_destroy_picker(&mut self) -> Result<()>
x: open permanent-delete picker for the selected item (quantity + confirm).
pub fn close_destroy_picker(&mut self)
pub fn cancel_destroy_confirm(&mut self)
pub fn request_destroy_confirm(&mut self) -> Result<()>
pub async fn confirm_destroy_item(&mut self) -> Result<()>
pub async fn destroy_item( &mut self, item_instance_id: Uuid, from: InventoryLocation, quantity: Option<u32>, ) -> Result<()>
Sourcepub async fn toggle_chest_lock_for_selection(&mut self) -> Result<()>
pub async fn toggle_chest_lock_for_selection(&mut self) -> Result<()>
l: lock/unlock a placed chest — selected chest in inventory UI, else nearest.
pub async fn toggle_placed_chest_lock( &mut self, container_id: &str, ) -> Result<()>
Sourcepub async fn toggle_nearby_chest_lock(&mut self) -> Result<()>
pub async fn toggle_nearby_chest_lock(&mut self) -> Result<()>
l outside inventory: lock/unlock the nearest placed chest (within CONTAINER_RANGE_M).
pub async fn unequip_mainhand(&mut self) -> Result<()>
pub async fn equip_offhand(&mut self, template_id: Option<String>) -> Result<()>
pub async fn unequip_offhand(&mut self) -> Result<()>
pub async fn unequip_all_worn(&mut self) -> Result<()>
pub async fn pickup_nearest_container(&mut self) -> Result<()>
pub async fn equip_worn( &mut self, slot: BodySlot, instance_id: Option<Uuid>, ) -> Result<()>
pub async fn place_container(&mut self, item_instance_id: Uuid) -> Result<()>
pub async fn pickup_container(&mut self, container_id: String) -> Result<()>
pub async fn move_item( &mut self, item_instance_id: Uuid, from: InventoryLocation, to: InventoryLocation, to_parent_instance_id: Option<Uuid>, quantity: Option<u32>, ) -> Result<()>
pub async fn set_container_locked( &mut self, location: InventoryLocation, locked: bool, ) -> Result<()>
pub async fn use_item(&mut self, template_id: &str) -> Result<()>
Sourcepub async fn use_grant(
&mut self,
grant_instance_id: Uuid,
target_instance_id: Uuid,
) -> Result<()>
pub async fn use_grant( &mut self, grant_instance_id: Uuid, target_instance_id: Uuid, ) -> Result<()>
Bind a grant consumable onto a specific item instance (unique gear status).
pub async fn activate_keychain_selection(&mut self) -> Result<()>
pub async fn bank_deposit(&mut self, amount_copper: u64) -> Result<()>
pub async fn bank_withdraw(&mut self, amount_copper: u64) -> Result<()>
pub async fn bank_transfer( &mut self, to_character_id: Option<Uuid>, to_name: String, amount_copper: u64, ) -> Result<()>
pub fn storage_pick_move(&mut self, delta: i32)
pub fn storage_ui_back(&mut self)
pub fn storage_amount_append_char(&mut self, c: char)
pub fn storage_amount_backspace(&mut self)
pub fn storage_ui_typing(&self) -> bool
pub fn bank_transfer_back(&mut self)
pub fn bank_transfer_append_char(&mut self, c: char)
pub fn bank_transfer_backspace(&mut self)
pub async fn close_bank_panel(&mut self) -> Result<()>
pub async fn storage_store( &mut self, item_instance_id: Uuid, quantity: Option<u32>, ) -> Result<()>
pub async fn storage_take( &mut self, item_instance_id: Uuid, quantity: Option<u32>, ) -> Result<()>
pub async fn storage_ship( &mut self, dest_building_id: String, item_instance_id: Uuid, quantity: Option<u32>, ) -> Result<()>
pub async fn close_storage_panel(&mut self) -> Result<()>
Close shop and return to the Talk/Trade verb menu when inside an NPC session.
pub fn shop_tab_toggle(&mut self)
pub fn shop_quantity_adjust(&mut self, delta: i32)
pub fn shop_quantity_set_max(&mut self)
pub async fn workers_dismiss_selected(&mut self) -> Result<()>
pub async fn workers_toggle_mode_selected(&mut self) -> Result<()>
pub async fn workers_confirm_action(&mut self) -> Result<()>
Sourcepub fn open_worker_give_target_picker(&mut self) -> Result<()>
pub fn open_worker_give_target_picker(&mut self) -> Result<()>
Open a nearby-worker picker for the selected inventory stack (inventory g).
Always shows a chooser so you can pick Bruce vs Cookie when several are close.
Sourcepub fn nearby_worker_give_targets(&self) -> Vec<WorkerGiveTargetOption>
pub fn nearby_worker_give_targets(&self) -> Vec<WorkerGiveTargetOption>
Hired workers within give/take range, nearest first.
pub fn close_worker_give_target_picker(&mut self)
pub fn worker_give_target_picker_move(&mut self, delta: i32)
pub async fn confirm_worker_give_target_picker(&mut self) -> Result<()>
Sourcepub async fn give_selected_inventory_to_worker(&mut self) -> Result<()>
pub async fn give_selected_inventory_to_worker(&mut self) -> Result<()>
Give the selected inventory stack to a hired worker (opens nearby-worker picker).
Sourcepub fn open_worker_give_picker(&mut self) -> Result<()>
pub fn open_worker_give_picker(&mut self) -> Result<()>
Open the workers-menu give picker for the selected worker (must be in range).
pub fn close_worker_give_picker(&mut self)
pub fn worker_give_picker_move(&mut self, delta: i32)
Sourcepub async fn confirm_worker_give_picker(&mut self) -> Result<()>
pub async fn confirm_worker_give_picker(&mut self) -> Result<()>
Confirm the selected row in the workers-menu give picker.
Sourcepub fn open_worker_teach_picker(&mut self) -> Result<()>
pub fn open_worker_teach_picker(&mut self) -> Result<()>
Open the workers-menu teach picker for the selected worker (must be in range).
pub fn close_worker_teach_picker(&mut self)
pub fn worker_teach_picker_move(&mut self, delta: i32)
pub async fn confirm_worker_teach_picker(&mut self) -> Result<()>
Sourcepub fn open_worker_take_picker(&mut self) -> Result<()>
pub fn open_worker_take_picker(&mut self) -> Result<()>
Open the workers-menu take picker for the selected worker (must be in range).
pub fn close_worker_take_picker(&mut self)
pub fn worker_take_picker_move(&mut self, delta: i32)
pub async fn confirm_worker_take_picker(&mut self) -> Result<()>
pub async fn hire_worker_laborer(&mut self) -> Result<()>
pub fn open_worker_route_editor_for_selected(&mut self) -> Result<()>
pub fn close_worker_route_editor(&mut self)
pub fn worker_route_editor_toggle_panel(&mut self)
pub fn worker_route_editor_add_waypoint(&mut self, x: f32, y: f32, z: f32)
Sourcepub fn re_sheet_row_count(&self) -> usize
pub fn re_sheet_row_count(&self) -> usize
Row count of the current sheet (for cursor wrapping).
Sourcepub fn re_sheet_index(&self) -> usize
pub fn re_sheet_index(&self) -> usize
Current sheet cursor index (0 for sheets without one).
Sourcepub fn re_sheet_move(&mut self, delta: i32)
pub fn re_sheet_move(&mut self, delta: i32)
Move the current sheet’s cursor, wrapping within its rows.
Sourcepub fn re_sheet_adjust(&mut self, delta: i32)
pub fn re_sheet_adjust(&mut self, delta: i32)
[/] on a sheet: adjust quantity (withdraw lines, wait ticks).
pub fn re_sheet_back(&mut self)
Sourcepub fn re_at_root_sheet(&self) -> bool
pub fn re_at_root_sheet(&self) -> bool
True when the editor is at its root sheet (Esc should close it).
pub fn re_open_bed_picker(&mut self)
Sourcepub fn re_edit_selected_stop(&mut self)
pub fn re_edit_selected_stop(&mut self)
Enter on the stop list: open the selected stop’s sheet, prefilled.
pub fn worker_route_editor_ui_click(&mut self, click: RouteEditorClick)
Sourcepub fn re_sheet_row_activate(&mut self, row: usize)
pub fn re_sheet_row_activate(&mut self, row: usize)
Activate (Enter / click) a row of the current sheet.
Sourcepub fn worker_route_editor_map_click(&mut self, x: f32, y: f32)
pub fn worker_route_editor_map_click(&mut self, x: f32, y: f32)
Map click while the route editor is open. When a picker sheet is open the click feeds that sheet (chest clicks choose the withdraw/deposit container, NPC clicks the merchant, node clicks the harvest target); otherwise the click quick-adds the nearest target (context-aware).
pub fn worker_route_editor_select(&mut self, delta: i32)
pub fn worker_route_editor_move_selected(&mut self, delta: i32)
pub fn worker_route_editor_delete_selected(&mut self)
Sourcepub fn worker_route_editor_clear_stops(&mut self)
pub fn worker_route_editor_clear_stops(&mut self)
Clear all stops. Saving afterwards parks the worker in idle mode instead of leaving it in a broken job loop.
pub async fn worker_route_editor_save(&mut self) -> Result<()>
pub async fn quest_offer_accept(&mut self) -> Result<()>
pub fn quest_offer_decline(&mut self)
pub async fn quest_confirm_action(&mut self) -> Result<()>
pub fn quest_request_withdraw(&mut self)
pub async fn shop_confirm(&mut self) -> Result<()>
pub fn craft_batch_adjust_quantity(&mut self, delta: i32)
pub fn craft_batch_set_max(&mut self)
pub async fn move_by( &mut self, forward: f32, strafe: f32, vertical: f32, sprint: bool, ) -> Result<()>
pub async fn harvest_nearest(&mut self) -> Result<()>
pub async fn craft_next_available(&mut self) -> Result<()>
pub async fn craft( &mut self, blueprint_id: &str, count: Option<u32>, ) -> Result<()>
pub async fn interact_nearest(&mut self) -> Result<()>
Sourcepub async fn use_nearest(&mut self) -> Result<()>
pub async fn use_nearest(&mut self) -> Result<()>
Context-sensitive world use: interact → pickup loot/chest → harvest/butcher.
Sourcepub async fn cast_hotbar_ability(&mut self, slot: u8) -> Result<()>
pub async fn cast_hotbar_ability(&mut self, slot: u8) -> Result<()>
Activate the ability or consumable bound to hotbar slot 1–9.
Heals prefer T2/self; other abilities prefer T1. Consumables need no target.
Sourcepub async fn set_hotbar_slot(
&mut self,
slot: u8,
ability_id: Option<&str>,
) -> Result<()>
pub async fn set_hotbar_slot( &mut self, slot: u8, ability_id: Option<&str>, ) -> Result<()>
Bind or clear a hotbar slot (1–9) via Intent::SetHotbarSlot.
ability_id may be a learned ability or item:<template_id> for consumables.
pub fn npc_verb_options(&self) -> Vec<&'static str>
pub async fn confirm_npc_verb(&mut self) -> Result<()>
pub async fn npc_talk_send(&mut self) -> Result<()>
pub async fn npc_talk_close(&mut self) -> Result<()>
Sourcepub async fn npc_interaction_back(&mut self) -> Result<()>
pub async fn npc_interaction_back(&mut self) -> Result<()>
Esc/back inside Talk, Trade, quest-offer, or the verb menu — pop one layer, not the whole session.
pub async fn test_damage(&mut self, amount: f32) -> Result<()>
pub async fn cycle_combat_target(&mut self, reverse: bool) -> Result<()>
pub async fn cycle_combat_target_slot( &mut self, slot_index: u8, reverse: bool, ) -> Result<()>
pub async fn set_combat_target_slot( &mut self, slot_index: u8, target_id: EntityId, label: &str, ) -> Result<()>
pub async fn set_combat_target( &mut self, target_id: EntityId, label: &str, ) -> Result<()>
pub async fn clear_combat_target_slot(&mut self, slot_index: u8) -> Result<()>
pub async fn clear_combat_target(&mut self) -> Result<()>
pub async fn advance_rotation(&mut self, slot_index: u8) -> Result<()>
pub async fn assign_slot_preset( &mut self, slot_index: u8, preset_id: &str, ) -> Result<()>
pub async fn cast_ability( &mut self, ability_id: &str, target_id: Option<EntityId>, ) -> Result<()>
pub async fn upsert_rotation_preset( &mut self, preset: RotationPreset, ) -> Result<()>
pub async fn delete_rotation_preset(&mut self, preset_id: &str) -> Result<()>
pub async fn toggle_auto_attack_slot(&mut self, slot_index: u8) -> Result<()>
pub async fn pickup_nearest(&mut self) -> Result<()>
pub async fn toggle_auto_attack(&mut self) -> Result<()>
pub async fn dodge(&mut self) -> Result<()>
pub async fn lunge(&mut self) -> Result<()>
pub async fn directional_jump( &mut self, forward: f32, strafe: f32, ) -> Result<()>
Sourcepub fn last_move_axes(&self) -> (f32, f32)
pub fn last_move_axes(&self) -> (f32, f32)
Remembered WASD axes for lunge when not currently moving.
pub async fn set_block(&mut self, enabled: bool) -> Result<()>
pub async fn equip_mainhand( &mut self, template_id: Option<String>, ) -> Result<()>
Sourcepub async fn activate_equip_selection(&mut self) -> Result<()>
pub async fn activate_equip_selection(&mut self) -> Result<()>
Equip paperdoll: activate selected slot (unequip filled, or equip first matching candidate).
pub async fn say(&mut self, channel: ChatChannel, text: &str) -> Result<()>
pub async fn say_to( &mut self, channel: ChatChannel, text: &str, to_entity: Option<EntityId>, ) -> Result<()>
pub async fn confirm_player_verb(&mut self) -> Result<()>
pub async fn respond_pending_trade(&mut self, accept: bool) -> Result<()>
pub async fn trade_present_selected( &mut self, item_instance_id: Uuid, ) -> Result<()>
pub async fn trade_present_quantity( &mut self, item_instance_id: Uuid, quantity: Option<u32>, ) -> Result<()>
Sourcepub async fn trade_confirm_qty_or_present(&mut self) -> Result<()>
pub async fn trade_confirm_qty_or_present(&mut self) -> Result<()>
Confirm the trade quantity prompt (or present whole stack when qty==1).