aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GTPP_Recipe.java38
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Plasma.java220
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java16
6 files changed, 270 insertions, 12 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
index 939cac2779..47e4a7ae53 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/BaseCustomTileEntity.java
@@ -23,7 +23,7 @@ public class BaseCustomTileEntity extends BaseMetaTileEntity {
public BaseCustomTileEntity() {
super();
- Logger.INFO("Created new BaseCustomTileEntity");
+ Logger.MACHINE_INFO("Created new BaseCustomTileEntity");
}
public void writeToNBT(NBTTagCompound aNBT) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java
index 0b8cb10606..a4440114e8 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/BaseCustomPower_MTE.java
@@ -10,7 +10,7 @@ public class BaseCustomPower_MTE extends BaseCustomTileEntity {
public BaseCustomPower_MTE() {
super();
- Logger.INFO("Created new BaseCustomPower_MTE");
+ Logger.MACHINE_INFO("Created new BaseCustomPower_MTE");
}
public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java
index ba98af25f7..8b7ccc202a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/custom/power/MetaTileEntityCustomPower.java
@@ -29,7 +29,7 @@ public abstract class MetaTileEntityCustomPower extends CustomMetaTileBase {
public void doExplosion(long aExplosionPower) {
if (MathUtils.randInt(1, 10) > 0) {
- Logger.INFO("Machine tried to explode, let's stop that. xo");
+ //Logger.INFO("Machine tried to explode, let's stop that. xo");
return;
}
@@ -70,7 +70,7 @@ public abstract class MetaTileEntityCustomPower extends CustomMetaTileBase {
public void onExplosion() {
if (MathUtils.randInt(1, 10) > 0) {
- Logger.INFO("Machine tried to explode, let's stop that. xo");
+ //Logger.INFO("Machine tried to explode, let's stop that. xo");
return;
}
// TODO Auto-generated method stub
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GTPP_Recipe.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GTPP_Recipe.java
new file mode 100644
index 0000000000..d5180ef4e1
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GTPP_Recipe.java
@@ -0,0 +1,38 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine_GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+
+public class GT_MetaTileEntity_BasicMachine_GTPP_Recipe extends GT_MetaTileEntity_BasicMachine_GT_Recipe {
+
+ public GT_MetaTileEntity_BasicMachine_GTPP_Recipe(int aID, String aName, String aNameRegional, int aTier,
+ String aDescription, GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity,
+ int aGUIParameterA, int aGUIParameterB, String aGUIName, String aSound, boolean aSharedTank,
+ boolean aRequiresFluidForFiltering, int aSpecialEffect, String aOverlays, Object[] aRecipe) {
+ super(aID, aName, aNameRegional, aTier, aDescription, aRecipes, aInputSlots, aOutputSlots, aTankCapacity,
+ aGUIParameterA, aGUIParameterB, aGUIName, aSound, aSharedTank, aRequiresFluidForFiltering, aSpecialEffect,
+ aOverlays, aRecipe);
+ }
+
+ public GT_MetaTileEntity_BasicMachine_GTPP_Recipe(String aName, int aTier, String aDescription,
+ GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage,
+ int aGUIParameterA, int aGUIParameterB, ITexture[][][] aTextures, String aGUIName, String aNEIName,
+ String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect) {
+ super(aName, aTier, aDescription, aRecipes, aInputSlots, aOutputSlots, aTankCapacity, aAmperage, aGUIParameterA,
+ aGUIParameterB, aTextures, aGUIName, aNEIName, aSound, aSharedTank, aRequiresFluidForFiltering, aSpecialEffect);
+ }
+
+ public GT_MetaTileEntity_BasicMachine_GTPP_Recipe(String aName, int aTier, String[] aDescription,
+ GT_Recipe_Map aRecipes, int aInputSlots, int aOutputSlots, int aTankCapacity, int aAmperage,
+ int aGUIParameterA, int aGUIParameterB, ITexture[][][] aTextures, String aGUIName, String aNEIName,
+ String aSound, boolean aSharedTank, boolean aRequiresFluidForFiltering, int aSpecialEffect) {
+ super(aName, aTier, aDescription, aRecipes, aInputSlots, aOutputSlots, aTankCapacity, aAmperage, aGUIParameterA,
+ aGUIParameterB, aTextures, aGUIName, aNEIName, aSound, aSharedTank, aRequiresFluidForFiltering, aSpecialEffect);
+ }
+
+
+
+
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Plasma.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Plasma.java
new file mode 100644
index 0000000000..aeae474fb7
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Plasma.java
@@ -0,0 +1,220 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import java.lang.reflect.Field;
+
+import com.google.common.collect.BiMap;
+
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+public class GT_MetaTileEntity_Hatch_Plasma extends GT_MetaTileEntity_Hatch_Input {
+
+ public final AutoMap<Fluid> mFluidsToUse = new AutoMap<Fluid>();
+ public final int mFluidCapacity;
+ private int mTotalPlasmaSupported = -1;
+
+ public GT_MetaTileEntity_Hatch_Plasma(final int aID, final String aName, final String aNameRegional) {
+ super(aID, aName, aNameRegional, 6);
+ mFluidCapacity = 256000;
+ initHatch();
+ }
+
+ public GT_MetaTileEntity_Hatch_Plasma(final String aName, final String aDescription,
+ final ITexture[][][] aTextures) {
+ super(aName, 6, aDescription, aTextures);
+ mFluidCapacity = 256000;
+ initHatch();
+ }
+
+ public GT_MetaTileEntity_Hatch_Plasma(final String aName, final String[] aDescription,
+ final ITexture[][][] aTextures) {
+ super(aName, 6, aDescription[0], aTextures);
+ mFluidCapacity = 256000;
+ initHatch();
+ }
+
+ private void initHatch() {
+
+ //Get all Plasmas, but the easiest way to do this is to just ask the Fluid Registry what exists and filter through them lazily.
+ Field fluidNameCache;
+ try {
+ fluidNameCache = ReflectionUtils.getField(FluidRegistry.class, "fluidNames");
+ } catch (NoSuchFieldException e) {
+ fluidNameCache = null;
+ }
+ AutoMap<String> mValidPlasmaNameCache = new AutoMap<String>();
+ if (fluidNameCache != null) {
+ try {
+ Object fluidNames = fluidNameCache.get(null);
+ if (fluidNames != null) {
+ try {
+ @SuppressWarnings("unchecked")
+ BiMap<Integer, String> fluidNamesMap = (BiMap<Integer, String>) fluidNames;
+ if (fluidNamesMap != null) {
+ for (String g : fluidNamesMap.values()) {
+ if (g.toLowerCase().contains("plasma")) {
+ mValidPlasmaNameCache.put(g);
+ }
+ }
+ }
+ } catch (ClassCastException e) {
+ }
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ }
+ }
+
+ AutoMap<Fluid> mPlasmaCache = new AutoMap<Fluid>();
+ if (!mValidPlasmaNameCache.isEmpty()) {
+ for (String y : mValidPlasmaNameCache) {
+ Fluid t = FluidRegistry.getFluid(y);
+ if (t != null) {
+ if (t.getTemperature() > 1000) {
+ mPlasmaCache.put(t);
+ }
+ }
+ }
+ }
+
+ if (!mPlasmaCache.isEmpty()) {
+ for (Fluid w : mPlasmaCache) {
+ mFluidsToUse.put(w);
+ }
+ }
+
+
+
+
+
+ }
+
+ public ITexture[] getTexturesActive(final ITexture aBaseTexture) {
+ return new ITexture[] { aBaseTexture };
+ }
+
+ public ITexture[] getTexturesInactive(final ITexture aBaseTexture) {
+ return new ITexture[] { aBaseTexture };
+ }
+
+ public boolean allowPutStack(final IGregTechTileEntity aBaseMetaTileEntity, final int aIndex, final byte aSide,
+ final ItemStack aStack) {
+ if (aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0) {
+ for (Fluid f : mFluidsToUse) {
+ if (f != null) {
+ if (GT_Utility.getFluidForFilledItem(aStack, true).getFluid() == f) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean isFluidInputAllowed(final FluidStack aFluid) {
+ for (Fluid f : mFluidsToUse) {
+ if (f != null) {
+ if (aFluid.getFluid() == f) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public int getCapacity() {
+ return this.mFluidCapacity;
+ }
+
+ public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
+ return (MetaTileEntity) new GT_MetaTileEntity_Hatch_Plasma(this.mName, this.mDescription, this.mTextures);
+ }
+
+ @Override
+ public String[] getDescription() {
+
+ if (mTotalPlasmaSupported < 0) {
+ if (mFluidsToUse.isEmpty()) {
+ mTotalPlasmaSupported = 0;
+ }
+ else {
+ mTotalPlasmaSupported = mFluidsToUse.size();
+ }
+ }
+
+ String aX = EnumChatFormatting.GRAY+"";
+ String a1 = EnumChatFormatting.GOLD+"Refined containment"+aX;
+ String a2 = EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.DARK_AQUA+getCapacity()+"L"+aX;
+ String a3 = EnumChatFormatting.GOLD+"Supports "+EnumChatFormatting.DARK_RED+mTotalPlasmaSupported+EnumChatFormatting.GOLD+" types of plasma"+aX;
+
+
+
+ String[] s2 = new String[]{
+ a1, a2, a3
+ };
+ return s2;
+ }
+
+ @Override
+ public boolean doesFillContainers() {
+ return true;
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(ITexture[] aTextures) {
+ // TODO Auto-generated method stub
+ return super.getTextureSet(aTextures);
+ }
+
+ private Field F1, F2;
+
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ byte a1 = 0, a2 = 0;
+ try {
+ if (F1 == null) {
+ F1 = ReflectionUtils.getField(getClass(), "actualTexture");
+ }
+ if (F2 == null) {
+ F2 = ReflectionUtils.getField(getClass(), "mTexturePage");
+ }
+
+ if (F1 != null) {
+ a1 = F1.getByte(this);
+ }
+ if (F2 != null) {
+ a2 = F2.getByte(this);
+ }
+ }
+ catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException n) {}
+
+ int textureIndex = a1 | a2 << 7;
+ byte texturePointer = (byte) (a1 & 127);
+
+
+
+ if (aSide == 1 || aSide == 0) {
+ ITexture g = textureIndex > 0 ? StaticFields59.getCasingTexturePages(a2, texturePointer) : BlockIcons.MACHINE_CASINGS[this.mTier][aColorIndex + 1];
+
+ return new ITexture[] {g};
+ }
+
+ return aSide != aFacing ?
+ (textureIndex > 0 ? new ITexture[] { StaticFields59.getCasingTexturePages(a2, texturePointer) } : new ITexture[] { BlockIcons.MACHINE_CASINGS[this.mTier][aColorIndex + 1] })
+ : (textureIndex > 0 ? (aActive ? this.getTexturesActive(StaticFields59.getCasingTexturePages(a2, texturePointer)) : this.getTexturesInactive(StaticFields59.getCasingTexturePages(a2, texturePointer)))
+ : (aActive ? this.getTexturesActive(BlockIcons.MACHINE_CASINGS[this.mTier][aColorIndex + 1]) : this.getTexturesInactive(BlockIcons.MACHINE_CASINGS[this.mTier][aColorIndex + 1])));
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index 892f8f332a..04c1cf34cc 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -74,8 +74,8 @@ GT_MetaTileEntity_MultiBlockBase {
Method a08 = findRecipe08 = ReflectionUtils.getMethod(GT_Recipe_Map.class, "findRecipe", IHasWorldObjectAndCoords.class, GT_Recipe.class, boolean.class, long.class, FluidStack[].class, ItemStack.class, ItemStack[].class);
Method a09 = findRecipe09 = ReflectionUtils.getMethod(GT_Recipe_Map.class, "findRecipe", IHasWorldObjectAndCoords.class, GT_Recipe.class, boolean.class, boolean.class, long.class, FluidStack[].class, ItemStack.class, ItemStack[].class);
- Logger.INFO("Found .08 findRecipe method? "+(a08 != null));
- Logger.INFO("Found .09 findRecipe method? "+(a09 != null));
+ Logger.MACHINE_INFO("Found .08 findRecipe method? "+(a08 != null));
+ Logger.MACHINE_INFO("Found .09 findRecipe method? "+(a09 != null));
//gregtech.api.util.GT_Recipe.GT_Recipe_Map.findRecipe(IHasWorldObjectAndCoords, GT_Recipe, boolean, long, FluidStack[], ItemStack, ItemStack...)
@@ -709,7 +709,7 @@ GT_MetaTileEntity_MultiBlockBase {
public boolean isMachineRunning() {
boolean aRunning = this.getBaseMetaTileEntity().isActive();
- Logger.INFO("Queried Multiblock is currently running: "+aRunning);
+ log("Queried Multiblock is currently running: "+aRunning);
return aRunning;
}
@@ -1552,7 +1552,7 @@ GT_MetaTileEntity_MultiBlockBase {
return true;
}
else {
- Logger.INFO("Found meta Tile: "+aMetaTileID);
+ log("Found meta Tile: "+aMetaTileID);
}
}
}
@@ -1561,17 +1561,17 @@ GT_MetaTileEntity_MultiBlockBase {
return true;
}
else if (aFoundBlock != aExpectedBlock) {
- Logger.INFO("A1 - Found: "+aFoundBlock.getLocalizedName()+":"+aFoundMeta+", Expected: "+aExpectedBlock.getLocalizedName()+":"+aExpectedMeta);
- Logger.INFO("Loc: "+(new BlockPos(aBaseMetaTileEntity).getLocationString()));
+ log("A1 - Found: "+aFoundBlock.getLocalizedName()+":"+aFoundMeta+", Expected: "+aExpectedBlock.getLocalizedName()+":"+aExpectedMeta);
+ log("Loc: "+(new BlockPos(aBaseMetaTileEntity).getLocationString()));
return false;
}
else if (aFoundMeta != aExpectedMeta) {
- Logger.INFO("A2");
+ log("A2");
return false;
}
}
- Logger.INFO("A3");
+ log("A3");
return false;
}