1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using XNode;
- using System;
- using Sirenix.OdinInspector;
- using System.Linq;
- using ChivaXR;
- namespace ChivaVR.State
- {
- public class ConditionStateNode : StateNode
- {
- [Output, HideInInspector] public Empty exit;
- [ValueDropdown("GetProcedure", IsUniqueList = true)]
- [OnValueChanged("ResetCurrentProcedure")]
- [HideLabel]
- public int currentProcedureStepID;
- private static IEnumerable GetProcedure()
- {
- return ProcessManagement.Instance.processes.Select(x => new ValueDropdownItem(x.processBase.GetPBDescribe(), x.stepID));
- }
- private ProcessElement currentProcedure;
- public ProcessElement CurrentProcedure
- {
- get
- {
- if (currentProcedure == null)
- {
- currentProcedure = GetCurrentProcedure();
- }
- return currentProcedure;
- }
- }
- public void ResetCurrentProcedure()
- {
- currentProcedure = GetCurrentProcedure();
- }
- /// <summary>
- /// 获取当前流程
- /// </summary>
- /// <returns></returns>
- public ProcessElement GetCurrentProcedure()
- {
- if (currentProcedureStepID == 0) return null;
- return ProcessManagement.Instance.processes.Where(x => (x.stepID.Equals(currentProcedureStepID))).First();
- }
-
- public override bool IsRuning { get => base.IsRuning; set => base.IsRuning = value; }
- public override bool IsFinished
- {
- get
- {
- if (CurrentProcedure != null)
- {
- return CurrentProcedure.finished;
- }
- return false;
- ;
- }
- }
- }
- }
|