示例#1
0
        public void Initialize(int Width, int Height, int OffsetX, int OffsetY)
        {
            if (ProviderIndexes != null)
            {
                throw new Exception("Attempt to reinitialize.");
            }

            this.Width   = Width;
            this.Height  = Height;
            this.OffsetX = OffsetX;
            this.OffsetY = OffsetY;

            ProviderIndexes = new ushort[this.Width, this.Height];
            Void            = FakeProviderAPI.CreateReadonlyTileProvider(VoidProviderName, 0, 0, 1, 1,
                                                                         new ITile[, ] {
                { new Terraria.Tile() }
            }, Int32.MinValue);
            VoidTile = Void[0, 0];
        }
        private static void CreateCustomTileProvider()
        {
            int maxTilesX = Main.maxTilesX;
            int maxTilesY = Main.maxTilesY;

            if (VisibleWidth < 0)
            {
                VisibleWidth = (OffsetX + maxTilesX);
            }
            else
            {
                VisibleWidth++;
            }
            if (VisibleHeight < 0)
            {
                VisibleHeight = (OffsetY + maxTilesY);
            }
            else
            {
                VisibleHeight++;
            }
            FakeProviderAPI.Tile = new TileProviderCollection();
            FakeProviderAPI.Tile.Initialize(VisibleWidth, VisibleHeight, 0, 0);

            if (ReadonlyWorld)
            {
                FakeProviderAPI.World = FakeProviderAPI.CreateReadonlyTileProvider(FakeProviderAPI.WorldProviderName, 0, 0,
                                                                                   maxTilesX, maxTilesY, Int32.MinValue + 1);
            }
            else
            {
                FakeProviderAPI.World = FakeProviderAPI.CreateTileProvider(FakeProviderAPI.WorldProviderName, 0, 0,
                                                                           maxTilesX, maxTilesY, Int32.MinValue + 1);
            }

            using (IDisposable previous = Main.tile as IDisposable)
                Main.tile = FakeProviderAPI.World;
        }