Skip to content

Commit

Permalink
Added cheats categories to cheats gui and definitions.
Browse files Browse the repository at this point in the history
  • Loading branch information
wanakubwa committed Dec 26, 2020
1 parent c621b66 commit afca5e2
Show file tree
Hide file tree
Showing 16 changed files with 1,322 additions and 435 deletions.
429 changes: 64 additions & 365 deletions BOBCheatsPlugin/Assets/BOBCheats/Resources/GUI/BOBCheatsGUI.prefab

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ public override void Initialize()
Model = GetModel<CheatsMenuModel>();
}

public void SelectCheat(CheatElementController sender)
{
Model.EnableCheat(sender.CachedCheat, sender.GetCheatParameters());
}
//public void SelectCheat(CheatElementController sender)
//{
// Model.EnableCheat(sender.CachedCheat, sender.GetCheatParameters());
//}

#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,15 @@ public class CheatsMenuModel : BOBUIModel

#region Methods

public void EnableCheat(CheatInfo cheat, object[] parameters)
{
BOBCheatsManager bOBCheatsManager = BOBCheatsManager.Instance;
if(bOBCheatsManager != null)
{
bOBCheatsManager.UseCheat(cheat, parameters);
}
}

public List<CheatInfo> GetAvaibleCheats()
public List<CheatCategory> GetAvaibleCheatsCategories()
{
BOBCheatsManager cheatsManager = BOBCheatsManager.Instance;
if(cheatsManager == null)
if (cheatsManager == null)
{
return null;
}

return cheatsManager.CheatsCollection;
return cheatsManager.CategoriesCollection;
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,25 @@ public class CheatsMenuView : BOBUIView

[Space]
[SerializeField]
private CheatElementController cheatElementPrefab;
private CheatCategoryPanelElement cheatCategoryPrefab;

#endregion

#region Propeties

public CheatElementController CheatElementPrefab { get => cheatElementPrefab; }
public CheatCategoryPanelElement CheatCategoryPrefab { get => cheatCategoryPrefab; }

private CheatsMenuModel Model
{
get;
set;
}

private List<CheatElementController> SpawnedCheatsElements
private List<CheatCategoryPanelElement> SpawnedCheatsCategories
{
get;
set;
} = new List<CheatElementController>();
} = new List<CheatCategoryPanelElement>();

#endregion

Expand All @@ -50,35 +50,35 @@ public void RefreshView()
{
DestroySpawnedCheats();

List<CheatInfo> cheats = Model.GetAvaibleCheats();
if(cheats.IsNullOrEmpty() == false)
List<CheatCategory> categories = Model.GetAvaibleCheatsCategories();
if(categories.IsNullOrEmpty() == false)
{
SpawnCheatsSections(cheats);
SpawnCheatsSections(categories);
}
}

private void SpawnCheatsSections(List<CheatInfo> cheats)
private void SpawnCheatsSections(List<CheatCategory> categories)
{
for(int i =0; i < cheats.Count; i++)
for(int i =0; i < categories.Count; i++)
{
CheatElementController cheatElement = Instantiate(CheatElementPrefab);
cheatElement.transform.SetParent(CheatElementPrefab.transform.parent);
CheatCategoryPanelElement cheatElement = Instantiate(CheatCategoryPrefab);
cheatElement.transform.SetParent(CheatCategoryPrefab.transform.parent);
cheatElement.transform.localScale = Vector3.one;
cheatElement.gameObject.SetActive(true);

cheatElement.DrawCheatElement(cheats[i]);
SpawnedCheatsElements.Add(cheatElement);
cheatElement.Initialize(categories[i]);
SpawnedCheatsCategories.Add(cheatElement);
}
}

private void DestroySpawnedCheats()
{
for(int i = 0; i < SpawnedCheatsElements.Count; i++)
for(int i = 0; i < SpawnedCheatsCategories.Count; i++)
{
Destroy(SpawnedCheatsElements[i].gameObject);
Destroy(SpawnedCheatsCategories[i].gameObject);
}

SpawnedCheatsElements.Clear();
SpawnedCheatsCategories.Clear();
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
using BOBCheats.Collections;
using UnityEngine;
using UnityEngine.UI;

namespace BOBCheats.GUI
{
public class CheatCategoryPanelElement : MonoBehaviour
{
#region Fields

[SerializeField]
private Text nameLabel;
[SerializeField]
private RectTransform cheatsParent;
[SerializeField]
private CheatElementController cheatElementPrefab;

#endregion

#region Propeties

public Text NameLabel { get => nameLabel; }
public RectTransform CheatsParent { get => cheatsParent; }
public CheatElementController CheatElementPrefab { get => cheatElementPrefab; }

private CheatCategory CachedCategory
{
get;
set;
}

#endregion

#region Methods

public void Initialize(CheatCategory category)
{
CachedCategory = category;

RefreshCategoryLabel();
SpawnCheats();

SetCheatsVisible(false);

if (CachedCategory.CategoryName.Equals(BOBCheatsSettings.DEFAULT_CATEGORY_NAME) == true)
{
SetCheatsVisible(true);
}
}

public void ToggleSection()
{
if(CheatsParent.gameObject.activeInHierarchy == true)
{
SetCheatsVisible(false);
}
else
{
SetCheatsVisible(true);
}
}

private void RefreshCategoryLabel()
{
NameLabel.text = CachedCategory.CategoryName;
}

private void SetCheatsVisible(bool isVisible)
{
CheatsParent.gameObject.SetActive(isVisible);
}

private void SpawnCheats()
{
foreach (CheatInfo cheat in CachedCategory.CheatsCollection)
{
SpawnCheatSections(cheat);
}
}

private void SpawnCheatSections(CheatInfo cheat)
{
CheatElementController cheatElement = Instantiate(CheatElementPrefab);
cheatElement.transform.SetParent(CheatsParent);
cheatElement.transform.localScale = Vector3.one;
cheatElement.gameObject.SetActive(true);

cheatElement.DrawCheatElement(cheat);
}

#endregion

#region Enums



#endregion
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ public class CheatElementController : MonoBehaviour
private RectTransform parametersParent;
[SerializeField]
private List<ParameterInputField> inputFieldsCollection = new List<ParameterInputField>();
[Space]
[SerializeField]
private UnityEvent onSelectCheat;

#endregion

Expand All @@ -36,10 +33,6 @@ public Text CheatNameLabel {
get => cheatNameLabel;
}

public UnityEvent OnSelectCheat {
get => onSelectCheat;
}

public List<ParameterInputField> InputFieldsCollection {
get => inputFieldsCollection;
}
Expand Down Expand Up @@ -87,7 +80,11 @@ public void SetCheatNameLabel(string name)

public void UseCheat()
{
OnSelectCheat.Invoke();
BOBCheatsManager bOBCheatsManager = BOBCheatsManager.Instance;
if (bOBCheatsManager != null)
{
bOBCheatsManager.UseCheat(CachedCheat, GetCheatParameters());
}
}

public object[] GetCheatParameters()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BOBCheats
{
Expand All @@ -15,8 +11,12 @@ public class CheatAttribute : Attribute

#region Propeties

public string CheatName
{
public string CheatName {
get;
private set;
} = string.Empty;

public string CheatCategory {
get;
private set;
} = string.Empty;
Expand All @@ -27,9 +27,15 @@ public string CheatName

public CheatAttribute() { }

public CheatAttribute(string name)
public CheatAttribute(string category)
{
CheatCategory = category;
}

public CheatAttribute(string category, string name)
{
CheatName = name;
CheatCategory = category;
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;

namespace BOBCheats.Collections
{
[Serializable]
public class CheatCategory : IEquatable<string>
{
#region Fields

[SerializeField]
private string categoryName;
[SerializeField]
private List<CheatInfo> cheatsCollection = new List<CheatInfo>();

#endregion

#region Propeties

public string CategoryName
{
get => categoryName;
private set => categoryName = value;
}

public List<CheatInfo> CheatsCollection {
get => cheatsCollection;
private set => cheatsCollection = value;
}

#endregion

#region Methods

public CheatCategory() { }

public CheatCategory(string category)
{
CategoryName = category;
}

public void SetCategoryName(string category)
{
CategoryName = category;
}

public void AddCheat(CheatInfo cheat)
{
CheatsCollection.Add(cheat);
}

public bool Equals(string other)
{
return other.Equals(CategoryName);
}

#endregion

#region Enums



#endregion
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit afca5e2

Please sign in to comment.