private void LoadCharge(ChargeDataGrid charge) { if (charge != null) { ChargeDate = charge.ChargeDate; SelectedBuilding = BuildingsCollection.FirstOrDefault(x => x.BuildingId.Equals(charge.Building.BuildingId)); //ApartmentNumber = charge.Apartment.ApartmentNumber; SelectedApartmentNumber = ApartmentsNumbersCollection.FirstOrDefault(x => x.Equals(charge.Apartment.ApartmentNumber)); OwnerName = charge.Owner.OwnerName + Environment.NewLine + charge.Owner.MailAddress; } }
public BuildingsCollection(BuildingsCollection buildings) { foreach (KeyValuePair <BuildingEnum, Building> kvp in buildings) { if (ContainsKey(kvp.Key)) { this[kvp.Key].AddLevel(kvp.Value.Level); } else { Add(kvp.Key, kvp.Value); } } }
public static BuildingsCollection operator +(BuildingsCollection a, BuildingsCollection b) { if (b == null) { return(a); } var ret = new BuildingsCollection(a); foreach (var key in b.Keys) { ret[key].AddLevel(b[key].Level); } return(ret); }
static bool Prefix(SettlementState __instance, SettlementBuilding building, ref SettlementBuilding __result, BuildingsCollection ___m_Buildings) { try { if (!Main.enabled) { return(true); } if (!Main.settings.currencyFallback) { return(true); } if (!building.IsFinished || !___m_Buildings.HasFact(building) || !building.Blueprint.UpgradesTo) { return(false); } if (!KingdomCurrencyFallback.CanSpend(__instance.GetActualCost(building.Blueprint.UpgradesTo))) { UberDebug.LogWarning("Cannot upgrade " + building.Blueprint + ": not enough BP"); return(false); } KingdomCurrencyFallback.SpendPoints(__instance.GetActualCost(building.Blueprint)); SettlementBuilding result = ___m_Buildings.Upgrade(building); __instance.Update(); EventBus.RaiseEvent((ISettlementBuildUpdate h) => h.OnBuildUpdate(building)); __result = result; return(false); } catch (Exception ex) { Main.Error(ex); return(true); } }
void Start() { IncomeInventory = new GoodsCollection(0); Inventory = new GoodsCollection(100); GuiManager.UpdateGui(Inventory); Buildings2 = new BuildingsCollection2(); Inventory.OnCollectionChange += (collection, args) => { GuiManager.UpdateGui(Inventory); }; Globals.GridManager.OnBuildingPlaced -= PlaceBuilding; Globals.GridManager.OnBuildingPlaced += PlaceBuilding; //TODO Buildings = new BuildingsCollection(); foreach (var key in Buildings.Keys) { Building b = Buildings[key]; b.Sprite = Resources.Load <Sprite>(b.BuildingName); var btn = Instantiate(buildingButtonObject); btn.transform.SetParent(buildingListObject.transform); btn.transform.localScale = Vector3.one; var bb = btn.GetComponent <BuildingButton>(); bb.InitializeBuildingButton(this, b); b.BuildingButton = bb; } _modeButtons[0].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(0); }); _modeButtons[1].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(1); }); _modeButtons[2].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(2); }); _modeButtons[3].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(3); }); }
static bool Prefix(SettlementState __instance, ref SettlementBuilding __result, BlueprintSettlementBuilding building, SettlementGridTopology.Slot slot, bool force, ref int ___m_SlotsLeft, BuildingsCollection ___m_Buildings) { try { if (!Main.enabled) { return(true); } if (!Main.settings.currencyFallback) { return(true); } var removedBuilding = true; if (!force) { if (!__instance.CanBuild(building)) { __result = null; return(false); } BuildingSlot slotObject = slot.GetSlotObject(); if (slotObject?.CanBuildHere(building) != true) { return(false); } KingdomCurrencyFallback.SpendPoints(__instance.GetActualCost(building)); removedBuilding = __instance.FreeBuildings.Remove(building) || KingdomState.Instance.FreeBuildings.Remove(building); } SettlementBuilding settlementBuilding = ___m_Buildings.Build(building); settlementBuilding.BuildOnSlot(slot); if (building.SpecialSlot == SpecialSlotType.None) { ___m_SlotsLeft -= building.SlotCount; } if (!force && !removedBuilding || SellDiscountedBuildingGetter(__instance) != building) { SellDiscountedBuildingSetter(__instance, null); } __instance.Update(); EventBus.RaiseEvent((ISettlementBuildingHandler h) => h.OnBuildingStarted(__instance, settlementBuilding)); __result = settlementBuilding; return(false); } catch (Exception ex) { Main.Error(ex); return(true); } }