1using System.Collections.Generic;
180 if (
x + 1 >=
Size ||
z <= 0)
192 if (
x <= 0 ||
z <= 0)
216 if (x <= 0 || z + 1 >=
Size)
228 GrowSystem.cell =
this;
653 return room.lot.idRoofStyle != 0;
735 return sourceBridge.alias ==
"field";
737 return sourceFloor.alias ==
"field";
873 return FrontRight.room !=
room;
913 return _dirs / 4 % 8;
951 return (
effect?.LiquidAmount ?? 0) / 3 + 1;
966 if (cellDetail ==
null || cellDetail.
things.Count <= 0)
1174 isSkyFloor = tileType2 != TileType.Sky && (cell3.sourceFloor.tileType == TileType.Sky || cell4.sourceFloor.tileType ==
TileType.
Sky);
1191 if ((cell11.
room !=
null && cell3.
sourceBlock.tileType.CastShadowSelf) || (cell10.room !=
null && cell4.
sourceBlock.tileType.CastShadowSelf))
1220 if (b5 - b - 4 > num)
1224 if (b4 - b - 4 > num)
1329 isWallEdge = !
blocked && cell3.sourceBlock.tileType.IsWallOrFence && cell3.blockDir != 1 && cell4.sourceBlock.tileType.IsWallOrFence && cell4.blockDir != 0;
1363 isShoreSand = cell5.sourceFloor.isBeach || cell3.sourceFloor.isBeach || cell4.sourceFloor.isBeach || cell2.
sourceFloor.isBeach;
1375 autotile = (byte)(((IsAutoTileEdge(cell5) &&
z !=
Size - 1) ? 1 : 0) + ((IsAutoTileEdge(cell3) &&
x !=
Size - 1) ? 2 : 0) + ((IsAutoTileEdge(cell4) &&
z != 0) ? 4 : 0) + ((IsAutoTileEdge(cell2) &&
x != 0) ? 8 : 0));
1383 autotileBridge = (byte)(((IsBridgeAutoTileEdge(cell5) &&
z !=
Size - 1) ? 1 : 0) + ((IsBridgeAutoTileEdge(cell3) &&
x !=
Size - 1) ? 2 : 0) + ((IsBridgeAutoTileEdge(cell4) &&
z != 0) ? 4 : 0) + ((IsBridgeAutoTileEdge(cell2) &&
x != 0) ? 8 : 0));
1391 autotileObj = (byte)(((IsObjAutoTileEdge(cell5) &&
z !=
Size - 1) ? 1 : 0) + ((IsObjAutoTileEdge(cell3) &&
x !=
Size - 1) ? 2 : 0) + ((IsObjAutoTileEdge(cell4) &&
z != 0) ? 4 : 0) + ((IsObjAutoTileEdge(cell2) &&
x != 0) ? 8 : 0));
1405 bool IsAutoTileEdge(
Cell cell)
1417 bool IsBridgeAutoTileEdge(
Cell cell)
1425 bool IsObjAutoTileEdge(
Cell cell)
1427 if (cell.
obj !=
obj && (
obj != 31 || (cell.
obj != 97 && cell.
obj != 98)))
1438 int num2 = (sourceBlock.tileType.IsWallOrFence ? 3 :
sourceBlock._tiles.Length);
1458 num = sourceFloor._tiles.Length - 1;
1467 public void RotateObj(
bool reverse =
false,
bool useBlockDir =
false)
1470 num = ((!reverse) ? (num + 1) : (num - 1));
1473 num = sourceObj._tiles.Length - 1;
1491 bool flag = EInput.isShiftDown || Input.GetMouseButton(1);
1493 if (mouseTarget.
card !=
null)
1502 if (
sourceBlock.tileType.CanRotate(buildMode:
false))
1509 if (
sourceObj.tileType.CanRotate(buildMode:
false))
1555 c.Thing.stackOrder = detail.things.Count - 1;
1606 text =
"_of2".lang(
matObj.GetName(), text);
1608 if (plantData !=
null && plantData.
size > 0)
1610 text =
Lang.
GetList(
"plant_size")[plantData.size - 1] + text;
1612 text = text.AddArticle();
1613 if (plantData !=
null)
1615 if (plantData.
seed !=
null)
1623 text = text +
"+" + plantData.
seed.
encLV;
1626 if (plantData.
fert != 0)
1628 text += ((plantData.fert > 0) ?
"fertilized" :
"defertilized").lang();
1637 string name = row.
Name;
1638 text = ((sourceObj.id == 82) ?
"backerRemain".lang(text, name) :
"backerTree".lang(text, name));
1651 GrowSystem.cell =
this;
1652 return obj.growth?.CanGrow(date) ??
false;
1702 return thing.Pref.height + 0.1f;
1739 return detail.charas.Count > 0;
void Add(Act a, string s="")
virtual void Rotate(bool reverse=false)
virtual CardRow sourceCard
static CellDetail Spawn()
SourceCellEffect.Row source
override int GetHashCode()
static List< SourceBlock.Row > blockList
SourceBlock.Row sourceBlock
SourceMaterial.Row matBlock
static List< SourceFloor.Row > floorList
bool CanBuildRamp(int dir)
SourceFloor.Row sourceFloor
SourceMaterial.Row matRoofBlock
override bool IsPathBlocked(PathManager.MoveType moveType)
SourceMaterial.Row matObj
CellDetail GetOrCreateDetail()
SourceMaterial.Row matBridge
void TryGrow(VirtualDate date=null)
static List< SourceObj.Row > objList
SourceFloor.Row sourceBridge
override string ToString()
SourceMaterial.Row matFloor
SourceBlock.Row sourceRoofBlock
SourceCellEffect.Row sourceEffect
bool CanGrow(SourceObj.Row obj, VirtualDate date)
static List< SourceCellEffect.Row > effectList
void RotateObj(bool reverse=false, bool useBlockDir=false)
SourceFloor.Row sourceSurface
bool HasFullBlockOrWallOrFence
static List< SourceMaterial.Row > matList
bool HasZoneStairs(bool includeLocked=true)
SourceMaterial.Row matObj_fixed
override bool Equals(object obj)
BackerContentConfig backer
static SourceManager sources
void TryGrow(VirtualDate date)
virtual bool CanReapSeed()
virtual bool BlockSight(Cell cell)
static string[] GetList(string id)
static string Parse(string idLang, string val1, string val2=null, string val3=null, string val4=null, string val5=null)
PlantData TryGetPlant(Point p)
Dictionary< int, int > gatherCounts
Dictionary< int, int > backerObjs
Point Set(int _x, int _z)
void RefreshNeighborTiles()
virtual bool IsSnowCovered
static TileTypeHalfBlock HalfBlock
static TileTypeSlope Slope
static TileTypeStairs Stairs
virtual bool IsBlockSight
virtual bool ShouldRefreshTile