/// <summary> /// Instead of triggering a full solid change of the room, merely retrigger the /// conditions. /// </summary> /// <param name="prober">The current room prober.</param> /// <param name="cell">The cell of the room that will be updated.</param> private static void SolidNotChangedEvent(RoomProber prober, int cell, bool _) { if (prober != null) { ROOMS_PENDING.Add(cell); } }
private static void Postfix(RoomProber __instance) { //Debug.Log(" === RoomSizeMod_RoomProber Postfix === "); //RoomProber.MaxRoomSize = 1024; //RoomProber.MaxRoomSize = RoomSizeState.StateManager.State.OverallMaximumRoomSize; TuningData <RoomProber.Tuning> .Get().maxRoomSize = RoomSizeState.StateManager.State.OverallMaximumRoomSize; }
public void Sim1000ms(float dt) { mingleCells.Clear(); RoomProber roomProber = Game.Instance.roomProber; MinionGroupProber minionGroupProber = MinionGroupProber.Get(); foreach (Room room in roomProber.rooms) { if (room.roomType == Db.Get().RoomTypes.RecRoom) { for (int i = room.cavity.minY; i <= room.cavity.maxY; i++) { for (int j = room.cavity.minX; j <= room.cavity.maxX; j++) { int num = Grid.XYToCell(j, i); CavityInfo cavityForCell = roomProber.GetCavityForCell(num); if (cavityForCell == room.cavity && minionGroupProber.IsReachable(num) && !Grid.HasLadder[num] && !Grid.HasTube[num] && !Grid.IsLiquid(num) && Grid.Element[num].id == SimHashes.Oxygen) { mingleCells.Add(num); } } } } } }
private static void Postfix(RoomProber __instance) { Debug.Log(" === RoomSizeMod_RoomProber Postfix === Original Max. Room Size: " + TuningData <RoomProber.Tuning> .Get().maxRoomSize); //RoomProber.MaxRoomSize = 1024; //RoomProber.MaxRoomSize = RoomSizeState.StateManager.State.OverallMaximumRoomSize; TuningData <RoomProber.Tuning> .Get().maxRoomSize = RoomSizeConfig.Instance.OverallMaximumRoomSize; Debug.Log(" === RoomSizeMod_RoomProber Postfix === New Max. Room Size: " + TuningData <RoomProber.Tuning> .Get().maxRoomSize); }
private static void PrefixRoomProbe(RoomProber __instance) { foreach (int cell in ROOMS_PENDING) { var cavity = __instance.GetCavityForCell(cell); if (cavity != null) { __instance.UpdateRoom(cavity); } else { __instance.SolidChangedEvent(cell, true); } } ROOMS_PENDING.Clear(); }
private static void Postfix(RoomProber __instance) { //Debug.Log(" === RoomSizeMod_RoomProber Postfix === "); RoomProber.MaxRoomSize = 1024; }