Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Buff interface throughput via transvector #456

Merged
merged 3 commits into from
Feb 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
dependencies {
implementation('com.github.GTNewHorizons:NotEnoughItems:2.5.17-GTNH:dev')
implementation('curse.maven:cofh-core-69162:2388751')


compileOnly('com.github.GTNewHorizons:ThaumicTinkerer:2.9.2:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.39:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.4.7:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.60:dev') {transitive = false}
Expand All @@ -12,11 +13,13 @@ dependencies {
compileOnly('com.github.GTNewHorizons:OpenComputers:1.10.6-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:waila:1.7.0:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.15.5:api') {transitive = false}
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api')
compileOnly('curse.maven:minefactory-reloaded-66672:2366150')
compileOnly('pneumaticCraft:PneumaticCraft-1.7.10:1.12.7-152:api') {transitive = false}
compileOnly('curse.maven:better-storage-232919:2731636')
compileOnly('api:immibis:1')
compileOnly('curse.maven:computercraft-67504:2269339')

// Uncomment to add thermal expansion + foundation for testing
// runtimeOnlyNonPublishable('curse.maven:thermal-foundation-222880:2388753')
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/appeng/integration/IntegrationType.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ public enum IntegrationType {

Chisel(IntegrationSide.BOTH, "Chisel", "chisel"),

Jabba(IntegrationSide.BOTH, "Jabba", "JABBA");
Jabba(IntegrationSide.BOTH, "Jabba", "JABBA"),

ThaumicTinkerer(IntegrationSide.BOTH, "Thaumic Tinkerer", "ThaumicTinkerer");

public final IntegrationSide side;
public final String dspName;
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/appeng/integration/abstraction/IThaumicTinkerer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package appeng.integration.abstraction;

import net.minecraft.tileentity.TileEntity;

public interface IThaumicTinkerer {

boolean isTransvectorInterface(Object te);

TileEntity getTile(Object te);
}
39 changes: 39 additions & 0 deletions src/main/java/appeng/integration/modules/ThaumicTinkerer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package appeng.integration.modules;

import net.minecraft.tileentity.TileEntity;

import appeng.helpers.Reflected;
import appeng.integration.IIntegrationModule;
import appeng.integration.IntegrationHelper;
import appeng.integration.abstraction.IThaumicTinkerer;
import thaumic.tinkerer.common.block.tile.transvector.TileTransvectorInterface;

public class ThaumicTinkerer implements IIntegrationModule, IThaumicTinkerer {

@Reflected
public static ThaumicTinkerer instance;

@Reflected
public ThaumicTinkerer() {
IntegrationHelper.testClassExistence(this, TileTransvectorInterface.class);
}

@Override
public void init() throws Throwable {}

@Override
public void postInit() {}

@Override
public boolean isTransvectorInterface(Object te) {
return te instanceof TileTransvectorInterface;
}

@Override
public TileEntity getTile(Object te) {
if (te instanceof TileTransvectorInterface ti) {
return ti.getTile();
}
return null;
}
}
11 changes: 10 additions & 1 deletion src/main/java/appeng/util/InventoryAdaptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import appeng.integration.IntegrationRegistry;
import appeng.integration.IntegrationType;
import appeng.integration.abstraction.IBetterStorage;
import appeng.integration.abstraction.IThaumicTinkerer;
import appeng.parts.p2p.PartP2PItems;
import appeng.tile.misc.TileInterface;
import appeng.tile.networking.TileCableBus;
Expand All @@ -43,14 +44,22 @@
public abstract class InventoryAdaptor implements Iterable<ItemSlot> {

// returns an appropriate adaptor, or null
public static InventoryAdaptor getAdaptor(final Object te, final ForgeDirection d) {
public static InventoryAdaptor getAdaptor(Object te, final ForgeDirection d) {
if (te == null) {
return null;
}

final IBetterStorage bs = (IBetterStorage) (IntegrationRegistry.INSTANCE.isEnabled(
IntegrationType.BetterStorage) ? IntegrationRegistry.INSTANCE.getInstance(IntegrationType.BetterStorage)
: null);
final IThaumicTinkerer tt = (IThaumicTinkerer) (IntegrationRegistry.INSTANCE
.isEnabled(IntegrationType.ThaumicTinkerer)
? IntegrationRegistry.INSTANCE.getInstance(IntegrationType.ThaumicTinkerer)
: null);

if (tt != null && tt.isTransvectorInterface(te)) {
te = tt.getTile(te);
}

if (te instanceof EntityPlayer) {
return new AdaptorIInventory(new AdaptorPlayerInventory(((EntityPlayer) te).inventory, false));
Expand Down