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));
1006 liquidLv = (param.liquidLv = ((!flag && !
isUnderwater) ? (((this.cell.
liquidLv +
this.cell._bridge != 0) ?
this.cell.sourceBridge.tileType.LiquidLV :
sourceFloor.tileType.LiquidLV) * 10) : 0));
1016 if (effect !=
null && effect.
IsFire)
1026 if (this.room !=
null)
1028 this.room.lot.sync =
true;
1039 if ((this.room !=
null && this.room.
lot ==
currentLot) || flag2)
1058 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));
1076 bool num = this.room !=
null && sourceBlock.tileType.CastShadowSelf && !this.cell.
hasDoor;
1077 bool flag3 = this.room !=
null &&
showRoof && this.room.lot.idRoofStyle != 0 && !this.room.data.atrium && !
sourceBlock.tileType.Invisible;
1078 if (flag3 && this.cell.
hasDoor &&
this.cell.IsLotEdge)
1082 if (num || !
isSeen || flag3)
1096 param.y += 0.01f *
floatY;
1104 param.x += anime2.
v.x;
1105 param.y += anime2.
v.y;
1106 param.z += anime2.
v.z;
1123 param.dir = this.cell._roofBlockDir % 4;
1133 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1141 if (dir == 0 || dir == 2)
1158 if (dir == 1 || dir == 2)
1181 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref row2.
matColor,
_sourceBlock.sourceAutoFloor.colorMod));
1187 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1192 int shadow2 = shadowPref.
shadow;
1197 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1217 param.matColor = 104025f;
1220 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight * _heightMod.y +
ugFixBridgeBottom.x;
1221 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
1243 float num2 = (float)(
int)this.cell.TopHeight *
_heightMod.y;
1248 param.z += ugFix.z +
slopeFixZ * (float)i;
1308 param.tile = defBlock.
_tiles[this.cell.blockDir % defBlock.
_tiles.Length];
1309 if (defBlock.
id != 1)
1315 param.matColor = 104025f;
1321 param.z += ugFix.z +
slopeFixZ * (float)j;
1335 if (!isWater && (this.cell.
Front.
sourceFloor.tileType.IsWater ||
this.cell.Right.sourceFloor.tileType.IsWater) && this.cell.sourceBlock.tileType.RenderWaterBlock && !flag)
1348 num5 = row3.
_tiles[this.cell.blockDir % row3.
_tiles.Length];
1350 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)
1352 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;
1354 param.
tile = num5 + ((!
this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1357 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)
1359 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;
1361 param.
tile = num5 + ((!
this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1369 param.matColor = 104025f;
1393 param.tile = defBlock2.
_tiles[this.cell.blockDir % defBlock2.
_tiles.Length];
1394 if (defBlock2.
id != 1)
1400 param.matColor = 104025f;
1405 param.z += ugFix.z +
slopeFixZ * (float)k;
1422 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);
1431 if (isWater && flag)
1433 param.y -= 0.01f *
floatY;
1462 if (!this.cell.
Right.
IsSnowTile &&
this.cell.Right.topHeight ==
this.cell.topHeight)
1466 if (!this.cell.
Front.
IsSnowTile &&
this.cell.Front.topHeight ==
this.cell.topHeight)
1472 param.tile = 448 + num6 + 12;
1484 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
1508 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1525 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1543 if (this.cell.
autotile != 0 &&
sourceFloor.autotile != 0 && (!
hasBridge ||
this.cell.bridgeHeight -
this.cell.height > 3) && !
this.cell.skipRender && num6 == 0)
1563 int num8 = this.cell.shore / num7;
1564 int num9 = this.cell.shore % num7;
1566 if (this.cell.
shore != 0)
1568 Cell cell = ((((uint)num8 & (
true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num8 & 2u) != 0) ? this.cell.
Right : ((((uint)num8 & 4u) != 0) ? this.cell.Front : this.cell.
Left)));
1571 cell = ((((uint)num8 & 8u) != 0) ? this.cell.
Left : ((((uint)num8 & 4u) != 0) ? this.cell.Front : ((((uint)num8 & 2u) != 0) ? this.cell.
Right :
this.cell.
Back)));
1597 param.tile = (24 + num9 / 2) * 32 + num9 % 2 * 16 + num8;
1601 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num7) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.
Left.
shore / num7) & (
true ? 1u : 0u)) != 0)
1608 if (this.cell.
Back.
isShoreSand && ((uint)(
this.cell.Back.shore / num7) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num7) & (
true ? 1u : 0u)) != 0)
1615 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num7) & 2u) != 0 &&
this.cell.Right.isShoreSand && ((uint)(
this.cell.Right.shore / num7) & 4u) != 0)
1622 if (this.cell.
Front.
isShoreSand && ((uint)(
this.cell.Front.shore / num7) & 8u) != 0 &&
this.cell.Left.isShoreSand && ((uint)(
this.cell.Left.shore / num7) & 4u) != 0)
1629 if (this.cell.
_bridge != 0 &&
this.cell.isBridgeEdge &&
this.cell.bridgePillar !=
byte.MaxValue)
1648 if (((uint)num8 & (
true ? 1u : 0u)) != 0)
1650 if (((uint)num8 & 8u) != 0)
1652 if ((num8 & 2) == 0 && (num8 & 4) == 0)
1658 if (((uint)num8 & 2u) != 0)
1660 if ((num8 & 8) == 0 && (num8 & 4) == 0)
1667 if (((uint)num8 & 4u) != 0)
1669 if (((uint)num8 & 8u) != 0)
1671 if ((num8 & 2) == 0 && (num8 & 1) == 0)
1677 if (((uint)num8 & 2u) != 0)
1679 if ((num8 & 8) == 0 && (num8 & 1) == 0)
1688 if (!this.cell.
Front.
sourceFloor.tileType.IsWater && !
this.cell.Front.isDeck)
1692 if (!this.cell.
Right.
sourceFloor.tileType.IsWater && !
this.cell.Right.isDeck)
1700 if (!this.cell.
Back.
sourceFloor.tileType.IsWater && !
this.cell.Back.isDeck)
1706 if (((uint)(this.cell.
shore / num7) & (
true ? 1u : 0u)) != 0)
1738 if (!this.cell.
Left.
sourceFloor.tileType.IsWater && !
this.cell.Left.isDeck)
1744 if (((uint)(this.cell.
shore / num7) & 8u) != 0)
1779 param.y += 0.01f *
floatY;
1798 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight *
_heightMod.y;
1799 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
1802 param.y += 0.01f *
floatY;
1827 if (this.cell.
shadow != 0)
1831 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
1852 if (this.cell.
isBridgeEdge &&
this.cell.bridgeHeight -
this.cell.height >= 3 &&
this.cell.bridgePillar !=
byte.MaxValue && !
noSlopMode)
1869 param.tile = row4.
_tiles[0] + ((num11 == 2) ? 32 : 0);
1876 param.tile = row4.
_tiles[0] + 32;
1881 for (
int l = 0; l < num11; l++)
1901 if (this.cell.
_block != 0 && !
this.cell.hasDoor)
1931 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
1944 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)))
1951 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
1975 if (this.room !=
null)
1988 int num13 = ((this.room.data.maxHeight == 0) ? 2 : this.room.
data.
maxHeight);
1989 roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.
lot.
height < num13) ? this.room.lot.height : num13) + 0.01f * (
float)this.room.
lot.
heightFix;
2008 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)
2013 else if (this.cell.
Back.
room !=
null &&
this.cell.Back.room.
lot == (
this.cell.Front.room ??
this.cell.Right.room)?.lot)
2024 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2060 param.color = (int)(50f *
blockLight) * 262144;
2061 param.matColor = 104025f;
2103 if (this.cell.
Things.Count > 0)
2125 if (!invisible &&
room !=
null)
2149 room = this.cell.Right.room ?? this.cell.
room;
2154 if (!invisible &&
room !=
null)
2190 bool flag8 = blockDir == 1 ||
_lowblock || flag7;
2191 bool flag9 = blockDir == 0 ||
_lowblock || flag7;
2198 if (!this.cell.
IsRoomEdge || (
this.cell.Front.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2212 if (!this.cell.
IsRoomEdge || (
this.cell.Right.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2223 if (blockDir == 0 || blockDir == 2)
2226 Room room2 = this.cell.Front.room ?? this.cell.
room;
2227 if (room2 !=
null && this.tileType.
IsWall)
2229 if (room2.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2249 if (blockDir == 2 &&
left.sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2252 param.mat =
left.matBlock;
2287 param.tile =
_sourceBlock._tiles[0] + ((flag8 && flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2297 if (!flag8 && !
showRoof && this.cell.
Left.
HasWallOrFence &&
this.cell.Left.blockDir != 0 && !
this.cell.Left.isToggleWallPillar)
2300 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2317 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2332 if (blockDir == 1 || blockDir == 2)
2337 Room room3 = this.cell.Right.room ?? this.cell.
room;
2338 if (room3 !=
null && this.tileType.
IsWall)
2340 if (room3.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2359 if (blockDir == 2 && this.cell.
room ==
null &&
this.cell.Right.room !=
null)
2373 int num17 = ((room4.data.maxHeight == 0) ? 2 : room4.
data.
maxHeight);
2374 roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.
lot.
height < num17) ? room4.lot.height : num17) + 0.01f * (
float)room4.
lot.
heightFix;
2378 if (blockDir == 2 && back2.
sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2417 param.tile =
_sourceBlock._tiles[0] + ((flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2439 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref
matBlock.matColor,
_sourceBlock.sourceAutoFloor.colorMod));
2447 int num18 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.
objDir : 0) + 1;
2458 int shadow3 = shadowPref2.
shadow;
2479 if (this.cell.
room !=
null || !
this.cell.IsRoomEdge || !
showRoof)
2483 if (this.cell.
_block == 0 || !
this.cell.sourceBlock.tileType.RepeatBlock)
2486 if (obj ==
null || !obj.
HasRoof)
2494 if (!
showRoof || !
roof || this.cell.
room ==
null ||
this.cell.Front.room ==
null ||
this.cell.Right.room ==
null)
2509 freePos.x = (freePos.y = (freePos.z = 0f));
2513 param.x += rampFix.x;
2514 param.y += rampFix.y;
2515 param.z += rampFix.z;
2516 freePos.x += rampFix.x;
2517 freePos.y += rampFix.y;
2518 freePos.z += rampFix.z;
2520 param.y += (flag ? 0f : ((this.cell._bridge != 0) ? this.cell.
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight));
2528 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2538 bool flag10 =
false;
2540 bool flag11 =
false;
2556 if (!isInstalled && t.
category.tileDummy != 0)
2560 float num25 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.
height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.
height)));
2563 thingPos.y -= num20;
2565 shadow = thingPos.y < 0.16f && num23 < 0.16f;
2575 _actorPos.z = param.z + num24;
2576 if (this.room !=
null)
2586 _actorPos.x =
orgX + num21;
2591 if (thing?.
id != t.
id)
2598 thingPos.y -= num20;
2601 _actorPos.z -= 0.2f;
2604 _actorPos.y -= num20;
2606 _actorPos.z += renderSetting.thingZ + (float)m * -0.01f +
zSetting.mod1 *
thingPos.y;
2616 freePos.x += rampFix2.x;
2617 freePos.y += rampFix2.y;
2618 freePos.z += rampFix2.z;
2621 num23 += rampFix2.y;
2623 liquidLv -= (int)(rampFix2.y * 150f);
2638 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2639 _actorPos.z += pref.
z;
2640 thingPos.z += pref.
z;
2648 thingPos.y += num25;
2649 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2650 _actorPos.z += pref.
z;
2653 thingPos.z += pref.
z;
2663 thingPos.y += num25;
2664 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2665 _actorPos.z += pref.
z;
2666 thingPos.z += pref.
z;
2671 float num26 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
2677 _actorPos.y += 0.01f *
floatY - num26;
2680 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2718 Room room5 = ((t.dir == 0) ? this.cell.
Back.
room :
this.cell.Left.room);
2741 _actorPos.x += t.
fx;
2742 _actorPos.y += t.
fy;
2762 _actorPos.z += -0.5f;
2803 param.tile += ((param.tile < 0f) ? (-64) : 64);
2812 _actorPos.y = EMono.pc.renderer.position.y - pref.
height;
2813 _actorPos.z = EMono.pc.renderer.position.z + 0.02f;
2824 num21 += pref.stackX * (float)((!t.
flipX) ? 1 : (-1));
2842 param.shadowFix = 0f - num23;
2843 param.color += 1310720f;
2860 if (restrainer !=
null)
2863 if (getRestrainPos !=
default(Vector3))
2867 float num28 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.
source.pref.height);
2868 _actorPos.x = position.x + getRestrainPos.x * (float)((restrainer.
owner.
dir % 2 == 0) ? 1 : (-1));
2869 _actorPos.y = position.y + num28;
2870 _actorPos.z = position.z + getRestrainPos.z;
2875 param.shadowFix = 0f;
2884 float num29 = chara.renderer.data.size.y * 0.3f;
2889 float num30 = thingPos.y + num29;
2890 float num31 = (float)n * -0.01f;
2897 _actorPos.z += renderSetting.laydownZ + num31;
2898 param.liquidLv = ((thingPos.y == 0f &&
liquidLv > 0) ? 90 : 0);
2899 thingPos.y += num29 * 0.8f;
2909 float num32 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
2910 float num33 =
floatYs[chara.uid % 10] + 10f + (float)(chara.
uid % 30);
2911 orgY += 0.01f * num33 - num32;
2912 _actorPos.y += 0.01f * num33 - num32;
2913 param.shadowFix -= 0.01f * num33 - num32;
2922 float num34 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
2924 _actorPos.y += 0.01f *
floatY - num34;
2925 int num35 = TileType.FloorWaterShallow.LiquidLV * 10;
2926 num35 -= (int)(
floatY * 0.5f);
2927 param.liquidLv = num35;
2931 param.liquidLv -= 20;
2967 if (this.cell.
effect !=
null)
2975 param.mat = defaultMaterial;
2983 if (sourceEffect2.
anime.Length != 0)
2985 if (sourceEffect2.
anime.Length > 2)
2987 float num36 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[2];
2988 if (!(num36 >= (
float)sourceEffect2.
anime[0]))
2990 param.tile += num36;
2995 float num37 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[0];
2996 param.tile += num37;
3010 if (this.cell.
critter !=
null)
3013 int snowTile = critter.
tile;
3043 param.x += anime4.
v.x;
3044 param.y += anime4.
v.y;
3045 param.z += anime4.
v.z;
3048 if (this.cell.
obj != 0 && !
this.cell.sourceObj.renderData.SkipOnMap)
3054 param.mat = this.cell.
matObj;
3060 param.y += 0.01f *
floatY;
3063 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
3110 param.tile = sourceObj.
_tiles[this.cell.blockDir % sourceObj.
_tiles.Length];
3114 param.tile = sourceObj.
_tiles[this.cell.objDir % sourceObj.
_tiles.Length];
3118 param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
3122 param.y += sourceObj.
pref.
y;
3123 param.z += sourceObj.
pref.
z;
3182 param.matColor = 104025f;
3206 Vector3 zero = Vector3.zero;
3225 zero.x += rampFix.x;
3226 zero.y += rampFix.y;
3227 zero.z += rampFix.z;
3235 zero.x += pref.x * (float)((!tg.
flipX) ? 1 : (-1));
3268 float num4 = (tileType.UseMountHeight ? 0f : ((pref2.height == 0f) ? 0.1f : pref2.
height));
3276 zero.x += rampFix2.x;
3277 zero.y += rampFix2.y;
3278 zero.z += rampFix2.z;
3287 zero.x += pref2.stackX * (float)((!thing.
flipX) ? 1 : (-1));
3292 num4 += altitudeFix.y * (float)thing.
altitude;
3299 zero.z += renderSetting.thingZ + num + (float)i * -0.01f +
zSetting.mod1 * zero.y;
3341 int num2 = (int)(num * 50f) * 262144;
3363 num = lot.z - roofStyle.
h;
3364 num2 = lot.x - roofStyle.
w;
3365 num3 = lot.mz + 1 + roofStyle.
h;
3366 num4 = lot.mx + 1 + roofStyle.
w;
3378 num = lot.x - roofStyle.
w;
3379 num2 = lot.z - roofStyle.
h;
3380 num3 = lot.mx + 1 + roofStyle.
w;
3381 num4 = lot.mz + 1 + roofStyle.
h;
3394 num5 = ((lot.height > 1) ? 1 : 0);
3405 int num6 = num4 + (reverse ? roofStyle.w : roofStyle.
h) * 2 - num2;
3411 num7 = EMono.sources.blocks.rows.Count - 1;
3415 num8 = EMono.sources.floors.rows.Count - 1;
3420 num9 = EMono.sources.blocks.rows.Count - 1;
3423 int num10 = num6 / 2 - roofStyle.
flatW;
3424 int num11 = num6 / 2 + roofStyle.flatW + ((num6 % 2 != 0) ? 1 : 0);
3427 int num13 = ((num5 != 0) ? (-1) : 0);
3429 Vector3 vector = (lot.fullblock ? roofStyle.posFixBlock : roofStyle.
posFix);
3430 switch (roofStyle.
type)
3433 flag = num6 % 2 == 1 && roofStyle.flatW == 0;
3437 num10 = roofStyle.
flatW;
3438 num11 = num6 - roofStyle.
flatW;
3456 for (
cz = num2;
cz < num4;
cz++)
3458 for (
cx = num;
cx < num3;
cx++)
3486 int num17 = num16 - num15;
3499 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));
3519 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));
3540 float num18 = (float)num17 *
screen.
tileAlign.y + (
float)lot.mh * _heightMod.y + lot.realHeight + roofFix.y + vector.y;
3547 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)num13 *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3548 param.y = num18 + (float)num13 *
roofFix2.y;
3551 param.snow = idRoofTile == 0 && flag3;
3552 param.shadowFix = 0f;
3574 if (idRoofTile != 0)
3577 int num20 = (reverse ? 1 : 0) + ((!flag) ? 2 : 0);
3592 param.matColor = 104025f;
3595 param.z += roofStyle.
snowZ;
3607 param.matColor = 104025f;
3609 param.x += roofStyle.
snowFix.x;
3610 param.y += roofStyle.
snowFix.y;
3611 param.z += roofStyle.snowZ + roofStyle.
snowFix.z;
3617 if (idRoofTile != 0)
3619 int num21 = ((!reverse) ? ((num14 != 0) ? 2 : 0) : ((num14 != 0) ? 1 : 3));
3622 param.shadowFix = num21 + 1;
3629 param.matColor = 104025f;
3630 param.z += roofStyle.
snowZ;
3636 param.tile += (lot.altRoof ? 8 : 0);
3639 param.shadowFix = 0f;
3664 for (
int i = 0; i < num13; i++)
3666 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)i *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3667 param.y = num18 + (float)i *
roofFix2.y;
3693 num13 += num14
switch
3709 return p * 262144 + (int)(matColor.r * 50f) * 4096 + (int)(matColor.g * 50f) * 64 + (int)(matColor.b * 50f);
3715 if (
room ==
null && dirWall != -1)
3717 if (dirWall == 0 && _cell.
Front.
room !=
null)
3720 _cell = _cell.
Front;
3725 _cell = _cell.
Right;
3733 float num2 = 1000f +
param.
x *
screen.
tileWeight.x + (
float)lot.mh * _heightMod.z + lot.realHeight * roofFix3.z + roofFix.z + roofStyle.
posFix.z;
3739 _param.x = (float)(_cx + _cz) * screen.tileAlign.x + roofFix.x + (float)h *
roofFix2.x;
3743 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