Beispiel #1
0
 public static void Postfix(LaserCutObject __instance)
 {
     if (__instance.isCutOpen)
     {
         FMOD_CustomEmitter doorCutEmitter = __instance.cutObject.GetComponent <FMOD_CustomEmitter>();
         if (doorCutEmitter != null)
         {
             doorCutEmitter.playOnAwake = false;
         }
     }
 }
Beispiel #2
0
        public static bool Prefix(LaserCutObject __instance)
        {
            if (__instance.isCutOpen)
            {
                if (__instance.cutObject.GetComponent <MeshRenderer>().material != null)
                {
                    float num = __instance.cutObject.GetComponent <MeshRenderer>().material.GetFloat("_GlowStrength");
                    if (__instance.cutObject.GetComponent <MeshRenderer>().material.GetFloat("_GlowStrength") > 0f)
                    {
                        float num2 = num / 10;
                        num = Mathf.MoveTowards(num2, 0f, Time.deltaTime / 10f);                         // 10 second exponential dim

                        __instance.cutObject.GetComponent <MeshRenderer>().material.SetFloat
                            (ShaderPropertyID._GlowStrength, num2);
                        __instance.cutObject.GetComponent <MeshRenderer>().material.SetFloat
                            (ShaderPropertyID._GlowStrengthNight, num2);
                    }
                }                 // Set Post cut glow
                                  // Todo:  Set glow fade.  Current Fade is not working
            }
            else if (!__instance.isCutOpen)
            {
                for (int i = 0; i < __instance.laserCutFX.transform.childCount; i++)
                {
                    ParticleSystem component =
                        __instance.laserCutFX.transform.GetChild
                            (i).GetComponent <ParticleSystem>();
                    if (component)
                    {
                        if (component.isPlaying)
                        {
                            component.Stop();
                        }
                    }
                }

                TrailRenderer component2 =
                    __instance.laserCutStreak.GetComponent <TrailRenderer>();
                if (component2)
                {
                    component2.startColor      = new Color(.93f, .91f, .85f, .51f);
                    component2.time            = 2;
                    component2.startWidth      = .025f;
                    component2.widthMultiplier = .25f;                     //Change "weld point size"
                }
                // Want to change RGBA to have ~60-70% alpha.  Cannot change alpha here... need to investigate
                // Want to change Trail Time to 2 second instead of 15
            }
            return(true);
        }
Beispiel #3
0
        public override void ProcessMetadata(GameObject gameObject, SealedDoorMetadata metadata)
        {
            Log.Info($"Received door metadata change for {gameObject.name} with data of {metadata}");

            Sealed door = gameObject.GetComponent <Sealed>();

            door._sealed      = metadata.Sealed;
            door.openedAmount = metadata.OpenedAmount;

            LaserCutObject laseredObject = gameObject.GetComponent <LaserCutObject>();

            if (laseredObject && door._sealed)
            {
                laseredObject.lastCutValue = door.openedAmount;
                laseredObject.ActivateFX();
            }
        }