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);
            }
        }
Beispiel #4
0
        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;
 }