This commit is contained in:
Lachlan Leone
2024-01-27 03:50:35 +11:00
parent 2d6abcd684
commit 4dd11a9f73
11 changed files with 265 additions and 27 deletions
+2 -1
View File
@@ -12,6 +12,7 @@ namespace Pets.Menus
return new PetGridMenu(Pets, container, player, has_back);
}
public List<Pet> Pets = new List<Pet>();
public List<Pet> _Pets = new List<Pet>();
public List<int> Pets = new List<int>();
}
}
+12 -6
View File
@@ -1,31 +1,37 @@
using System.Collections.Generic;
using Kitchen;
using Kitchen.Modules;
using KitchenData;
using Pets.Customs.Types;
using Pets.Views;
using UnityEngine;
namespace Pets.Menus
{
public class PetGridMenu : GridMenu<Pet>
public class PetGridMenu : GridMenu<int>
{
public PetGridMenu(List<Pet> items, Transform container, int player, bool has_back) : base(items, container, player, has_back)
public PetGridMenu(List<int> items, Transform container, int player, bool has_back) : base(items, container, player, has_back)
{
}
protected override int ColumnLength => 3;
protected override void SetupElement(Pet item, GridMenuElement element)
protected override void SetupElement(int item, GridMenuElement element)
{
element.Set(PrefabSnapshot.GetSnapshot(item.IconPrefab));
if (item == 0)
{
element.Set(Mod.Bundle.LoadAsset<Texture2D>("None"));
return;
}
element.Set(PrefabSnapshot.GetSnapshot(GameData.Main.Get<Pet>(item).IconPrefab));
}
protected override void OnSelect(Pet item)
protected override void OnSelect(int item)
{
if (Player != 0 && item != null)
{
PetRequestView.PlayerID = Player;
PetRequestView.PetID = item.ID;
PetRequestView.PetID = item;
}
}
}
+36
View File
@@ -0,0 +1,36 @@
using System.Collections.Generic;
using Kitchen;
using Kitchen.Modules;
using KitchenLib;
using KitchenLib.Preferences;
using UnityEngine;
namespace Pets.Menus
{
public class PreferenceMenu<T>: KLMenu<T>
{
public PreferenceMenu(Transform container, ModuleList module_list) : base(container, module_list)
{
}
private Option<bool> petsHaveColliders = new Option<bool>(new List<bool> { true, false }, Mod.manager.GetPreference<PreferenceBool>("petsHaveColliders").Value, new List<string> { "Enabled", "Disabled" });
public override void Setup(int player_id)
{
AddLabel("Pet Colliders");
New<SpacerElement>(true);
AddSelect(petsHaveColliders);
petsHaveColliders.OnChanged += delegate (object _, bool result)
{
Mod.manager.GetPreference<PreferenceBool>("petsHaveColliders").Set(result);
};
New<SpacerElement>(true);
New<SpacerElement>(true);
AddButton(base.Localisation["MENU_BACK_SETTINGS"], delegate(int i)
{
Mod.manager.Save();
RequestPreviousMenu();
});
}
}
}