public static void Postfix(ref Database.RoomTypes __instance) { //Debug.Log(" === PoperPowerPlant_RoomTypes Postfix === "); // Get Power Plant RoomType roomType = __instance.TryGet(__instance.PowerPlant.Id); // Custom max size constraint for room int customMaxSize = 240; Constraint MaxSizeConstraint = new Constraint(null, (Room room) => room.cavity.numCells <= customMaxSize, 1, string.Format(ROOMS.CRITERIA.MAXIMUM_SIZE.NAME, "" + customMaxSize), string.Format(ROOMS.CRITERIA.MAXIMUM_SIZE.DESCRIPTION, "" + customMaxSize), null); // Custom max size for all rooms TuningData <RoomProber.Tuning> .Get().maxRoomSize = customMaxSize; // Iterate constraints RoomConstraints.Constraint[] additional_constraints = roomType.additional_constraints; for (int i = 0; i < additional_constraints.Length; i++) { // Change max size constraint if (additional_constraints[i].name.Contains("Maximum size:")) { additional_constraints[i] = MaxSizeConstraint; break; } } }
public static void ResizeRooms(ref Database.RoomTypes __instance) { for (int i = 0; i < __instance.Count; i++) { if (__instance[i] == null || __instance[i].additional_constraints == null) { continue; } for (int add = 0; add < __instance[i].additional_constraints.Length; add++) { if (__instance[i].additional_constraints[add] == RoomConstraints.MAXIMUM_SIZE_64) { __instance[i].additional_constraints[add] = RoomConstraintTags.GetMaxSizeConstraint(Settings.Instance.ResizeMaxRoomSize64); } else if (__instance[i].additional_constraints[add] == RoomConstraints.MAXIMUM_SIZE_96) { __instance[i].additional_constraints[add] = RoomConstraintTags.GetMaxSizeConstraint(Settings.Instance.ResizeMaxRoomSize96); } else if (__instance[i].additional_constraints[add] == RoomConstraints.MAXIMUM_SIZE_120) { __instance[i].additional_constraints[add] = RoomConstraintTags.GetMaxSizeConstraint(Settings.Instance.ResizeMaxRoomSize120); } } } }
private static void Postfix(ref Database.RoomTypes __instance) { Debug.Log(" === RoomSizeMod_RoomTypes Postfix === "); /* * ChangeRoomMaximumSize(__instance.PlumbedBathroom, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.Latrine, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.Bedroom, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.Barracks, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.GreatHall, MAXIMUM_SIZE_240); * ChangeRoomMaximumSize(__instance.MessHall, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.Hospital, MAXIMUM_SIZE_192); * ChangeRoomMaximumSize(__instance.MassageClinic, MAXIMUM_SIZE_128); * ChangeRoomMaximumSize(__instance.PowerPlant, MAXIMUM_SIZE_192); * ChangeRoomMaximumSize(__instance.Farm, MAXIMUM_SIZE_192); * ChangeRoomMaximumSize(__instance.CreaturePen, MAXIMUM_SIZE_192); * ChangeRoomMaximumSize(__instance.MachineShop, MAXIMUM_SIZE_192); * ChangeRoomMaximumSize(__instance.RecRoom, MAXIMUM_SIZE_128); */ //foreach (KeyValuePair<string, int> entry in RoomSizeStateManager.ConfiguratorState.MaximumRoomSizes) foreach (KeyValuePair <string, int> entry in RoomSizeState.StateManager.State.MaximumRoomSizes) { Constraint max_size = new Constraint(null, (Room room) => room.cavity.numCells <= entry.Value, 1, string.Format(ROOMS.CRITERIA.MAXIMUM_SIZE.NAME, "" + entry.Value), string.Format(ROOMS.CRITERIA.MAXIMUM_SIZE.DESCRIPTION, "" + entry.Value), null); //Debug.Log(entry.Key); //Debug.Log(__instance.Get(entry.Key)); ChangeRoomMaximumSize(__instance.Get(entry.Key), max_size); } }
private static void Postfix(ref Database.RoomTypes __instance) { Debug.Log(" === RoomSizeMod_RoomTypes Postfix === " + __instance.PlumbedBathroom); ChangeRoomMaximumSize(__instance.PlumbedBathroom, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.Latrine, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.Bedroom, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.Barracks, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.GreatHall, MAXIMUM_SIZE_240); ChangeRoomMaximumSize(__instance.MessHall, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.Hospital, MAXIMUM_SIZE_192); ChangeRoomMaximumSize(__instance.MassageClinic, MAXIMUM_SIZE_128); ChangeRoomMaximumSize(__instance.PowerPlant, MAXIMUM_SIZE_192); ChangeRoomMaximumSize(__instance.Farm, MAXIMUM_SIZE_192); ChangeRoomMaximumSize(__instance.CreaturePen, MAXIMUM_SIZE_192); ChangeRoomMaximumSize(__instance.MachineShop, MAXIMUM_SIZE_192); ChangeRoomMaximumSize(__instance.RecRoom, MAXIMUM_SIZE_128); }
/// <summary> /// Sets the room types cached value on Db initialization. /// </summary> internal static void Init() { roomTypes = Db.Get().RoomTypes; }