// 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;
    using Eco.World.Color;

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloorFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloorBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FullWallFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFullWallBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FlatRoofFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFlatRoofBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofCubeFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofCubeBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(CubeFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberCubeBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WindowWallFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberWindowWallBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(CladWallFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberCladWallBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WallFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberWallBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WallTrimFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberWallTrimBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(ColumnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberColumnBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(ThinColumnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberThinColumnBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WindowFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberWindowBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(WindowGrillesFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberWindowGrillesBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(DoubleWindowFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberDoubleWindowBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FenceFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFenceBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(SideFenceFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberSideFenceBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderPeakSetFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(PeakSetFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofPeakSetFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofPeakSetBlock :
        Block, IRepresentsItem, IWaterLoggedBlock, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(CompositeJoshuaLumberItem); } }
    }





    [RotatedVariants(typeof(CompositeJoshuaLumberRampABlock), typeof(CompositeJoshuaLumberRampA90Block), typeof(CompositeJoshuaLumberRampA180Block), typeof(CompositeJoshuaLumberRampA270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampAFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampABlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampA270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRampBBlock), typeof(CompositeJoshuaLumberRampB90Block), typeof(CompositeJoshuaLumberRampB180Block), typeof(CompositeJoshuaLumberRampB270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampBFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampBBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampB270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRampCBlock), typeof(CompositeJoshuaLumberRampC90Block), typeof(CompositeJoshuaLumberRampC180Block), typeof(CompositeJoshuaLumberRampC270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampCFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampCBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampC270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRampDBlock), typeof(CompositeJoshuaLumberRampD90Block), typeof(CompositeJoshuaLumberRampD180Block), typeof(CompositeJoshuaLumberRampD270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RampDFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampDBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRampD270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberLadderBlock), typeof(CompositeJoshuaLumberLadder90Block), typeof(CompositeJoshuaLumberLadder180Block), typeof(CompositeJoshuaLumberLadder270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(LadderFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberLadderBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberLadder270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberStairsBlock), typeof(CompositeJoshuaLumberStairs90Block), typeof(CompositeJoshuaLumberStairs180Block), typeof(CompositeJoshuaLumberStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairsBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairs270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderStairsBlock), typeof(CompositeJoshuaLumberUnderStairs90Block), typeof(CompositeJoshuaLumberUnderStairs180Block), typeof(CompositeJoshuaLumberUnderStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderStairsFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderStairsBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderStairs270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberFloatStairsBlock), typeof(CompositeJoshuaLumberFloatStairs90Block), typeof(CompositeJoshuaLumberFloatStairs180Block), typeof(CompositeJoshuaLumberFloatStairs270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairsBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairs270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberBraceBlock), typeof(CompositeJoshuaLumberBrace90Block), typeof(CompositeJoshuaLumberBrace180Block), typeof(CompositeJoshuaLumberBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BraceFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBraceBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBrace270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderBraceBlock), typeof(CompositeJoshuaLumberUnderBrace90Block), typeof(CompositeJoshuaLumberUnderBrace180Block), typeof(CompositeJoshuaLumberUnderBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderBraceFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderBraceBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderBrace270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberSideBraceBlock), typeof(CompositeJoshuaLumberSideBrace90Block), typeof(CompositeJoshuaLumberSideBrace180Block), typeof(CompositeJoshuaLumberSideBrace270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(SideBraceFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberSideBraceBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberSideBrace270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberBasicSlopeSideBlock), typeof(CompositeJoshuaLumberBasicSlopeSide90Block), typeof(CompositeJoshuaLumberBasicSlopeSide180Block), typeof(CompositeJoshuaLumberBasicSlopeSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeSideFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeSideBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeSide270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberBasicSlopeCornerBlock), typeof(CompositeJoshuaLumberBasicSlopeCorner90Block), typeof(CompositeJoshuaLumberBasicSlopeCorner180Block), typeof(CompositeJoshuaLumberBasicSlopeCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeCornerFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeCornerBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeCorner270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberBasicSlopeTurnBlock), typeof(CompositeJoshuaLumberBasicSlopeTurn90Block), typeof(CompositeJoshuaLumberBasicSlopeTurn180Block), typeof(CompositeJoshuaLumberBasicSlopeTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopeTurnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeTurnBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopeTurn270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberBasicSlopePointBlock), typeof(CompositeJoshuaLumberBasicSlopePoint90Block), typeof(CompositeJoshuaLumberBasicSlopePoint180Block), typeof(CompositeJoshuaLumberBasicSlopePoint270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(BasicSlopePointFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopePointBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberBasicSlopePoint270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberFloatStairsCornerBlock), typeof(CompositeJoshuaLumberFloatStairsCorner90Block), typeof(CompositeJoshuaLumberFloatStairsCorner180Block), typeof(CompositeJoshuaLumberFloatStairsCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsCornerFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairsCornerBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairsCorner270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberFloatStairsTurnBlock), typeof(CompositeJoshuaLumberFloatStairsTurn90Block), typeof(CompositeJoshuaLumberFloatStairsTurn180Block), typeof(CompositeJoshuaLumberFloatStairsTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(FloatStairsTurnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairsTurnBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberFloatStairsTurn270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberStairsCornerBlock), typeof(CompositeJoshuaLumberStairsCorner90Block), typeof(CompositeJoshuaLumberStairsCorner180Block), typeof(CompositeJoshuaLumberStairsCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsCornerFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairsCornerBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairsCorner270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberStairsTurnBlock), typeof(CompositeJoshuaLumberStairsTurn90Block), typeof(CompositeJoshuaLumberStairsTurn180Block), typeof(CompositeJoshuaLumberStairsTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(StairsTurnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairsTurnBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberStairsTurn270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderSlopeSideBlock), typeof(CompositeJoshuaLumberUnderSlopeSide90Block), typeof(CompositeJoshuaLumberUnderSlopeSide180Block), typeof(CompositeJoshuaLumberUnderSlopeSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeSideFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeSideBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeSide270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderSlopeCornerBlock), typeof(CompositeJoshuaLumberUnderSlopeCorner90Block), typeof(CompositeJoshuaLumberUnderSlopeCorner180Block), typeof(CompositeJoshuaLumberUnderSlopeCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeCornerFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeCornerBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeCorner270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderSlopeTurnBlock), typeof(CompositeJoshuaLumberUnderSlopeTurn90Block), typeof(CompositeJoshuaLumberUnderSlopeTurn180Block), typeof(CompositeJoshuaLumberUnderSlopeTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopeTurnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeTurnBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopeTurn270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderSlopePeakBlock), typeof(CompositeJoshuaLumberUnderSlopePeak90Block), typeof(CompositeJoshuaLumberUnderSlopePeak180Block), typeof(CompositeJoshuaLumberUnderSlopePeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderSlopePeakFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopePeakBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderSlopePeak270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRoofSideBlock), typeof(CompositeJoshuaLumberRoofSide90Block), typeof(CompositeJoshuaLumberRoofSide180Block), typeof(CompositeJoshuaLumberRoofSide270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofSideFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofSideBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofSide270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRoofTurnBlock), typeof(CompositeJoshuaLumberRoofTurn90Block), typeof(CompositeJoshuaLumberRoofTurn180Block), typeof(CompositeJoshuaLumberRoofTurn270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofTurnFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofTurnBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofTurn270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRoofCornerBlock), typeof(CompositeJoshuaLumberRoofCorner90Block), typeof(CompositeJoshuaLumberRoofCorner180Block), typeof(CompositeJoshuaLumberRoofCorner270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofCornerFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofCornerBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofCorner270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberRoofPeakBlock), typeof(CompositeJoshuaLumberRoofPeak90Block), typeof(CompositeJoshuaLumberRoofPeak180Block), typeof(CompositeJoshuaLumberRoofPeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(RoofPeakFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofPeakBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberRoofPeak270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(CompositeJoshuaLumberUnderInnerPeakBlock), typeof(CompositeJoshuaLumberUnderInnerPeak90Block), typeof(CompositeJoshuaLumberUnderInnerPeak180Block), typeof(CompositeJoshuaLumberUnderInnerPeak270Block))]
    [Serialized]
    [Wall, Constructed, Solid, BuildRoomMaterialOption]
    [BlockTier(4)]
    [IsForm(typeof(UnderInnerPeakFormType), typeof(CompositeJoshuaLumberItem))]
    [Tag("Constructable")]
    public partial class CompositeJoshuaLumberUnderInnerPeakBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

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

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

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

}