aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces
diff options
context:
space:
mode:
authorGlodBlock <60341015+GlodBlock@users.noreply.github.com>2021-09-27 15:39:31 +0800
committerGitHub <noreply@github.com>2021-09-27 15:39:31 +0800
commit097438be70486735a8940dd5ce4e9484b6d951af (patch)
tree90f26b34d5059eb9858d9c82aabbd5373638acfa /src/main/java/gregtech/api/interfaces
parenta0a77f0b9868a4ca8a3df8ae8d50b4dcfb4030db (diff)
parent92433a5b85bb2fcca541ac25ca4033fac24f841e (diff)
downloadGT5-Unofficial-097438be70486735a8940dd5ce4e9484b6d951af.tar.gz
GT5-Unofficial-097438be70486735a8940dd5ce4e9484b6d951af.tar.bz2
GT5-Unofficial-097438be70486735a8940dd5ce4e9484b6d951af.zip
Merge pull request #1 from GlodBlock/fix-crack-recipe-check
Fix crack recipe check
Diffstat (limited to 'src/main/java/gregtech/api/interfaces')
-rw-r--r--src/main/java/gregtech/api/interfaces/IBlockContainer.java8
-rw-r--r--src/main/java/gregtech/api/interfaces/IBlockOnWalkOver.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/ICondition.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IDamagableItem.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IDebugableBlock.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IFoodStat.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IHasFluidDisplayItem.java5
-rw-r--r--src/main/java/gregtech/api/interfaces/IHeatingCoil.java18
-rw-r--r--src/main/java/gregtech/api/interfaces/IItemBehaviour.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IItemContainer.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/IProjectileItem.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/ISubTagContainer.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/ITexture.java34
-rw-r--r--src/main/java/gregtech/api/interfaces/ITextureBuilder.java80
-rw-r--r--src/main/java/gregtech/api/interfaces/IToolStats.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java53
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java12
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java1
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java13
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java11
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java10
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java6
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java2
44 files changed, 247 insertions, 68 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IBlockContainer.java b/src/main/java/gregtech/api/interfaces/IBlockContainer.java
new file mode 100644
index 0000000000..7949ae90ce
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/IBlockContainer.java
@@ -0,0 +1,8 @@
+package gregtech.api.interfaces;
+
+import net.minecraft.block.Block;
+
+public interface IBlockContainer {
+ Block getBlock();
+ byte getMeta();
+}
diff --git a/src/main/java/gregtech/api/interfaces/IBlockOnWalkOver.java b/src/main/java/gregtech/api/interfaces/IBlockOnWalkOver.java
index 8957f3bbbc..50f6cce5d9 100644
--- a/src/main/java/gregtech/api/interfaces/IBlockOnWalkOver.java
+++ b/src/main/java/gregtech/api/interfaces/IBlockOnWalkOver.java
@@ -5,4 +5,4 @@ import net.minecraft.world.World;
public interface IBlockOnWalkOver {
void onWalkOver(EntityLivingBase aEntity, World aWorld, int aX, int aY, int aZ);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/ICondition.java b/src/main/java/gregtech/api/interfaces/ICondition.java
index 3fb47251c7..b29b960650 100644
--- a/src/main/java/gregtech/api/interfaces/ICondition.java
+++ b/src/main/java/gregtech/api/interfaces/ICondition.java
@@ -101,4 +101,4 @@ public interface ICondition<O> {
return mCondition1.isTrue(aObject) == mCondition2.isTrue(aObject);
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IDamagableItem.java b/src/main/java/gregtech/api/interfaces/IDamagableItem.java
index 37bb9a2794..b360556aa3 100644
--- a/src/main/java/gregtech/api/interfaces/IDamagableItem.java
+++ b/src/main/java/gregtech/api/interfaces/IDamagableItem.java
@@ -4,4 +4,4 @@ import net.minecraft.item.ItemStack;
public interface IDamagableItem {
boolean doDamageToItem(ItemStack aStack, int aVanillaDamage);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IDebugableBlock.java b/src/main/java/gregtech/api/interfaces/IDebugableBlock.java
index dd72b4d71e..35ca68336e 100644
--- a/src/main/java/gregtech/api/interfaces/IDebugableBlock.java
+++ b/src/main/java/gregtech/api/interfaces/IDebugableBlock.java
@@ -24,4 +24,4 @@ public interface IDebugableBlock {
* @return a String-Array containing the DebugInfo, every Index is a separate line (0 = first Line)
*/
ArrayList<String> getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IFoodStat.java b/src/main/java/gregtech/api/interfaces/IFoodStat.java
index eec89795fd..4f4c696e12 100644
--- a/src/main/java/gregtech/api/interfaces/IFoodStat.java
+++ b/src/main/java/gregtech/api/interfaces/IFoodStat.java
@@ -32,4 +32,4 @@ public interface IFoodStat {
EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack);
void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IHasFluidDisplayItem.java b/src/main/java/gregtech/api/interfaces/IHasFluidDisplayItem.java
new file mode 100644
index 0000000000..dc844b8a85
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/IHasFluidDisplayItem.java
@@ -0,0 +1,5 @@
+package gregtech.api.interfaces;
+
+public interface IHasFluidDisplayItem {
+ void updateFluidDisplayItem();
+}
diff --git a/src/main/java/gregtech/api/interfaces/IHeatingCoil.java b/src/main/java/gregtech/api/interfaces/IHeatingCoil.java
new file mode 100644
index 0000000000..c8ceccf941
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/IHeatingCoil.java
@@ -0,0 +1,18 @@
+package gregtech.api.interfaces;
+
+import gregtech.api.enums.HeatingCoilLevel;
+import net.minecraft.item.ItemStack;
+
+import java.util.function.Consumer;
+
+public interface IHeatingCoil {
+
+ HeatingCoilLevel getCoilHeat(int meta);
+ default HeatingCoilLevel getCoilHeat(ItemStack stack) {
+ return getCoilHeat(stack.getItemDamage());
+ }
+
+ void setOnCoilCheck(Consumer<IHeatingCoil> callback);
+ Consumer<IHeatingCoil> getOnCoilCheck();
+}
+
diff --git a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java
index 32d0c0948a..85916ae0d7 100644
--- a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java
+++ b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java
@@ -37,4 +37,4 @@ public interface IItemBehaviour<E extends Item> {
EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ);
EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IItemContainer.java b/src/main/java/gregtech/api/interfaces/IItemContainer.java
index 7ce2ad7403..36363b8da1 100644
--- a/src/main/java/gregtech/api/interfaces/IItemContainer.java
+++ b/src/main/java/gregtech/api/interfaces/IItemContainer.java
@@ -36,4 +36,4 @@ public interface IItemContainer {
ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements);
boolean hasBeenSet();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java b/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java
index d10c34ef51..322586dc90 100644
--- a/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java
+++ b/src/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java
@@ -13,4 +13,4 @@ public interface IOreRecipeRegistrator {
* @param aStack always != null
*/
void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/IProjectileItem.java b/src/main/java/gregtech/api/interfaces/IProjectileItem.java
index 6e58d54823..913339ef05 100644
--- a/src/main/java/gregtech/api/interfaces/IProjectileItem.java
+++ b/src/main/java/gregtech/api/interfaces/IProjectileItem.java
@@ -21,4 +21,4 @@ public interface IProjectileItem {
* @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow
*/
EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/ISubTagContainer.java b/src/main/java/gregtech/api/interfaces/ISubTagContainer.java
index 92e4af0469..e067579a1d 100644
--- a/src/main/java/gregtech/api/interfaces/ISubTagContainer.java
+++ b/src/main/java/gregtech/api/interfaces/ISubTagContainer.java
@@ -17,4 +17,4 @@ public interface ISubTagContainer {
* @return if the Tag was there before it has been removed.
*/
boolean remove(SubTag aTag);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java
index 9d08713281..4c0b1984ca 100644
--- a/src/main/java/gregtech/api/interfaces/ITexture.java
+++ b/src/main/java/gregtech/api/interfaces/ITexture.java
@@ -2,6 +2,7 @@ package gregtech.api.interfaces;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
+import net.minecraft.client.renderer.Tessellator;
public interface ITexture {
void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
@@ -17,4 +18,35 @@ public interface ITexture {
void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
boolean isValidTexture();
-} \ No newline at end of file
+
+ /**
+ * @return {@code true} if this texture is from the old package
+ */
+ default boolean isOldTexture() {
+ return getClass().toString().startsWith("gregtech.api.objects");
+ }
+
+ /**
+ * Will initialize the {@link Tessellator} if rendering off-world (Inventory)
+ * @param aRenderer The {@link RenderBlocks} Renderer
+ * @param aNormalX The X Normal for current Quad Face
+ * @param aNormalY The Y Normal for current Quad Face
+ * @param aNormalZ The Z Normal for current Quad Face
+ */
+ default void startDrawingQuads(RenderBlocks aRenderer, float aNormalX, float aNormalY, float aNormalZ) {
+ if (aRenderer.useInventoryTint) {
+ Tessellator.instance.startDrawingQuads();
+ Tessellator.instance.setNormal(aNormalX, aNormalY, aNormalZ);
+ }
+ }
+
+ /**
+ * Will run the {@link Tessellator} to draw Quads if rendering off-world (Inventory)
+ * @param aRenderer The {@link RenderBlocks} Renderer
+ */
+ default void draw(RenderBlocks aRenderer) {
+ if (aRenderer.useInventoryTint) {
+ Tessellator.instance.draw();
+ }
+ }
+}
diff --git a/src/main/java/gregtech/api/interfaces/ITextureBuilder.java b/src/main/java/gregtech/api/interfaces/ITextureBuilder.java
new file mode 100644
index 0000000000..d72b538243
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/ITextureBuilder.java
@@ -0,0 +1,80 @@
+package gregtech.api.interfaces;
+
+import com.gtnewhorizon.structurelib.alignment.enumerable.ExtendedFacing;
+import gregtech.api.render.TextureFactory;
+import net.minecraft.block.Block;
+import net.minecraftforge.common.util.ForgeDirection;
+
+/**
+ * <p>This Interface defines operations to configure and build instances of the {@link ITexture} implementations</p>
+ * <p>Use the {@link TextureFactory#builder()} method to get an instance of the {@link ITextureBuilder} implementation.</p>
+ */
+public interface ITextureBuilder {
+ /**
+ * Build the {@link ITexture}
+ *
+ * @return The built {@link ITexture}
+ */
+ ITexture build();
+
+ /**
+ * @param block The {@link Block}
+ * @param meta The meta value for the Block
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder setFromBlock(final Block block, final int meta);
+
+ /**
+ * @param side <p>The {@link ForgeDirection} side providing the texture</p>
+ * <p>Default is {@link ForgeDirection#UNKNOWN} to use same side as rendered</p>
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder setFromSide(final ForgeDirection side);
+
+ /**
+ * @param iconContainers The {@link IIconContainer}s to add
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder addIcon(final IIconContainer... iconContainers);
+
+ /**
+ * @param rgba The RGBA tint for this {@link ITexture}
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder setRGBA(final short[] rgba);
+
+ /**
+ * @param iTextures The {@link ITexture} layers to add
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder addLayer(final ITexture... iTextures);
+
+ /**
+ * Set alpha blending
+ * @param allowAlpha to set
+ *
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder setAllowAlpha(final boolean allowAlpha);
+
+ /**
+ * Texture will render with same orientation as with vanilla blocks
+ *
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder stdOrient();
+
+ /**
+ * Texture will orientate from block's {@link ExtendedFacing}
+ *
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder extFacing();
+
+ /**
+ * Texture always render with full brightness to glow in the dark
+ *
+ * @return {@link ITextureBuilder} for chaining
+ */
+ ITextureBuilder glow();
+}
diff --git a/src/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java
index d282c02b11..a96e12c1ce 100644
--- a/src/main/java/gregtech/api/interfaces/IToolStats.java
+++ b/src/main/java/gregtech/api/interfaces/IToolStats.java
@@ -160,4 +160,4 @@ public interface IToolStats {
short[] getRGBa(boolean aIsToolHead, ItemStack aStack);
float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World worldObj, int aX, int aY, int aZ);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java
index 7eee5ce98f..dd73ffc1e7 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java
@@ -5,4 +5,4 @@ package gregtech.api.interfaces.internal;
*/
public interface IBCTileEntity /*extends IPowerReceptor*/ {
//
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java b/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java
index ff7b255f0e..22947b746d 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IGT_Mod.java
@@ -43,4 +43,4 @@ public interface IGT_Mod {
* Plays the Sonictron Sound for the ItemStack on the Client Side
*/
void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
index c7288cc26e..f500e8027e 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
@@ -29,7 +29,6 @@ public interface IGT_RecipeAdder {
* Adds a Centrifuge Recipe
*
* @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
@@ -66,7 +65,6 @@ public interface IGT_RecipeAdder {
* Adds a Electrolyzer Recipe
*
* @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
@@ -80,7 +78,6 @@ public interface IGT_RecipeAdder {
* Adds a Electrolyzer Recipe
*
* @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
@@ -118,7 +115,7 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 must be != null
* @param aInput2 must be != null
- * @param aOutput1 must be != null
+ * @param aOutput must be != null
* @param aOutput2 must be != null
* @param aDuration must be > 0
*/
@@ -130,7 +127,7 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 must be != null
* @param aInput2 must be != null
- * @param aOutput1 must be != null
+ * @param aOutput must be != null
* @param aOutput2 must be != null
* @param aDuration must be > 0
*/
@@ -150,7 +147,7 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 must be != null
* @param aInput2 must be != null
- * @param aOutput1 must be != null
+ * @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUtick must be > 0
*/
@@ -163,7 +160,7 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 must be != null
* @param aInput2 must be != null
- * @param aOutput1 must be != null
+ * @param aOutput must be != null
* @param aOutput2 must be != null
* @param aDuration must be > 0
* @param aEUtick must be > 0
@@ -171,17 +168,17 @@ public interface IGT_RecipeAdder {
boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, ItemStack aOutput2, int aDuration, int aEUtick);
/**
- * + * Adds a Chemical Recipe that only exists in the Large Chemical Reactor
- * + *
- * + * @param aInputs item inputs
- * + * @param aFluidInputs fluid inputs
- * + * @param aFluidOutputs fluid outputs
- * + * @param aOutputs item outputs
- * + * @param aDuration must be > 0
- * + * @param aEUtick must be > 0
- * + * aInputs and aFluidInputs must contain at least one valid input.
- * + * aOutputs and aFluidOutputs must contain at least one valid output.
- * +
+ * Adds a Chemical Recipe that only exists in the Large Chemical Reactor
+ *
+ * @param aInputs item inputs
+ * @param aFluidInputs fluid inputs
+ * @param aFluidOutputs fluid outputs
+ * @param aOutputs item outputs
+ * @param aDuration must be > 0
+ * @param aEUtick must be > 0
+ * <br>aInputs and aFluidInputs must contain at least one valid input.
+ * <br>aOutputs and aFluidOutputs must contain at least one valid output.
+ *
*/
boolean addMultiblockChemicalRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUtick);
@@ -244,7 +241,6 @@ public interface IGT_RecipeAdder {
* @param aInput1 must be != null
* @param aInput2 can be null
* @param aOutput1 must be != null
- * @param aOutput2 can be null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@@ -275,13 +271,13 @@ public interface IGT_RecipeAdder {
boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt);
/**
- * + * Adds an Assembler Recipe
- * + *
- * + * @param aInputs must be != null
- * + * @param aOutput1 must be != null
- * + * @param aDuration must be > 0
- * + * @param aEUt should be > 0
- * +
+ * Adds an Assembler Recipe
+ *
+ * @param aInputs must be != null
+ * @param aOutput1 must be != null
+ * @param aDuration must be > 0
+ * @param aEUt should be > 0
+ *
*/
boolean addAssemblerRecipe(ItemStack[] aInputs, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt);
@@ -377,6 +373,8 @@ public interface IGT_RecipeAdder {
*/
boolean addBenderRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt);
+ boolean addBenderRecipe(ItemStack aInput, ItemStack aCircuit, ItemStack aOutput, int aDuration, int aEUt);
+
/**
* Adds a Extruder Machine Recipe
*
@@ -610,10 +608,13 @@ public interface IGT_RecipeAdder {
boolean addAutoclaveRecipe(ItemStack aInput, ItemStack aCircuit, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt, boolean aCleanroom);
+ boolean addAutoclaveRecipe(ItemStack aInput, ItemStack aCircuit, FluidStack aFluidIn, FluidStack aFluidOut, ItemStack aOutput, int aChance, int aDuration, int aEUt, boolean aCleanroom);
+
boolean addAutoclaveSpaceRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt, boolean aCleanroom);
boolean addAutoclaveSpaceRecipe(ItemStack aInput, ItemStack aCircuit, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt, boolean aCleanroom);
+
/**
* Adds a Recipe for the Mixer
*/
diff --git a/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java
index 05208d36a4..7592ffbe1a 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java
@@ -10,4 +10,4 @@ import ic2.api.tile.IEnergyStorage;
*/
public interface IIC2TileEntity extends IEnergyStorage, IEnergySink, IEnergySource, IHasWorldObjectAndCoords {
//
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java b/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
index c4f416c823..13a3aba523 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
@@ -53,4 +53,4 @@ public interface IThaumcraftCompat {
Object addInfusionRecipe(String aResearch, ItemStack aMainInput, ItemStack[] aSideInputs, ItemStack aOutput, int aInstability, List<TC_Aspects.TC_AspectStack> aAspects);
Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List<TC_AspectStack> aAspects, ItemStack[] aResearchTriggers, Object[] aPages);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java b/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java
index d183961a0d..b62740f610 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IUETileEntity.java
@@ -3,4 +3,4 @@ package gregtech.api.interfaces.internal;
public interface IUETileEntity /*extends IElectrical*/ {
//
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java
index bc822250fd..cffcb4c4ab 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java
@@ -4,6 +4,18 @@ package gregtech.api.interfaces.metatileentity;
* For pipes, wires, and other MetaTiles which need to be decided whether they should connect to the block at each side.
*/
public interface IConnectable {
+ int NO_CONNECTION = 0b00000000;
+ int CONNECTED_DOWN = 0b00000001;
+ int CONNECTED_UP = 0b00000010;
+ int CONNECTED_NORTH = 0b00000100;
+ int CONNECTED_SOUTH = 0b00001000;
+ int CONNECTED_WEST = 0b00010000;
+ int CONNECTED_EAST = 0b00100000;
+ int CONNECTED_ALL = 0b00111111;
+ int HAS_FRESHFOAM = 0b01000000;
+ int HAS_HARDENEDFOAM = 0b10000000;
+ int HAS_FOAM = 0b11000000;
+
/**
* Try to connect to the Block at the specified side
* returns the connection state. Non-positive values for failed, others for succeeded.
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java
index 9306ef28f3..f67fb0f600 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java
@@ -4,4 +4,4 @@ public interface IMachineCallback<Machinetype extends IMetaTileEntity> {
Machinetype getCallbackBase();
void setCallbackBase(Machinetype callback);
Class<Machinetype> getType();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index f0ca426616..2bf61f6679 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -422,4 +422,5 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand
default boolean isMachineBlockUpdateRecursive(){
return true;
}
+
}
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java
index a7c1209d24..85237ac4f4 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java
@@ -12,4 +12,4 @@ public interface IMetaTileEntityCable extends IMetaTileEntity {
default long transferElectricity(byte aSide, long aVoltage, long aAmperage, HashSet<TileEntity> aAlreadyPassedSet) {
return transferElectricity(aSide, aVoltage, aAmperage, new ArrayList<>(aAlreadyPassedSet));
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java
index b795c793bc..6998556fd0 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java
@@ -97,4 +97,4 @@ public interface IBasicEnergyContainer extends IEnergyConnected {
* And yes, you can't directly decrease the Steam of a Machine. That is done by decreaseStoredEnergyUnits
*/
boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
index 76d121b8da..560d47c595 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
@@ -46,4 +46,4 @@ public interface ICoverable extends IRedstoneTileEntity, IHasInventory, IBasicEn
* Receiving a packet with cover data.
*/
void receiveCoverData(byte coverSide, int coverID, int coverData);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java b/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java
index d7c39c900c..9d19e7cef0 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java
@@ -28,4 +28,4 @@ public interface IDigitalChest extends IHasWorldObjectAndCoords {
* Gets the maximum Item count for this QChest alike Storage. This applies to the Data-Storage, not for the up to 192 buffered Items!
*/
int getMaxItemCount();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java
index 32fd276600..5a35e1ea52 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java
@@ -37,4 +37,4 @@ public interface IEnergyConductor extends IEnergyConnected {
* @return the Material the Cable Insulation consists of. (may return Materials._NULL)
*/
Materials getInsulationMaterial();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
index 47bec844ee..24d0576864 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
@@ -4,6 +4,7 @@ import cofh.api.energy.IEnergyReceiver;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_Utility;
+import gregtech.api.util.WorldSpawnedEventBuilder;
import gregtech.common.GT_Pollution;
import ic2.api.energy.tile.IEnergySink;
import net.minecraft.init.Blocks;
@@ -60,7 +61,7 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd
*/
public static final long emitEnergyToNetwork(long aVoltage, long aAmperage, IEnergyConnected aEmitter) {
long rUsedAmperes = 0;
- for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++)
+ for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++) {
if (aEmitter.outputsEnergyTo(i)) {
j = GT_Utility.getOppositeSide(i);
TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i);
@@ -70,6 +71,7 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd
if (tColor >= 0 && tColor != aEmitter.getColorization()) continue;
}
rUsedAmperes += ((IEnergyConnected) tTileEntity).injectEnergyUnits(j, aVoltage, aAmperage - rUsedAmperes);
+
} else if (tTileEntity instanceof IEnergySink) {
if (((IEnergySink) tTileEntity).acceptsEnergyFrom((TileEntity) aEmitter, ForgeDirection.getOrientation(j))) {
while (aAmperage > rUsedAmperes && ((IEnergySink) tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink) tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage)
@@ -112,11 +114,18 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd
if (GregTech_API.sMachineExplosions)
if (GT_Mod.gregtechproxy.mPollution)
GT_Pollution.addPollution(tWorld.getChunkFromBlockCoords(tX, tZ), 100000);
- tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true);
+
+ new WorldSpawnedEventBuilder.ExplosionEffectEventBuilder()
+ .setStrength(tStrength)
+ .setSmoking(true)
+ .setPosition(tX + 0.5, tY + 0.5, tZ + 0.5)
+ .setWorld(tWorld)
+ .run();
}
}
}
}
+ }
return rUsedAmperes;
}
}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java
index 3a32a557fb..2a8172a775 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java
@@ -90,4 +90,4 @@ public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasW
return rUsedSecondary;
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java
index bde86524c5..713fe73f22 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java
@@ -28,4 +28,4 @@ public interface IFibreConnected extends IColoredTileEntity, IHasWorldObjectAndC
* Gets the Signal this Blocks receives from this Fibre Color
*/
byte getFibreInput(byte aSide, byte aColor);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java
index 39c779e69c..221e290220 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java
@@ -18,4 +18,4 @@ public interface IGregTechDeviceInformation {
* @return an Array of Information Strings. Don't return null!
*/
String[] getInfoData();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
index 8e135fbc85..cf002d9e95 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
@@ -141,8 +141,7 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil
*/
@Override
default void onMachineBlockUpdate(){
- if(!isDead() && getMetaTileEntity()!=null &&
- getMetaTileEntity().getBaseMetaTileEntity()==this){
+ if(!isDead() && getMetaTileEntity() != null && getMetaTileEntity().getBaseMetaTileEntity() == this){
getMetaTileEntity().onMachineBlockUpdate();
}
}
@@ -152,8 +151,10 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil
*/
@Override
default boolean isMachineBlockUpdateRecursive() {
- return !isDead() && getMetaTileEntity()!=null &&
- getMetaTileEntity().getBaseMetaTileEntity()==this &&
+ return !isDead() && getMetaTileEntity() != null &&
+ getMetaTileEntity().getBaseMetaTileEntity() == this &&
getMetaTileEntity().isMachineBlockUpdateRecursive();
}
-} \ No newline at end of file
+
+ default void setShutdownStatus(boolean newStatus) {return;}
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java
index 42df520ff4..437d896800 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java
@@ -30,4 +30,4 @@ public interface IHasInventory extends ISidedInventory, IHasWorldObjectAndCoords
* @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added
*/
boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java
index 9b7489cf00..f367b7c073 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java
@@ -166,4 +166,4 @@ public interface IHasWorldObjectAndCoords {
* Opens the GUI with the ID = 0 of this TileEntity
*/
boolean openGUI(EntityPlayer aPlayer);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
index 588158d16c..f5eeaf9318 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
@@ -66,4 +66,12 @@ public interface IMachineProgress extends IHasWorldObjectAndCoords {
* sets the visible Active Status of the Machine
*/
void setActive(boolean aActive);
-} \ No newline at end of file
+
+ /**
+ * Indicates if the object in question was forced to shut down (i.e. loss of power)
+ * */
+ default boolean wasShutdown() {
+ return false;
+ }
+
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java
index 909f4077f0..c7590e98ed 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java
@@ -8,4 +8,8 @@ public interface IPipeRenderedTileEntity extends ICoverable, ITexturedTileEntity
byte getConnections();
ITexture[] getTextureUncovered(byte aSide);
-} \ No newline at end of file
+
+ default ITexture[] getTextureCovered(byte aSide) {
+ return getTextureUncovered(aSide);
+ }
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java
index 5be185b4a3..f9fff116f4 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java
@@ -34,4 +34,4 @@ public interface IRedstoneEmitter extends IHasWorldObjectAndCoords {
* Gets the Output for the comparator on the given Side
*/
byte getComparatorValue(byte aSide);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java
index 8c644be2e6..acee525137 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java
@@ -26,4 +26,4 @@ public interface IRedstoneReceiver extends IHasWorldObjectAndCoords {
* gets if the TileEntity receives Redstone at this Side
*/
boolean getRedstone(byte aSide);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java
index 6100572a7d..452699a172 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java
@@ -14,4 +14,4 @@ public interface IRedstoneTileEntity extends IRedstoneEmitter, IRedstoneReceiver
* Sends nothing to Client, just causes a Block Update.
*/
void issueBlockUpdate();
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java
index b16ae65548..fd1600903e 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java
@@ -8,4 +8,4 @@ public interface ITexturedTileEntity {
* @return the Textures rendered by the GT Rendering
*/
ITexture[] getTexture(Block aBlock, byte aSide);
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java
index dca9c5ce0b..94888cdfb8 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java
@@ -30,4 +30,4 @@ public interface ITurnable {
* Determine if the wrench can be used to set the block's facing.
*/
boolean isValidFacing(byte aSide);
-} \ No newline at end of file
+}