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(); }
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; } } }
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); } }
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); } }
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"); } }
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"); } }
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"); } }
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"); } }
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); } }
public override void Initialize(ModuleWaterfallFX host) { base.Initialize(host); if (noiseType == PerlinNoiseName) { noiseFunc = PerlinNoise; } else if (noiseType == RandomNoiseName) { noiseFunc = RandomNoise; } else { noiseFunc = RandomNoise; } }
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(); }
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); } }
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); } }
public override void Initialize(ModuleWaterfallFX host) { base.Initialize(host); }
/// <summary> /// Initializes the controller /// </summary> /// <param name="host"></param> public virtual void Initialize(ModuleWaterfallFX host) { parentModule = host; }