forked from SlimeKnights/TinkersConstruct
-
Notifications
You must be signed in to change notification settings - Fork 85
Expand file tree
/
Copy pathSearedBlockProgressProvider.java
More file actions
55 lines (46 loc) · 2.07 KB
/
SearedBlockProgressProvider.java
File metadata and controls
55 lines (46 loc) · 2.07 KB
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
package tconstruct.plugins.wdmla;
import java.util.Arrays;
import java.util.List;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import com.gtnewhorizons.wdmla.api.accessor.Accessor;
import com.gtnewhorizons.wdmla.api.provider.IClientExtensionProvider;
import com.gtnewhorizons.wdmla.api.provider.IServerExtensionProvider;
import com.gtnewhorizons.wdmla.api.view.ClientViewGroup;
import com.gtnewhorizons.wdmla.api.view.ProgressView;
import com.gtnewhorizons.wdmla.api.view.ViewGroup;
import com.gtnewhorizons.wdmla.impl.ui.ThemeHelper;
import com.gtnewhorizons.wdmla.util.FormatUtil;
import tconstruct.smeltery.logic.CastingBlockLogic;
public enum SearedBlockProgressProvider implements IServerExtensionProvider<ProgressView.Data>,
IClientExtensionProvider<ProgressView.Data, ProgressView> {
INSTANCE;
@Override
public ResourceLocation getUid() {
return TinkerWDMla.TiC("seared_blocks");
}
@Override
public List<ClientViewGroup<ProgressView>> getClientGroups(Accessor accessor,
List<ViewGroup<ProgressView.Data>> groups) {
return ClientViewGroup.map(groups, ProgressView::read, (group, clientGroup) -> {
ProgressView view = clientGroup.views.get(0);
view.description = ThemeHelper.INSTANCE.value(
StatCollector.translateToLocal("hud.msg.wdmla.progress"),
FormatUtil.PERCENTAGE_STANDARD.format((float) view.progress / 100));
view.hasScale = true;
});
}
@Override
public List<ViewGroup<ProgressView.Data>> getGroups(Accessor accessor) {
if (accessor.getTarget() instanceof CastingBlockLogic castingBlockLogic) {
int progress = castingBlockLogic.getProgress();
if (progress == 0) {
return null;
}
ProgressView.Data progressData = new ProgressView.Data(progress, 100);
ViewGroup<ProgressView.Data> group = new ViewGroup<>(Arrays.asList(progressData));
return Arrays.asList(group);
}
return null;
}
}