aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java
blob: a37c47ecaf3cdd49b9e02ca6f162227024db4b8d (plain)
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
/*
 * Roughly Enough Items by Danielshe.
 * Licensed under the MIT License.
 */

package me.shedaniel.rei.plugin.containers;

import me.shedaniel.rei.server.ContainerInfo;
import me.shedaniel.rei.server.RecipeFinder;
import net.minecraft.container.Container;
import net.minecraft.container.CraftingContainer;
import net.minecraft.item.ItemStack;

public class CraftingContainerInfoWrapper<T extends CraftingContainer<?>> implements ContainerInfo<T> {
    private Class<? extends CraftingContainer<?>> containerClass;
    
    public CraftingContainerInfoWrapper(Class<T> containerClass) {
        this.containerClass = containerClass;
    }
    
    public static <R extends CraftingContainer<?>> ContainerInfo<R> create(Class<R> containerClass) {
        return new CraftingContainerInfoWrapper<>(containerClass);
    }
    
    @Override
    public Class<? extends Container> getContainerClass() {
        return containerClass;
    }
    
    @Override
    public int getCraftingResultSlotIndex(T container) {
        return container.getCraftingResultSlotIndex();
    }
    
    @Override
    public int getCraftingWidth(T container) {
        return container.getCraftingWidth();
    }
    
    @Override
    public int getCraftingHeight(T container) {
        return container.getCraftingHeight();
    }
    
    @Override
    public void clearCraftingSlots(T container) {
        container.clearCraftingSlots();
    }
    
    @Override
    public void populateRecipeFinder(T container, RecipeFinder var1) {
        container.populateRecipeFinder(new net.minecraft.recipe.RecipeFinder() {
            @Override
            public void addNormalItem(ItemStack itemStack_1) {
                var1.addNormalItem(itemStack_1);
            }
        });
    }
}