aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java
blob: c616204964ede9d2801cc0220f55ba8ff512f497 (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
package de.hysky.skyblocker.utils.container;

import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.utils.Resettable;
import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
import net.minecraft.item.ItemStack;

import java.util.List;

public interface ContainerSolver extends ContainerMatcher, Resettable {
	List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots);

	default void start(GenericContainerScreen screen) {}

	@Override
	default void reset() {}

	default boolean onClickSlot(int slot, ItemStack stack, int screenId) {
		return false;
	}

	static void markHighlightsDirty() {
		SkyblockerMod.getInstance().containerSolverManager.markDirty();
	}

	static void trimEdges(Int2ObjectMap<ItemStack> slots, int rows) {
		for (int i = 0; i < rows; i++) {
			slots.remove(9 * i);
			slots.remove(9 * i + 8);
		}
		for (int i = 1; i < 8; i++) {
			slots.remove(i);
			slots.remove((rows - 1) * 9 + i);
		}
	}
}