void OnMouseUp() { if (CurrentSlot) { if (LastPlacedSlot && LastPlacedSlot != CurrentSlot) { // LastPlacedSlot.PastProperty = null; } LastPlacedSlot = CurrentSlot; transform.position = CurrentSlot.transform.position; if (CurrentSlot != LastPlacedSlot) { // otherwise the last one won't stay.... } // if (CurrentSlot.PastProperty != PlantProperty) { TimeToPlant = 1; } } else { transform.position = StartingPosition; } }
void CheckForSlotHighlights() { bool foundSlot = false; foreach (SlotResponder slot in Slots) { // Debug.Log ("Checking Slots..."); if (ShouldHighlightSlot(slot)) { // Debug.Log ("Should Highlight Slot"); slot.HighlightForHovering(); CurrentSlot = slot; foundSlot = true; } else { slot.ResetToStandardMaterial(); } } if (!foundSlot) { CurrentSlot = null; } }
void FindAllSlots() { GameObject[] SlotObjects = GameObject.FindGameObjectsWithTag("Slot"); foreach (GameObject Slot in SlotObjects) { SlotResponder res = Slot.GetComponent <SlotResponder> (); if (res) { Slots.Add(res); // Debug.Log ("Found Slot"); } } }
bool ShouldHighlightSlot(SlotResponder Slot) { float offset = 0.5f; float xMin = Slot.transform.position.x - offset; float xMax = Slot.transform.position.x + offset; float zMin = Slot.transform.position.z - offset; float zMax = Slot.transform.position.z + offset; float plantX = transform.position.x; float plantZ = transform.position.z; if (plantX > xMin && plantX < xMax && plantZ > zMin && plantZ < zMax) { return(true); } else { return(false); } }