blob: 47b8f4beb7f1e237d36373251e00d6d8113e56b5 (
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
60
|
/*
* Roughly Enough Items by Danielshe.
* Licensed under the MIT License.
*/
package me.shedaniel.rei.api;
import me.shedaniel.rei.gui.renderables.EmptyRenderer;
import me.shedaniel.rei.gui.renderables.ItemStackRenderer;
import me.shedaniel.rei.gui.renderables.SimpleRecipeRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
import java.util.List;
import java.util.function.Supplier;
/**
* The base class for renderables
*/
public interface Renderable {
static ItemStackRenderer fromItemStackSupplier(Supplier<ItemStack> supplier) {
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
return supplier.get();
}
};
}
static ItemStackRenderer fromItemStack(ItemStack stack) {
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
return stack;
}
};
}
static EmptyRenderer empty() {
return EmptyRenderer.INSTANCE;
}
static SimpleRecipeRenderer fromRecipe(Supplier<List<List<ItemStack>>> input, Supplier<List<ItemStack>> output) {
return new SimpleRecipeRenderer(input, output);
}
static ItemStackRenderer fromItemStacks(List<ItemStack> stacks) {
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
if (stacks.isEmpty())
return ItemStack.EMPTY;
return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f));
}
};
}
void render(int x, int y, double mouseX, double mouseY, float delta);
}
|