// Copyright (c) Strange Loop Games. All rights reserved.
// See LICENSE file in the project root for full license information.
// <auto-generated from FormsTemplate.tt/>

namespace Eco.Mods.TechTree
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using Eco.Gameplay.Blocks;
    using Eco.Gameplay.Components;
    using Eco.Gameplay.DynamicValues;
    using Eco.Gameplay.Items;
    using Eco.Gameplay.Objects;
    using Eco.Gameplay.Players;
    using Eco.Gameplay.Skills;
    using Eco.Gameplay.Systems.TextLinks;
    using Eco.Shared.Serialization;
    using Eco.Shared.Utils;
    using Eco.World;
    using Eco.World.Water;
    using Eco.World.Blocks;
    using Eco.Gameplay.Pipes;
    using Tag = Eco.Core.Items.TagAttribute;

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloorFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFloorBlock :
        Block, IRepresentsItem
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FullWallFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFullWallBlock :
        Block, IRepresentsItem
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FlatRoofFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFlatRoofBlock :
        Block, IRepresentsItem
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(CubeFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissCubeBlock :
        Block, IRepresentsItem
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofCubeFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofCubeBlock :
        Block, IRepresentsItem
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(ChimneyFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissChimneyBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WallFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissWallBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(ColumnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissColumnBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WindowFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissWindowBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FenceFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFenceBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(DoubleWindowFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissDoubleWindowBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderPeakSetFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(PeakSetFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofPeakSetFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock
    {
        public Type RepresentedItemType { get { return typeof(AshlarGneissItem); } }
    }





    [RotatedVariants(typeof(AshlarGneissRampABlock), typeof(AshlarGneissRampA90Block), typeof(AshlarGneissRampA180Block), typeof(AshlarGneissRampA270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampAFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRampABlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampA90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampA180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampA270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRampBBlock), typeof(AshlarGneissRampB90Block), typeof(AshlarGneissRampB180Block), typeof(AshlarGneissRampB270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampBFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRampBBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampB90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampB180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampB270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRampCBlock), typeof(AshlarGneissRampC90Block), typeof(AshlarGneissRampC180Block), typeof(AshlarGneissRampC270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampCFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRampCBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampC90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampC180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampC270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRampDBlock), typeof(AshlarGneissRampD90Block), typeof(AshlarGneissRampD180Block), typeof(AshlarGneissRampD270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampDFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRampDBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampD90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampD180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRampD270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissLadderBlock), typeof(AshlarGneissLadder90Block), typeof(AshlarGneissLadder180Block), typeof(AshlarGneissLadder270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(LadderFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissLadderBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissLadder90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissLadder180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissLadder270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissStairsBlock), typeof(AshlarGneissStairs90Block), typeof(AshlarGneissStairs180Block), typeof(AshlarGneissStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairs90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairs180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairs270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderStairsBlock), typeof(AshlarGneissUnderStairs90Block), typeof(AshlarGneissUnderStairs180Block), typeof(AshlarGneissUnderStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderStairsFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderStairsBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderStairs90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderStairs180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderStairs270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissFloatStairsBlock), typeof(AshlarGneissFloatStairs90Block), typeof(AshlarGneissFloatStairs180Block), typeof(AshlarGneissFloatStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairs90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairs180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairs270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBraceBlock), typeof(AshlarGneissBrace90Block), typeof(AshlarGneissBrace180Block), typeof(AshlarGneissBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BraceFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBrace90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBrace180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBrace270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderBraceBlock), typeof(AshlarGneissUnderBrace90Block), typeof(AshlarGneissUnderBrace180Block), typeof(AshlarGneissUnderBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderBraceFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBrace90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBrace180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBrace270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissSideBraceBlock), typeof(AshlarGneissSideBrace90Block), typeof(AshlarGneissSideBrace180Block), typeof(AshlarGneissSideBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(SideBraceFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissSideBraceBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissSideBrace90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissSideBrace180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissSideBrace270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBasicSlopeSideBlock), typeof(AshlarGneissBasicSlopeSide90Block), typeof(AshlarGneissBasicSlopeSide180Block), typeof(AshlarGneissBasicSlopeSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeSideFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeSideBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeSide90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeSide180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeSide270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBasicSlopeCornerBlock), typeof(AshlarGneissBasicSlopeCorner90Block), typeof(AshlarGneissBasicSlopeCorner180Block), typeof(AshlarGneissBasicSlopeCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBasicSlopeTurnBlock), typeof(AshlarGneissBasicSlopeTurn90Block), typeof(AshlarGneissBasicSlopeTurn180Block), typeof(AshlarGneissBasicSlopeTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopeTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBasicSlopePointBlock), typeof(AshlarGneissBasicSlopePoint90Block), typeof(AshlarGneissBasicSlopePoint180Block), typeof(AshlarGneissBasicSlopePoint270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopePointFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopePointBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopePoint90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopePoint180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBasicSlopePoint270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissFloatStairsCornerBlock), typeof(AshlarGneissFloatStairsCorner90Block), typeof(AshlarGneissFloatStairsCorner180Block), typeof(AshlarGneissFloatStairsCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissFloatStairsTurnBlock), typeof(AshlarGneissFloatStairsTurn90Block), typeof(AshlarGneissFloatStairsTurn180Block), typeof(AshlarGneissFloatStairsTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissFloatStairsTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissStairsCornerBlock), typeof(AshlarGneissStairsCorner90Block), typeof(AshlarGneissStairsCorner180Block), typeof(AshlarGneissStairsCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissStairsTurnBlock), typeof(AshlarGneissStairsTurn90Block), typeof(AshlarGneissStairsTurn180Block), typeof(AshlarGneissStairsTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissStairsTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderBraceCornerBlock), typeof(AshlarGneissUnderBraceCorner90Block), typeof(AshlarGneissUnderBraceCorner180Block), typeof(AshlarGneissUnderBraceCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderBraceCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBraceCornerBlock), typeof(AshlarGneissBraceCorner90Block), typeof(AshlarGneissBraceCorner180Block), typeof(AshlarGneissBraceCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BraceCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderSlopeSideBlock), typeof(AshlarGneissUnderSlopeSide90Block), typeof(AshlarGneissUnderSlopeSide180Block), typeof(AshlarGneissUnderSlopeSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeSideFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeSideBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeSide90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeSide180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeSide270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderSlopeCornerBlock), typeof(AshlarGneissUnderSlopeCorner90Block), typeof(AshlarGneissUnderSlopeCorner180Block), typeof(AshlarGneissUnderSlopeCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderSlopeTurnBlock), typeof(AshlarGneissUnderSlopeTurn90Block), typeof(AshlarGneissUnderSlopeTurn180Block), typeof(AshlarGneissUnderSlopeTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopeTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderSlopePeakBlock), typeof(AshlarGneissUnderSlopePeak90Block), typeof(AshlarGneissUnderSlopePeak180Block), typeof(AshlarGneissUnderSlopePeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopePeakFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopePeakBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopePeak90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopePeak180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderSlopePeak270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRoofSideBlock), typeof(AshlarGneissRoofSide90Block), typeof(AshlarGneissRoofSide180Block), typeof(AshlarGneissRoofSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofSideFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofSideBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofSide90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofSide180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofSide270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRoofTurnBlock), typeof(AshlarGneissRoofTurn90Block), typeof(AshlarGneissRoofTurn180Block), typeof(AshlarGneissRoofTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRoofCornerBlock), typeof(AshlarGneissRoofCorner90Block), typeof(AshlarGneissRoofCorner180Block), typeof(AshlarGneissRoofCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofCornerFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofCornerBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofCorner90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofCorner180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofCorner270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissRoofPeakBlock), typeof(AshlarGneissRoofPeak90Block), typeof(AshlarGneissRoofPeak180Block), typeof(AshlarGneissRoofPeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofPeakFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofPeakBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofPeak90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofPeak180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissRoofPeak270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderInnerPeakBlock), typeof(AshlarGneissUnderInnerPeak90Block), typeof(AshlarGneissUnderInnerPeak180Block), typeof(AshlarGneissUnderInnerPeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderInnerPeakFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderInnerPeakBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderInnerPeak90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderInnerPeak180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderInnerPeak270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissBraceTurnBlock), typeof(AshlarGneissBraceTurn90Block), typeof(AshlarGneissBraceTurn180Block), typeof(AshlarGneissBraceTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BraceTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissBraceTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissUnderBraceTurnBlock), typeof(AshlarGneissUnderBraceTurn90Block), typeof(AshlarGneissUnderBraceTurn180Block), typeof(AshlarGneissUnderBraceTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderBraceTurnFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceTurnBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceTurn90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceTurn180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissUnderBraceTurn270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissHalfSlopeABlock), typeof(AshlarGneissHalfSlopeA90Block), typeof(AshlarGneissHalfSlopeA180Block), typeof(AshlarGneissHalfSlopeA270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(HalfSlopeAFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeABlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeA90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeA180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeA270Block : Block, IWaterLoggedBlock
    { }
    [RotatedVariants(typeof(AshlarGneissHalfSlopeBBlock), typeof(AshlarGneissHalfSlopeB90Block), typeof(AshlarGneissHalfSlopeB180Block), typeof(AshlarGneissHalfSlopeB270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(HalfSlopeBFormType), typeof(AshlarGneissItem))]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeBBlock : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeB90Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeB180Block : Block, IWaterLoggedBlock
    { }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class AshlarGneissHalfSlopeB270Block : Block, IWaterLoggedBlock
    { }

}