Beispiel #1
0
 public TileObjectData(TileObjectData copyFrom = null)
 {
     this._parent = null;
     this._linkedAlternates = false;
     if (copyFrom != null)
     {
         this.CopyFrom(copyFrom);
         return;
     }
     this._usesCustomCanPlace = false;
     this._alternates = null;
     this._anchor = null;
     this._anchorTiles = null;
     this._tileObjectBase = null;
     this._liquidDeath = null;
     this._liquidPlacement = null;
     this._placementHooks = null;
     this._tileObjectDraw = null;
     this._tileObjectStyle = null;
     this._tileObjectCoords = null;
 }
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Height            = 5;
            TileObjectData.newTile.CoordinateHeights = new int[]
            {
                16,
                16,
                16,
                16,
                16
            };
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            // name.SetDefault("Oroboros Clock"); // Automatic from .lang files
            AddMapEntry(new Color(70, 0, 10), name);
            dustType = mod.DustType("DoomDust");
            adjTiles = new int[] { TileID.GrandfatherClocks };
        }
Beispiel #3
0
        public override void SetDefaults()
        {
            Main.tileSolid[Type]                      = false;
            Main.tileFrameImportant[Type]             = true;
            Main.tileNoAttach[Type]                   = true;
            Main.tileTable[Type]                      = false;
            Main.tileLavaDeath[Type]                  = false;
            TileObjectData.newTile.AnchorBottom       = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
            TileObjectData.newTile.UsesCustomCanPlace = true;
            TileObjectData.newTile.CoordinateWidth    = 16;
            TileObjectData.newTile.Width              = 3;
            TileObjectData.newTile.Height             = 3;
            TileObjectData.newTile.CoordinateHeights  = new int[] { 16, 16, 16 };
            TileObjectData.newTile.Origin             = new Point16(1, 0);
            TileObjectData.newTile.CoordinatePadding  = 2;
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Ki Beacon");
            AddMapEntry(new Color(223, 245, 255), name);
            animationFrameHeight = 18;
            disableSmartCursor   = true;
            TileObjectData.addTile(Type);
        }
Beispiel #4
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Height            = 5;
            TileObjectData.newTile.CoordinateHeights = new[]
            {
                16,
                16,
                16,
                16,
                16
            };
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Gravity Clock");
            AddMapEntry(new Color(255, 206, 49), name);
            dustType = 162;
            adjTiles = new int[] { TileID.GrandfatherClocks };
        }
        public override void SetDefaults()
        {
            Main.tileLavaDeath[Type]      = false;
            Main.tileFrameImportant[Type] = true;

            TileObjectData.newTile.Width              = 2;
            TileObjectData.newTile.Height             = 2;
            TileObjectData.newTile.CoordinateHeights  = new int[] { 16, 16 };
            TileObjectData.newTile.UsesCustomCanPlace = true;
            TileObjectData.newTile.CoordinateWidth    = 16;
            TileObjectData.newTile.CoordinatePadding  = 2;
            TileObjectData.newTile.Origin             = new Point16(0, 0);
            TileObjectData.addTile(Type);

            ModTranslation name = CreateMapEntryName();

            name.SetDefault("");//Map name
            AddMapEntry(new Color(0, 0, 0), name);
            dustType           = ModContent.DustType <Dusts.Air>();
            soundType          = SoundID.Shatter;
            disableSmartCursor = true;
            minPick            = int.MaxValue;
        }
Beispiel #6
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
            TileObjectData.newTile.Direction       = TileObjectDirection.PlaceLeft;
            TileObjectData.newTile.StyleWrapLimit  = 2; //not really necessary but allows me to add more subtypes of chairs below the example chair texture
            TileObjectData.newTile.StyleMultiplier = 2; //same as above
            TileObjectData.newTile.StyleHorizontal = true;
            TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
            TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight; //allows me to place example chairs facing the same way as the player
            TileObjectData.addAlternate(1);                                         //facing right will use the second texture style
            TileObjectData.addTile(Type);
            drop = ModContent.ItemType <Items.Placeable.Furniture.Neon.NeonCandleGreen>();
            ModTranslation name = CreateMapEntryName();

            Main.tileLighted[Type] = true;
            name.SetDefault("Fluorescent Candle");
            AddMapEntry(new Color(77, 255, 88), name);
            adjTiles = new int[] { TileID.Torches };
            dustType = -1;
        }
Beispiel #7
0
        public override void SetDefaults()
        {
            anim = true;
            Main.tileSolid[Type]      = false;
            Main.tileBlockLight[Type] = true;
            Main.tileLighted[Type]    = true;
            dustType = mod.DustType("Magma");
            //drop = mod.ItemType("LavaGem");
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Lycoris Radiata");
            TileObjectData.newTile.CopyFrom(TileObjectData.Style3x4);
            TileObjectData.newTile.Width = 4;
            //AddMapEntry(new Color(200, 30, 0), name);
            Main.tileFrameImportant[Type] = true;
            soundType = 6;
            TileObjectData.newTile.AnchorValidTiles = new int[]
            {
                mod.TileType <Lycoris>(),
                mod.TileType <Radiata>()
            };
            TileObjectData.addTile(Type);
        }
Beispiel #8
0
        private const int FrameWidth = 18;         //a field for readibilty and to kick out those magic numbers

        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileCut[Type]            = true;
            Main.tileNoFail[Type]         = true;

            TileObjectData.newTile.CopyFrom(TileObjectData.StyleAlch);

            TileObjectData.newTile.AnchorValidTiles = new int[]
            {
                TileID.Grass,
                TileID.HallowedGrass,
                ModContent.TileType <ExampleBlock>()
            };

            TileObjectData.newTile.AnchorAlternateTiles = new int[]
            {
                TileID.ClayPot,
                TileID.PlanterBox
            };

            TileObjectData.addTile(Type);
        }
Beispiel #9
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileCut[Type]            = true;
            Main.tileLavaDeath[Type]      = true;
            Main.tileLighted[Type]        = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Height            = 3;
            TileObjectData.newTile.Width             = 2;
            TileObjectData.newTile.CoordinateHeights = new int[]
            {
                16,
                16,
                16
            };
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Pot");
            dustType = 54;
            AddMapEntry(new Color(100, 100, 100), name);
        }
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Height            = 4;
            TileObjectData.newTile.Width             = 3;
            TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16 };
            TileObjectData.newTile.Direction         = TileObjectDirection.PlaceLeft;
            TileObjectData.newTile.StyleWrapLimit    = 2;          //not really necessary but allows me to add more subtypes of chairs below the example chair texture
            TileObjectData.newTile.StyleMultiplier   = 2;          //same as above
            TileObjectData.newTile.StyleHorizontal   = true;
            TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
            TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight; //allows me to place example chairs facing the same way as the player
            TileObjectData.addAlternate(1);                                         //facing right will use the second texture style
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Yellow Willow Bonsai");
            dustType = -1;
            AddMapEntry(new Color(217, 171, 63), name);
        }
Beispiel #11
0
        //in Terraria.Main.DrawTiles after if statements setting num11 and num12 call
        //  TileLoader.SetDrawPositions(j, i, ref num9, ref num11, ref num12);
        public static void SetDrawPositions(int i, int j, ref int width, ref int offsetY, ref int height)
        {
            Tile tile = Main.tile[i, j];

            if (tile.type >= TileID.Count)
            {
                TileObjectData tileData = TileObjectData.GetTileData(tile.type, 0, 0);
                if (tileData != null)
                {
                    int partFrameY = tile.frameY % tileData.CoordinateFullHeight;
                    int partY      = 0;
                    while (partFrameY > 0)
                    {
                        partFrameY -= tileData.CoordinateHeights[partY] + tileData.CoordinatePadding;
                        partY++;
                    }
                    width   = tileData.CoordinateWidth;
                    offsetY = tileData.DrawYOffset;
                    height  = tileData.CoordinateHeights[partY];
                }
                GetTile(tile.type).SetDrawPositions(i, j, ref width, ref offsetY, ref height);
            }
        }
Beispiel #12
0
        public override void SetDefaults()
        {
            Main.tileSolidTop[Type]                      = false;
            Main.tileFrameImportant[Type]                = true;
            Main.tileNoAttach[Type]                      = true;
            Main.tileLavaDeath[Type]                     = false;
            TileObjectData.newTile.Width                 = 3;
            TileObjectData.newTile.Height                = 3;
            TileObjectData.newTile.Origin                = new Point16(0, 2);
            TileObjectData.newTile.AnchorBottom          = new AnchorData(AnchorType.SolidTile, 3, 0);
            TileObjectData.newTile.UsesCustomCanPlace    = true;
            TileObjectData.newTile.CoordinateHeights     = new[] { 16, 16, 16 };
            TileObjectData.newTile.CoordinateWidth       = 16;
            TileObjectData.newTile.CoordinatePadding     = 0;
            TileObjectData.newTile.HookPostPlaceMyPlayer = new PlacementHook(ModContent.GetInstance <TileEntities.AutoExtractinator>().Hook_AfterPlacement, -1, 0, false);
            TileObjectData.addTile(Type);
            disableSmartCursor   = true;
            animationFrameHeight = 48;

            ModTranslation name = CreateMapEntryName();

            AddMapEntry(Color.CornflowerBlue, name);
        }
Beispiel #13
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = true;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2);
            TileObjectData.newTile.CoordinateHeights = new[] { 16, 18 };
            TileObjectData.newTile.Direction         = TileObjectDirection.PlaceLeft;
            TileObjectData.newTile.StyleWrapLimit    = 2;          //not really necessary but allows me to add more subtypes of chairs below the example chair texture
            TileObjectData.newTile.StyleMultiplier   = 2;          //same as above
            TileObjectData.newTile.StyleHorizontal   = true;
            TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
            TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight; //allows me to place example chairs facing the same way as the player
            TileObjectData.addAlternate(1);                                         //facing right will use the second texture style
            TileObjectData.addTile(Type);
            AddToArray(ref TileID.Sets.RoomNeeds.CountsAsChair);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Bloodstone Chair");
            AddMapEntry(new Color(139, 0, 0), name);
            disableSmartCursor = true;
            adjTiles           = new int[] { TileID.Chairs };
        }
Beispiel #14
0
        public override void SetDefaults()
        {
            Main.tileSolid[Type]          = false;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = false;
            Main.tileFrameImportant[Type] = true;
            Main.tileLighted[Type]        = true;

            TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
            TileObjectData.newTile.Width             = 4;
            TileObjectData.newTile.Height            = 5;
            TileObjectData.newTile.Origin            = new Point16(0, 0);
            TileObjectData.newTile.AnchorBottom      = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
            TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16, 16 };
            TileObjectData.newTile.CoordinateWidth   = 16;
            TileObjectData.newTile.CoordinatePadding = 2;
            TileObjectData.addTile(Type);

            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Jade Dragon Statuette");
            AddMapEntry(Color.DarkOliveGreen, name);
        }
Beispiel #15
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileLighted[Type]        = true;


            TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
            TileObjectData.newTile.Origin            = new Point16(1, 1);
            TileObjectData.newTile.CoordinateHeights = new[] { 16, 18 };
            TileObjectData.newTile.AnchorBottom      = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
            TileObjectData.addTile(Type);

            AddToArray(ref TileID.Sets.RoomNeeds.CountsAsTorch);

            ModTranslation name = CreateMapEntryName();

            AddMapEntry(new Color(191, 142, 111), name);

            disableSmartCursor = true;

            adjTiles             = new int[] { TileID.Furnaces };
            animationFrameHeight = 38;
        }
Beispiel #16
0
        public override void SetDefaults()
        {
            TileIO.Tiles.unloadedTypes.Add(Type);

            //common
            Main.tileFrameImportant[Type]        = true;
            TileID.Sets.DisableSmartCursor[Type] = true;

            Main.tileSolid[Type]    = false;
            Main.tileNoAttach[Type] = true;

            TileID.Sets.BasicChest[Type] = true;

            TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);             // Disables hammering
            TileObjectData.addTile(Type);

            Main.tileSpelunker[Type]         = true;
            Main.tileContainer[Type]         = true;
            Main.tileShine2[Type]            = true;
            Main.tileShine[Type]             = 1200;
            Main.tileOreFinderPriority[Type] = 500;

            //TileID.Sets.HasOutlines[Type] = isChest;

            AdjTiles = new int[] { TileID.Containers };

            ContainerName.SetDefault("UnloadedChest");

            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Unloaded Chest");
            AddMapEntry(new Color(200, 200, 200), name, MapChestName);

            name = CreateMapEntryName(Name + "_Locked");
            name.SetDefault("Locked Unloaded Chest");
            AddMapEntry(new Color(0, 141, 63), name, MapChestName);
        }
Beispiel #17
0
        public override void SetDefaults()
        {
            Main.tileSolidTop[Type]       = false;
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileTable[Type]          = true;
            Main.tileLavaDeath[Type]      = false;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Height            = 3;
            TileObjectData.newTile.Origin            = new Point16(1, 2);
            TileObjectData.newTile.StyleHorizontal   = true;
            TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 18 };
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Special Crafting Point");
            name.AddTranslation(GameCulture.Russian, "СпецКрафтовый Поинт");
            AddMapEntry(new Color(200, 200, 200), name);
            disableSmartCursor = true;
            adjTiles           = new int[]
            {
                TileID.Sinks,
                TileID.LivingLoom,
                TileID.Solidifier,
                TileID.FleshCloningVat,
                TileID.GlassKiln,
                TileID.BoneWelder,
                TileID.Kegs,
                TileID.SteampunkBoiler,
                TileID.IceMachine,
                TileID.SkyMill,
                TileID.HoneyDispenser,
                TileID.LunarCraftingStation
            };
            dustType             = mod.DustType("JustitiaPale");
            animationFrameHeight = 56;
        }
Beispiel #18
0
        public override void SetDefaults()
        {
            Main.tileFrameImportant[Type] = true;
            Main.tileNoAttach[Type]       = true;
            Main.tileLavaDeath[Type]      = false;
            TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
            TileObjectData.newTile.Width             = 5;
            TileObjectData.newTile.Height            = 4;
            TileObjectData.newTile.Origin            = new Point16(4, 3);
            TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16 };
            TileObjectData.newTile.StyleWrapLimit    = 2;
            TileObjectData.newTile.StyleMultiplier   = 2;
            TileObjectData.addTile(Type);
            ModTranslation name = CreateMapEntryName();

            name.SetDefault("Ancient Forge");
            AddMapEntry(new Color(80, 170, 195), name);
            disableSmartCursor = true;
            //The List of Tiles it Functions As
            adjTiles = new int[]
            {
                TileID.WorkBenches,
                TileID.AdamantiteForge,
                TileID.MythrilAnvil,
                TileID.Anvils,
                TileID.Bottles,
                TileID.AlchemyTable,
                TileID.CookingPots,
                TileID.HeavyWorkBench,
                TileID.Blendomatic,
                TileID.LunarCraftingStation,
                TileID.Sawmill,
                TileID.Loom,
                TileID.Kegs,
                TileType <Starforge>()
            };
        }
        public override void SetDefaults()
        {
            TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
            TileObjectData.newTile.Width             = 3;
            TileObjectData.newTile.Height            = 2;
            TileObjectData.newTile.Origin            = new Point16(1, 0);
            TileObjectData.newTile.CoordinateHeights = new int[]
            {
                16,
                16
            };
            TileObjectData.addTile(Type);
            Main.tileFrameImportant[Type] = true;
            Main.tileLavaDeath[Type]      = true;

            ModTranslation name = CreateMapEntryName();

            dustType   = mod.DustType("FortressDust");
            soundType  = 21;
            soundStyle = 2;

            AddMapEntry(new Color(162, 184, 185));
            name.SetDefault("Fortress Carving");
        }
Beispiel #20
0
 private static void addTile(int tileType)
 {
     TileObjectData.newTile.Calculate();
     TileObjectData._data[tileType] = TileObjectData.newTile;
     TileObjectData.newTile = new TileObjectData(TileObjectData._baseObject);
 }
Beispiel #21
0
 public static void Initialize()
 {
     TileObjectData._baseObject = new TileObjectData(null);
     TileObjectData._baseObject.SetupBaseObject();
     TileObjectData._data = new List<TileObjectData>(419);
     for (int i = 0; i < 419; i++)
     {
         TileObjectData._data.Add(null);
     }
     TileObjectData.newTile = new TileObjectData(TileObjectData._baseObject);
     TileObjectData.newSubTile = new TileObjectData(TileObjectData._baseObject);
     TileObjectData.newAlternate = new TileObjectData(TileObjectData._baseObject);
     TileObjectData tileObjectDatum = TileObjectData.newTile;
     int[] numArray = new int[] { 16 };
     tileObjectDatum.CoordinateHeights = numArray;
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.StyleMultiplier = 27;
     TileObjectData.newTile.StyleWrapLimit = 27;
     TileObjectData.newTile.UsesCustomCanPlace = false;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(13);
     TileObjectData.addTile(19);
     TileObjectData.newTile.Width = 4;
     TileObjectData.newTile.Height = 8;
     TileObjectData.newTile.Origin = new Point16(1, 7);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.HookPlaceOverride = new PlacementHook(new Func<int, int, int, int, int, int>(WorldGen.PlaceXmasTree_Direct), -1, 0, true);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16, 16, 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 0;
     TileObjectData.addTile(171);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.EmptyTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 38 };
     TileObjectData.newTile.CoordinateWidth = 32;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.DrawYOffset = -20;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.DrawFlipHorizontal = true;
     TileObjectData.addBaseTile(out TileObjectData.StyleDye);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.AnchorValidWalls = new int[1];
     TileObjectData.addSubTile(3);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.AnchorValidWalls = new int[1];
     TileObjectData.addSubTile(4);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.OnlyInFullLiquid;
     TileObjectData.addSubTile(5);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 80 };
     TileObjectData.newSubTile.AnchorLeft = new AnchorData(AnchorType.EmptyTile, 1, 1);
     TileObjectData.newSubTile.AnchorRight = new AnchorData(AnchorType.EmptyTile, 1, 1);
     TileObjectData.addSubTile(6);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData.newSubTile.DrawYOffset = -6;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.newSubTile.AnchorTop = new AnchorData(AnchorType.SolidTile, TileObjectData.newSubTile.Width, 0);
     TileObjectData.newSubTile.AnchorBottom = new AnchorData(AnchorType.EmptyTile, TileObjectData.newSubTile.Width, 0);
     TileObjectData.addSubTile(7);
     TileObjectData.addTile(227);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 1);
     TileObjectData.addAlternate(0);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 2);
     TileObjectData.addAlternate(0);
     TileObjectData.addTile(10);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.StyleMultiplier = 2;
     TileObjectData.newTile.StyleWrapLimit = 2;
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 1);
     TileObjectData.addAlternate(0);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 2);
     TileObjectData.addAlternate(0);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(1, 0);
     TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(1, 1);
     TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(1, 2);
     TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.addAlternate(1);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(19);
     TileObjectData.addTile(11);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 5;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.DrawYOffset = -2;
     TileObjectData.newTile.CoordinateHeights = new int[] { 18, 16, 16, 16, 18 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleMultiplier = 2;
     TileObjectData.newTile.StyleWrapLimit = 2;
     for (int j = 1; j < 5; j++)
     {
         TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
         TileObjectData.newAlternate.Origin = new Point16(0, j);
         TileObjectData.addAlternate(0);
     }
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     for (int k = 1; k < 5; k++)
     {
         TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
         TileObjectData.newAlternate.Origin = new Point16(0, k);
         TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
         TileObjectData.addAlternate(1);
     }
     TileObjectData.addTile(388);
     TileObjectData.newTile.FullCopyFrom(388);
     TileObjectData.addTile(389);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.Table, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.addBaseTile(out TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addTile(13);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.DrawYOffset = -4;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(25);
     TileObjectData.addTile(33);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.DrawYOffset = -4;
     TileObjectData.addTile(49);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.DrawYOffset = -4;
     TileObjectData.addTile(372);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.RandomStyleRange = 5;
     TileObjectData.addTile(50);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(78);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleOnTable1x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.DrawYOffset = -4;
     TileObjectData.addTile(174);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(0, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.addBaseTile(out TileObjectData.Style1xX);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1xX);
     TileObjectData.newTile.WaterDeath = true;
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(23);
     TileObjectData.addTile(93);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1xX);
     TileObjectData.newTile.Height = 6;
     TileObjectData.newTile.Origin = new Point16(0, 5);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16, 16, 16 };
     TileObjectData.addTile(92);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style1x2Top);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2Top);
     TileObjectData.addTile(270);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2Top);
     TileObjectData.addTile(271);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2Top);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(32);
     TileObjectData.addTile(42);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2Top);
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.StyleWrapLimit = 111;
     TileObjectData.addTile(91);
     TileObjectData.newTile.Width = 4;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleMultiplier = 2;
     TileObjectData.newTile.StyleWrapLimit = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.addBaseTile(out TileObjectData.Style4x2);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style4x2);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(25);
     TileObjectData.addTile(90);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style4x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.CoordinatePaddingFix = new Point16(0, -2);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(8);
     TileObjectData.addTile(79);
     TileObjectData.newTile.Width = 4;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop, 2, 1);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.addTile(209);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addBaseTile(out TileObjectData.StyleSmallCage);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(285);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(286);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(298);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(299);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(310);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(339);
     TileObjectData.newTile.Width = 6;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(3, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style6x3);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(275);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(276);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(413);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(414);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(277);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(278);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(279);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(280);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(281);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(296);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(297);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(309);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style2x1);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.Table, TileObjectData.newTile.Width, 0);
     TileObjectData.addTile(29);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.Table, TileObjectData.newTile.Width, 0);
     TileObjectData.addTile(103);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 18 };
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(14);
     TileObjectData.addTile(18);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 18 };
     TileObjectData.addTile(16);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(134);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x1);
     TileObjectData.newTile.AnchorBottom = AnchorData.Empty;
     TileObjectData.newTile.AnchorLeft = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Height, 0);
     TileObjectData.newTile.AnchorRight = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Height, 0);
     TileObjectData.addTile(387);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addBaseTile(out TileObjectData.Style2xX);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.Height = 4;
     TileObjectData.newTile.Origin = new Point16(1, 3);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16 };
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(207);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 18 };
     TileObjectData.addTile(410);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(349);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.addTile(337);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.addTile(320);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.HookPostPlaceMyPlayer = new PlacementHook(new Func<int, int, int, int, int, int>(TETrainingDummy.Hook_AfterPlacement), -1, 0, false);
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleMultiplier = 2;
     TileObjectData.newTile.StyleWrapLimit = 2;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.addTile(378);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(105);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.Height = 5;
     TileObjectData.newTile.Origin = new Point16(0, 4);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16, 16 };
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(17);
     TileObjectData.addTile(104);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.Origin = new Point16(0, 2);
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addTile(128);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.newTile.Origin = new Point16(0, 2);
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addTile(269);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.addBaseTile(out TileObjectData.Style3x3);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.Origin = new Point16(1, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 1, 1);
     TileObjectData.newTile.AnchorBottom = AnchorData.Empty;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(32);
     TileObjectData.addTile(34);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style3x2);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newSubTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(13);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newSubTile.Height = 1;
     TileObjectData.newSubTile.Origin = new Point16(1, 0);
     TileObjectData.newSubTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.addSubTile(25);
     TileObjectData.addTile(14);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.HookCheck = new PlacementHook(new Func<int, int, int, int, int, int>(Chest.FindEmptyChest), -1, 0, true);
     TileObjectData.newTile.HookPostPlaceMyPlayer = new PlacementHook(new Func<int, int, int, int, int, int>(Chest.AfterPlacement_Hook), -1, 0, false);
     TileObjectData.newTile.AnchorInvalidTiles = new int[] { 127 };
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(9);
     TileObjectData.addTile(88);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addTile(237);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(244);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.addTile(26);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.addTile(86);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(377);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(15);
     TileObjectData.addTile(87);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(10);
     TileObjectData.addTile(89);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(114);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(186);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(187);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.WaterDeath = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.WaterDeath = false;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(1);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.WaterDeath = false;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(4);
     TileObjectData.addTile(215);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(217);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(218);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.addTile(17);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(77);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(133);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x2);
     TileObjectData.addTile(405);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(1, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.addTile(235);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 4;
     TileObjectData.newTile.Origin = new Point16(1, 3);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style3x4);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x4);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(4);
     TileObjectData.addTile(101);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x4);
     TileObjectData.addTile(102);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style2x2);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.HookCheck = new PlacementHook(new Func<int, int, int, int, int, int>(Chest.FindEmptyChest), -1, 0, true);
     TileObjectData.newTile.HookPostPlaceMyPlayer = new PlacementHook(new Func<int, int, int, int, int, int>(Chest.AfterPlacement_Hook), -1, 0, false);
     TileObjectData.newTile.AnchorInvalidTiles = new int[] { 127 };
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.addTile(21);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.StyleWrapLimit = 6;
     TileObjectData.newTile.StyleMultiplier = 6;
     TileObjectData.newTile.RandomStyleRange = 6;
     TileObjectData.newTile.AnchorValidTiles = new int[] { 2, 109 };
     TileObjectData.addTile(254);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addTile(96);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(139);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.RandomStyleRange = 9;
     TileObjectData.addTile(35);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(1, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newTile.AnchorBottom = AnchorData.Empty;
     TileObjectData.addTile(95);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(1, 0);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newTile.AnchorBottom = AnchorData.Empty;
     TileObjectData.addTile(126);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.WaterDeath = true;
     TileObjectData.addTile(98);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(13);
     TileObjectData.addTile(172);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(94);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(411);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(97);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(99);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(25);
     TileObjectData.addTile(100);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(125);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(173);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(287);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(319);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(287);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addTile(376);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(138);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(142);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(143);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(282);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(288);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(289);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(290);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(291);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(292);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(293);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(294);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(295);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(316);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(317);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(318);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(360);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(358);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style6x3);
     TileObjectData.addTile(359);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(361);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(362);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(363);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(364);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(391);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(392);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(393);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSmallCage);
     TileObjectData.addTile(394);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(287);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.addTile(335);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(354);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(355);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2xX);
     TileObjectData.addTile(356);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.AnchorBottom = AnchorData.Empty;
     TileObjectData.newTile.AnchorLeft = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newTile.AnchorRight = new AnchorData(AnchorType.SolidTile, 1, 1);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.addTile(386);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.newAlternate.AnchorWall = true;
     TileObjectData.addAlternate(2);
     TileObjectData.addTile(132);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = Point16.Zero;
     TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 0);
     TileObjectData.newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(2);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(1, 0);
     TileObjectData.newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(3);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = Point16.Zero;
     TileObjectData.newAlternate.AnchorWall = true;
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(4);
     TileObjectData.addTile(55);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(85);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style2x2);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.HookPostPlaceMyPlayer = new PlacementHook(new Func<int, int, int, int, int, int>(TEItemFrame.Hook_AfterPlacement), -1, 0, true);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = Point16.Zero;
     TileObjectData.newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(0, 0);
     TileObjectData.newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(2);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = new Point16(1, 0);
     TileObjectData.newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(3);
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Origin = Point16.Zero;
     TileObjectData.newAlternate.AnchorWall = true;
     TileObjectData.newAlternate.AnchorBottom = AnchorData.Empty;
     TileObjectData.addAlternate(4);
     TileObjectData.addTile(395);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 2);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style3x3);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.addTile(106);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.addTile(212);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(219);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(220);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(228);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(231);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(243);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(247);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(283);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(300);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(301);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(302);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(303);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(304);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(305);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(306);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(307);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(308);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.addTile(406);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(412);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style1x2);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 18 };
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleWrapLimit = 2;
     TileObjectData.newTile.StyleMultiplier = 2;
     TileObjectData.newTile.CoordinatePaddingFix = new Point16(0, 2);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(16);
     TileObjectData.addTile(15);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 20 };
     TileObjectData.addTile(216);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2);
     TileObjectData.addTile(390);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x2);
     TileObjectData.addTile(338);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style1x1);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.AnchorTop = new AnchorData(AnchorType.EmptyTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.CoordinateHeights = new int[] { 26 };
     TileObjectData.newTile.CoordinateWidth = 24;
     TileObjectData.newTile.DrawYOffset = -8;
     TileObjectData.newTile.RandomStyleRange = 6;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addTile(81);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.CoordinateHeights = new int[] { 18 };
     TileObjectData.newTile.CoordinatePadding = 0;
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(135);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.RandomStyleRange = 2;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(141);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(144);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.DrawYOffset = 2;
     TileObjectData.addTile(210);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.addTile(239);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.RandomStyleRange = 7;
     TileObjectData.addTile(36);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
     TileObjectData.newTile.RandomStyleRange = 3;
     TileObjectData.newTile.StyleMultiplier = 3;
     TileObjectData.newTile.StyleWrapLimit = 3;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.CoordinateWidth = 20;
     TileObjectData.newTile.DrawYOffset = -2;
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.addTile(324);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.FlattenAnchors = true;
     TileObjectData.addBaseTile(out TileObjectData.StyleSwitch);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleSwitch);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleSwitch);
     TileObjectData.newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, TileObjectData.newTile.Height, 0);
     TileObjectData.newAlternate.AnchorAlternateTiles = new int[] { 124 };
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleSwitch);
     TileObjectData.newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, TileObjectData.newTile.Height, 0);
     TileObjectData.newAlternate.AnchorAlternateTiles = new int[] { 124 };
     TileObjectData.addAlternate(2);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleSwitch);
     TileObjectData.newAlternate.AnchorWall = true;
     TileObjectData.addAlternate(3);
     TileObjectData.addTile(136);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = new Point16(0, 0);
     TileObjectData.newTile.FlattenAnchors = true;
     TileObjectData.newTile.UsesCustomCanPlace = false;
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.DrawStepDown = 2;
     TileObjectData.newTile.CoordinateWidth = 20;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.StyleMultiplier = 6;
     TileObjectData.newTile.StyleWrapLimit = 6;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.WaterDeath = true;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.StyleTorch);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleTorch);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, TileObjectData.newTile.Width, 0);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleTorch);
     TileObjectData.newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, TileObjectData.newTile.Height, 0);
     TileObjectData.newAlternate.AnchorAlternateTiles = new int[] { 124 };
     TileObjectData.addAlternate(1);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleTorch);
     TileObjectData.newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, TileObjectData.newTile.Height, 0);
     TileObjectData.newAlternate.AnchorAlternateTiles = new int[] { 124 };
     TileObjectData.addAlternate(2);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.StyleTorch);
     TileObjectData.newAlternate.AnchorWall = true;
     TileObjectData.addAlternate(0);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.WaterDeath = false;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(8);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.newTile);
     TileObjectData.newSubTile.LinkedAlternates = true;
     TileObjectData.newSubTile.WaterDeath = false;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(11);
     TileObjectData.addTile(4);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 1;
     TileObjectData.newTile.Origin = Point16.Zero;
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 20 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.DrawYOffset = -1;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.AlternateTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.LavaPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.addBaseTile(out TileObjectData.StyleAlch);
     TileObjectData.newTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newTile.AnchorValidTiles = new int[] { 2, 109 };
     TileObjectData.newTile.AnchorAlternateTiles = new int[] { 78 };
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 60 };
     TileObjectData.newSubTile.AnchorAlternateTiles = new int[] { 78 };
     TileObjectData.addSubTile(1);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 0, 59 };
     TileObjectData.newSubTile.AnchorAlternateTiles = new int[] { 78 };
     TileObjectData.addSubTile(2);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 199, 203, 25, 23 };
     TileObjectData.newSubTile.AnchorAlternateTiles = new int[] { 78 };
     TileObjectData.addSubTile(3);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 53, 116 };
     TileObjectData.newSubTile.AnchorAlternateTiles = new int[] { 78 };
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(4);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 57 };
     TileObjectData tileObjectDatum1 = TileObjectData.newSubTile;
     numArray = new int[] { 78 };
     tileObjectDatum1.AnchorAlternateTiles = numArray;
     TileObjectData.newSubTile.LavaPlacement = LiquidPlacement.Allowed;
     TileObjectData.newSubTile.LavaDeath = false;
     TileObjectData.addSubTile(5);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleAlch);
     TileObjectData.newSubTile.AnchorValidTiles = new int[] { 147, 161, 163, 164, 200 };
     TileObjectData tileObjectDatum2 = TileObjectData.newSubTile;
     numArray = new int[] { 78 };
     tileObjectDatum2.AnchorAlternateTiles = numArray;
     TileObjectData.newSubTile.WaterPlacement = LiquidPlacement.Allowed;
     TileObjectData.addSubTile(6);
     TileObjectData.addTile(82);
     TileObjectData.newTile.FullCopyFrom(82);
     TileObjectData.addTile(83);
     TileObjectData.newTile.FullCopyFrom(83);
     TileObjectData.addTile(84);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.AnchorWall = true;
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addBaseTile(out TileObjectData.Style3x3Wall);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.StyleWrapLimit = 36;
     TileObjectData.addTile(240);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.Direction = TileObjectDirection.PlaceLeft;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.LavaDeath = false;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.Direction = TileObjectDirection.PlaceRight;
     TileObjectData.addAlternate(1);
     TileObjectData.addTile(334);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.addTile(245);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.Width = 3;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(1, 0);
     TileObjectData tileObjectDatum3 = TileObjectData.newTile;
     numArray = new int[] { 16, 16 };
     tileObjectDatum3.CoordinateHeights = numArray;
     TileObjectData.addTile(246);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.Width = 4;
     TileObjectData.newTile.Height = 3;
     TileObjectData.newTile.Origin = new Point16(1, 1);
     TileObjectData.newTile.RandomStyleRange = 9;
     TileObjectData.addTile(241);
     TileObjectData.newTile.CopyFrom(TileObjectData.Style3x3Wall);
     TileObjectData.newTile.Width = 6;
     TileObjectData.newTile.Height = 4;
     TileObjectData.newTile.Origin = new Point16(2, 2);
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 16 };
     TileObjectData.newTile.StyleWrapLimit = 27;
     TileObjectData.addTile(242);
     TileObjectData.newTile.Width = 2;
     TileObjectData.newTile.Height = 4;
     TileObjectData.newTile.Origin = new Point16(0, 3);
     TileObjectData.newTile.AnchorWall = true;
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData.newTile.CoordinateHeights = new int[] { 16, 16, 16, 18 };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData tileObjectDatum4 = TileObjectData.newTile;
     numArray = new int[1];
     tileObjectDatum4.AnchorValidWalls = numArray;
     TileObjectData tileObjectDatum5 = TileObjectData.newTile;
     numArray = new int[] { 2, 109 };
     tileObjectDatum5.AnchorValidTiles = numArray;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.RandomStyleRange = 3;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.addTile(27);
     TileObjectData.newTile.Width = 1;
     TileObjectData.newTile.Height = 2;
     TileObjectData.newTile.Origin = new Point16(0, 1);
     TileObjectData.newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
     TileObjectData.newTile.UsesCustomCanPlace = true;
     TileObjectData tileObjectDatum6 = TileObjectData.newTile;
     numArray = new int[] { 16, 18 };
     tileObjectDatum6.CoordinateHeights = numArray;
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData tileObjectDatum7 = TileObjectData.newTile;
     numArray = new int[] { 2 };
     tileObjectDatum7.AnchorValidTiles = numArray;
     TileObjectData.newTile.StyleHorizontal = true;
     TileObjectData.newTile.DrawFlipHorizontal = true;
     TileObjectData.newTile.WaterPlacement = LiquidPlacement.NotAllowed;
     TileObjectData.newTile.LavaDeath = true;
     TileObjectData.newTile.RandomStyleRange = 3;
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum8 = TileObjectData.newAlternate;
     numArray = new int[] { 147 };
     tileObjectDatum8.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(3);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum9 = TileObjectData.newAlternate;
     numArray = new int[] { 60 };
     tileObjectDatum9.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(6);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum10 = TileObjectData.newAlternate;
     numArray = new int[] { 23 };
     tileObjectDatum10.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(9);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum11 = TileObjectData.newAlternate;
     numArray = new int[] { 199 };
     tileObjectDatum11.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(12);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum12 = TileObjectData.newAlternate;
     numArray = new int[] { 109 };
     tileObjectDatum12.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(15);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum13 = TileObjectData.newAlternate;
     numArray = new int[] { 53 };
     tileObjectDatum13.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(18);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum14 = TileObjectData.newAlternate;
     numArray = new int[] { 116 };
     tileObjectDatum14.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(21);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum15 = TileObjectData.newAlternate;
     numArray = new int[] { 234 };
     tileObjectDatum15.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(24);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData tileObjectDatum16 = TileObjectData.newAlternate;
     numArray = new int[] { 112 };
     tileObjectDatum16.AnchorValidTiles = numArray;
     TileObjectData.addAlternate(27);
     TileObjectData.addTile(20);
     TileObjectData.readOnlyData = true;
 }
Beispiel #22
0
 private static void addSubTile(int style)
 {
     List<TileObjectData> subTiles;
     TileObjectData.newSubTile.Calculate();
     if (TileObjectData.newTile._hasOwnSubTiles)
     {
         subTiles = TileObjectData.newTile.SubTiles;
     }
     else
     {
         subTiles = new List<TileObjectData>(style + 1);
         TileObjectData.newTile.SubTiles = subTiles;
     }
     if (subTiles.Count <= style)
     {
         for (int i = subTiles.Count; i <= style; i++)
         {
             subTiles.Add(null);
         }
     }
     TileObjectData.newSubTile._parent = TileObjectData.newTile;
     subTiles[style] = TileObjectData.newSubTile;
     TileObjectData.newSubTile = new TileObjectData(TileObjectData._baseObject);
 }
Beispiel #23
0
 private static void addBaseTile(out TileObjectData baseTile)
 {
     TileObjectData.newTile.Calculate();
     baseTile = TileObjectData.newTile;
     baseTile._parent = TileObjectData._baseObject;
     TileObjectData.newTile = new TileObjectData(TileObjectData._baseObject);
 }
Beispiel #24
0
 private static void addAlternate(int baseStyle)
 {
     TileObjectData.newAlternate.Calculate();
     if (!TileObjectData.newTile._hasOwnAlternates)
     {
         TileObjectData.newTile.Alternates = new List<TileObjectData>();
     }
     TileObjectData.newAlternate.Style = baseStyle;
     TileObjectData.newAlternate._parent = TileObjectData.newTile;
     TileObjectData.newTile.Alternates.Add(TileObjectData.newAlternate);
     TileObjectData.newAlternate = new TileObjectData(TileObjectData._baseObject);
 }
Beispiel #25
0
 public void FullCopyFrom(TileObjectData copy)
 {
     if (copy == null)
     {
         return;
     }
     this._usesCustomCanPlace = copy._usesCustomCanPlace;
     this._alternates = copy._alternates;
     this._anchor = copy._anchor;
     this._anchorTiles = copy._anchorTiles;
     this._tileObjectBase = copy._tileObjectBase;
     this._liquidDeath = copy._liquidDeath;
     this._liquidPlacement = copy._liquidPlacement;
     this._placementHooks = copy._placementHooks;
     this._tileObjectDraw = copy._tileObjectDraw;
     this._tileObjectStyle = copy._tileObjectStyle;
     this._tileObjectCoords = copy._tileObjectCoords;
     this._subTiles = new TileObjectSubTilesModule(copy._subTiles, null);
     this._hasOwnSubTiles = true;
 }
Beispiel #26
0
 public void CopyFrom(TileObjectData copy)
 {
     if (copy == null)
     {
         return;
     }
     this._usesCustomCanPlace = copy._usesCustomCanPlace;
     this._alternates = copy._alternates;
     this._anchor = copy._anchor;
     this._anchorTiles = copy._anchorTiles;
     this._tileObjectBase = copy._tileObjectBase;
     this._liquidDeath = copy._liquidDeath;
     this._liquidPlacement = copy._liquidPlacement;
     this._placementHooks = copy._placementHooks;
     this._tileObjectDraw = copy._tileObjectDraw;
     this._tileObjectStyle = copy._tileObjectStyle;
     this._tileObjectCoords = copy._tileObjectCoords;
 }