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.
50 lines
2.2 KiB
50 lines
2.2 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace BuildSystem {
|
|
public static class LogicGridExtensions
|
|
{
|
|
public static void BindLeftAndThis(this Grid self, Grid left)
|
|
{
|
|
left.right = self;
|
|
self.left = left;
|
|
}
|
|
|
|
public static void BindDownAndThis(this Grid self, Grid down)
|
|
{
|
|
down.up = self;
|
|
self.down = down;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 判断是否可以放置,
|
|
/// 首先判断是不是万能,
|
|
/// 如果是再判断是否有车道,
|
|
/// 如果是再判断车道是否相同
|
|
/// </summary>
|
|
/// <param name="self"></param>
|
|
/// <param name="placeObject"></param>
|
|
/// <returns></returns>
|
|
public static bool IsCanPlace(this Grid self, PlaceObject placeObject) {
|
|
bool isCanPlace = true;
|
|
if (self.up!=null && isCanPlace) {
|
|
isCanPlace = (self.up.isHaves[2] == IsHave.None) || ((self.up.isHaves[2] == placeObject.ishave[0]) && (self.up.type[2] == placeObject.type[0] || (self.up.isHaves[2] == IsHave.No && IsHave.No == placeObject.ishave[0])));
|
|
}
|
|
if (self.right != null && isCanPlace)
|
|
{
|
|
isCanPlace = (self.right.isHaves[3] == IsHave.None) || ((self.right.isHaves[3] == placeObject.ishave[1]) && (self.right.type[3] == placeObject.type[1] || (self.right.isHaves[3] == IsHave.No && IsHave.No == placeObject.ishave[1])));
|
|
}
|
|
if (self.down != null && isCanPlace)
|
|
{
|
|
isCanPlace = (self.down.isHaves[0] == IsHave.None) || ((self.down.isHaves[0] == placeObject.ishave[2]) && (self.down.type[0] == placeObject.type[2] || (self.down.isHaves[0] == IsHave.No && IsHave.No == placeObject.ishave[2])));
|
|
}
|
|
if (self.left != null && isCanPlace)
|
|
{
|
|
isCanPlace = (self.left.isHaves[1] == IsHave.None) || ((self.left.isHaves[1] == placeObject.ishave[3]) && (self.left.type[1] == placeObject.type[3] || (self.left.isHaves[1] == IsHave.No && IsHave.No == placeObject.ishave[3])));
|
|
}
|
|
return isCanPlace;
|
|
}
|
|
}
|
|
}
|