aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java5
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java11
-rw-r--r--src/main/java/gregtech/api/interfaces/IIconContainer.java11
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java1
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java1
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java20
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java7
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java38
-rw-r--r--src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java1
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java5
-rw-r--r--src/main/java/gregtech/api/util/GT_Util.java2
-rw-r--r--src/main/java/gregtech/common/render/GT_IconFlipped.java17
-rw-r--r--src/main/java/gregtech/common/render/GT_MultiTexture.java7
-rw-r--r--src/main/java/gregtech/common/render/GT_TextureBuilder.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java6
16 files changed, 111 insertions, 25 deletions
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index f7dfa461dd..cda42cbcbf 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -1,6 +1,7 @@
package gregtech.api.enums;
import gregtech.api.fluid.FluidTankGT;
+import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.interfaces.internal.IGT_RecipeAdder;
import gregtech.api.net.IGT_NetworkHandler;
@@ -281,6 +282,9 @@ public class GT_Values {
}
+ /** The Color White as RGB Short Array. */
+ public static final short[] UNCOLORED_RBGA = {255, 255, 255, 255};
+ /** The Color White as simple Integer (0x00ffffff). */
public static final int UNCOLORED = 0x00ffffff;
/**
@@ -456,6 +460,7 @@ public class GT_Values {
public static final FluidTankInfo[] emptyFluidTankInfo = new FluidTankInfo[0];
public static final FluidStack[] emptyFluidStack = new FluidStack[0];
public static final ItemStack[] emptyItemStackArray = new ItemStack[0];
+ public static final IIconContainer[] emptyIconContainerArray = new IIconContainer[3];
/**
* Pretty formatting for author names.
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index 115d9ece26..666098b079 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -2048,11 +2048,16 @@ public class Textures {
protected String mIconName;
public CustomIcon(String aIconName) {
- mIconName = aIconName;
+ mIconName = !aIconName.contains(":") ? RES_PATH_BLOCK + aIconName : aIconName;
GregTech_API.sGTBlockIconload.add(this);
}
@Override
+ public void run() {
+ mIcon = GregTech_API.sBlockIcons.registerIcon(mIconName);
+ }
+
+ @Override
public IIcon getIcon() {
return mIcon;
}
@@ -2067,10 +2072,6 @@ public class Textures {
return TextureMap.locationBlocksTexture;
}
- @Override
- public void run() {
- mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName);
- }
}
}
diff --git a/src/main/java/gregtech/api/interfaces/IIconContainer.java b/src/main/java/gregtech/api/interfaces/IIconContainer.java
index 780edf18d6..4682955603 100644
--- a/src/main/java/gregtech/api/interfaces/IIconContainer.java
+++ b/src/main/java/gregtech/api/interfaces/IIconContainer.java
@@ -5,6 +5,8 @@ import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
+import static gregtech.api.enums.GT_Values.UNCOLORED_RBGA;
+
public interface IIconContainer {
/**
* @return A regular Icon.
@@ -32,5 +34,14 @@ public interface IIconContainer {
@SideOnly(Side.CLIENT)
ResourceLocation getTextureFile();
+ @SideOnly(Side.CLIENT)
+ default public short[] getIconColor(int aRenderPass) {
+ return UNCOLORED_RBGA;
+ }
+
+ @SideOnly(Side.CLIENT)
+ default public boolean isUsingColorModulation(int aRenderPass) {
+ return aRenderPass == 0;
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
index fdac12c621..f7104c9b93 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
@@ -350,7 +350,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
public void receiveCoverData(byte aCoverSide, int aCoverID, int aCoverData) {
if ((aCoverSide >= 0 && aCoverSide < 6))
setCoverIDAtSideNoUpdate(aCoverSide, aCoverID);
- setCoverDataAtSide(aCoverSide, aCoverData);
+ setCoverDataAtSide(aCoverSide, aCoverData);
}
@Override
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
index 13d2385381..7129fd0aab 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
@@ -322,6 +322,7 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
@Override
public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
+ // TODO: MTE(Texture)
return null;
}
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
index feb2a0a0f5..852ffa3c8e 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
@@ -103,6 +103,7 @@ public class MultiTileEntityBlockInternal extends Block implements IRenderedBloc
@Override
public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
+ // TODO: MTE(Texture)
return null;
}
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
index ba5938769c..e6740a0663 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityClassContainer.java
@@ -1,11 +1,11 @@
package gregtech.api.multitileentity;
import gregtech.api.enums.Materials;
-import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
+import gregtech.api.multitileentity.base.BaseMultiTileEntity;
import gregtech.api.util.GT_Util;
import net.minecraft.block.material.Material;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.Tuple;
import java.lang.ref.WeakReference;
@@ -17,9 +17,9 @@ public class MultiTileEntityClassContainer {
private String mCategoryName;
public final short mID;
- public Class<? extends TileEntity> mClass;
+ public Class<? extends BaseMultiTileEntity> mClass;
public MultiTileEntityBlock mBlock;
- public TileEntity mCanonicalTileEntity;
+ public BaseMultiTileEntity mCanonicalTileEntity;
public NBTTagCompound mParameters;
// These have defaults
@@ -28,7 +28,7 @@ public class MultiTileEntityClassContainer {
public boolean mHidden = false;
- public MultiTileEntityClassContainer(MultiTileEntityRegistry aRegistry, int aID, Class<? extends TileEntity> aClass) {
+ public MultiTileEntityClassContainer(MultiTileEntityRegistry aRegistry, int aID, Class<? extends BaseMultiTileEntity> aClass) {
/* Start the Builder */
mRegistry = new WeakReference<>(aRegistry);
mID = (short) aID;
@@ -44,7 +44,7 @@ public class MultiTileEntityClassContainer {
mParameters.setInteger(NBT.COLOR, GT_Util.getRGBInt(Materials.get(mParameters.getString(NBT.MATERIAL)).getRGBA()));
try {mCanonicalTileEntity = mClass.newInstance();} catch (Throwable e) {throw new IllegalArgumentException(e);}
- if (mCanonicalTileEntity instanceof IMultiTileEntity) ((IMultiTileEntity) mCanonicalTileEntity).initFromNBT(mParameters, mID, (short) -1);
+ mCanonicalTileEntity.initFromNBT(mParameters, mID, (short) -1);
return registry != null && registry.add(this.mLocalized, this.mCategoryName, this) != null;
}
@@ -79,6 +79,8 @@ public class MultiTileEntityClassContainer {
return this;
}
+ /* These methods are builder methods for commonly used NBT tags */
+
public MultiTileEntityClassContainer material(Material aMaterial) {
mParameters.setString(NBT.MATERIAL, aMaterial.toString());
return this;
@@ -94,4 +96,10 @@ public class MultiTileEntityClassContainer {
return this;
}
+ public MultiTileEntityClassContainer setNBT(Tuple... aTags) {
+ /* Merge in arbitrary NBT tuples of (key, value). Useful for anything for which a custom method has not yet been exposed */
+ mParameters = GT_Util.fuseNBT(mParameters, GT_Util.makeNBT(aTags));
+ return this;
+ }
+
}
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
index 3e05efaf70..0bb9af1daa 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
@@ -5,6 +5,7 @@ import com.gtnewhorizon.gtnhlib.util.map.ItemStackMap;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
+import gregtech.api.multitileentity.base.BaseMultiTileEntity;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Util;
@@ -87,7 +88,7 @@ public class MultiTileEntityRegistry {
return NAMED_REGISTRIES.get(aRegistryName);
}
- public MultiTileEntityClassContainer create(int aID, Class<? extends TileEntity> aClass) {
+ public MultiTileEntityClassContainer create(int aID, Class<? extends BaseMultiTileEntity> aClass) {
return new MultiTileEntityClassContainer(this, aID, aClass);
}
@@ -115,7 +116,7 @@ public class MultiTileEntityRegistry {
tFailed = true;
}
if (mRegistry.containsKey(aClassContainer.mID)) {
- GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: Class Container uses occupied MetaData!");
+ GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: Class Container uses occupied MetaData! (" + aClassContainer.mID + ")");
tFailed = true;
}
}
@@ -132,7 +133,7 @@ public class MultiTileEntityRegistry {
mRegistrations.add(aClassContainer);
if (sRegisteredTileEntities.add(aClassContainer.mCanonicalTileEntity.getClass())) {
- if (aClassContainer.mCanonicalTileEntity instanceof IMultiTileEntity) ((IMultiTileEntity)aClassContainer.mCanonicalTileEntity).onRegistrationFirst(this, aClassContainer.mID);
+ aClassContainer.mCanonicalTileEntity.onRegistrationFirst(this, aClassContainer.mID);
}
// // TODO: Recipe
// if (aRecipe != null && aRecipe.length > 1) {
diff --git a/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
index f479b8150f..96a04b6147 100644
--- a/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/base/BaseMultiTileEntity.java
@@ -7,6 +7,8 @@ import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.enums.SoundResource;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregtechWailaProvider;
import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords;
@@ -20,11 +22,14 @@ import gregtech.api.net.GT_Packet_New;
import gregtech.api.net.GT_Packet_TileEntity;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.XSTR;
+import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Util;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.ISerializableObject;
+import gregtech.common.render.GT_MultiTexture;
+import gregtech.common.render.GT_RenderedTexture;
import gregtech.common.render.IRenderedBlock;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
@@ -53,17 +58,20 @@ import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidTank;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import static gregtech.GT_Mod.GT_FML_LOGGER;
+import static gregtech.api.enums.GT_Values.emptyIconContainerArray;
import static gregtech.api.enums.GT_Values.NBT;
import static gregtech.api.enums.GT_Values.OPOS;
import static gregtech.api.enums.GT_Values.SIDE_WEST;
import static gregtech.api.enums.GT_Values.VALID_SIDES;
public abstract class BaseMultiTileEntity extends CoverableTileEntity implements IMultiTileEntity, IHasWorldObjectAndCoords, IRenderedBlock, IGregtechWailaProvider {
+
+ public IIconContainer[] mTextures = emptyIconContainerArray, mTexturesFront = emptyIconContainerArray;
+
// Makes a Bounding Box without having to constantly specify the Offset Coordinates.
protected static final float[] PX_BOX = {0, 0, 0, 1, 1, 1};
@@ -151,6 +159,21 @@ public abstract class BaseMultiTileEntity extends CoverableTileEntity implements
readCoverNBT(aNBT);
readMultiTileNBT(aNBT);
+ if(GregTech_API.sBlockIcons == null && aNBT.hasKey(NBT.TEXTURE)) {
+ // Loading the registry
+ final String textureName = aNBT.getString(NBT.TEXTURE);
+ mTextures = new IIconContainer[] {
+ new Textures.BlockIcons.CustomIcon("machines/multiblockparts/"+textureName+"/bottom"),
+ new Textures.BlockIcons.CustomIcon("machines/multiblockparts/"+textureName+"/top"),
+ new Textures.BlockIcons.CustomIcon("machines/multiblockparts/"+textureName+"/side"),
+ };
+ } else {
+ // Loading an instance
+ final TileEntity tCanonicalTileEntity = MultiTileEntityRegistry.getCanonicalTileEntity(getMultiTileEntityRegistryID(), getMultiTileEntityID());
+ if(tCanonicalTileEntity instanceof BaseMultiTileEntity)
+ mTextures = ((BaseMultiTileEntity)tCanonicalTileEntity).mTextures;
+ }
+
if (mCoverData == null || mCoverData.length != 6) mCoverData = new ISerializableObject[6];
if (mCoverSides.length != 6) mCoverSides = new int[]{0, 0, 0, 0, 0, 0};
if (mSidedRedstone.length != 6) mSidedRedstone = new byte[]{15, 15, 15, 15, 15, 15};
@@ -298,14 +321,21 @@ public abstract class BaseMultiTileEntity extends CoverableTileEntity implements
final ITexture[] textureUncovered = getTexture(aBlock, aSide, true, aRenderPass);
if (coverTexture != null) {
- final ITexture[] textureCovered = Arrays.copyOf(textureUncovered, textureUncovered.length + 1);
- textureCovered[textureUncovered.length] = coverTexture;
- return textureCovered;
+ return new ITexture[]{
+ GT_MultiTexture.get(textureUncovered),
+ coverTexture
+ };
} else {
return textureUncovered;
}
}
+ @Override public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
+ // Top, bottom or side
+ aSide = (byte)Math.min(aSide, 2);
+ return new ITexture[]{TextureFactory.of(mTextures[aSide])};
+ }
+
@Override
public void setCustomName(String aName) {
mCustomName = aName;
diff --git a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
index 41b6a74aef..3997b5af71 100644
--- a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
+++ b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
@@ -95,6 +95,7 @@ public class MultiTileBasicMachine extends BaseTickableMultiTileEntity {
@Override
public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
+ // TODO: MTE(Texture)
return new ITexture[0];
}
diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java
index 9b5c76ef8f..e64ace1452 100644
--- a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java
+++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java
@@ -9,6 +9,7 @@ import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_CoverBehaviorBase;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.ISerializableObject;
+import gregtech.common.render.GT_MultiTexture;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.block.Block;
@@ -188,7 +189,9 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM
@Override
public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
- final ITexture baseTexture = MACHINE_CASINGS[1][2];
+ // TODO: MTE(Texture)
+// final ITexture baseTexture = MACHINE_CASINGS[1][2];
+ final ITexture baseTexture = TextureFactory.of(super.getTexture(aBlock, aSide, isActive, aRenderPass));
if(mMode != 0 && aSide == mFacing) {
if(mMode == getModeOrdinal(ITEM_IN))
return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(ITEM_IN_SIGN) };
diff --git a/src/main/java/gregtech/api/util/GT_Util.java b/src/main/java/gregtech/api/util/GT_Util.java
index 46cecfd525..2d1a1e389d 100644
--- a/src/main/java/gregtech/api/util/GT_Util.java
+++ b/src/main/java/gregtech/api/util/GT_Util.java
@@ -21,7 +21,7 @@ public class GT_Util {
public static NBTTagCompound fuseNBT(NBTTagCompound aNBT1, NBTTagCompound aNBT2) {
if (aNBT1 == null) return aNBT2 == null ? new NBTTagCompound() : (NBTTagCompound)aNBT2.copy();
- NBTTagCompound rNBT = (NBTTagCompound)aNBT1.copy();
+ final NBTTagCompound rNBT = (NBTTagCompound)aNBT1.copy();
if (aNBT2 == null) return rNBT;
for (Object tKey : aNBT2.func_150296_c/*getKeySet*/()) if (!rNBT.hasKey(tKey.toString())) rNBT.setTag(tKey.toString(), aNBT2.getTag(tKey.toString()));
return rNBT;
diff --git a/src/main/java/gregtech/common/render/GT_IconFlipped.java b/src/main/java/gregtech/common/render/GT_IconFlipped.java
index c3eee2900f..d4f96fed4f 100644
--- a/src/main/java/gregtech/common/render/GT_IconFlipped.java
+++ b/src/main/java/gregtech/common/render/GT_IconFlipped.java
@@ -11,6 +11,8 @@ public class GT_IconFlipped implements IIcon {
private final boolean flipV;
public GT_IconFlipped(IIcon baseIcon, boolean flipU, boolean flipV) {
+ if(baseIcon == null)
+ System.out.println("HI");
this.baseIcon = baseIcon;
this.flipU = flipU;
this.flipV = flipV;
@@ -19,6 +21,7 @@ public class GT_IconFlipped implements IIcon {
/**
* Returns the width of the icon, in pixels.
*/
+ @Override
public int getIconWidth() {
return this.baseIcon.getIconWidth();
}
@@ -26,6 +29,7 @@ public class GT_IconFlipped implements IIcon {
/**
* Returns the height of the icon, in pixels.
*/
+ @Override
public int getIconHeight() {
return this.baseIcon.getIconHeight();
}
@@ -33,6 +37,7 @@ public class GT_IconFlipped implements IIcon {
/**
* Returns the minimum U coordinate to use when rendering with this icon.
*/
+ @Override
public float getMinU() {
return this.flipU ? this.baseIcon.getMaxU() : this.baseIcon.getMinU();
}
@@ -40,6 +45,7 @@ public class GT_IconFlipped implements IIcon {
/**
* Returns the maximum U coordinate to use when rendering with this icon.
*/
+ @Override
public float getMaxU() {
return this.flipU ? this.baseIcon.getMinU() : this.baseIcon.getMaxU();
}
@@ -47,14 +53,16 @@ public class GT_IconFlipped implements IIcon {
/**
* Gets a U coordinate on the icon. 0 returns uMin and 16 returns uMax. Other arguments return in-between values.
*/
+ @Override
public float getInterpolatedU(double p_94214_1_) {
- float f = this.getMaxU() - this.getMinU();
+ final float f = this.getMaxU() - this.getMinU();
return this.getMinU() + f * ((float) p_94214_1_ / 16.0F);
}
/**
* Returns the minimum V coordinate to use when rendering with this icon.
*/
+ @Override
public float getMinV() {
return this.flipV ? this.baseIcon.getMaxV() : this.baseIcon.getMinV();
}
@@ -62,6 +70,7 @@ public class GT_IconFlipped implements IIcon {
/**
* Returns the maximum V coordinate to use when rendering with this icon.
*/
+ @Override
public float getMaxV() {
return this.flipV ? this.baseIcon.getMinV() : this.baseIcon.getMaxV();
}
@@ -69,12 +78,14 @@ public class GT_IconFlipped implements IIcon {
/**
* Gets a V coordinate on the icon. 0 returns vMin and 16 returns vMax. Other arguments return in-between values.
*/
+ @Override
public float getInterpolatedV(double p_94207_1_) {
- float f = this.getMaxV() - this.getMinV();
+ final float f = this.getMaxV() - this.getMinV();
return this.getMinV() + f * ((float) p_94207_1_ / 16.0F);
}
+ @Override
public String getIconName() {
return this.baseIcon.getIconName();
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/common/render/GT_MultiTexture.java b/src/main/java/gregtech/common/render/GT_MultiTexture.java
index b72a6b1953..2d78b9b988 100644
--- a/src/main/java/gregtech/common/render/GT_MultiTexture.java
+++ b/src/main/java/gregtech/common/render/GT_MultiTexture.java
@@ -1,5 +1,6 @@
package gregtech.common.render;
+import gregtech.GT_Mod;
import gregtech.api.interfaces.ITexture;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
@@ -11,6 +12,12 @@ import net.minecraft.client.renderer.RenderBlocks;
public class GT_MultiTexture extends GT_TextureBase implements ITexture {
protected final ITexture[] mTextures;
+
+ public static GT_MultiTexture get(ITexture... aTextures) {
+ return GT_Mod.instance.isClientSide() ? new GT_MultiTexture(aTextures) : null;
+ }
+
+
protected GT_MultiTexture(ITexture... aTextures) {
mTextures = aTextures;
}
diff --git a/src/main/java/gregtech/common/render/GT_TextureBuilder.java b/src/main/java/gregtech/common/render/GT_TextureBuilder.java
index f79e438dd7..708720ad40 100644
--- a/src/main/java/gregtech/common/render/GT_TextureBuilder.java
+++ b/src/main/java/gregtech/common/render/GT_TextureBuilder.java
@@ -139,7 +139,7 @@ public class GT_TextureBuilder implements ITextureBuilder {
private static Boolean apply(Block b, Byte m) {
Class<?> clazz = b.getClass();
while (clazz != Block.class) {
- String className = clazz.getName();
+ final String className = clazz.getName();
if (GT_Values.mCTMDisabledBlock.contains(className)) return false;
if (GT_Values.mCTMEnabledBlock.contains(className)) return true;
clazz = clazz.getSuperclass();
diff --git a/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java b/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
index d470518842..23a2a484d1 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multiblock/MultiBlock_Macerator.java
@@ -8,6 +8,7 @@ import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;
import gregtech.api.multitileentity.multiblock.base.MultiBlock_Stackable;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.common.render.GT_MultiTexture;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@@ -117,13 +118,18 @@ public class MultiBlock_Macerator extends MultiBlock_Stackable<MultiBlock_Macera
@Override
public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) {
+ // TODO: MTE(Texture)
if(mFacing == aSide) {
return new ITexture[]{
+ // Base Texture
MACHINE_CASINGS[1][0],
+ // Active
TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE).extFacing().build(),
+ // Active Glow
TextureFactory.builder().addIcon(OVERLAY_FRONT_ELECTRIC_BLAST_FURNACE_ACTIVE_GLOW).extFacing().glow().build()
};
}
+ // Base Texture
return new ITexture[]{ MACHINE_CASINGS[1][0]};
}