示例#1
0
        public void SetTileEntity(int x, int y, int z, TileEntity te)
        {
            BlockInfoEx info = BlockInfo.BlockTable[_blocks[x, y, z]] as BlockInfoEx;

            if (info == null)
            {
                throw new InvalidOperationException("The given block is of a type that does not support TileEntities.");
            }

            if (te.GetType() != TileEntityFactory.Lookup(info.TileEntityName))
            {
                throw new ArgumentException("The TileEntity type is not valid for this block.", "te");
            }

            BlockKey key = (TranslateCoordinates != null)
                ? TranslateCoordinates(x, y, z)
                : new BlockKey(x, y, z);

            TagNodeCompound oldte;

            if (_tileEntityTable.TryGetValue(key, out oldte))
            {
                _tileEntities.Remove(oldte);
            }

            te.X = key.x;
            te.Y = key.y;
            te.Z = key.z;

            TagNodeCompound tree = te.BuildTree() as TagNodeCompound;

            _tileEntities.Add(tree);
            _tileEntityTable[key] = tree;
        }
示例#2
0
        public void CreateTileEntity(int x, int y, int z)
        {
            BlockInfoEx info = BlockInfo.BlockTable[_blocks[x, y, z]] as BlockInfoEx;

            if (info == null)
            {
                throw new InvalidOperationException("The given block is of a type that does not support TileEntities.");
            }

            TileEntity te = TileEntityFactory.Create(info.TileEntityName);

            if (te == null)
            {
                throw new UnknownTileEntityException("The TileEntity type '" + info.TileEntityName + "' has not been registered with the TileEntityFactory.");
            }

            BlockKey key = (TranslateCoordinates != null)
                ? TranslateCoordinates(x, y, z)
                : new BlockKey(x, y, z);

            TagNodeCompound oldte;

            if (_tileEntityTable.TryGetValue(key, out oldte))
            {
                _tileEntities.Remove(oldte);
            }

            te.X = key.x;
            te.Y = key.y;
            te.Z = key.z;

            TagNodeCompound tree = te.BuildTree() as TagNodeCompound;

            _tileEntities.Add(tree);
            _tileEntityTable[key] = tree;
        }
示例#3
0
        static McBlocks()
        {
            Air = new BlockInfo(0, "Air").SetOpacity(0).SetState(BlockState.Non_Solid);
            Stone = new BlockInfo(1, "Stone");
            Grass = new BlockInfo(2, "Grass").SetTick(10);
            Dirt = new BlockInfo(3, "Dirt");
            Cobblestone = new BlockInfo(4, "Cobblestone");
            WoodPlank = new BlockInfo(5, "Wooden Plank");
            Sapling = new BlockInfo(6, "Sapling").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Bedrock = new BlockInfo(7, "Bedrock");
            Water = new BlockInfo(8, "Water").SetOpacity(3).SetState(BlockState.Fluid).SetTick(5);
            StationaryWater = new BlockInfo(9, "Stationary Water").SetOpacity(3).SetState(BlockState.Fluid);
            Lava = new BlockInfo(10, "Lava").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE).SetState(BlockState.Fluid).SetTick(30);
            StationaryLava = new BlockInfo(11, "Stationary Lava").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE).SetState(BlockState.Fluid).SetTick(10);
            Sand = new BlockInfo(12, "Sand").SetTick(3);
            Gravel = new BlockInfo(13, "Gravel").SetTick(3);
            GoldOre = new BlockInfo(14, "Gold Ore");
            IronOre = new BlockInfo(15, "Iron Ore");
            CoalOre = new BlockInfo(16, "Coal Ore");
            Wood = new BlockInfo(17, "Wood");
            Leaves = new BlockInfo(18, "Leaves").SetOpacity(1).SetTick(10);
            Sponge = new BlockInfo(19, "Sponge");
            Glass = new BlockInfo(20, "Glass").SetOpacity(0);
            LapisOre = new BlockInfo(21, "Lapis Lazuli Ore");
            LapisBlock = new BlockInfo(22, "Lapis Lazuli Block");
            Dispenser = (BlockInfoEx)new BlockInfoEx(23, "Dispenser").SetTick(4);
            Sandstone = new BlockInfo(24, "Sandstone");
            NoteBlock = new BlockInfoEx(25, "Note Block");
            Bed = new BlockInfo(26, "Bed").SetOpacity(0);
            PoweredRail = new BlockInfo(27, "Powered Rail").SetOpacity(0).SetState(BlockState.Non_Solid);
            DetectorRail = new BlockInfo(28, "Detector Rail").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(20);
            StickyPiston = new BlockInfo(29, "Sticky Piston").SetOpacity(0);
            Cobweb = new BlockInfo(30, "Cobweb").SetOpacity(0).SetState(BlockState.Non_Solid);
            TallGrass = new BlockInfo(31, "Tall Grass").SetOpacity(0).SetState(BlockState.Non_Solid);
            DeadShrub = new BlockInfo(32, "Dead Shrub").SetOpacity(0).SetState(BlockState.Non_Solid);
            Piston = new BlockInfo(33, "Piston").SetOpacity(0);
            PistonHead = new BlockInfo(34, "Piston Head").SetOpacity(0);
            Wool = new BlockInfo(35, "Wool");
            PistonMoving = (BlockInfoEx)new BlockInfoEx(36, "Piston Moving").SetOpacity(0);
            YellowFlower = new BlockInfo(37, "Yellow Flower").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            RedRose = new BlockInfo(38, "Red Rose").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            BrownMushroom = new BlockInfo(39, "Brown Mushroom").SetOpacity(0).SetLuminance(1).SetState(BlockState.Non_Solid).SetTick(10);
            RedMushroom = new BlockInfo(40, "Red Mushroom").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            GoldBlock = new BlockInfo(41, "Gold Block");
            IronBlock = new BlockInfo(42, "Iron Block");
            DoubleStoneSlab = new BlockInfo(43, "Double Slab");
            StoneSlab = new BlockInfo(44, "Slab").SetOpacity(0);
            BrickBlock = new BlockInfo(45, "Brick Block");
            TNT = new BlockInfo(46, "TNT");
            Bookshelf = new BlockInfo(47, "Bookshelf");
            MossStone = new BlockInfo(48, "Moss Stone");
            Obsidian = new BlockInfo(49, "Obsidian");
            Torch = new BlockInfo(50, "Torch").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE - 1).SetState(BlockState.Non_Solid).SetTick(10);
            Fire = new BlockInfo(51, "Fire").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE).SetState(BlockState.Non_Solid).SetTick(40);
            MonsterSpawner = (BlockInfoEx)new BlockInfoEx(52, "Monster Spawner").SetOpacity(0);
            WoodStairs = new BlockInfo(53, "Wooden Stairs").SetOpacity(0);
            Chest = (BlockInfoEx)new BlockInfoEx(54, "Chest").SetOpacity(0);
            RedstoneWire = new BlockInfo(55, "Redstone Wire").SetOpacity(0).SetState(BlockState.Non_Solid);
            DiamondOre = new BlockInfo(56, "Diamond Ore");
            DiamondBlock = new BlockInfo(57, "Diamond Block");
            CraftTable = new BlockInfo(58, "Crafting Table");
            Crops = new BlockInfo(59, "Crops").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Farmland = new BlockInfo(60, "Farmland").SetOpacity(0).SetTick(10);
            Furnace = new BlockInfoEx(61, "Furnace");
            BurningFurnace = (BlockInfoEx)new BlockInfoEx(62, "Burning Furnace").SetLuminance(BlockInfo.MAX_LUMINANCE - 1);
            SignPost = (BlockInfoEx)new BlockInfoEx(63, "Sign Post").SetOpacity(0).SetState(BlockState.Non_Solid);
            WoodDoor = new BlockInfo(64, "Wooden Door").SetOpacity(0);
            Ladder = new BlockInfo(65, "Ladder").SetOpacity(0);
            Rails = new BlockInfo(66, "Rails").SetOpacity(0).SetState(BlockState.Non_Solid);
            CobbleStairs = new BlockInfo(67, "Cobblestone Stairs").SetOpacity(0);
            WallSign = (BlockInfoEx)new BlockInfoEx(68, "Wall Sign").SetOpacity(0).SetState(BlockState.Non_Solid);
            Lever = new BlockInfo(69, "Lever").SetOpacity(0).SetState(BlockState.Non_Solid);
            StonePlate = new BlockInfo(70, "Stone Pressure Plate").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(20);
            IronDoor = new BlockInfo(71, "Iron Door").SetOpacity(0);
            WoodPlate = new BlockInfo(72, "Wooden Pressure Plate").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(20);
            RedstoneOre = new BlockInfo(73, "Redstone Ore").SetTick(30);
            GlowRedstoneOre = new BlockInfo(74, "Glowing Redstone Ore").SetLuminance(9).SetTick(30);
            RedstoneTorch = new BlockInfo(75, "Redstone Torch (Off)").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(2);
            RedstoneTorchOn = new BlockInfo(76, "Redstone Torch (On)").SetOpacity(0).SetLuminance(7).SetState(BlockState.Non_Solid).SetTick(2);
            StoneButton = new BlockInfo(77, "Stone Button").SetOpacity(0).SetState(BlockState.Non_Solid);
            Snow = new BlockInfo(78, "Snow").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Ice = new BlockInfo(79, "Ice").SetOpacity(3).SetTick(10);
            SnowBlock = new BlockInfo(80, "Snow Block").SetTick(10);
            Cactus = new BlockInfo(81, "Cactus").SetOpacity(0).SetTick(10);
            ClayBlock = new BlockInfo(82, "Clay Block");
            SugarCane = new BlockInfo(83, "Sugar Cane").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Jukebox = new BlockInfo(84, "Jukebox");
            Fence = new BlockInfo(85, "Fence").SetOpacity(0);
            Pumpkin = new BlockInfo(86, "Pumpkin");
            Netherrack = new BlockInfo(87, "Netherrack");
            SoulSand = new BlockInfo(88, "Soul Sand");
            Glowstone = new BlockInfo(89, "Glowstone Block").SetLuminance(BlockInfo.MAX_LUMINANCE);
            Portal = new BlockInfo(90, "Portal").SetOpacity(0).SetLuminance(11).SetState(BlockState.Non_Solid);
            JackOLantern = new BlockInfo(91, "Jack-O-Lantern").SetLuminance(BlockInfo.MAX_LUMINANCE);
            CakeBlock = new BlockInfo(92, "Cake Block").SetOpacity(0);
            RedstoneRepeater = new BlockInfo(93, "Redstone Repeater (Off)").SetOpacity(0).SetTick(10);
            RedstoneRepeaterOn = new BlockInfo(94, "Redstone Repeater (On)").SetOpacity(0).SetLuminance(7).SetTick(10);
            LockedChest = (BlockInfoEx)new BlockInfoEx(95, "Locked Chest").SetLuminance(BlockInfo.MAX_LUMINANCE).SetTick(10);
            Trapdoor = new BlockInfo(96, "Trapdoor").SetOpacity(0);
            SilverfishStone = new BlockInfo(97, "Stone with Silverfish");
            StoneBrick = new BlockInfo(98, "Stone Brick");
            HugeRedMushroom = new BlockInfo(99, "Huge Red Mushroom");
            HugeBrownMushroom = new BlockInfo(100, "Huge Brown Mushroom");
            IronBars = new BlockInfo(101, "Iron Bars").SetOpacity(0);
            GlassPane = new BlockInfo(102, "Glass Pane").SetOpacity(0);
            Melon = new BlockInfo(103, "Melon");
            PumpkinStem = new BlockInfo(104, "Pumpkin Stem").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            MelonStem = new BlockInfo(105, "Melon Stem").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Vines = new BlockInfo(106, "Vines").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            FenceGate = new BlockInfo(107, "Fence Gate").SetOpacity(0);
            BrickStairs = new BlockInfo(108, "Brick Stairs").SetOpacity(0);
            StoneBrickStairs = new BlockInfo(109, "Stone Brick Stairs").SetOpacity(0);
            Mycelium = new BlockInfo(110, "Mycelium").SetTick(10);
            LillyPad = new BlockInfo(111, "Lilly Pad").SetOpacity(0).SetState(BlockState.Non_Solid);
            NetherBrick = new BlockInfo(112, "Nether Brick");
            NetherBrickFence = new BlockInfo(113, "Nether Brick Fence").SetOpacity(0);
            NetherBrickStairs = new BlockInfo(114, "Nether Brick Stairs").SetOpacity(0);
            NetherWart = new BlockInfo(115, "Nether Wart").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            EnchantmentTable = (BlockInfoEx)new BlockInfoEx(116, "Enchantment Table").SetOpacity(0);
            BrewingStand = (BlockInfoEx)new BlockInfoEx(117, "Brewing Stand").SetOpacity(0);
            Cauldron = new BlockInfo(118, "Cauldron").SetOpacity(0);
            EndPortal = (BlockInfoEx)new BlockInfoEx(119, "End Portal").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE).SetState(BlockState.Non_Solid);
            EndPortalFrame = new BlockInfo(120, "End Portal Frame").SetLuminance(BlockInfo.MAX_LUMINANCE);
            EndStone = new BlockInfo(121, "End Stone");
            DragonEgg = new BlockInfo(122, "Dragon Egg").SetOpacity(0).SetLuminance(1).SetTick(3);
            RedstoneLampOff = new BlockInfo(123, "Redstone Lamp (Off)").SetTick(2);
            RedstoneLampOn = new BlockInfo(124, "Redstone Lamp (On)").SetLuminance(15).SetTick(2);
            DoubleWoodSlab = new BlockInfo(125, "Double Wood Slab");
            WoodSlab = new BlockInfo(126, "Wood Slab");
            CocoaPlant = new BlockInfo(127, "Cocoa Plant").SetLuminance(2).SetOpacity(0);
            SandstoneStairs = new BlockInfo(128, "Sandstone Stairs").SetOpacity(0);
            EmeraldOre = new BlockInfo(129, "Emerald Ore");
            EnderChest = (BlockInfoEx)new BlockInfoEx(130, "Ender Chest").SetLuminance(7).SetOpacity(0);
            TripwireHook = new BlockInfo(131, "Tripwire Hook").SetOpacity(0).SetState(BlockState.Non_Solid);
            Tripwire = new BlockInfo(132, "Tripwire").SetOpacity(0).SetState(BlockState.Non_Solid);
            EmeraldBlock = new BlockInfo(133, "Emerald Block");
            SpruceWoodStairs = new BlockInfo(134, "Sprice Wood Stairs").SetOpacity(0);
            BirchWoodStairs = new BlockInfo(135, "Birch Wood Stairs").SetOpacity(0);
            JungleWoodStairs = new BlockInfo(136, "Jungle Wood Stairs").SetOpacity(0);
            CommandBlock = (BlockInfoEx)new BlockInfoEx(137, "Command Block");
            BeaconBlock = (BlockInfoEx)new BlockInfoEx(138, "Beacon Block").SetOpacity(0).SetLuminance(BlockInfo.MAX_LUMINANCE);
            CobblestoneWall = new BlockInfo(139, "Cobblestone Wall").SetOpacity(0);
            FlowerPot = new BlockInfo(140, "Flower Pot").SetOpacity(0);
            Carrots = new BlockInfo(141, "Carrots").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Potatoes = new BlockInfo(142, "Potatoes").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            WoodButton = new BlockInfo(143, "Wooden Button").SetOpacity(0).SetState(BlockState.Non_Solid);
            Heads = new BlockInfo(144, "Heads").SetOpacity(0);
            Anvil = new BlockInfo(145, "Anvil").SetOpacity(0);
            TrappedChest = (BlockInfoEx)new BlockInfoEx(146, "Trapped Chest").SetOpacity(0).SetTick(10);
            WeightedPressurePlateLight = new BlockInfo(147, "Weighted Pressure Plate (Light)").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(20);
            WeightedPressurePlateHeavy = new BlockInfo(148, "Weighted Pressure Plate (Heavy)").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(20);
            RedstoneComparatorInactive = new BlockInfo(149, "Redstone Comparator (Inactive)").SetOpacity(0).SetTick(10);
            RedstoneComparatorActive = new BlockInfo(150, "Redstone Comparator (Active)").SetOpacity(0).SetLuminance(9).SetTick(10);
            DaylightSensor = new BlockInfo(151, "Daylight Sensor").SetOpacity(0).SetTick(10);
            RedstoneBlock = new BlockInfo(152, "Block of Redstone").SetTick(10);
            NetherQuartzOre = new BlockInfo(153, "Neither Quartz Ore");
            Hopper = (BlockInfoEx)new BlockInfoEx(154, "Hopper").SetOpacity(0).SetTick(10);
            QuartzBlock = new BlockInfo(155, "Block of Quartz");
            QuartzStairs = new BlockInfo(156, "Quartz Stairs").SetOpacity(0);
            ActivatorRail = new BlockInfo(157, "Activator Rail").SetOpacity(0).SetState(BlockState.Non_Solid).SetTick(10);
            Dropper = (BlockInfoEx)new BlockInfoEx(158, "Dropper").SetTick(10);
            StainedClay = new BlockInfo(159, "Stained Clay");
            HayBlock = new BlockInfo(170, "Hay Block");
            Carpet = new BlockInfo(171, "Carpet").SetOpacity(0);
            HardenedClay = new BlockInfo(172, "Hardened Clay");
            CoalBlock = new BlockInfo(173, "Block of Coal");

            // Override default light transmission rules

            Lava.SetLightTransmission(false);
            StationaryLava.SetLightTransmission(false);
            StoneSlab.SetLightTransmission(false);
            WoodStairs.SetLightTransmission(false);
            Farmland.SetLightTransmission(false);
            CobbleStairs.SetLightTransmission(false);
            BrickStairs.SetLightTransmission(false);
            StoneBrickStairs.SetLightTransmission(false);
            NetherBrickStairs.SetLightTransmission(false);
            WoodSlab.SetLightTransmission(false);
            SandstoneStairs.SetLightTransmission(false);
            SpruceWoodStairs.SetLightTransmission(false);
            BirchWoodStairs.SetLightTransmission(false);
            JungleWoodStairs.SetLightTransmission(false);
            QuartzStairs.SetLightTransmission(false);
            Carpet.SetLightTransmission(false);

            // Override default fluid blocking rules

            SignPost.SetBlocksFluid(true);
            WallSign.SetBlocksFluid(true);
            Cactus.SetBlocksFluid(false);

            // Set Tile Entity Data

            Dispenser.SetTileEntity("Trap");
            NoteBlock.SetTileEntity("Music");
            PistonMoving.SetTileEntity("Piston");
            MonsterSpawner.SetTileEntity("MobSpawner");
            Chest.SetTileEntity("Chest");
            Furnace.SetTileEntity("Furnace");
            BurningFurnace.SetTileEntity("Furnace");
            SignPost.SetTileEntity("Sign");
            WallSign.SetTileEntity("Sign");
            EnchantmentTable.SetTileEntity("EnchantTable");
            BrewingStand.SetTileEntity("Cauldron");
            EndPortal.SetTileEntity("Airportal");
            EnderChest.SetTileEntity("EnderChest");
            CommandBlock.SetTileEntity("Control");
            BeaconBlock.SetTileEntity("Beacon");
            TrappedChest.SetTileEntity("Chest");
            Hopper.SetTileEntity("Hopper");
            Dropper.SetTileEntity("Dropper");

            // Set Data Limits

            Wood.SetDataLimits(0, 2, 0);
            Leaves.SetDataLimits(0, 2, 0);
            Jukebox.SetDataLimits(0, 2, 0);
            Sapling.SetDataLimits(0, 15, 0);
            Cactus.SetDataLimits(0, 15, 0);
            SugarCane.SetDataLimits(0, 15, 0);
            Water.SetDataLimits(0, 7, 0x8);
            Lava.SetDataLimits(0, 7, 0x8);
            TallGrass.SetDataLimits(0, 2, 0);
            Crops.SetDataLimits(0, 7, 0);
            PoweredRail.SetDataLimits(0, 5, 0x8);
            DetectorRail.SetDataLimits(0, 5, 0x8);
            StickyPiston.SetDataLimits(1, 5, 0x8);
            Piston.SetDataLimits(1, 5, 0x8);
            PistonHead.SetDataLimits(1, 5, 0x8);
            Wool.SetDataLimits(0, 15, 0);
            Torch.SetDataLimits(1, 5, 0);
            RedstoneTorch.SetDataLimits(0, 5, 0);
            RedstoneTorchOn.SetDataLimits(0, 5, 0);
            Rails.SetDataLimits(0, 9, 0);
            Ladder.SetDataLimits(2, 5, 0);
            WoodStairs.SetDataLimits(0, 3, 0x4);
            CobbleStairs.SetDataLimits(0, 3, 0x4);
            Lever.SetDataLimits(0, 6, 0x8);
            WoodDoor.SetDataLimits(0, 3, 0xC);
            IronDoor.SetDataLimits(0, 3, 0xC);
            StoneButton.SetDataLimits(1, 4, 0x8);
            Snow.SetDataLimits(0, 7, 0);
            SignPost.SetDataLimits(0, 15, 0);
            WallSign.SetDataLimits(2, 5, 0);
            Furnace.SetDataLimits(2, 5, 0);
            BurningFurnace.SetDataLimits(2, 5, 0);
            Dispenser.SetDataLimits(2, 5, 0);
            Pumpkin.SetDataLimits(0, 3, 0);
            JackOLantern.SetDataLimits(0, 3, 0);
            StonePlate.SetDataLimits(0, 0, 0x1);
            WoodPlate.SetDataLimits(0, 0, 0x1);
            StoneSlab.SetDataLimits(0, 5, 0);
            DoubleStoneSlab.SetDataLimits(0, 5, 0x8);
            Cactus.SetDataLimits(0, 5, 0);
            Bed.SetDataLimits(0, 3, 0x8);
            RedstoneRepeater.SetDataLimits(0, 0, 0xF);
            RedstoneRepeaterOn.SetDataLimits(0, 0, 0xF);
            Trapdoor.SetDataLimits(0, 3, 0x4);
            StoneBrick.SetDataLimits(0, 2, 0);
            HugeRedMushroom.SetDataLimits(0, 10, 0);
            HugeBrownMushroom.SetDataLimits(0, 10, 0);
            Vines.SetDataLimits(0, 0, 0xF);
            FenceGate.SetDataLimits(0, 3, 0x4);
            SilverfishStone.SetDataLimits(0, 2, 0);
            BrewingStand.SetDataLimits(0, 0, 0x7);
            Cauldron.SetDataLimits(0, 3, 0);
            EndPortalFrame.SetDataLimits(0, 0, 0x7);
            WoodSlab.SetDataLimits(0, 5, 0);
            DoubleWoodSlab.SetDataLimits(0, 5, 0x8);
            TripwireHook.SetDataLimits(0, 3, 0xC);
            Tripwire.SetDataLimits(0, 0, 0x5);
            Anvil.SetDataLimits(0, 0, 0xD);
            QuartzBlock.SetDataLimits(0, 4, 0);
            QuartzStairs.SetDataLimits(0, 3, 0x4);
            Carpet.SetDataLimits(0, 15, 0);
            Dropper.SetDataLimits(0, 5, 0);
            Hopper.SetDataLimits(0, 5, 0);
        }