mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-27 01:08:34 +01:00
not how you revert
This commit is contained in:
parent
6777afa04d
commit
1e9ec4e7aa
10 changed files with 56 additions and 63 deletions
|
@ -192,8 +192,9 @@ public class ContainerBag extends Container implements IButtonReactor{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
||||||
if(SlotFilter.checkFilter(this, slotId, player)){
|
if(slotId >= 0 && slotId < this.inventorySlots.size() && this.getSlot(slotId) instanceof SlotFilter){
|
||||||
return StackUtil.getNull();
|
//Calls the Filter's SlotClick function
|
||||||
|
return ((SlotFilter)this.getSlot(slotId)).slotClick(player);
|
||||||
}
|
}
|
||||||
else if(clickTypeIn == ClickType.SWAP && dragType == this.inventory.currentItem){
|
else if(clickTypeIn == ClickType.SWAP && dragType == this.inventory.currentItem){
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class ContainerFilter extends Container{
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack stack = inventory.getCurrentItem();
|
ItemStack stack = inventory.getCurrentItem();
|
||||||
if(SlotFilter.isFilter(stack)){
|
if(StackUtil.isValid(stack) && stack.getItem() instanceof ItemFilter){
|
||||||
ItemDrill.loadSlotsFromNBT(this.filterInventory.slots, inventory.getCurrentItem());
|
ItemDrill.loadSlotsFromNBT(this.filterInventory.slots, inventory.getCurrentItem());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,8 +113,9 @@ public class ContainerFilter extends Container{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
||||||
if(SlotFilter.checkFilter(this, slotId, player)){
|
if(slotId >= 0 && slotId < this.inventorySlots.size() && this.getSlot(slotId) instanceof SlotFilter){
|
||||||
return StackUtil.getNull();
|
//Calls the Filter's SlotClick function
|
||||||
|
return ((SlotFilter)this.getSlot(slotId)).slotClick(player);
|
||||||
}
|
}
|
||||||
else if(clickTypeIn == ClickType.SWAP && dragType == this.inventory.currentItem){
|
else if(clickTypeIn == ClickType.SWAP && dragType == this.inventory.currentItem){
|
||||||
return null;
|
return null;
|
||||||
|
@ -127,7 +128,7 @@ public class ContainerFilter extends Container{
|
||||||
@Override
|
@Override
|
||||||
public void onContainerClosed(EntityPlayer player){
|
public void onContainerClosed(EntityPlayer player){
|
||||||
ItemStack stack = this.inventory.getCurrentItem();
|
ItemStack stack = this.inventory.getCurrentItem();
|
||||||
if(SlotFilter.isFilter(stack)){
|
if(StackUtil.isValid(stack) && stack.getItem() instanceof ItemFilter){
|
||||||
ItemDrill.writeSlotsToNBT(this.filterInventory.slots, this.inventory.getCurrentItem());
|
ItemDrill.writeSlotsToNBT(this.filterInventory.slots, this.inventory.getCurrentItem());
|
||||||
}
|
}
|
||||||
super.onContainerClosed(player);
|
super.onContainerClosed(player);
|
||||||
|
|
|
@ -106,8 +106,9 @@ public class ContainerInputter extends Container{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
||||||
if(SlotFilter.checkFilter(this, slotId, player)){
|
if(slotId >= 0 && slotId < this.inventorySlots.size() && this.getSlot(slotId) instanceof SlotFilter){
|
||||||
return StackUtil.getNull();
|
//Calls the Filter's SlotClick function
|
||||||
|
return ((SlotFilter)this.getSlot(slotId)).slotClick(player);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
||||||
|
|
|
@ -94,8 +94,9 @@ public class ContainerLaserRelayItemWhitelist extends Container{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
||||||
if(SlotFilter.checkFilter(this, slotId, player)){
|
if(slotId >= 0 && slotId < this.inventorySlots.size() && this.getSlot(slotId) instanceof SlotFilter){
|
||||||
return StackUtil.getNull();
|
//Calls the Filter's SlotClick function
|
||||||
|
return ((SlotFilter)this.getSlot(slotId)).slotClick(player);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
||||||
|
|
|
@ -101,8 +101,9 @@ public class ContainerRangedCollector extends Container{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player){
|
||||||
if(SlotFilter.checkFilter(this, slotId, player)){
|
if(slotId >= 0 && slotId < this.inventorySlots.size() && this.getSlot(slotId) instanceof SlotFilter){
|
||||||
return StackUtil.getNull();
|
//Calls the Filter's SlotClick function
|
||||||
|
return ((SlotFilter)this.getSlot(slotId)).slotClick(player);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
return super.slotClick(slotId, dragType, clickTypeIn, player);
|
||||||
|
|
|
@ -10,10 +10,8 @@
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory.slot;
|
package de.ellpeck.actuallyadditions.mod.inventory.slot;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemFilter;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
@ -24,41 +22,30 @@ public class SlotFilter extends Slot{
|
||||||
super(inv, slot, x, y);
|
super(inv, slot, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkFilter(Container container, int slotId, EntityPlayer player){
|
/**
|
||||||
if(slotId >= 0 && slotId < container.inventorySlots.size()){
|
* Gets called when the Filter Slot is clicked
|
||||||
Slot slot = container.getSlot(slotId);
|
* Needs to be called in slotClick() in the Container!
|
||||||
if(slot instanceof SlotFilter){
|
*
|
||||||
((SlotFilter)slot).slotClick(player);
|
* @param player The player
|
||||||
return true;
|
* @return Nothing, as the Item didn't really get "transferred"
|
||||||
}
|
*/
|
||||||
}
|
public ItemStack slotClick(EntityPlayer player){
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void slotClick(EntityPlayer player){
|
|
||||||
ItemStack heldStack = player.inventory.getItemStack();
|
ItemStack heldStack = player.inventory.getItemStack();
|
||||||
ItemStack stackInSlot = this.getStack();
|
|
||||||
|
|
||||||
if(StackUtil.isValid(stackInSlot) && !StackUtil.isValid(heldStack)){
|
|
||||||
if(isFilter(stackInSlot)){
|
|
||||||
player.inventory.setItemStack(stackInSlot);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//Delete the stack in the inventory
|
||||||
|
if(StackUtil.isValid(this.getStack()) && !StackUtil.isValid(heldStack)){
|
||||||
this.putStack(StackUtil.getNull());
|
this.putStack(StackUtil.getNull());
|
||||||
}
|
}
|
||||||
else if(StackUtil.isValid(heldStack)){
|
//Put the current Item as a filter
|
||||||
if(!isFilter(stackInSlot)){
|
else{
|
||||||
this.putStack(StackUtil.setStackSize(heldStack.copy(), 1));
|
if(StackUtil.isValid(heldStack)){
|
||||||
|
ItemStack stack = heldStack.copy();
|
||||||
if(isFilter(heldStack)){
|
stack = StackUtil.setStackSize(stack, 1);
|
||||||
player.inventory.setItemStack(StackUtil.addStackSize(heldStack, -1));
|
this.putStack(stack);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isFilter(ItemStack stack){
|
return null;
|
||||||
return StackUtil.isValid(stack) && stack.getItem() instanceof ItemFilter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
package de.ellpeck.actuallyadditions.mod.tile;
|
package de.ellpeck.actuallyadditions.mod.tile;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFilter;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFilter;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotFilter;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
|
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemFilter;
|
import de.ellpeck.actuallyadditions.mod.items.ItemFilter;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||||
|
@ -66,7 +65,7 @@ public class FilterSettings{
|
||||||
if(StackUtil.isValid(stack)){
|
if(StackUtil.isValid(stack)){
|
||||||
for(int i = startSlot; i < endSlot; i++){
|
for(int i = startSlot; i < endSlot; i++){
|
||||||
if(StackUtil.isValid(slots[i])){
|
if(StackUtil.isValid(slots[i])){
|
||||||
if(SlotFilter.isFilter(slots[i])){
|
if(slots[i].getItem() instanceof ItemFilter){
|
||||||
ItemStack[] filterSlots = new ItemStack[ContainerFilter.SLOT_AMOUNT];
|
ItemStack[] filterSlots = new ItemStack[ContainerFilter.SLOT_AMOUNT];
|
||||||
ItemDrill.loadSlotsFromNBT(filterSlots, slots[i]);
|
ItemDrill.loadSlotsFromNBT(filterSlots, slots[i]);
|
||||||
if(filterSlots != null && filterSlots.length > 0){
|
if(filterSlots != null && filterSlots.length > 0){
|
||||||
|
|
|
@ -231,11 +231,11 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
|
||||||
compound.setInteger("SideToPull", this.sideToPull);
|
compound.setInteger("SideToPull", this.sideToPull);
|
||||||
compound.setInteger("SlotToPull", this.slotToPullStart);
|
compound.setInteger("SlotToPull", this.slotToPullStart);
|
||||||
compound.setInteger("SlotToPullEnd", this.slotToPullEnd);
|
compound.setInteger("SlotToPullEnd", this.slotToPullEnd);
|
||||||
}
|
|
||||||
|
|
||||||
this.leftFilter.writeToNBT(compound, "LeftFilter");
|
this.leftFilter.writeToNBT(compound, "LeftFilter");
|
||||||
this.rightFilter.writeToNBT(compound, "RightFilter");
|
this.rightFilter.writeToNBT(compound, "RightFilter");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
||||||
|
@ -246,11 +246,10 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
|
||||||
this.sideToPull = compound.getInteger("SideToPull");
|
this.sideToPull = compound.getInteger("SideToPull");
|
||||||
this.slotToPullStart = compound.getInteger("SlotToPull");
|
this.slotToPullStart = compound.getInteger("SlotToPull");
|
||||||
this.slotToPullEnd = compound.getInteger("SlotToPullEnd");
|
this.slotToPullEnd = compound.getInteger("SlotToPullEnd");
|
||||||
}
|
|
||||||
|
|
||||||
this.leftFilter.readFromNBT(compound, "LeftFilter");
|
this.leftFilter.readFromNBT(compound, "LeftFilter");
|
||||||
this.rightFilter.readFromNBT(compound, "RightFilter");
|
this.rightFilter.readFromNBT(compound, "RightFilter");
|
||||||
|
}
|
||||||
super.readSyncableNBT(compound, type);
|
super.readSyncableNBT(compound, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
package de.ellpeck.actuallyadditions.mod.tile;
|
package de.ellpeck.actuallyadditions.mod.tile;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFilter;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFilter;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotFilter;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
|
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemFilter;
|
import de.ellpeck.actuallyadditions.mod.items.ItemFilter;
|
||||||
import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor;
|
import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor;
|
||||||
|
@ -181,10 +180,11 @@ public class TileEntityLaserRelayItemWhitelist extends TileEntityLaserRelayItem
|
||||||
if(type == NBTType.SAVE_TILE){
|
if(type == NBTType.SAVE_TILE){
|
||||||
TileEntityInventoryBase.saveSlots(this.slots, compound);
|
TileEntityInventoryBase.saveSlots(this.slots, compound);
|
||||||
}
|
}
|
||||||
|
if(type != NBTType.SAVE_BLOCK){
|
||||||
this.leftFilter.writeToNBT(compound, "LeftFilter");
|
this.leftFilter.writeToNBT(compound, "LeftFilter");
|
||||||
this.rightFilter.writeToNBT(compound, "RightFilter");
|
this.rightFilter.writeToNBT(compound, "RightFilter");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
||||||
|
@ -192,10 +192,11 @@ public class TileEntityLaserRelayItemWhitelist extends TileEntityLaserRelayItem
|
||||||
if(type == NBTType.SAVE_TILE){
|
if(type == NBTType.SAVE_TILE){
|
||||||
TileEntityInventoryBase.loadSlots(this.slots, compound);
|
TileEntityInventoryBase.loadSlots(this.slots, compound);
|
||||||
}
|
}
|
||||||
|
if(type != NBTType.SAVE_BLOCK){
|
||||||
this.leftFilter.readFromNBT(compound, "LeftFilter");
|
this.leftFilter.readFromNBT(compound, "LeftFilter");
|
||||||
this.rightFilter.readFromNBT(compound, "RightFilter");
|
this.rightFilter.readFromNBT(compound, "RightFilter");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onButtonPressed(int buttonID, EntityPlayer player){
|
public void onButtonPressed(int buttonID, EntityPlayer player){
|
||||||
|
@ -221,7 +222,7 @@ public class TileEntityLaserRelayItemWhitelist extends TileEntityLaserRelayItem
|
||||||
if(!FilterSettings.check(copy, this.slots, usedSettings.startSlot, usedSettings.endSlot, true, usedSettings.respectMeta, usedSettings.respectNBT, usedSettings.respectMod, usedSettings.respectOredict)){
|
if(!FilterSettings.check(copy, this.slots, usedSettings.startSlot, usedSettings.endSlot, true, usedSettings.respectMeta, usedSettings.respectNBT, usedSettings.respectMod, usedSettings.respectOredict)){
|
||||||
for(int k = usedSettings.startSlot; k < usedSettings.endSlot; k++){
|
for(int k = usedSettings.startSlot; k < usedSettings.endSlot; k++){
|
||||||
if(StackUtil.isValid(this.slots[k])){
|
if(StackUtil.isValid(this.slots[k])){
|
||||||
if(SlotFilter.isFilter(this.slots[k])){
|
if(this.slots[k].getItem() instanceof ItemFilter){
|
||||||
ItemStack[] filterSlots = new ItemStack[ContainerFilter.SLOT_AMOUNT];
|
ItemStack[] filterSlots = new ItemStack[ContainerFilter.SLOT_AMOUNT];
|
||||||
ItemDrill.loadSlotsFromNBT(filterSlots, this.slots[k]);
|
ItemDrill.loadSlotsFromNBT(filterSlots, this.slots[k]);
|
||||||
|
|
||||||
|
|
|
@ -37,16 +37,18 @@ public class TileEntityRangedCollector extends TileEntityInventoryBase implement
|
||||||
@Override
|
@Override
|
||||||
public void writeSyncableNBT(NBTTagCompound compound, NBTType type){
|
public void writeSyncableNBT(NBTTagCompound compound, NBTType type){
|
||||||
super.writeSyncableNBT(compound, type);
|
super.writeSyncableNBT(compound, type);
|
||||||
|
if(type != NBTType.SAVE_BLOCK){
|
||||||
this.filter.writeToNBT(compound, "Filter");
|
this.filter.writeToNBT(compound, "Filter");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
public void readSyncableNBT(NBTTagCompound compound, NBTType type){
|
||||||
super.readSyncableNBT(compound, type);
|
super.readSyncableNBT(compound, type);
|
||||||
|
if(type != NBTType.SAVE_BLOCK){
|
||||||
this.filter.readFromNBT(compound, "Filter");
|
this.filter.readFromNBT(compound, "Filter");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity(){
|
public void updateEntity(){
|
||||||
|
|
Loading…
Reference in a new issue