balls (with reverb)

This commit is contained in:
Bob 2024-06-05 21:05:41 +02:00
parent 14c5941bab
commit bc1a6e17d3
4 changed files with 19 additions and 12 deletions

View File

@ -21,11 +21,14 @@
* Microwaves are no longer electric furnace copies, instead their recipes are restricted to things considered food
* Electric furnaces now cause minor pollution (does not connect to smoke stacks!)
* Increased the arc furnace's liquid buffer to 128 blocks (from 24)
* The arc furnace can now accept up to *16* items per slot (effective amount is lower depending on the output in order to prevent >64 stacks)
* Due to technical limitations, clicking into a slot once will only place a single item, however after the item is present, the slot's capacity extends to 16
* This is especially apparent when clicking items into slots by hand, and still noticeable when shift clicking by how the items spred out
* The arc furnace can now accepts more items depending on the speed upgrade, extending all the way to 16 with speed 3 (effective cap might be lower to prevent outputs from exceeding 64 items)
* Due to technical limitations, clicking into a slot once will only place a single item, however after the item is present, the slot's capacity extends to the upgraded size
* This is especially apparent when clicking items into slots by hand, and still noticeable when shift clicking by how the items spread out
* This does not affect automation at all, items will stack up nicely without spreading out unnecessarily
* Reduced arc furnace pollution from 15 to 10 soot per cycle
* The way soot spreads has been changed
* The spreading threshold has been decreased from 15 to 10
* Every update, soot will decrease by regardless of whether it can spread or not (instead of only if it cannot spread)
## Fixed
* Fixed dupe regarding conveyor grabbers

View File

@ -207,13 +207,12 @@ public class PollutionHandler {
int P = PollutionType.POISON.ordinal();
/* CALCULATION */
if(data.pollution[S] > 15) {
if(data.pollution[S] > 10) {
pollutionForNeightbors[S] = (float) (data.pollution[S] * 0.05F);
data.pollution[S] *= 0.8F;
} else {
data.pollution[S] *= 0.99F;
}
data.pollution[S] *= 0.99F;
data.pollution[H] *= 0.9995F;
if(data.pollution[P] > 10) {

View File

@ -96,14 +96,15 @@ public class ContainerMachineArcFurnaceLarge extends Container {
if(furnace.liquidMode) return true;
ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, furnace.liquidMode);
if(recipe != null && recipe.solidOutput != null) {
return recipe.solidOutput.stackSize * stack.stackSize <= recipe.solidOutput.getMaxStackSize() && stack.stackSize <= TileEntityMachineArcFurnaceLarge.MAX_INPUT_STACK_SIZE;
return recipe.solidOutput.stackSize * stack.stackSize <= recipe.solidOutput.getMaxStackSize() && stack.stackSize <= furnace.getMaxInputSize();
}
return false;
}
@Override
public int getSlotStackLimit() {
return this.getHasStack() ? TileEntityMachineArcFurnaceLarge.MAX_INPUT_STACK_SIZE : 1;
TileEntityMachineArcFurnaceLarge furnace = (TileEntityMachineArcFurnaceLarge) this.inventory;
return this.getHasStack() ? furnace.getMaxInputSize() : 1;
}
}
}

View File

@ -56,6 +56,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
public boolean isProgressing;
public boolean hasMaterial;
public int delay;
public int upgrade;
public float lid;
public float prevLid;
@ -71,7 +72,9 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
public static final byte ELECTRODE_USED = 2;
public static final byte ELECTRODE_DEPLETED = 3;
public static final int MAX_INPUT_STACK_SIZE = 16;
public int getMaxInputSize() {
return upgrade == 0 ? 1 : upgrade == 1 ? 4 : upgrade == 2 ? 8 : 16;
}
public static final int maxLiquid = MaterialShapes.BLOCK.q(128);
public List<MaterialStack> liquids = new ArrayList();
@ -97,6 +100,9 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
@Override
public void updateEntity() {
UpgradeManager.eval(slots, 4, 4);
this.upgrade = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3);
if(!worldObj.isRemote) {
this.power = Library.chargeTEFromItems(slots, 3, power, maxPower);
@ -109,8 +115,6 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
boolean ingredients = this.hasIngredients();
boolean electrodes = this.hasElectrodes();
UpgradeManager.eval(slots, 4, 4);
int upgrade = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3);
int consumption = (int) (1_000 * Math.pow(5, upgrade));
if(ingredients && electrodes && delay <= 0 && this.liquids.isEmpty()) {
@ -345,7 +349,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
if(recipe.solidOutput == null) return false;
int sta = slots[slot] != null ? slots[slot].stackSize : 0;
sta += stack.stackSize;
return sta * recipe.solidOutput.stackSize <= recipe.solidOutput.getMaxStackSize() && sta <= MAX_INPUT_STACK_SIZE;
return sta * recipe.solidOutput.stackSize <= recipe.solidOutput.getMaxStackSize() && sta <= getMaxInputSize();
}
}
return false;