Added config option to modify the Solderer speed per Speed Upgrade, defaulting to 22.5% faster per upgrade, making it 90% faster on a fully upgraded Solderer
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
- Fixed bug where pattern create button wasn't visible when grid tabs were selected (raoulvdberge)
|
||||
- Fixed performance issue with Controllers turning off and on and Interfaces (raoulvdberge)
|
||||
- Fixed Interfaces exposing network inventory don't hide storages that are disconnected (raoulvdberge)
|
||||
- A Solderer with Speed Upgrades is now 2 times faster (raoulvdberge)
|
||||
- Added config option to modify the Solderer speed per Speed Upgrade, defaulting to 22.5% faster per upgrade, making it 90% faster on a fully upgraded Solderer (raoulvdberge)
|
||||
|
||||
### 1.5.13
|
||||
- Fixed Wireless Fluid Grid not using up energy (raoulvdberge)
|
||||
|
||||
@@ -96,6 +96,7 @@ public final class RSConfig {
|
||||
//region Upgrades
|
||||
public int rangeUpgradeUsage;
|
||||
public int speedUpgradeUsage;
|
||||
public float soldererSpeedIncreasePerSpeedUpgrade;
|
||||
public int craftingUpgradeUsage;
|
||||
public int stackUpgradeUsage;
|
||||
public int interdimensionalUpgradeUsage;
|
||||
@@ -217,6 +218,7 @@ public final class RSConfig {
|
||||
//region Upgrades
|
||||
rangeUpgradeUsage = config.getInt("range", UPGRADES, 8, 0, Integer.MAX_VALUE, "The additional energy used per Range Upgrade");
|
||||
speedUpgradeUsage = config.getInt("speed", UPGRADES, 2, 0, Integer.MAX_VALUE, "The additional energy used per Speed Upgrade");
|
||||
soldererSpeedIncreasePerSpeedUpgrade = config.getFloat("soldererSpeedIncreasePerSpeedUpgrade", UPGRADES, 22.5F, 0F, 25F, "The speed increase percentage in the Solderer per Speed Upgrade");
|
||||
craftingUpgradeUsage = config.getInt("crafting", UPGRADES, 5, 0, Integer.MAX_VALUE, "The additional energy used per Crafting Upgrade");
|
||||
stackUpgradeUsage = config.getInt("stack", UPGRADES, 12, 0, Integer.MAX_VALUE, "The additional energy used per Stack Upgrade");
|
||||
interdimensionalUpgradeUsage = config.getInt("interdimensional", UPGRADES, 1000, 0, Integer.MAX_VALUE, "The additional energy used by the Interdimensional Upgrade");
|
||||
|
||||
@@ -98,15 +98,9 @@ public class NetworkNodeSolderer extends NetworkNode {
|
||||
|
||||
markDirty();
|
||||
} else if ((result.getStackInSlot(0).isEmpty() || API.instance().getComparer().isEqualNoQuantity(recipe.getResult(), result.getStackInSlot(0))) && result.getStackInSlot(0).getCount() + recipe.getResult().getCount() <= result.getStackInSlot(0).getMaxStackSize()) {
|
||||
int increase = 1 + (upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED) * 2);
|
||||
progress++;
|
||||
|
||||
if (progress + increase > recipe.getDuration()) {
|
||||
progress = recipe.getDuration();
|
||||
} else {
|
||||
progress += increase;
|
||||
}
|
||||
|
||||
if (progress >= recipe.getDuration()) {
|
||||
if (progress >= getDuration()) {
|
||||
ItemStack resultSlot = result.getStackInSlot(0);
|
||||
|
||||
if (resultSlot.isEmpty()) {
|
||||
@@ -204,10 +198,6 @@ public class NetworkNodeSolderer extends NetworkNode {
|
||||
return upgrades;
|
||||
}
|
||||
|
||||
public ISoldererRecipe getRecipe() {
|
||||
return recipe;
|
||||
}
|
||||
|
||||
public boolean isWorking() {
|
||||
return working;
|
||||
}
|
||||
@@ -216,6 +206,14 @@ public class NetworkNodeSolderer extends NetworkNode {
|
||||
return progress;
|
||||
}
|
||||
|
||||
public int getDuration() {
|
||||
if (recipe == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int) ((float) recipe.getDuration() - ((float) recipe.getDuration() / 100F * ((float) upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED) * RS.INSTANCE.config.soldererSpeedIncreasePerSpeedUpgrade)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getDrops() {
|
||||
return new CombinedInvWrapper(ingredients, result, upgrades);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeSolderer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -15,11 +14,7 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class TileSolderer extends TileNode<NetworkNodeSolderer> {
|
||||
public static final TileDataParameter<Integer, TileSolderer> DURATION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> {
|
||||
ISoldererRecipe recipe = t.getNode().getRecipe();
|
||||
|
||||
return recipe == null ? 0 : recipe.getDuration();
|
||||
});
|
||||
public static final TileDataParameter<Integer, TileSolderer> DURATION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getDuration());
|
||||
public static final TileDataParameter<Integer, TileSolderer> PROGRESS = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getProgress());
|
||||
public static final TileDataParameter<Boolean, TileSolderer> WORKING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isWorking());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user