Inheritance: RotatablePillar
Exemplo n.º 1
0
 void testNearbyT(RotatableNode sourceNode)
 {
     switch(pillarState)
     {
     case PillarStateTypes.A:
         if(sourceNode!= null)
         {
             if(rightNode!=null)if(sourceNode!=rightNode)	rightNode.TryConnectPath(this);
             if(bottomNode!=null)if(sourceNode!=bottomNode)	bottomNode.TryConnectPath(this);
             if(leftNode!=null)if(sourceNode!=leftNode)	leftNode.TryConnectPath(this);
         }
         else
         {
             if(rightNode!=null)rightNode.TryConnectPath(this);
             if(bottomNode!=null)bottomNode.TryConnectPath(this);
             if(leftNode!=null)leftNode.TryConnectPath(this);
         }
         break;
     case PillarStateTypes.B:
         if(sourceNode!= null)
         {
             if(upNode!=null)if(sourceNode!=upNode)		upNode.TryConnectPath(this);
             if(bottomNode!=null)if(sourceNode!=bottomNode)	bottomNode.TryConnectPath(this);
             if(leftNode!=null)if(sourceNode!=leftNode)	leftNode.TryConnectPath(this);
         }
         else
         {
             if(upNode!=null)upNode.TryConnectPath(this);
             if(bottomNode!=null)bottomNode.TryConnectPath(this);
             if(leftNode!=null)leftNode.TryConnectPath(this);
         }
         break;
     case PillarStateTypes.C:
         if(sourceNode!= null)
         {
             if(rightNode!=null)if(sourceNode!=rightNode)	rightNode.TryConnectPath(this);
             if(upNode!=null)if(sourceNode!=upNode)		upNode.TryConnectPath(this);
             if(leftNode!=null)if(sourceNode!=leftNode)	leftNode.TryConnectPath(this);
         }
         else
         {
             if(rightNode!=null)rightNode.TryConnectPath(this);
             if(upNode!=null)upNode.TryConnectPath(this);
             if(leftNode!=null)leftNode.TryConnectPath(this);
         }
         break;
     case PillarStateTypes.D:
         if(sourceNode!= null)
         {
             if(rightNode!=null)if(sourceNode!=rightNode)	rightNode.TryConnectPath(this);
             if(upNode!=null)if(sourceNode!=upNode)		upNode.TryConnectPath(this);
             if(bottomNode!=null)if(sourceNode!=bottomNode)	bottomNode.TryConnectPath(this);
         }
         else
         {
             if(rightNode!=null)rightNode.TryConnectPath(this);
             if(upNode!=null)upNode.TryConnectPath(this);
             if(bottomNode!=null)	bottomNode.TryConnectPath(this);
         }
         break;
     }
 }
Exemplo n.º 2
0
 public void TryConnectPath(RotatableNode sourceNode)
 {
     switch(nodeType)
     {
     case NodeType.I:
         switch(pillarState)
         {
         case PillarStateTypes.A:
             if(sourceNode == bottomNode)
                 Connect(true);
             break;
         case PillarStateTypes.B:
             if(sourceNode == leftNode)
                 Connect(true);
             break;
         case PillarStateTypes.C:
             if(sourceNode == upNode)
                 Connect(true);
             break;
         case PillarStateTypes.D:
             if(sourceNode == rightNode)
                 Connect(true);
             break;
         }
         break;
     case NodeType.L:
         switch(pillarState)
         {
         case PillarStateTypes.A:
             if(sourceNode == upNode || sourceNode == rightNode)
                 Connect(true);
             break;
         case PillarStateTypes.B:
             if(sourceNode == rightNode || sourceNode == bottomNode)
                 Connect(true);
             break;
         case PillarStateTypes.C:
             if(sourceNode == bottomNode || sourceNode == leftNode)
                 Connect(true);
             break;
         case PillarStateTypes.D:
             if(sourceNode == leftNode || sourceNode == upNode)
                 Connect(true);
             break;
         }
         if(nodeState == NodeState.Connected)
             testNearbyL(sourceNode);
         break;
     case NodeType.T:
         switch(pillarState)
         {
         case PillarStateTypes.A:
             if(sourceNode == leftNode || sourceNode == rightNode || sourceNode == bottomNode || sourceNode == null)
                 Connect(true);
             break;
         case PillarStateTypes.B:
             if(sourceNode == leftNode || sourceNode == upNode || sourceNode == bottomNode|| sourceNode == null)
                 Connect(true);
             break;
         case PillarStateTypes.C:
             if(sourceNode == leftNode || sourceNode == rightNode || sourceNode == upNode|| sourceNode == null)
                 Connect(true);
             break;
         case PillarStateTypes.D:
             if(sourceNode == upNode || sourceNode == rightNode || sourceNode == bottomNode|| sourceNode == null)
                 Connect(true);
             break;
         }
         if(nodeState == NodeState.Connected)
             testNearbyT(sourceNode);
         break;
     }
 }
Exemplo n.º 3
0
 protected override void Awake()
 {
     base.Awake();
     fireParticles.AddRange(GetComponentsInChildren<ParticleSystem>());
     fireLight = GetComponentInChildren<Light>();
     rotation = transform.localRotation.eulerAngles;
     targetRotation = transform.localRotation.eulerAngles;
     if(leftTransform)	leftNode = leftTransform.GetComponent<RotatableNode>();
     if(rightTransform)	rightNode = rightTransform.GetComponent<RotatableNode>();
     if(upTransform)		upNode = upTransform.GetComponent<RotatableNode>();
     if(bottomTransform)	bottomNode = bottomTransform.GetComponent<RotatableNode>();
     neighborNodes.Add(leftNode);
     neighborNodes.Add(rightNode);
     neighborNodes.Add(upNode);
     neighborNodes.Add(bottomNode);
 }