Java 类net.minecraft.inventory.IInventory 实例源码
项目:CustomWorldGen
文件:LootTable.java
public void fillInventory(IInventory inventory, Random rand, LootContext context)
{
List<ItemStack> list = this.generateLootForPools(rand, context);
List<Integer> list1 = this.getEmptySlotsRandomized(inventory, rand);
this.shuffleItems(list, list1.size(), rand);
for (ItemStack itemstack : list)
{
if (list1.isEmpty())
{
LOGGER.warn("Tried to over-fill a container");
return;
}
if (itemstack == null)
{
inventory.setInventorySlotContents(((Integer)list1.remove(list1.size() - 1)).intValue(), (ItemStack)null);
}
else
{
inventory.setInventorySlotContents(((Integer)list1.remove(list1.size() - 1)).intValue(), itemstack);
}
}
}
项目:rezolve
文件:TileEntityBase.java
@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
if (this.customName != null) {
compound.setString("CustomName", this.getCustomName());
}
if (this instanceof IInventory) {
RezolveNBT.writeInventory(compound, (IInventory)this);
}
if (this.storedEnergy >= 0)
compound.setInteger("RF", this.storedEnergy);
return super.writeToNBT(compound);
}
项目:BaseClient
文件:TileEntityHopper.java
/**
* Pulls from the specified slot in the inventory and places in any available slot in the hopper. Returns true if
* the entire stack was moved
*/
private static boolean pullItemFromSlot(IHopper hopper, IInventory inventoryIn, int index, EnumFacing direction)
{
ItemStack itemstack = inventoryIn.getStackInSlot(index);
if (itemstack != null && canExtractItemFromSlot(inventoryIn, itemstack, index, direction))
{
ItemStack itemstack1 = itemstack.copy();
ItemStack itemstack2 = putStackInInventoryAllSlots(hopper, inventoryIn.decrStackSize(index, 1), (EnumFacing)null);
if (itemstack2 == null || itemstack2.stackSize == 0)
{
inventoryIn.markDirty();
return true;
}
inventoryIn.setInventorySlotContents(index, itemstack1);
}
return false;
}
项目:Backmemed
文件:BlockRailDetector.java
public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
{
if (((Boolean)blockState.getValue(POWERED)).booleanValue())
{
List<EntityMinecartCommandBlock> list = this.<EntityMinecartCommandBlock>findMinecarts(worldIn, pos, EntityMinecartCommandBlock.class, new Predicate[0]);
if (!list.isEmpty())
{
return ((EntityMinecartCommandBlock)list.get(0)).getCommandBlockLogic().getSuccessCount();
}
List<EntityMinecart> list1 = this.<EntityMinecart>findMinecarts(worldIn, pos, EntityMinecart.class, new Predicate[] {EntitySelectors.HAS_INVENTORY});
if (!list1.isEmpty())
{
return Container.calcRedstoneFromInventory((IInventory)list1.get(0));
}
}
return 0;
}
项目:ToolBelt
文件:BeltFinder.java
@Nullable
public BeltGetter findStack(EntityPlayer player)
{
IInventory playerInv = player.inventory;
for (int i = 0; i < playerInv.getSizeInventory(); i++)
{
ItemStack inSlot = playerInv.getStackInSlot(i);
if (inSlot.getCount() > 0)
{
if (inSlot.getItem() instanceof ItemToolBelt)
{
return new InventoryBeltGetter(player, i);
}
}
}
return null;
}
项目:ToolBelt
文件:ContainerBelt.java
private void bindPlayerInventory(IInventory playerInventory, int blockedSlot)
{
for (int l = 0; l < 3; ++l)
{
for (int j1 = 0; j1 < 9; ++j1)
{
int index = j1 + l * 9 + 9;
this.addSlotToContainer(
blockedSlot == index
? new SlotLocked(playerInventory, index, 8 + j1 * 18, l * 18 + 51)
: new Slot(playerInventory, index, 8 + j1 * 18, l * 18 + 51)
);
}
}
for (int i1 = 0; i1 < 9; ++i1)
{
this.addSlotToContainer(
blockedSlot == i1
? new SlotLocked(playerInventory, i1, 8 + i1 * 18, 109)
: new Slot(playerInventory, i1, 8 + i1 * 18, 109)
);
}
}
项目:Technical
文件:TileEntityGrabber.java
protected int getSlotToPushTo(IInventory inventory) {
int slot = 0;
for(; slot < inventory.getSizeInventory(); ++slot) {
if(debug) {
FMLLog.log(Level.INFO, "E " + (inventory.getStackInSlot(slot) != null));
if(inventory.getStackInSlot(slot) != null) {
FMLLog.log(Level.INFO, "E " + slot + " " + inventory.getStackInSlot(slot).toString());
FMLLog.log(Level.INFO, "E-true " + (inventory.getStackInSlot(slot) == null));
FMLLog.log(Level.INFO, "E-true " + (inventory.getStackInSlot(slot).getItem() == blockItemStack.getItem()));
FMLLog.log(Level.INFO, "E-true " + (inventory.getStackInSlot(slot).getItemDamage() == blockItemStack.getItemDamage()));
FMLLog.log(Level.INFO, "E-true " + inventory.getStackInSlot(slot).stackSize + " < " + inventory.getStackInSlot(slot).getItem().getItemStackLimit(inventory.getStackInSlot(slot)));
}
}
if(inventory.getStackInSlot(slot) == null || inventory.getStackInSlot(slot).getItem() == blockItemStack.getItem() && inventory.getStackInSlot(slot).getItemDamage() == blockItemStack.getItemDamage()
&& inventory.getStackInSlot(slot).stackSize < inventory.getStackInSlot(slot).getItem().getItemStackLimit(inventory.getStackInSlot(slot)))
break;
}
if(slot > inventory.getSizeInventory() - 1)
slot = inventory.getSizeInventory() - 1;
if(debug)
FMLLog.log(Level.INFO, "E" + slot);
return slot;
}
项目:Thermionics
文件:ContainerMotor.java
public ContainerMotor(IInventory player, IInventory container, TileEntity te) {
super(player, container);
this.setTitleColor(0xFFFFFFFF);
this.setColor(0xCC707070);
WGridPanel panel = new WGridPanel();
super.setRootPanel(panel);
if (Thermionics.isAprilFools()) {
panel.add(new WPlasma(), 0, 0, 9, 4);
}
panel.add(new WPBar(container, 3, 2, 4), 1, 1);
panel.add(new WBar(
new ResourceLocation("thermionics","textures/gui/progress.heat.bg.png"),
new ResourceLocation("thermionics","textures/gui/progress.heat.bar.png"),
container, 0, 1, WBar.Direction.RIGHT
), 1, 2, 7, 1);
panel.add(this.createPlayerInventoryPanel(), 0, 4);
}
项目:BaseClient
文件:TileEntityHopper.java
/**
* Pulls from the specified slot in the inventory and places in any available slot in the hopper. Returns true if
* the entire stack was moved
*/
private static boolean pullItemFromSlot(IHopper hopper, IInventory inventoryIn, int index, EnumFacing direction)
{
ItemStack itemstack = inventoryIn.getStackInSlot(index);
if (itemstack != null && canExtractItemFromSlot(inventoryIn, itemstack, index, direction))
{
ItemStack itemstack1 = itemstack.copy();
ItemStack itemstack2 = putStackInInventoryAllSlots(hopper, inventoryIn.decrStackSize(index, 1), (EnumFacing)null);
if (itemstack2 == null || itemstack2.stackSize == 0)
{
inventoryIn.markDirty();
return true;
}
inventoryIn.setInventorySlotContents(index, itemstack1);
}
return false;
}
项目:Technical
文件:TileEntityGrabber.java
protected boolean pushItemIInventory(IInventory inventory, int slot) {
if(inventory.getStackInSlot(slot) == null) {
if(debug)
FMLLog.log(Level.INFO, "F");
inventory.setInventorySlotContents(slot, blockItemStack.copy());
blockItemStack = null;
markDirty = true;
} else if(inventory.getStackInSlot(slot).getItem() == blockItemStack.getItem() && inventory.getStackInSlot(slot).stackSize < inventory.getInventoryStackLimit() && inventory.getStackInSlot(slot).stackSize < inventory.getStackInSlot(slot).getMaxStackSize()) {
if(debug)
FMLLog.log(Level.INFO, "G");
blockItemStack.stackSize = blockItemStack.stackSize + inventory.getStackInSlot(slot).stackSize;
inventory.setInventorySlotContents(slot, blockItemStack.copy());
blockItemStack = null;
markDirty = true;
} else {
if(debug)
FMLLog.log(Level.INFO, "Ga");
}
return markDirty;
}
项目:StructPro
文件:Tiles.java
/**
* Load inventory data from NBT tag
* @param inventory Target inventory
* @param tag tag to load
* @param seed Loading seed
*/
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
if (tag == null || !Configurator.NATIVE_LOOT) {
return;
}
Random random = new Random(seed);
NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
NBTTagCompound stackTag = items.getCompoundTagAt(i);
String itemName = stackTag.getString("id").replaceAll(".*:", "");
itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
byte count = items.getCompoundTagAt(i).getByte("Count");
int damage = items.getCompoundTagAt(i).getShort("Damage");
int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
}
}
}
项目:bit-client
文件:ModuleChestStealer.java
private int getItemRandom(GuiChest chest) {
try {
if (Wrapper.player_inventory() == null) return -1;
List<Integer> items = new ArrayList<>();
for (int i = 0; i < ((IInventory) ReflectionUtil.getFieldValue("field_147015_w", chest)).func_70302_i_(); i++) {
ItemStack stack = ((IInventory) ReflectionUtil.getFieldValue("field_147015_w", chest)).func_70301_a(i);
if (stack != null && ((itemFilter.getValue() && !ItemUtil.isUseless(stack, itemFilterMode.getCurrent())) || !itemFilter.getValue()))
items.add(i);
}
if (items.isEmpty()) return -1;
Collections.shuffle(items);
return items.get(0);
} catch (Exception e) {
return -1;
}
}
项目:DecompiledMinecraft
文件:EntityPlayerMP.java
public void displayVillagerTradeGui(IMerchant villager)
{
this.getNextWindowId();
this.openContainer = new ContainerMerchant(this.inventory, villager, this.worldObj);
this.openContainer.windowId = this.currentWindowId;
this.openContainer.onCraftGuiOpened(this);
IInventory iinventory = ((ContainerMerchant)this.openContainer).getMerchantInventory();
IChatComponent ichatcomponent = villager.getDisplayName();
this.playerNetServerHandler.sendPacket(new S2DPacketOpenWindow(this.currentWindowId, "minecraft:villager", ichatcomponent, iinventory.getSizeInventory()));
MerchantRecipeList merchantrecipelist = villager.getRecipes(this);
if (merchantrecipelist != null)
{
PacketBuffer packetbuffer = new PacketBuffer(Unpooled.buffer());
packetbuffer.writeInt(this.currentWindowId);
merchantrecipelist.writeToBuf(packetbuffer);
this.playerNetServerHandler.sendPacket(new S3FPacketCustomPayload("MC|TrList", packetbuffer));
}
}
项目:StructPro
文件:Tiles.java
/**
* Load inventory data from NBT tag
* @param inventory Target inventory
* @param tag tag to load
* @param seed Loading seed
*/
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
if (tag == null || !Configurator.NATIVE_LOOT) {
return;
}
Random random = new Random(seed);
NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
NBTTagCompound stackTag = items.getCompoundTagAt(i);
String itemName = stackTag.getString("id").replaceAll(".*:", "");
itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
byte count = items.getCompoundTagAt(i).getByte("Count");
int damage = items.getCompoundTagAt(i).getShort("Damage");
int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
}
}
}
项目:Loot-Slash-Conquer
文件:CustomLootTable.java
@Override
public void fillInventory(IInventory inventory, Random rand, LootContext context)
{
TileEntityChest chest = (TileEntityChest) inventory;
CustomLootContext.Builder context$builder = new CustomLootContext.Builder((WorldServer) chest.getWorld());
context$builder.withChestPos(chest.getPos());
CustomLootContext customContext = context$builder.build();
List<ItemStack> list = this.generateLootForPools(rand, customContext);
List<Integer> list1 = this.getEmptySlotsRandomized(inventory, rand);
this.shuffleItems(list, list1.size(), rand);
for (ItemStack itemstack : list)
{
if (list1.isEmpty())
{
LootSlashConquer.LOGGER.warn("Tried to over-fill a container");
return;
}
if (itemstack.isEmpty())
{
inventory.setInventorySlotContents(((Integer)list1.remove(list1.size() - 1)).intValue(), ItemStack.EMPTY);
}
else
{
inventory.setInventorySlotContents(((Integer)list1.remove(list1.size() - 1)).intValue(), itemstack);
}
}
}
项目:BetterBeginningsReborn
文件:ContainerSimpleWorkbench.java
/**
* Callback for when the crafting matrix is changed.
*/
@Override
public void onCraftMatrixChanged(IInventory inventory)
{
craftResult.setInventorySlotContents(0,
CraftingManager.findMatchingRecipe(craftMatrix, worldObj).getCraftingResult(craftMatrix));
}
项目:Technical
文件:TileEntityGrabberFiltering.java
protected boolean pushItemIInventory(IInventory inventory, int slot) {
if(blockItemStack.stackSize > 1) {
ItemStack oldStack = blockItemStack.copy();
ItemStack newStack = blockItemStack.splitStack(1);
if(inventory.getStackInSlot(slot) == null) {
if(debug)
FMLLog.log(Level.INFO, "fF");
inventory.setInventorySlotContents(slot, newStack.copy());
newStack = null;
markDirty = true;
} else if(inventory.getStackInSlot(slot).getItem() == newStack.getItem() && inventory.getStackInSlot(slot).stackSize < inventory.getInventoryStackLimit() && inventory.getStackInSlot(slot).stackSize < inventory.getStackInSlot(slot).getMaxStackSize()) {
if(debug)
FMLLog.log(Level.INFO, "fG");
newStack.stackSize += inventory.getStackInSlot(slot).stackSize;
inventory.setInventorySlotContents(slot, newStack.copy());
newStack = null;
markDirty = true;
} else {
if(debug)
FMLLog.log(Level.INFO, "fGa");
}
if(newStack == null || newStack.stackSize == 0) {
if(debug)
FMLLog.log(Level.INFO, "fDa");
markDirty = true;
} else {
blockItemStack = oldStack;
}
}
return markDirty;
}
项目:BaseClient
文件:TileEntityHopper.java
/**
* Returns false if the specified IInventory contains any items
*/
private static boolean isInventoryEmpty(IInventory inventoryIn, EnumFacing side)
{
if (inventoryIn instanceof ISidedInventory)
{
ISidedInventory isidedinventory = (ISidedInventory)inventoryIn;
int[] aint = isidedinventory.getSlotsForFace(side);
for (int i = 0; i < aint.length; ++i)
{
if (isidedinventory.getStackInSlot(aint[i]) != null)
{
return false;
}
}
}
else
{
int j = inventoryIn.getSizeInventory();
for (int k = 0; k < j; ++k)
{
if (inventoryIn.getStackInSlot(k) != null)
{
return false;
}
}
}
return true;
}
项目:rezolve
文件:TileBlockBase.java
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
// Drop any items we have if necessary
TileEntity te = world.getTileEntity(pos);
if (te != null && te instanceof IInventory) {
InventoryHelper.dropInventoryItems(world, pos, (IInventory)te);
}
super.breakBlock(world, pos, state);
world.removeTileEntity(pos);
}
项目:BaseClient
文件:GuiBeacon.java
public GuiBeacon(InventoryPlayer playerInventory, IInventory tileBeaconIn)
{
super(new ContainerBeacon(playerInventory, tileBeaconIn));
this.tileBeacon = tileBeaconIn;
this.xSize = 230;
this.ySize = 219;
}
项目:rezolve
文件:RezolveNBT.java
public static void readInventory(NBTTagCompound nbt, IInventory inventory) {
if (nbt == null)
return;
if (!nbt.hasKey("Items"))
return;
NBTTagList list = nbt.getTagList("Items", 10);
for (int i = 0; i < list.tagCount(); ++i) {
NBTTagCompound stackTag = list.getCompoundTagAt(i);
int slot = stackTag.getByte("Slot") & 255;
inventory.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag));
}
}
项目:Mods
文件:ContainerRecover.java
public ContainerRecover(IInventory playerInventory, ItemStackHandler dispenserInventoryIn)
{
this.lostItemsHandler = dispenserInventoryIn;
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 9; ++j)
{
this.addSlotToContainer(new SlotItemHandler(dispenserInventoryIn, j + i * 9, 8 + j * 18, 18 + i * 18){
public boolean isItemValid(@Nullable ItemStack stack)
{
return false;
}
});
}
}
for (int k = 0; k < 3; ++k)
{
for (int i1 = 0; i1 < 9; ++i1)
{
this.addSlotToContainer(new Slot(playerInventory, i1 + k * 9 + 27, 8 + i1 * 18, 85 + k * 18));
}
}
for (int l = 0; l < 9; ++l)
{
this.addSlotToContainer(new Slot(playerInventory, l, 8 + l * 18, 143));
}
}
项目:EndermanEvolution
文件:EntityFrienderman.java
public int testInventoryInsertion(IInventory inventory, ItemStack item) {
if (item.isEmpty() || item.getCount() == 0) {
return 0;
}
if (inventory == null) {
return 0;
}
int slotCount = inventory.getSizeInventory();
int itemSizeCounter = item.getCount();
for (int i = 0; i < slotCount && itemSizeCounter > 0; i++) {
if (!inventory.isItemValidForSlot(i, item)) {
continue;
}
ItemStack inventorySlot = inventory.getStackInSlot(i);
if (inventorySlot.isEmpty()) {
itemSizeCounter -= Math.min(Math.min(itemSizeCounter, inventory.getInventoryStackLimit()), item.getMaxStackSize());
}
else if (areMergeCandidates(item, inventorySlot)) {
int space = inventorySlot.getMaxStackSize() - inventorySlot.getCount();
itemSizeCounter -= Math.min(itemSizeCounter, space);
}
}
if (itemSizeCounter != item.getCount()) {
itemSizeCounter = Math.max(itemSizeCounter, 0);
return item.getCount() - itemSizeCounter;
}
return 0;
}
项目:UniversalRemote
文件:EntityPlayerMPProxy.java
@Override
public void displayGUIChest(IInventory chestInventory) {
if (m_realPlayer == null) {
super.displayGUIChest(chestInventory);
} else {
syncToRealPlayer();
m_realPlayer.displayGUIChest(chestInventory);
syncPublicFieldsFromReal();
}
}
项目:BetterBeginningsReborn
文件:SlotAdvancedCrafting.java
public SlotAdvancedCrafting(EntityPlayer player, ContainerDoubleWorkbench container_, InventoryCrafting matrix,
IInventory resultInv, IInventory addedMats, int id, int x, int y)
{
super(resultInv, id, x, y);
container = container_;
thePlayer = player;
craftMatrix = matrix;
additionalMaterials = addedMats;
}
项目:Minecoprocessors
文件:GuiMinecoprocessor.java
public GuiMinecoprocessor(IInventory playerInv, TileEntityMinecoprocessor te) {
super(new ContainerMinecoprocessor(playerInv, te));
this.playerInventory = playerInv;
this.minecoprocessor = te;
INSTANCE = this;
Minecoprocessors.NETWORK.sendToServer(new MessageEnableGuiUpdates(minecoprocessor.getPos(), true));
}
项目:BaseClient
文件:TileEntityHopper.java
/**
* Returns false if the inventory has any room to place items in
*/
private boolean isInventoryFull(IInventory inventoryIn, EnumFacing side)
{
if (inventoryIn instanceof ISidedInventory)
{
ISidedInventory isidedinventory = (ISidedInventory)inventoryIn;
int[] aint = isidedinventory.getSlotsForFace(side);
for (int k = 0; k < aint.length; ++k)
{
ItemStack itemstack1 = isidedinventory.getStackInSlot(aint[k]);
if (itemstack1 == null || itemstack1.stackSize != itemstack1.getMaxStackSize())
{
return false;
}
}
}
else
{
int i = inventoryIn.getSizeInventory();
for (int j = 0; j < i; ++j)
{
ItemStack itemstack = inventoryIn.getStackInSlot(j);
if (itemstack == null || itemstack.stackSize != itemstack.getMaxStackSize())
{
return false;
}
}
}
return true;
}
项目:Defier
文件:CompressorContainer.java
public CompressorContainer(IInventory playerInventory, CompressorTileEntity te) {
this.te = te;
IItemHandler itemHandler = this.te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
addSlotToContainer(new SlotItemHandler(itemHandler, 0, 80, 34));
addPlayerSlots(playerInventory);
}
项目:DecompiledMinecraft
文件:TileEntityHopper.java
/**
* Attempts to place the passed stack in the inventory, using as many slots as required. Returns leftover items
*/
public static ItemStack putStackInInventoryAllSlots(IInventory inventoryIn, ItemStack stack, EnumFacing side)
{
if (inventoryIn instanceof ISidedInventory && side != null)
{
ISidedInventory isidedinventory = (ISidedInventory)inventoryIn;
int[] aint = isidedinventory.getSlotsForFace(side);
for (int k = 0; k < aint.length && stack != null && stack.stackSize > 0; ++k)
{
stack = insertStack(inventoryIn, stack, aint[k], side);
}
}
else
{
int i = inventoryIn.getSizeInventory();
for (int j = 0; j < i && stack != null && stack.stackSize > 0; ++j)
{
stack = insertStack(inventoryIn, stack, j, side);
}
}
if (stack != null && stack.stackSize == 0)
{
stack = null;
}
return stack;
}
项目:CustomWorldGen
文件:NetHandlerPlayClient.java
/**
* Displays a GUI by ID. In order starting from id 0: Chest, Workbench, Furnace, Dispenser, Enchanting table,
* Brewing stand, Villager merchant, Beacon, Anvil, Hopper, Dropper, Horse
*/
public void handleOpenWindow(SPacketOpenWindow packetIn)
{
PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController);
EntityPlayerSP entityplayersp = this.gameController.thePlayer;
if ("minecraft:container".equals(packetIn.getGuiId()))
{
entityplayersp.displayGUIChest(new InventoryBasic(packetIn.getWindowTitle(), packetIn.getSlotCount()));
entityplayersp.openContainer.windowId = packetIn.getWindowId();
}
else if ("minecraft:villager".equals(packetIn.getGuiId()))
{
entityplayersp.displayVillagerTradeGui(new NpcMerchant(entityplayersp, packetIn.getWindowTitle()));
entityplayersp.openContainer.windowId = packetIn.getWindowId();
}
else if ("EntityHorse".equals(packetIn.getGuiId()))
{
Entity entity = this.clientWorldController.getEntityByID(packetIn.getEntityId());
if (entity instanceof EntityHorse)
{
entityplayersp.openGuiHorseInventory((EntityHorse)entity, new AnimalChest(packetIn.getWindowTitle(), packetIn.getSlotCount()));
entityplayersp.openContainer.windowId = packetIn.getWindowId();
}
}
else if (!packetIn.hasSlots())
{
entityplayersp.displayGui(new LocalBlockIntercommunication(packetIn.getGuiId(), packetIn.getWindowTitle()));
entityplayersp.openContainer.windowId = packetIn.getWindowId();
}
else
{
IInventory iinventory = new ContainerLocalMenu(packetIn.getGuiId(), packetIn.getWindowTitle(), packetIn.getSlotCount());
entityplayersp.displayGUIChest(iinventory);
entityplayersp.openContainer.windowId = packetIn.getWindowId();
}
}
项目:VillagerInventory
文件:ContainerVillagerInventory.java
public ContainerVillagerInventory(IInventory playerInventory, final InventoryBasic villagerInventoryIn, final EntityVillager villager, EntityPlayer player)
{
this.villagerInventory = villagerInventoryIn;
this.villager = villager;
this.villagerInventory.setCustomName(this.villager.getDisplayName().getUnformattedText());
villagerInventoryIn.openInventory(player);
// villager inventory slots
int offsetX = 17;
int offsetY = 20;
for (int col = 0; col < 8; col++)
{
this.addSlotToContainer(new Slot(villagerInventoryIn, col, offsetX + col * 18, offsetY));
}
// player inventory
offsetX = 8;
offsetY = 51;
for (int row = 0; row < 3; row++)
{
for (int col = 0; col < 9; col++)
{
this.addSlotToContainer(new Slot(playerInventory, col + row * 9 + 9, offsetX + col * 18, offsetY + row * 18));
}
}
// player hotbar inventory
offsetY = 109;
for (int col = 0; col < 9; col++)
{
this.addSlotToContainer(new Slot(playerInventory, col, offsetX + col * 18, offsetY));
}
}
项目:BaseClient
文件:TileEntityHopper.java
private boolean transferItemsOut()
{
IInventory iinventory = this.getInventoryForHopperTransfer();
if (iinventory == null)
{
return false;
}
else
{
EnumFacing enumfacing = BlockHopper.getFacing(this.getBlockMetadata()).getOpposite();
if (this.isInventoryFull(iinventory, enumfacing))
{
return false;
}
else
{
for (int i = 0; i < this.getSizeInventory(); ++i)
{
if (this.getStackInSlot(i) != null)
{
ItemStack itemstack = this.getStackInSlot(i).copy();
ItemStack itemstack1 = putStackInInventoryAllSlots(iinventory, this.decrStackSize(i, 1), enumfacing);
if (itemstack1 == null || itemstack1.stackSize == 0)
{
iinventory.markDirty();
return true;
}
this.setInventorySlotContents(i, itemstack);
}
}
return false;
}
}
}
项目:EndermanEvolution
文件:FriendermanUtils.java
public static boolean canInsertStack(IInventory inventory, ItemStack stack) {
for (int i = 0; i < inventory.getSizeInventory(); i++) {
if (canInsertStack(inventory, stack, i, null)) {
return true;
}
}
return false;
}
项目:Randores2
文件:CraftiniumTableContainer.java
@Override
public void onCraftMatrixChanged(IInventory in) {
CraftiniumRecipe matching = CraftiniumRecipeRegistry.findMatching(this.matrix, this.world, this.table, this.player);
if (matching != null) {
this.craftResult.setInventorySlotContents(0, matching.result(this.matrix, this.world, this.table, this.player));
} else {
this.craftResult.setInventorySlotContents(0, ItemStack.EMPTY);
}
}
项目:DecompiledMinecraft
文件:EntityPlayerMP.java
/**
* Displays the GUI for interacting with a chest inventory. Args: chestInventory
*/
public void displayGUIChest(IInventory chestInventory)
{
if (this.openContainer != this.inventoryContainer)
{
this.closeScreen();
}
if (chestInventory instanceof ILockableContainer)
{
ILockableContainer ilockablecontainer = (ILockableContainer)chestInventory;
if (ilockablecontainer.isLocked() && !this.canOpen(ilockablecontainer.getLockCode()) && !this.isSpectator())
{
this.playerNetServerHandler.sendPacket(new S02PacketChat(new ChatComponentTranslation("container.isLocked", new Object[] {chestInventory.getDisplayName()}), (byte)2));
this.playerNetServerHandler.sendPacket(new S29PacketSoundEffect("random.door_close", this.posX, this.posY, this.posZ, 1.0F, 1.0F));
return;
}
}
this.getNextWindowId();
if (chestInventory instanceof IInteractionObject)
{
this.playerNetServerHandler.sendPacket(new S2DPacketOpenWindow(this.currentWindowId, ((IInteractionObject)chestInventory).getGuiID(), chestInventory.getDisplayName(), chestInventory.getSizeInventory()));
this.openContainer = ((IInteractionObject)chestInventory).createContainer(this.inventory, this);
}
else
{
this.playerNetServerHandler.sendPacket(new S2DPacketOpenWindow(this.currentWindowId, "minecraft:container", chestInventory.getDisplayName(), chestInventory.getSizeInventory()));
this.openContainer = new ContainerChest(this.inventory, chestInventory, this);
}
this.openContainer.windowId = this.currentWindowId;
this.openContainer.onCraftGuiOpened(this);
}
项目:Simple-Chunks
文件:ContainerChunkLoader.java
public ContainerChunkLoader(IInventory playerInventory, TileEntityChunkLoader te)
{
this.te = te;
addTileEntitySlots();
addPlayerSlots(playerInventory);
}
项目:interactionwheel
文件:DumpSimilarInventoryAction.java
private boolean isSimilar(IInventory handler, ItemStack stack) {
Set<Integer> ores = getOres(stack);
for (int i = 0 ; i < handler.getSizeInventory() ; i++) {
ItemStack s = handler.getStackInSlot(i);
if (matchStack(stack, ores, s)) {
return true;
}
}
return false;
}
项目:interactionwheel
文件:DefaultWheelActionProvider.java
@Override
public void updateWheelActions(@Nonnull Set<String> actions, @Nonnull EntityPlayer player, World world, @Nullable BlockPos pos) {
ItemStack heldItem = player.getHeldItem(EnumHand.MAIN_HAND);
if (ItemStackTools.isValid(heldItem)) {
actions.add(StandardWheelActions.ID_SEARCH);
}
if (pos != null) {
actions.add(StandardWheelActions.ID_ROTATE);
Block block = world.getBlockState(pos).getBlock();
TileEntity te = world.getTileEntity(pos);
if (te instanceof IInventory || (te != null && te.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null))) {
actions.add(StandardWheelActions.ID_DUMP);
actions.add(StandardWheelActions.ID_EXTRACT);
actions.add(StandardWheelActions.ID_DUMPORES);
actions.add(StandardWheelActions.ID_DUMPBLOCKS);
actions.add(StandardWheelActions.ID_DUMPSIMILARINV);
if (ItemStackTools.isValid(heldItem)) {
actions.add(StandardWheelActions.ID_DUMP1);
actions.add(StandardWheelActions.ID_DUMPSIMILAR);
}
}
actions.add(StandardWheelActions.ID_PICKTOOL);
if (block instanceof IWheelBlockSupport) {
((IWheelBlockSupport) block).updateWheelActions(actions);
}
}
// actions.add("std.dummy0");
// actions.add("std.dummy1");
// actions.add("std.dummy2");
// actions.add("std.dummy3");
// actions.add("std.dummy4");
// actions.add("std.dummy5");
// actions.add("std.dummy7");
// actions.add("std.dummy8");
// actions.add("std.dummy9");
// actions.add("std.dummy10");
}
项目:Thermionics
文件:TileEntityMashTun.java
@Override
public IInventory getContainerInventory() {
ValidatedInventoryView result = new ValidatedInventoryView(items);
if (world.isRemote) {
return result;
} else {
return result
.withField(0, heat::getHeatStored)
.withField(1, heat::getMaxHeatStored);
}
}
项目:StructPro
文件:Tiles.java
/**
* Load tile entity data from NBT tag
* @param tile Target tile
* @param tag Tag to load
* @param seed Loading seed
*/
public static void load(TileEntity tile, NBTTagCompound tag, long seed) {
if (tile == null) {
return;
}
if (tile instanceof TileEntityChest) {
load((TileEntityChest)tile, tag, seed);
return;
}
if (tile instanceof TileEntityMobSpawner) {
load((TileEntityMobSpawner)tile, tag, seed);
}
if (tile instanceof TileEntitySign) {
load((TileEntitySign)tile, tag, seed);
return;
}
if (tile instanceof TileEntityCommandBlock) {
load((TileEntityCommandBlock)tile, tag, seed);
return;
}
if (tile instanceof IInventory) {
load((IInventory)tile, tag, seed);
return;
}
if (tile instanceof TileEntityComparator) {
load((TileEntityComparator)tile, tag, seed);
return;
}
if (tile instanceof TileEntityFlowerPot) {
load((TileEntityFlowerPot)tile, tag, seed);
return;
}
if (tile instanceof TileEntityNote) {
load((TileEntityNote)tile, tag, seed);
}
}