Inventory Events
Eventy související s inventářem - crafting, pickup, drop.
---
LivingEntityInventoryChangeEvent
Vyvolán při změně inventáře živé entity (hráč, mob).
Typ: Synchronní
Registrace: register() / registerGlobal()
Cancellable: Ne
getEventRegistry().register(LivingEntityInventoryChangeEvent.class, event -> {
// Inventář byl změněn
getLogger().atInfo().log("Inventář změněn");
});
---
CraftRecipeEvent
Vyvolán když hráč craftí recept.
Typ: Synchronní
Registrace: register() / registerGlobal()
Cancellable: Ano
getEventRegistry().register(CraftRecipeEvent.class, event -> {
// Hráč craftí položku // Zrušení craftingu
// event.cancel();
});
---
InteractivelyPickupItemEvent
Vyvolán když hráč interaktivně sebere položku.
Typ: Synchronní
Registrace: register() / registerGlobal()
Cancellable: Ano
getEventRegistry().register(InteractivelyPickupItemEvent.class, event -> {
// Hráč sebral položku // Zrušení sebrání
// event.cancel();
});
---
DropItemEvent
Vyvolán když hráč zahodí položku.
Typ: Synchronní
Registrace: register() / registerGlobal()
Cancellable: Ano
getEventRegistry().register(DropItemEvent.class, event -> {
// Hráč zahodil položku // Zrušení zahození
// event.cancel();
});
---
Shrnutí Inventory Eventů
| Event | Cancellable | Popis |
|-------|-------------|-------|
| LivingEntityInventoryChangeEvent | Ne | Změna inventáře |
| CraftRecipeEvent | Ano | Crafting receptu |
| InteractivelyPickupItemEvent | Ano | Sebrání položky |
| DropItemEvent | Ano | Zahození položky |
---
Práce s Inventory
Container komponenta
Z dekompilovaného kódu - Container je komponenta pro inventáře:
// V ECS kontextu
Ref ref = player.getRef();
Store store = ref.getStore();// Container může být na různých entitách (hráč, truhla, atd.)
Container container = store.getComponent(ref, Container.getComponentType());
Poznámky z komunity
> "Each item container is associated to an 'entity' in our ECS and they have entity ids... You can register a new component on those container entities" - Slikey
Kontejnery (truhly, inventáře) jsou v Hytale reprezentovány jako ECS entity s komponentami.