Compare commits

...
23 Commits
Author SHA1 Message Date
Martin Robertz b93d4760af Merge remote-tracking branch 'origin/splicer_fix' into dev 2026-01-30 10:52:14 +01:00
Martin Robertz 73d7766b3d Merge branch 'master' into dev 2026-01-30 10:52:10 +01:00
Martin Robertz a52f1b0926 Merge branch 'master' into splicer_fix 2026-01-30 10:51:47 +01:00
Martin Robertz 52e99c9b67 Merge remote-tracking branch 'origin/splicer_fix' into dev 2026-01-10 01:24:45 +01:00
Martin Robertz 3154726eb8 Merge remote-tracking branch 'origin/yeet-itemparse-v2' into dev 2026-01-10 01:24:39 +01:00
ah-OOG-ah 4beab15846 Merge branch 'master' into yeet-itemparse-v2 2025-12-16 14:56:21 -05:00
ah-OOG-ah 7e331c0bd8 Bump BS 2025-12-16 14:55:24 -05:00
ah-OOG-ah 31a4e593b3 Bump gradlew 2025-12-16 14:49:35 -05:00
Fabian Maurer 2e159f1983 Merge remote-tracking branch 'origin/master' into splicer_fix 2025-12-12 21:01:02 +01:00
ah-OOG-ah 7029d05c65 Merge branch 'master' into yeet-itemparse-v2 2025-12-05 10:52:17 -05:00
Fabian Maurer dde6c79f9e Move out larvae from splicer even when no serum is present anymore 2025-11-12 23:13:18 +01:00
ah-OOG-ah 577a198cb6 spotless 2025-11-01 12:33:35 -04:00
ah-OOG-ah d6f724dd23 Remove reflective garbage 2025-11-01 12:32:15 -04:00
ah-OOG-ah 938e33bfab Botany Gardening: self-register items 2025-11-01 12:24:52 -04:00
ah-OOG-ah 6478c25ea7 Genetics: self-register items 2025-11-01 12:17:41 -04:00
ah-OOG-ah 2ce1328e3b ExtraTrees: self-register items 2025-11-01 12:14:21 -04:00
ah-OOG-ah 03614866a4 ExtraBees: self-register items 2025-11-01 12:10:28 -04:00
ah-OOG-ah 60605d06c1 Botany: self-register items 2025-11-01 11:58:49 -04:00
ah-OOG-ah 7c8d913724 Core: self-register items 2025-11-01 11:56:42 -04:00
ah-OOG-ah 718f0661df Make misc items register themselves 2025-11-01 11:54:25 -04:00
ah-OOG-ah a936e2fa64 Remove pointless null check
This always exists
2025-11-01 11:40:08 -04:00
ah-OOG-ah fb8edb5738 Inline ItemManager
It didn't do anything useful.
2025-11-01 11:39:19 -04:00
ah-OOG-ah 5f5dcda1a0 bump BS + deps 2025-11-01 10:45:21 -04:00
3 changed files with 57 additions and 2 deletions

No files matched your search

@@ -9,4 +9,11 @@ public interface IProcess extends IErrorStateSource {
boolean isInProgress();
ProcessInfo getInfo();
/***
* Returns true if the current target got worked on at least once.
*/
default boolean workedOnTarget() {
return false;
}
}
@@ -19,6 +19,10 @@ import forestry.api.genetics.IIndividual;
public class SplicerComponentLogic extends ComponentProcessSetCost implements IProcess {
// Needed to keep stack. If user takes out target slot and it gets automatically refilled, this happens in the same
// tick
private ItemStack workedOnStack = null;
public int nOfGenes;
public SplicerComponentLogic(Machine machine) {
@@ -50,6 +54,11 @@ public class SplicerComponentLogic extends ComponentProcessSetCost implements IP
public void onInventoryUpdate() {
super.onInventoryUpdate();
nOfGenes = getGenesToUse();
ItemStack newTarget = getUtil().getStack(Splicer.SLOT_TARGET);
if (newTarget == null || !ItemStack.areItemStacksEqual(workedOnStack, newTarget)) {
workedOnStack = null;
}
}
protected int getGenesToUse() {
@@ -190,5 +199,31 @@ public class SplicerComponentLogic extends ComponentProcessSetCost implements IP
Splicer.setGene(gene, target, 1);
}
getUtil().damageItem(Splicer.SLOT_SERUM_VIAL, 1);
workedOnStack = getUtil().getStack(Splicer.SLOT_TARGET).copy();
}
@Override
public boolean workedOnTarget() {
return ItemStack.areItemStacksEqual(workedOnStack, getUtil().getStack(Splicer.SLOT_TARGET));
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
NBTTagCompound tagWorkedOnStack = (NBTTagCompound) nbt.getTag("workedOnStack");
if (tagWorkedOnStack != null) {
workedOnStack = ItemStack.loadItemStackFromNBT(tagWorkedOnStack);
}
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
if (workedOnStack != null) {
NBTTagCompound tagWorkedOnStack = new NBTTagCompound();
workedOnStack.writeToNBT(tagWorkedOnStack);
// Need to save, in case inventory is full it might need to get moved out way later.
nbt.setTag("workedOnStack", tagWorkedOnStack);
}
}
}
@@ -3,6 +3,7 @@ package binnie.genetics.machine.splicer;
import net.minecraft.item.ItemStack;
import binnie.core.craftgui.minecraft.IMachineInformation;
import binnie.core.machines.IMachine;
import binnie.core.machines.Machine;
import binnie.core.machines.inventory.ComponentInventorySlots;
import binnie.core.machines.inventory.ComponentInventoryTransfer;
@@ -79,8 +80,20 @@ public class SplicerPackage extends AdvGeneticMachine.PackageAdvGeneticBase impl
@Override
public boolean fufilled(ItemStack stack) {
return stack != null && transfer.getMachine().getMachineUtil().getStack(Splicer.SLOT_SERUM_VIAL) != null
&& transfer.getMachine().getInterface(SplicerComponentLogic.class).isValidSerum() != null;
if (stack == null) {
return false;
}
IMachine machine = transfer.getMachine();
boolean hasSerum = machine.getMachineUtil().getStack(Splicer.SLOT_SERUM_VIAL) != null;
if (hasSerum) {
// Move item if it can't be processed anymore with current serum.
boolean validSerum = machine.getInterface(SplicerComponentLogic.class).isValidSerum() == null;
return !validSerum;
} else {
// Move item if there is no serum and item got processed already
return machine.getMachineUtil().getProcess().workedOnTarget();
}
}
});