public override void Update(GameTime gameTime) { if (MouseUtil.ButtonPressed(MouseButton.LeftButton) && !lockedShot && !chargingShot) { chargingShot = true; } if (MouseUtil.IsButtonUp(MouseButton.LeftButton) && !lockedShot && chargingShot) { joj = 0; timeUntilJoj = 0; chargingShot = false; } if (chargingShot || lockedShot) { Game1.Player.speedMult = 0.5f; if (MouseUtil.X < Game1.Player.XandY.DrawPos().X) { Game1.Player.facing = 1; } else if (MouseUtil.X > Game1.Player.XandY.DrawPos().X) { Game1.Player.facing = 0; } if (joj < 3) { timeUntilJoj += gameTime.ElapsedGameTime.Milliseconds; if (timeUntilJoj >= 200) { joj++; timeUntilJoj = 0; } } if (joj == 3 && !lockedShot) { chargingShot = false; lockedShot = true; Game1.PlaySound("lock"); } } else { Game1.Player.speedMult = 1; } if (MouseUtil.ButtonPressed(MouseButton.LeftButton) && lockedShot) { double my = MouseUtil.Y - Game1.Player.XandY.DrawPos().Y; double mx = MouseUtil.X - Game1.Player.XandY.DrawPos().X; Arrow arrow = new Arrow(Math.Atan2(my, mx), 16, 1000); arrow.X = Game1.Player.X; arrow.Y = Game1.Player.Y; Game1.Player.Owner.AddEntity(arrow); Game1.PlaySound("shoot"); lockedShot = false; joj = 0; timeUntilJoj = 0; } if (MouseUtil.IsButtonUp(MouseButton.LeftButton) && !lockedShot) { joj = 0; timeUntilJoj = 0; } base.Update(gameTime); }
public void Update(GameTime gameTime) { if (KeyboardUtil.KeyPressed(Keys.E) || KeyboardUtil.KeyPressed(Keys.Escape)) { Game1.CloseMenu(); return; } Vector2 mouseRelative = MouseUtil.XandY - Position; if (MouseUtil.X >= Position.X && MouseUtil.X < Position.X + GetSize().X&& MouseUtil.Y >= Position.Y && MouseUtil.Y < Position.Y + GetSize().Y) { int slot = (int)((Math.Floor(mouseRelative.Y / 128) * 4) + Math.Floor(mouseRelative.X / 128)); if (KeyboardUtil.IsKeyDown(Keys.LeftShift) && this.heldSlot == -1) { if (originalSelected == -1) { originalSelected = slot; } currentSelected = slot; Rectangle originRect = new Rectangle((originalSelected % 4) * 128, (originalSelected / 4) * 128, 128, 128); Rectangle currentRect = new Rectangle((currentSelected % 4) * 128, (currentSelected / 4) * 128, 128, 128); slotSelection = Rectangle.Union(originRect, currentRect); if (MouseUtil.ButtonPressed(MouseButton.LeftButton)) { List <int> slots = new List <int>(); for (int i = 0; i < Game1.Player.Inventory.Length; i++) { int slotX = (i % 4) * 128; int slotY = (i / 4) * 128; if (slotSelection.Value.Contains(slotX, slotY)) { if (Game1.Player.Inventory[i] != null) { slots.Add(i); } } } List <Item> craftItems = new List <Item>(); slots.ForEach(_ => craftItems.Add(Game1.Player.Inventory[_])); Item craft = Crafting.Craft(craftItems); if (craft != null) { foreach (var i in slots) { Game1.Player.Inventory[i] = null; } Game1.Player.Inventory[slot] = craft; } } } else if (MouseUtil.ButtonPressed(MouseButton.LeftButton)) { if (Game1.Player.Inventory[slot] != null) { this.heldSlot = slot; } } else if (MouseUtil.IsButtonUp(MouseButton.LeftButton) && this.heldSlot != -1) { Item replacedWith = Game1.Player.Inventory[slot]; Game1.Player.Inventory[slot] = Game1.Player.Inventory[this.heldSlot]; Game1.Player.Inventory[this.heldSlot] = replacedWith; this.heldSlot = -1; } } else { if (MouseUtil.IsButtonUp(MouseButton.LeftButton) && this.heldSlot != -1) { if (this.overTrash) { Game1.PlaySound("trash", 0.2f); Game1.Player.Inventory[this.heldSlot] = null; this.heldSlot = -1; } else { this.heldSlot = -1; } } } if (this.heldSlot != -1 && Game1.Player.Inventory[this.heldSlot] == null) { this.heldSlot = -1; } if (this.heldSlot != -1) { Texture2D trash = ContentLibrary.Sprites["ui:trash1"]; if (MouseUtil.X >= Position.X + GetSize().X&& MouseUtil.X < Position.X + GetSize().X + trash.Width && MouseUtil.Y >= Position.Y + GetSize().Y - trash.Height && MouseUtil.Y < Position.Y + GetSize().Y) { overTrash = true; } else { overTrash = false; } } else { overTrash = false; } if (KeyboardUtil.IsKeyUp(Keys.LeftShift)) { slotSelection = null; currentSelected = -1; originalSelected = -1; } }
protected override void Update(GameTime gameTime) { Buffs.Update(gameTime); KeyboardUtil.Update(); MouseUtil.Update(); if (!Game1.IsPaused()) { Thyme.Update(gameTime); } if (KeyboardUtil.KeyPressed(Keys.B)) { World.AddEntity(new Sodamachine(Utility.GetTilePos(MouseUtil.WorldPos.X, MouseUtil.WorldPos.Y))); } if (KeyboardUtil.KeyPressed(Keys.K)) { timeman++; } if (KeyboardUtil.KeyPressed(Keys.J)) { timeman--; } if (MouseUtil.ButtonPressed(MouseButton.RightButton)) { Game1.World.AddEntity(new Treeeeeeee(Utility.GetTilePos(MouseUtil.WorldPos.X, MouseUtil.WorldPos.Y))); } if (MouseUtil.ButtonPressed(MouseButton.MiddleButton)) { Game1.World.AddEntity(new Giantdog(Utility.GetTilePos(MouseUtil.WorldPos.X, MouseUtil.WorldPos.Y))); } if (KeyboardUtil.KeyPressed(Keys.J)) { Game1.World.AddEntity(new Plant(Utility.GetTilePos(Player.X, Player.Y))); } if (KeyboardUtil.KeyPressed(Keys.T)) { Thyme.active = !Thyme.active; } if (!playedMusic) { Music.Play("music"); Music.Volume(0.2f); playedMusic = true; } if (KeyboardUtil.KeyPressed(Keys.M)) { if (KeyboardUtil.IsKeyDown(Keys.LeftControl)) { Music.Dispose(); Music.Play("monoman"); Music.Volume(0.3f); } else { if (!Music.IsMuted) { Music.Mute(); } else { Music.UnMute(); } } } Game1.Random = new Random(); if (Game1.CurrentMenu != null) { Game1.CurrentMenu.Update(gameTime); KeyboardUtil.Update(); } if (Game1.World != null) { Game1.World.Update(gameTime); } if (KeyboardUtil.KeyPressed(Keys.X)) { World.AddEntity(new Chest(Utility.GetTilePos(MouseUtil.WorldPos.X, MouseUtil.WorldPos.Y))); } if (KeyboardUtil.KeyPressed(Keys.Escape) && Game1.CurrentMenu == null) { Game1.OpenMenu(new Menu()); } if (KeyboardUtil.KeyPressed(Keys.E) && Game1.CurrentMenu == null) { Game1.OpenMenu(new JagInventory()); } if (KeyboardUtil.KeyPressed(Keys.V)) { World.AddEntity(new Chest((Utility.GetTilePos(MouseUtil.WorldPos.X, MouseUtil.WorldPos.Y)))); } if (KeyboardUtil.KeyPressed(Keys.OemPlus)) { if (Game1.PixelZoom < 1) { Game1.PixelZoom *= 2; } else { Game1.PixelZoom++; } } if (KeyboardUtil.KeyPressed(Keys.OemMinus)) { if (Game1.PixelZoom <= 1) { Game1.PixelZoom /= 2; } else { Game1.PixelZoom--; } } base.Update(gameTime); }