// 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]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [IsForm(typeof(CubeFormType), typeof(StoneRoadItem))]
    [Tag("Constructable")]
    public partial class StoneRoadCubeBlock :
        Block, IRepresentsItem, IColoredBlock
    {
        public Type RepresentedItemType { get { return typeof(StoneRoadItem); } }
    }






    [RotatedVariants(typeof(StoneRoadRampABlock), typeof(StoneRoadRampA90Block), typeof(StoneRoadRampA180Block), typeof(StoneRoadRampA270Block))]
    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [IsForm(typeof(RampAFormType), typeof(StoneRoadItem))]
    [Tag("Constructable")]
    public partial class StoneRoadRampABlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampA90Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampA180Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampA270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(StoneRoadRampBBlock), typeof(StoneRoadRampB90Block), typeof(StoneRoadRampB180Block), typeof(StoneRoadRampB270Block))]
    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [IsForm(typeof(RampBFormType), typeof(StoneRoadItem))]
    [Tag("Constructable")]
    public partial class StoneRoadRampBBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampB90Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampB180Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampB270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(StoneRoadRampCBlock), typeof(StoneRoadRampC90Block), typeof(StoneRoadRampC180Block), typeof(StoneRoadRampC270Block))]
    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [IsForm(typeof(RampCFormType), typeof(StoneRoadItem))]
    [Tag("Constructable")]
    public partial class StoneRoadRampCBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampC90Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampC180Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampC270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }
    [RotatedVariants(typeof(StoneRoadRampDBlock), typeof(StoneRoadRampD90Block), typeof(StoneRoadRampD180Block), typeof(StoneRoadRampD270Block))]
    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [IsForm(typeof(RampDFormType), typeof(StoneRoadItem))]
    [Tag("Constructable")]
    public partial class StoneRoadRampDBlock : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampD90Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampD180Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

    [Serialized]
    [MakesRoads]
    [Road(1.1f)]
    [Wall, Constructed, Solid]
    [Tag("Constructable")]
    public partial class StoneRoadRampD270Block : Block, IWaterLoggedBlock, IColoredBlock
    { }

}