using GadgetCore.API;
using GadgetCore.API.ConfigMenu;
using ScrapYard.API;
using UnityEngine;

namespace MoreLights
{
  [Gadget("MoreLights", LoadAfter: new string[] { "ScrapYard" }, Dependencies: new string[] { "ScrapYard" })]
  public class MoreLights : Gadget<MoreLights>
  {
    public const string MOD_VERSION = "1.3"; // Set this to the version of your mod.
    public const string CONFIG_VERSION = "1.0"; // Increment this whenever you change your mod's config file.

    public override IGadgetConfigMenu GetConfigMenu() { return null; }

    public override string GetModDescription()
    {
      return "A mod that adds some more lights.";
    }

    protected override void Initialize()
    {
      Logger.Log("More Lights v" + Info.Mod.Version);
      Core.logger = Logger;

      Core.itemIDs = new int[11];

      Core.itemIDs[1] = ItemUtil.CreatePlacableLightItem("cTurquoiseLamp.png", "iTurquoiseLamp.png", "Turquoise Light", new Color(0f, 0.6f, 0.35f, 1));
      Core.itemIDs[2] = ItemUtil.CreatePlacableLightItem("cGreenLamp.png", "iGreenLamp.png", "Green Light", new Color(0.1f, 0.6f, 0, 1));
      Core.itemIDs[3] = ItemUtil.CreatePlacableLightItem("cLightGreenLamp.png", "iLightGreenLamp.png", "Light Green Light", new Color(0.28f, 0.4f, 0, 1));
      Core.itemIDs[4] = ItemUtil.CreatePlacableLightItem("cYellowLamp.png", "iYellowLamp.png", "Yellow Light", new Color(0.9f, 0.75f, 0, 1));
      Core.itemIDs[5] = ItemUtil.CreatePlacableLightItem("cLightOrangeLamp.png", "iLightOrangeLamp.png", "Light Orange Light", new Color(0.55f, 0.2f, 0, 1));
      Core.itemIDs[6] = ItemUtil.CreatePlacableLightItem("cOrangeLamp.png", "iOrangeLamp.png", "Orange Light", new Color(0.65f, 0.15f, 0, 1));
      Core.itemIDs[7] = ItemUtil.CreatePlacableLightItem("cDarkOrangeLamp.png", "iDarkOrangeLamp.png", "Dark Orange Light", new Color(0.63f, 0.08f, 0, 1));
      Core.itemIDs[8] = ItemUtil.CreatePlacableLightItem("cPinkLamp.png", "iPinkLamp.png", "Pink Light", new Color(0.7f, 0, 0.3f, 1));
      Core.itemIDs[9] = ItemUtil.CreatePlacableLightItem("cPurpleLamp.png", "iPurpleLamp.png", "Purple Light", new Color(0.5f, 0, 0.6f, 1));
      Core.itemIDs[10] = ItemUtil.CreatePlacableLightItem("cDarkPurpleLamp.png", "iDarkPurpleLamp.png", "Dark Purple Light", new Color(0.28f, 0.0f, 0.7f, 1));

      Core.itemIDs[0] = ItemUtil.CreatePlacableLightItem("cWhiteLamp.png", "iWhiteLamp.png", "White Light", new Color(0.8f, 0.8f, 0.8f, 1));


      foreach (var e in ShopPlatform.DefaultObjects.GetShopPlatformEntries())
      {
        if (e.ItemID == 2401 || e.ItemID == 2402)
        {
          ShopPlatform.DefaultObjects.RemoveShopPlatformEntry(e);
        }
      }

      var lightsPlatform = new ShopPlatform("Lights", spacingType: ShopPlatformSpacingType.Near).Register();

      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[0], 1000));

      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[3], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[4], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[5], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[6], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[7], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(2402, 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[8], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[9], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[10], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(2401, 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[1], 1000));
      lightsPlatform.AddShopPlatformEntry(new ShopPlatformEntry(Core.itemIDs[2], 1000));

    }
  }
}
