Beispiel #1
0
 private new void Update()
 {
     base.Update();
     if (parentPoint != null)
     {
         interactable.enabled = !parentPoint.link.freezed;
     }
     if (showPreview)
     {
         prevPoint    = hoveredPoint;
         hoveredPoint = roomnet.GetPointHover(centerTransf.position);
         if (hoveredPoint != null && hoveredPoint.snapped == null && hoveredPoint.type == pointType)
         {
             if (!preview.activeInHierarchy)
             {
                 EnablePreview();
             }
             hoveredPoint.Snap(preview.transform, transform);
         }
         else
         {
             if (preview.activeInHierarchy)
             {
                 DisablePreview();
             }
         }
     }
 }
Beispiel #2
0
 private void BuildNetwork()
 {
     startingRoom.isConnectedToStart = true;
     startingRoom.isFallback         = true;
     fallbackRoom = startingRoom;
     // Initialize Links and Rooms
     foreach (Transform child in transform)
     {
         RoomLink link = child.GetComponent <RoomLink>();
         if (link != null)
         {
             SnapPoint snapPoint = link.transform.GetComponentInChildren <SnapPoint>();
             if (snapPoint != null && snapPoint.type == SnapPointType.Door)
             {
                 link.traverser = new DoorTraverser(link, this, snapPoint);
             }
             else
             {
                 link.traverser = new DefaultLinkTraverser(link, this);
             }
             link.ApplyLink();
         }
         Room room = child.GetComponent <Room>();
         if (room != null)
         {
             rooms.Add(room);
         }
     }
     GetComponentsInChildren(points);
     startingRoom.UpdateConnected();
 }
Beispiel #3
0
 protected override void Snapped()
 {
     base.Snapped();
     transform.SetParent(roomnet.transform);
     parentPoint             = hoveredPoint;
     parentPoint.snapped     = this;
     parentPoint.link.isOpen = true;
     parentPoint.gameObject.SendMessage("OnHintInteraction", SendMessageOptions.DontRequireReceiver);
 }
Beispiel #4
0
 protected override void Unsnapped()
 {
     base.Unsnapped();
     transform.SetParent(null);
     parentPoint.model?.SetActive(true);
     parentPoint.snapped     = null;
     parentPoint.link.isOpen = false;
     parentPoint             = null;
 }
Beispiel #5
0
 private void Start()
 {
     if (startSnapped)
     {
         hoveredPoint = roomnet.GetPointHover(centerTransf.position);
         if (hoveredPoint != null)
         {
             hoveredPoint.Snap(preview.transform, transform);
             transform.position    = preview.transform.position;
             transform.rotation    = preview.transform.rotation;
             rigidbody.isKinematic = true;
             Snapped();
         }
     }
 }
Beispiel #6
0
 public DoorTraverser(RoomLink link, RoomNetwork roomnet, SnapPoint parentPoint) : base(link, roomnet)
 {
     this.parentPoint = parentPoint;
 }