예제 #1
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="hut">The underlying Junimo hut.</param>
 /// <param name="location">The location which contains the machine.</param>
 /// <param name="ignoreSeedOutput">Whether seeds should be ignored when selecting output.</param>
 /// <param name="ignoreFertilizerOutput">Whether fertilizer should be ignored when selecting output.</param>
 /// <param name="pullGemstonesFromJunimoHuts">Whether to pull gemstones out of Junimo huts.</param>
 public JunimoHutMachine(JunimoHut hut, GameLocation location, bool ignoreSeedOutput, bool ignoreFertilizerOutput, bool pullGemstonesFromJunimoHuts)
     : base(hut, location, BaseMachine.GetTileAreaFor(hut))
 {
     this.IgnoreSeedOutput            = ignoreSeedOutput;
     this.IgnoreFertilizerOutput      = ignoreFertilizerOutput;
     this.PullGemstonesFromJunimoHuts = pullGemstonesFromJunimoHuts;
 }
예제 #2
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="mill">The underlying mill.</param>
 /// <param name="location">The location which contains the machine.</param>
 public MillMachine(Mill mill, GameLocation location)
     : base(mill, location, BaseMachine.GetTileAreaFor(mill))
 {
     this.MaxInputStackSize = new Dictionary <int, int>
     {
         [284] = new SObject(284, 1).maximumStackSize() / 3 // beet => 3 sugar (reduce stack to avoid overfilling output)
     };
 }
예제 #3
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="tree">The underlying tree.</param>
 /// <param name="location">The machine's in-game location.</param>
 /// <param name="tile">The tree's tile position.</param>
 public TreeMachine(Tree tree, GameLocation location, Vector2 tile)
     : base(tree, location, BaseMachine.GetTileAreaFor(tile))
 {
     this.ItemDrops = new Cached <Stack <int> >(
         getCacheKey: () => $"{Game1.currentSeason},{Game1.dayOfMonth},{tree.hasSeed.Value}",
         fetchNew: () => new Stack <int>()
         );
 }
예제 #4
0
        public BarnMachine(Barn barn, GameLocation location) : base(barn, location, BaseMachine.GetTileAreaFor(barn))
        {
            if (barn.indoors.Value is AnimalHouse)
            {
                this.AnimalHouse = (AnimalHouse)barn.indoors.Value;
            }

            this.UnprocessedAnimals = new List <FarmAnimal>();
            this.FindUnprocessedAnimals();
        }
예제 #5
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="town">The town to search.</param>
 /// <param name="tile">The machine's position in its location.</param>
 /// <param name="trashCanIndex">The trash can index.</param>
 /// <param name="reflection">Simplifies access to private game code.</param>
 public TrashCanMachine(Town town, Vector2 tile, int trashCanIndex, IReflectionHelper reflection)
     : base(town, BaseMachine.GetTileAreaFor(tile))
 {
     this.Tile             = tile;
     this.TrashCansChecked = reflection.GetField <IList <bool> >(town, "garbageChecked").GetValue();
     if (trashCanIndex >= 0 && trashCanIndex < this.TrashCansChecked.Count)
     {
         this.TrashCanIndex = trashCanIndex;
     }
 }
예제 #6
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="tree">The underlying fruit tree.</param>
 /// <param name="location">The machine's in-game location.</param>
 /// <param name="tile">The tree's tile position.</param>
 public FruitTreeMachine(FruitTree tree, GameLocation location, Vector2 tile)
     : base(tree, location, BaseMachine.GetTileAreaFor(tile))
 {
 }
예제 #7
0
 /// <summary>Construct an instance.</summary>
 /// <param name="silo">The silo to automate.</param>
 /// <param name="location">The location containing the machine.</param>
 public FeedHopperMachine(Building silo, GameLocation location)
     : base(location, BaseMachine.GetTileAreaFor(silo))
 {
 }
예제 #8
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="location">The location containing the machine.</param>
 /// <param name="tile">The tile covered by the machine.</param>
 public FeedHopperMachine(GameLocation location, Vector2 tile)
     : base(location, BaseMachine.GetTileAreaFor(tile))
 {
 }
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="miniBin">The mini-shipping bin.</param>
 /// <param name="location">The location which contains the machine.</param>
 public MiniShippingBinMachine(Chest miniBin, GameLocation location)
     : base(location, BaseMachine.GetTileAreaFor(miniBin.TileLocation))
 {
     this.MiniBin = new ChestContainer(miniBin, location, miniBin.TileLocation, migrateLegacyOptions: false);
 }
 /// <summary>Construct an instance.</summary>
 /// <param name="bin">The constructed shipping bin.</param>
 /// <param name="location">The location which contains the machine.</param>
 public ShippingBinMachine(ShippingBin bin, GameLocation location)
     : base(location, BaseMachine.GetTileAreaFor(bin), ShippingBinMachine.ShippingBinId)
 {
     this.Bin = bin;
 }
 /// <summary>Construct an instance.</summary>
 /// <param name="bin">The constructed shipping bin.</param>
 /// <param name="location">The location which contains the machine.</param>
 /// <param name="farm">The farm which has the shipping bin data.</param>
 public ShippingBinMachine(ShippingBin bin, GameLocation location, Farm farm)
     : base(location, BaseMachine.GetTileAreaFor(bin))
 {
     this.Farm = farm;
 }
예제 #12
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="pond">The underlying fish pond.</param>
 /// <param name="location">The location which contains the machine.</param>
 public FishPondMachine(FishPond pond, GameLocation location)
     : base(pond, location, BaseMachine.GetTileAreaFor(pond))
 {
 }
예제 #13
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="hut">The underlying Junimo hut.</param>
 /// <param name="location">The location which contains the machine.</param>
 public JunimoHutMachine(JunimoHut hut, GameLocation location)
     : base(hut, location, BaseMachine.GetTileAreaFor(hut))
 {
 }
예제 #14
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="hut">The underlying Junimo hut.</param>
 /// <param name="location">The location which contains the machine.</param>
 /// <param name="ignoreSeedOutput">Whether seeds should be ignored when selecting output.</param>
 /// <param name="ignoreFertilizerOutput">Whether fertilizer should be ignored when selecting output.</param>
 public JunimoHutMachine(JunimoHut hut, GameLocation location, bool ignoreSeedOutput, bool ignoreFertilizerOutput)
     : base(hut, location, BaseMachine.GetTileAreaFor(hut))
 {
     this.IgnoreSeedOutput       = ignoreSeedOutput;
     this.IgnoreFertilizerOutput = ignoreFertilizerOutput;
 }
예제 #15
0
 public CoopMachine(Coop coop, GameLocation location)
     : base(coop, location, BaseMachine.GetTileAreaFor(coop))
 {
 }