public void PlayAnim(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, bool forced, Skeleton_Anim_OnComplete onComplete)
 {
     this.ecsUnitAnimTypeEnum = ecsUnitAnimTypeEnum;
     this.animDir             = animDir;
     this.forced     = forced;
     this.onComplete = onComplete;
 }
Ejemplo n.º 2
0
 public UnitAnim GetUnitAnim(UnitAnim.AnimDir animDir)
 {
     return(singleAnimDic[animDir]);
 }
Ejemplo n.º 3
0
 public void SetAnim(UnitAnim.AnimDir animDir, UnitAnim unitAnim)
 {
     singleAnimDic[animDir] = unitAnim;
 }
 public static void PlayAnimForced(Entity entity, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, Vector3 dir, Skeleton_Anim_OnComplete onComplete)
 {
     UnitAnim.AnimDir animDir = GetAnimDir(dir);
     PlayAnimForced(entity, ecsUnitAnimTypeEnum, animDir, onComplete);
 }
        public static bool IsAnimDifferentFromActive(Skeleton_Data skeletonData, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir)
        {
            // Ignores if same animType, same angle and same frameRateMod

            // 8 angles
            if (ecsUnitAnimTypeEnum == skeletonData.activeUnitAnimTypeEnum && animDir == skeletonData.activeAnimDir)
            {
                // Same anim, same angle
                return(false);
            }
            else
            {
                if (ecsUnitAnimTypeEnum != skeletonData.activeUnitAnimTypeEnum)
                {
                    // Different anim, same angle
                    return(true);
                }
                else
                {
                    // Different angle, same anim
                    return(true);
                }
            }
        }
 public static void PlayAnim(Entity entity, Skeleton_Data skeletonData, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
 {
     if (IsAnimDifferentFromActive(skeletonData, ecsUnitAnimTypeEnum, animDir))
     {
         PlayAnimForced(entity, ecsUnitAnimTypeEnum, animDir, onComplete);
     }
 }
 public void PlayAnimForced(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
 {
     PlayAnim(ecsUnitAnimTypeEnum, animDir, true, onComplete);
 }
 public static void PlayAnimJobs(Entity entity, int index, EntityCommandBuffer.Concurrent entityCommandBuffer, Skeleton_Data skeletonData, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
 {
     if (IsAnimDifferentFromActive(skeletonData, ecsUnitAnimTypeEnum, animDir))
     {
         // Different from current, play anim
         PlayAnimForcedJobs(entity, index, entityCommandBuffer, ecsUnitAnimTypeEnum, animDir, onComplete);
     }
 }
 public static Skeleton_Anim_OnComplete Create(ECS_UnitAnimType.TypeEnum unitAnimTypeEnum, UnitAnim.AnimDir animDir)
 {
     return(new Skeleton_Anim_OnComplete {
         hasOnComplete = true,
         unitAnimTypeEnum = unitAnimTypeEnum,
         animDir = animDir
     });
 }
 public static List <Mesh> GetMeshList(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir)
 {
     return(unitAnimMeshListDic[Get(ecsUnitAnimTypeEnum, animDir)]);
 }
 public static ECS_UnitAnim Get(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir)
 {
     return(unitAnimDictionaryKeyDic[new DictionaryKey {
                                         ecsUnitAnimTypeEnum = ecsUnitAnimTypeEnum,
                                         animDir = animDir
                                     }]);
 }
        public static Skeleton_Data GetSkeletonData(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
        {
            ECS_UnitAnimType ecsUnitAnimType = ECS_UnitAnimType.Get(ecsUnitAnimTypeEnum);
            ECS_UnitAnim     ecsUnitAnim     = ecsUnitAnimType.GetUnitAnim(animDir);

            return
                (new Skeleton_Data {
                frameCount = ecsUnitAnim.GetFrameCount(),
                currentFrame = 0,
                loopCount = 0,
                frameTimer = 0f,
                frameRate = ecsUnitAnim.GetFrameRate(),
                activeUnitAnimTypeEnum = ecsUnitAnimTypeEnum,
                activeAnimDir = animDir,
                onComplete = onComplete,
            });
        }
        public static void PlayAnimForcedJobs(Entity entity, int index, EntityCommandBuffer.Concurrent entityCommandBuffer, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
        {
            Skeleton_Data skeletonData = GetSkeletonData(ecsUnitAnimTypeEnum, animDir, onComplete);

            entityCommandBuffer.SetComponent(index, entity, skeletonData);

            if (skeletonData.frameRate <= 0)
            {
                Debug.LogError("#################### FRAMERATE ZERO!");
            }
        }
        public static void PlayAnimForced(Entity entity, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete)
        {
            Skeleton_Data skeletonData = GetSkeletonData(ecsUnitAnimTypeEnum, animDir, onComplete);

            World.Active.EntityManager.SetComponentData(entity, skeletonData);

            if (skeletonData.frameRate <= 0)
            {
                Debug.LogError("#################### FRAMERATE ZERO!");
            }
        }