Skip to content

Commit 27a391f

Browse files
Make energy placeholder work with substations (#3964)
1 parent 6c6131c commit 27a391f

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/main/java/com/gregtechceu/gtceu/common/data/GTPlaceholders.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
import com.gregtechceu.gtceu.api.GTValues;
44
import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper;
55
import com.gregtechceu.gtceu.api.capability.IEnergyContainer;
6+
import com.gregtechceu.gtceu.api.capability.IEnergyInfoProvider;
67
import com.gregtechceu.gtceu.api.capability.IWorkable;
78
import com.gregtechceu.gtceu.api.cover.filter.ItemFilter;
89
import com.gregtechceu.gtceu.api.item.ComponentItem;
910
import com.gregtechceu.gtceu.api.item.component.IDataItem;
1011
import com.gregtechceu.gtceu.api.item.component.IItemComponent;
12+
import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity;
1113
import com.gregtechceu.gtceu.api.machine.MetaMachine;
1214
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMaintenanceMachine;
1315
import com.gregtechceu.gtceu.api.misc.virtualregistry.EntryTypes;
@@ -88,6 +90,11 @@ public static void initPlaceholders() {
8890
public MultiLineComponent apply(PlaceholderContext ctx,
8991
List<MultiLineComponent> args) throws PlaceholderException {
9092
PlaceholderUtils.checkArgs(args, 0);
93+
if (ctx.level().getBlockEntity(ctx.pos()) instanceof IMachineBlockEntity machineBE) {
94+
if (machineBE.getMetaMachine() instanceof IEnergyInfoProvider energyInfoProvider) {
95+
return MultiLineComponent.literal(energyInfoProvider.getEnergyInfo().stored().longValue());
96+
}
97+
}
9198
IEnergyContainer energy = GTCapabilityHelper.getEnergyContainer(ctx.level(), ctx.pos(), ctx.side());
9299
return MultiLineComponent.literal(energy != null ? energy.getEnergyStored() : 0);
93100
}
@@ -98,6 +105,11 @@ public MultiLineComponent apply(PlaceholderContext ctx,
98105
public MultiLineComponent apply(PlaceholderContext ctx,
99106
List<MultiLineComponent> args) throws PlaceholderException {
100107
PlaceholderUtils.checkArgs(args, 0);
108+
if (ctx.level().getBlockEntity(ctx.pos()) instanceof IMachineBlockEntity machineBE) {
109+
if (machineBE.getMetaMachine() instanceof IEnergyInfoProvider energyInfoProvider) {
110+
return MultiLineComponent.literal(energyInfoProvider.getEnergyInfo().capacity().longValue());
111+
}
112+
}
101113
IEnergyContainer energy = GTCapabilityHelper.getEnergyContainer(ctx.level(), ctx.pos(), ctx.side());
102114
return MultiLineComponent.literal(energy != null ? energy.getEnergyCapacity() : 0);
103115
}

0 commit comments

Comments
 (0)