namespace AssortedAdditions.Helpers
{
	/// <summary>
	/// Contains different IDs for tiles which share a spritesheet. Use example: TileStyleID.category.name
	/// </summary>
	public static class TileStyleID
	{
		/// <summary>
		/// The differents styles for torches in TileID.Torches
		/// </summary>
		public static class Torches
		{
			public const byte Torch = 0;
			public const byte BlueTorch = 1;
			public const byte RedTorch = 2;
			public const byte GreenTorch = 3;
			public const byte PurpleTorch = 4;
			public const byte WhiteTorch = 5;
			public const byte YellowTorch = 6;
			public const byte DemonTorch = 7;
			public const byte CursedTorch = 8;
			public const byte IceTorch = 9;
			public const byte OrangeTorch = 10;
			public const byte IchorTorch = 11;
			public const byte UltrabrightTorch = 12;
			public const byte BoneTorch = 13;
			public const byte RainbowTorch = 14;
			public const byte PinkTorch = 15;
			public const byte DesertTorch = 16;
			public const byte CoralTorch = 17;
			public const byte CorruptTorch = 18;
			public const byte CrimsonTorch = 19;
			public const byte HallowedTorch = 20;
			public const byte JungleTorch = 21;
			public const byte MushroomTorch = 22;
			public const byte AetherTorch = 23;
		}

		/// <summary>
		/// The differents styles for platforms in TileID.Platforms
		/// </summary>
		public static class Platforms
		{
			public const byte WoodPlatform = 0;
			public const byte EbonwoodPlatform = 1;
			public const byte RichMahoganyPlatform = 2;
			public const byte PearlwoodPlatform = 3;
			public const byte BonePlatform = 4;
			public const byte ShadewoodPlatform = 5;
			public const byte BlueBrickPlatform = 6;
			public const byte PinkBrickPlatform = 7;
			public const byte GreenBrickPlatform = 8;
			
			public const byte MetalShelf = 9;
			public const byte BrassShelf = 10;
			public const byte WoodShelf = 11;
			public const byte DungeonShelf = 12;
			
			public const byte ObsidianPlatform = 13;
			public const byte GlassPlatform = 14;
			public const byte PumpkinPlatform = 15;
			public const byte SpookyWoodPlatform = 16;
			public const byte PalmWoodPlatform = 17;
			public const byte MushroomPlatform = 18;
			public const byte BorealWoodPlatform = 19;
			public const byte SlimePlatform = 20;
			public const byte SteampunkPlatform = 21;
			public const byte SkywarePlatform = 22;
			public const byte LivingWoodPlatform = 23;
			public const byte HoneyPlatform = 24;
			public const byte CactusPlatform = 25;
			public const byte MartianPlatform = 26;
			public const byte MeteoritePlatform = 27;
			public const byte GranitePlatform = 28;
			public const byte MarblePlatform = 29;
			public const byte CrystalPlatform =	30;
			public const byte GoldenPlatform = 31;
			public const byte DynastyWoodPlatform = 32;
			public const byte LihzahrdPlatform = 33;
			public const byte FleshPlatform = 34;
			public const byte FrozenPlatform = 35;
			public const byte SpiderPlatform = 36;
			public const byte LesionPlatform = 37;
			public const byte SolarPlatform = 38;
			public const byte VortexPlatform = 39;
			public const byte NevubulaPlatform = 40;
			public const byte StardustPlatform = 41;
			public const byte SandstonePlatform = 42;
			public const byte StonePlatform = 43;
			public const byte BambooPlatform = 44;

		}

		/// <summary>
		/// The differents styles for chests in TileID.Containers
		/// </summary>
		public static class Containers
		{
			public const byte Chest = 0;
			public const byte GoldenChest = 1;
			public const byte LockedGoldenChest = 2;
			public const byte ShadowChest = 3;
			public const byte LockedShadowChest = 4;
			public const byte Barrel = 5;
			public const byte TrashCan = 6;
			public const byte EbonWoodChest = 7;
			public const byte RichMahoganyChest = 8;
			public const byte PearlwoodChest = 9;
			public const byte IvyChest = 10;
			public const byte FrozenChest = 11;
			public const byte LivingWoodChest = 12;
			public const byte SkywareChest = 13;
			public const byte ShadewoodChest = 14;
			public const byte WebCoveredChest = 15;
			public const byte LihzahrdChest = 16;
			public const byte WaterChest = 17;
			public const byte JungleChest = 18;
			public const byte CorruptionChest = 19;
			public const byte CrimsonChest = 20;
			public const byte HallowedChest = 21;
			public const byte IceChest = 22;
			public const byte LockedJungleChest = 23;
			public const byte LockedCorruptChest = 24;
			public const byte LockedCrimsonChest = 25;
			public const byte LockedHallowedChest = 26;
			public const byte LockedIceChest = 27;
			public const byte DynastyChest = 28;
			public const byte HoneyChest = 29;
			public const byte SteampunkChest = 30;
			public const byte PalmWoodChest = 31;
			public const byte MushroomChest = 32;
			public const byte BorealWoodChest = 33;
			public const byte SlimeChest = 34;
			public const byte GreenDungeonChest = 35;
			public const byte LockedGreenDungeonChest = 36;
			public const byte PinkDungeonChest = 37;
			public const byte LockedPinkDungeonChest = 38;
			public const byte BlueDungeonChest = 39;
			public const byte LockedBlueDungeonChest = 40;
			public const byte BoneChest = 41;
			public const byte CactusChest = 42;
			public const byte FleshChest = 43;
			public const byte ObsidianChest = 44;
			public const byte PumpkinChest = 45;
			public const byte SpookyChest = 46;
			public const byte GlassChest = 47;
			public const byte MartianChest = 48;
			public const byte MeteoriteChest = 49;
			public const byte GraniteChest = 50;
			public const byte MarbleChest = 51;
			public const byte CrystalChest = 52;
			public const byte GoldenPirateChest = 53;
		}

		/// <summary>
		/// The differents styles for chests in TileID.Containers2
		/// </summary>
		public static class Containers2
		{
			public const byte Fake_newchest1 = 0; // *
			public const byte Fake_newChest2 = 1; // These two are unused in vanilla
			public const byte SpiderChest = 2;
			public const byte LesionChest = 3;
			public const byte DeadMansChest = 4;
			public const byte SolarChest = 5;
			public const byte VortexChest = 6;
			public const byte NebulaChest = 7;
			public const byte StardustChest = 8;
			public const byte GolfChest = 9;
			public const byte SandstoneChest = 10;
			public const byte BambooChest = 11;
			public const byte DesertChest = 12;
			public const byte LockedDesertChest = 13;
		}

		/// <summary>
		/// The differents styles for statues in TileID.Statues
		/// </summary>
		public static class Statues
		{
			public const byte ArmorStatue = 0;
			public const byte AngelStatue = 1;
			public const byte StarStatue = 2;
			public const byte SwordStatue = 3;
			public const byte SlimeStatue = 4;
			public const byte GoblinStatue = 5;
			public const byte ShieldStatue = 6;
			public const byte BatStatue = 7;
			public const byte FishStatue = 8;
			public const byte BunnyStatue = 9;
			public const byte SkeletonStatue = 10;
			public const byte ReaperStatue = 11;
			public const byte WomanStatue = 12;
			public const byte ImpStatue = 13;
			public const byte GargoyleStatue = 14;
			public const byte GloomStatue = 15;
			public const byte HornetStatue = 16;
			public const byte BombStatue = 17;
			public const byte CrabStatue = 18;
			public const byte HammerStatue = 19;
			public const byte PotionStatue = 20;
			public const byte SpearStatue = 21;
			public const byte CrossStatue = 22;
			public const byte JellyfishStatue = 23;
			public const byte BowStatue = 24;
			public const byte BoomerangStatue = 25;
			public const byte BootStatue = 26;
			public const byte ChestStatue = 27;
			public const byte BirdStatue = 28;
			public const byte AxeStatue = 29;
			public const byte CorruptStatue = 30;
			public const byte TreeStatue = 31;
			public const byte AnvilStatue = 32;
			public const byte PickaxeStatue = 33;
			public const byte MushroomStatue = 34;
			public const byte EyeballStatue = 35;
			public const byte PillarStatue = 36;
			public const byte HeartStatue = 37;
			public const byte PotStatue = 38;
			public const byte SunflowerStatue = 39;
			public const byte KingStatue = 40;
			public const byte QueenStatue = 41;
			public const byte PiranhaStatue = 42;
			public const byte LihzahrdStatue = 43;
			public const byte LihzahrdWatcherStatue = 44;
			public const byte LihzahrdGuardianStatue = 45;
			
			public const byte BlueDungeonVase = 46; // Yes, these are under "Statues"...
			public const byte GreenDungeonVase = 47;
			public const byte PinkDungeonVase = 48;
			public const byte ObsidianVase = 49;

			public const byte SharkStatue = 50;
			public const byte SquirrelStatue = 51;
			public const byte ButterflyStatue = 52;
			public const byte WormStatue = 53;
			public const byte FireflyStatue = 54;
			public const byte ScorpionStatue = 55;
			public const byte SnailStatue = 56;
			public const byte GrasshopperStatue = 57;
			public const byte MouseStatue = 58;
			public const byte DuckStatue = 59;
			public const byte PenguinStatue = 60;
			public const byte FrogStatue = 61;
			public const byte BuggyStatue = 62;
			public const byte WallCreeperStatue = 63;
			public const byte UnicornStatue = 64;
			public const byte DripplerStatue = 65;
			public const byte WraithStatue = 66;
			public const byte BoneSkeletonStatue = 67;
			public const byte UndeadVikingStatue = 68;
			public const byte MedusaStatue = 69;
			public const byte HarpyStatue = 70;
			public const byte PigronStatue = 71;
			public const byte HopliteStatue = 72;
			public const byte GraniteGolemStatue = 73;
			public const byte ArmedZombieStatue = 74;
			public const byte BloodZombieStatue = 75;
			public const byte OwlStatue = 76;
			public const byte SeagullStatue = 77;
			public const byte DragonflyStatue = 78;
			public const byte TurtleStatue = 79;
			public const byte MacawStatue = 80;
			public const byte ToucanStatue = 81;
			public const byte CockatielStatue = 82;
		}
	}
}
