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 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; }
public static ECS_UnitAnim Get(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir) { return(unitAnimDictionaryKeyDic[new DictionaryKey { ecsUnitAnimTypeEnum = ecsUnitAnimTypeEnum, animDir = animDir }]); }
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 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!"); } }
public static ECS_UnitAnimType ConvertVAnimToAnim(ECS_UnitAnimType.TypeEnum typeEnum) { UnitAnimType unitAnimType = UnitAnimType.GetUnitAnimType(typeEnum.ToString()); ECS_UnitAnimType ecsUnitAnimType = new ECS_UnitAnimType( typeEnum, ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.Down)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.Up)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.Left)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.Right)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.DownLeft)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.DownRight)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.UpLeft)), ConvertVAnimToAnim(unitAnimType.GetUnitAnim(UnitAnim.AnimDir.UpRight)) ); return(ecsUnitAnimType); }
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 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 void PlayAnimForced(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir, Skeleton_Anim_OnComplete onComplete) { PlayAnim(ecsUnitAnimTypeEnum, animDir, true, onComplete); }
public void PlayAnimForced(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, float3 dir, Skeleton_Anim_OnComplete onComplete) { PlayAnim(ecsUnitAnimTypeEnum, ECS_Animation.GetAnimDir(dir), true, onComplete); }
public static Skeleton_Anim_OnComplete Create(ECS_UnitAnimType.TypeEnum unitAnimTypeEnum, float3 dir) { return(Create(unitAnimTypeEnum, ECS_Animation.GetAnimDir(dir))); }
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 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 void PlayAnimJobs(Entity entity, int index, EntityCommandBuffer.Concurrent entityCommandBuffer, Skeleton_Data skeletonData, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, Vector3 dir, Skeleton_Anim_OnComplete onComplete) { PlayAnimJobs(entity, index, entityCommandBuffer, skeletonData, ecsUnitAnimTypeEnum, GetAnimDir(dir), onComplete); }
public static List <Mesh> GetMeshList(ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, UnitAnim.AnimDir animDir) { return(unitAnimMeshListDic[Get(ecsUnitAnimTypeEnum, animDir)]); }
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 void PlayAnim(Entity entity, ECS_UnitAnimType.TypeEnum ecsUnitAnimTypeEnum, Vector3 dir, Skeleton_Anim_OnComplete onComplete) { Skeleton_Data skeletonData = World.Active.EntityManager.GetComponentData <Skeleton_Data>(entity); PlayAnim(entity, skeletonData, ecsUnitAnimTypeEnum, GetAnimDir(dir), onComplete); }