public void UpdateTracer(UpdateWeaponStreamTracerByStreamHitEvent evt, WeaponStreamTracerStreamHitNode weapon)
 {
     StreamHitComponent streamHit = weapon.streamHit;
     GameObject tracer = weapon.weaponStreamTracerEffect.Tracer;
     WeaponStreamTracerBehaviour component = tracer.GetComponent<WeaponStreamTracerBehaviour>();
     if (streamHit.StaticHit != null)
     {
         component.TargetPosition = MathUtil.WorldPositionToLocalPosition(streamHit.StaticHit.Position, tracer);
     }
     else if ((streamHit.TankHit != null) && weapon.Entity.HasComponent<StreamHitTargetLoadedComponent>())
     {
         UpdateWeaponStreamTracerByTargetTankEvent eventInstance = new UpdateWeaponStreamTracerByTargetTankEvent {
             WeaponStreamTracerBehaviour = component,
             Hit = streamHit.TankHit,
             WeaponStreamTracerInstance = tracer
         };
         base.ScheduleEvent(eventInstance, streamHit.TankHit.Entity);
     }
 }
 public void UpdateTracer(UpdateWeaponStreamTracerByTargetTankEvent evt, HullNode tank)
 {
     GameObject hullInstance = tank.hullInstance.HullInstance;
     Vector3 position = MathUtil.LocalPositionToWorldPosition(evt.Hit.LocalHitPoint, hullInstance);
     evt.WeaponStreamTracerBehaviour.TargetPosition = MathUtil.WorldPositionToLocalPosition(position, evt.WeaponStreamTracerInstance);
 }