You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AX.InputSystem;
using System;
public class Cloneable : GameObjectCloneable
{
//克隆地点需要限制的克隆类型
private List<CloneObjType> CloneableTypes = new List<CloneObjType>();
void Start()
{
for (int i = (int)CloneObjType.HighSprayingTruck; i <= (int)CloneObjType.WhiteCar; i++)//车辆
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.SafetyOfficer; i <= (int)CloneObjType.VolunteerFireman; i++)//人员
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.Wounded; i <= (int)CloneObjType.FireMan; i++)//灾情
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.WarningLine; i <= (int)CloneObjType.InitialSave; i++)//工具
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.BaseStation4G; i <= (int)CloneObjType.IntegratedPlatform; i++)//通讯保障
{
CloneableTypes.Add((CloneObjType)i);
}
}
public override bool GetCloneAble(GameObject hitObj, CloneObjType cloneObjType)
{
bool clone = false;
//如果是受克隆地点限制需要判断能否在该地点克隆
if (CloneableTypes.Contains(cloneObjType))
{
var cloneableEnums = hitObj.GetComponent<CloneableEnums>();
if (cloneableEnums && cloneableEnums.CloneableTypes.Contains(cloneObjType))
{
clone = true;
}
}
//如果不受克隆地点限制直接能克隆
else
{
clone = true;
}
return clone;
}
}