aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java109
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java198
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java7
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Ores.java10
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Arm.java2
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FacadeBase.java8
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java2
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ItemFilter.java8
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java8
-rw-r--r--src/main/java/gregtech/common/fluid/GT_Fluid.java205
-rw-r--r--src/main/java/gregtech/common/fluid/GT_FluidBuilder.java39
-rw-r--r--src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java2
-rw-r--r--src/main/java/gregtech/common/power/Power.java2
-rw-r--r--src/main/java/gregtech/common/power/UnspecifiedEUPower.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java23
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java8
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java18
-rw-r--r--src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java2
20 files changed, 434 insertions, 235 deletions
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 1f0eda5034..3bc5557fac 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -5,6 +5,7 @@ import static gregtech.api.enums.FluidState.GAS;
import static gregtech.api.enums.FluidState.LIQUID;
import static gregtech.api.enums.FluidState.MOLTEN;
import static gregtech.api.enums.FluidState.PLASMA;
+import static gregtech.api.enums.GT_Values.MOD_ID;
import static gregtech.api.enums.GT_Values.MOD_ID_RC;
import static gregtech.api.enums.GT_Values.MOD_ID_TC;
import static gregtech.api.enums.GT_Values.MOD_ID_TE;
@@ -43,7 +44,6 @@ import gregtech.api.fluid.GT_FluidFactory;
import gregtech.api.interfaces.IBlockOnWalkOver;
import gregtech.api.interfaces.IGlobalWirelessEnergy;
import gregtech.api.interfaces.IProjectileItem;
-import gregtech.api.interfaces.fluid.IGT_Fluid;
import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.interfaces.internal.IThaumcraftCompat;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -51,7 +51,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaGenerated_Item;
import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.objects.GT_ChunkManager;
-import gregtech.api.objects.GT_Fluid;
import gregtech.api.objects.GT_FluidStack;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_UO_DimensionList;
@@ -119,6 +118,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
+import net.minecraft.util.ResourceLocation;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
import net.minecraft.world.WorldSettings.GameType;
@@ -138,7 +138,6 @@ import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.event.world.ChunkDataEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
-import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
@@ -2552,7 +2551,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
} else return;
for (int i = 0; i < 3; i++) {
crackedFluids[i] = GT_FluidFactory.builder(namePrefixes[i] + aMaterial.mName.toLowerCase(Locale.ENGLISH))
- .withTextureFrom((IGT_Fluid) uncrackedFluid)
+ .withIconsFrom(uncrackedFluid)
.withLocalizedName(orePrefixes[i].mLocalizedMaterialPre + aMaterial.mDefaultLocalName)
.withColorRGBA(aMaterial.mRGBa)
.withStateAndTemperature(GAS, 775)
@@ -2603,7 +2602,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
} else return;
for (int i = 0; i < 3; i++) {
crackedFluids[i] = GT_FluidFactory.builder(namePrefixes[i] + aMaterial.mName.toLowerCase(Locale.ENGLISH))
- .withTextureFrom((IGT_Fluid) uncrackedFluid)
+ .withIconsFrom(uncrackedFluid)
.withLocalizedName(orePrefixes[i].mLocalizedMaterialPre + aMaterial.mDefaultLocalName)
.withColorRGBA(aMaterial.mRGBa)
.withStateAndTemperature(GAS, 775)
@@ -2640,19 +2639,19 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
}
/**
- * @deprecated use {@link IGT_Fluid#addFluid}
+ * @deprecated use {@link GT_FluidFactory#builder}
* @see GT_FluidFactory#of(String, String, Materials, FluidState, int)
* @see GT_FluidFactory#of(String, String, FluidState, int)
*/
@Deprecated
public Fluid addFluid(String aName, String aLocalized, Materials aMaterial, int aState, int aTemperatureK) {
- return addFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, null, null, 0);
+ return GT_FluidFactory.of(aName, aLocalized, aMaterial, FluidState.VALID_STATES[aState], aTemperatureK);
}
/**
- * @deprecated use {@link IGT_Fluid#addFluid}
- * @see GT_FluidFactory#builder
+ * @deprecated use {@link GT_FluidFactory#builder}
*/
+ @SuppressWarnings({"MethodWithTooManyParameters"}) // Deprecated method
@Deprecated
public Fluid addFluid(
String aName,
@@ -2663,24 +2662,20 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
ItemStack aFullContainer,
ItemStack aEmptyContainer,
int aFluidAmount) {
- return addFluid(
- aName,
- aName.toLowerCase(Locale.ENGLISH),
- aLocalized,
- aMaterial,
- null,
- aState,
- aTemperatureK,
- aFullContainer,
- aEmptyContainer,
- aFluidAmount);
+ return GT_FluidFactory.builder(aName)
+ .withLocalizedName(aLocalized)
+ .withStateAndTemperature(FluidState.fromValue(aState), aTemperatureK)
+ .buildAndRegister()
+ .configureMaterials(aMaterial)
+ .registerContainers(aFullContainer, aEmptyContainer, aFluidAmount)
+ .asFluid();
}
/**
- * @deprecated use {@link IGT_Fluid#addFluid}
- * @see GT_FluidFactory#builder
+ * @deprecated use {@link GT_FluidFactory#builder}
*/
@Deprecated
+ @SuppressWarnings({"MethodWithTooManyParameters"}) // Deprecated method
public Fluid addFluid(
String aName,
String aTexture,
@@ -2692,67 +2687,15 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
ItemStack aFullContainer,
ItemStack aEmptyContainer,
int aFluidAmount) {
- aName = aName.toLowerCase(Locale.ENGLISH);
-
- Fluid rFluid = new GT_Fluid(aName, aTexture, aRGBa != null ? aRGBa : Dyes._NULL.getRGBA());
- GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), aLocalized == null ? aName : aLocalized);
- if (FluidRegistry.registerFluid(rFluid)) {
- switch (aState) {
- case 0:
- rFluid.setGaseous(false);
- rFluid.setViscosity(10000);
- break;
- case 1:
- case 4:
- rFluid.setGaseous(false);
- rFluid.setViscosity(1000);
- break;
- case 2:
- rFluid.setGaseous(true);
- rFluid.setDensity(-100);
- rFluid.setViscosity(200);
- break;
- case 3:
- rFluid.setGaseous(true);
- rFluid.setDensity(55536);
- rFluid.setViscosity(10);
- rFluid.setLuminosity(15);
- }
- } else {
- rFluid = FluidRegistry.getFluid(aName);
- }
- if (rFluid.getTemperature() == new Fluid("test").getTemperature()) {
- rFluid.setTemperature(aTemperatureK);
- }
- if (aMaterial != null) {
- switch (aState) {
- case 0:
- aMaterial.mSolid = rFluid;
- break;
- case 1:
- aMaterial.mFluid = rFluid;
- break;
- case 2:
- aMaterial.mGas = rFluid;
- break;
- case 3:
- aMaterial.mPlasma = rFluid;
- break;
- case 4:
- aMaterial.mStandardMoltenFluid = rFluid;
- }
- }
- if ((aFullContainer != null)
- && (aEmptyContainer != null)
- && (!FluidContainerRegistry.registerFluidContainer(
- new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer))) {
- GT_Values.RA.addFluidCannerRecipe(
- aFullContainer,
- GT_Utility.getContainerItem(aFullContainer, false),
- null,
- new FluidStack(rFluid, aFluidAmount));
- }
- return rFluid;
+ return GT_FluidFactory.builder(aName)
+ .withLocalizedName(aLocalized)
+ .withStillIconResourceLocation(new ResourceLocation(MOD_ID, "fluids/fluid." + aTexture))
+ .withColorRGBA(aRGBa)
+ .withStateAndTemperature(FluidState.fromValue(aState), aTemperatureK)
+ .buildAndRegister()
+ .configureMaterials(aMaterial)
+ .registerContainers(aFullContainer, aEmptyContainer, aFluidAmount)
+ .asFluid();
}
public File getSaveDirectory() {
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index b8a76d8980..01327b881f 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -223,6 +223,45 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
aDuration,
aEUt,
aCleanroom ? -100 : 0);
+ ItemStack[] itemInputs = {aInput1, aInput2};
+ ItemStack[] itemOutputs = {aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6};
+ FluidStack[] fluidInputs = {aFluidInput, null, null};
+ FluidStack[] fluidOutputs = {aFluidOutput, null, null, null, null, null, null};
+
+ byte iNumber = 0;
+ byte oNumber = 0;
+
+ for (ItemStack item : itemInputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(aInput1, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidInputs[iNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemInputs[iNumber] = null;
+ }
+ }
+ iNumber++;
+ }
+
+ for (ItemStack item : itemOutputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(item, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidOutputs[oNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemOutputs[oNumber] = null;
+ }
+ }
+ oNumber++;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sMultiblockCentrifugeRecipes.addRecipe(
+ false,
+ itemInputs,
+ itemOutputs,
+ null,
+ aChances,
+ fluidInputs,
+ fluidOutputs,
+ aDuration,
+ aEUt,
+ aCleanroom ? -100 : 0);
return true;
}
@@ -308,6 +347,38 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
aDuration,
aEUt,
0);
+ ItemStack[] itemInputs = {aInput1, aInput2};
+ ItemStack[] itemOutputs = {aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6};
+ FluidStack[] fluidInputs = {aFluidInput, null, null};
+ FluidStack[] fluidOutputs = {aFluidOutput, null, null, null, null, null, null};
+
+ byte iNumber = 0;
+ byte oNumber = 0;
+
+ for (ItemStack item : itemInputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(aInput1, true) != null
+ || GT_Utility.isCellEmpty(item)
+ || GT_Utility.checkIfSameIntegratedCircuit(item)) {
+ fluidInputs[iNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemInputs[iNumber] = null;
+ }
+ }
+ iNumber++;
+ }
+
+ for (ItemStack item : itemOutputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(item, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidOutputs[oNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemOutputs[oNumber] = null;
+ }
+ }
+ oNumber++;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sMultiblockElectrolyzerRecipes.addRecipe(
+ false, itemInputs, itemOutputs, null, aChances, fluidInputs, fluidOutputs, aDuration, aEUt, 0);
return true;
}
@@ -2423,6 +2494,36 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
aDuration,
aEUt,
0);
+ ItemStack[] itemInputs = {aInput1, aInput2, aInput3, aInput4, aInput5, aInput6, aInput7, aInput8, aInput9};
+ ItemStack[] itemOutputs = {aOutput};
+ FluidStack[] fluidInputs = {aFluidInput, null, null, null, null, null, null, null, null, null};
+ FluidStack[] fluidOutputs = {aFluidOutput, null};
+
+ byte iNumber = 0;
+ byte oNumber = 0;
+
+ for (ItemStack item : itemInputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(aInput1, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidInputs[iNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemInputs[iNumber] = null;
+ }
+ }
+ iNumber++;
+ }
+
+ for (ItemStack item : itemOutputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(item, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidOutputs[oNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemOutputs[oNumber] = null;
+ }
+ }
+ oNumber++;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes.addRecipe(
+ false, itemInputs, itemOutputs, null, null, fluidInputs, fluidOutputs, aDuration, aEUt, 0);
return true;
}
@@ -2445,6 +2546,73 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
aDuration,
aEUt,
0);
+ List<ItemStack> tItemInputList;
+ if (ItemInputArray == null) {
+ tItemInputList = new ArrayList<>(1);
+ } else {
+ tItemInputList = new ArrayList<>(Arrays.asList(ItemInputArray));
+ }
+ List<FluidStack> tFluidInputList;
+ if (FluidInputArray != null) {
+ tFluidInputList = new ArrayList<>(Arrays.asList(FluidInputArray));
+ } else {
+ tFluidInputList = new ArrayList<>(1);
+ }
+ for (int i = 0; i < tItemInputList.size(); i++) {
+ if (tItemInputList.get(i) != null) {
+ if (GT_Utility.getFluidForFilledItem(tItemInputList.get(i), true) != null
+ || GT_Utility.isCellEmpty(tItemInputList.get(i))) {
+ tFluidInputList.add(GT_Utility.convertCellToFluid(tItemInputList.get(i)));
+ tItemInputList.set(i, null);
+ }
+ }
+ }
+ List<ItemStack> tItemOutputList;
+ if (ItemInputArray == null) {
+ tItemOutputList = new ArrayList<>(1);
+ } else {
+ tItemOutputList = new ArrayList<>(Arrays.asList(ItemInputArray));
+ }
+ List<FluidStack> tFluidOutputList;
+ if (FluidOutputArray != null) {
+ tFluidOutputList = new ArrayList<>(Arrays.asList(FluidOutputArray));
+ ;
+ } else {
+ tFluidOutputList = new ArrayList<>(1);
+ }
+ for (int i = 0; i < tItemOutputList.size(); i++) {
+ if (tItemOutputList.get(i) != null) {
+ if (GT_Utility.getFluidForFilledItem(tItemOutputList.get(i), true) != null
+ || GT_Utility.isCellEmpty(tItemOutputList.get(i))) {
+ tFluidInputList.add(GT_Utility.convertCellToFluid(tItemOutputList.get(i)));
+ tItemOutputList.set(i, null);
+ }
+ }
+ }
+
+ ItemStack[] tItemInputArray = new ItemStack[tItemInputList.size()];
+ for (int i = 0; i < tItemInputArray.length; i++) tItemInputArray[i] = tItemInputList.get(i);
+
+ FluidStack[] tFluidInputArray = new FluidStack[tFluidInputList.size()];
+ for (int i = 0; i < tFluidInputArray.length; i++) tFluidInputArray[i] = tFluidInputList.get(i);
+
+ ItemStack[] tItemOutputArray = new ItemStack[tItemOutputList.size()];
+ for (int i = 0; i < tItemOutputArray.length; i++) tItemOutputArray[i] = tItemOutputList.get(i);
+
+ FluidStack[] tFluidOutputArray = new FluidStack[tFluidOutputList.size()];
+ for (int i = 0; i < tFluidOutputArray.length; i++) tFluidOutputArray[i] = tFluidOutputList.get(i);
+
+ GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes.addRecipe(
+ false,
+ tItemInputArray,
+ tItemOutputArray,
+ null,
+ null,
+ tFluidInputArray,
+ tFluidOutputArray,
+ aDuration,
+ aEUt,
+ 0);
return true;
}
@@ -2491,6 +2659,36 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
aDuration,
aEUt,
0);
+ ItemStack[] itemInputs = {aInput1, aInput2, aInput3, aInput4, aInput5, aInput6, aInput7, aInput8, aInput9};
+ ItemStack[] itemOutputs = {aOutput1, aOutput2, aOutput3, aOutput4};
+ FluidStack[] fluidInputs = {aFluidInput, null, null, null, null, null, null, null, null, null};
+ FluidStack[] fluidOutputs = {aFluidOutput, null, null, null, null};
+
+ byte iNumber = 0;
+ byte oNumber = 0;
+
+ for (ItemStack item : itemInputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(aInput1, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidInputs[iNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemInputs[iNumber] = null;
+ }
+ }
+ iNumber++;
+ }
+
+ for (ItemStack item : itemOutputs) {
+ if (item != null) {
+ if (GT_Utility.getFluidForFilledItem(item, true) != null || GT_Utility.isCellEmpty(item)) {
+ fluidOutputs[oNumber + 1] = GT_Utility.convertCellToFluid(item);
+ itemOutputs[oNumber] = null;
+ }
+ }
+ oNumber++;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sMultiblockMixerRecipes.addRecipe(
+ false, itemInputs, itemOutputs, null, null, fluidInputs, fluidOutputs, aDuration, aEUt, 0);
return true;
}
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
index 93aa9992ea..ae41933c1c 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java
@@ -39,6 +39,7 @@ import net.minecraft.world.World;
public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements ITileEntityProvider {
private static final String DOT_NAME = ".name";
+ private static final String DOT_TOOLTIP = ".tooltip";
public static ThreadLocal<GT_TileEntity_Ores> mTemporaryTileEntity = new ThreadLocal<>();
public static boolean FUCKING_LOCK = false;
public static boolean tHideOres;
@@ -66,11 +67,17 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements
? getLocalizedNameFormat(GregTech_API.sGeneratedMaterials[i])
: getLocalizedName(GregTech_API.sGeneratedMaterials[i]));
GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + "." + (i + (j * 1000)) + DOT_TOOLTIP,
+ GregTech_API.sGeneratedMaterials[i].getToolTip());
+ GT_LanguageManager.addStringLocalization(
getUnlocalizedName() + "." + ((i + 16000) + (j * 1000)) + DOT_NAME,
"Small "
+ (GT_LanguageManager.i18nPlaceholder
? getLocalizedNameFormat(GregTech_API.sGeneratedMaterials[i])
: getLocalizedName(GregTech_API.sGeneratedMaterials[i])));
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + "." + ((i + 16000) + (j * 1000)) + DOT_TOOLTIP,
+ GregTech_API.sGeneratedMaterials[i].getToolTip());
if ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x8) != 0
&& !aBlockedOres.contains(GregTech_API.sGeneratedMaterials[i])) {
GT_OreDictUnificator.registerOre(
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java
index bcf088a621..117e6ae1c6 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java
@@ -2,11 +2,14 @@ package gregtech.common.blocks;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
+import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
+import org.apache.commons.lang3.StringUtils;
public class GT_Item_Ores extends ItemBlock {
public GT_Item_Ores(Block block) {
@@ -83,4 +86,11 @@ public class GT_Item_Ores extends ItemBlock {
}
return true;
}
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
+ String formula = StatCollector.translateToLocal(
+ field_150939_a.getUnlocalizedName() + '.' + getDamage(aStack) + ".tooltip");
+ if (!StringUtils.isBlank(formula)) aList.add(formula);
+ }
}
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java
index 7d824565cb..fb556989c1 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_Arm.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_Arm.java
@@ -359,7 +359,7 @@ public class GT_Cover_Arm extends GT_CoverBehavior {
this.getFontRenderer()
.drawString(
- GT_Utility.trans("254", "Internal slot#"),
+ GT_Utility.trans("254.1", "Internal slot#"),
startX + spaceX * 3,
4 + startY + spaceY * 1,
textColor);
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FacadeBase.java b/src/main/java/gregtech/common/covers/GT_Cover_FacadeBase.java
index 1332fa66c6..8c52ade5d2 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_FacadeBase.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_FacadeBase.java
@@ -64,10 +64,10 @@ public abstract class GT_Cover_FacadeBase extends GT_CoverBehaviorBase<GT_Cover_
aCoverVariable.mFlags = ((aCoverVariable.mFlags + 1) & 15);
GT_Utility.sendChatToPlayer(
aPlayer,
- ((aCoverVariable.mFlags & 1) != 0 ? GT_Utility.trans("128", "Redstone ") : "")
- + ((aCoverVariable.mFlags & 2) != 0 ? GT_Utility.trans("129", "Energy ") : "")
- + ((aCoverVariable.mFlags & 4) != 0 ? GT_Utility.trans("130", "Fluids ") : "")
- + ((aCoverVariable.mFlags & 8) != 0 ? GT_Utility.trans("131", "Items ") : ""));
+ ((aCoverVariable.mFlags & 1) != 0 ? GT_Utility.trans("128.1", "Redstone ") : "")
+ + ((aCoverVariable.mFlags & 2) != 0 ? GT_Utility.trans("129.1", "Energy ") : "")
+ + ((aCoverVariable.mFlags & 4) != 0 ? GT_Utility.trans("130.1", "Fluids ") : "")
+ + ((aCoverVariable.mFlags & 8) != 0 ? GT_Utility.trans("131.1", "Items ") : ""));
return aCoverVariable;
}
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
index fa20d8206e..2d6fc685c3 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
@@ -461,7 +461,7 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase<GT_Cover_Fluid
textColor);
this.getFontRenderer()
.drawString(
- GT_Utility.trans("229", "Conditional"),
+ GT_Utility.trans("230", "Conditional"),
startX + spaceX * 4,
4 + startY + spaceY * 1,
textColor);
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemFilter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemFilter.java
index aee762f36c..2fa545d76d 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_ItemFilter.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemFilter.java
@@ -130,8 +130,8 @@ public class GT_Cover_ItemFilter extends GT_CoverBehaviorBase<GT_Cover_ItemFilte
GT_Utility.sendChatToPlayer(
aPlayer,
aCoverVariable.mWhitelist
- ? GT_Utility.trans("125", "Whitelist Mode")
- : GT_Utility.trans("124", "Blacklist Mode"));
+ ? GT_Utility.trans("125.1", "Whitelist Mode")
+ : GT_Utility.trans("124.1", "Blacklist Mode"));
return aCoverVariable;
}
@@ -290,8 +290,8 @@ public class GT_Cover_ItemFilter extends GT_CoverBehaviorBase<GT_Cover_ItemFilte
startY + spaceY * 0,
GT_GuiIcon.WHITELIST,
GT_GuiIcon.BLACKLIST,
- GT_Utility.trans("125", "Whitelist Mode"),
- GT_Utility.trans("124", "Blacklist Mode"));
+ GT_Utility.trans("125.1", "Whitelist Mode"),
+ GT_Utility.trans("124.1", "Blacklist Mode"));
itemFilterButtons =
new GT_GuiFakeItemButton(this, startX + spaceX * 0, startY + spaceY * 2, GT_GuiIcon.SLOT_GRAY);
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java
index 338a214ada..a77119b413 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java
@@ -97,10 +97,10 @@ public class GT_Cover_PlayerDetector extends GT_CoverBehavior {
}
switch (aCoverVariable) {
case 0:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("068", "Emit if any Player is close"));
+ GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("068.1", "Emit if any Player is close"));
break;
case 1:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("069", "Emit if other Player is close"));
+ GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("069.1", "Emit if other Player is close"));
break;
case 2:
GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("070", "Emit if you are close"));
@@ -181,9 +181,9 @@ public class GT_Cover_PlayerDetector extends GT_CoverBehavior {
this.coverVariable = aCoverVariable;
new GT_GuiIconCheckButton(this, 0, startX + spaceX * 0, startY + spaceY * 0, GT_GuiIcon.CHECKMARK, null)
- .setTooltipText(GT_Utility.trans("068", "Emit if any Player is close"));
+ .setTooltipText(GT_Utility.trans("068.1", "Emit if any Player is close"));
new GT_GuiIconCheckButton(this, 1, startX + spaceX * 0, startY + spaceY * 1, GT_GuiIcon.CHECKMARK, null)
- .setTooltipText(GT_Utility.trans("069", "Emit if other Player is close"));
+ .setTooltipText(GT_Utility.trans("069.1", "Emit if other Player is close"));
new GT_GuiIconCheckButton(this, 2, startX + spaceX * 0, startY + spaceY * 2, GT_GuiIcon.CHECKMARK, null)
.setTooltipText(GT_Utility.trans("070", "Emit if you are close"));
}
diff --git a/src/main/java/gregtech/common/fluid/GT_Fluid.java b/src/main/java/gregtech/common/fluid/GT_Fluid.java
index b8bca3116a..e768358503 100644
--- a/src/main/java/gregtech/common/fluid/GT_Fluid.java
+++ b/src/main/java/gregtech/common/fluid/GT_Fluid.java
@@ -5,34 +5,38 @@ import gregtech.api.enums.FluidState;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.fluid.IGT_Fluid;
+import gregtech.api.interfaces.fluid.IGT_RegisteredFluid;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Utility;
+import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
-public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
+public class GT_Fluid extends Fluid implements IGT_Fluid, IGT_RegisteredFluid, Runnable {
private final String localizedName;
private final ResourceLocation stillIconResourceLocation;
private final ResourceLocation flowingIconResourceLocation;
private final short[] colorRGBA;
private final FluidState fluidState;
+ private final Fluid iconsFrom;
private Fluid registeredFluid;
+ private boolean hasRun = false;
/**
* Constructs this {@link IGT_Fluid} implementation from an {@link GT_FluidBuilder} instance
*
* @param builder The {@link GT_FluidBuilder} instance to construct this {@link IGT_Fluid} implementation
*/
- protected GT_Fluid(final GT_FluidBuilder builder) {
+ protected GT_Fluid(@Nonnull final GT_FluidBuilder builder) {
super(builder.fluidName);
this.localizedName = builder.localizedName;
this.stillIconResourceLocation = builder.stillIconResourceLocation;
this.flowingIconResourceLocation = builder.flowingIconResourceLocation;
+ this.iconsFrom = builder.iconsFrom;
this.block = builder.fluidBlock;
this.colorRGBA = builder.colorRGBA;
this.fluidState = builder.fluidState;
@@ -41,6 +45,37 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
}
/**
+ * Adjusts this {@link Fluid}'s settings based on this {@link IGT_Fluid}'s state
+ */
+ protected void configureFromStateTemperature() {
+ switch (fluidState) {
+ case SLURRY:
+ setGaseous(false).setViscosity(10000);
+ break;
+ case GAS:
+ setGaseous(true).setDensity(-100).setViscosity(200);
+ break;
+ case PLASMA:
+ setGaseous(true).setDensity(55536).setViscosity(10).setLuminosity(15);
+ break;
+ case MOLTEN:
+ final int luminosity;
+ if (temperature >= 3500) {
+ luminosity = 15;
+ } else {
+ luminosity = temperature < 1000 ? 0 : 14 * (temperature - 1000) / 2500 + 1;
+ }
+ setLuminosity(luminosity);
+ case LIQUID:
+ default:
+ setGaseous(false).setViscosity(1000);
+ break;
+ }
+ }
+
+ // ----- Fluid implementations -----
+
+ /**
* @inheritDoc
*/
@Override
@@ -50,61 +85,41 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
| Math.max(0, Math.min(255, colorRGBA[2]));
}
- /**
- * This {@link Runnable#run()} implementation is scheduled within the {@link GregTech_API#sGTBlockIconload}
- * to load this {@link IGT_Fluid}'s texture icons.
- *
- * @see Runnable#run()
- */
- @Override
- public void run() {
- final IIcon stillIcon = GregTech_API.sBlockIcons.registerIcon(stillIconResourceLocation.toString());
- if (flowingIconResourceLocation == null) {
- setIcons(stillIcon);
- } else {
- final IIcon flowingIcon = GregTech_API.sBlockIcons.registerIcon(flowingIconResourceLocation.toString());
- setIcons(stillIcon, flowingIcon);
- }
- }
+ // ----- IGT_Fluid interface implementations -----
- /**
- * @inheritDoc
- */
- @Override
- public IGT_Fluid addFluid() {
-
- if (FluidRegistry.registerFluid(this)) {
+ public IGT_RegisteredFluid addFluid() {
+ if (FluidRegistry.registerFluid(GT_Fluid.this)) {
// Registered as a new Fluid
- // Adds self as Runnable to the block icons loader run() tasks
+ registeredFluid = this;
+ // Schedules the gtFluid for the block icons loader run() tasks
GregTech_API.sGTBlockIconload.add(this);
// Adds a server-side localized-name
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName(), localizedName);
- registeredFluid = this;
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName(), localizedName);
} else {
- // Promotes Fluid from the registry to enable GT_Fluid methods
- registeredFluid = FluidRegistry.getFluid(fluidName);
+ // Fluid already registered, get it from the registry
+ registeredFluid = FluidRegistry.getFluid(GT_Fluid.this.fluidName);
// Sets temperature of already registered fluids if they use the default (temperature = 300)
if (registeredFluid.getTemperature() == new Fluid("test").getTemperature()) {
- registeredFluid.setTemperature(temperature);
+ registeredFluid.setTemperature(GT_Fluid.this.temperature);
}
}
return this;
}
+ // ----- IGT_RegisteredFluid interface implementations -----
+
/**
* @inheritDoc
*/
@Override
- public IGT_Fluid registerContainers(
+ public IGT_RegisteredFluid registerContainers(
final ItemStack fullContainer, final ItemStack emptyContainer, final int containerSize) {
- if (fullContainer == null || emptyContainer == null) return this;
- if (registeredFluid == null) {
- throw new IllegalStateException("Cannot register containers for an unregistered fluid");
- }
- final FluidStack fluidStack = new FluidStack(registeredFluid, containerSize);
- if (!FluidContainerRegistry.registerFluidContainer(fluidStack, fullContainer, emptyContainer)) {
- GT_Values.RA.addFluidCannerRecipe(
- fullContainer, GT_Utility.getContainerItem(fullContainer, false), null, fluidStack);
+ if (fullContainer != null && emptyContainer != null) {
+ final FluidStack fluidStack = new FluidStack(registeredFluid, containerSize);
+ if (!FluidContainerRegistry.registerFluidContainer(fluidStack, fullContainer, emptyContainer)) {
+ GT_Values.RA.addFluidCannerRecipe(
+ fullContainer, GT_Utility.getContainerItem(fullContainer, false), null, fluidStack);
+ }
}
return this;
}
@@ -113,7 +128,7 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
* @inheritDoc
*/
@Override
- public IGT_Fluid registerBContainers(final ItemStack fullContainer, final ItemStack emptyContainer) {
+ public IGT_RegisteredFluid registerBContainers(final ItemStack fullContainer, final ItemStack emptyContainer) {
return registerContainers(fullContainer, emptyContainer, 1000);
}
@@ -121,7 +136,7 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
* @inheritDoc
*/
@Override
- public IGT_Fluid registerPContainers(final ItemStack fullContainer, final ItemStack emptyContainer) {
+ public IGT_RegisteredFluid registerPContainers(final ItemStack fullContainer, final ItemStack emptyContainer) {
return registerContainers(fullContainer, emptyContainer, 250);
}
@@ -129,45 +144,26 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
* @inheritDoc
*/
@Override
- public ResourceLocation getStillIconResourceLocation() {
- return stillIconResourceLocation;
- }
-
- /**
- * @inheritDoc
- */
- @Override
- public ResourceLocation getFlowingIconResourceLocation() {
- return flowingIconResourceLocation;
- }
-
- /**
- * @inheritDoc
- */
- @Override
- public IGT_Fluid configureMaterials(final Materials material) {
- if (registeredFluid == null) {
- throw new IllegalStateException("Cannot configure Materials with an unregistered fluid");
- }
-
- switch (fluidState) {
- case SLURRY:
- material.mSolid = registeredFluid;
- break;
- case LIQUID:
- material.mFluid = registeredFluid;
- break;
- case GAS:
- material.mGas = registeredFluid;
- break;
- case PLASMA:
- material.mPlasma = registeredFluid;
- break;
- case MOLTEN:
- material.mStandardMoltenFluid = registeredFluid;
- break;
- default:
- throw new IllegalStateException("Unexpected FluidState: " + fluidState);
+ public IGT_RegisteredFluid configureMaterials(final Materials material) {
+ if (material != null) {
+ switch (fluidState) {
+ case SLURRY:
+ material.mSolid = registeredFluid;
+ break;
+ case GAS:
+ material.mGas = registeredFluid;
+ break;
+ case PLASMA:
+ material.mPlasma = registeredFluid;
+ break;
+ case MOLTEN:
+ material.mStandardMoltenFluid = registeredFluid;
+ break;
+ case LIQUID:
+ default:
+ material.mFluid = registeredFluid;
+ break;
+ }
}
return this;
}
@@ -177,33 +173,34 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, Runnable {
*/
@Override
public Fluid asFluid() {
- return registeredFluid == null ? this : registeredFluid;
+ return registeredFluid;
}
+ // ----- Runnable interface implementations -----
+
/**
- * Adjusts this {@link Fluid}'s settings based on this {@link IGT_Fluid}'s state
+ * This {@link Runnable#run()} implementation is scheduled within the {@link GregTech_API#sGTBlockIconload}
+ * to load this {@link IGT_Fluid}'s texture icons.
*
- * @throws IllegalStateException if {@link FluidState} is unknown
+ * @see Runnable#run()
*/
- protected void configureFromStateTemperature() {
- switch (fluidState) {
- case SLURRY:
- setGaseous(false).setViscosity(10000);
- break;
- case LIQUID:
- case MOLTEN:
- final int luminosity =
- temperature >= 3500 ? 15 : temperature < 1000 ? 0 : 14 * (temperature - 1000) / 2500 + 1;
- setGaseous(false).setViscosity(1000).setLuminosity(luminosity);
- break;
- case GAS:
- setGaseous(true).setDensity(-100).setViscosity(200);
- break;
- case PLASMA:
- setGaseous(true).setDensity(55536).setViscosity(10).setLuminosity(15);
- break;
- default:
- throw new IllegalStateException("Unexpected FluidState: " + fluidState);
+ @Override
+ public void run() {
+ if (!hasRun) {
+ if (iconsFrom instanceof GT_Fluid) {
+ // Needs the GT_Fluid to have registered its icons
+ ((GT_Fluid) iconsFrom).run();
+ stillIcon = iconsFrom.getStillIcon();
+ flowingIcon = iconsFrom.getFlowingIcon();
+ } else {
+ if (stillIconResourceLocation != null) {
+ stillIcon = GregTech_API.sBlockIcons.registerIcon(stillIconResourceLocation.toString());
+ }
+ if (flowingIconResourceLocation != null) {
+ flowingIcon = GregTech_API.sBlockIcons.registerIcon(flowingIconResourceLocation.toString());
+ }
+ }
+ hasRun = true;
}
}
}
diff --git a/src/main/java/gregtech/common/fluid/GT_FluidBuilder.java b/src/main/java/gregtech/common/fluid/GT_FluidBuilder.java
index b484f7aacb..48d4e0e95e 100644
--- a/src/main/java/gregtech/common/fluid/GT_FluidBuilder.java
+++ b/src/main/java/gregtech/common/fluid/GT_FluidBuilder.java
@@ -6,21 +6,28 @@ import gregtech.api.enums.Dyes;
import gregtech.api.enums.FluidState;
import gregtech.api.interfaces.fluid.IGT_Fluid;
import gregtech.api.interfaces.fluid.IGT_FluidBuilder;
+import gregtech.api.interfaces.fluid.IGT_RegisteredFluid;
import java.util.Locale;
+import javax.annotation.Nonnull;
import net.minecraft.block.Block;
+import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.fluids.Fluid;
public class GT_FluidBuilder implements IGT_FluidBuilder {
- protected final String fluidName;
- protected String localizedName;
- protected ResourceLocation stillIconResourceLocation = null, flowingIconResourceLocation = null;
- protected short[] colorRGBA = Dyes._NULL.getRGBA();
- protected Block fluidBlock = null;
- protected FluidState fluidState;
- protected int temperature;
+ final String fluidName;
+ String localizedName;
+ ResourceLocation stillIconResourceLocation = null, flowingIconResourceLocation = null;
+ short[] colorRGBA = Dyes._NULL.getRGBA();
+ Block fluidBlock = null;
+ FluidState fluidState;
+ int temperature;
+ IIcon stillIcon;
+ IIcon flowingIcon;
+ Fluid iconsFrom;
public GT_FluidBuilder(final String fluidName) {
- this.fluidName = fluidName;
+ this.fluidName = fluidName.toLowerCase(Locale.ENGLISH);
}
/**
@@ -83,9 +90,8 @@ public class GT_FluidBuilder implements IGT_FluidBuilder {
* @inheritDoc
*/
@Override
- public IGT_FluidBuilder withTextureFrom(final IGT_Fluid fromGTFluid) {
- this.stillIconResourceLocation = fromGTFluid.getStillIconResourceLocation();
- this.flowingIconResourceLocation = fromGTFluid.getFlowingIconResourceLocation();
+ public IGT_FluidBuilder withIconsFrom(@Nonnull final Fluid fromFluid) {
+ this.iconsFrom = fromFluid;
return this;
}
@@ -114,9 +120,15 @@ public class GT_FluidBuilder implements IGT_FluidBuilder {
*/
@Override
public IGT_Fluid build() {
+ if (colorRGBA == null) {
+ colorRGBA = Dyes._NULL.getRGBA();
+ }
if (stillIconResourceLocation == null) {
withTextureName(fluidName.toLowerCase(Locale.ENGLISH));
}
+ if (localizedName == null) {
+ localizedName = fluidName;
+ }
return new GT_Fluid(this);
}
@@ -124,10 +136,7 @@ public class GT_FluidBuilder implements IGT_FluidBuilder {
* @inheritDoc
*/
@Override
- public IGT_Fluid buildAndRegister() {
- if (stillIconResourceLocation == null) {
- withTextureName(fluidName.toLowerCase(Locale.ENGLISH));
- }
+ public IGT_RegisteredFluid buildAndRegister() {
return build().addFluid();
}
}
diff --git a/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java b/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java
index 135c20dafe..e42e145eb3 100644
--- a/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java
+++ b/src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java
@@ -36,7 +36,7 @@ public class GT_Container_OutputHatch extends GT_Container_BasicTank {
if (tReadyLockFluid == null
|| (tMode >= 8 && tReadyLockFluid.getFluid().getName().equals(tHatch.getLockedFluidName()))) {
tHatch.setLockedFluidName(null);
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("300", "Fluid Lock Cleared."));
+ GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("300.1", "Fluid Lock Cleared."));
tHatch.lockFluid(false);
} else {
tHatch.setLockedFluidName(tReadyLockFluid.getFluid().getName());
diff --git a/src/main/java/gregtech/common/power/Power.java b/src/main/java/gregtech/common/power/Power.java
index eac33e7997..9ce749801d 100644
--- a/src/main/java/gregtech/common/power/Power.java
+++ b/src/main/java/gregtech/common/power/Power.java
@@ -39,7 +39,7 @@ public abstract class Power {
}
public String getDurationStringTicks() {
- return GT_Utility.formatNumbers(getDurationTicks()) + GT_Utility.trans("224", " ticks");
+ return GT_Utility.formatNumbers(getDurationTicks()) + GT_Utility.trans("209", " ticks");
}
public abstract String getTotalPowerString();
diff --git a/src/main/java/gregtech/common/power/UnspecifiedEUPower.java b/src/main/java/gregtech/common/power/UnspecifiedEUPower.java
index c2e3615ad1..5ac85adfee 100644
--- a/src/main/java/gregtech/common/power/UnspecifiedEUPower.java
+++ b/src/main/java/gregtech/common/power/UnspecifiedEUPower.java
@@ -3,8 +3,8 @@ package gregtech.common.power;
import gregtech.api.util.GT_Utility;
public class UnspecifiedEUPower extends EUPower {
- private final String VOLTAGE = GT_Utility.trans("156", "unspecified");
- private final String AMPERAGE = GT_Utility.trans("157", "unspecified");
+ private final String VOLTAGE = GT_Utility.trans("271", "unspecified");
+ private final String AMPERAGE = GT_Utility.trans("271", "unspecified");
public UnspecifiedEUPower(byte tier, int amperage) {
super(tier, amperage);
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java
index edc8ef78e4..71c4cbb258 100644
--- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java
+++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java
@@ -58,7 +58,7 @@ public class GT_MetaTileEntity_Regulator extends GT_MetaTileEntity_Buffer {
@Override
public boolean isValidSlot(int aIndex) {
- return aIndex < 9;
+ return aIndex < 9 || aIndex == rechargerSlotStartIndex();
}
@Override
@@ -132,8 +132,10 @@ public class GT_MetaTileEntity_Regulator extends GT_MetaTileEntity_Buffer {
@Override
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack))
- && (GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)]));
+ return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)
+ && aIndex >= 0
+ && aIndex <= 8
+ && GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)]);
}
@Override
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java
index 0d4b6cc233..b1bdbd6674 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_IntegratedOreFactory.java
@@ -114,6 +114,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory
private ItemStack[] sMidProduct;
private int sMode = 0;
private boolean sVoidStone = false;
+ private int currentParallelism = 0;
private static void initHash() {
for (String name : OreDictionary.getOreNames()) {
@@ -296,6 +297,9 @@ public class GT_MetaTileEntity_IntegratedOreFactory
}
}
+ // for scanner
+ setCurrentParallelism(tRealUsed);
+
if (tRealUsed == 0) {
return false;
}
@@ -397,6 +401,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory
public void loadNBTData(NBTTagCompound aNBT) {
sMode = aNBT.getInteger("ssMode");
sVoidStone = aNBT.getBoolean("ssStone");
+ currentParallelism = aNBT.getInteger("currentParallelism");
super.loadNBTData(aNBT);
}
@@ -404,6 +409,7 @@ public class GT_MetaTileEntity_IntegratedOreFactory
public void saveNBTData(NBTTagCompound aNBT) {
aNBT.setInteger("ssMode", sMode);
aNBT.setBoolean("ssStone", sVoidStone);
+ aNBT.setInteger("currentParallelism", currentParallelism);
super.saveNBTData(aNBT);
}
@@ -646,6 +652,23 @@ public class GT_MetaTileEntity_IntegratedOreFactory
return new GT_MetaTileEntity_IntegratedOreFactory(mName);
}
+ private void setCurrentParallelism(int parallelism) {
+ this.currentParallelism = parallelism;
+ }
+
+ private int getCurrentParallelism() {
+ return this.currentParallelism;
+ }
+
+ @Override
+ public String[] getInfoData() {
+ List<String> informationData = Arrays.asList(super.getInfoData());
+ String parallelism = StatCollector.translateToLocal("GT5U.multiblock.parallelism") + ": "
+ + EnumChatFormatting.BLUE + getCurrentParallelism() + EnumChatFormatting.RESET;
+ informationData.add(parallelism);
+ return informationData.toArray(new String[0]);
+ }
+
@Override
public ITexture[] getTexture(
IGregTechTileEntity aBaseMetaTileEntity,
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
index 716a8c9cc6..9838076440 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
@@ -148,7 +148,7 @@ public abstract class GT_MetaTileEntity_LargeTurbine
return false;
}
ArrayList<FluidStack> tFluids = getStoredFluids();
- if (tFluids.size() > 0) {
+ if (!tFluids.isEmpty()) {
if (baseEff == 0
|| optFlow == 0
@@ -305,8 +305,8 @@ public abstract class GT_MetaTileEntity_LargeTurbine
}
String[] ret = new String[] {
// 8 Lines available for information panels
- tRunning + ": " + EnumChatFormatting.RED + GT_Utility.formatNumbers(mEUt) + EnumChatFormatting.RESET
- + " EU/t", /* 1 */
+ tRunning + ": " + EnumChatFormatting.RED + GT_Utility.formatNumbers(((long) mEUt * mEfficiency) / 10000)
+ + EnumChatFormatting.RESET + " EU/t", /* 1 */
tMaintainance, /* 2 */
StatCollector.translateToLocal("GT5U.turbine.efficiency") + ": " + EnumChatFormatting.YELLOW
+ (mEfficiency / 100F) + EnumChatFormatting.RESET + "%", /* 2 */
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
index 21e9572d20..b90d876883 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
@@ -238,6 +238,10 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
* ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed
* 50));
overflowMultiplier = getOverflowMultiplier(aStack);
+
+ flowMultipliers[0] = GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mSteamMultiplier;
+ flowMultipliers[1] = GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mGasMultiplier;
+ flowMultipliers[2] = GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mPlasmaMultiplier;
} else {
counter++;
}
@@ -323,8 +327,8 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
}
String[] ret = new String[] {
// 8 Lines available for information panels
- tRunning + ": " + EnumChatFormatting.RED + GT_Utility.formatNumbers(mEUt) + EnumChatFormatting.RESET
- + " EU/t", /* 1 */
+ tRunning + ": " + EnumChatFormatting.RED + GT_Utility.formatNumbers(((long) mEUt * mEfficiency) / 10000)
+ + EnumChatFormatting.RESET + " EU/t", /* 1 */
tMaintainance, /* 2 */
StatCollector.translateToLocal("GT5U.turbine.efficiency") + ": " + EnumChatFormatting.YELLOW
+ (mEfficiency / 100F) + EnumChatFormatting.RESET + "%", /* 2 */
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
index 538290a4e8..0e68b0f312 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
@@ -330,8 +330,10 @@ public class GT_MetaTileEntity_ProcessingArray
tOut[h].stackSize = 0;
}
}
- FluidStack tFOut = null;
- if (aRecipe.getFluidOutput(0) != null) tFOut = aRecipe.getFluidOutput(0).copy();
+ FluidStack[] tFOut = new FluidStack[aRecipe.mFluidOutputs.length];
+ for (int i = 0; i < aRecipe.mFluidOutputs.length; i++)
+ if (aRecipe.getFluidOutput(i) != null)
+ tFOut[i] = aRecipe.getFluidOutput(i).copy();
for (int f = 0; f < tOut.length; f++) {
if (aRecipe.mOutputs[f] != null && tOut[f] != null) {
for (int g = 0; g < parallel; g++) {
@@ -340,9 +342,13 @@ public class GT_MetaTileEntity_ProcessingArray
}
}
}
- if (tFOut != null) {
- int tSize = tFOut.amount;
- tFOut.amount = tSize * parallel;
+ byte oNumber = 0;
+ for (FluidStack fluidStack : tFOut) {
+ if (fluidStack != null) {
+ int tSize = fluidStack.amount;
+ tFOut[oNumber].amount = tSize * parallel;
+ }
+ oNumber++;
}
this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
this.mOutputItems = Arrays.stream(tOut)
@@ -350,7 +356,7 @@ public class GT_MetaTileEntity_ProcessingArray
.flatMap(GT_MetaTileEntity_ProcessingArray::splitOversizedStack)
.filter(is -> is.stackSize > 0)
.toArray(ItemStack[]::new);
- this.mOutputFluids = new FluidStack[] {tFOut};
+ this.mOutputFluids = tFOut;
updateSlots();
return true;
}
diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
index 9a7c75cb83..00057aab45 100644
--- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
+++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
@@ -439,7 +439,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
@Override
public FluidTankInfo getInfo() {
- return new FluidTankInfo(getFluid(), getRealCapacity());
+ return new FluidTankInfo(getFluid(), getCapacity());
}
@Override