private static Example.SkillParticleEmitter ExportParticleEmitter(SkillParticleEmitterItem emitter, List <Example.SkillParticleEmitter> emitters) { Example.SkillParticleEmitter particleEmitter = new Example.SkillParticleEmitter(); List <Example.SkillParticle> skillParticles = new List <Example.SkillParticle>(); var particles = emitter.GetComponentsInChildren <SkillParticleActionItem>(); foreach (var particle in particles) { ExportSkillParticle(particle, skillParticles); } if (emitter is AutoSkillParticleEmitterItem) { AutoSkillParticleEmitterItem autoEmitter = (AutoSkillParticleEmitterItem)emitter; particleEmitter.emitterType = autoEmitter.emitterType; particleEmitter.StartTime = Mathf.FloorToInt(autoEmitter.Firetime * 1000); particleEmitter.Duration = Mathf.FloorToInt(autoEmitter.Duration * 1000); particleEmitter.EmitterShape = ExportSkillShape(autoEmitter.emitterShape); particleEmitter.EmitterPosition = MathUtil.ToVector3f(autoEmitter.emitterOffset); particleEmitter.ParticleTemplate = skillParticles.Count > 0 ? skillParticles[0] : null; particleEmitter.Particles = skillParticles; } else if (emitter is ManualSkillParticleEmitterItem) { ManualSkillParticleEmitterItem autoEmitter = (ManualSkillParticleEmitterItem)emitter; particleEmitter.emitterType = autoEmitter.emitterType; particleEmitter.StartTime = Mathf.FloorToInt(autoEmitter.Firetime * 1000); particleEmitter.Duration = Mathf.FloorToInt(autoEmitter.Duration * 1000); particleEmitter.Particles = skillParticles; } emitters.Add(particleEmitter); return(particleEmitter); }
public override void ResizeControlPosition(DirectorControlState state, Rect trackPosition) { CinemaActionWrapper wrapper = base.Wrapper as CinemaActionWrapper; if (wrapper == null) { return; } if (base.isRenaming) { return; } SkillParticleEmitterItem action = Wrapper.Behaviour as SkillParticleEmitterItem; float num = (wrapper.Firetime * state.Scale.x) + state.Translation.x; float num2 = ((wrapper.Firetime + wrapper.Duration) * state.Scale.x) + state.Translation.x; this.controlPosition = new Rect(num, 0f, num2 - num, trackPosition.height / action.GetLevel()); }
public override void Draw(DirectorControlState state) { SkillParticleEmitterItem action = Wrapper.Behaviour as SkillParticleEmitterItem; if (action == null) { return; } if (IsSelected) { GUI.Box(controlPosition, GUIContent.none, TimelineTrackControl.styles.ActorTrackItemSelectedStyle); } else { GUI.Box(controlPosition, GUIContent.none, TimelineTrackControl.styles.ActorTrackItemStyle); } DrawRenameLabel(action.name, controlPosition); }
public override void calculateHeight() { int maxlevel = 1; TimelineItem[] items = Track.TimelineItems; for (int i = 0; i < items.Length; i++) { if (items[i] is SkillParticleEmitterItem) { SkillParticleEmitterItem item = (SkillParticleEmitterItem)items[i]; maxlevel = Mathf.Max(maxlevel, item.GetLevel()); } } rowsShowing = maxlevel; if (base.isExpanded) { this.trackArea.height = (34f * rowsShowing); } else { this.trackArea.height = (17f); } }