//////////////// public override void PreUpdate() { this.UpdateBuffTimes(); if (this.player.whoAmI == Main.myPlayer) { if (Main.mouseLeftRelease && Main.mouseLeft) { if (!this.IsLeftClickAndRelease && !Main.playerInventory) { var mouse = new Rectangle(Main.mouseX, Main.mouseY, 1, 1); foreach (var kv in BetterBuffHelpers.GetBuffIconRectanglesByPosition(true)) { int pos = kv.Key; if (kv.Value.Intersects(mouse)) { if (!BetterBuffHelpers.CanRefreshBuffAt(this.player, pos)) { continue; } if (this.player.controlTorch) { this.ToggleBuffLock(pos); } else if (this.player.buffType[pos] != BuffID.PotionSickness) { BetterBuffHelpers.RefreshBuffAt(this.player, pos); } break; } } } this.IsLeftClickAndRelease = true; } else { this.IsLeftClickAndRelease = false; } } }
//////////////// public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers) { int idx = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Inventory")); if (idx != -1) { var interfaceLayer = new LegacyGameInterfaceLayer("BetterBuffDisplays: Buff Overlay", delegate { if (Main.playerInventory) { return(true); } Player player = Main.LocalPlayer; var modplayer = player.GetModPlayer <BetterBuffsPlayer>(); foreach (var kv in BetterBuffHelpers.GetBuffIconRectanglesByPosition(false)) { int pos = kv.Key; Rectangle rect = kv.Value; int buffType = player.buffType[pos]; int buffTime = player.buffTime[pos]; this.DrawShadow(player, rect, buffType, buffTime); if (modplayer.BuffLocks.Contains(buffType)) { this.DrawLock(player, rect, buffType, buffTime); } } return(true); }, InterfaceScaleType.UI); layers.Insert(idx, interfaceLayer); } }