All Out proporciona una API de inventario de jugador que te permite crear objetos, dárselos a los jugadores, y que los jugadores los organicen, usen y suelten en tu juego.
Hay tres conceptos principales:
Definiciones de objetos (Definición_de_objeto): lo que un objeto es (nombre/icono/apilamiento + tus propios campos)
Instancias de objetos (Instancia_de_objeto): una pila real en el mundo/en un inventario
Inventarios (Inventario): un contenedor de casillas que contiene instancias de objetos
Cada jugador tiene un inventario incorporado en player.default_inventory.
Persistencia
Si deseas que los inventarios de los jugadores se guarden automáticamente entre sesiones de juego, activa la casilla "Auto Guardar Inventario del Jugador" en Editar -> Configuración del Juego del editor
Referencia de la API de inventario
Inicio rápido (registrar + dar un objeto)
Registra definiciones de objetos una vez en ao_before_scene_load, luego crea instancias y muévelas al inventario de un jugador.
Inventarios personalizados
Puedes crear inventarios que no estén vinculados a un jugador, para cosas como:
Cofres / contenedores de almacenamiento
Equipos de peces/enemigos
Para acceder a objetos:
Objetos soltados
Si quieres que los jugadores suelten objetos en el mundo (y permitir que otros jugadores los recojan), usa el sistema de objetos soltados:
Generar un objeto soltado
Animación de caída + ajuste a la malla de navegación
Manejo de arrastrar-soltar desde la interfaz de barra rápida
Si usas Items.draw_hotbar, los jugadores pueden arrastrar un objeto fuera de la interfaz para soltarlo. Dropped_Item.handle_dropped_item lo elimina del inventario y genera una entidad de objeto soltado.
Los objetos soltados desaparecen automáticamente con el tiempo (con una barra de advertencia). Mantener presionado el botón de interactuar sobre un objeto reinicia su temporizador de desaparición.
Puedes hacer que un objeto soltado sea exclusivo (solo visible/recogible por un jugador) usando dropped->set_exclusive(player).