aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
authorJordan Byrne <draknyte1@hotmail.com>2018-03-03 14:52:49 +1000
committerJordan Byrne <draknyte1@hotmail.com>2018-03-03 14:52:49 +1000
commit9b90ec63b0eb04c60dfa90791291b8a0174409d6 (patch)
tree6ec36ea5226d2fc4570b0194c662d25e3ec10a6b /src/Java/gtPlusPlus
parente829906b0da1d4d7aff1b4bb95830f2a472f9ae9 (diff)
downloadGT5-Unofficial-9b90ec63b0eb04c60dfa90791291b8a0174409d6.tar.gz
GT5-Unofficial-9b90ec63b0eb04c60dfa90791291b8a0174409d6.tar.bz2
GT5-Unofficial-9b90ec63b0eb04c60dfa90791291b8a0174409d6.zip
% Updated Textures for all Kinetic Rotors, Rotor Blades, Shafts, Dehydrator Coils and Coil Wires. Thanks to @mtesseracttech for these!
$ Multi Machine Work.
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/api/objects/data/AutoMap.java7
-rw-r--r--src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java13
-rw-r--r--src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java13
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMultiMachine.java51
4 files changed, 57 insertions, 27 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
index 5d5f94a84d..e5b5ded0ad 100644
--- a/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
+++ b/src/Java/gtPlusPlus/api/objects/data/AutoMap.java
@@ -73,5 +73,12 @@ public class AutoMap<V> implements Iterable<V>, Cloneable, Serializable {
this.mInternalMap.clear();
return true;
}
+
+ public synchronized V[] toArray() {
+ Collection<V> col = this.mInternalMap.values();
+ @SuppressWarnings("unchecked")
+ V[] val = (V[]) col.toArray();
+ return val;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java b/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java
index 54af555733..be1fdfc491 100644
--- a/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java
+++ b/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoil.java
@@ -16,7 +16,7 @@ import gtPlusPlus.core.util.Utils;
public class ItemDehydratorCoil extends Item {
- public IIcon[] icons = new IIcon[1];
+ public IIcon[] icons = new IIcon[4];
public ItemDehydratorCoil() {
super();
@@ -29,12 +29,15 @@ public class ItemDehydratorCoil extends Item {
@Override
public void registerIcons(IIconRegister reg) {
- this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "itemDehydratorCoil");
+ this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoil_0");
+ this.icons[1] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoil_1");
+ this.icons[2] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoil_2");
+ this.icons[3] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoil_3");
}
@Override
public IIcon getIconFromDamage(int meta) {
- return this.icons[0];
+ return this.icons[meta];
}
@Override
@@ -69,7 +72,7 @@ public class ItemDehydratorCoil extends Item {
}
- @Override
+ /*@Override
public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) {
int meta = stack.getItemDamage();
if (meta == 0){
@@ -85,6 +88,6 @@ public class ItemDehydratorCoil extends Item {
HEX_OxFFFFFF = Utils.rgbtoHexValue(255,150,50);
}
return HEX_OxFFFFFF;
- }
+ }*/
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java b/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java
index 2a54a9980c..99d4a139dd 100644
--- a/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java
+++ b/src/Java/gtPlusPlus/core/item/general/chassis/ItemDehydratorCoilWire.java
@@ -16,7 +16,7 @@ import gtPlusPlus.core.util.Utils;
public class ItemDehydratorCoilWire extends Item {
- public IIcon[] icons = new IIcon[1];
+ public IIcon[] icons = new IIcon[4];
public ItemDehydratorCoilWire() {
super();
@@ -29,12 +29,15 @@ public class ItemDehydratorCoilWire extends Item {
@Override
public void registerIcons(IIconRegister reg) {
- this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "itemDehydratorCoilWire");
+ this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoilWire_0");
+ this.icons[1] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoilWire_1");
+ this.icons[2] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoilWire_2");
+ this.icons[3] = reg.registerIcon(CORE.MODID + ":" + "dehydrator/itemDehydratorCoilWire_3");
}
@Override
public IIcon getIconFromDamage(int meta) {
- return this.icons[0];
+ return this.icons[meta];
}
@Override
@@ -69,7 +72,7 @@ public class ItemDehydratorCoilWire extends Item {
}
- @Override
+/* @Override
public int getColorFromItemStack(final ItemStack stack, int HEX_OxFFFFFF) {
int meta = stack.getItemDamage();
if (meta == 0){
@@ -85,6 +88,6 @@ public class ItemDehydratorCoilWire extends Item {
HEX_OxFFFFFF = Utils.rgbtoHexValue(255,150,50);
}
return HEX_OxFFFFFF;
- }
+ }*/
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMultiMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMultiMachine.java
index 21c21edb7a..9fd0e92167 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMultiMachine.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_IndustrialMultiMachine.java
@@ -25,6 +25,7 @@ import gregtech.api.util.GT_Utility;
import gregtech.common.items.behaviors.Behaviour_DataOrb;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
@@ -219,6 +220,8 @@ extends GregtechMeta_MultiBlockBase {
}
}
+ private final AutoMap<ItemStack> mReplicatorOutputMap = new AutoMap<ItemStack>();
+
@Override
public boolean checkRecipeGeneric(
ItemStack[] aItemInputs, FluidStack[] aFluidInputs,
@@ -240,7 +243,7 @@ extends GregtechMeta_MultiBlockBase {
int tCircuitID = getCircuitID(tCircuit);
if (tCircuitID == MODE_REPLICATOR) {
- return checkReplicatorRecipe(aItemInputs, aFluidInputs);
+ return checkReplicatorRecipe(aItemInputs, aFluidInputs, aMaxParallelRecipes, aEUPercent, aSpeedBonusPercent, aOutputChanceRoll);
}
GT_Recipe tRecipe = this.getRecipeMap(tCircuit).findRecipe(
@@ -398,6 +401,7 @@ extends GregtechMeta_MultiBlockBase {
this.mMaxProgresstime = 0;
this.mOutputItems = new ItemStack[]{};
this.mOutputFluids = new FluidStack[]{};
+ this.mReplicatorOutputMap.clear();
long tVoltage = getMaxInputVoltage();
byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage));
@@ -406,7 +410,7 @@ extends GregtechMeta_MultiBlockBase {
ItemStack tCircuit = getCircuit(aItemInputs);
int tCircuitID = getCircuitID(tCircuit);
- if (!this.canBufferOutputs(aItemInputs, aMaxParallelRecipes)) {
+ if (canBufferOutputs(aItemInputs, aMaxParallelRecipes)) {
Logger.WARNING("BAD RETURN - 2");
return false;
}
@@ -415,6 +419,9 @@ extends GregtechMeta_MultiBlockBase {
ItemStack tCellStack = null;
ItemStack tReplicatedItem;
FluidStack tOutputFluid;
+ FluidStack tInputFluid;
+ final Materials tMaterial = Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0);
+ final long tMass = tMaterial.getMass();
//Find First Data Orb with Scan Data
for (ItemStack I : aItemInputs) {
@@ -432,13 +439,20 @@ extends GregtechMeta_MultiBlockBase {
}
}
- //No Data Orb found?
- if (tDataOrb == null) {
- return false;
+ //Find UUM
+ for (FluidStack F : aFluidInputs) {
+ if (F != null && F.isFluidEqual(Materials.UUMatter.getFluid(1L))) {
+ final FluidStack tFluid = F;
+ if (tFluid.amount >= tMass && tMass > 0L) {
+ tInputFluid = tFluid;
+ }
+ }
}
- final Materials tMaterial = Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0);
- final long tMass = tMaterial.getMass();
+ //No Data Orb or UUM found?
+ if (tDataOrb == null || tInputFluid == null) {
+ return false;
+ }
//Temp Values
int tEUt = (int) GT_Values.V[(int) this.getInputTier()];
int tMaxProgresstime = (int) (tMass * 512L / (1 << tTier - 1));
@@ -494,8 +508,18 @@ extends GregtechMeta_MultiBlockBase {
return false;
}
+ //Requires a cell? Ok, let's use some.
+ if (COST_CELLS > 0) {
+ this.depleteInput(ItemUtils.getEmptyCell(COST_CELLS));
+ }
+
+ //Build an output map, for simplicity.
+ for (int r=0;r<parallelRecipes;r++) {
+ this.mReplicatorOutputMap.put(ItemUtils.getSimpleStack(tReplicatedItem, 1));
+ }
+
-
+ ItemStack[] mBuiltOutput = this.mReplicatorOutputMap;
// -- Try not to fail after this point - inputs have already been consumed! --
@@ -529,15 +553,6 @@ extends GregtechMeta_MultiBlockBase {
this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime);
- // Collect fluid outputs - Not Required?
- /*FluidStack[] tOutputFluids = new FluidStack[tRecipe.mFluidOutputs.length];
- for (int h = 0; h < tRecipe.mFluidOutputs.length; h++) {
- if (tRecipe.getFluidOutput(h) != null) {
- tOutputFluids[h] = tRecipe.getFluidOutput(h).copy();
- tOutputFluids[h].amount *= parallelRecipes;
- }
- }*/
-
// Collect output item types
ItemStack[] tOutputItems = new ItemStack[1];
for (int h = 0; h < 1; h++) {
@@ -595,6 +610,8 @@ extends GregtechMeta_MultiBlockBase {
return true;
}
+
+ //Special Space Checking
private boolean canBufferOutputs(ItemStack[] aInputs, int aParallelRecipes) {
// Count slots available in output buses
ArrayList<ItemStack> tBusStacks = new ArrayList<>();