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(); } } } }
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(); }
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); }
protected override void Unsnapped() { base.Unsnapped(); transform.SetParent(null); parentPoint.model?.SetActive(true); parentPoint.snapped = null; parentPoint.link.isOpen = false; parentPoint = null; }
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(); } } }
public DoorTraverser(RoomLink link, RoomNetwork roomnet, SnapPoint parentPoint) : base(link, roomnet) { this.parentPoint = parentPoint; }