302 public int[]
floatVs =
new int[10] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
308 public float[]
floatYs =
new float[10] { 0f, 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f, 9f };
340 protected RaycastHit2D[]
rays =
new RaycastHit2D[1];
530 for (
int i = 0; i < 256; i++)
572 subtleHighlightArea = EMono.scene.actionMode.AreaHihlight != 0 && (EMono.scene.actionMode.AreaHihlight == AreaHighlightMode.Build || EMono.scene.actionMode.AreaHihlight !=
AreaHighlightMode.Edit);
590 fogBounds = (EMono._map.config.forceHideOutbounds && (!EMono.debug.godBuild || !
buildMode)) || (EMono.core.config.game.dontRenderOutsideMap && !
buildMode);
618 Fov.nonGradientMod = profile.
global.fovModNonGradient;
626 for (
int i = 0; i <
floatYs.Length; i++)
709 noRoofMode = EMono.game.config.noRoof || screen.focusOption !=
null;
730 currentRoom.data.visited =
true;
734 room.data.visited =
true;
768 Vector3Int vector3Int =
screen.
grid.WorldToCell(mposWorld);
770 mz = vector3Int.x - 1;
775 TestPoint.x =
mx + num3;
776 TestPoint.z =
mz - num3;
780 Physics2D.SyncTransforms();
781 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
787 TestPoint.x =
mx + num3 - 1;
788 TestPoint.z =
mz - num3;
792 Physics2D.SyncTransforms();
793 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
799 TestPoint.x =
mx + num3;
800 TestPoint.z =
mz - num3 + 1;
804 Physics2D.SyncTransforms();
805 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
813 bool flag2 = EMono._zone.UseFog && !
EMono.
scene.
bg.wall;
818 cx = screen.scrollX - screen.scrollY +
x - (
z + 1) / 2;
819 cz = screen.scrollY + screen.scrollX +
x +
z / 2;
824 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)
z *
edgeBlockFix.z;
879 int valueOrDefault = (this.room?.
lot?.
idBGM).GetValueOrDefault();
880 if (valueOrDefault == 0)
886 BGMData data =
EMono.
Sound.plLot.list[0].data;
887 if ((
object)data !=
null && data.id == valueOrDefault)
899 SoundManager.bgmVolumeMod = ((!LayerDrama.maxBGMVolume && !EMono._map.IsIndoor && this.room !=
null && !this.room.data.atrium && this.room.
HasRoof) ? (-0.6f) : 0f);
932 this.room = this.cell.
room;
954 floorDir = this.cell.sourceObj.snowTile - 1;
974 light = (this.cell.pcSync ? this.cell.light : (this.cell.light / 3 * 2));
1012 liquidLv = (param.liquidLv = ((!flag && !
isUnderwater) ? (((this.cell.
liquidLv +
this.cell._bridge != 0) ?
this.cell.sourceBridge.tileType.LiquidLV :
sourceFloor.tileType.LiquidLV) * 10) : 0));
1022 if (effect !=
null && effect.
IsFire)
1032 if (this.room !=
null)
1034 this.room.lot.sync =
true;
1045 if ((this.room !=
null && this.room.
lot ==
currentLot) || flag2)
1064 param.color = (
blockLight = (int)(
blockLight * 50f) * 262144 + ((this.cell.lightR >= 64) ? 63 : this.cell.
lightR) * 4096 + ((this.cell.lightG >= 64) ? 63 : this.cell.
lightG) * 64 + ((this.cell.lightB >= 64) ? 63 : this.cell.
lightB));
1082 bool num = this.room !=
null && sourceBlock.tileType.CastShadowSelf && !this.cell.
hasDoor;
1083 bool flag3 = this.room !=
null &&
showRoof && this.room.lot.idRoofStyle != 0 && !this.room.data.atrium && !
sourceBlock.tileType.Invisible;
1084 if (flag3 && this.cell.
hasDoor &&
this.cell.IsLotEdge)
1088 if (num || !
isSeen || flag3)
1102 param.y += 0.01f *
floatY;
1110 param.x += anime2.
v.x;
1111 param.y += anime2.
v.y;
1112 param.z += anime2.
v.z;
1129 param.dir = this.cell._roofBlockDir % 4;
1139 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1147 if (dir == 0 || dir == 2)
1164 if (dir == 1 || dir == 2)
1187 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref row2.
matColor,
_sourceBlock.sourceAutoFloor.colorMod));
1193 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1198 int shadow2 = shadowPref.
shadow;
1203 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1223 param.matColor = 104025f;
1226 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight * _heightMod.y +
ugFixBridgeBottom.x;
1227 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
1249 float num2 = (float)(
int)this.cell.TopHeight *
_heightMod.y;
1254 param.z += ugFix.z +
slopeFixZ * (float)i;
1300 freePos.x = (freePos.y = (freePos.z = 0f));
1304 param.x += rampFix.x;
1305 param.y += rampFix.y;
1306 param.z += rampFix.z;
1307 freePos.x += rampFix.x;
1308 freePos.y += rampFix.y;
1309 freePos.z += rampFix.z;
1311 param.y += (flag ? 0f : ((this.cell._bridge != 0) ? this.cell.
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight));
1319 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
1349 if (!isInstalled && t.
category.tileDummy != 0)
1353 float num11 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.
height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.
height)));
1359 shadow = thingPos.y < 0.16f && num9 < 0.16f;
1369 _actorPos.z = param.z + num10;
1370 if (this.room !=
null)
1380 _actorPos.x =
orgX + num7;
1385 if (thing?.
id != t.
id)
1395 _actorPos.z -= 0.2f;
1398 _actorPos.y -= num4;
1400 _actorPos.z += renderSetting.thingZ + (float)j * -0.01f +
zSetting.mod1 *
thingPos.y;
1410 freePos.x += rampFix2.x;
1411 freePos.y += rampFix2.y;
1412 freePos.z += rampFix2.z;
1417 liquidLv -= (int)(rampFix2.y * 150f);
1432 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
1433 _actorPos.z += pref.
z;
1434 thingPos.z += pref.
z;
1443 thingPos.y += num11;
1477 _actorPos.x += t.
fx;
1478 _actorPos.y += t.
fy;
1486 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
1487 _actorPos.z += pref.
z;
1490 thingPos.z += pref.
z;
1500 thingPos.y += num11;
1501 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
1502 _actorPos.z += pref.
z;
1503 thingPos.z += pref.
z;
1508 float num12 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
1514 _actorPos.y += 0.01f *
floatY - num12;
1517 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
1564 _actorPos.x += t.
fx;
1575 _actorPos.z += -0.5f;
1616 param.tile += ((param.tile < 0f) ? (-64) : 64);
1625 _actorPos.y = EMono.pc.renderer.position.y - pref.
height;
1626 _actorPos.z = EMono.pc.renderer.position.z + 0.02f;
1637 num7 += pref.stackX * (float)((!t.
flipX) ? 1 : (-1));
1655 param.shadowFix = 0f - num9;
1656 param.color += 1310720f;
1661 if (chara.
host !=
null)
1691 if (restrainer !=
null)
1694 if (getRestrainPos !=
default(Vector3))
1698 float num14 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.
source.pref.height);
1699 _actorPos.x = position.x + getRestrainPos.x * (float)((restrainer.
owner.
dir % 2 == 0) ? 1 : (-1));
1700 _actorPos.y = position.y + num14;
1701 _actorPos.z = position.z + getRestrainPos.z;
1706 param.shadowFix = 0f;
1715 float num15 = chara.renderer.data.size.y * 0.3f;
1720 float num16 = thingPos.y + num15;
1721 float num17 = (float)k * -0.01f;
1728 _actorPos.z += renderSetting.laydownZ + num17;
1729 param.liquidLv = ((thingPos.y == 0f &&
liquidLv > 0) ? 90 : 0);
1730 thingPos.y += num15 * 0.8f;
1740 float num18 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
1741 float num19 =
floatYs[chara.uid % 10] + 10f + (float)(chara.
uid % 30);
1742 orgY += 0.01f * num19 - num18;
1743 _actorPos.y += 0.01f * num19 - num18;
1744 param.shadowFix -= 0.01f * num19 - num18;
1753 float num20 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
1755 _actorPos.y += 0.01f *
floatY - num20;
1756 int num21 = TileType.FloorWaterShallow.LiquidLV * 10;
1757 num21 -= (int)(
floatY * 0.5f);
1758 param.liquidLv = num21;
1762 param.liquidLv -= 20;
1816 param.tile = defBlock.
_tiles[this.cell.blockDir % defBlock.
_tiles.Length];
1817 if (defBlock.
id != 1)
1823 param.matColor = 104025f;
1829 param.z += ugFix.z +
slopeFixZ * (float)l;
1843 if (!isWater && (this.cell.
Front.
sourceFloor.tileType.IsWater ||
this.cell.Right.sourceFloor.tileType.IsWater) && this.cell.sourceBlock.tileType.RenderWaterBlock && !flag)
1856 num24 = row3.
_tiles[this.cell.blockDir % row3.
_tiles.Length];
1858 if (((this.cell.
Front.
shore / 12) & 1) == 0 && this.cell.
Front.
sourceFloor.tileType.IsWater &&
this.cell.Front.height <=
height &&
this.cell.Front.sourceBlock.tileType.RenderWaterBlock)
1860 param.y = (float)(
cz -
cx) * screen.tileAlign.y - (this.cell.Front.sourceFloor.tileType.IsDeepWater ? 0.6f : 0.4f) + (
float)(int)this.cell.
Front.
height *
_heightMod.y;
1862 param.
tile = num24 + ((!
this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1865 if (((this.cell.
Right.
shore / 12) & 8) == 0 && this.cell.
Right.
sourceFloor.tileType.IsWater &&
this.cell.Right.height <=
height &&
this.cell.Right.sourceBlock.tileType.RenderWaterBlock)
1867 param.y = (float)(
cz -
cx) * screen.tileAlign.y - (this.cell.Right.sourceFloor.tileType.IsDeepWater ? 0.6f : 0.4f) + (
float)(int)this.cell.
Right.
height *
_heightMod.y;
1869 param.
tile = num24 + ((!
this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1877 param.matColor = 104025f;
1901 param.tile = defBlock2.
_tiles[this.cell.blockDir % defBlock2.
_tiles.Length];
1902 if (defBlock2.
id != 1)
1908 param.matColor = 104025f;
1913 param.z += ugFix.z +
slopeFixZ * (float)m;
1930 floorLight2 = (int)(
floorLight2 * 50f) * 262144 + ((this.cell.lightR >= 64) ? 63 : this.cell.
lightR) * 4096 + ((this.cell.lightG >= 64) ? 63 : this.cell.
lightG) * 64 + ((this.cell.lightB >= 64) ? 63 : this.cell.
lightB);
1939 if (isWater && flag)
1941 param.y -= 0.01f *
floatY;
1951 int num25 = (int)(Time.realtimeSinceStartup * 1000f / (
float)
sourceFloor.anime[1] % (float)
sourceFloor.anime[0]);
1952 param.tile += num25;
1975 if (!this.cell.
Right.
IsSnowTile &&
this.cell.Right.topHeight ==
this.cell.topHeight)
1979 if (!this.cell.
Front.
IsSnowTile &&
this.cell.Front.topHeight ==
this.cell.topHeight)
1985 param.tile = 448 + num26 + 12;
1997 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
2021 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
2038 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
2056 if (this.cell.
autotile != 0 &&
sourceFloor.autotile != 0 && (!
hasBridge ||
this.cell.bridgeHeight -
this.cell.height > 3) && !
this.cell.skipRender && num26 == 0)
2076 int num28 = this.cell.shore / num27;
2077 int num29 = this.cell.shore % num27;
2079 if (this.cell.
shore != 0)
2081 Cell cell = ((((uint)num28 & (
true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num28 & 2u) != 0) ? this.cell.
Right : ((((uint)num28 & 4u) != 0) ? this.cell.Front : this.cell.
Left)));
2084 cell = ((((uint)num28 & 8u) != 0) ? this.cell.
Left : ((((uint)num28 & 4u) != 0) ? this.cell.Front : ((((uint)num28 & 2u) != 0) ? this.cell.
Right :
this.cell.
Back)));
2110 param.tile = (24 + num29 / 2) * 32 + num29 % 2 * 16 + num28;
2114 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num27) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.
Left.
shore / num27) & (
true ? 1u : 0u)) != 0)
2121 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num27) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num27) & (
true ? 1u : 0u)) != 0)
2128 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num27) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num27) & 4u) != 0)
2135 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num27) & 8u) != 0 &&
this.cell.Left.isShoreSand && ((uint)(
this.cell.Left.shore / num27) & 4u) != 0)
2142 if (this.cell.
_bridge != 0 &&
this.cell.isBridgeEdge &&
this.cell.bridgePillar !=
byte.MaxValue)
2161 if (((uint)num28 & (
true ? 1u : 0u)) != 0)
2163 if (((uint)num28 & 8u) != 0)
2165 if ((num28 & 2) == 0 && (num28 & 4) == 0)
2171 if (((uint)num28 & 2u) != 0)
2173 if ((num28 & 8) == 0 && (num28 & 4) == 0)
2180 if (((uint)num28 & 4u) != 0)
2182 if (((uint)num28 & 8u) != 0)
2184 if ((num28 & 2) == 0 && (num28 & 1) == 0)
2190 if (((uint)num28 & 2u) != 0)
2192 if ((num28 & 8) == 0 && (num28 & 1) == 0)
2201 if (!this.cell.
Front.
sourceFloor.tileType.IsWater && !
this.cell.Front.isDeck)
2205 if (!this.cell.
Right.
sourceFloor.tileType.IsWater && !
this.cell.Right.isDeck)
2213 if (!this.cell.
Back.
sourceFloor.tileType.IsWater && !
this.cell.Back.isDeck)
2219 if (((uint)(this.cell.
shore / num27) & (
true ? 1u : 0u)) != 0)
2251 if (!this.cell.
Left.
sourceFloor.tileType.IsWater && !
this.cell.Left.isDeck)
2257 if (((uint)(this.cell.
shore / num27) & 8u) != 0)
2292 param.y += 0.01f *
floatY;
2311 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight *
_heightMod.y;
2312 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
2315 param.y += 0.01f *
floatY;
2340 if (this.cell.
shadow != 0)
2344 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
2365 if (this.cell.
isBridgeEdge &&
this.cell.bridgeHeight -
this.cell.height >= 3 &&
this.cell.bridgePillar !=
byte.MaxValue && !
noSlopMode)
2382 param.tile = row4.
_tiles[0] + ((num31 == 2) ? 32 : 0);
2389 param.tile = row4.
_tiles[0] + 32;
2394 for (
int n = 0; n < num31; n++)
2412 if (this.cell.
_deco != 0)
2421 param.tile = (26 + sourceDeco.autotile / 2) * 32 +
sourceDeco.autotile % 2 * 16 +
this.cell.autotileDeco;
2435 if (this.cell.
_block != 0 && !
this.cell.hasDoor)
2468 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2481 else if (this.tileType.
IsFullBlock &&
this.room !=
this.cell.FrontRight.room && (
this.cell.FrontRight.room ==
currentRoom || (
this.room?.lot !=
currentLot &&
this.cell.FrontRight.room?.lot ==
currentLot)))
2488 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2512 if (this.room !=
null)
2525 int num34 = ((this.room.data.maxHeight == 0) ? 2 : this.room.
data.
maxHeight);
2526 roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.
lot.
height < num34) ? this.room.lot.height : num34) + 0.01f * (
float)this.room.
lot.
heightFix;
2545 if (this.cell.
Back.
IsRoomEdge &&
this.cell.Right.IsRoomEdge &&
this.cell.Back.room ==
null &&
this.cell.Right.room ==
null &&
this.cell.Right.Front.room?.lot ==
this.room?.lot)
2550 else if (this.cell.
Back.
room !=
null &&
this.cell.Back.room.
lot == (
this.cell.Front.room ??
this.cell.Right.room)?.lot)
2561 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2598 param.color = (int)(50f *
blockLight) * 262144;
2599 param.matColor = 104025f;
2641 if (this.cell.
Things.Count > 0)
2658 Room room2 = this.cell.Front.room ?? this.cell.
room;
2659 if (room2 ==
null && this.cell.
Right.
room !=
null)
2663 if (!invisible && room2 !=
null)
2665 if (room2.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2687 room2 = this.cell.Right.room ?? this.cell.
room;
2688 if (room2 ==
null && this.cell.
Front.
room !=
null)
2692 if (!invisible && room2 !=
null)
2694 if (room2.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2728 bool flag10 = blockDir == 1 ||
_lowblock || flag9;
2729 bool flag11 = blockDir == 0 ||
_lowblock || flag9;
2736 if (!this.cell.
IsRoomEdge || (
this.cell.Front.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2750 if (!this.cell.
IsRoomEdge || (
this.cell.Right.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2761 if (blockDir == 0 || blockDir == 2)
2764 Room room3 = this.cell.Front.room ?? this.cell.
room;
2765 if (room3 !=
null && this.tileType.
IsWall)
2767 if (room3.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2787 if (blockDir == 2 &&
left.sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2790 param.mat =
left.matBlock;
2825 param.tile =
_sourceBlock._tiles[0] + ((flag10 && flag11 && this.tileType.UseLowBlock && !flag9) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2835 if (!flag10 && !
showRoof && this.cell.
Left.
HasWallOrFence &&
this.cell.Left.blockDir != 0 && !
this.cell.Left.isToggleWallPillar)
2838 param.tile =
_sourceBlock._tiles[0] + ((flag10 && this.tileType.UseLowBlock && !flag9) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2855 param.tile =
_sourceBlock._tiles[0] + ((flag10 && this.tileType.UseLowBlock && !flag9) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2870 if (blockDir == 1 || blockDir == 2)
2875 Room room4 = this.cell.Right.room ?? this.cell.
room;
2876 if (room4 !=
null && this.tileType.
IsWall)
2878 if (room4.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2897 if (blockDir == 2 && this.cell.
room ==
null &&
this.cell.Right.room !=
null)
2911 int num39 = ((room5.data.maxHeight == 0) ? 2 : room5.
data.
maxHeight);
2912 roomHeight = EMono.setting.render.roomHeightMod * (float)((room5.
lot.
height < num39) ? room5.lot.height : num39) + 0.01f * (
float)room5.
lot.
heightFix;
2916 if (blockDir == 2 && back2.
sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2955 param.tile =
_sourceBlock._tiles[0] + ((flag11 && this.tileType.UseLowBlock && !flag9) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2977 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref
matBlock.matColor,
_sourceBlock.sourceAutoFloor.colorMod));
2985 int num35 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.
objDir : 0) + 1;
2996 int shadow3 = shadowPref2.
shadow;
3023 if (this.cell.
room !=
null || !
this.cell.IsRoomEdge || !
showRoof)
3027 if (this.cell.
_block == 0 || !
this.cell.sourceBlock.tileType.RepeatBlock)
3030 if (obj ==
null || !obj.
HasRoof)
3038 if (!
showRoof || !
roof || this.cell.
room ==
null ||
this.cell.Front.room ==
null ||
this.cell.Right.room ==
null)
3049 if (this.cell.
effect !=
null)
3057 param.mat = defaultMaterial;
3065 if (sourceEffect2.
anime.Length != 0)
3067 if (sourceEffect2.
anime.Length > 2)
3069 float num40 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[2];
3070 if (!(num40 >= (
float)sourceEffect2.
anime[0]))
3072 param.tile += num40;
3077 float num41 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[0];
3078 param.tile += num41;
3092 if (this.cell.
critter !=
null)
3095 int snowTile = critter.
tile;
3125 param.x += anime4.
v.x;
3126 param.y += anime4.
v.y;
3127 param.z += anime4.
v.z;
3130 if (this.cell.
obj != 0 && !
this.cell.sourceObj.renderData.SkipOnMap)
3136 param.mat = this.cell.
matObj;
3142 param.y += 0.01f *
floatY;
3145 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
3187 param.tile = sourceObj.
_tiles[this.cell.blockDir % sourceObj.
_tiles.Length];
3191 param.tile = sourceObj.
_tiles[this.cell.objDir % sourceObj.
_tiles.Length];
3195 param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
3199 param.y += sourceObj.
pref.
y;
3200 param.z += sourceObj.
pref.
z;
3259 param.matColor = 104025f;
3283 Vector3 zero = Vector3.zero;
3302 zero.x += rampFix.x;
3303 zero.y += rampFix.y;
3304 zero.z += rampFix.z;
3312 zero.x += pref.x * (float)((!tg.
flipX) ? 1 : (-1));
3345 float num4 = (tileType.UseMountHeight ? 0f : ((pref2.height == 0f) ? 0.1f : pref2.
height));
3353 zero.x += rampFix2.x;
3354 zero.y += rampFix2.y;
3355 zero.z += rampFix2.z;
3364 zero.x += pref2.stackX * (float)((!thing.
flipX) ? 1 : (-1));
3369 num4 += altitudeFix.y * (float)thing.
altitude;
3376 zero.z += renderSetting.thingZ + num + (float)i * -0.01f +
zSetting.mod1 * zero.y;
3396 zero.z += (float)(
detail?.things.Count ?? 0) * -0.01f;
3423 int num2 = (int)(num * 50f) * 262144;
3445 num = lot.z - roofStyle.
h;
3446 num2 = lot.x - roofStyle.
w;
3447 num3 = lot.mz + 1 + roofStyle.
h;
3448 num4 = lot.mx + 1 + roofStyle.
w;
3460 num = lot.x - roofStyle.
w;
3461 num2 = lot.z - roofStyle.
h;
3462 num3 = lot.mx + 1 + roofStyle.
w;
3463 num4 = lot.mz + 1 + roofStyle.
h;
3476 num5 = ((lot.height > 1) ? 1 : 0);
3487 int num6 = num4 + (reverse ? roofStyle.w : roofStyle.
h) * 2 - num2;
3493 num7 = EMono.sources.blocks.rows.Count - 1;
3497 num8 = EMono.sources.floors.rows.Count - 1;
3502 num9 = EMono.sources.blocks.rows.Count - 1;
3505 int num10 = num6 / 2 - roofStyle.
flatW;
3506 int num11 = num6 / 2 + roofStyle.flatW + ((num6 % 2 != 0) ? 1 : 0);
3509 int num13 = ((num5 != 0) ? (-1) : 0);
3511 Vector3 vector = (lot.fullblock ? roofStyle.posFixBlock : roofStyle.
posFix);
3512 switch (roofStyle.
type)
3515 flag = num6 % 2 == 1 && roofStyle.flatW == 0;
3519 num10 = roofStyle.
flatW;
3520 num11 = num6 - roofStyle.
flatW;
3538 for (
cz = num2;
cz < num4;
cz++)
3540 for (
cx = num;
cx < num3;
cx++)
3568 int num17 = num16 - num15;
3581 num14 = ((cell.Left.room !=
null && cell.Left.room.lot == lot) ? ((
cell.
Right.
room !=
null &&
cell.
Right.
room.
lot == lot) ? 1 : ((cell.HasFullBlock && cell.Right.HasFullBlock && cell.Right.room !=
null) ? 1 : 2)) : (
cell.
Left.
HasFullBlock ? 1 : 0));
3601 num14 = ((cell.Front.room !=
null && cell.Front.room.lot == lot) ? ((
cell.
Back.
room !=
null &&
cell.
Back.
room.
lot == lot) ? 1 : (cell.Back.HasFullBlock ? 1 : 2)) : ((cell.HasFullBlock && cell.Front.HasFullBlock && cell.Front.room !=
null) ? 1 : 0));
3622 float num18 = (float)num17 *
screen.
tileAlign.y + (
float)lot.mh * _heightMod.y + lot.realHeight + roofFix.y + vector.y;
3629 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)num13 *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3630 param.y = num18 + (float)num13 *
roofFix2.y;
3633 param.snow = idRoofTile == 0 && flag3;
3634 param.shadowFix = 0f;
3656 if (idRoofTile != 0)
3659 int num20 = (reverse ? 1 : 0) + ((!flag) ? 2 : 0);
3674 param.matColor = 104025f;
3677 param.z += roofStyle.
snowZ;
3689 param.matColor = 104025f;
3691 param.x += roofStyle.
snowFix.x;
3692 param.y += roofStyle.
snowFix.y;
3693 param.z += roofStyle.snowZ + roofStyle.
snowFix.z;
3699 if (idRoofTile != 0)
3701 int num21 = ((!reverse) ? ((num14 != 0) ? 2 : 0) : ((num14 != 0) ? 1 : 3));
3704 param.shadowFix = num21 + 1;
3711 param.matColor = 104025f;
3712 param.z += roofStyle.
snowZ;
3718 param.tile += (lot.altRoof ? 8 : 0);
3721 param.shadowFix = 0f;
3746 for (
int i = 0; i < num13; i++)
3748 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)i *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3749 param.y = num18 + (float)i *
roofFix2.y;
3775 num13 += num14
switch
3791 return p * 262144 + (int)(matColor.r * 50f) * 4096 + (int)(matColor.g * 50f) * 64 + (int)(matColor.b * 50f);
3797 if (
room ==
null && dirWall != -1)
3799 if (dirWall == 0 && _cell.
Front.
room !=
null)
3802 _cell = _cell.
Front;
3807 _cell = _cell.
Right;
3815 float num2 = 1000f +
param.
x *
screen.
tileWeight.x + (
float)lot.mh * _heightMod.z + lot.realHeight * roofFix3.z + roofFix.z + roofStyle.
posFix.z;
3821 _param.x = (float)(_cx + _cz) * screen.tileAlign.x + roofFix.x + (float)h *
roofFix2.x;
3825 if (!ignoreAltitudeY ||
room !=
null)
static AM_Inspect Inspect
virtual bool IsRoofEditMode(Card c=null)
static AM_ViewMap ViewMap
virtual BaseTileMap.CardIconMode cardIconMode
virtual bool ShowMaskedThings
static AM_FlagCell FlagCell
virtual byte GetTile(int index)
List< Action > actionsLateUpdate
BaseTileSelector tileSelector
virtual void RefreshWeather()
SourceDeco.Row sourceDeco
SourceMaterial.Row matDeco
const int BlocklightToken
int GetRoofLight(Lot lot)
RenderData rendererInnerBlock
SourceFloor.Row sourceBridge
InnerMode defaultInnerMode
ScreenHighlight screenHighlight
SourceMaterial.Row matBridge
RenderData rendererFogRoomSolid
RenderData rendererWaterBlock
Vector3 waterEdgeFixShoreSand
int GetApproximateBlocklight(Cell cell)
Vector3 waterEdgeFixShore
static int GetColorInt(ref Color matColor, int p)
SceneLightProfile lightSetting
void OnActivate(BaseGameScreen _screen)
MeshPass passAutoTileWater
new BaseGameScreen screen
WallClipMode wallClipMode
float floorShadowStrength
RenderData rendererFloorMarker
GameSetting.RenderSetting renderSetting
Vector3 ugFixBridgeBottom
SourceMaterial.Row matBlock
RenderDataEffect rendererEffect
SourceBlock.Row _sourceBlock
RenderData renderFootmark
Vector3[] waterEdgeBlockFix
RenderData rendererBlockMarker
Vector3[] ambientShadowFix
RenderData rendererFogRoomBlockSolid
SourceMaterial.Row matFloor
RenderData rendererWallDeco
SourceBlock.Row sourceBlock
Vector3 waterEdgeBridgeFix
RenderData rendererFogRoomWallSolid
RenderData rendererFogFloorSolid
void SetRoofHeight(MeshPassParam _param, Cell _cell, int _cx, int _cz, int h=0, int altitude=0, int dirWall=-1, bool ignoreAltitudeY=false)
static bool forceShowHang
RenderDataObjDummy rendererObjDummy
BaseTileSelector selector
Vector3 heightModRoofBlock
NoiseLayer layerGroundLights
RenderData rendererFogBlockSolid
GameSetting.RenderSetting.ZSetting zSetting
SourceFloor.Row sourceFloor
Vector3 GetThingPosition(Card tg, Point p)
override void Draw(RenderParam p)
virtual void SetFirst(bool first, Vector3 pos)
TraitShackle GetRestrainer()
virtual CardRow sourceCard
SourceCategory.Row category
TaskDesignation designation
SourceCellEffect.Row source
static List< SourceBlock.Row > blockList
SourceBlock.Row sourceBlock
SourceMaterial.Row matBlock
SourceFloor.Row sourceFloor
SourceMaterial.Row matDeco
SourceMaterial.Row matObj
SourceMaterial.Row matBridge
SourceFloor.Row sourceBridge
SourceMaterial.Row matFloor
SourceCellEffect.Row sourceEffect
static List< SourceMaterial.Row > matList
SourceDeco.Row sourceDeco
override bool IsAliveInCurrentZone
override bool IsDeadOrSleeping
override CardRow sourceCard
override void SetRenderParam(RenderParam p)
ConBaseTransmuteMimic mimicry
static GameSetting setting
static ColorProfile Colors
static SoundManager Sound
static SourceManager sources
static SourceFloor.Row sourceSnow
static SourceFloor.Row sourceSnow2
static SourceFloor.Row sourceIce
virtual void OnRenderTileMap(RenderParam p, bool drawShadow=true)
static Card alwaysVisible
static SourceMaterial.Row sourceSnow
static SourceMaterial.Row sourceGold
static HashSet< int > sunMap
void Add(Point point, float tile=0f, float color=0f)
void AddShadow(MeshPassParam p, ref Vector3 fix)
List< MeshBatch > batches
CinemaConfig cinemaConfig
ref Vector3 Position(int height)
Point Set(int _x, int _z)
Point Clamp(bool useBounds=false)
static void InitBytes(int a)
new void Draw(RenderParam p, int tile=0)
void Draw(RenderParam p, int tile)
void DrawRepeat(RenderParam p, int count, float size, bool skipFirst=false)
int ConvertTile(int tile)
void SetRenderParam(RenderParam p, SourceMaterial.Row mat, int dir)
SourceMaterial.Row DefaultMaterial
AnimationCurve baseBrightnessCurve
float dynamicBrightnessSpeed
AnimationCurve shadowCurveFloor
AnimationCurve dynamicBrightnessCurve2
float dynamicBrightnessLightBonus
AnimationCurve lightLimit
AnimationCurve fogBrightness
AnimationCurve dynamicBrightnessCurve
AnimationCurve shadowCurve
AnimationCurve nightRatioCurve
AnimationCurve lightModCurve
SceneGlobalProfile global
List< ISyncScreen > syncList
GameSetting.RenderSetting.MapBGSetting bg
void DrawWall(Point point, int color, bool useMarkerPass=false, float offsetZ=0f)
static ShadowData Instance
virtual bool IsSnowCovered
virtual void Draw(int x, int z, RenderParam p)
override void SetRenderParam(RenderParam p)
override CardRow sourceCard
override float FloorHeight
virtual bool IsUseBlockDir
virtual void GetMountHeight(ref Vector3 v, Point p, int d, Card target=null)
static TileTypeIllumination Illumination
static TileTypeWaterShallow FloorWaterShallow
static TileTypeObjFloat ObjFloat
virtual bool AlwaysShowShadow
virtual bool ForceRpeatBlock
virtual bool IsSkipLowBlock
virtual bool UseMountHeight
virtual BlockRenderMode blockRenderMode
Vector3 GetRampFix(int dir, SourcePref pref=null)
virtual Vector3 GetRestrainPos
virtual bool IgnoreLastStackHeight
virtual bool AlwaysHideOnLowWall
virtual TileType tileType
virtual bool IsChangeFloorHeight
virtual bool AlwaysLowblock
virtual bool IsUnderwater