Ejemplo n.º 1
0
 public override void InitNew()
 {
     base.InitNew();
     Name  = "NPC-Farmer";
     Build = true;
     KingdomsTracker.SendKingdomNotification($"Placed a {KingdomType} of size {Size} at {Origin}");
 }
 public bool TryDoCommand(Players.Player causedBy, string chattext)
 {
     try {
         if (PermissionsManager.CheckAndWarnPermission(causedBy, KingdomsModEntries.MOD_PREFIX + $"kill{KingdomType}"))
         {
             NpcKingdom closestFarm;
             if (chattext.Equals($"/kill{KingdomType} all"))
             {
                 KingdomsTracker.GetAllByType(KingdomType).ForEach(kingdom => kingdom.Kill());
                 KingdomsTracker.SendKingdomNotification($"killed all {KingdomType}");
             }
             else if (KingdomsTracker.TryGetClosest(KingdomType, causedBy.VoxelPosition, out closestFarm))
             {
                 closestFarm.Kill();
                 KingdomsTracker.SendKingdomNotification($"Killed {KingdomType} at {closestFarm.Origin}");
             }
         }
     } catch (Exception exception) {
         Log.WriteError($"Exception while parsing command; {exception.Message} - {exception.StackTrace}");
     }
     return(true);
 }
Ejemplo n.º 3
0
 protected override void Update(Players.Player player)
 {
     if (Build)
     {
         Build = false;
         var builder = new NpcFarmBuilder(player, Origin, Size);
         builder.Build();
         LootSpawner.SetPossibleLootSpots(builder.LootSpots);
     }
     else if (BedBlockTracker.GetCount(player) < 1)
     {
         KingdomsTracker.SendKingdomNotification($"Farm at {Origin} is dead! Lost all beds");
         Kill();
     }
     else
     {
         var stockpile = Stockpile.GetStockPile(player);
         var colony    = Colony.Get(player);
         CheckItemAmount(stockpile, BuiltinBlocks.Bread, 5000);
         CheckFollower(player, colony);
         CheckItemAmount(stockpile, BuiltinBlocks.WheatStage1, 100);
     }
 }