This commit is contained in:
SoulliesOfficial
2026-01-03 18:19:39 -05:00
parent 3bcd7c1cf8
commit 33b1795c1f
7387 changed files with 2762819 additions and 716926 deletions

View File

@@ -15,32 +15,57 @@ namespace Cielonos.MainGame.Inventory
public Player player => MainGameManager.Instance.player;
protected PlayerAnimationSubcontroller animationSc => player.animationSc;
protected FunctionalAnimationSubmodule fullBodyFuncAnimSm => animationSc.fullBodyFuncAnimSm;
[Title("Data")]
public List<FuncAnimData> fullBodyFuncAnims = new List<FuncAnimData>();
[HideInInspector]
private List<string> registeredFunctionNames = new List<string>();
[TitleGroup("Data")]
public List<FuncAnimData> fullBodyFuncAnims = new List<FuncAnimData>();
public ContentData contentData;
public ViewObjectData viewObjectData;
public VFXData vfxData;
public AttributeData passiveAttributeData;
public ComboData comboData;
public AttackData attackData;
public FunctionData functionData;
public AmmoData ammoData;
public BlockData blockData;
[Title("Audio")]
[TitleGroup("Audio")]
public AudioContainer audioContainer;
[Title("Submodules")]
[TitleGroup("Submodules")]
public AttributeSubmodule passiveAttributeSm;
public ComboSubmodule comboSm;
public FunctionSubmodule functionSm;
public AmmoSubmodule ammoSm;
[Title("Subcontrollers")]
[TitleGroup("Subcontrollers")]
public FeedbackSubcontroller feedbackSc;
[Title("View Objects")]
[TitleGroup("View Objects")]
public Dictionary<string, ItemViewObject> viewObjects = new Dictionary<string, ItemViewObject>();
}
public partial class ItemBase
{
public virtual void Initialize()
{
vfxData?.Initialize(player);
if(comboData != null) comboSm = new ComboSubmodule(this, comboData);
if(functionData != null) functionSm = new FunctionSubmodule(this, functionData);
if(ammoData != null) ammoSm = new AmmoSubmodule(this, ammoData);
if(passiveAttributeData != null) passiveAttributeSm = new AttributeSubmodule(this, passiveAttributeData);
}
public virtual void OnObtained()
{
passiveAttributeSm?.RefreshAllModifiedAttributes();
}
public virtual void OnDiscarded()
{
passiveAttributeSm?.RefreshAllModifiedAttributes();
}
protected virtual void Update()
{
@@ -50,12 +75,38 @@ namespace Cielonos.MainGame.Inventory
public partial class ItemBase
{
public virtual void Initialize()
protected void SpawnViewObjects()
{
vfxData.Initialize(player);
comboSm = new ComboSubmodule(this, comboData);
functionSm = new FunctionSubmodule(this, functionData);
ammoSm = new AmmoSubmodule(this, ammoData);
if (viewObjectData != null)
{
foreach (ViewObjectData.ViewObjectDataUnit unit in viewObjectData.viewObjectUnits)
{
Transform attachPoint = !unit.isCustomAttachPoint
? player.bodyPartsSc.GetPart(unit.normalAttachBodyPart)
: player.bodyPartsSc.GetPart(unit.customAttachPartName);
if (attachPoint != null)
{
ItemViewObject view = Instantiate(unit.objectPrefab, attachPoint).GetComponent<ItemViewObject>();
if (unit.applyOffset)
{
view.transform.localPosition = unit.positionOffset;
view.transform.localEulerAngles = unit.rotationOffset;
}
viewObjects[unit.objectName] = view;
}
}
}
}
public void DespawnViewObjects()
{
foreach (KeyValuePair<string, ItemViewObject> kvp in viewObjects)
{
Destroy(kvp.Value.gameObject);
}
viewObjects.Clear();
}
}