More stuff
This commit is contained in:
11
src/main/java/refinedstorage/container/ContainerDummy.java
Executable file
11
src/main/java/refinedstorage/container/ContainerDummy.java
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
package refinedstorage.container;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.Container;
|
||||||
|
|
||||||
|
public class ContainerDummy extends Container {
|
||||||
|
@Override
|
||||||
|
public boolean canInteractWith(EntityPlayer player) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,16 +1,10 @@
|
|||||||
package refinedstorage.gui;
|
package refinedstorage.gui;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import refinedstorage.container.ContainerDummy;
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
|
|
||||||
public class GuiCraftingSettings extends GuiBase {
|
public class GuiCraftingSettings extends GuiBase {
|
||||||
public GuiCraftingSettings() {
|
public GuiCraftingSettings() {
|
||||||
super(new Container() {
|
super(new ContainerDummy(), 143, 61);
|
||||||
@Override
|
|
||||||
public boolean canInteractWith(EntityPlayer player) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}, 143, 61);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemPattern extends ItemBase {
|
public class ItemPattern extends ItemBase {
|
||||||
public static final String NBT_SLOT = "Slot_%d";
|
|
||||||
public static final String NBT_RESULT = "Result";
|
public static final String NBT_RESULT = "Result";
|
||||||
|
|
||||||
public ItemPattern() {
|
public ItemPattern() {
|
||||||
@@ -21,17 +20,6 @@ public class ItemPattern extends ItemBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSlot(ItemStack pattern, int i, ItemStack stack) {
|
|
||||||
if (pattern.getTagCompound() == null) {
|
|
||||||
pattern.setTagCompound(new NBTTagCompound());
|
|
||||||
}
|
|
||||||
|
|
||||||
NBTTagCompound stackTag = new NBTTagCompound();
|
|
||||||
stack.writeToNBT(stackTag);
|
|
||||||
|
|
||||||
pattern.getTagCompound().setTag(String.format(NBT_SLOT, i), stackTag);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setResult(ItemStack pattern, ItemStack stack) {
|
public static void setResult(ItemStack pattern, ItemStack stack) {
|
||||||
if (pattern.getTagCompound() == null) {
|
if (pattern.getTagCompound() == null) {
|
||||||
pattern.setTagCompound(new NBTTagCompound());
|
pattern.setTagCompound(new NBTTagCompound());
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import refinedstorage.network.MessageWirelessGridItems;
|
|||||||
import refinedstorage.storage.IStorage;
|
import refinedstorage.storage.IStorage;
|
||||||
import refinedstorage.storage.IStorageProvider;
|
import refinedstorage.storage.IStorageProvider;
|
||||||
import refinedstorage.storage.ItemGroup;
|
import refinedstorage.storage.ItemGroup;
|
||||||
|
import refinedstorage.tile.autocrafting.CraftingTask;
|
||||||
import refinedstorage.tile.config.IRedstoneModeConfig;
|
import refinedstorage.tile.config.IRedstoneModeConfig;
|
||||||
import refinedstorage.tile.config.RedstoneMode;
|
import refinedstorage.tile.config.RedstoneMode;
|
||||||
import refinedstorage.tile.grid.WirelessGridConsumer;
|
import refinedstorage.tile.grid.WirelessGridConsumer;
|
||||||
@@ -57,6 +58,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
private List<TileMachine> machines = new ArrayList<TileMachine>();
|
private List<TileMachine> machines = new ArrayList<TileMachine>();
|
||||||
private List<ClientSideMachine> clientSideMachines = new ArrayList<ClientSideMachine>();
|
private List<ClientSideMachine> clientSideMachines = new ArrayList<ClientSideMachine>();
|
||||||
|
|
||||||
|
private List<CraftingTask> craftingTasks = new ArrayList<CraftingTask>();
|
||||||
|
|
||||||
private List<BlockPos> visited = new ArrayList<BlockPos>();
|
private List<BlockPos> visited = new ArrayList<BlockPos>();
|
||||||
|
|
||||||
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY);
|
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY);
|
||||||
@@ -200,6 +203,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
return itemGroups;
|
return itemGroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<CraftingTask> getCraftingTasks() {
|
||||||
|
return craftingTasks;
|
||||||
|
}
|
||||||
|
|
||||||
private void syncItems() {
|
private void syncItems() {
|
||||||
itemGroups.clear();
|
itemGroups.clear();
|
||||||
|
|
||||||
|
|||||||
45
src/main/java/refinedstorage/tile/autocrafting/CraftingTask.java
Executable file
45
src/main/java/refinedstorage/tile/autocrafting/CraftingTask.java
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
package refinedstorage.tile.autocrafting;
|
||||||
|
|
||||||
|
import net.minecraft.inventory.InventoryCrafting;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.crafting.CraftingManager;
|
||||||
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
|
import refinedstorage.container.ContainerDummy;
|
||||||
|
import refinedstorage.util.InventoryUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CraftingTask {
|
||||||
|
private ItemStack result;
|
||||||
|
private List<ItemStack> ingredients;
|
||||||
|
|
||||||
|
public CraftingTask(ItemStack result, List<ItemStack> ingredients) {
|
||||||
|
this.result = result;
|
||||||
|
this.ingredients = ingredients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CraftingTask create(ItemStack result) {
|
||||||
|
List<ItemStack> ingredients = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
|
addCraftingIngredients(ingredients, result);
|
||||||
|
|
||||||
|
return new CraftingTask(result, ingredients);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addCraftingIngredients(List<ItemStack> ingredients, ItemStack stack) {
|
||||||
|
for (IRecipe recipe : CraftingManager.getInstance().getRecipeList()) {
|
||||||
|
ItemStack output = recipe.getRecipeOutput();
|
||||||
|
// this may seem unnecessary but keep it, some horrible mods return a null itemstack
|
||||||
|
if (output != null && output.getItem() != null) {
|
||||||
|
// first check if the output is the stack we're adding the ingredients for
|
||||||
|
if (InventoryUtils.compareStack(output, stack)) {
|
||||||
|
// now get all the ingredients from that recipe
|
||||||
|
for (ItemStack ingredient : recipe.getRemainingItems(new InventoryCrafting(new ContainerDummy(), 3, 3))) {
|
||||||
|
ingredients.add(ingredient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -170,14 +170,6 @@ public class TileGrid extends TileMachine implements IGrid {
|
|||||||
ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN);
|
ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN);
|
||||||
ItemPattern.setResult(pattern, crafted);
|
ItemPattern.setResult(pattern, crafted);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
|
||||||
ItemStack slot = craftingInventory.getStackInSlot(i);
|
|
||||||
|
|
||||||
if (slot != null) {
|
|
||||||
ItemPattern.setSlot(pattern, i, slot);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
patternsInventory.setInventorySlotContents(1, pattern);
|
patternsInventory.setInventorySlotContents(1, pattern);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user