コード例 #1
0
        public void InitializeEffect(ModuleWaterfallFX host, bool fromNothing)
        {
            parentModule = host;
            Transform[] parents = parentModule.part.FindModelTransforms(parentName);
            Utils.Log(String.Format("[WaterfallEffect]: Initializing effect {0} at {1} [{2} instances]", name, parentName, parents.Length), LogType.Effects);
            effectTransforms = new List <Transform>();
            baseScales       = new List <Vector3>();

            for (int i = 0; i < parents.Length; i++)
            {
                GameObject effect          = new GameObject($"Waterfall_FX_{name}_{i}");
                Transform  effectTransform = effect.transform;

                if (parents[i] == null)
                {
                    Utils.LogError(String.Format("[WaterfallEffect]: Couldn't find Parent Transform {0} on model to attach effect to", parentName, LogType.Any));
                    return;
                }
                effectTransform.SetParent(parents[i], true);
                effectTransform.localPosition    = Vector3.zero;
                effectTransform.localEulerAngles = Vector3.zero;

                model.Initialize(effectTransform, fromNothing);



                baseScales.Add(effectTransform.localScale);
                Utils.Log($"[WaterfallEffect] local Scale {baseScales[i]}, baseScale, {effectTransform.localScale}", LogType.Effects);

                effectTransform.localPosition    = TemplatePositionOffset;
                effectTransform.localEulerAngles = TemplateRotationOffset;
                effectTransform.localScale       = Vector3.Scale(baseScales[i], TemplateScaleOffset);

                Utils.Log($"[WaterfallEffect] local Scale {effectTransform.localScale}, baseScale, {baseScales[i]}, {Vector3.Scale(baseScales[i], TemplateScaleOffset)}", LogType.Effects);

                Utils.Log($"[WaterfallEffect] Applied template offsets {TemplatePositionOffset}, {TemplateRotationOffset}, {TemplateScaleOffset}", LogType.Effects);

                effectTransforms.Add(effectTransform);
            }

            for (int i = 0; i < fxModifiers.Count; i++)
            {
                fxModifiers[i].Init(this);
            }

            effectRendererMaterials  = new List <Material>();
            effectRendererTransforms = new List <Transform>();
            effectRenderers          = new List <Renderer>();
            foreach (Transform t in model.modelTransforms)
            {
                Renderer[] renderers = t.GetComponentsInChildren <Renderer>();
                foreach (Renderer r in renderers)
                {
                    effectRenderers.Add(r);
                    effectRendererMaterials.Add(r.material);
                    effectRendererTransforms.Add(r.transform);
                }
            }
            InitializeIntegrators();
        }
コード例 #2
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            engineController = host.GetComponents <ModuleEngines>().ToList().Find(x => x.engineID == host.engineID);
            if (engineController == null)
            {
                engineController = host.GetComponent <ModuleEngines>();
            }

            if (engineController == null)
            {
                Utils.LogError("[EngineEventController] Could not find engine controller on Initialize");
            }

            if (eventName == "flameout")
            {
                eventReady = engineController.EngineIgnited;
                if (engineController.EngineIgnited)
                {
                    enginePreState = true;
                }
            }
            if (eventName == "ignition")
            {
                eventReady = !engineController.EngineIgnited;
                if (engineController.EngineIgnited)
                {
                    enginePreState = false;
                }
            }
        }
コード例 #3
0
 public void CleanupEffect(ModuleWaterfallFX host)
 {
     Utils.Log(String.Format("[WaterfallEffect]: Deleting effect {0} ", name), LogType.Effects);
     foreach (Transform t in effectTransforms)
     {
         GameObject.Destroy(effectTransform.gameObject);
     }
 }
コード例 #4
0
        public void CleanupEffect(ModuleWaterfallFX host)
        {
            Utils.Log(String.Format("[WaterfallEffect]: Deleting effect {0} ", name), LogType.Effects);
            for (int i = model.modelTransforms.Count - 1; i >= 0; i--)

            {
                GameObject.Destroy(model.modelTransforms[i].gameObject);
            }
        }
コード例 #5
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            gimbalController = host.GetComponents <ModuleGimbal>().ToList().First();

            if (gimbalController == null)
            {
                Utils.LogError("[GimbalController] Could not find gimbal controller on Initialize");
            }
        }
コード例 #6
0
ファイル: RCSController.cs プロジェクト: zorg2044/Waterfall
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            rcsController = host.GetComponents <ModuleRCSFX>().ToList().First();
            if (rcsController == null)
            {
                rcsController = host.GetComponent <ModuleRCSFX>();
            }

            if (rcsController == null)
            {
                Utils.LogError("[RCSController] Could not find ModuleRCSFX on Initialize");
            }
        }
コード例 #7
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            lightController = host.GetComponentsInChildren <Light>().ToList().Find(x => x.transform.name == lightName);
            if (lightController == null)
            {
                lightController = host.GetComponentsInChildren <Light>().ToList().First();
            }

            if (lightController == null)
            {
                Utils.LogError("[LightController] Could not find any lights on Initialize");
            }
        }
コード例 #8
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            engineController = host.GetComponents <ModuleEngines>().ToList().Find(x => x.engineID == host.engineID);
            if (engineController == null)
            {
                engineController = host.GetComponent <ModuleEngines>();
            }

            if (engineController == null)
            {
                Utils.LogError("[ThrottleController] Could not find engine controller on Initialize");
            }
        }
コード例 #9
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            if (noiseType == "perlin")
            {
                noiseFunc = new NoiseFunction(PerlinNoise);
            }
            else if (noiseType == "random")
            {
                noiseFunc = new NoiseFunction(RandomNoise);
            }
            else
            {
                noiseFunc = new NoiseFunction(RandomNoise);
            }
        }
コード例 #10
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            if (noiseType == PerlinNoiseName)
            {
                noiseFunc = PerlinNoise;
            }
            else if (noiseType == RandomNoiseName)
            {
                noiseFunc = RandomNoise;
            }
            else
            {
                noiseFunc = RandomNoise;
            }
        }
コード例 #11
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            engineController = host.GetComponents <ModuleEngines>().FirstOrDefault(x => x.engineID == engineID);
            if (engineController == null)
            {
                Utils.Log($"[{nameof(CustomPullController)}]: Could not find engine ID {engineID}, using first module if available");
                engineController = host.GetComponent <ModuleEngines>();
            }

            if (engineController == null)
            {
                Utils.LogError($"[{nameof(CustomPullController)}]: Could not find any {nameof(ModuleEngines)} to use with {nameof(CustomPullController)} named {name}, effect controller will not do anything");
                return;
            }

            pullValueMethod = FindSuitableMemberOnEnginesModule();
        }
コード例 #12
0
        public void InitializeEffect(ModuleWaterfallFX host, bool fromNothing)
        {
            Utils.Log(String.Format("[WaterfallEffect]: Initializing effect {0} at {1}", name, parentName), LogType.Effects);
            parentModule = host;
            Transform[] parents = parentModule.part.FindModelTransforms(parentName);
            effectTransforms = new List <Transform>();
            for (int i = 0; i < parents.Length; i++)
            {
                GameObject effect = new GameObject($"Waterfall_FX_{name}_{i}");
                effectTransform = effect.transform;

                if (parents[i] == null)
                {
                    Utils.LogError(String.Format("[WaterfallEffect]: Couldn't find Parent Transform {0} on model to attach effect to", parentName));
                    return;
                }
                model.Initialize(effectTransform, fromNothing);

                effectTransform.SetParent(parents[i], true);
                effectTransform.localPosition = PositionOffset;

                if (RotationOffset == Vector3.zero)
                {
                    effectTransform.localRotation = Quaternion.identity;
                }
                else
                {
                    effectTransform.localRotation = Quaternion.LookRotation(RotationOffset);
                }

                effectTransform.localScale = new Vector3(effectTransform.localScale.x * ScaleOffset.x, effectTransform.localScale.y * ScaleOffset.y, effectTransform.localScale.z * ScaleOffset.z);
                savedScale = effectTransform.localScale;
                Utils.Log($"[WaterfallEffect]: Effect GameObject {effect.name} generated at {effectTransform.localPosition}, {effectTransform.localRotation}, {effectTransform.localScale}", LogType.Effects);
                effectTransforms.Add(effectTransform);
            }

            for (int i = 0; i < fxModifiers.Count; i++)
            {
                fxModifiers[i].Init(this);
            }
        }
コード例 #13
0
        public override void Initialize(ModuleWaterfallFX host)
        {
            base.Initialize(host);

            rcsController = host.GetComponents <ModuleRCSFX>().ToList().Find(x => x.thrusterTransformName == thrusterTransformName);
            if (rcsController == null)
            {
                rcsController = host.GetComponent <ModuleRCSFX>();
            }

            if (rcsController == null)
            {
                Utils.LogError("[RCSController] Could not find ModuleRCSFX on Initialize");
                return;
            }

            currentThrottle = new List <float>(rcsController.thrusterTransforms.Count);
            for (int i = 0; i < rcsController.thrusterTransforms.Count; i++)
            {
                currentThrottle.Add(0f);
            }
        }
コード例 #14
0
ファイル: AtmosphereDepth.cs プロジェクト: ozraven/Waterfall
 public override void Initialize(ModuleWaterfallFX host)
 {
     base.Initialize(host);
 }
コード例 #15
0
 /// <summary>
 ///   Initializes the controller
 /// </summary>
 /// <param name="host"></param>
 public virtual void Initialize(ModuleWaterfallFX host)
 {
     parentModule = host;
 }