Beispiel #1
0
        public virtual void Open(bool open)
        {
            if (IvaGameObject != null)
            {
                if (IvaGameObjectRenderer != null)
                {
                    IvaGameObjectRenderer.enabled = open;
                }
            }
            HideOnOpen(open);
            FreeIva.SetRenderQueues(FreeIva.CurrentPart);

            if (Collider != null)
            {
                Collider.Enable(!open);
            }

            if (open)
            {
                if (HatchOpenSound != null && HatchOpenSound.audio != null)
                {
                    HatchOpenSound.audio.Play();
                }
            }
            else
            {
                if (HatchCloseSound != null && HatchCloseSound.audio != null)
                {
                    HatchCloseSound.audio.Play();
                }
            }
        }
        //public override void Open(bool open)
        public void Open(bool open)
        {
            if (open && _isLocked)
            {
                ScreenMessages.PostScreenMessage("Hatch is locked", 1f, ScreenMessageStyle.LOWER_CENTER);
                return;
            }

            if (IvaGameObject != null)
            {
                Renderer r = IvaGameObject.GetComponentCached <Renderer>(ref depthMaskRenderer);
                if (r != null)
                {
                    r.enabled = open;
                }
            }

            AnimationState animationState = unlockAnimation[openAnimationName];

            if (open ^ animationState.speed > 0)
            {
                animationState.speed = -animationState.speed;
            }
            if (animationState.speed > 0)
            {
                animationState.normalizedTime = 0f;
            }
            else
            {
                animationState.normalizedTime = 1f;
            }
            unlockAnimation.clip     = animationState.clip; // This animation player could be used for multiple clips.
            unlockAnimation.enabled  = true;
            unlockAnimation.wrapMode = WrapMode.Once;
            unlockAnimation.Play();

            FreeIva.SetRenderQueues(FreeIva.CurrentPart);

            if (open)
            {
                HatchOpenSound.audio.Play();
            }
            else
            {
                HatchCloseSound.audio.Play();
            }

            _isOpen = !_isOpen;
        }
Beispiel #3
0
        public override void Open(bool open)
        {
            if (ClosedRenderer != null)
            {
                ClosedRenderer.enabled = !open;
            }
            else
            {
                Debug.Log("# ClosedRenderer was null");
            }
            if (OpenRenderer != null)
            {
                OpenRenderer.enabled = open;
            }
            else
            {
                Debug.Log("# OpenRenderer was null");
            }
            HideOnOpen(open);
            FreeIva.SetRenderQueues(FreeIva.CurrentPart);

            if (Collider != null)
            {
                Collider.Enable(!open);
            }

            if (open)
            {
                if (HatchOpenSound != null && HatchOpenSound.audio != null)
                {
                    HatchOpenSound.audio.Play();
                }
            }
            else
            {
                if (HatchCloseSound != null && HatchCloseSound.audio != null)
                {
                    HatchCloseSound.audio.Play();
                }
            }
        }
Beispiel #4
0
        public void Activate(bool activate)
        {
            IsActive = !IsActive;

            AnimationState animationState = Animation[AnimationName];

            if (IsActive ^ animationState.speed > 0)
            {
                animationState.speed = -animationState.speed;
            }
            if (animationState.speed > 0)
            {
                animationState.normalizedTime = 0f;
            }
            else
            {
                animationState.normalizedTime = 1f;
            }
            Animation.clip     = animationState.clip; // This animation player could be used for multiple clips.
            Animation.enabled  = true;
            Animation.wrapMode = WrapMode.Once;
            Animation.Play();

            FreeIva.SetRenderQueues(FreeIva.CurrentPart);

            if (IsActive)
            {
                if (ActivateSound != null && ActivateSound.audio != null)
                {
                    ActivateSound.audio.Play();
                }
            }
            else
            {
                if (DeactivateSound != null && DeactivateSound.audio != null)
                {
                    DeactivateSound.audio.Play();
                }
            }
        }
Beispiel #5
0
        public void Open(bool open)
        {
            IvaGameObject.renderer.enabled = open;
            MeshRenderer[] meshRenderers = Part.internalModel.GetComponentsInChildren <MeshRenderer>();
            foreach (var hideProp in HideWhenOpen)
            {
                foreach (MeshRenderer mr in meshRenderers)
                {
                    if (mr.name.Equals(hideProp.Value) && mr.transform != null)
                    {
                        float error = Vector3.Distance(mr.transform.position, hideProp.Key);
                        if (error < 0.15)
                        {
                            Debug.Log("# Toggling " + mr.name);
                            mr.enabled = !open;
                            break;
                        }
                    }
                }
            }
            FreeIva.SetRenderQueues(FreeIva.CurrentPart);

            if (Collider != null)
            {
                Collider.Enable(!open);
            }

            if (open)
            {
                HatchOpenSound.audio.Play();
            }
            else
            {
                HatchCloseSound.audio.Play();
            }
        }