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];
524 for (
int i = 0; i < 256; i++)
566 subtleHighlightArea = EMono.scene.actionMode.AreaHihlight != 0 && (EMono.scene.actionMode.AreaHihlight == AreaHighlightMode.Build || EMono.scene.actionMode.AreaHihlight !=
AreaHighlightMode.Edit);
584 fogBounds = (EMono._map.config.forceHideOutbounds && (!EMono.debug.godBuild || !
buildMode)) || (EMono.core.config.game.dontRenderOutsideMap && !
buildMode);
612 Fov.nonGradientMod = profile.
global.fovModNonGradient;
620 for (
int i = 0; i <
floatYs.Length; i++)
703 noRoofMode = EMono.game.config.noRoof || screen.focusOption !=
null;
724 currentRoom.data.visited =
true;
728 room.data.visited =
true;
761 Vector3Int vector3Int =
screen.
grid.WorldToCell(mposWorld);
763 mz = vector3Int.x - 1;
768 TestPoint.x =
mx + num3;
769 TestPoint.z =
mz - num3;
773 Physics2D.SyncTransforms();
774 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
780 TestPoint.x =
mx + num3 - 1;
781 TestPoint.z =
mz - num3;
785 Physics2D.SyncTransforms();
786 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
792 TestPoint.x =
mx + num3;
793 TestPoint.z =
mz - num3 + 1;
797 Physics2D.SyncTransforms();
798 if (Physics2D.RaycastNonAlloc(mposWorld, Vector2.zero,
rays) > 0)
806 bool flag2 = EMono._zone.UseFog && !
EMono.
scene.
bg.wall;
811 cx = screen.scrollX - screen.scrollY +
x - (
z + 1) / 2;
812 cz = screen.scrollY + screen.scrollX +
x +
z / 2;
817 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)
z *
edgeBlockFix.z;
872 int valueOrDefault = (this.room?.
lot?.
idBGM).GetValueOrDefault();
873 if (valueOrDefault == 0)
879 BGMData data =
EMono.
Sound.plLot.list[0].data;
880 if ((
object)data !=
null && data.id == valueOrDefault)
892 SoundManager.bgmVolumeMod = ((!LayerDrama.maxBGMVolume && !EMono._map.IsIndoor && this.room !=
null && !this.room.data.atrium && this.room.
HasRoof) ? (-0.6f) : 0f);
925 this.room = this.cell.
room;
945 floorDir = this.cell.sourceObj.snowTile - 1;
965 light = (this.cell.pcSync ? this.cell.light : (this.cell.light / 3 * 2));
999 liquidLv = (param.liquidLv = ((!flag && !
isUnderwater) ? (((this.cell.
liquidLv +
this.cell._bridge != 0) ?
this.cell.sourceBridge.tileType.LiquidLV :
sourceFloor.tileType.LiquidLV) * 10) : 0));
1009 if (effect !=
null && effect.
IsFire)
1019 if (this.room !=
null)
1021 this.room.lot.sync =
true;
1032 if ((this.room !=
null && this.room.
lot ==
currentLot) || flag2)
1051 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));
1069 bool num = this.room !=
null && sourceBlock.tileType.CastShadowSelf && !this.cell.
hasDoor;
1070 bool flag3 = this.room !=
null &&
showRoof && this.room.lot.idRoofStyle != 0 && !this.room.data.atrium && !
sourceBlock.tileType.Invisible;
1071 if (flag3 && this.cell.
hasDoor &&
this.cell.IsLotEdge)
1075 if (num || !
isSeen || flag3)
1089 param.y += 0.01f *
floatY;
1097 param.x += anime2.
v.x;
1098 param.y += anime2.
v.y;
1099 param.z += anime2.
v.z;
1116 param.dir = this.cell._roofBlockDir % 4;
1126 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1134 if (dir == 0 || dir == 2)
1151 if (dir == 1 || dir == 2)
1174 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref row2.
matColor,
_sourceBlock.sourceAutoFloor.colorMod));
1180 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1185 int shadow2 = shadowPref.
shadow;
1190 param.tile = row.
_tiles[param.dir % row.
_tiles.Length];
1210 param.matColor = 104025f;
1213 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight * _heightMod.y +
ugFixBridgeBottom.x;
1214 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
1236 float num2 = (float)(
int)this.cell.TopHeight *
_heightMod.y;
1241 param.z += ugFix.z +
slopeFixZ * (float)i;
1283 if (this.cell.
effect !=
null)
1291 param.mat = defaultMaterial;
1299 if (sourceEffect2.
anime.Length != 0)
1301 if (sourceEffect2.
anime.Length > 2)
1303 float num3 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[2];
1304 if (!(num3 >= (
float)sourceEffect2.
anime[0]))
1311 float num4 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.
anime[1] % (
float)sourceEffect2.
anime[0];
1326 if (this.cell.
critter !=
null)
1329 int snowTile = critter.
tile;
1359 param.x += anime4.
v.x;
1360 param.y += anime4.
v.y;
1361 param.z += anime4.
v.z;
1364 if (this.cell.
obj != 0 && !
this.cell.sourceObj.renderData.SkipOnMap)
1370 param.mat = this.cell.
matObj;
1376 param.y += 0.01f *
floatY;
1379 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
1426 param.tile = sourceObj.
_tiles[this.cell.blockDir % sourceObj.
_tiles.Length];
1430 param.tile = sourceObj.
_tiles[this.cell.objDir % sourceObj.
_tiles.Length];
1434 param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
1438 param.y += sourceObj.
pref.
y;
1439 param.z += sourceObj.
pref.
z;
1498 param.matColor = 104025f;
1525 param.tile = defBlock.
_tiles[this.cell.blockDir % defBlock.
_tiles.Length];
1526 if (defBlock.
id != 1)
1532 param.matColor = 104025f;
1538 param.z += ugFix.z +
slopeFixZ * (float)j;
1552 if (!isWater && (this.cell.
Front.
sourceFloor.tileType.IsWater ||
this.cell.Right.sourceFloor.tileType.IsWater) && this.cell.sourceBlock.tileType.RenderWaterBlock && !flag)
1565 num7 = row3.
_tiles[this.cell.blockDir % row3.
_tiles.Length];
1567 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)
1569 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;
1571 param.
tile = num7 + ((!
this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1574 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)
1576 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;
1578 param.
tile = num7 + ((!
this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
1586 param.matColor = 104025f;
1610 param.tile = defBlock2.
_tiles[this.cell.blockDir % defBlock2.
_tiles.Length];
1611 if (defBlock2.
id != 1)
1617 param.matColor = 104025f;
1622 param.z += ugFix.z +
slopeFixZ * (float)k;
1639 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);
1648 if (isWater && flag)
1650 param.y -= 0.01f *
floatY;
1679 if (!this.cell.
Right.
IsSnowTile &&
this.cell.Right.topHeight ==
this.cell.topHeight)
1683 if (!this.cell.
Front.
IsSnowTile &&
this.cell.Front.topHeight ==
this.cell.topHeight)
1689 param.tile = 448 + num8 + 12;
1701 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
1725 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1742 if (
back.sourceBlock.transition[0] != -1 &&
back.isSeen && !
back.hasDoor)
1760 if (this.cell.
autotile != 0 &&
sourceFloor.autotile != 0 && (!
hasBridge ||
this.cell.bridgeHeight -
this.cell.height > 3) && !
this.cell.skipRender && num8 == 0)
1780 int num10 = this.cell.shore / num9;
1781 int num11 = this.cell.shore % num9;
1783 if (this.cell.
shore != 0)
1785 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)));
1788 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)));
1814 param.tile = (24 + num11 / 2) * 32 + num11 % 2 * 16 + num10;
1818 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)
1825 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)
1832 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)
1839 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)
1846 if (this.cell.
_bridge != 0 &&
this.cell.isBridgeEdge &&
this.cell.bridgePillar !=
byte.MaxValue)
1865 if (((uint)num10 & (
true ? 1u : 0u)) != 0)
1867 if (((uint)num10 & 8u) != 0)
1869 if ((num10 & 2) == 0 && (num10 & 4) == 0)
1875 if (((uint)num10 & 2u) != 0)
1877 if ((num10 & 8) == 0 && (num10 & 4) == 0)
1884 if (((uint)num10 & 4u) != 0)
1886 if (((uint)num10 & 8u) != 0)
1888 if ((num10 & 2) == 0 && (num10 & 1) == 0)
1894 if (((uint)num10 & 2u) != 0)
1896 if ((num10 & 8) == 0 && (num10 & 1) == 0)
1905 if (!this.cell.
Front.
sourceFloor.tileType.IsWater && !
this.cell.Front.isDeck)
1909 if (!this.cell.
Right.
sourceFloor.tileType.IsWater && !
this.cell.Right.isDeck)
1917 if (!this.cell.
Back.
sourceFloor.tileType.IsWater && !
this.cell.Back.isDeck)
1923 if (((uint)(this.cell.
shore / num9) & (
true ? 1u : 0u)) != 0)
1955 if (!this.cell.
Left.
sourceFloor.tileType.IsWater && !
this.cell.Left.isDeck)
1961 if (((uint)(this.cell.
shore / num9) & 8u) != 0)
1996 param.y += 0.01f *
floatY;
2015 param.y = (float)(
cz -
cx) * screen.tileAlign.y + (float)(
int)this.cell.bridgeHeight *
_heightMod.y;
2016 param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)(
int)this.cell.bridgeHeight *
_heightMod.z;
2019 param.y += 0.01f *
floatY;
2044 if (this.cell.
shadow != 0)
2048 param.tile = 448 + this.cell.shadow + 8 + (this.cell.HasFence ? 4 : 0);
2069 if (this.cell.
isBridgeEdge &&
this.cell.bridgeHeight -
this.cell.height >= 3 &&
this.cell.bridgePillar !=
byte.MaxValue && !
noSlopMode)
2086 param.tile = row4.
_tiles[0] + ((num13 == 2) ? 32 : 0);
2093 param.tile = row4.
_tiles[0] + 32;
2098 for (
int l = 0; l < num13; l++)
2118 if (this.cell.
_block != 0 && !
this.cell.hasDoor)
2148 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2161 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)))
2168 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2192 if (this.room !=
null)
2205 int num15 = ((this.room.data.maxHeight == 0) ? 2 : this.room.
data.
maxHeight);
2206 roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.
lot.
height < num15) ? this.room.lot.height : num15) + 0.01f * (
float)this.room.
lot.
heightFix;
2225 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)
2230 else if (this.cell.
Back.
room !=
null &&
this.cell.Back.room.
lot == (
this.cell.Front.room ??
this.cell.Right.room)?.lot)
2241 this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.
FrontRight.
room;
2277 param.color = (int)(50f *
blockLight) * 262144;
2278 param.matColor = 104025f;
2320 if (this.cell.
Things.Count > 0)
2342 if (!invisible &&
room !=
null)
2366 room = this.cell.Right.room ?? this.cell.
room;
2371 if (!invisible &&
room !=
null)
2407 bool flag8 = blockDir == 1 ||
_lowblock || flag7;
2408 bool flag9 = blockDir == 0 ||
_lowblock || flag7;
2415 if (!this.cell.
IsRoomEdge || (
this.cell.Front.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2429 if (!this.cell.
IsRoomEdge || (
this.cell.Right.room !=
this.cell.room &&
this.cell.FrontRight.room !=
this.cell.room))
2440 if (blockDir == 0 || blockDir == 2)
2443 Room room2 = this.cell.Front.room ?? this.cell.
room;
2444 if (room2 !=
null && this.tileType.
IsWall)
2446 if (room2.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2466 if (blockDir == 2 &&
left.sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2469 param.mat =
left.matBlock;
2504 param.tile =
_sourceBlock._tiles[0] + ((flag8 && flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2514 if (!flag8 && !
showRoof && this.cell.
Left.
HasWallOrFence &&
this.cell.Left.blockDir != 0 && !
this.cell.Left.isToggleWallPillar)
2517 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2534 param.tile =
_sourceBlock._tiles[0] + ((flag8 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2549 if (blockDir == 1 || blockDir == 2)
2554 Room room3 = this.cell.Right.room ?? this.cell.
room;
2555 if (room3 !=
null && this.tileType.
IsWall)
2557 if (room3.
lot.
idDeco != 0 && !
this.cell.hasDoor)
2576 if (blockDir == 2 && this.cell.
room ==
null &&
this.cell.Right.room !=
null)
2590 int num19 = ((room4.data.maxHeight == 0) ? 2 : room4.
data.
maxHeight);
2591 roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.
lot.
height < num19) ? room4.lot.height : num19) + 0.01f * (
float)room4.
lot.
heightFix;
2595 if (blockDir == 2 && back2.
sourceBlock.tileType.IsWallOrFence && !
this.cell.crossWall)
2634 param.tile =
_sourceBlock._tiles[0] + ((flag9 && this.tileType.UseLowBlock && !flag7) ? 32 : 0) + (this.tileType.IsFence ? 32 : 64);
2656 param.halfBlockColor = ((_sourceBlock.sourceAutoFloor.colorMod == 0) ? 104025 :
GetColorInt(ref
matBlock.matColor,
_sourceBlock.sourceAutoFloor.colorMod));
2664 int num20 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.
objDir : 0) + 1;
2675 int shadow4 = shadowPref2.
shadow;
2696 if (this.cell.
room !=
null || !
this.cell.IsRoomEdge || !
showRoof)
2700 if (this.cell.
_block == 0 || !
this.cell.sourceBlock.tileType.RepeatBlock)
2703 if (obj ==
null || !obj.
HasRoof)
2711 if (!
showRoof || !
roof || this.cell.
room ==
null ||
this.cell.Front.room ==
null ||
this.cell.Right.room ==
null)
2726 freePos.x = (freePos.y = (freePos.z = 0f));
2730 param.x += rampFix.x;
2731 param.y += rampFix.y;
2732 param.z += rampFix.z;
2733 freePos.x += rampFix.x;
2734 freePos.y += rampFix.y;
2735 freePos.z += rampFix.z;
2737 param.y += (flag ? 0f : ((this.cell._bridge != 0) ? this.cell.
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight));
2745 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2755 bool flag10 =
false;
2757 bool flag11 =
false;
2773 if (!isInstalled && t.
category.tileDummy != 0)
2777 float num27 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.
height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.
height)));
2780 thingPos.y -= num22;
2782 shadow = thingPos.y < 0.16f && num25 < 0.16f;
2792 _actorPos.z = param.z + num26;
2793 if (this.room !=
null)
2803 _actorPos.x =
orgX + num23;
2808 if (thing?.
id != t.
id)
2815 thingPos.y -= num22;
2818 _actorPos.z -= 0.2f;
2821 _actorPos.y -= num22;
2823 _actorPos.z += renderSetting.thingZ + (float)m * -0.01f +
zSetting.mod1 *
thingPos.y;
2833 freePos.x += rampFix2.x;
2834 freePos.y += rampFix2.y;
2835 freePos.z += rampFix2.z;
2838 num25 += rampFix2.y;
2840 liquidLv -= (int)(rampFix2.y * 150f);
2855 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2856 _actorPos.z += pref.
z;
2857 thingPos.z += pref.
z;
2866 thingPos.y += num27;
2867 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2868 _actorPos.z += pref.
z;
2871 thingPos.z += pref.
z;
2881 thingPos.y += num27;
2882 _actorPos.x += pref.x * (float)((!t.
flipX) ? 1 : (-1));
2883 _actorPos.z += pref.
z;
2884 thingPos.z += pref.
z;
2889 float num28 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
2892 _actorPos.y += 0.01f *
floatY - num28;
2895 liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
2933 Room room5 = ((t.dir == 0) ? this.cell.
Back.
room :
this.cell.Left.room);
2956 _actorPos.x += t.
fx;
2957 _actorPos.y += t.
fy;
2977 _actorPos.z += -0.5f;
3018 param.tile += ((param.tile < 0f) ? (-64) : 64);
3027 _actorPos.y = EMono.pc.renderer.position.y - pref.
height;
3028 _actorPos.z = EMono.pc.renderer.position.z + 0.02f;
3039 num23 += pref.stackX * (float)((!t.
flipX) ? 1 : (-1));
3057 param.shadowFix = 0f - num25;
3058 param.color += 1310720f;
3075 if (restrainer !=
null)
3078 if (getRestrainPos !=
default(Vector3))
3082 float num30 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.
source.pref.height);
3083 _actorPos.x = position.x + getRestrainPos.x * (float)((restrainer.
owner.
dir % 2 == 0) ? 1 : (-1));
3084 _actorPos.y = position.y + num30;
3085 _actorPos.z = position.z + getRestrainPos.z;
3090 param.shadowFix = 0f;
3099 float num31 = chara.renderer.data.size.y * 0.3f;
3104 float num32 = thingPos.y + num31;
3105 float num33 = (float)n * -0.01f;
3112 _actorPos.z += renderSetting.laydownZ + num33;
3113 param.liquidLv = ((thingPos.y == 0f &&
liquidLv > 0) ? 90 : 0);
3114 thingPos.y += num31 * 0.8f;
3124 float num34 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
3125 float num35 =
floatYs[chara.uid % 10] + 10f + (float)(chara.
uid % 30);
3126 orgY += 0.01f * num35 - num34;
3127 _actorPos.y += 0.01f * num35 - num34;
3128 param.shadowFix -= 0.01f * num35 - num34;
3137 float num36 = ((this.cell._bridge != 0) ?
sourceBridge.tileType.FloorHeight :
sourceFloor.tileType.FloorHeight);
3139 _actorPos.y += 0.01f *
floatY - num36;
3140 int num37 = TileType.FloorWaterShallow.LiquidLV * 10;
3141 num37 -= (int)(
floatY * 0.5f);
3142 param.liquidLv = num37;
3146 param.liquidLv -= 20;
3196 Vector3 zero = Vector3.zero;
3215 zero.x += rampFix.x;
3216 zero.y += rampFix.y;
3217 zero.z += rampFix.z;
3225 zero.x += pref.x * (float)((!tg.
flipX) ? 1 : (-1));
3258 float num4 = (tileType.UseMountHeight ? 0f : ((pref2.height == 0f) ? 0.1f : pref2.
height));
3266 zero.x += rampFix2.x;
3267 zero.y += rampFix2.y;
3268 zero.z += rampFix2.z;
3277 zero.x += pref2.stackX * (float)((!thing.
flipX) ? 1 : (-1));
3282 num4 += altitudeFix.y * (float)thing.
altitude;
3289 zero.z += renderSetting.thingZ + num + (float)i * -0.01f +
zSetting.mod1 * zero.y;
3331 int num2 = (int)(num * 50f) * 262144;
3353 num = lot.z - roofStyle.
h;
3354 num2 = lot.x - roofStyle.
w;
3355 num3 = lot.mz + 1 + roofStyle.
h;
3356 num4 = lot.mx + 1 + roofStyle.
w;
3368 num = lot.x - roofStyle.
w;
3369 num2 = lot.z - roofStyle.
h;
3370 num3 = lot.mx + 1 + roofStyle.
w;
3371 num4 = lot.mz + 1 + roofStyle.
h;
3384 num5 = ((lot.height > 1) ? 1 : 0);
3395 int num6 = num4 + (reverse ? roofStyle.w : roofStyle.
h) * 2 - num2;
3401 num7 = EMono.sources.blocks.rows.Count - 1;
3405 num8 = EMono.sources.floors.rows.Count - 1;
3410 num9 = EMono.sources.blocks.rows.Count - 1;
3413 int num10 = num6 / 2 - roofStyle.
flatW;
3414 int num11 = num6 / 2 + roofStyle.flatW + ((num6 % 2 != 0) ? 1 : 0);
3417 int num13 = ((num5 != 0) ? (-1) : 0);
3419 Vector3 vector = (lot.fullblock ? roofStyle.posFixBlock : roofStyle.
posFix);
3420 switch (roofStyle.
type)
3423 flag = num6 % 2 == 1 && roofStyle.flatW == 0;
3427 num10 = roofStyle.
flatW;
3428 num11 = num6 - roofStyle.
flatW;
3446 for (
cz = num2;
cz < num4;
cz++)
3448 for (
cx = num;
cx < num3;
cx++)
3476 int num17 = num16 - num15;
3489 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));
3509 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));
3530 float num18 = (float)num17 *
screen.
tileAlign.y + (
float)lot.mh * _heightMod.y + lot.realHeight + roofFix.y + vector.y;
3537 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)num13 *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3538 param.y = num18 + (float)num13 *
roofFix2.y;
3541 param.snow = idRoofTile == 0 && flag3;
3542 param.shadowFix = 0f;
3564 if (idRoofTile != 0)
3567 int num20 = (reverse ? 1 : 0) + ((!flag) ? 2 : 0);
3582 param.matColor = 104025f;
3585 param.z += roofStyle.
snowZ;
3597 param.matColor = 104025f;
3599 param.x += roofStyle.
snowFix.x;
3600 param.y += roofStyle.
snowFix.y;
3601 param.z += roofStyle.snowZ + roofStyle.
snowFix.z;
3607 if (idRoofTile != 0)
3609 int num21 = ((!reverse) ? ((num14 != 0) ? 2 : 0) : ((num14 != 0) ? 1 : 3));
3612 param.shadowFix = num21 + 1;
3619 param.matColor = 104025f;
3620 param.z += roofStyle.
snowZ;
3626 param.tile += (lot.altRoof ? 8 : 0);
3629 param.shadowFix = 0f;
3654 for (
int i = 0; i < num13; i++)
3656 param.x = (float)(
cx +
cz) * screen.tileAlign.x + roofFix.x + (float)i *
roofFix2.x + vector.x * (
float)(reverse ? 1 : (-1));
3657 param.y = num18 + (float)i *
roofFix2.y;
3683 num13 += num14
switch
3699 return p * 262144 + (int)(matColor.r * 50f) * 4096 + (int)(matColor.g * 50f) * 64 + (int)(matColor.b * 50f);
3705 if (
room ==
null && dirWall != -1)
3707 if (dirWall == 0 && _cell.
Front.
room !=
null)
3710 _cell = _cell.
Front;
3715 _cell = _cell.
Right;
3723 float num2 = 1000f +
param.
x *
screen.
tileWeight.x + (
float)lot.mh * _heightMod.z + lot.realHeight * roofFix3.z + roofFix.z + roofStyle.
posFix.z;
3729 _param.x = (float)(_cx + _cz) * screen.tileAlign.x + roofFix.x + (float)h *
roofFix2.x;
3733 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