add hardcoded id range for molds and shapes for GTCE blocking mode

This commit is contained in:
Salomão
2020-12-07 00:35:18 -03:00
parent ceef176a2a
commit a3e69ce608
@@ -5,34 +5,53 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
public class GTCEItemHandler extends GTCEInventoryAdaptor { public class GTCEItemHandler extends GTCEInventoryAdaptor
{
ArrayList<Integer> GTCElenses = new ArrayList<>(Arrays.asList(15085,15214,15092,15111,15113,15219,15218,15243,15244,15209,15117,15206,15216,15331,15212,15213,15154,15122,15157,15190,15247));
ArrayList<Integer> GTCEmolds = new ArrayList<>(Arrays.asList(32301,32303,32304,32305,32306,32307,32308,32309,32313,32314,32315,32317,32350,32351,32352,32353,32354,32355,32356,32358,32359,32360,32361,32363,32364,32365,32366,32367,32368,32369,32370,32371,32372,32373));
Item smallGearExtruderShape = Item.getByNameOrId("contenttweaker:smallgearextrudershape");
Item creativePortableTankMold = Item.getByNameOrId("contenttweaker:creativeportabletankmold");
final static ItemStack integratedCircuit = new ItemStack((Item.getByNameOrId("gregtech:meta_item_1")), 1, 32766); // Gregtech Community Edition Integrated Circuit
protected final IItemHandler itemHandler; protected final IItemHandler itemHandler;
public GTCEItemHandler(IItemHandler itemHandler)
public GTCEItemHandler( IItemHandler itemHandler )
{ {
this.itemHandler = itemHandler; this.itemHandler = itemHandler;
} }
boolean isBlockableItem(ItemStack stack)
{
if ( stack.getItem() == Item.getByNameOrId("gregtech:meta_item_1") ) {
int metadata = stack.getItemDamage();
if ( metadata == 32766 || GTCElenses.contains(metadata) || GTCEmolds.contains(metadata)) {
return false;
}
}
if ( stack.getItem() == smallGearExtruderShape ) return false;
if ( stack.getItem() == creativePortableTankMold) return false;
return true;
}
@Override @Override
public boolean canRemoveAllExceptCircuits() public boolean canRemoveAllExceptCircuits()
{ {
int slots = this.itemHandler.getSlots(); int slots = this.itemHandler.getSlots();
for( int slot = 0; slot < slots; slot++ ) for ( int slot = 0; slot < slots; slot++ ) {
{ ItemStack is = this.itemHandler.getStackInSlot(slot);
ItemStack is = this.itemHandler.getStackInSlot( slot ); if ( is.isEmpty() || !isBlockableItem(is) ) continue;
if ( is.isEmpty() || is.isItemEqual(integratedCircuit)) continue;
return false; return false;
} }
return true; return true;
} }
@Override @Override
public Iterator<ItemSlot> iterator() { public Iterator<ItemSlot> iterator()
{
return null; return null;
} }
} }