Fudge the new item system stuff

This commit is contained in:
Ellpeck 2016-03-18 15:31:59 +01:00
parent 81130ac0b9
commit 47568e5fbc
5 changed files with 0 additions and 118 deletions

View file

@ -61,7 +61,6 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
@Override @Override
public void onNumberReceived(int text, int textID, EntityPlayer player){ public void onNumberReceived(int text, int textID, EntityPlayer player){
if(text != -1){ if(text != -1){
//TODO Find a better solution for the Math.max and Math.min stuff here (also below in initVars()!)
if(textID == 0){ if(textID == 0){
this.slotToPutStart = this.placeToPut instanceof IInventory ? Math.max(Math.min(text, ((IInventory)this.placeToPut).getSizeInventory()-1), 0) : text; this.slotToPutStart = this.placeToPut instanceof IInventory ? Math.max(Math.min(text, ((IInventory)this.placeToPut).getSizeInventory()-1), 0) : text;
} }
@ -79,68 +78,10 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
this.markDirty(); this.markDirty();
} }
//TODO Fix for new item system
private boolean newPull(){
/*for(EnumFacing facing : EnumFacing.values()){
IItemHandler handler = this.placeToPull.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, facing);
if(handler != null){
for(int i = Math.max(this.lastPullStart, 0); i < Math.min(this.slotToPullEnd, handler.getSlots()); i++){
ItemStack stackInOtherInv = handler.getStackInSlot(i);
if(stackInOtherInv != null){
if(this.slots[0] == null || ItemUtil.areItemsEqual(stackInOtherInv, this.slots[0], false)){
ItemStack pulled = handler.extractItem(i, this.slots[0] == null ? stackInOtherInv.stackSize : Math.min(stackInOtherInv.stackSize, this.slots[0].getMaxStackSize()-this.slots[0].stackSize), false);
if(pulled != null){
ItemStack slotCopy = this.slots[0] == null ? null : this.slots[0].copy();
if(this.slots[0] == null){
this.slots[0] = pulled.copy();
}
else{
this.slots[0].stackSize+=pulled.stackSize;
}
if(!ItemUtil.areStacksEqualAndSameSize(slotCopy, this.slots[0], false)){
return true;
}
}
}
}
}
}
}*/
return false;
}
private boolean newPut(){
/*if(this.slots[0] != null){
for(EnumFacing facing : EnumFacing.values()){
IItemHandler handler = this.placeToPut.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, facing);
if(handler != null){
for(int i = Math.max(this.slotToPutStart, 0); i < Math.min(this.slotToPutEnd, handler.getSlots()); i++){
ItemStack slotCopy = this.slots[0].copy();
ItemStack remaining = handler.insertItem(i, slotCopy, false);
this.slots[0] = remaining == null ? null : remaining.copy();
if(!ItemUtil.areStacksEqualAndSameSize(slotCopy, this.slots[0], false)){
return true;
}
}
}
}
}*/
return false;
}
/** /**
* Pulls Items from the specified Slots on the specified Side * Pulls Items from the specified Slots on the specified Side
*/ */
private void pull(){ private void pull(){
if(this.newPull()){
return;
}
//The Inventory to pull from //The Inventory to pull from
IInventory theInventory = (IInventory)placeToPull; IInventory theInventory = (IInventory)placeToPull;
//Does the Inventory even have Slots!? //Does the Inventory even have Slots!?
@ -240,10 +181,6 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
* (Check pull() for Description, similar to this) * (Check pull() for Description, similar to this)
*/ */
private void put(){ private void put(){
if(this.newPut()){
return;
}
IInventory theInventory = (IInventory)placeToPut; IInventory theInventory = (IInventory)placeToPut;
if(theInventory.getSizeInventory() > 0){ if(theInventory.getSizeInventory() > 0){
int theSlotToPut = this.slotToPutStart; int theSlotToPut = this.slotToPutStart;

View file

@ -20,28 +20,15 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.IChatComponent; import net.minecraft.util.IChatComponent;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.SidedInvWrapper;
import java.util.HashMap;
import java.util.Map;
public abstract class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{ public abstract class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{
public ItemStack slots[]; public ItemStack slots[];
public String name; public String name;
private Map<EnumFacing, IItemHandler> itemHandlers = new HashMap<EnumFacing, IItemHandler>();
public TileEntityInventoryBase(int slots, String name){ public TileEntityInventoryBase(int slots, String name){
this.initializeSlots(slots); this.initializeSlots(slots);
this.name = "container."+ModUtil.MOD_ID_LOWER+"."+name; this.name = "container."+ModUtil.MOD_ID_LOWER+"."+name;
for(EnumFacing facing : EnumFacing.values()){
this.itemHandlers.put(facing, new SidedInvWrapper(this, facing));
}
} }
public void initializeSlots(int itemAmount){ public void initializeSlots(int itemAmount){
@ -107,26 +94,11 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements
} }
} }
@Override
public boolean hasCapability(net.minecraftforge.common.capabilities.Capability<?> capability, net.minecraft.util.EnumFacing facing){
return this.getCapability(capability, facing) != null;
}
@Override @Override
public int getInventoryStackLimit(){ public int getInventoryStackLimit(){
return 64; return 64;
} }
@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing){
if(facing != null && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY){
return (T)this.itemHandlers.get(facing);
}
else{
return super.getCapability(capability, facing);
}
}
@Override @Override
public boolean isUseableByPlayer(EntityPlayer player){ public boolean isUseableByPlayer(EntityPlayer player){
return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64 && !this.isInvalid() && this.worldObj.getTileEntity(this.pos) == this; return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64 && !this.isInvalid() && this.worldObj.getTileEntity(this.pos) == this;

View file

@ -16,9 +16,7 @@ import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
//TODO completely adapt to new item system?
public class TileEntityPhantomItemface extends TileEntityPhantomface{ public class TileEntityPhantomItemface extends TileEntityPhantomface{
public TileEntityPhantomItemface(){ public TileEntityPhantomItemface(){
@ -105,17 +103,6 @@ public class TileEntityPhantomItemface extends TileEntityPhantomface{
return null; return null;
} }
@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing){
if(this.isBoundThingInRange()){
TileEntity tile = worldObj.getTileEntity(this.boundPosition);
if(tile != null){
return tile.getCapability(capability, facing);
}
}
return super.getCapability(capability, facing);
}
@Override @Override
public boolean isItemValidForSlot(int i, ItemStack stack){ public boolean isItemValidForSlot(int i, ItemStack stack){
return this.isBoundThingInRange() && this.getInventory().isItemValidForSlot(i, stack); return this.isBoundThingInRange() && this.getInventory().isItemValidForSlot(i, stack);

View file

@ -23,9 +23,6 @@ import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityDispatcher;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -40,12 +37,8 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
private BlockPos boundPosBefore; private BlockPos boundPosBefore;
private Block boundBlockBefore; private Block boundBlockBefore;
private CapabilityDispatcher capabilities;
public TileEntityPhantomface(String name){ public TileEntityPhantomface(String name){
super(0, name); super(0, name);
this.capabilities = ForgeEventFactory.gatherCapabilities(this);
} }
public static int upgradeRange(int defaultRange, World world, BlockPos pos){ public static int upgradeRange(int defaultRange, World world, BlockPos pos){
@ -118,11 +111,6 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
} }
} }
@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing){
return this.capabilities != null ? this.capabilities.getCapability(capability, facing) : super.getCapability(capability, facing);
}
@Override @Override
public boolean isItemValidForSlot(int slot, ItemStack stack){ public boolean isItemValidForSlot(int slot, ItemStack stack){
return false; return false;

View file

@ -246,8 +246,6 @@ public class WorldUtil{
return blocks; return blocks;
} }
//TODO make this work for the stupid new item system
public static boolean addToInventory(IInventory inventory, ArrayList<ItemStack> stacks, boolean actuallyDo, boolean shouldAlwaysWork){ public static boolean addToInventory(IInventory inventory, ArrayList<ItemStack> stacks, boolean actuallyDo, boolean shouldAlwaysWork){
return addToInventory(inventory, stacks, EnumFacing.UP, actuallyDo, shouldAlwaysWork); return addToInventory(inventory, stacks, EnumFacing.UP, actuallyDo, shouldAlwaysWork);
} }