forward port 1.10 changes

related to #995, #1019, #1086, #1087
This commit is contained in:
way2muchnoise
2017-03-22 15:00:07 +01:00
parent a450fc22e3
commit a08784e16d
7 changed files with 71 additions and 5 deletions

View File

@@ -0,0 +1,16 @@
package com.raoulvdberge.refinedstorage;
import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.settings.KeyConflictContext;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import org.lwjgl.input.Keyboard;
public final class RSKeyBindings {
private static final String categoryName = RS.ID;
public static final KeyBinding focusSearchBar = new KeyBinding("key.rs.focusSearchBar", KeyConflictContext.GUI, Keyboard.KEY_TAB, categoryName);
public static void init() {
ClientRegistry.registerKeyBinding(focusSearchBar);
}
}

View File

@@ -0,0 +1,36 @@
package com.raoulvdberge.refinedstorage.api.autocrafting;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.items.ItemHandlerHelper;
/**
* Event fired upon completion of an auto crafting task
*/
public class AutoCraftingEvent extends Event {
private ItemStack crafted;
private INetworkMaster network;
private AutoCraftingEvent(INetworkMaster network, ItemStack crafted) {
this.crafted = crafted;
this.network = network;
}
public ItemStack getCrafted() {
return crafted;
}
public INetworkMaster getNetwork() {
return network;
}
public static void fire(INetworkMaster network, ItemStack crafted) {
MinecraftForge.EVENT_BUS.post(new AutoCraftingEvent(network, crafted));
}
public static void fire(INetworkMaster network, ItemStack crafted, int quantity) {
fire(network, ItemHandlerHelper.copyStackWithSize(crafted, quantity));
}
}

View File

@@ -179,6 +179,7 @@ public class CraftingManager implements ICraftingManager {
ICraftingTask task = craftingTaskIterator.next(); ICraftingTask task = craftingTaskIterator.next();
if (task.update(usedCrafters)) { if (task.update(usedCrafters)) {
AutoCraftingEvent.fire(network, task.getRequested(), task.getQuantity());
craftingTaskIterator.remove(); craftingTaskIterator.remove();
craftingTasksChanged = true; craftingTasksChanged = true;

View File

@@ -27,6 +27,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.CombinedInvWrapper;
@@ -359,6 +360,8 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
} }
} }
FMLCommonHandler.instance().firePlayerCraftingEvent(player, ItemHandlerHelper.copyStackWithSize(crafted, craftedItems), matrix);
} }
public void onCreatePattern() { public void onCreatePattern() {

View File

@@ -12,6 +12,8 @@ import org.apache.commons.lang3.ArrayUtils;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class Comparer implements IComparer { public class Comparer implements IComparer {
private Map<Integer, Boolean> oredictCache = new HashMap<>(); private Map<Integer, Boolean> oredictCache = new HashMap<>();
@@ -210,6 +212,14 @@ public class Comparer implements IComparer {
stack.getTagCompound().removeTag("dropped"); stack.getTagCompound().removeTag("dropped");
stack.getTagCompound().removeTag("energy"); stack.getTagCompound().removeTag("energy");
break; break;
case "draconicevolution":
stack.getTagCompound().removeTag("Energy");
stack.getTagCompound().removeTag("DEUpgrades");
Set<String> profiles = stack.getTagCompound().getKeySet().stream().filter(key -> key.startsWith("Profile")).collect(Collectors.toSet());
for (String profile : profiles) {
stack.getTagCompound().removeTag(profile);
}
break;
case "minecraft": case "minecraft":
stack.getTagCompound().removeTag("RepairCost"); stack.getTagCompound().removeTag("RepairCost");
break; break;

View File

@@ -4,6 +4,7 @@ import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimaps; import com.google.common.collect.Multimaps;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSKeyBindings;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.block.GridType;
@@ -578,7 +579,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
updateJEI(); updateJEI();
sortItems(); sortItems();
} else if (keyCode == Keyboard.KEY_TAB && (grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_NORMAL || grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED)) { } else if (keyCode == RSKeyBindings.focusSearchBar.getKeyCode() && (grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_NORMAL || grid.getSearchBoxMode() == NetworkNodeGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED)) {
searchField.setFocused(!searchField.isFocused()); searchField.setFocused(!searchField.isFocused());
} else { } else {
super.keyTyped(character, keyCode); super.keyTyped(character, keyCode);

View File

@@ -1,9 +1,6 @@
package com.raoulvdberge.refinedstorage.proxy; package com.raoulvdberge.refinedstorage.proxy;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.*;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.block.*; import com.raoulvdberge.refinedstorage.block.*;
import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview; import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview;
@@ -260,6 +257,8 @@ public class ProxyClient extends ProxyCommon {
public void init(FMLInitializationEvent e) { public void init(FMLInitializationEvent e) {
super.init(e); super.init(e);
RSKeyBindings.init();
ItemColors itemColors = Minecraft.getMinecraft().getItemColors(); ItemColors itemColors = Minecraft.getMinecraft().getItemColors();
itemColors.registerItemColorHandler((stack, tintIndex) -> { itemColors.registerItemColorHandler((stack, tintIndex) -> {