Add source files
This commit is contained in:
241
Projects/BanquetForFools/Source/Assembly-CSharp/ItemCollector.cs
Normal file
241
Projects/BanquetForFools/Source/Assembly-CSharp/ItemCollector.cs
Normal file
@@ -0,0 +1,241 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// Token: 0x020000B8 RID: 184
|
||||
public class ItemCollector : MonoBehaviour
|
||||
{
|
||||
// Token: 0x0600119E RID: 4510 RVA: 0x001595AC File Offset: 0x001577AC
|
||||
private void Start()
|
||||
{
|
||||
this.UpdateSize();
|
||||
Links.x.inventory.groundBag.itemCollectorSize = this.size;
|
||||
}
|
||||
|
||||
// Token: 0x0600119F RID: 4511 RVA: 0x001595CE File Offset: 0x001577CE
|
||||
public void UpdateSize()
|
||||
{
|
||||
if (Links.x.mk)
|
||||
{
|
||||
this.size = 20f;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.size = 20f;
|
||||
}
|
||||
Links.x.inventory.groundBag.itemCollectorSize = this.size;
|
||||
}
|
||||
|
||||
// Token: 0x060011A0 RID: 4512 RVA: 0x0015960E File Offset: 0x0015780E
|
||||
public bool HasItem(Item i)
|
||||
{
|
||||
return this.hitItems.Contains(i);
|
||||
}
|
||||
|
||||
// Token: 0x060011A1 RID: 4513 RVA: 0x00159624 File Offset: 0x00157824
|
||||
public bool CheckInteractiveLineOfSight(Item item)
|
||||
{
|
||||
if (Links.x.hasMain)
|
||||
{
|
||||
Vector3 position = Links.x.main.tr.position;
|
||||
return !Physics.Linecast(Links.x.main.raycastPosition, item.gameObject.transform.position, 2163200);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Token: 0x060011A2 RID: 4514 RVA: 0x00159684 File Offset: 0x00157884
|
||||
private void Enter(GameObject other)
|
||||
{
|
||||
GameObject gameObject = other.gameObject;
|
||||
if (gameObject)
|
||||
{
|
||||
Item component = gameObject.GetComponent<Item>();
|
||||
if (component)
|
||||
{
|
||||
if (!component.destroying && component.active && component.gameObject.activeSelf)
|
||||
{
|
||||
if (this.screenSize)
|
||||
{
|
||||
Links.x.inventory.groundBag.HitScreenItem(component, true);
|
||||
component.InRange();
|
||||
}
|
||||
else
|
||||
{
|
||||
Links.x.inventory.groundBag.HitItem(component, true);
|
||||
}
|
||||
if (this.screenSize)
|
||||
{
|
||||
Links.x.inventory.groundBag.SetCollectorUpdateFromTrigger();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BreakableActions component2 = gameObject.gameObject.transform.parent.gameObject.GetComponent<BreakableActions>();
|
||||
if (component2 && component2.resourceLocation > -1)
|
||||
{
|
||||
component2.InRange();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060011A3 RID: 4515 RVA: 0x00159764 File Offset: 0x00157964
|
||||
private void Exit(GameObject other)
|
||||
{
|
||||
GameObject gameObject = other.gameObject;
|
||||
if (gameObject)
|
||||
{
|
||||
Item component = gameObject.GetComponent<Item>();
|
||||
if (component)
|
||||
{
|
||||
if (this.screenSize)
|
||||
{
|
||||
Links.x.inventory.groundBag.RemovePopItem(component);
|
||||
Links.x.inventory.groundBag.HitScreenItem(component, false);
|
||||
component.OutOfRange();
|
||||
}
|
||||
else
|
||||
{
|
||||
Links.x.inventory.groundBag.HitItem(component, false);
|
||||
}
|
||||
if (this.screenSize)
|
||||
{
|
||||
Links.x.inventory.groundBag.SetCollectorUpdateFromTrigger();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BreakableActions component2 = gameObject.gameObject.transform.parent.gameObject.GetComponent<BreakableActions>();
|
||||
if (component2 && component2.resourceLocation > -1)
|
||||
{
|
||||
component2.OutOfRange();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060011A4 RID: 4516 RVA: 0x00159834 File Offset: 0x00157A34
|
||||
public void EmptyItems()
|
||||
{
|
||||
int count = this.hitItems.Count;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
if (this.newItems.IndexOf(this.hitItems[i]) == -1)
|
||||
{
|
||||
if (this.hitItems[i])
|
||||
{
|
||||
this.Exit(this.hitItems[i].gameObject);
|
||||
}
|
||||
this.hitItems[i] = null;
|
||||
}
|
||||
}
|
||||
this.hitItems.Clear();
|
||||
}
|
||||
|
||||
// Token: 0x060011A5 RID: 4517 RVA: 0x001598B5 File Offset: 0x00157AB5
|
||||
public void LoadScene()
|
||||
{
|
||||
this.party = Links.x.portraitOrder;
|
||||
this.groundItems = Links.x.diorama.groundItems;
|
||||
}
|
||||
|
||||
// Token: 0x060011A6 RID: 4518 RVA: 0x001598DC File Offset: 0x00157ADC
|
||||
public void UpdateLists()
|
||||
{
|
||||
this.Update();
|
||||
}
|
||||
|
||||
// Token: 0x060011A7 RID: 4519 RVA: 0x001598E4 File Offset: 0x00157AE4
|
||||
private void Update()
|
||||
{
|
||||
if (Links.x)
|
||||
{
|
||||
int bombID = Links.x.library.bombID;
|
||||
if (Links.x.gaia.sceneLoaded && !Records.x.removeControls && Links.x.main)
|
||||
{
|
||||
if (this.party == null)
|
||||
{
|
||||
this.party = Links.x.portraitOrder;
|
||||
}
|
||||
if (this.groundItems == null)
|
||||
{
|
||||
this.groundItems = Links.x.diorama.groundItems;
|
||||
}
|
||||
int count = this.groundItems.Count;
|
||||
int count2 = this.party.Count;
|
||||
this.newItems.Clear();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
Item item2 = this.groundItems[i];
|
||||
if (item2 && item2.active && !item2.destroying && !item2.instantiating && item2.clickable)
|
||||
{
|
||||
if (item2.gameObject.activeInHierarchy && item2.gameObject.activeSelf && this.PartyClose(Links.x.main, item2.tr.position, this.size) && this.CheckInteractiveLineOfSight(item2) && item2.invRow._UIModel != "None" && item2.invRow._UIModel != "NoneOnly")
|
||||
{
|
||||
this.newItems.Add(item2);
|
||||
}
|
||||
if (item2.ID == bombID && item2.durability.x > 0f && Links.x.gameplay.seconds > item2.durability.x + 126f)
|
||||
{
|
||||
item2.BombBomb(item2.tr.position);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
bool flag = false;
|
||||
int num = this.hitItems.Count;
|
||||
for (int j = 0; j < num; j++)
|
||||
{
|
||||
if (this.newItems.IndexOf(this.hitItems[j]) == -1)
|
||||
{
|
||||
if (this.hitItems[j])
|
||||
{
|
||||
this.Exit(this.hitItems[j].gameObject);
|
||||
}
|
||||
this.hitItems[j] = null;
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
this.hitItems.RemoveAll((Item item) => item == null);
|
||||
}
|
||||
num = this.newItems.Count;
|
||||
for (int k = 0; k < num; k++)
|
||||
{
|
||||
if (this.hitItems.IndexOf(this.newItems[k]) == -1 && this.newItems[k])
|
||||
{
|
||||
this.Enter(this.newItems[k].gameObject);
|
||||
this.hitItems.Add(this.newItems[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060011A8 RID: 4520 RVA: 0x00159BFC File Offset: 0x00157DFC
|
||||
public bool PartyClose(Character character, Vector3 point, float dist)
|
||||
{
|
||||
point.y = character.tr.position.y;
|
||||
return (character.tr.position - point).sqrMagnitude < dist * dist;
|
||||
}
|
||||
|
||||
// Token: 0x04001D1B RID: 7451
|
||||
public bool screenSize;
|
||||
|
||||
// Token: 0x04001D1C RID: 7452
|
||||
private List<Character> party;
|
||||
|
||||
// Token: 0x04001D1D RID: 7453
|
||||
private List<Item> groundItems;
|
||||
|
||||
// Token: 0x04001D1E RID: 7454
|
||||
public List<Item> hitItems = new List<Item>();
|
||||
|
||||
// Token: 0x04001D1F RID: 7455
|
||||
public List<Item> newItems = new List<Item>();
|
||||
|
||||
// Token: 0x04001D20 RID: 7456
|
||||
public float size;
|
||||
}
|
||||
Reference in New Issue
Block a user