the initial commit to the repo.
This commit is contained in:
parent
025c032b8c
commit
1b757591b9
264 changed files with 21882 additions and 0 deletions
161
stoopid.raw/stupid.solutions.Data/GameLootItem.cs
Normal file
161
stoopid.raw/stupid.solutions.Data/GameLootItem.cs
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
using System;
|
||||
using EFT.Interactive;
|
||||
using stupid.solutions.Utils;
|
||||
using UnityEngine;
|
||||
|
||||
namespace stupid.solutions.Data;
|
||||
|
||||
public class GameLootItem
|
||||
{
|
||||
private Vector3 screenPosition;
|
||||
|
||||
private Vector2 screenPositionFinal;
|
||||
|
||||
public LootItem LootItem { get; }
|
||||
|
||||
public Vector3 ScreenPosition => screenPosition;
|
||||
|
||||
public Vector2 ScreenPositionFinal => screenPositionFinal;
|
||||
|
||||
public bool IsOnScreen { get; private set; }
|
||||
|
||||
public float Distance { get; private set; }
|
||||
|
||||
public string FormattedDistance => $"{Math.Round(Distance)}m";
|
||||
|
||||
public string ItemID { get; private set; }
|
||||
|
||||
public string LocalizedName { get; private set; }
|
||||
|
||||
public string ShortName { get; private set; }
|
||||
|
||||
public ItemCategories Itemcat { get; private set; }
|
||||
|
||||
public int? itemprice { get; private set; }
|
||||
|
||||
public int? stackcount { get; private set; }
|
||||
|
||||
public GameLootItem(LootItem lootItem)
|
||||
{
|
||||
if (lootItem == null)
|
||||
{
|
||||
throw new ArgumentNullException("lootItem");
|
||||
}
|
||||
LootItem = lootItem;
|
||||
screenPosition = default(Vector3);
|
||||
screenPositionFinal = default(Vector2);
|
||||
Distance = 0f;
|
||||
LocalizedName = string.Empty;
|
||||
ItemID = string.Empty;
|
||||
ShortName = string.Empty;
|
||||
Itemcat = ItemCategories.Uninitialized;
|
||||
stackcount = null;
|
||||
}
|
||||
|
||||
public void CalculateItemPrice()
|
||||
{
|
||||
if (!(LootItem == null) && GameUtils.IsLootItemValid(LootItem))
|
||||
{
|
||||
int? itemPriceBYID = GameUtils.GetItemPriceBYID(LootItem.TemplateId);
|
||||
if (LootItem.Item.StackObjectsCount > 0)
|
||||
{
|
||||
itemprice = itemPriceBYID * LootItem.Item.StackObjectsCount;
|
||||
stackcount = LootItem.Item.StackObjectsCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
itemprice = itemPriceBYID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetItemCat()
|
||||
{
|
||||
if (!(LootItem == null) && GameUtils.IsLootItemValid(LootItem))
|
||||
{
|
||||
string text = LootItem.Item.LocalizedName();
|
||||
string item = LootItem.Item.TemplateId;
|
||||
if (QuestESP.QuestItemIds.Contains(text) || QuestESP.QuestItemIds.Contains(text.ToLower()))
|
||||
{
|
||||
Itemcat = ItemCategories.Quest;
|
||||
}
|
||||
else if (Main.IsSuperrare(text))
|
||||
{
|
||||
Itemcat = ItemCategories.Superrare;
|
||||
}
|
||||
else if (Main.IsKappa(text))
|
||||
{
|
||||
Itemcat = ItemCategories.Kappa;
|
||||
}
|
||||
else if (Main.IsStim(text))
|
||||
{
|
||||
Itemcat = ItemCategories.Stim;
|
||||
}
|
||||
else if (Main.SearchedItem(text))
|
||||
{
|
||||
Itemcat = ItemCategories.Searched;
|
||||
}
|
||||
else if (Main.wishlistitemids.Contains(item))
|
||||
{
|
||||
Itemcat = ItemCategories.Wishlist;
|
||||
}
|
||||
else if (Main.hideoutitemids.Contains(item))
|
||||
{
|
||||
Itemcat = ItemCategories.Hideout;
|
||||
}
|
||||
else if (LootItem.Item.LocalizedName() != "Default Inventory")
|
||||
{
|
||||
Itemcat = ItemCategories.Common;
|
||||
}
|
||||
else
|
||||
{
|
||||
Itemcat = ItemCategories.Invalid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RecalculateDynamics()
|
||||
{
|
||||
if (GameUtils.IsLootItemValid(LootItem) && !(LootItem.transform == null))
|
||||
{
|
||||
_ = LootItem.transform.position;
|
||||
if (Main.MainCamera != null)
|
||||
{
|
||||
screenPosition = GameUtils.WorldPointToScreenPoint(LootItem.transform.position);
|
||||
}
|
||||
screenPositionFinal = new Vector2(screenPosition.x - 50f, screenPosition.y);
|
||||
if (screenPosition != Vector3.zero)
|
||||
{
|
||||
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
||||
}
|
||||
if ((Itemcat != ItemCategories.Quest || Itemcat != ItemCategories.Uninitialized) && QuestESP.QuestItemIds.Contains(LocalizedName) && QuestESP.QuestItemIds.Contains(LocalizedName.ToLower()))
|
||||
{
|
||||
Itemcat = ItemCategories.Quest;
|
||||
}
|
||||
if (Main.MainCamera != null)
|
||||
{
|
||||
Distance = Vector3.Distance(Main.MainCamera.transform.position, LootItem.transform.position);
|
||||
}
|
||||
if (string.IsNullOrEmpty(LocalizedName))
|
||||
{
|
||||
LocalizedName = LootItem.Item.LocalizedName();
|
||||
}
|
||||
if (string.IsNullOrEmpty(ItemID))
|
||||
{
|
||||
ItemID = LootItem.TemplateId.ToString();
|
||||
}
|
||||
if (string.IsNullOrEmpty(ShortName))
|
||||
{
|
||||
ShortName = LootItem.Item.ShortName.Localized();
|
||||
}
|
||||
if (LootItem.Item.StackObjectsCount > 0 && !stackcount.HasValue)
|
||||
{
|
||||
stackcount = LootItem.Item.StackObjectsCount;
|
||||
}
|
||||
else if (!stackcount.HasValue)
|
||||
{
|
||||
stackcount = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue