public PandaCraftingJobRotatedSettings(CraftingJobRotatedSettings settings) : base(settings.BlockTypes[0].Name, settings.NPCTypeKey) { BlockTypes = settings.BlockTypes; CraftingCooldown = settings.CraftingCooldown; MaxCraftsPerHaul = settings.MaxCraftsPerHaul; NPCType = settings.NPCType; NPCTypeKey = settings.NPCTypeKey; OnCraftedAudio = settings.OnCraftedAudio; RecruitmentItem = settings.RecruitmentItem; }
public static bool TryGetNPCCraftSettings(this IJob job, out CraftingJobRotatedSettings settings) { if (job != null && job is CraftingJobInstance craftingJob) { settings = craftingJob.Settings as CraftingJobRotatedSettings; if (settings == null) { return(false); } return(true); } settings = null; return(false); }
public static bool TryGetNPCCraftDefaultSettings(this IJob job, out CraftingJobRotatedSettings settings) { if (job != null && job is CraftingJobInstance craftingJob) { settings = craftingJob.Settings as CraftingJobRotatedSettings; if (settings == null) { return(false); } if (ServerManager.BlockEntityCallbacks.TryGetCraftJobSettings(settings.NPCTypeKey, out settings)) { return(true); } } settings = null; return(false); }
public static bool TryGetCraftJobSettings(this BlockEntities.BlockEntityCallbacks callbacks, string name, out CraftingJobRotatedSettings craftingJobSettings) { craftingJobSettings = null; var craftJobInstance = callbacks.AutoLoadedInstances.FirstOrDefault(o => o is BlockJobManager <CraftingJobInstance> manager && manager.Settings is CraftingJobRotatedSettings set && set.NPCTypeKey == name) as BlockJobManager <CraftingJobInstance>; if (craftJobInstance == null) { APILogger.Log(ChatColor.yellow, "Unable to find craft lit job settings for {0}", name); } else { craftingJobSettings = craftJobInstance.Settings as CraftingJobRotatedSettings; } return(craftingJobSettings != null); }