Example #1
0
        public ResponseData.Campaign GenerateCampaign(string cPath, CampaignLayoutData cData)
        {
            string cName = cData.m_Title;

            if (cData.m_ItemIds.Count == 0)
            {
                uConsole.Log(cName + " doesn't have any levels!");
                return(null);
            }

            List <LevelData> levelDatas = new List <LevelData>();

            foreach (string id in cData.m_ItemIds)
            {
                if (!File.Exists(cPath + "/" + id.Replace("CampaignMod", "") + ".level"))
                {
                    uConsole.Log(cName + " tried to load " + id.Replace("CampaignMod", "") + " but it doesn't exist!");
                    return(null);
                }
                byte[] bytes  = File.ReadAllBytes(cPath + "/" + id.Replace("CampaignMod", "") + ".level");
                int    offset = 0;
                levelDatas.Add(LevelData.Deserialize(bytes, ref offset));
            }

            List <ResponseData.Item> items = new List <ResponseData.Item>();

            foreach (LevelData levelData in levelDatas)
            {
                ResponseData.Item item = levelData.GenerateItem();
                PersistentWorkshopItems.Create(item, levelData.PreviewData, Utils.ZipPayload(levelData.LayoutBytes));

                items.Add(item);
            }

            ResponseData.Campaign campaign = new ResponseData.Campaign();

            campaign.ownedBy = items[0].ownedBy;
            campaign.items   = items.ToArray();

            campaign.id          = cName + "CampaignMod";
            campaign.title       = cName;
            campaign.description = cData.m_Description;
            campaign.winMessage  = cData.m_WinMessage;

            PersistentWorkshopCampaigns.Delete(campaign.id);
            PersistentWorkshopCampaigns.Create(campaign);
            return(campaign);
        }
Example #2
0
            private static void Postfix()
            {
                uConsole.RegisterCommand("load_campaign", "loads a campaign", new uConsole.DebugCommand(instance.LoadCampaignCommand));
                uConsole.RegisterCommand("load_all_campaigns", "loads all the campaigns", new uConsole.DebugCommand(instance.LoadAllCampaignsCommand));
                uConsole.RegisterCommand("create_campaign", "creates an empty campaign", new uConsole.DebugCommand(instance.CreateCampaignCommand));
                uConsole.RegisterCommand("remove_campaign", "remove a campaign", new uConsole.DebugCommand(instance.RemoveCampaignCommand));
                uConsole.RegisterCommand("campaign_info", "shows some info of a campaign or a list of all campaigns", new uConsole.DebugCommand(instance.CampaignInfoCommand));
                uConsole.RegisterCommand("edit_campaign_info", "edit campaign info", new uConsole.DebugCommand(instance.EditCampaignInfoCommand));
                uConsole.RegisterCommand("remove_level", "removes a level from a campaign", new uConsole.DebugCommand(instance.RemoveLevelCommand));
                uConsole.RegisterCommand("add_this_level", "adds current sandbox level to a campaign", new uConsole.DebugCommand(instance.AddThisLevelCommand));
                uConsole.RegisterCommand("unload_campaign", "unloads a campaign", new uConsole.DebugCommand(instance.UnloadCampaignCommand));
                uConsole.RegisterCommand("export_campaign", "exports a campaign to a .campaign file", new uConsole.DebugCommand(instance.ExportCampaignCommand));
                uConsole.RegisterCommand("import_campaign", "imports a campaign from a .campaign file", new uConsole.DebugCommand(instance.ImportCampaignCommand));

                ResponseData.Campaign lol = new ResponseData.Campaign();
            }
Example #3
0
        public void LoadCampaign(string cPath, string Name)
        {
            if (!Directory.Exists(cPath))
            {
                uConsole.Log(Name + " does not exist!");
                return;
            }
            else if (!File.Exists(cPath + "/CampaignData.json"))
            {
                uConsole.Log(Name + " is missing CampaignData.json!");
                return;
            }

            CampaignLayoutData cData = JsonUtility.FromJson <CampaignLayoutData>(File.ReadAllText(cPath + "/CampaignData.json"));

            ResponseData.Campaign campaign = GenerateCampaign(cPath, cData);
            if (campaign == null)
            {
                return;
            }
            Keys.Add(campaign.id);

            uConsole.Log(Name + " loaded!");
        }