User Tools

Site Tools


tutorial:inventory

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
tutorial:inventory [2020/07/16 23:54] – update activate references to onUse user11681tutorial:inventory [2020/07/20 13:48] – update ImplementedInventory with new bindings zentrale
Line 17: Line 17:
  */  */
 public interface ImplementedInventory extends Inventory { public interface ImplementedInventory extends Inventory {
 +
     /**     /**
-     Gets the item list of this inventory.+     Retrieves the item list of this inventory.
      * Must return the same instance every time it's called.      * Must return the same instance every time it's called.
      */      */
     DefaultedList<ItemStack> getItems();     DefaultedList<ItemStack> getItems();
-    // Creation+    
     /**     /**
      * Creates an inventory from the item list.      * Creates an inventory from the item list.
Line 29: Line 30:
         return () -> items;         return () -> items;
     }     }
 +    
     /**     /**
-     * Creates a new inventory with the size.+     * Creates a new inventory with the specified size.
      */      */
     static ImplementedInventory ofSize(int size) {     static ImplementedInventory ofSize(int size) {
         return of(DefaultedList.ofSize(size, ItemStack.EMPTY));         return of(DefaultedList.ofSize(size, ItemStack.EMPTY));
     }     }
-    // Inventory+    
     /**     /**
      * Returns the inventory size.      * Returns the inventory size.
      */      */
     @Override     @Override
-    default int getInvSize() {+    default int size() {
         return getItems().size();         return getItems().size();
     }     }
 +    
     /**     /**
-     * @return true if this inventory has only empty stacks, false otherwise+     * Checks if the inventory is empty. 
 +     * @return true if this inventory has only empty stacks, false otherwise.
      */      */
     @Override     @Override
-    default boolean isInvEmpty() { +    default boolean isEmpty() { 
-        for (int i = 0; i < getInvSize(); i++) { +        for (int i = 0; i < size(); i++) { 
-            ItemStack stack = getInvStack(i);+            ItemStack stack = getStack(i);
             if (!stack.isEmpty()) {             if (!stack.isEmpty()) {
                 return false;                 return false;
Line 56: Line 60:
         return true;         return true;
     }     }
 +    
     /**     /**
-     Gets the item in the slot.+     Retrieves the item in the slot.
      */      */
     @Override     @Override
-    default ItemStack getInvStack(int slot) {+    default ItemStack getStack(int slot) {
         return getItems().get(slot);         return getItems().get(slot);
     }     }
 +    
     /**     /**
-     Takes a stack of the size from the slot. +     Removes items from an inventory slot. 
-     <p>(default implementation) If there are less items in the slot than what are requested, +     @param slot  The slot to remove from. 
-     * takes all items in that slot.+     * @param count How many items to remove. If there are less items in the slot than what are requested, 
 +                  takes all items in that slot.
      */      */
     @Override     @Override
-    default ItemStack takeInvStack(int slot, int count) {+    default ItemStack removeStack(int slot, int count) {
         ItemStack result = Inventories.splitStack(getItems(), slot, count);         ItemStack result = Inventories.splitStack(getItems(), slot, count);
         if (!result.isEmpty()) {         if (!result.isEmpty()) {
Line 76: Line 83:
         return result;         return result;
     }     }
 +    
     /**     /**
-     * Removes the current stack in the {@code slot} and returns it.+     * Removes all items from an inventory slot. 
 +     @param slot The slot to remove from.
      */      */
     @Override     @Override
-    default ItemStack removeInvStack(int slot) {+    default ItemStack removeStack(int slot) {
         return Inventories.removeStack(getItems(), slot);         return Inventories.removeStack(getItems(), slot);
     }     }
 +    
     /**     /**
-     * Replaces the current stack in the {@code slotwith the provided stack. +     * Replaces the current stack in an inventory slot with the provided stack. 
-     <p>If the stack is too big for this inventory ({@link Inventory#getInvMaxStackAmount()}), +     @param slot  The inventory slot of which to replace the itemstack. 
-     * it gets resized to this inventory's maximum amount.+     * @param stack The replacing itemstack. If the stack is too big for 
 +                  this inventory ({@link Inventory#getMaxCountPerStack()}), 
 +                  it gets resized to this inventory's maximum amount.
      */      */
     @Override     @Override
-    default void setInvStack(int slot, ItemStack stack) {+    default void setStack(int slot, ItemStack stack) {
         getItems().set(slot, stack);         getItems().set(slot, stack);
-        if (stack.getCount() > getInvMaxStackAmount()) { +        if (stack.getCount() > getMaxCountPerStack()) { 
-            stack.setCount(getInvMaxStackAmount());+            stack.setCount(getMaxCountPerStack());
         }         }
     }     }
 +    
     /**     /**
-     * Clears {@linkplain #getItems() the item list}}.+     * Clears the inventory.
      */      */
     @Override     @Override
Line 102: Line 115:
         getItems().clear();         getItems().clear();
     }     }
 +    
 +    /**
 +     * Marks the state as dirty.
 +     * Must be called after changes in the inventory, so that the game can properly save
 +     * the inventory contents and notify neighboring blocks of inventory changes.
 +     */ 
     @Override     @Override
     default void markDirty() {     default void markDirty() {
         // Override if you want behavior.         // Override if you want behavior.
     }     }
 +    
 +    /**
 +     * @return true if the player can use the inventory, false otherwise.
 +     */ 
     @Override     @Override
     default boolean canPlayerUseInv(PlayerEntity player) {     default boolean canPlayerUseInv(PlayerEntity player) {
tutorial/inventory.txt · Last modified: 2023/11/06 23:28 by binaris00