Esempio n. 1
0
        public override void SetDefaults()
        {
            Main.tileSolid[Type]          = false;
            Main.tileNoAttach[Type]       = true;
            Main.tileFrameImportant[Type] = true;
            Main.tileNoFail[Type]         = true;
            dustType = mod.DustType(dustString);
            drop     = ModContent.ItemType <GlowingCrystalItem>();
            AddMapEntry(new Color(148, 134, 48));

            TileObjectData.newTile.CopyFrom(TileObjectData.Style1x1);
            TileObjectData.newTile.StyleHorizontal = true;

            /*TileObjectData.newTile.Height = 1;
             * TileObjectData.newTile.CoordinateHeights = new int[] {16};
             * TileObjectData.newTile.Width = 1;
             * TileObjectData.newTile.CoordinateWidth = 16;
             * TileObjectData.newTile.CoordinatePadding = 2;*/
            TileObjectData.newTile.AnchorTop        = AnchorData.Empty;
            TileObjectData.newTile.AnchorRight      = AnchorData.Empty;
            TileObjectData.newTile.AnchorLeft       = AnchorData.Empty;
            TileObjectData.newTile.AnchorBottom     = new AnchorData(AnchorType.SolidWithTop | AnchorType.SolidTile | AnchorType.Table, TileObjectData.newTile.Width, 0);
            TileObjectData.newTile.StyleWrapLimit   = 18;
            TileObjectData.newTile.RandomStyleRange = 17;
            TileObjectData.newAlternate.CopyFrom(TileObjectData.Style1x1);
            TileObjectData.newAlternate.StyleHorizontal  = true;
            TileObjectData.newAlternate.AnchorTop        = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorRight      = new AnchorData(AnchorType.SolidSide | AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
            TileObjectData.newAlternate.AnchorLeft       = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorBottom     = AnchorData.Empty;
            TileObjectData.newAlternate.StyleWrapLimit   = 18;
            TileObjectData.newAlternate.RandomStyleRange = 17;
            TileObjectData.addAlternate(36);
            TileObjectData.newAlternate.CopyFrom(TileObjectData.Style1x1);
            TileObjectData.newAlternate.StyleHorizontal  = true;
            TileObjectData.newAlternate.AnchorTop        = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorRight      = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorLeft       = new AnchorData(AnchorType.SolidSide | AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
            TileObjectData.newAlternate.AnchorBottom     = AnchorData.Empty;
            TileObjectData.newAlternate.StyleWrapLimit   = 18;
            TileObjectData.newAlternate.RandomStyleRange = 17;
            TileObjectData.addAlternate(54);
            TileObjectData.newAlternate.CopyFrom(TileObjectData.Style1x1);
            TileObjectData.newAlternate.StyleHorizontal  = true;
            TileObjectData.newAlternate.AnchorTop        = new AnchorData(AnchorType.SolidBottom | AnchorType.SolidTile, TileObjectData.newTile.Width, 0);
            TileObjectData.newAlternate.AnchorRight      = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorLeft       = AnchorData.Empty;
            TileObjectData.newAlternate.AnchorBottom     = AnchorData.Empty;
            TileObjectData.newAlternate.StyleWrapLimit   = 18;
            TileObjectData.newAlternate.RandomStyleRange = 17;
            TileObjectData.addAlternate(18);
            TileObjectData.addTile(Type);


            //TileObjectData.newTile.FullCopyFrom(TileID.Crystals);
        }
Esempio n. 2
0
 public TileObjectData(TileObjectData copyFrom = null)
 {
     this._parent = null;
     this._linkedAlternates = false;
     if (copyFrom == null)
     {
         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;
         return;
     }
     this.CopyFrom(copyFrom);
 }
Esempio n. 3
0
 private static void addTile(int tileType)
 {
     TileObjectData.newTile.Calculate();
     TileObjectData._data[tileType] = TileObjectData.newTile;
     TileObjectData.newTile = new TileObjectData(TileObjectData._baseObject);
 }
Esempio n. 4
0
 private static void addSubTile(int style)
 {
     TileObjectData.newSubTile.Calculate();
     List<TileObjectData> list;
     if (!TileObjectData.newTile._hasOwnSubTiles)
     {
         list = new List<TileObjectData>(style + 1);
         TileObjectData.newTile.SubTiles = list;
     }
     else
     {
         list = TileObjectData.newTile.SubTiles;
     }
     if (list.Count <= style)
     {
         for (int i = list.Count; i <= style; i++)
         {
             list.Add(null);
         }
     }
     TileObjectData.newSubTile._parent = TileObjectData.newTile;
     list[style] = TileObjectData.newSubTile;
     TileObjectData.newSubTile = new TileObjectData(TileObjectData._baseObject);
 }
Esempio n. 5
0
 private static void addBaseTile(out TileObjectData baseTile)
 {
     TileObjectData.newTile.Calculate();
     baseTile = TileObjectData.newTile;
     baseTile._parent = TileObjectData._baseObject;
     TileObjectData.newTile = new TileObjectData(TileObjectData._baseObject);
 }
Esempio n. 6
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);
 }
Esempio n. 7
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;
 }
Esempio n. 8
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;
 }
Esempio n. 9
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.newTile.CoordinateHeights = new int[]
     {
         16
     };
     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 arg_2B6_0 = TileObjectData.newSubTile;
     int[] anchorValidWalls = new int[1];
     arg_2B6_0.AnchorValidWalls = anchorValidWalls;
     TileObjectData.addSubTile(3);
     TileObjectData.newSubTile.CopyFrom(TileObjectData.StyleDye);
     TileObjectData arg_2DF_0 = TileObjectData.newSubTile;
     int[] anchorValidWalls2 = new int[1];
     arg_2DF_0.AnchorValidWalls = anchorValidWalls2;
     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.newSubTile.AnchorAlternateTiles = new int[]
     {
         78
     };
     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.newSubTile.AnchorAlternateTiles = new int[]
     {
         78
     };
     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.newTile.CoordinateHeights = new int[]
     {
         16,
         16
     };
     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 arg_3F47_0 = TileObjectData.newTile;
     int[] anchorValidWalls3 = new int[1];
     arg_3F47_0.AnchorValidWalls = anchorValidWalls3;
     TileObjectData.newTile.AnchorValidTiles = new int[]
     {
         2,
         109
     };
     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.newTile.CoordinateHeights = new int[]
     {
         16,
         18
     };
     TileObjectData.newTile.CoordinateWidth = 16;
     TileObjectData.newTile.CoordinatePadding = 2;
     TileObjectData.newTile.AnchorValidTiles = new int[]
     {
         2
     };
     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.newAlternate.AnchorValidTiles = new int[]
     {
         147
     };
     TileObjectData.addAlternate(3);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         60
     };
     TileObjectData.addAlternate(6);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         23
     };
     TileObjectData.addAlternate(9);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         199
     };
     TileObjectData.addAlternate(12);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         109
     };
     TileObjectData.addAlternate(15);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         53
     };
     TileObjectData.addAlternate(18);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         116
     };
     TileObjectData.addAlternate(21);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         234
     };
     TileObjectData.addAlternate(24);
     TileObjectData.newAlternate.CopyFrom(TileObjectData.newTile);
     TileObjectData.newAlternate.AnchorValidTiles = new int[]
     {
         112
     };
     TileObjectData.addAlternate(27);
     TileObjectData.addTile(20);
     TileObjectData.readOnlyData = true;
 }