From 9b90ec63b0eb04c60dfa90791291b8a0174409d6 Mon Sep 17 00:00:00 2001 From: Jordan Byrne Date: Sat, 3 Mar 2018 14:52:49 +1000 Subject: % Updated Textures for all Kinetic Rotors, Rotor Blades, Shafts, Dehydrator Coils and Coil Wires. Thanks to @mtesseracttech for these! $ Multi Machine Work. --- src/Java/gtPlusPlus/api/objects/data/AutoMap.java | 7 +++ .../item/general/chassis/ItemDehydratorCoil.java | 13 +++--- .../general/chassis/ItemDehydratorCoilWire.java | 13 +++--- ...gtechMetaTileEntity_IndustrialMultiMachine.java | 51 ++++++++++++++-------- 4 files changed, 57 insertions(+), 27 deletions(-) (limited to 'src/Java/gtPlusPlus') 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 implements Iterable, Cloneable, Serializable { this.mInternalMap.clear(); return true; } + + public synchronized V[] toArray() { + Collection 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 mReplicatorOutputMap = new AutoMap(); + @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 tBusStacks = new ArrayList<>(); -- cgit