Skip to content

Commit 17a2464

Browse files
authored
Add Maga Apiary (#14)
1 parent db87af0 commit 17a2464

8 files changed

Lines changed: 912 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# v1.4.0
2+
- Add Mega Apiary [#14](https://github.com/GTModpackTeam/GTBeesMatrix/pull/14)
3+
- Please report any unusual behavior. However, please note the flowing:
4+
- Text in the GUI is overflowing
5+
- The controller overlays are not syncing
6+
7+
* * *
8+
19
# v1.3.1
210
- Fix Tree Farm logic [#15](https://github.com/GTModpackTeam/GTBeesMatrix/pull/15)
311

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
import static com.github.gtexpert.gtbm.api.util.ModUtility.gtbm;
44
import static gregtech.api.GTValues.V;
55
import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntities;
6+
import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntity;
67

78
import com.github.gtexpert.gtbm.client.GTBMTextures;
89
import com.github.gtexpert.gtbm.integration.gendustry.GendustryRecipeMaps;
10+
import com.github.gtexpert.gtbm.integration.gendustry.metatileentities.multiblock.MetaTileEntityMegaApiary;
911

1012
public class GendustryMetaTileEntities {
1113

1214
public static MetaTileEntityIndustrialApiary[] INDUSTRIAL_APIARY = new MetaTileEntityIndustrialApiary[V.length - 1];
1315

16+
// Multiblock
17+
public static MetaTileEntityMegaApiary MEGA_APIARY;
18+
1419
public static void init() {
1520
// INDUSTRIAL_APIARY 20000~20012
1621
// TODO: IDの変更
@@ -21,5 +26,10 @@ public static void init() {
2126
GendustryRecipeMaps.INDUSTRIAL_APIARY_RECIPES,
2227
GTBMTextures.INDUSTRIAL_APIARY_OVERLAY,
2328
tier, false, null));
29+
30+
// Multiblock
31+
// Mega Apiary 20500
32+
MEGA_APIARY = registerMetaTileEntity(20500, new MetaTileEntityMegaApiary(
33+
gtbm("mega_apiary")));
2434
}
2535
}

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

Lines changed: 700 additions & 0 deletions
Large diffs are not rendered by default.

src/main/java/com/github/gtexpert/gtbm/integration/gendustry/recipes/GendustryBlocksRecipe.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,18 @@
44

55
import gregtech.api.GTValues;
66
import gregtech.api.recipes.ModHandler;
7+
import gregtech.api.recipes.RecipeMaps;
8+
import gregtech.api.unification.material.MarkerMaterials;
9+
import gregtech.api.unification.material.Materials;
10+
import gregtech.api.unification.ore.OrePrefix;
11+
import gregtech.common.items.MetaItems;
712
import gregtech.loaders.recipe.MetaTileEntityLoader;
813

914
import com.github.gtexpert.gtbm.api.util.Mods;
1015
import com.github.gtexpert.gtbm.integration.gendustry.metatileentities.GendustryMetaTileEntities;
1116

17+
import forestry.core.fluids.Fluids;
18+
1219
public class GendustryBlocksRecipe {
1320

1421
public static void init() {
@@ -27,5 +34,23 @@ private static void machines() {
2734
ModHandler.addShapelessRecipe("gendustry_to_gtbm_industrial_apiary",
2835
GendustryMetaTileEntities.INDUSTRIAL_APIARY[GTValues.HV].getStackForm(),
2936
Mods.Gendustry.getItem("industrial_apiary"));
37+
38+
// Mega Apiary
39+
RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder()
40+
.input(GendustryMetaTileEntities.INDUSTRIAL_APIARY[GTValues.UV], 64)
41+
.inputs(Mods.Gendustry.getItem("apiary.upgrade", 64, 0))
42+
.inputs(Mods.Gendustry.getItem("apiary.upgrade", 64, 19))
43+
.input(MetaItems.ROBOT_ARM_UV, 16)
44+
.input(OrePrefix.circuit, MarkerMaterials.Tier.UV, 16)
45+
.fluidInputs(Materials.NaquadahAlloy.getFluid(144 * (3 * 64 + 8)))
46+
.fluidInputs(Fluids.FOR_HONEY.getFluid(20000))
47+
.stationResearch(b -> b
48+
.researchStack(GendustryMetaTileEntities.INDUSTRIAL_APIARY[GTValues.UV].getStackForm())
49+
.CWUt(16, 16 * 16 * (2 * 120 + 50) * 20)
50+
.EUt(GTValues.VA[GTValues.ZPM]))
51+
.output(GendustryMetaTileEntities.MEGA_APIARY)
52+
.duration(5 * 60 * 20)
53+
.EUt(GTValues.VA[GTValues.UHV])
54+
.buildAndRegister();
3055
}
3156
}
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: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
String text = null;
43+
if (metaTileEntity.isActive()) {
44+
// Progress Bar
45+
int currentProgress = ((MetaTileEntityMegaApiary) metaTileEntity).getProgressTicks();
46+
int maxProgress = 100;
47+
if (metaTileEntity.isActive()) {
48+
currentProgress = Math.round(currentProgress / 20.0F);
49+
maxProgress = Math.round(maxProgress / 20.0F);
50+
text = " / " + TextFormattingUtil.formatNumbers(maxProgress) + " s";
51+
}
52+
if (maxProgress > 0) {
53+
int color = ((MetaTileEntityMegaApiary) metaTileEntity).isWorkingEnabled() ? 0xFF4CBB17 :
54+
0xFFBB1C28;
55+
probeInfo.progress(currentProgress, maxProgress, probeInfo.defaultProgressStyle()
56+
.suffix(text)
57+
.filledColor(color)
58+
.alternateFilledColor(color)
59+
.borderColor(0xFF555555).numberFormat(NumberFormat.COMMAS));
60+
}
61+
}
62+
// Energy
63+
long EUt = ((MetaTileEntityMegaApiary) metaTileEntity).getCurrentConsumption();
64+
text = TextFormatting.RED + TextFormattingUtil.formatNumbers(EUt) + TextStyleClass.INFO +
65+
" EU/t" + TextFormatting.GREEN +
66+
" (" + GTValues.VNF[GTUtility.getTierByVoltage(EUt)] + TextFormatting.GREEN + ")";
67+
probeInfo.text(TextStyleClass.INFO + "{*gregtech.top.energy_consumption*} " + text);
68+
69+
// Queen
70+
int queenAmount = ((MetaTileEntityMegaApiary) metaTileEntity).getQueenAmount();
71+
if (queenAmount > 0) {
72+
probeInfo.text(TextStyleClass.INFO + "{*gtbm.top.mega_apiary.queen*} " + queenAmount);
73+
}
74+
// Product
75+
if (!entityPlayer.isSneaking()) {
76+
for (ItemStack stack : ((MetaTileEntityMegaApiary) metaTileEntity).getProductList()) {
77+
String displayName = stack.getDisplayName();
78+
int count = stack.getCount();
79+
probeInfo.text(
80+
TextStyleClass.INFO + displayName + ": " + TextFormatting.GOLD + "x" + count);
81+
}
82+
}
83+
}
84+
}
85+
}
86+
}
87+
}

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,29 @@ gtbm.farm.gtfo=Fruit Farm
3939
# GUI
4040
gtbm.gui.auto_breeding.tooltip.enabled=Auto-Breeding: ON/nAutomatically puts the princess back after queen death
4141
gtbm.gui.auto_breeding.tooltip.disabled=Auto-Breeding: OFF/nPrincess will remain in the output slot
42+
43+
# Multiblock Display
44+
gtbm.multiblock.progress=Progress: %s / %s (%s%%)
45+
gtbm.multiblock.progress_sec=%s s
46+
47+
# Mega Apiary
48+
gtbm.machine.mega_apiary.name=Mega Apiary
49+
gtbm.multiblock.mega_apiary.tooltip.1=The ideal home for your bees
50+
gtbm.multiblock.mega_apiary.tooltip.2=Processing time: 5 seconds
51+
gtbm.multiblock.mega_apiary.tooltip.3=Uses §dLuV§e 1 Amp§7 per queen
52+
gtbm.multiblock.mega_apiary.tooltip.4=8 production upgrades are applied
53+
gtbm.multiblock.mega_apiary.tooltip.5=Genetic Stabilizer upgrade applied
54+
gtbm.multiblock.mega_apiary.tooltip.6=Simulates perfect environment for your bees
55+
gtbm.multiblock.mega_apiary.tooltip.7.1===Hold Ctrl to show the output bonus information==
56+
gtbm.multiblock.mega_apiary.tooltip.7.2=Additionally you can provide royal jelly to increase the outputs:
57+
gtbm.multiblock.mega_apiary.tooltip.8= - 1 royal jelly grants 5%% bonus per bee
58+
gtbm.multiblock.mega_apiary.tooltip.9= - They will be consumed on each start of operation and be applied to that operation only
59+
gtbm.multiblock.mega_apiary.tooltip.10= - Max bonus: 200%%
60+
gtbm.multiblock.mega_apiary.tooltip.11=§eNote§7: When using §aauto-build§7, §bwater source§7 will not be placed.
61+
gtbm.multiblock.mega_apiary.queens=Queens: %s
62+
gtbm.multiblock.mega_apiary.jerry_body=Royal Jerry: %s
63+
gtbm.multiblock.mega_apiary.jerry_hover=Each Queen increases production by 5%% per Royal Jelly, up to a maximum of +200%%.
64+
gtbm.multiblock.mega_apiary.outputs=%s: §6x%s
65+
66+
# TOP
67+
gtbm.top.mega_apiary.queen=Queen:

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,29 @@ gtbm.farm.gtfo=果樹農園
3939
# GUI
4040
gtbm.gui.auto_breeding.tooltip.enabled=自動交配: ON/nクイーン死亡後にプリンセスを自動的に入力スロットに戻します
4141
gtbm.gui.auto_breeding.tooltip.disabled=自動交配: OFF/nプリンセスはアウトプットに残ります
42+
43+
# Multiblock Display
44+
gtbm.multiblock.progress=進捗: %s / %s (%s%%)
45+
gtbm.multiblock.progress_sec=%s 秒
46+
47+
# Mega Apiary
48+
gtbm.machine.mega_apiary.name=メガ養蜂箱
49+
gtbm.multiblock.mega_apiary.tooltip.1=ミツバチの理想郷
50+
gtbm.multiblock.mega_apiary.tooltip.2=処理時間: 5 秒
51+
gtbm.multiblock.mega_apiary.tooltip.3=女王1匹につき§dLuV§e 1 Amp§7を消費する
52+
gtbm.multiblock.mega_apiary.tooltip.4=生産アップグレードが8つ適応される
53+
gtbm.multiblock.mega_apiary.tooltip.5=遺伝的安定化装置のアップグレードが適応されている
54+
gtbm.multiblock.mega_apiary.tooltip.6=ミツバチにとって理想的な環境を再現する
55+
gtbm.multiblock.mega_apiary.tooltip.7.1===Ctrlで出力ボーナスの情報を表示==
56+
gtbm.multiblock.mega_apiary.tooltip.7.2=さらに、生産量を増やすためにローヤルゼリーを与えることができる。
57+
gtbm.multiblock.mega_apiary.tooltip.8= - 1つのローヤルゼリーにつき、蜂1匹あたり5%%のボーナスが得られる
58+
gtbm.multiblock.mega_apiary.tooltip.9= - 処理開始時点で消費され、その処理でのみ適用される。
59+
gtbm.multiblock.mega_apiary.tooltip.10= - 最大ボーナス: 200%%
60+
gtbm.multiblock.mega_apiary.tooltip.11=§e注意§7: §a自動建造§7を用いた場合、 §b水源§7は設置されません。
61+
gtbm.multiblock.mega_apiary.queens=女王: %s
62+
gtbm.multiblock.mega_apiary.jerry_body=ローヤルゼリー: %s
63+
gtbm.multiblock.mega_apiary.jerry_hover=女王1匹につき、生産量がローヤルゼリー1個ごとに5%%増加する (最大 +200%%)。
64+
gtbm.multiblock.mega_apiary.outputs=%s: §6x%s
65+
66+
# TOP
67+
gtbm.top.mega_apiary.queen=女王:

0 commit comments

Comments
 (0)