forked from desht/ModularRouters
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDistributorModule.java
71 lines (59 loc) · 2.6 KB
/
DistributorModule.java
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
67
68
69
70
71
package me.desht.modularrouters.item.module;
import com.google.common.collect.ImmutableList;
import me.desht.modularrouters.client.util.ClientUtil;
import me.desht.modularrouters.client.util.TintColor;
import me.desht.modularrouters.config.ConfigHolder;
import me.desht.modularrouters.container.ModuleMenu;
import me.desht.modularrouters.core.ModDataComponents;
import me.desht.modularrouters.core.ModItems;
import me.desht.modularrouters.core.ModMenuTypes;
import me.desht.modularrouters.logic.ModuleTarget;
import me.desht.modularrouters.logic.compiled.CompiledDistributorModule;
import me.desht.modularrouters.logic.compiled.CompiledDistributorModule.DistributorSettings;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.ItemStack;
import javax.annotation.Nonnull;
import java.util.List;
public class DistributorModule extends SenderModule2 {
private static final TintColor TINT_COLOR = new TintColor(240, 240, 60);
public DistributorModule() {
super(ModItems.moduleProps()
.component(ModDataComponents.DISTRIBUTOR_SETTINGS, DistributorSettings.DEFAULT),
CompiledDistributorModule::new);
}
@Override
public void addSettingsInformation(ItemStack stack, List<Component> list) {
super.addSettingsInformation(stack, list);
DistributorSettings settings = stack.getOrDefault(ModDataComponents.DISTRIBUTOR_SETTINGS, DistributorSettings.DEFAULT);
list.add(ClientUtil.xlate("modularrouters.guiText.tooltip.distributor.strategy").withStyle(ChatFormatting.YELLOW)
.append(": ").withStyle(ChatFormatting.YELLOW)
.append(ClientUtil.xlate(settings.strategy().getTranslationKey())).withStyle(ChatFormatting.AQUA));
list.add(ClientUtil.xlate(settings.direction().getTranslationKey()).withStyle(ChatFormatting.YELLOW));
}
@Override
public MenuType<? extends ModuleMenu> getMenuType() {
return ModMenuTypes.DISTRIBUTOR_MENU.get();
}
@Override
public List<ModuleTarget> getStoredPositions(@Nonnull ItemStack stack) {
return ImmutableList.copyOf(ITargetedModule.getTargets(stack, false));
}
@Override
public TintColor getItemTint() {
return TINT_COLOR;
}
@Override
public int getMaxTargets() {
return 8;
}
@Override
public int getRenderColor(int index) {
return 0x80B0FF90;
}
@Override
public int getEnergyCost(ItemStack stack) {
return ConfigHolder.common.energyCosts.distributorModuleEnergyCost.get();
}
}