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];
526 for (
int i = 0; i < 256; i++)
568 subtleHighlightArea = EMono.scene.actionMode.AreaHihlight != 0 && (EMono.scene.actionMode.AreaHihlight == AreaHighlightMode.Build || EMono.scene.actionMode.AreaHihlight !=
AreaHighlightMode.Edit);
586 fogBounds = (EMono._map.config.forceHideOutbounds && (!EMono.debug.godBuild || !
buildMode)) || (EMono.core.config.game.dontRenderOutsideMap && !
buildMode);
614 Fov.nonGradientMod = profile.
global.fovModNonGradient;
622 for (
int i = 0; i <
floatYs.Length; i++)
705 noRoofMode = EMono.game.config.noRoof || screen.focusOption !=
null;
726 currentRoom.data.visited =
true;
730 room.data.visited =
true;
764 Vector3Int vector3Int =
screen.
grid.WorldToCell(mposWorld);
766 mz = vector3Int.x - 1;
771 TestPoint.x =
mx + num3;
772 TestPoint.z =
mz - num3;
776 Physics2D.SyncTransforms();
777 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
783 TestPoint.x =
mx + num3 - 1;
784 TestPoint.z =
mz - num3;
788 Physics2D.SyncTransforms();
789 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
795 TestPoint.x =
mx + num3;
796 TestPoint.z =
mz - num3 + 1;
800 Physics2D.SyncTransforms();
801 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
809 bool flag2 = EMono._zone.UseFog && !
EMono.
scene.
bg.wall;
814 cx = screen.scrollX - screen.scrollY +
x - (
z + 1) / 2;
815 cz = screen.scrollY + screen.scrollX +
x +
z / 2;
820 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)
z *
edgeBlockFix.z;
875 int valueOrDefault = (this.room?.
lot?.
idBGM).GetValueOrDefault();
876 if (valueOrDefault == 0)
882 BGMData data =
EMono.
Sound.plLot.list[0].data;
883 if ((
object)data !=
null && data.id == valueOrDefault)
895 SoundManager.bgmVolumeMod = ((!LayerDrama.maxBGMVolume && !EMono._map.IsIndoor && this.room !=
null && !this.room.data.atrium && this.room.
HasRoof) ? (-0.6f) : 0f);
928 this.room = this.cell.
room;
948 floorDir = this.cell.sourceObj.snowTile - 1;
968 light = (this.cell.pcSync ? this.cell.light : (this.cell.light / 3 * 2));
1002 liquidLv = (param.liquidLv = ((!flag && !
isUnderwater) ? (((this.cell.
liquidLv +
this.cell._bridge != 0) ?
this.cell.sourceBridge.tileType.LiquidLV :
sourceFloor.tileType.LiquidLV) * 10) : 0));
1012 if (effect !=
null && effect.
IsFire)
1022 if (this.room !=
null)
1024 this.room.lot.sync =
true;
1035 if ((this.room !=
null && this.room.
lot ==
currentLot) || flag2)
1054 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));
1072 bool num = this.room !=
null && sourceBlock.tileType.CastShadowSelf && !this.cell.
hasDoor;
1073 bool flag3 = this.room !=
null &&
showRoof && this.room.lot.idRoofStyle != 0 && !this.room.data.atrium && !
sourceBlock.tileType.Invisible;
1074 if (flag3 && this.cell.
hasDoor &&
this.cell.IsLotEdge)
1078 if (num || !
isSeen || flag3)
1092 param.y += 0.01f *
floatY;
1100 param.x += anime2.
v.x;
1101 param.y += anime2.
v.y;
1102 param.z += anime2.
v.z;
1119 param.dir = this.cell._roofBlockDir % 4;
1129 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1137 if (dir == 0 || dir == 2)
1154 if (dir == 1 || dir == 2)
1177 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref row2.
matColor,
_sourceBlock.sourceAutoFloor.colorMod));
1183 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1188 int shadow2 = shadowPref.
shadow;
1193 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1213 param.matColor = 104025f;
1216 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight * _heightMod.y +
ugFixBridgeBottom.x;
1217 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
1239 float num2 = (float)(
int)this.cell.TopHeight *
_heightMod.y;
1244 param.z += ugFix.z +
slopeFixZ * (float)i;
1286 if (this.cell.
effect !=
null)
1294 param.mat = defaultMaterial;
1302 if (sourceEffect2.
anime.Length != 0)
1304 if (sourceEffect2.
anime.Length > 2)
1306 float num3 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[2];
1307 if (!(num3 >= (
float)sourceEffect2.
anime[0]))
1314 float num4 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[0];
1329 if (this.cell.
critter !=
null)
1332 int snowTile = critter.
tile;
1362 param.x += anime4.
v.x;
1363 param.y += anime4.
v.y;
1364 param.z += anime4.
v.z;
1367 if (this.cell.
obj != 0 && !
this.cell.sourceObj.renderData.SkipOnMap)
1373 param.mat = this.cell.
matObj;
1379 param.y += 0.01f *
floatY;
1382 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
1429 param.tile = sourceObj.
_tiles[this.cell.blockDir % sourceObj.
_tiles.Length];
1433 param.tile = sourceObj.
_tiles[this.cell.objDir % sourceObj.
_tiles.Length];
1437 param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
1441 param.y += sourceObj.
pref.
y;
1442 param.z += sourceObj.
pref.
z;
1501 param.matColor = 104025f;
1528 param.tile = defBlock.
_tiles[this.cell.blockDir % defBlock.
_tiles.Length];
1529 if (defBlock.
id != 1)
1535 param.matColor = 104025f;
1541 param.z += ugFix.z +
slopeFixZ * (float)j;
1555 if (!isWater && (this.cell.
Front.
sourceFloor.tileType.IsWater ||
this.cell.Right.sourceFloor.tileType.IsWater) && this.cell.sourceBlock.tileType.RenderWaterBlock && !flag)
1568 num7 = row3.
_tiles[this.cell.blockDir % row3.
_tiles.Length];
1570 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)
1572 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;
1574 param.
tile = num7 + ((!
this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1577 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)
1579 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;
1581 param.
tile = num7 + ((!
this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1589 param.matColor = 104025f;
1613 param.tile = defBlock2.
_tiles[this.cell.blockDir % defBlock2.
_tiles.Length];
1614 if (defBlock2.
id != 1)
1620 param.matColor = 104025f;
1625 param.z += ugFix.z +
slopeFixZ * (float)k;
1642 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);
1651 if (isWater && flag)
1653 param.y -= 0.01f *
floatY;
1682 if (!this.cell.
Right.
IsSnowTile &&
this.cell.Right.topHeight ==
this.cell.topHeight)
1686 if (!this.cell.
Front.
IsSnowTile &&
this.cell.Front.topHeight ==
this.cell.topHeight)
1692 param.tile = 448 + num8 + 12;
1704 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
1728 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1745 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1763 if (this.cell.
autotile != 0 &&
sourceFloor.autotile != 0 && (!
hasBridge ||
this.cell.bridgeHeight -
this.cell.height > 3) && !
this.cell.skipRender && num8 == 0)
1783 int num10 = this.cell.shore / num9;
1784 int num11 = this.cell.shore % num9;
1786 if (this.cell.
shore != 0)
1788 Cell cell = ((((uint)num10 & (
true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num10 & 2u) != 0) ? this.cell.
Right : ((((uint)num10 & 4u) != 0) ? this.cell.Front : this.cell.
Left)));
1791 cell = ((((uint)num10 & 8u) != 0) ? this.cell.
Left : ((((uint)num10 & 4u) != 0) ? this.cell.Front : ((((uint)num10 & 2u) != 0) ? this.cell.
Right :
this.cell.
Back)));
1817 param.tile = (24 + num11 / 2) * 32 + num11 % 2 * 16 + num10;
1821 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num9) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.
Left.
shore / num9) & (
true ? 1u : 0u)) != 0)
1828 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num9) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num9) & (
true ? 1u : 0u)) != 0)
1835 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num9) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num9) & 4u) != 0)
1842 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num9) & 8u) != 0 &&
this.cell.Left.isShoreSand && ((uint)(
this.cell.Left.shore / num9) & 4u) != 0)
1849 if (this.cell.
_bridge != 0 &&
this.cell.isBridgeEdge &&
this.cell.bridgePillar !=
byte.MaxValue)
1868 if (((uint)num10 & (
true ? 1u : 0u)) != 0)
1870 if (((uint)num10 & 8u) != 0)
1872 if ((num10 & 2) == 0 && (num10 & 4) == 0)
1878 if (((uint)num10 & 2u) != 0)
1880 if ((num10 & 8) == 0 && (num10 & 4) == 0)
1887 if (((uint)num10 & 4u) != 0)
1889 if (((uint)num10 & 8u) != 0)
1891 if ((num10 & 2) == 0 && (num10 & 1) == 0)
1897 if (((uint)num10 & 2u) != 0)
1899 if ((num10 & 8) == 0 && (num10 & 1) == 0)
1908 if (!this.cell.
Front.
sourceFloor.tileType.IsWater && !
this.cell.Front.isDeck)
1912 if (!this.cell.
Right.
sourceFloor.tileType.IsWater && !
this.cell.Right.isDeck)
1920 if (!this.cell.
Back.
sourceFloor.tileType.IsWater && !
this.cell.Back.isDeck)
1926 if (((uint)(this.cell.
shore / num9) & (
true ? 1u : 0u)) != 0)
1958 if (!this.cell.
Left.
sourceFloor.tileType.IsWater && !
this.cell.Left.isDeck)
1964 if (((uint)(this.cell.
shore / num9) & 8u) != 0)
1999 param.y += 0.01f *
floatY;
2018 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight *
_heightMod.y;
2019 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
2022 param.y += 0.01f *
floatY;
2047 if (this.cell.
shadow != 0)
2051 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
2072 if (this.cell.
isBridgeEdge &&
this.cell.bridgeHeight -
this.cell.height >= 3 &&
this.cell.bridgePillar !=
byte.MaxValue && !
noSlopMode)
2089 param.tile = row4.
_tiles[0] + ((num13 == 2) ? 32 : 0);
2096 param.tile = row4.
_tiles[0] + 32;
2101 for (
int l = 0; l < num13; l++)
2121 if (this.cell.
_block != 0 && !
this.cell.hasDoor)
2151 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2164 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)))
2171 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2195 if (this.room !=
null)
2208 int num15 = ((this.room.data.maxHeight == 0) ? 2 : this.room.
data.
maxHeight);
2209 roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.
lot.
height < num15) ? this.room.lot.height : num15) + 0.01f * (
float)this.room.
lot.
heightFix;
2228 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)
2233 else if (this.cell.
Back.
room !=
null &&
this.cell.Back.room.
lot == (
this.cell.Front.room ??
this.cell.Right.room)?.lot)
2244 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2280 param.color = (int)(50f *
blockLight) * 262144;
2281 param.matColor = 104025f;
2323 if (this.cell.
Things.Count > 0)
2345 if (!invisible &&
room !=
null)
2369 room = this.cell.Right.room ?? this.cell.
room;
2374 if (!invisible &&
room !=
null)
2410 bool flag8 = blockDir == 1 ||
_lowblock || flag7;
2411 bool flag9 = blockDir == 0 ||
_lowblock || flag7;
2418 if (!this.cell.
IsRoomEdge || (
this.cell.Front.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2432 if (!this.cell.
IsRoomEdge || (
this.cell.Right.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2443 if (blockDir == 0 || blockDir == 2)
2446 Room room2 = this.cell.Front.room ?? this.cell.
room;
2447 if (room2 !=
null && this.tileType.
IsWall)
2449 if (room2.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2469 if (blockDir == 2 &&
left.sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2472 param.mat =
left.matBlock;
2507 param.tile =
_sourceBlock._tiles[0] + ((flag8 && flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2517 if (!flag8 && !
showRoof && this.cell.
Left.
HasWallOrFence &&
this.cell.Left.blockDir != 0 && !
this.cell.Left.isToggleWallPillar)
2520 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2537 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2552 if (blockDir == 1 || blockDir == 2)
2557 Room room3 = this.cell.Right.room ?? this.cell.
room;
2558 if (room3 !=
null && this.tileType.
IsWall)
2560 if (room3.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2579 if (blockDir == 2 && this.cell.
room ==
null &&
this.cell.Right.room !=
null)
2593 int num19 = ((room4.data.maxHeight == 0) ? 2 : room4.
data.
maxHeight);
2594 roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.
lot.
height < num19) ? room4.lot.height : num19) + 0.01f * (
float)room4.
lot.
heightFix;
2598 if (blockDir == 2 && back2.
sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2637 param.tile =
_sourceBlock._tiles[0] + ((flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2659 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref
matBlock.matColor,
_sourceBlock.sourceAutoFloor.colorMod));
2667 int num20 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.
objDir : 0) + 1;
2678 int shadow4 = shadowPref2.
shadow;
2699 if (this.cell.
room !=
null || !
this.cell.IsRoomEdge || !
showRoof)
2703 if (this.cell.
_block == 0 || !
this.cell.sourceBlock.tileType.RepeatBlock)
2706 if (obj ==
null || !obj.
HasRoof)
2714 if (!
showRoof || !
roof || this.cell.
room ==
null ||
this.cell.Front.room ==
null ||
this.cell.Right.room ==
null)
2729 freePos.x = (freePos.y = (freePos.z = 0f));
2733 param.x += rampFix.x;
2734 param.y += rampFix.y;
2735 param.z += rampFix.z;
2736 freePos.x += rampFix.x;
2737 freePos.y += rampFix.y;
2738 freePos.z += rampFix.z;
2740 param.y += (flag ? 0f : ((this.cell._bridge != 0) ? this.cell.
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight));
2748 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2758 bool flag10 =
false;
2760 bool flag11 =
false;
2776 if (!isInstalled && t.
category.tileDummy != 0)
2780 float num27 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.
height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.
height)));
2783 thingPos.y -= num22;
2785 shadow = thingPos.y < 0.16f && num25 < 0.16f;
2795 _actorPos.z = param.z + num26;
2796 if (this.room !=
null)
2806 _actorPos.x =
orgX + num23;
2811 if (thing?.
id != t.
id)
2818 thingPos.y -= num22;
2821 _actorPos.z -= 0.2f;
2824 _actorPos.y -= num22;
2826 _actorPos.z += renderSetting.thingZ + (float)m * -0.01f +
zSetting.mod1 *
thingPos.y;
2836 freePos.x += rampFix2.x;
2837 freePos.y += rampFix2.y;
2838 freePos.z += rampFix2.z;
2841 num25 += rampFix2.y;
2843 liquidLv -= (int)(rampFix2.y * 150f);
2858 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2859 _actorPos.z += pref.
z;
2860 thingPos.z += pref.
z;
2868 thingPos.y += num27;
2869 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2870 _actorPos.z += pref.
z;
2873 thingPos.z += pref.
z;
2883 thingPos.y += num27;
2884 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2885 _actorPos.z += pref.
z;
2886 thingPos.z += pref.
z;
2891 float num28 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
2897 _actorPos.y += 0.01f *
floatY - num28;
2900 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2938 Room room5 = ((t.dir == 0) ? this.cell.
Back.
room :
this.cell.Left.room);
2961 _actorPos.x += t.
fx;
2962 _actorPos.y += t.
fy;
2982 _actorPos.z += -0.5f;
3023 param.tile += ((param.tile < 0f) ? (-64) : 64);
3032 _actorPos.y = EMono.pc.renderer.position.y - pref.
height;
3033 _actorPos.z = EMono.pc.renderer.position.z + 0.02f;
3044 num23 += pref.stackX * (float)((!t.
flipX) ? 1 : (-1));
3062 param.shadowFix = 0f - num25;
3063 param.color += 1310720f;
3080 if (restrainer !=
null)
3083 if (getRestrainPos !=
default(Vector3))
3087 float num30 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.
source.pref.height);
3088 _actorPos.x = position.x + getRestrainPos.x * (float)((restrainer.
owner.
dir % 2 == 0) ? 1 : (-1));
3089 _actorPos.y = position.y + num30;
3090 _actorPos.z = position.z + getRestrainPos.z;
3095 param.shadowFix = 0f;
3104 float num31 = chara.renderer.data.size.y * 0.3f;
3109 float num32 = thingPos.y + num31;
3110 float num33 = (float)n * -0.01f;
3117 _actorPos.z += renderSetting.laydownZ + num33;
3118 param.liquidLv = ((thingPos.y == 0f &&
liquidLv > 0) ? 90 : 0);
3119 thingPos.y += num31 * 0.8f;
3129 float num34 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
3130 float num35 =
floatYs[chara.uid % 10] + 10f + (float)(chara.
uid % 30);
3131 orgY += 0.01f * num35 - num34;
3132 _actorPos.y += 0.01f * num35 - num34;
3133 param.shadowFix -= 0.01f * num35 - num34;
3142 float num36 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
3144 _actorPos.y += 0.01f *
floatY - num36;
3145 int num37 = TileType.FloorWaterShallow.LiquidLV * 10;
3146 num37 -= (int)(
floatY * 0.5f);
3147 param.liquidLv = num37;
3151 param.liquidLv -= 20;
3201 Vector3 zero = Vector3.zero;
3220 zero.x += rampFix.x;
3221 zero.y += rampFix.y;
3222 zero.z += rampFix.z;
3230 zero.x += pref.x * (float)((!tg.
flipX) ? 1 : (-1));
3263 float num4 = (tileType.UseMountHeight ? 0f : ((pref2.height == 0f) ? 0.1f : pref2.
height));
3271 zero.x += rampFix2.x;
3272 zero.y += rampFix2.y;
3273 zero.z += rampFix2.z;
3282 zero.x += pref2.stackX * (float)((!thing.
flipX) ? 1 : (-1));
3287 num4 += altitudeFix.y * (float)thing.
altitude;
3294 zero.z += renderSetting.thingZ + num + (float)i * -0.01f +
zSetting.mod1 * zero.y;
3336 int num2 = (int)(num * 50f) * 262144;
3358 num = lot.z - roofStyle.
h;
3359 num2 = lot.x - roofStyle.
w;
3360 num3 = lot.mz + 1 + roofStyle.
h;
3361 num4 = lot.mx + 1 + roofStyle.
w;
3373 num = lot.x - roofStyle.
w;
3374 num2 = lot.z - roofStyle.
h;
3375 num3 = lot.mx + 1 + roofStyle.
w;
3376 num4 = lot.mz + 1 + roofStyle.
h;
3389 num5 = ((lot.height > 1) ? 1 : 0);
3400 int num6 = num4 + (reverse ? roofStyle.w : roofStyle.
h) * 2 - num2;
3406 num7 = EMono.sources.blocks.rows.Count - 1;
3410 num8 = EMono.sources.floors.rows.Count - 1;
3415 num9 = EMono.sources.blocks.rows.Count - 1;
3418 int num10 = num6 / 2 - roofStyle.
flatW;
3419 int num11 = num6 / 2 + roofStyle.flatW + ((num6 % 2 != 0) ? 1 : 0);
3422 int num13 = ((num5 != 0) ? (-1) : 0);
3424 Vector3 vector = (lot.fullblock ? roofStyle.posFixBlock : roofStyle.
posFix);
3425 switch (roofStyle.
type)
3428 flag = num6 % 2 == 1 && roofStyle.flatW == 0;
3432 num10 = roofStyle.
flatW;
3433 num11 = num6 - roofStyle.
flatW;
3451 for (
cz = num2;
cz < num4;
cz++)
3453 for (
cx = num;
cx < num3;
cx++)
3481 int num17 = num16 - num15;
3494 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));
3514 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));
3535 float num18 = (float)num17 *
screen.
tileAlign.y + (
float)lot.mh * _heightMod.y + lot.realHeight + roofFix.y + vector.y;
3542 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)num13 *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3543 param.y = num18 + (float)num13 *
roofFix2.y;
3546 param.snow = idRoofTile == 0 && flag3;
3547 param.shadowFix = 0f;
3569 if (idRoofTile != 0)
3572 int num20 = (reverse ? 1 : 0) + ((!flag) ? 2 : 0);
3587 param.matColor = 104025f;
3590 param.z += roofStyle.
snowZ;
3602 param.matColor = 104025f;
3604 param.x += roofStyle.
snowFix.x;
3605 param.y += roofStyle.
snowFix.y;
3606 param.z += roofStyle.snowZ + roofStyle.
snowFix.z;
3612 if (idRoofTile != 0)
3614 int num21 = ((!reverse) ? ((num14 != 0) ? 2 : 0) : ((num14 != 0) ? 1 : 3));
3617 param.shadowFix = num21 + 1;
3624 param.matColor = 104025f;
3625 param.z += roofStyle.
snowZ;
3631 param.tile += (lot.altRoof ? 8 : 0);
3634 param.shadowFix = 0f;
3659 for (
int i = 0; i < num13; i++)
3661 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)i *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3662 param.y = num18 + (float)i *
roofFix2.y;
3688 num13 += num14
switch
3704 return p * 262144 + (int)(matColor.r * 50f) * 4096 + (int)(matColor.g * 50f) * 64 + (int)(matColor.b * 50f);
3710 if (
room ==
null && dirWall != -1)
3712 if (dirWall == 0 && _cell.
Front.
room !=
null)
3715 _cell = _cell.
Front;
3720 _cell = _cell.
Right;
3728 float num2 = 1000f +
param.
x *
screen.
tileWeight.x + (
float)lot.mh * _heightMod.z + lot.realHeight * roofFix3.z + roofFix.z + roofStyle.
posFix.z;
3734 _param.x = (float)(_cx + _cz) * screen.tileAlign.x + roofFix.x + (float)h *
roofFix2.x;
3738 if (!ignoreAltitudeY ||
room !=
null)
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
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()
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 matObj
SourceMaterial.Row matBridge
SourceFloor.Row sourceBridge
SourceMaterial.Row matFloor
SourceCellEffect.Row sourceEffect
static List< SourceMaterial.Row > matList
override bool IsAliveInCurrentZone
override bool IsDeadOrSleeping
override CardRow sourceCard
override void SetRenderParam(RenderParam p)
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)
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
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