public override bool CanInteract(GameObject with) { if (owner.ContainsFeed) { return(false); } FarmPlayer player = with as FarmPlayer; if (player == null) { return(false); } if (player.Inventory.HasItemInHands) { AnimalFeedItem feedItem = player.Inventory.ItemInHands as AnimalFeedItem; if (feedItem != null) { if (feedItem.FeedType == owner.FeedType) { return(true); } } else { return(false); } } return(false); }
private void CheckFoodAmount() { // Haetaan lato bg mapeista koska se ei ole aktiivisena. TileMap barn = (game.GameStateManager.Current as GameplayScreen) .World.MapManager.MapsInBackground().First(c => c.Name == mapContainedIn); int traysWithFood = 0; int consumers = 0; foreach (GameObjectManager gameObjectManager in barn.ObjectManagers.AllManagers()) { // Lasketaan jokaisesta managerista ruokinta astioiden määrä jotka sisältävät ruokaa. traysWithFood += gameObjectManager.GameObjectsOfType <FeedingTray>( f => f.ContainsFeed).Count(); // Lasketaan ladossa olevien eläinten määrä jotka voivat syödä tämän astian sisältämää ruokaa. consumers += gameObjectManager.GameObjectsOfType <Animal>( a => a.Dataset.FeedTable.Contains(FeedType)).Count(); } // Jos ruokaa on enemmän kuin syöjiä, disposataan ruoka. if (traysWithFood > consumers) { feed = null; } }
public AnimalFeedItem GetFeed() { AnimalFeedItem feedItem = feed; feed = null; return(feedItem); }
public AnimalFeedItem GetFeed() { AnimalFeedItem feed = null; if (FeedContained > 0) { feed = new AnimalFeedItem(game, feedDataset); FeedContained--; } return(feed); }
public override void Update(GameTime gameTime) { base.Update(gameTime); Collider.Update(gameTime); if (fader != null) { fader.Update(gameTime); if (!fader.IsFading) { feed = null; fader = null; } } if (feed != null) { Vector2 feedPosition = new Vector2(this.position.X + feed.Size.Width / 2, this.position.Y); feed.Position = feedPosition; } }
public void InsertFeed(AnimalFeedItem feedItem) { feed = feedItem; feedItem.Size = new Size(feedItem.Size.Width, feedItem.Size.Height / 2); }