70 lines
2.1 KiB
C#
70 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using AZTECHWB.Core;
|
|
using Unity.Collections;
|
|
using UnityEngine;
|
|
|
|
namespace AZTECHWB
|
|
{
|
|
public class Building : MonoBehaviour
|
|
{
|
|
public List<Floor> floorList = new List<Floor>();
|
|
public List<Machine> machineList = new List<Machine>();
|
|
public bool isOnlyMachineFloorsEnabled;
|
|
public bool isAutoActiveFloor;
|
|
public void Init()
|
|
{
|
|
machineList.Clear();
|
|
floorList.Clear();
|
|
|
|
var machines = GetComponentsInChildren<Machine>(true);
|
|
for (int i = 0; i < machines.Length; i++)
|
|
{
|
|
machines[i].Init();
|
|
machineList.Add(machines[i]);
|
|
}
|
|
|
|
var floor = GetComponentsInChildren<Floor>(true);
|
|
for (int i = 0; i < floor.Length; i++)
|
|
{
|
|
floorList.Add(floor[i]);
|
|
}
|
|
|
|
isAutoActiveFloor= true;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (!isAutoActiveFloor)
|
|
return;
|
|
|
|
if (AZTECHAppMain.Instance.cameraController == null)
|
|
return;
|
|
|
|
var cam = AZTECHAppMain.Instance.cameraController;
|
|
isOnlyMachineFloorsEnabled = cam.IsCameraInsideBoundary();
|
|
|
|
var equipmentInFloor = floorList.FirstOrDefault(f => !f.isEmptyFloor);
|
|
equipmentInFloor.gameObject.SetActive(isOnlyMachineFloorsEnabled);
|
|
|
|
var emptyFloor = floorList.FirstOrDefault(f => f.isEmptyFloor);
|
|
emptyFloor.gameObject.SetActive(!isOnlyMachineFloorsEnabled);
|
|
}
|
|
public void SetActiveEmptyFloor(bool isOn)
|
|
{
|
|
isAutoActiveFloor = isOn;
|
|
|
|
if (!isAutoActiveFloor)
|
|
{
|
|
var equipmentInFloor = floorList.FirstOrDefault(f => !f.isEmptyFloor);
|
|
equipmentInFloor.gameObject.SetActive(true);
|
|
isOnlyMachineFloorsEnabled = true;
|
|
|
|
var emptyFloor = floorList.FirstOrDefault(f => f.isEmptyFloor);
|
|
emptyFloor.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|