Skip to content

Commit 7eef66b

Browse files
committed
Limit exposure to too many KnowledgeService methods with some starting "API" + javadoc
1 parent 5809cc8 commit 7eef66b

File tree

9 files changed

+384
-309
lines changed

9 files changed

+384
-309
lines changed

src/main/java/gripe/_90/appliede/AppliedE.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import gripe._90.appliede.me.misc.LearnAllItemsPacket;
5959
import gripe._90.appliede.me.misc.TransmutationTerminalHost;
6060
import gripe._90.appliede.me.service.KnowledgeService;
61+
import gripe._90.appliede.me.service.KnowledgeServiceImpl;
6162
import gripe._90.appliede.me.service.TransmutationPattern;
6263
import gripe._90.appliede.menu.EMCInterfaceMenu;
6364
import gripe._90.appliede.menu.EMCSetStockAmountMenu;
@@ -85,7 +86,7 @@ public final class AppliedE {
8586
@SuppressWarnings("UnstableApiUsage")
8687
public static final DeferredItem<Item> EMC_MODULE = ITEMS.register("emc_module", () -> {
8788
AEKeyTypes.register(EMCKeyType.TYPE);
88-
GridServices.register(KnowledgeService.class, KnowledgeService.class);
89+
GridServices.register(KnowledgeService.class, KnowledgeServiceImpl.class);
8990
ContainerItemStrategy.register(EMCKeyType.TYPE, EMCKey.class, EMCContainerItemStrategy.INSTANCE);
9091
return part(EMCModulePart.class, EMCModulePart::new);
9192
});

src/main/java/gripe/_90/appliede/me/misc/TransmutationCapable.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,31 @@
22

33
import appeng.api.networking.security.IActionHost;
44

5+
/**
6+
* An extension of {@link IActionHost} implemented on machines or other objects (such as {@linkplain
7+
* gripe._90.appliede.menu.TransmutationTerminalMenu menus}) capable of transmuting items into / out of EMC when
8+
* carrying out regular {@linkplain appeng.api.networking.storage.IStorageService storage service} I/O.
9+
*/
510
public interface TransmutationCapable extends IActionHost {
11+
/**
12+
* @return Whether this machine is allowed to "learn" an inserted item on behalf of the player owning the associated
13+
* grid node.
14+
*/
615
boolean mayLearn();
716

17+
/**
18+
* Overridden to provide custom behaviour upon {@linkplain TransmutationCapable#mayLearn() learning} an item, e.g.
19+
* {@link gripe._90.appliede.menu.TransmutationTerminalMenu TransmutationTerminalMenu} displaying a text label on
20+
* its associated screen.
21+
*/
822
default void onLearn() {}
923

24+
/**
25+
* @return Whether this machine should consume any network power specifically when <i>inserting</i> items into
26+
* storage to turn into EMC. This should typically only be overridden if a machine isn't meant primarily for
27+
* insertion to begin with but may still need to insert items back in case of overflow issues when already
28+
* retrieved, such as the {@linkplain gripe._90.appliede.part.EMCExportBusPart Transmutation Export Bus}.
29+
*/
1030
default boolean consumePowerOnInsert() {
1131
return true;
1232
}

src/main/java/gripe/_90/appliede/me/service/EMCStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import moze_intel.projecte.api.capabilities.IKnowledgeProvider;
3131
import moze_intel.projecte.api.proxy.IEMCProxy;
3232

33-
record EMCStorage(KnowledgeService service, IEnergySource energy) implements MEStorage {
33+
record EMCStorage(KnowledgeServiceImpl service, IEnergySource energy) implements MEStorage {
3434
@Override
3535
public void getAvailableStacks(KeyCounter out) {
3636
var emc = service.getEMC();

0 commit comments

Comments
 (0)