Skip to content

Commit 4ddae69

Browse files
authored
Added Jade provider for Data Bank (#3930)
1 parent 684866d commit 4ddae69

7 files changed

Lines changed: 106 additions & 0 deletions

File tree

src/generated/resources/assets/gtceu/lang/en_ud.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1906,6 +1906,7 @@
19061906
"config.jade.plugin_gtceu.auto_output_info": "oɟuI ʇndʇnO oʇnⱯ ]nƎƆ⟘⅁[",
19071907
"config.jade.plugin_gtceu.cable_info": "oɟuI ǝןqɐƆ ]nƎƆ⟘⅁[",
19081908
"config.jade.plugin_gtceu.controllable_provider": "ǝןqɐןןoɹʇuoƆ ]nƎƆ⟘⅁[",
1909+
"config.jade.plugin_gtceu.data_bank": "oɟuI ʞuɐᗺ ɐʇɐᗡ ]nƎƆ⟘⅁[",
19091910
"config.jade.plugin_gtceu.electric_container_provider": "ɹǝuıɐʇuoƆ ɔıɹʇɔǝןƎ ]nƎƆ⟘⅁[",
19101911
"config.jade.plugin_gtceu.energy_converter_provider": "ǝpoW ɹǝʇɹǝʌuoƆ ʎbɹǝuƎ ]nƎƆ⟘⅁[",
19111912
"config.jade.plugin_gtceu.exhaust_vent_info": "oɟuI ʇuǝΛ ʇsnɐɥxƎ ]nƎƆ⟘⅁[",

src/generated/resources/assets/gtceu/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1906,6 +1906,7 @@
19061906
"config.jade.plugin_gtceu.auto_output_info": "[GTCEu] Auto Output Info",
19071907
"config.jade.plugin_gtceu.cable_info": "[GTCEu] Cable Info",
19081908
"config.jade.plugin_gtceu.controllable_provider": "[GTCEu] Controllable",
1909+
"config.jade.plugin_gtceu.data_bank": "[GTCEu] Data Bank Info",
19091910
"config.jade.plugin_gtceu.electric_container_provider": "[GTCEu] Electric Container",
19101911
"config.jade.plugin_gtceu.energy_converter_provider": "[GTCEu] Energy Converter Mode",
19111912
"config.jade.plugin_gtceu.exhaust_vent_info": "[GTCEu] Exhaust Vent Info",

src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ public static void init(RegistrateLangProvider provider) {
12181218
provider.add("config.jade.plugin_gtceu.multiblock_structure", "[GTCEu] MultiBlock Structure");
12191219
provider.add("config.jade.plugin_gtceu.parallel_info", "[GTCEu] Parallel Info");
12201220
provider.add("config.jade.plugin_gtceu.primitive_pump", "[GTCEu] Primitive Pump Info");
1221+
provider.add("config.jade.plugin_gtceu.data_bank", "[GTCEu] Data Bank Info");
12211222
provider.add("config.jade.plugin_gtceu.transformer", "[GTCEu] Transformer Info");
12221223
provider.add("config.jade.plugin_gtceu.stained_color", "[GTCEu] Stained Block Info");
12231224
provider.add("config.jade.plugin_gtceu.me_pattern_buffer", "[GTCEu] Pattern Buffer Info");

src/main/java/com/gregtechceu/gtceu/integration/jade/GTJadePlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public void register(IWailaCommonRegistration registration) {
4242
registration.registerBlockDataProvider(new HazardCleanerBlockProvider(), BlockEntity.class);
4343
registration.registerBlockDataProvider(new TransformerBlockProvider(), BlockEntity.class);
4444
registration.registerBlockDataProvider(new PrimitivePumpBlockProvider(), BlockEntity.class);
45+
registration.registerBlockDataProvider(new DataBankBlockProvider(), BlockEntity.class);
4546
registration.registerBlockDataProvider(new EnergyConverterModeProvider(), BlockEntity.class);
4647
if (GTCEu.Mods.isAE2Loaded()) {
4748
registration.registerBlockDataProvider(new MEPatternBufferProvider(), BlockEntity.class);
@@ -72,6 +73,7 @@ public void registerClient(IWailaClientRegistration registration) {
7273
registration.registerBlockComponent(new HazardCleanerBlockProvider(), Block.class);
7374
registration.registerBlockComponent(new TransformerBlockProvider(), Block.class);
7475
registration.registerBlockComponent(new PrimitivePumpBlockProvider(), Block.class);
76+
registration.registerBlockComponent(new DataBankBlockProvider(), Block.class);
7577
registration.registerBlockComponent(new EnergyConverterModeProvider(), Block.class);
7678
if (GTCEu.Mods.isAE2Loaded()) {
7779
registration.registerBlockComponent(new MEPatternBufferProvider(), Block.class);
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.gregtechceu.gtceu.integration.jade.provider;
2+
3+
import com.gregtechceu.gtceu.GTCEu;
4+
import com.gregtechceu.gtceu.api.GTValues;
5+
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
6+
import com.gregtechceu.gtceu.api.machine.MetaMachine;
7+
import com.gregtechceu.gtceu.common.machine.multiblock.electric.research.DataBankMachine;
8+
import com.gregtechceu.gtceu.utils.FormattingUtil;
9+
import com.gregtechceu.gtceu.utils.GTUtil;
10+
11+
import net.minecraft.nbt.CompoundTag;
12+
import net.minecraft.network.chat.Component;
13+
import net.minecraft.resources.ResourceLocation;
14+
15+
import snownee.jade.api.BlockAccessor;
16+
import snownee.jade.api.IBlockComponentProvider;
17+
import snownee.jade.api.IServerDataProvider;
18+
import snownee.jade.api.ITooltip;
19+
import snownee.jade.api.config.IPluginConfig;
20+
21+
public class DataBankBlockProvider implements IBlockComponentProvider, IServerDataProvider<BlockAccessor> {
22+
23+
@Override
24+
public ResourceLocation getUid() {
25+
return GTCEu.id("data_bank");
26+
}
27+
28+
@Override
29+
public void appendTooltip(ITooltip iTooltip, BlockAccessor blockAccessor, IPluginConfig iPluginConfig) {
30+
if (blockAccessor.getBlockEntity() instanceof IMachineBlockEntity blockEntity) {
31+
MetaMachine machine = blockEntity.getMetaMachine();
32+
if (machine instanceof DataBankMachine) {
33+
long energyUsage = blockAccessor.getServerData().getLong("energyUsage");
34+
String energyFormatted = FormattingUtil.formatNumbers(energyUsage);
35+
// wrap in text component to keep it from being formatted
36+
Component voltageName = Component.literal(GTValues.VNF[GTUtil.getTierByVoltage(energyUsage)]);
37+
Component text = Component.translatable(
38+
"gtceu.multiblock.energy_consumption",
39+
energyFormatted,
40+
voltageName);
41+
42+
iTooltip.add(text);
43+
}
44+
}
45+
}
46+
47+
@Override
48+
public void appendServerData(CompoundTag compoundTag, BlockAccessor blockAccessor) {
49+
if (blockAccessor.getBlockEntity() instanceof IMachineBlockEntity blockEntity) {
50+
MetaMachine machine = blockEntity.getMetaMachine();
51+
if (machine instanceof DataBankMachine dataBank) {
52+
compoundTag.putLong("energyUsage", dataBank.getEnergyUsage());
53+
}
54+
}
55+
}
56+
}

src/main/java/com/gregtechceu/gtceu/integration/top/TheOneProbePlugin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public ResourceLocation getId() {
5555
oneProbe.registerProvider(new MachineModeProvider());
5656
oneProbe.registerProvider(new StainedColorProvider());
5757
oneProbe.registerProvider(new PrimitivePumpProvider());
58+
oneProbe.registerProvider(new DataBankInfoProvider());
5859
oneProbe.registerProvider(new CoverProvider());
5960
oneProbe.registerProvider(new HazardCleanerInfoProvider());
6061
oneProbe.registerProvider(new TransformerInfoProvider());
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.gregtechceu.gtceu.integration.top.provider;
2+
3+
import com.gregtechceu.gtceu.GTCEu;
4+
import com.gregtechceu.gtceu.api.GTValues;
5+
import com.gregtechceu.gtceu.api.machine.MetaMachine;
6+
import com.gregtechceu.gtceu.common.machine.multiblock.electric.research.DataBankMachine;
7+
import com.gregtechceu.gtceu.utils.FormattingUtil;
8+
import com.gregtechceu.gtceu.utils.GTUtil;
9+
10+
import net.minecraft.network.chat.Component;
11+
import net.minecraft.resources.ResourceLocation;
12+
import net.minecraft.world.entity.player.Player;
13+
import net.minecraft.world.level.Level;
14+
import net.minecraft.world.level.block.state.BlockState;
15+
16+
import mcjty.theoneprobe.api.IProbeHitData;
17+
import mcjty.theoneprobe.api.IProbeInfo;
18+
import mcjty.theoneprobe.api.IProbeInfoProvider;
19+
import mcjty.theoneprobe.api.ProbeMode;
20+
21+
public class DataBankInfoProvider implements IProbeInfoProvider {
22+
23+
@Override
24+
public ResourceLocation getID() {
25+
return GTCEu.id("data_bank_provider");
26+
}
27+
28+
@Override
29+
public void addProbeInfo(ProbeMode probeMode, IProbeInfo iProbeInfo, Player player, Level level,
30+
BlockState blockState, IProbeHitData iProbeHitData) {
31+
if (MetaMachine.getMachine(level, iProbeHitData.getPos()) instanceof DataBankMachine dataBank) {
32+
IProbeInfo verticalPane = iProbeInfo.vertical(iProbeInfo.defaultLayoutStyle().spacing(0));
33+
int energyUsage = dataBank.getEnergyUsage();
34+
String energyFormatted = FormattingUtil.formatNumbers(energyUsage);
35+
// wrap in text component to keep it from being formatted
36+
Component voltageName = Component.literal(GTValues.VNF[GTUtil.getTierByVoltage(energyUsage)]);
37+
Component text = Component.translatable(
38+
"gtceu.multiblock.energy_consumption",
39+
energyFormatted,
40+
voltageName);
41+
verticalPane.text(text);
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)