diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 000000000..caeaee36d --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,47 @@ +Changes so far : + +Design changes/breakages: + - Interfaces no longer spill items of one pattern on other faces + - Interfaces now push patterns in round-robin (Interfaces, then sides) + + + + +Fixes: + + - Fix gregtech machines appearing with 'unnamed' or 'draconium lens' on the interface terminal on specific situations. + - Add memorycard support for fluid interfaces, import/export/storage busses and level emitters ( this fix was upstreamed to AE2 for MC 1.16) + - Storage busses now hide/show inaccessible items as configured. + - Exclusive Blocking mode for GTCE ( shapes, molds and configured circuits do not block GTCE machines ) + - Blocking modes default to block on any item in the iventory the entity exposes + - Fuzzy includes items that report that they're damageable, but report a maxDamage of 0 ( auto-crafting of basic capacitors -> resonant capacitors is now possible ) <- Broken item implementation. + +Performance: + + - Added @talchas fixes for insane channelless AE networks. + - Implemented StorageDrawers slotless itemrepository. + - Removed CraftedEvent calls (really bad lag with craftweaker versions before CraftTweaker2-1.12-4.1.20.626) + - Count items set in interfaces before queuing crafting for them needlessly + - Backported b7ca98d ( Avoid copying items on simulated item extraction ) + - Cache some level emitters functions + +QOL: + + - added highlight interface button to interface terminal ("?" button on the left of the interface slots) + - Added bar on the interface terminal that search by inputs ( The one on the LEFT, also searchs by interface name ) + - Shortcut to molecular assemblers with free slots on the terminal interface by @Theisyat + - Toggle button on interface terminal to hide full interfaces + - JEI "U""R" and "A" (Usages/Recipes/Bookmark) now work on the Crafting Status GUI. ( the one that shows the total items to craft, and whats missing) + - Patterns can now be made with items currently showing on JEI. ( This is overriden by Just Enough Energistics. ) + - Added multiplier buttons to processing pattern gui + - Switched crafting terminal JEI search to fuzzy mode. If the recipe uses a damageable item, AE will try to grab it ( damaged tools ) + - Encoded patterns stack up to 64 ( holding shift and clicking the encode arrow will transfer the encoded pattern to the player inventory) + - Encoded patterns can be draggred on the interface terminal. + - Storage Monitor and Conversion Monitor now also ccepts fluids + - Draggable JEI ghost items (also works on bookmarked items. SHIFT + Click will move the hovered item into the first free target slot) + -JEI auto switches between crafting and processing patterns + +HOTKEYS: + + - Implemented mousetweaks API. AE2 custom keybinds now work. (Try right clicking and use the scroll-wheel on the terminals) + - Holding SHIFT and scrolling UP and DOWN will increase the items set on the configured slots of Interfaces and Pattern Terminal (Processing mode) diff --git a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java index 84c740230..1da5c5c10 100644 --- a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java +++ b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import appeng.container.slot.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; @@ -51,12 +52,6 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; import appeng.container.ContainerNull; import appeng.container.guisync.GuiSync; -import appeng.container.slot.IOptionalSlotHost; -import appeng.container.slot.OptionalSlotFake; -import appeng.container.slot.SlotFakeCraftingMatrix; -import appeng.container.slot.SlotPatternOutputs; -import appeng.container.slot.SlotPatternTerm; -import appeng.container.slot.SlotRestrictedInput; import appeng.core.sync.packets.PacketPatternSlot; import appeng.helpers.IContainerCraftingPacket; import appeng.items.storage.ItemViewCell; @@ -132,6 +127,26 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA this.updateOrderOfOutputSlots(); } + @Override + public ItemStack transferStackInSlot( final EntityPlayer p, final int idx ) + { + if( Platform.isClient() ) + { + return ItemStack.EMPTY; + } + + final AppEngSlot clickSlot = ( AppEngSlot ) this.inventorySlots.get( idx ); // require AE SLots! + ItemStack itemStack = clickSlot.getStack(); + if( AEApi.instance().definitions().materials().blankPattern().isSameAs( itemStack ) ) + { + IItemHandler patternInv = this.getPatternTerminal().getInventoryByName( "pattern" ); + ItemStack remainder = patternInv.insertItem( 0, itemStack, false ); + clickSlot.putStack( remainder ); + } + return super.transferStackInSlot( p, idx ); + } + + private void updateOrderOfOutputSlots() { if( !this.isCraftingMode() )