aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2023-05-05 19:06:25 +0100
committerGitHub <noreply@github.com>2023-05-05 20:06:25 +0200
commit228a726aaed50cd35346ed65369f1c1fddd2cd26 (patch)
treeb8cf66c5d0b1eaa93ca26d394d04ee5258c587bb /src/main/java/gregtech
parentcfcf8bf40dfb941834e8bc771d16e2d187e9c122 (diff)
downloadGT5-Unofficial-228a726aaed50cd35346ed65369f1c1fddd2cd26.tar.gz
GT5-Unofficial-228a726aaed50cd35346ed65369f1c1fddd2cd26.tar.bz2
GT5-Unofficial-228a726aaed50cd35346ed65369f1c1fddd2cd26.zip
Display multiblock name&icon in AE2 interface terminal and crafting tree view instead of the hatch (#1944)
* Update buildscript * Apply spotless * Update ae2 and other dependencies * Display multiblock name&icon in AE2 interface terminal and crafting tree view instead of the hatch * Remove no longer needed Avaritia dep --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java8
-rw-r--r--src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java9
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java12
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java19
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java66
5 files changed, 83 insertions, 31 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index c9377d10be..fed9501067 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -22,6 +22,7 @@ import net.minecraftforge.fluids.IFluidTank;
import com.gtnewhorizons.modularui.api.forge.ItemStackHandler;
+import appeng.api.crafting.ICraftingIconProvider;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.Dyes;
@@ -43,7 +44,7 @@ import gregtech.common.power.Power;
* Don't implement this yourself and expect it to work. Extend @MetaTileEntity itself.
*/
public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHandler, IGearEnergyTileEntity,
- IMachineBlockUpdateable, IGregtechWailaProvider, IGetGUITextureSet {
+ IMachineBlockUpdateable, IGregtechWailaProvider, IGetGUITextureSet, ICraftingIconProvider {
/**
* This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
@@ -519,4 +520,9 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand
* @param tooltip Tooltip to which can be added
*/
default void addAdditionalTooltipInformation(ItemStack stack, List<String> tooltip) {}
+
+ @Override
+ default ItemStack getMachineCraftingIcon() {
+ return null;
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java
index 157bef793c..afd7705274 100644
--- a/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java
@@ -12,6 +12,7 @@ import com.gtnewhorizons.modularui.api.forge.ItemStackHandler;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
+import appeng.api.crafting.ICraftingIconProvider;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.gui.modularui.GUITextureSet;
@@ -26,7 +27,8 @@ import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
-public abstract class CommonMetaTileEntity extends CoverableTileEntity implements IGregTechTileEntity {
+public abstract class CommonMetaTileEntity extends CoverableTileEntity
+ implements IGregTechTileEntity, ICraftingIconProvider {
protected boolean mNeedsBlockUpdate = true, mNeedsUpdate = true, mSendClientData = false, mInventoryChanged = false;
@@ -301,4 +303,9 @@ public abstract class CommonMetaTileEntity extends CoverableTileEntity implement
}
return super.getGUITextureSet();
}
+
+ @Override
+ public ItemStack getMachineCraftingIcon() {
+ return getMetaTileEntity() != null ? getMetaTileEntity().getMachineCraftingIcon() : null;
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index a7ddd0e295..db46d1b1da 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -1153,6 +1153,18 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac
public void gridChanged() {}
+ @Override
+ public ItemStack getMachineCraftingIcon() {
+ final IGregTechTileEntity mte = getBaseMetaTileEntity();
+ if (mte == null) {
+ return null;
+ }
+ return mte.getDrops()
+ .stream()
+ .findAny()
+ .orElse(null);
+ }
+
// === Waila compat ===
@Override
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
index ec6d1fe11f..6da0331131 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java
@@ -1,8 +1,10 @@
package gregtech.api.metatileentity.implementations;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
+import appeng.api.crafting.ICraftingIconProvider;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -11,7 +13,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
/**
* Handles texture changes internally. No special calls are necessary other than updateTexture in add***ToMachineList.
*/
-public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTank {
+public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTank implements ICraftingIconProvider {
public enum ConnectionType {
CABLE,
@@ -28,6 +30,8 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan
private byte mTexturePage = 0;
private byte actualTexture = 0;
+ private ItemStack ae2CraftingIcon;
+
public GT_MetaTileEntity_Hatch(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount,
String aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
@@ -118,6 +122,19 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan
}
/**
+ * Sets the icon for the owning multiblock used for AE2 crafting display of attached interfaces, called on add to
+ * machine list
+ */
+ public final void updateCraftingIcon(ItemStack icon) {
+ this.ae2CraftingIcon = icon;
+ }
+
+ @Override
+ public ItemStack getMachineCraftingIcon() {
+ return this.ae2CraftingIcon;
+ }
+
+ /**
* Sets texture with page and index, rather unusable, but kept FFS
*
* @param page page of texure
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 813375b7ae..0d25ec84f6 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -1095,8 +1095,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
}
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) {
((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap();
@@ -1125,9 +1126,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mMaintenanceHatches.add(hatch);
}
return false;
}
@@ -1138,9 +1140,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mEnergyHatches.add(hatch);
}
return false;
}
@@ -1152,6 +1155,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch hatch
&& GT_ExoticEnergyInputHelper.isExoticEnergyInput(aMetaTileEntity)) {
hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
return mExoticEnergyHatches.add(hatch);
}
return false;
@@ -1161,9 +1165,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mDynamoHatches.add(hatch);
}
return false;
}
@@ -1172,9 +1177,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mMufflerHatches.add(hatch);
}
return false;
}
@@ -1193,10 +1199,11 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- ((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity).mRecipeMap = getRecipeMap();
- return mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ hatch.mRecipeMap = getRecipeMap();
+ return mInputBusses.add(hatch);
}
return false;
}
@@ -1205,9 +1212,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mOutputBusses.add(hatch);
}
return false;
}
@@ -1216,10 +1224,11 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap();
- return mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ hatch.mRecipeMap = getRecipeMap();
+ return mInputHatches.add(hatch);
}
return false;
}
@@ -1228,9 +1237,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (aTileEntity == null) return false;
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity);
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output hatch) {
+ hatch.updateTexture(aBaseCasingIndex);
+ hatch.updateCraftingIcon(this.getMachineCraftingIcon());
+ return mOutputHatches.add(hatch);
}
return false;
}