File size: 1,750 Bytes
d46f4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package net.minecraft.world.ticks;

import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;

public interface ContainerSingleItem extends Container {
    ItemStack getTheItem();

    default ItemStack splitTheItem(int p_312245_) {
        return this.getTheItem().split(p_312245_);
    }

    void setTheItem(ItemStack p_310917_);

    default ItemStack removeTheItem() {
        return this.splitTheItem(this.getMaxStackSize());
    }

    @Override
    default int getContainerSize() {
        return 1;
    }

    @Override
    default boolean isEmpty() {
        return this.getTheItem().isEmpty();
    }

    @Override
    default void clearContent() {
        this.removeTheItem();
    }

    @Override
    default ItemStack removeItemNoUpdate(int p_273409_) {
        return this.removeItem(p_273409_, this.getMaxStackSize());
    }

    @Override
    default ItemStack getItem(int p_309780_) {
        return p_309780_ == 0 ? this.getTheItem() : ItemStack.EMPTY;
    }

    @Override
    default ItemStack removeItem(int p_313221_, int p_309913_) {
        return p_313221_ != 0 ? ItemStack.EMPTY : this.splitTheItem(p_309913_);
    }

    @Override
    default void setItem(int p_312121_, ItemStack p_312812_) {
        if (p_312121_ == 0) {
            this.setTheItem(p_312812_);
        }
    }

    public interface BlockContainerSingleItem extends ContainerSingleItem {
        BlockEntity getContainerBlockEntity();

        @Override
        default boolean stillValid(Player p_335018_) {
            return Container.stillValidBlockEntity(this.getContainerBlockEntity(), p_335018_);
        }
    }
}