class Rosegold::InventoryMenu

Overview

Player inventory menu - the view when no container is open. This is equivalent to vanilla's InventoryMenu.

Included Modules

Defined in:

rosegold/inventory/inventory_menu.cr

Constant Summary

TOTAL_SLOTS = ItemConstants::PlayerSlots::TOTAL_SLOTS

Total slots: crafting result(1) + crafting(4) + armor(4) + main inventory(27) + hotbar(9) + off hand(1) = 46

Constructors

Instance Method Summary

Instance methods inherited from module Rosegold::InventoryOperations

[](index : Int32) : Rosegold::Slot [], []=(index : Int32, slot : Rosegold::Slot) []=, allow_modification?(slot_index : Int32) : Bool allow_modification?, can_stack?(slot1 : Rosegold::Slot, slot2 : Rosegold::Slot) : Bool can_stack?, check_and_fix_desync check_and_fix_desync, content : Array(Rosegold::WindowSlot) content, content_slots : Array(Rosegold::WindowSlot) content_slots, copy_slot(slot : Rosegold::Slot) : Rosegold::Slot copy_slot, cursor : Rosegold::Slot cursor, cursor=(cursor : Rosegold::Slot) cursor=, get_max_stack_size(item_slot : Rosegold::Slot) : Int32 get_max_stack_size, get_slot_max_stack_size(slot_index : Int32, item_slot : Rosegold::Slot) : Int32 get_slot_max_stack_size, hotbar : Array(Rosegold::WindowSlot) hotbar, hotbar_slot_index(hotbar_nr : Int32) : Int32 hotbar_slot_index, hotbar_slots : Array(Rosegold::WindowSlot) hotbar_slots, increment_state_id : UInt32 increment_state_id, inventory : Array(Rosegold::WindowSlot) inventory, inventory_slots : Array(Rosegold::WindowSlot) inventory_slots, main_hand : Rosegold::Slot main_hand, main_inventory_slots : Array(Rosegold::Slot) main_inventory_slots, may_pickup?(slot_index : Int32) : Bool may_pickup?, may_place?(slot_index : Int32, item_slot : Rosegold::Slot) : Bool may_place?, menu_id : UInt8 menu_id, move_item_stack_to(source_index : Int32, target_start : Int32, target_end : Int32, reverse : Bool = false) : Bool move_item_stack_to, offhand_slot_index : Int32 offhand_slot_index, perform_cursor_drop_operation(button : Int32) perform_cursor_drop_operation, perform_drop_operation(slot_index : Int32, button : Int32) perform_drop_operation, perform_hotbar_swap(slot_index : Int32, button : Int32) perform_hotbar_swap, perform_offhand_swap_operation(slot_index : Int32) perform_offhand_swap_operation, perform_regular_click(slot_index : Int32, button : Int32) perform_regular_click, perform_shift_click(slot_index : Int32) perform_shift_click, safe_insert(target_slot_index : Int32, cursor_slot : Rosegold::Slot, amount : Int32) safe_insert, safe_take(source_slot_index : Int32, amount : Int32) safe_take, same_item_same_components?(slot1 : Rosegold::Slot, slot2 : Rosegold::Slot) : Bool same_item_same_components?, send_click(slot_index : Int32, button : Int32, click_type) send_click, slots : Array(Rosegold::WindowSlot) slots, slots=(new_slots : Array(Rosegold::WindowSlot)) slots=, slots_match?(slot1 : Rosegold::Slot, slot2 : Rosegold::Slot) : Bool slots_match?, swap_hotbar(hotbar_nr, slot : Rosegold::WindowSlot)
swap_hotbar(hotbar_nr, slot_number)
swap_hotbar
, to_s(io) to_s, total_slots : Int32 total_slots, update_all_slots(slots : Array(Rosegold::Slot), cursor : Rosegold::Slot, packet_state_id : UInt32) update_all_slots, update_slot(index : Int32, slot : Rosegold::Slot, packet_state_id : UInt32) update_slot

Constructor Detail

def self.new(client : Rosegold::Client) #

[View source]

Instance Method Detail

def [](index : Int32) : Rosegold::Slot #

Get slot by absolute index (following vanilla player inventory layout)


[View source]
def []=(index : Int32, slot : Rosegold::Slot) #

Set slot by absolute index


[View source]
def armor_slots : Array(Rosegold::Slot) #

Armor slots


[View source]
def boots : Rosegold::Slot #

[View source]
def chestplate : Rosegold::Slot #

[View source]
def close #

Close container (no-op for player inventory)


[View source]
def content_slots : Array(Rosegold::WindowSlot) #

[View source]
def crafting_result : Rosegold::Slot #

[View source]
def crafting_slots : Array(Rosegold::Slot) #

Crafting slots


[View source]
def handle_close #

Handle close (no-op for player inventory)


[View source]
def helmet : Rosegold::Slot #

[View source]
def hotbar_slot_index(hotbar_nr : Int32) : Int32 #

[View source]
def hotbar_slots : Array(Rosegold::WindowSlot) #
Description copied from module Rosegold::InventoryOperations

Player inventory delegation methods


[View source]
def id : UInt8 #

Fixed properties for player inventory menu


[View source]
def inventory_slots : Array(Rosegold::WindowSlot) #

[View source]
def leggings : Rosegold::Slot #

[View source]
def menu_id : UInt8 #

Abstract methods required by InventoryOperations


[View source]
def off_hand : Rosegold::Slot #

Off-hand slot


[View source]
def offhand : Array(Rosegold::WindowSlot) #

Player offhand slot for compatibility


[View source]
def offhand_slot_index : Int32 #

Abstract method implementations for InventoryOperations


[View source]
def player_inventory : PlayerInventory #

Direct access to persistent player inventory


[View source]
def player_inventory_slots : Array(Rosegold::Slot) #

Player inventory slots (all 36 slots for compatibility)


[View source]
def state_id : UInt32 #

[View source]
def state_id=(state_id : UInt32) #

[View source]
def title : Chat #

[View source]
def total_slots : Int32 #

[View source]
def type_id : UInt32 #

[View source]