/// <summary> /// Updates the gui slots ItemStack's based on scroll position. /// </summary> public virtual void ScrollTo(float par1) { int i = (ItemList.Count / 8 - 8) + 1; int j = (int)((double)(par1 * (float)i) + 0.5D); if (j < 0) { j = 0; } for (int k = 0; k < 9; k++) { for (int l = 0; l < 8; l++) { int i1 = l + (k + j) * 8; if (i1 >= 0 && i1 < ItemList.Count) { GuiContainerCreative.GetInventory().SetInventorySlotContents(l + k * 8, (ItemStack)ItemList[i1]); } else { GuiContainerCreative.GetInventory().SetInventorySlotContents(l + k * 8, null); } } } }
public ContainerCreative(EntityPlayer par1EntityPlayer) { ItemList = new List <ItemStack>(); Block[] ablock = { Block.Cobblestone, Block.Stone, Block.OreDiamond, Block.OreGold, Block.OreIron, Block.OreCoal, Block.OreLapis, Block.OreRedstone, Block.StoneBrick, Block.StoneBrick, Block.StoneBrick, Block.StoneBrick, Block.BlockClay, Block.BlockDiamond, Block.BlockGold, Block.BlockSteel, Block.Bedrock, Block.BlockLapis, Block.Brick, Block.CobblestoneMossy, Block.StairSingle, Block.StairSingle, Block.StairSingle, Block.StairSingle, Block.StairSingle, Block.StairSingle, Block.Obsidian, Block.Netherrack, Block.SlowSand, Block.GlowStone, Block.Wood, Block.Wood, Block.Wood, Block.Wood, Block.Leaves, Block.Leaves, Block.Leaves, Block.Leaves, Block.Dirt, Block.Grass, Block.Sand, Block.SandStone, Block.SandStone, Block.SandStone, Block.Gravel, Block.Web, Block.Planks, Block.Planks, Block.Planks, Block.Planks, Block.Sapling, Block.Sapling, Block.Sapling, Block.Sapling, Block.DeadBush, Block.Sponge, Block.Ice, Block.BlockSnow, Block.PlantYellow, Block.PlantRed, Block.MushroomBrown, Block.MushroomRed, Block.Cactus, Block.Melon, Block.Pumpkin, Block.PumpkinLantern, Block.Vine, Block.FenceIron, Block.ThinGlass, Block.NetherBrick, Block.NetherFence, Block.StairsNetherBrick, Block.WhiteStone, Block.Mycelium, Block.Waterlily, Block.TallGrass, Block.TallGrass, Block.Chest, Block.Workbench, Block.Glass, Block.Tnt, Block.BookShelf, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Cloth, Block.Dispenser, Block.StoneOvenIdle, Block.Music, Block.Jukebox, Block.PistonStickyBase, Block.PistonBase, Block.Fence, Block.FenceGate, Block.Ladder, Block.Rail, Block.RailPowered, Block.RailDetector, Block.TorchWood, Block.StairCompactPlanks, Block.StairCompactCobblestone, Block.StairsBrick, Block.StairsStoneBrickSmooth, Block.Lever, Block.PressurePlateStone, Block.PressurePlatePlanks, Block.TorchRedstoneActive, Block.Button, Block.Trapdoor, Block.EnchantmentTable, Block.RedstoneLampIdle }; int i = 0; int j = 0; int k = 0; int l = 0; int i1 = 0; int j1 = 0; int k1 = 0; int l1 = 0; int i2 = 1; for (int j2 = 0; j2 < ablock.Length; j2++) { int i3 = 0; if (ablock[j2] == Block.Cloth) { i3 = i++; } else if (ablock[j2] == Block.StairSingle) { i3 = j++; } else if (ablock[j2] == Block.Wood) { i3 = k++; } else if (ablock[j2] == Block.Planks) { i3 = l++; } else if (ablock[j2] == Block.Sapling) { i3 = i1++; } else if (ablock[j2] == Block.StoneBrick) { i3 = j1++; } else if (ablock[j2] == Block.SandStone) { i3 = k1++; } else if (ablock[j2] == Block.TallGrass) { i3 = i2++; } else if (ablock[j2] == Block.Leaves) { i3 = l1++; } ItemList.Add(new ItemStack(ablock[j2], 1, i3)); } for (int k2 = 256; k2 < Item.ItemsList.Length; k2++) { if (Item.ItemsList[k2] != null && Item.ItemsList[k2].ShiftedIndex != Item.Potion.ShiftedIndex && Item.ItemsList[k2].ShiftedIndex != Item.MonsterPlacer.ShiftedIndex) { ItemList.Add(new ItemStack(Item.ItemsList[k2])); } } for (int l2 = 1; l2 < 16; l2++) { ItemList.Add(new ItemStack(Item.DyePowder.ShiftedIndex, 1, l2)); } int integer; for (IEnumerator <int> iterator = EntityList.EntityEggs.Keys.GetEnumerator(); iterator.MoveNext(); ItemList.Add(new ItemStack(Item.MonsterPlacer.ShiftedIndex, 1, integer))) { integer = iterator.Current; } InventoryPlayer inventoryplayer = par1EntityPlayer.Inventory; for (int j3 = 0; j3 < 9; j3++) { for (int l3 = 0; l3 < 8; l3++) { AddSlot(new Slot(GuiContainerCreative.GetInventory(), l3 + j3 * 8, 8 + l3 * 18, 18 + j3 * 18)); } } for (int k3 = 0; k3 < 9; k3++) { AddSlot(new Slot(inventoryplayer, k3, 8 + k3 * 18, 184)); } ScrollTo(0.0F); }