Exemple #1
0
        public void PlaceMineOnGround(NodeAddedEvent e, MineInstanceNode mine)
        {
            MinePlacingTransformComponent minePlacingTransform = mine.minePlacingTransform;
            Transform transform = mine.effectInstance.GameObject.transform;

            if (!mine.minePlacingTransform.HasPlacingTransform)
            {
                transform.SetPositionSafe(mine.minePosition.Position);
            }
            else
            {
                transform.SetPositionSafe(minePlacingTransform.PlacingData.point);
                transform.SetRotationSafe(Quaternion.FromToRotation(Vector3.up, minePlacingTransform.PlacingData.normal));
            }
        }
Exemple #2
0
 public void InitMinePlacingTransform(InitMinePlacingTransformEvent e, SingleNode <MineConfigComponent> mine, SingleNode <MapInstanceComponent> map)
 {
     if (!mine.Entity.HasComponent <MinePlacingTransformComponent>())
     {
         RaycastHit hit;
         MinePlacingTransformComponent component = new MinePlacingTransformComponent();
         if (!Physics.Raycast(e.Position + (Vector3.up * 3f), Vector3.down, out hit, TANK_MINE_RAYCAST_DISTANCE, LayerMasks.STATIC))
         {
             component.HasPlacingTransform = false;
         }
         else
         {
             component.PlacingData         = hit;
             component.HasPlacingTransform = true;
         }
         mine.Entity.AddComponent(component);
     }
 }