Skip to content

Commit cf028b3

Browse files
authored
Update TOP Integration (#17)
1 parent c812224 commit cf028b3

5 files changed

Lines changed: 91 additions & 1 deletion

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ public void applyPendingBeeLogicData() {
465465

466466
// ---- Accessors ----
467467

468-
protected IndustrialApiaryLogic getLogic() {
468+
public IndustrialApiaryLogic getLogic() {
469469
return (IndustrialApiaryLogic) workable;
470470
}
471471

src/main/java/com/github/gtexpert/gtbm/integration/top/TOPModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.github.gtexpert.gtbm.api.util.Mods;
88
import com.github.gtexpert.gtbm.integration.GTBMIntegrationSubmodule;
99
import com.github.gtexpert.gtbm.integration.forestry.util.BeeHousingInfoProvider;
10+
import com.github.gtexpert.gtbm.integration.top.provider.IndustrialApiaryProvider;
1011
import com.github.gtexpert.gtbm.integration.top.provider.MegaApiaryProvider;
1112
import com.github.gtexpert.gtbm.module.Modules;
1213

@@ -28,6 +29,7 @@ public void init(FMLInitializationEvent event) {
2829
oneProbe.registerProvider(new BeeHousingInfoProvider());
2930
}
3031
if (Mods.Gendustry.isModLoaded()) {
32+
oneProbe.registerProvider(new IndustrialApiaryProvider());
3133
oneProbe.registerProvider(new MegaApiaryProvider());
3234
}
3335
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.github.gtexpert.gtbm.integration.top.provider;
2+
3+
import net.bdew.gendustry.api.ApiaryModifiers;
4+
import net.minecraft.block.state.IBlockState;
5+
import net.minecraft.entity.player.EntityPlayer;
6+
import net.minecraft.item.ItemStack;
7+
import net.minecraft.tileentity.TileEntity;
8+
import net.minecraft.util.text.TextFormatting;
9+
import net.minecraft.world.World;
10+
11+
import gregtech.api.metatileentity.MetaTileEntity;
12+
import gregtech.api.metatileentity.interfaces.IGregTechTileEntity;
13+
14+
import com.github.gtexpert.gtbm.api.ModValues;
15+
import com.github.gtexpert.gtbm.integration.gendustry.metatileentities.MetaTileEntityIndustrialApiary;
16+
17+
import forestry.api.apiculture.BeeManager;
18+
import forestry.api.apiculture.EnumBeeType;
19+
import forestry.api.apiculture.IBee;
20+
import forestry.api.apiculture.IBeeRoot;
21+
import mcjty.theoneprobe.api.IProbeHitData;
22+
import mcjty.theoneprobe.api.IProbeInfo;
23+
import mcjty.theoneprobe.api.IProbeInfoProvider;
24+
import mcjty.theoneprobe.api.ProbeMode;
25+
import mcjty.theoneprobe.api.TextStyleClass;
26+
27+
public class IndustrialApiaryProvider implements IProbeInfoProvider {
28+
29+
@Override
30+
public String getID() {
31+
return ModValues.MODID + ":industrial_apiary";
32+
}
33+
34+
@Override
35+
public void addProbeInfo(ProbeMode probeMode, IProbeInfo probeInfo, EntityPlayer entityPlayer, World world,
36+
IBlockState state, IProbeHitData data) {
37+
if (!state.getBlock().hasTileEntity(state)) return;
38+
39+
TileEntity tileEntity = world.getTileEntity(data.getPos());
40+
if (!(tileEntity instanceof IGregTechTileEntity)) return;
41+
42+
MetaTileEntity metaTileEntity = ((IGregTechTileEntity) tileEntity).getMetaTileEntity();
43+
if (!(metaTileEntity instanceof MetaTileEntityIndustrialApiary)) return;
44+
45+
MetaTileEntityIndustrialApiary apiary = (MetaTileEntityIndustrialApiary) metaTileEntity;
46+
47+
// Species
48+
ItemStack queenStack = apiary.getQueen();
49+
if (!queenStack.isEmpty()) {
50+
IBeeRoot beeRoot = BeeManager.beeRoot;
51+
if (beeRoot != null) {
52+
IBee bee = beeRoot.getMember(queenStack);
53+
if (bee != null) {
54+
EnumBeeType type = beeRoot.getType(queenStack);
55+
if (type == EnumBeeType.QUEEN || type == EnumBeeType.PRINCESS) {
56+
String speciesName;
57+
if (bee.isAnalyzed()) {
58+
speciesName = bee.getGenome().getPrimary().getAlleleName();
59+
} else {
60+
speciesName = "{*gtbm.top.industrial_apiary.species.unknown*}";
61+
}
62+
probeInfo.text(
63+
TextStyleClass.INFO + "{*gtbm.top.industrial_apiary.species*} " + speciesName);
64+
}
65+
}
66+
}
67+
}
68+
69+
// Sneaking: Modifiers
70+
if (entityPlayer.isSneaking()) {
71+
ApiaryModifiers mods = apiary.getModifiers();
72+
if (mods != null) {
73+
probeInfo.text(TextStyleClass.INFO + "{*gtbm.top.industrial_apiary.production*} " +
74+
TextFormatting.GOLD + Math.round(mods.production * 100) + "%");
75+
probeInfo.text(TextStyleClass.INFO + "{*gtbm.top.industrial_apiary.lifespan*} " +
76+
TextFormatting.GOLD + Math.round(mods.lifespan * 100) + "%");
77+
}
78+
}
79+
}
80+
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,7 @@ gtbm.multiblock.mega_apiary.outputs=%s: §6x%s
6565

6666
# TOP
6767
gtbm.top.mega_apiary.queen=Queen:
68+
gtbm.top.industrial_apiary.species=Species:
69+
gtbm.top.industrial_apiary.species.unknown=Unknown Species
70+
gtbm.top.industrial_apiary.production=Production:
71+
gtbm.top.industrial_apiary.lifespan=Lifespan:

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,7 @@ gtbm.multiblock.mega_apiary.outputs=%s: §6x%s
6565

6666
# TOP
6767
gtbm.top.mega_apiary.queen=女王:
68+
gtbm.top.industrial_apiary.species=種:
69+
gtbm.top.industrial_apiary.species.unknown=不明な種
70+
gtbm.top.industrial_apiary.production=生産速度:
71+
gtbm.top.industrial_apiary.lifespan=寿命:

0 commit comments

Comments
 (0)