diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2018-03-03 14:52:49 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2018-03-03 14:52:49 +1000 |
commit | 9b90ec63b0eb04c60dfa90791291b8a0174409d6 (patch) | |
tree | 6ec36ea5226d2fc4570b0194c662d25e3ec10a6b /src/Java/gtPlusPlus | |
parent | e829906b0da1d4d7aff1b4bb95830f2a472f9ae9 (diff) | |
download | GT5-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')
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<>(); |