public void LocateWeaponVisualRootUnderMountPoint(NodeAddedEvent evt, TankGraphicsNode tank, [Context, JoinByTank] WeaponGraphicsNode weaponGraphics)
        {
            WeaponVisualRootComponent weaponVisualRoot = weaponGraphics.weaponVisualRoot;

            weaponVisualRoot.transform.parent = tank.tankVisualRoot.transform;
            Transform  mountPoint = tank.mountPoint.MountPoint;
            GameObject obj2       = new GameObject("VisualMountPoint");

            obj2.transform.SetParent(tank.tankVisualRoot.transform, false);
            obj2.transform.localPosition = mountPoint.localPosition;
            obj2.transform.localRotation = mountPoint.localRotation;
            VisualMountPointComponent component = new VisualMountPointComponent {
                MountPoint = obj2.transform
            };

            tank.Entity.AddComponent(component);
            weaponVisualRoot.transform.SetParent(obj2.transform, false);
            weaponVisualRoot.transform.localPosition = Vector3.zero;
            weaponVisualRoot.transform.localRotation = Quaternion.identity;
            this.InitCharacterShadowSystem(tank.Entity, tank.tankVisualRoot.transform, weaponGraphics.weaponVisualRoot.transform);
            base.NewEvent <ContinueAssembleTankEvent>().Attach(tank).ScheduleDelayed(0.3f);
        }
 public void ContinueAssebleTank(ContinueAssembleTankEvent e, TankGraphicsNode tank)
 {
     tank.Entity.AddComponent <AssembledTankInactiveStateComponent>();
 }