Skip to content

Commit 0140314

Browse files
committed
[add] TOP Integration
1 parent 2f8d893 commit 0140314

5 files changed

Lines changed: 138 additions & 2 deletions

File tree

src/main/java/com/github/gtexpert/gtbm/integration/gendustry/metatileentities/multiblock/MetaTileEntityMegaApiary.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ public void update() {
302302
consumeEnergy(getCurrentConsumption());
303303
}
304304

305+
// ==Setter==
305306
private void setConsumption() {
306307
long base = GTValues.V[GTValues.LuV];
307308
this.consumption = base * this.inputSize;
@@ -320,6 +321,7 @@ private void resetConsumption() {
320321
energyCalculationStacks.clear();
321322
}
322323

324+
// ==Getter==
323325
public long getMaxVoltage() {
324326
long highestVoltage = energyContainer.getHighestInputVoltage();
325327
if (energyContainer.getNumHighestInputContainers() > 7) {
@@ -333,14 +335,26 @@ public long getMaxVoltage() {
333335
}
334336
}
335337

336-
private int getMaxTier() {
338+
public int getMaxTier() {
337339
return GTUtility.getTierByVoltage(getMaxVoltage());
338340
}
339341

340-
private long getCurrentConsumption() {
342+
public long getCurrentConsumption() {
341343
return this.consumption;
342344
}
343345

346+
public int getProgressTicks() {
347+
return this.progressTicks;
348+
}
349+
350+
public List<ItemStack> getProductList() {
351+
return this.merged;
352+
}
353+
354+
public int getQueenAmount() {
355+
return queenStacks.size();
356+
}
357+
344358
// ==Process==
345359
@SuppressWarnings("ResultIsAlwaysInverted")
346360
private boolean canWork() {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.github.gtexpert.gtbm.integration.top;
2+
3+
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
4+
5+
import com.github.gtexpert.gtbm.api.ModValues;
6+
import com.github.gtexpert.gtbm.api.modules.TModule;
7+
import com.github.gtexpert.gtbm.api.util.Mods;
8+
import com.github.gtexpert.gtbm.integration.GTBMIntegrationSubmodule;
9+
import com.github.gtexpert.gtbm.integration.top.provider.MegaApiaryProvider;
10+
import com.github.gtexpert.gtbm.module.Modules;
11+
12+
import mcjty.theoneprobe.TheOneProbe;
13+
import mcjty.theoneprobe.api.ITheOneProbe;
14+
15+
@TModule(
16+
moduleID = Modules.MODULE_TOP,
17+
containerID = ModValues.MODID,
18+
modDependencies = { Mods.Names.THE_ONE_PROBE },
19+
name = "GTBeesMatrix The One Probe Integration",
20+
description = "The One Probe Integration Module")
21+
public class TOPModule extends GTBMIntegrationSubmodule {
22+
23+
@Override
24+
public void init(FMLInitializationEvent event) {
25+
ITheOneProbe oneProbe = TheOneProbe.theOneProbeImp;
26+
if (Mods.Gendustry.isModLoaded()) {
27+
oneProbe.registerProvider(new MegaApiaryProvider());
28+
}
29+
}
30+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.github.gtexpert.gtbm.integration.top.provider;
2+
3+
import net.minecraft.block.state.IBlockState;
4+
import net.minecraft.entity.player.EntityPlayer;
5+
import net.minecraft.item.ItemStack;
6+
import net.minecraft.tileentity.TileEntity;
7+
import net.minecraft.util.text.TextFormatting;
8+
import net.minecraft.world.World;
9+
10+
import gregtech.api.GTValues;
11+
import gregtech.api.metatileentity.MetaTileEntity;
12+
import gregtech.api.metatileentity.interfaces.IGregTechTileEntity;
13+
import gregtech.api.util.GTUtility;
14+
import gregtech.api.util.TextFormattingUtil;
15+
16+
import com.github.gtexpert.gtbm.api.ModValues;
17+
import com.github.gtexpert.gtbm.integration.gendustry.metatileentities.multiblock.MetaTileEntityMegaApiary;
18+
19+
import mcjty.theoneprobe.api.IProbeHitData;
20+
import mcjty.theoneprobe.api.IProbeInfo;
21+
import mcjty.theoneprobe.api.IProbeInfoProvider;
22+
import mcjty.theoneprobe.api.NumberFormat;
23+
import mcjty.theoneprobe.api.ProbeMode;
24+
import mcjty.theoneprobe.api.TextStyleClass;
25+
26+
public class MegaApiaryProvider implements IProbeInfoProvider {
27+
28+
@Override
29+
public String getID() {
30+
return ModValues.MODID + ":mega_apiary";
31+
}
32+
33+
@Override
34+
public void addProbeInfo(ProbeMode probeMode, IProbeInfo probeInfo, EntityPlayer entityPlayer, World world,
35+
IBlockState state, IProbeHitData data) {
36+
if (state.getBlock().hasTileEntity(state)) {
37+
TileEntity tileEntity = world.getTileEntity(data.getPos());
38+
if (tileEntity instanceof IGregTechTileEntity) {
39+
MetaTileEntity metaTileEntity = ((IGregTechTileEntity) tileEntity).getMetaTileEntity();
40+
if (metaTileEntity instanceof MetaTileEntityMegaApiary &&
41+
((MetaTileEntityMegaApiary) metaTileEntity).isStructureFormed()) {
42+
// Progress Bar
43+
int currentProgress = ((MetaTileEntityMegaApiary) metaTileEntity).getProgressTicks();
44+
int maxProgress = 100;
45+
String text = null;
46+
if (metaTileEntity.isActive()) {
47+
currentProgress = Math.round(currentProgress / 20.0F);
48+
maxProgress = Math.round(maxProgress / 20.0F);
49+
text = " / " + TextFormattingUtil.formatNumbers(maxProgress) + " s";
50+
}
51+
if (maxProgress > 0) {
52+
int color = ((MetaTileEntityMegaApiary) metaTileEntity).isWorkingEnabled() ? 0xFF4CBB17 :
53+
0xFFBB1C28;
54+
probeInfo.progress(currentProgress, maxProgress, probeInfo.defaultProgressStyle()
55+
.suffix(text)
56+
.filledColor(color)
57+
.alternateFilledColor(color)
58+
.borderColor(0xFF555555).numberFormat(NumberFormat.COMMAS));
59+
}
60+
// Energy
61+
long EUt = ((MetaTileEntityMegaApiary) metaTileEntity).getCurrentConsumption();
62+
text = TextFormatting.RED + TextFormattingUtil.formatNumbers(EUt) + TextStyleClass.INFO +
63+
" EU/t" + TextFormatting.GREEN +
64+
" (" + GTValues.VNF[GTUtility.getTierByVoltage(EUt)] + TextFormatting.GREEN + ")";
65+
probeInfo.text(TextStyleClass.INFO + "{*gregtech.top.energy_consumption*} " + text);
66+
67+
// Queen
68+
int queenAmount = ((MetaTileEntityMegaApiary) metaTileEntity).getQueenAmount();
69+
if (queenAmount > 0) {
70+
probeInfo.text(TextStyleClass.INFO + "{*gtbm.top.mega_apiary.queen*} " + queenAmount);
71+
}
72+
// Product
73+
if (!entityPlayer.isSneaking()) {
74+
for (ItemStack stack : ((MetaTileEntityMegaApiary) metaTileEntity).getProductList()) {
75+
String displayName = stack.getDisplayName();
76+
int count = stack.getCount();
77+
probeInfo.text(
78+
TextStyleClass.INFO + displayName + ": " + TextFormatting.GOLD + "x" + count);
79+
}
80+
}
81+
82+
}
83+
}
84+
}
85+
}
86+
}

src/main/resources/assets/gtbm/lang/en_us.lang

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,6 @@ gtbm.multiblock.mega_apiary.queens=Queens: %s
5858
gtbm.multiblock.mega_apiary.jerry_body=Royal Jerry: %s
5959
gtbm.multiblock.mega_apiary.jerry_hover=Each Queen increases production by 5%% per Royal Jelly, up to a maximum of +200%%.
6060
gtbm.multiblock.maga_apiary.outputs=%s: §6x%s
61+
62+
# TOP
63+
gtbm.top.mega_apiary.queen=Queen:

src/main/resources/assets/gtbm/lang/ja_jp.lang

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,6 @@ gtbm.multiblock.mega_apiary.queens=女王: %s
5858
gtbm.multiblock.mega_apiary.jerry_body=ローヤルゼリー: %s
5959
gtbm.multiblock.mega_apiary.jerry_hover=女王1匹につき、生産量がローヤルゼリー1個ごとに5%%増加する (最大 +200%%)。
6060
gtbm.multiblock.maga_apiary.outputs=%s: §6x%s
61+
62+
# TOP
63+
gtbm.top.mega_apiary.queen=女王:

0 commit comments

Comments
 (0)