更新
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user