add project files

This commit is contained in:
Boris Nikolaev
2026-08-14 01:58:31 +03:00
parent 9134cad79b
commit 5f1e94b653
4399 changed files with 12286903 additions and 0 deletions
+200
View File
@@ -0,0 +1,200 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
public class PickUpItem : MonoBehaviour
{
public bool specialPickupEnd;
[SerializeField]
[FormerlySerializedAs("skinnable")]
private bool _skinnable = true;
[SerializeField]
[FormerlySerializedAs("rotationObject")]
private bool _rotationObject = true;
[SerializeField]
private GameObject visual;
[SerializeField]
[FormerlySerializedAs("visual_ABTest")]
private GameObject _visual_ABTest;
[SerializeField]
[FormerlySerializedAs("door")]
private GameObject _door;
[SerializeField]
[FormerlySerializedAs("doorsScript")]
private Doors _doorsScript;
[SerializeField]
private bool AB_test_tandom;
[SerializeField]
[FormerlySerializedAs("rdmVisual")]
private List<GameObject> _rdmVisual;
[SerializeField]
[FormerlySerializedAs("rdmVisualSafe")]
private List<GameObject> _rdmVisualSafe;
[SerializeField]
private float rotationSpeed;
[SerializeField]
[FormerlySerializedAs("dependenceItem")]
private PickUpItem _dependenceItem;
[SerializeField]
[FormerlySerializedAs("hasItemsNoSafe")]
private bool _hasItemsNoSafe = true;
[SerializeField]
private Transform instanceCont;
public TypeItem typeItem;
public float valueChange;
public static bool DebugItemNoSafeEnabled = true;
private GameObject _visualInstance;
private PickupSkinProvider _skinProvider;
private CoreController coreController;
public bool isUse { get; private set; }
private void Awake()
{
if (_skinnable)
{
_skinProvider = GetComponentInParent<PickupSkinProvider>();
if (_skinProvider != null)
{
_skinProvider.onSkinChanged += ApplySkin;
ApplySkin();
}
}
coreController = GetComponentInParent<CoreController>();
if (coreController != null)
{
}
if (_doorsScript != null)
{
_doorsScript.AddDoor(this);
}
if (_visual_ABTest != null)
{
_visual_ABTest.SetActive(value: true);
}
}
private void ApplySkin()
{
if (_visualInstance != null)
{
Object.Destroy(_visualInstance.gameObject);
_visualInstance = null;
}
GameObject prefab = null;
if (_skinnable && _skinProvider != null)
{
prefab = _skinProvider.GetSkin(typeItem);
}
if (prefab == null)
{
List<GameObject> list = ((DebugItemNoSafeEnabled && _hasItemsNoSafe) ? _rdmVisual : _rdmVisualSafe);
if (_rdmVisual != null && _rdmVisual.Count >= 1)
{
prefab = list[Random.Range(0, list.Count)];
}
}
if (prefab != null)
{
_visualInstance = Object.Instantiate(prefab, instanceCont);
}
}
private void OnDestroy()
{
if (_skinProvider != null)
{
_skinProvider.onSkinChanged -= ApplySkin;
}
if (coreController != null)
{
}
}
private void OnRevive()
{
PickUpItem item = this;
while (item.isUse)
{
item.ResetItem();
if (!(item._dependenceItem != null))
{
break;
}
item = item._dependenceItem;
}
}
private void ResetItem()
{
isUse = false;
visual.SetActive(value: true);
if (_visual_ABTest != null)
{
_visual_ABTest.SetActive(value: true);
}
if (_door != null)
{
_door.SetActive(value: true);
}
}
public void ReviveDependenceItem()
{
if (isUse)
{
ResetItem();
}
}
private void Update()
{
if (!isUse && _rotationObject)
{
visual.transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
}
}
public void UseDependenceItem()
{
isUse = true;
visual.SetActive(value: false);
if (_visual_ABTest != null)
{
_visual_ABTest.SetActive(value: false);
}
if (_door != null)
{
_door.SetActive(value: false);
}
}
public void UseItem()
{
isUse = true;
visual.SetActive(value: false);
if (_visual_ABTest != null)
{
_visual_ABTest.SetActive(value: false);
}
if (_door != null)
{
_door.SetActive(value: false);
}
}
}