//Still Broken as hell public void RunChestAnimation(EntityStates.Barrel.Opening self) { EntityState chestState = self.outer.GetComponent <EntityState>(); ModelLocator modelLocator = self.outer.GetComponent <ModelLocator>(); //protected void PlayAnimation(string layerName, string animationStateName, string playbackRateParam, float duration) //"Body", "Opening", "Opening.playbackRate", Opening.duration //Get Animator of the chest Animator modelAnimator = modelLocator.modelTransform.GetComponent <Animator>(); if (modelAnimator) { //Play Animation int layerIndex = modelAnimator.GetLayerIndex("Body"); modelAnimator.SetFloat("Opening.playbackRate", 1f); modelAnimator.PlayInFixedTime("Opening", layerIndex, 0f); modelAnimator.Update(0f); float length = modelAnimator.GetCurrentAnimatorStateInfo(layerIndex).length; modelAnimator.SetFloat("Opening.playbackRate", length / 1f); } if (chestState.sfxLocator) { Util.PlaySound(chestState.sfxLocator.openSound, base.gameObject); } }
private void Opening_OnEnter(On.EntityStates.Barrel.Opening.orig_OnEnter orig, EntityStates.Barrel.Opening self) { GameObject obj = self.outer.gameObject; string name = obj.name.ToLower(); if (!name.Contains("chest1") && !name.Contains("chest2") && !name.Contains("goldchest") && !name.Contains("equipmentbarrel") && !name.Contains("isclockbox")) { orig.Invoke(self); return; } }