diff --git a/src/main/java/reobf/proghatches/main/mixin/mixins/part2/MixinMultiPattern.java b/src/main/java/reobf/proghatches/main/mixin/mixins/part2/MixinMultiPattern.java index 7a769d7..ffc9d25 100644 --- a/src/main/java/reobf/proghatches/main/mixin/mixins/part2/MixinMultiPattern.java +++ b/src/main/java/reobf/proghatches/main/mixin/mixins/part2/MixinMultiPattern.java @@ -22,6 +22,7 @@ import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.inventory.FluidConvertingInventoryCrafting; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Share; @@ -221,7 +222,7 @@ public void MixinMultiPattern_executeCrafting(IEnergyGrid eg, CraftingGridCache break stop;// that's impossible to be done in same tick } InventoryCrafting ic = detail.isCraftable() ? new InventoryCrafting(new ContainerNull(), 3, 3) - : new InventoryCrafting(new ContainerNull(), detail.getInputs().length, 1); + : new FluidConvertingInventoryCrafting(new ContainerNull(), detail.getInputs().length, 1); final IAEItemStack[] input = detail.getInputs(); boolean found = false; for (int x = 0; x < input.length; x++) { @@ -252,8 +253,15 @@ public void MixinMultiPattern_executeCrafting(IEnergyGrid eg, CraftingGridCache if (!found) { // put stuff back.. for (int x = 0; x < ic.getSizeInventory(); x++) { - final ItemStack is = ic.getStackInSlot(x); + ItemStack is = ic.getStackInSlot(x); if (is != null) { + if(is.getItem() instanceof ItemFluidDrop){ + + is=ItemFluidDrop.newStack(ItemFluidPacket.getFluidStack(is)); + + } + + this.inventory.injectItems(AEItemStack.create(is), Actionable.MODULATE, this.machineSrc); } } @@ -272,8 +280,14 @@ public void MixinMultiPattern_executeCrafting(IEnergyGrid eg, CraftingGridCache if (ic != null) { // put stuff back.. for (int x = 0; x < ic.getSizeInventory(); x++) { - final ItemStack is = ic.getStackInSlot(x); + ItemStack is = ic.getStackInSlot(x); + if (is != null) { + if(is.getItem() instanceof ItemFluidDrop){ + + is=ItemFluidDrop.newStack(ItemFluidPacket.getFluidStack(is)); + + } this.inventory.injectItems(AEItemStack.create(is), Actionable.MODULATE, this.machineSrc); } } diff --git a/src/main/java/reobf/proghatches/oc/ItemCPU.java b/src/main/java/reobf/proghatches/oc/ItemCPU.java index 4b59e3b..fe6e1e5 100644 --- a/src/main/java/reobf/proghatches/oc/ItemCPU.java +++ b/src/main/java/reobf/proghatches/oc/ItemCPU.java @@ -1,13 +1,30 @@ package reobf.proghatches.oc; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.util.Arrays; +import java.util.Optional; +import java.util.function.Predicate; +import java.util.regex.Pattern; + +import li.cil.oc.api.Network; import li.cil.oc.api.driver.item.Slot; +import li.cil.oc.api.internal.Database; import li.cil.oc.api.machine.Architecture; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.EnvironmentHost; import li.cil.oc.api.network.ManagedEnvironment; +import li.cil.oc.api.network.Message; +import li.cil.oc.api.network.Node; +import li.cil.oc.api.network.Visibility; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.oredict.OreDictionary; public class ItemCPU extends Item implements li.cil.oc.api.driver.item.HostAware, li.cil.oc.api.driver.item.Processor{ @@ -21,7 +38,80 @@ public boolean worksWith(ItemStack stack) { @Override public ManagedEnvironment createEnvironment(ItemStack stack, EnvironmentHost host) { - return null; + return new APIEnv(stack); + } + public class APIEnv implements ManagedEnvironment { + + @Override + public void update() { + node().network().nodes().forEach(s->{ + + + + + System.out.println(s.host()); + }); + + } + + // public RedstoneEnv(EnvironmentHost + // env){this.env=env;};EnvironmentHost env; + private Node _node = Network.newNode(this, Visibility.Network) + + .create(); + + public APIEnv(ItemStack stack) { + this.stack = stack; + } + + ItemStack stack; + + @Override + public Node node() { + return _node; + + } + + + @Override + public void onConnect(Node node) { + // TODO Auto-generated method stub + + } + + @Override + public void onDisconnect(Node node) { + + } + + @Override + public void onMessage(Message message) { + + } + + @Override + public void load(NBTTagCompound nbt) { + Optional.ofNullable(nbt.getTag("node")).ifPresent(s -> { + if (node() != null) + node().load((NBTTagCompound) s); + }); + + } + + @Override + public void save(NBTTagCompound nbt) { + NBTTagCompound t = new NBTTagCompound(); + Optional.ofNullable(node()).ifPresent(s -> s.save(t)); + nbt.setTag("node", t); + } + + @Override + public boolean canUpdate() { + + return true; + } + + } @Override