Make controller consume pattern container API
This commit is contained in:
		| @@ -2,7 +2,6 @@ package refinedstorage.api.autocrafting; | ||||
|  | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.nbt.NBTTagCompound; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraft.world.World; | ||||
|  | ||||
| /** | ||||
| @@ -15,11 +14,6 @@ public interface ICraftingPattern { | ||||
|      */ | ||||
|     ICraftingPatternContainer getContainer(World world); | ||||
|  | ||||
|     /** | ||||
|      * @return The position of the container where the pattern is in | ||||
|      */ | ||||
|     BlockPos getContainerPosition(); | ||||
|  | ||||
|     /** | ||||
|      * @return The inputs | ||||
|      */ | ||||
| @@ -40,6 +34,10 @@ public interface ICraftingPattern { | ||||
|      */ | ||||
|     String getId(); | ||||
|  | ||||
|     /** | ||||
|      * @param requested The item requested | ||||
|      * @return The quantity returned per request | ||||
|      */ | ||||
|     int getQuantityPerRequest(ItemStack requested); | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package refinedstorage.api.autocrafting; | ||||
|  | ||||
| import net.minecraft.util.math.BlockPos; | ||||
| import net.minecraftforge.items.IItemHandler; | ||||
|  | ||||
| /** | ||||
| @@ -17,4 +18,14 @@ public interface ICraftingPatternContainer { | ||||
|      * @return The {@link IItemHandler} that this container is facing | ||||
|      */ | ||||
|     IItemHandler getConnectedItems(); | ||||
|  | ||||
|     /** | ||||
|      * @return The patterns stored in this container | ||||
|      */ | ||||
|     IItemHandler getPatterns(); | ||||
|  | ||||
|     /** | ||||
|      * @return The position of this container | ||||
|      */ | ||||
|     BlockPos getPosition(); | ||||
| } | ||||
|   | ||||
| @@ -10,6 +10,7 @@ import refinedstorage.api.autocrafting.ICraftingPattern; | ||||
| import refinedstorage.api.autocrafting.ICraftingPatternContainer; | ||||
| import refinedstorage.api.storage.CompareUtils; | ||||
| import refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactoryNormal; | ||||
| import refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactoryProcessing; | ||||
| import refinedstorage.item.ItemPattern; | ||||
| import refinedstorage.tile.TileCrafter; | ||||
|  | ||||
| @@ -46,11 +47,6 @@ public class CraftingPattern implements ICraftingPattern { | ||||
|         return crafter; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public BlockPos getContainerPosition() { | ||||
|         return crafterPos; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public ItemStack[] getInputs() { | ||||
|         return inputs; | ||||
| @@ -68,7 +64,7 @@ public class CraftingPattern implements ICraftingPattern { | ||||
|  | ||||
|     @Override | ||||
|     public String getId() { | ||||
|         return processing ? "processing" : CraftingTaskFactoryNormal.ID; | ||||
|         return processing ? CraftingTaskFactoryProcessing.ID : CraftingTaskFactoryNormal.ID; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
| @@ -463,15 +463,15 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR | ||||
|         patterns.clear(); | ||||
|  | ||||
|         for (INetworkNode node : nodeGraph.all()) { | ||||
|             if (node instanceof TileCrafter && node.canUpdate()) { | ||||
|                 TileCrafter crafter = (TileCrafter) node; | ||||
|             if (node instanceof ICraftingPatternContainer && node.canUpdate()) { | ||||
|                 ICraftingPatternContainer container = (ICraftingPatternContainer) node; | ||||
|  | ||||
|                 for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) { | ||||
|                     ItemStack pattern = crafter.getPatterns().getStackInSlot(i); | ||||
|                 for (int i = 0; i < container.getPatterns().getSlots(); ++i) { | ||||
|                     ItemStack pattern = container.getPatterns().getStackInSlot(i); | ||||
|  | ||||
|                     if (pattern != null && ItemPattern.isValid(pattern)) { | ||||
|                         patterns.add(new CraftingPattern( | ||||
|                             crafter.getPos(), | ||||
|                             container.getPosition(), | ||||
|                             ItemPattern.isProcessing(pattern), | ||||
|                             ItemPattern.getInputs(pattern), | ||||
|                             ItemPattern.getOutputs(pattern), | ||||
|   | ||||
| @@ -50,7 +50,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { | ||||
|     public void onConnectionChange(INetworkMaster network, boolean state) { | ||||
|         if (!state) { | ||||
|             network.getCraftingTasks().stream() | ||||
|                 .filter(task -> task.getPattern().getContainerPosition().equals(pos)) | ||||
|                 .filter(task -> task.getPattern().getContainer(worldObj).getPosition().equals(pos)) | ||||
|                 .forEach(network::cancelCraftingTask); | ||||
|         } | ||||
|  | ||||
| @@ -85,6 +85,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { | ||||
|         return getItemHandler(getFacingTile(), getDirection().getOpposite()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public IItemHandler getPatterns() { | ||||
|         return patterns; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge