Exemplo n.º 1
0
        public ForagingJobSettings(string blockType, string npcTypeKey, ILootTable lootTable, int foragingTimeMinSec, int foragingTimeMaxSec, float lootLuckModifier = 0f)
        {
            ItemTypes.ItemType type = ItemTypes.GetType(blockType);
            if (type.RotatedXMinus != null)
            {
                BlockTypes = new ItemTypes.ItemType[5]
                {
                    type,
                    ItemTypes.GetType(type.RotatedXPlus),
                    ItemTypes.GetType(type.RotatedXMinus),
                    ItemTypes.GetType(type.RotatedZPlus),
                    ItemTypes.GetType(type.RotatedZMinus)
                };
            }
            else
            {
                BlockTypes = new ItemTypes.ItemType[5]
                {
                    type,
                    ItemTypes.GetType(blockType + "x+"),
                    ItemTypes.GetType(blockType + "x-"),
                    ItemTypes.GetType(blockType + "z+"),
                    ItemTypes.GetType(blockType + "z-")
                };
            }

            NPCType            = NPCType.GetByKeyNameOrDefault(npcTypeKey);
            RecruitmentItem    = new InventoryItem(LeafSash.NAME);
            LootTable          = lootTable;
            ForagingTimeMaxSec = foragingTimeMaxSec;
            ForagingTimeMinSec = foragingTimeMinSec;
            LuckMod            = lootLuckModifier;
        }
Exemplo n.º 2
0
        // Constructor
        public TrackedItem(ItemTypes.ItemType item, ushort interval, int amount = 0)
        {
            this.item     = item;
            this.interval = interval;

            for (int i = 0; i < itemAmount.Length; ++i)
            {
                this.itemAmount[i] = amount;
            }
        }
        public MinerJobInstance(IBlockJobSettings settings, Vector3Int position, ItemTypes.ItemType type, ByteReader reader) : base(settings, position, type, reader)
        {
            ushort belowType = reader.ReadVariableUShort();

            MiningCooldown = -1f;
            if (ItemTypes.TryGetType(belowType, out ItemTypes.ItemType foundtype))
            {
                BlockTypeBelow = foundtype;
            }
        }
Exemplo n.º 4
0
 public MinerJobSettings()
 {
     BlockTypes = new ItemTypes.ItemType[] {
         BuiltinBlocks.Types.minerjob,
         BuiltinBlocks.Types.minerjobxp,
         BuiltinBlocks.Types.minerjobxn,
         BuiltinBlocks.Types.minerjobzp,
         BuiltinBlocks.Types.minerjobzn
     };
     NPCTypeKey      = "pipliz.minerjob";
     NPCType         = NPCType.GetByKeyNameOrDefault(NPCTypeKey);
     OnCraftedAudio  = "stoneDelete";
     MaxCraftsPerRun = 5;
 }
        public void ApplyTypes(ConstructionArea area, JSONNode node)
        {
            JSONNode arr;

            if (node != null && node.TryGetChild("selectedTypes", out arr) && arr.NodeType == NodeType.Array && arr.ChildCount > 0)
            {
                ItemTypes.ItemType digTpe = ItemTypes.GetType(ItemTypes.IndexLookup.GetIndex(arr[0].GetAs <string>()));
                if (digTpe != null && digTpe.ItemIndex != 0)
                {
                    area.ConstructionType = new Types.DiggerSpecial(digTpe);
                    area.IterationType    = new Iterators.TopToBottom(area);
                }
            }
        }
Exemplo n.º 6
0
 public GeneratorJobSettings(string blockType, string npcTypeKey, InventoryItem energyItem, float craftingCooldown = 5f, int maxCraftsPerHaul = 5, string onCraftedAudio = null)
 {
     if (blockType != null)
     {
         ItemTypes.ItemType baseType = ItemTypes.GetType(blockType);
         bool baseHasRotated         = baseType.RotatedXPlus != null;
         BlockTypes = new ItemTypes.ItemType[5]
         {
             baseType,
             baseHasRotated ? ItemTypes.GetType(baseType.RotatedXPlus) : ItemTypes.GetType(blockType + "x+"),
             baseHasRotated ? ItemTypes.GetType(baseType.RotatedXMinus) : ItemTypes.GetType(blockType + "x-"),
             baseHasRotated ? ItemTypes.GetType(baseType.RotatedZPlus) : ItemTypes.GetType(blockType + "z+"),
             baseHasRotated ? ItemTypes.GetType(baseType.RotatedZMinus) : ItemTypes.GetType(blockType + "z-")
         };
     }
     NPCTypeKey       = npcTypeKey;
     NPCType          = NPCType.GetByKeyNameOrDefault(npcTypeKey);
     CraftingCooldown = craftingCooldown;
     MaxCraftsPerHaul = maxCraftsPerHaul;
     OnCraftedAudio   = onCraftedAudio;
     EnergyItem       = energyItem;
 }
Exemplo n.º 7
0
        public override void OnStopCrafting()
        {
            int index;

            if (!CraftingJobSettings.BlockTypes.ContainsByReference <ItemTypes.ItemType>(CraftingJobInstance.BlockType, out index))
            {
                return;
            }
            switch (index)
            {
            case 6:
            case 7:
            case 8:
            case 9:
                ItemTypes.ItemType blockType = CraftingJobSettings.BlockTypes[index - 5];
                ESetBlockFlags     flags     = ESetBlockFlags.None;
                if (ServerManager.TryChangeBlock(CraftingJobInstance.Position, CraftingJobInstance.BlockType, blockType, (BlockChangeRequestOrigin)CraftingJobInstance.Owner, flags) == EServerChangeBlockResult.Success)
                {
                    CraftingJobInstance.BlockType = blockType;
                    break;
                }
                break;
            }
        }