Skip to content

Commit 877f226

Browse files
committed
Added quantum computer ui and added conditional recipes if mega is loaded
1 parent a0bba06 commit 877f226

File tree

14 files changed

+760
-15
lines changed

14 files changed

+760
-15
lines changed

Diff for: gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ loader_version_range=[4,)
1414
mod_id=advanced_ae
1515
mod_name=Advanced AE
1616
mod_license=LGPL-3.0
17-
mod_version=0.4.2-1.21.1
17+
mod_version=0.4.3-1.21.1
1818
mod_group_id=net.pedroksl.advanced_ae
1919
mod_authors=Pedroksl
2020
mod_description=This mod aims to expand on the added capabilities of Extended AE.

Diff for: src/main/java/net/pedroksl/advanced_ae/AAEConfig.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ public int getQuantumComputerMaxSize() {
2020
return common.quantumComputerMaxSize.get();
2121
}
2222

23+
public int getQuantumComputerAcceleratorThreads() {
24+
return common.quantumComputerAcceleratorThreads.get();
25+
}
26+
2327
public int getQuantumComputerMaxMultiThreaders() {
2428
return common.quantumComputerMaxMultiThreaders.get();
2529
}
2630

2731
public int getQuantumComputermaxDataEntanglers() {
28-
return common.quantumComputermaxDataEntanglers.get();
32+
return common.quantumComputerMaxDataEntanglers.get();
2933
}
3034

3135
public int getQuantumComputerMultiThreaderMultiplication() {
@@ -66,8 +70,9 @@ private static class CommonConfig {
6670
private final ModConfigSpec spec;
6771

6872
public final ModConfigSpec.IntValue quantumComputerMaxSize;
73+
public final ModConfigSpec.IntValue quantumComputerAcceleratorThreads;
6974
public final ModConfigSpec.IntValue quantumComputerMaxMultiThreaders;
70-
public final ModConfigSpec.IntValue quantumComputermaxDataEntanglers;
75+
public final ModConfigSpec.IntValue quantumComputerMaxDataEntanglers;
7176
public final ModConfigSpec.IntValue quantumComputerMultiThreaderMultiplication;
7277
public final ModConfigSpec.IntValue quantumComputerDataEntanglerMultiplication;
7378

@@ -80,16 +85,23 @@ public CommonConfig() {
8085
"quantumComputerMaxSize",
8186
5,
8287
5,
83-
16,
88+
12,
8489
"Define the maximum dimensions of the Quantum Computer Multiblock.");
90+
quantumComputerAcceleratorThreads = define(
91+
builder,
92+
"quantumComputerAcceleratorThreads",
93+
8,
94+
4,
95+
16,
96+
"Define the maximum amount of multi threaders per Quantum Computer Multiblock.");
8597
quantumComputerMaxMultiThreaders = define(
8698
builder,
8799
"quantumComputerMaxMultiThreaders",
88100
1,
89101
0,
90102
2,
91103
"Define the maximum amount of multi threaders per Quantum Computer Multiblock.");
92-
quantumComputermaxDataEntanglers = define(
104+
quantumComputerMaxDataEntanglers = define(
93105
builder,
94106
"quantumComputermaxDataEntanglers",
95107
1,

Diff for: src/main/java/net/pedroksl/advanced_ae/client/AAEClient.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent;
1111
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
1212
import net.pedroksl.advanced_ae.AdvancedAE;
13-
import net.pedroksl.advanced_ae.client.gui.AdvPatternEncoderScreen;
14-
import net.pedroksl.advanced_ae.client.gui.AdvPatternProviderScreen;
15-
import net.pedroksl.advanced_ae.client.gui.ReactionChamberScreen;
16-
import net.pedroksl.advanced_ae.client.gui.SmallAdvPatternProviderScreen;
13+
import net.pedroksl.advanced_ae.client.gui.*;
1714
import net.pedroksl.advanced_ae.client.gui.config.OutputDirectionScreen;
1815
import net.pedroksl.advanced_ae.client.renderer.AAECraftingUnitModelProvider;
1916
import net.pedroksl.advanced_ae.client.renderer.ReactionChamberTESR;
@@ -36,6 +33,9 @@ public AAEClient(IEventBus eventBus) {
3633
}
3734

3835
private static void initScreens(RegisterMenuScreensEvent event) {
36+
InitScreens.register(
37+
event, AAEMenus.QUANTUM_COMPUTER, QuantumComputerScreen::new, "/screens/quantum_computer.json");
38+
3939
InitScreens.register(
4040
event,
4141
AAEMenus.ADV_PATTERN_PROVIDER,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package net.pedroksl.advanced_ae.client.gui;
2+
3+
import net.minecraft.network.chat.Component;
4+
import net.minecraft.world.entity.player.Inventory;
5+
import net.pedroksl.advanced_ae.gui.quantumcomputer.AdvCpuSelectionList;
6+
import net.pedroksl.advanced_ae.gui.quantumcomputer.QuantumComputerMenu;
7+
8+
import appeng.client.gui.me.crafting.CraftingCPUScreen;
9+
import appeng.client.gui.style.ScreenStyle;
10+
import appeng.client.gui.widgets.Scrollbar;
11+
12+
public class QuantumComputerScreen extends CraftingCPUScreen<QuantumComputerMenu> {
13+
public QuantumComputerScreen(
14+
QuantumComputerMenu menu, Inventory playerInventory, Component title, ScreenStyle style) {
15+
super(menu, playerInventory, title, style);
16+
17+
var scrollbar = widgets.addScrollBar("selectCpuScrollbar", Scrollbar.BIG);
18+
widgets.add("selectCpuList", new AdvCpuSelectionList(menu, scrollbar, style));
19+
}
20+
21+
@Override
22+
protected Component getGuiDisplayName(Component in) {
23+
return in; // the cpu name is on the button
24+
}
25+
}

Diff for: src/main/java/net/pedroksl/advanced_ae/common/blocks/AAEAbstractCraftingUnitBlock.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,13 @@
3131
import net.minecraft.world.level.block.state.properties.BooleanProperty;
3232
import net.minecraft.world.level.block.state.properties.IntegerProperty;
3333
import net.minecraft.world.phys.BlockHitResult;
34+
import net.pedroksl.advanced_ae.common.definitions.AAEMenus;
3435
import net.pedroksl.advanced_ae.common.entities.AdvCraftingBlockEntity;
3536

3637
import appeng.block.AEBaseEntityBlock;
3738
import appeng.block.crafting.ICraftingUnitType;
38-
import appeng.blockentity.crafting.CraftingBlockEntity;
3939
import appeng.menu.MenuOpener;
4040
import appeng.menu.locator.MenuLocators;
41-
import appeng.menu.me.crafting.CraftingCPUMenu;
4241

4342
public abstract class AAEAbstractCraftingUnitBlock<T extends AdvCraftingBlockEntity> extends AEBaseEntityBlock<T> {
4443
public static final BooleanProperty FORMED = BooleanProperty.create("formed");
@@ -105,9 +104,9 @@ public void onRemove(BlockState state, Level level, BlockPos pos, BlockState new
105104
@Override
106105
protected InteractionResult useWithoutItem(
107106
BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) {
108-
if (level.getBlockEntity(pos) instanceof CraftingBlockEntity be && be.isFormed() && be.isActive()) {
107+
if (level.getBlockEntity(pos) instanceof AdvCraftingBlockEntity be && be.isFormed() && be.isActive()) {
109108
if (!level.isClientSide()) {
110-
MenuOpener.open(CraftingCPUMenu.TYPE, player, MenuLocators.forBlockEntity(be));
109+
MenuOpener.open(AAEMenus.QUANTUM_COMPUTER, player, MenuLocators.forBlockEntity(be));
111110
}
112111

113112
return InteractionResult.sidedSuccess(level.isClientSide());

Diff for: src/main/java/net/pedroksl/advanced_ae/common/blocks/AAECraftingUnitType.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public int getStorageMultiplier() {
3737
@Override
3838
public int getAcceleratorThreads() {
3939
return switch (this) {
40-
case QUANTUM_ACCELERATOR, QUANTUM_CORE -> 8;
40+
case QUANTUM_ACCELERATOR, QUANTUM_CORE -> AAEConfig.instance().getQuantumComputerAcceleratorThreads();
4141
default -> 0;
4242
};
4343
}

Diff for: src/main/java/net/pedroksl/advanced_ae/common/definitions/AAEMenus.java

+5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import net.minecraft.world.inventory.MenuType;
55
import net.neoforged.neoforge.registries.DeferredRegister;
66
import net.pedroksl.advanced_ae.AdvancedAE;
7+
import net.pedroksl.advanced_ae.common.entities.AdvCraftingBlockEntity;
78
import net.pedroksl.advanced_ae.common.entities.ReactionChamberEntity;
89
import net.pedroksl.advanced_ae.common.inventory.AdvPatternEncoderHost;
910
import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogicHost;
1011
import net.pedroksl.advanced_ae.gui.advpatternprovider.AdvPatternProviderMenu;
1112
import net.pedroksl.advanced_ae.gui.advpatternprovider.SmallAdvPatternProviderMenu;
1213
import net.pedroksl.advanced_ae.gui.config.OutputDirectionMenu;
1314
import net.pedroksl.advanced_ae.gui.patternencoder.AdvPatternEncoderContainer;
15+
import net.pedroksl.advanced_ae.gui.quantumcomputer.QuantumComputerMenu;
1416
import net.pedroksl.advanced_ae.gui.reactionchamber.ReactionChamberMenu;
1517

1618
import appeng.api.storage.ISubMenuHost;
@@ -20,6 +22,9 @@
2022
public class AAEMenus {
2123
public static final DeferredRegister<MenuType<?>> DR = DeferredRegister.create(Registries.MENU, AdvancedAE.MOD_ID);
2224

25+
public static final MenuType<QuantumComputerMenu> QUANTUM_COMPUTER =
26+
create("quantum_computer", QuantumComputerMenu::new, AdvCraftingBlockEntity.class);
27+
2328
public static final MenuType<AdvPatternProviderMenu> ADV_PATTERN_PROVIDER =
2429
create("adv_pattern_provider", AdvPatternProviderMenu::new, AdvPatternProviderLogicHost.class);
2530
public static final MenuType<SmallAdvPatternProviderMenu> SMALL_ADV_PATTERN_PROVIDER =

Diff for: src/main/java/net/pedroksl/advanced_ae/datagen/AAERecipeProvider.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,15 @@ protected void buildRecipes(@NotNull RecipeOutput c) {
143143
.define('U', AAEBlocks.QUANTUM_UNIT)
144144
.unlockedBy("hasItem", has(AEItems.SINGULARITY))
145145
.save(c, AdvancedAE.makeId("quantumaccel"));
146+
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AAEBlocks.QUANTUM_STORAGE_128M)
147+
.pattern("ECE")
148+
.pattern("CUC")
149+
.pattern("ECE")
150+
.define('E', AAEItems.SHATTERED_SINGULARITY)
151+
.define('C', MEGAItems.BULK_CELL_COMPONENT)
152+
.define('U', AAEBlocks.QUANTUM_UNIT)
153+
.unlockedBy("hasItem", has(AEItems.SINGULARITY))
154+
.save(Addons.MEGACELLS.conditionalRecipe(c), AdvancedAE.makeId("megaquantumstorage128"));
146155
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AAEBlocks.QUANTUM_STORAGE_128M)
147156
.pattern("ECE")
148157
.pattern("CUC")
@@ -151,7 +160,7 @@ protected void buildRecipes(@NotNull RecipeOutput c) {
151160
.define('C', AEItems.CELL_COMPONENT_256K)
152161
.define('U', AAEBlocks.QUANTUM_UNIT)
153162
.unlockedBy("hasItem", has(AEItems.SINGULARITY))
154-
.save(c, AdvancedAE.makeId("quantumstorage128"));
163+
.save(Addons.MEGACELLS.notConditionalRecipe(c), AdvancedAE.makeId("quantumstorage128"));
155164
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, AAEBlocks.QUANTUM_STORAGE_256M)
156165
.requires(AAEItems.SHATTERED_SINGULARITY)
157166
.requires(AAEBlocks.QUANTUM_STORAGE_128M)

0 commit comments

Comments
 (0)