private void templatesLstBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            e.DrawBackground();
            Graphics g = e.Graphics;

            // draw the background color you want
            // mine is set to olive, change it to whatever you want
            //g.FillRectangle(new SolidBrush(Color.White), e.Bounds);

            // draw the text of the list item, not doing this will only show
            // the background color
            // you will need to get the text of item to display

            if (e.Index != -1)
            {
                ServerTemplateData template = mainForm.currentProject.GetServerTemplateByName(templatesLstBox.Items[e.Index].ToString());
                if (template != null)
                {
                    g.DrawString(templatesLstBox.Items[e.Index].ToString(), e.Font, new SolidBrush(template.GetTemplateColor()),
                                 new PointF(e.Bounds.X, e.Bounds.Y));
                }
                else
                {
                    g.DrawString(templatesLstBox.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), new PointF(e.Bounds.X, e.Bounds.Y));
                }
            }

            e.DrawFocusRectangle();
        }
        private void addBtn_Click(object sender, EventArgs e)
        {
            ServerTemplateData serverTemplate = new ServerTemplateData();

            var editForm = new EditServerTemplate(mainForm, serverTemplate);

            if (editForm.ShowDialog() == DialogResult.OK)
            {
                mainForm.currentProject.serverTemplates.Add(serverTemplate);
                templatesLstBox.Items.Add(serverTemplate.name);
            }
        }
        private void removeBtn_Click(object sender, EventArgs e)
        {
            if (templatesLstBox.SelectedItem != null)
            {
                ServerTemplateData serverTemplate = mainForm.currentProject.GetServerTemplateByName(templatesLstBox.SelectedItem.ToString());
                if (serverTemplate != null)
                {
                    var confirmResult = MessageBox.Show("You are about to delete the selected template\n\nAre you sure?",
                                                        "Warning",
                                                        MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                    if (confirmResult == DialogResult.Yes)
                    {
                        templatesLstBox.Items.Remove(serverTemplate.name);
                        mainForm.currentProject.serverTemplates.Remove(serverTemplate);
                    }
                }
            }
        }
 private void editBtn_Click(object sender, EventArgs e)
 {
     if (templatesLstBox.SelectedItem != null)
     {
         ServerTemplateData serverTemplate = mainForm.currentProject.GetServerTemplateByName(templatesLstBox.SelectedItem.ToString());
         if (serverTemplate != null)
         {
             string originalName = serverTemplate.name;
             var    editForm     = new EditServerTemplate(mainForm, serverTemplate);
             if (editForm.ShowDialog() == DialogResult.OK)
             {
                 if (serverTemplate.name != originalName)
                 {
                     templatesLstBox.Items.Remove(originalName);
                     templatesLstBox.Items.Add(serverTemplate.name);
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
        private void templateComboBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            e.DrawBackground();

            Graphics g = e.Graphics;

            ServerTemplateData template = mainForm.currentProject.GetServerTemplateByName(templateComboBox.Items[e.Index].ToString());

            if (template != null)
            {
                g.DrawString(templateComboBox.Items[e.Index].ToString(), e.Font, new SolidBrush(template.GetTemplateColor()),
                             new PointF(e.Bounds.X, e.Bounds.Y));
            }
            else
            {
                g.DrawString(templateComboBox.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), new PointF(e.Bounds.X, e.Bounds.Y));
            }


            e.DrawFocusRectangle();
        }
Ejemplo n.º 6
0
        public static AtlasGridData SetFromData(this AtlasGridData Data, float gridSize, List <Server> serverList, List <IslandInstanceData> islandInstances, List <DiscoveryZoneData> discoZones, List <SpawnRegionData> spawnRegions,
                                                string WorldAtlasId, string WorldFriendlyName, string MetaWorldURL, float coordsScaling, bool showServerInfo, bool showLines, bool alphaBackground, bool showBackground, string backgroundImgPath,
                                                MainForm mainForm, int idGenerator, int regionsIdGenerator, List <SpawnerInfoData> spawnerOverrideTemplates, bool bUseUTCTime, string Day0, float globalTransitionMinZ, string AdditionalCmdLineParams,
                                                Dictionary <string, string> OverrideShooterGameModeDefaultGameIni, DateTime lastImageOverride, bool showDiscoZoneInfo, string discoZonesImagePath, List <ShipPathData> shipPaths, int shipPathsIdGenerator,
                                                bool showShipPathsInfo, string modIDs, bool showIslandNames, bool showForeground, string foregroundImgPath, string globalGameplaySetup,
                                                List <ServerTemplateData> serverTemplates, bool bIsFinalExport, string MapImageURL, string AuthListURL,
                                                string WorldAtlasPassword, float columnUTCOffset)
        {
            Data.gridSize = gridSize;

            foreach (Server server in serverList)
            {
                List <IslandInstanceData> serverIslands = new List <IslandInstanceData>();

                foreach (IslandInstanceData instance in islandInstances)
                {
                    if (server.IsWorldPointInServer(new System.Drawing.PointF(instance.worldX, instance.worldY), gridSize))
                    {
                        serverIslands.Add(instance);
                    }
                }

                List <DiscoveryZoneData> serverDiscos = new List <DiscoveryZoneData>();
                foreach (DiscoveryZoneData instance in discoZones)
                {
                    if (server.IsWorldPointInServer(new System.Drawing.PointF(instance.worldX, instance.worldY), gridSize))
                    {
                        serverDiscos.Add(instance);
                    }
                }

                List <SpawnRegionData> serverSpawnRegions = new List <SpawnRegionData>();
                foreach (SpawnRegionData region in spawnRegions)
                {
                    if (server.gridX == region.X && server.gridY == region.Y)
                    {
                        serverSpawnRegions.Add(region);
                    }
                }

                if (!bIsFinalExport)
                {
                    Data.servers.Add(new ServerData().SetFrom(server, gridSize, server.gridX, server.gridY, server.MachineIdTag, server.ip, server.port,
                                                              server.gamePort, server.seamlessDataPort, serverIslands, serverDiscos, serverSpawnRegions, mainForm, server.isHomeServer, server.AdditionalCmdLineParams, server.OverrideShooterGameModeDefaultGameIni, server.name, server.floorZDist,
                                                              server.transitionMinZ, server.utcOffset, server.OceanDinoDepthEntriesOverride, server.oceanFloatsamCratesOverride,
                                                              server.treasureMapLootTablesOverride, server.lastModifiedUTC, server.lastImageOverrideUTC, server.GlobalBiomeSeamlessServerGridPreOffsetValues, server.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater,
                                                              server.islandLocked, server.discoLocked, server.pathsLocked, server.extraSublevels, server.oceanEpicSpawnEntriesOverrideTemplateName, server.NPCShipSpawnEntriesOverrideTemplateName, server.regionOverrides,
                                                              server.waterColorR, server.waterColorG, server.waterColorB, server.skyStyleIndex, server.serverIslandPointsMultiplier, server.ServerCustomDatas1, server.ServerCustomDatas2, server.ClientCustomDatas1, server.ClientCustomDatas2, server.serverTemplateName, server.OceanEpicSpawnEntriesOverrideValues));
                }
                else
                {
                    //Sublevels need to be overridden here to be processed in the constructor
                    List <string> overridenExtraSublevels = server.extraSublevels;
                    if (!string.IsNullOrEmpty(server.serverTemplateName))
                    {
                        ServerTemplateData serverTemplate = mainForm.currentProject.GetServerTemplateByName(server.serverTemplateName);
                        if (serverTemplate != null && server.extraSublevels.Count == 0)
                        {
                            overridenExtraSublevels = serverTemplate.extraSublevels;
                        }
                    }

                    //ServerSerializationObject exportServerObj = new ServerSerializationObject(server, gridSize, server.gridX, server.gridY, server.MachineIdTag, server.ip, server.port,
                    ServerData exportServerObj = new ServerData().SetFrom(server, gridSize, server.gridX, server.gridY, server.MachineIdTag, server.ip, server.port,
                                                                          server.gamePort, server.seamlessDataPort, serverIslands, serverDiscos, serverSpawnRegions, mainForm, server.isHomeServer, server.AdditionalCmdLineParams, server.OverrideShooterGameModeDefaultGameIni, server.name, server.floorZDist,
                                                                          server.transitionMinZ, server.utcOffset, server.OceanDinoDepthEntriesOverride, server.oceanFloatsamCratesOverride,
                                                                          server.treasureMapLootTablesOverride, server.lastModifiedUTC, server.lastImageOverrideUTC, server.GlobalBiomeSeamlessServerGridPreOffsetValues, server.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater,
                                                                          server.islandLocked, server.discoLocked, server.pathsLocked, overridenExtraSublevels, server.oceanEpicSpawnEntriesOverrideTemplateName, server.NPCShipSpawnEntriesOverrideTemplateName, server.regionOverrides,
                                                                          server.waterColorR, server.waterColorG, server.waterColorB, server.skyStyleIndex, server.serverIslandPointsMultiplier, server.ServerCustomDatas1, server.ServerCustomDatas2, server.ClientCustomDatas1, server.ClientCustomDatas2, server.serverTemplateName, server.OceanEpicSpawnEntriesOverrideValues);

                    //Apply template
                    if (!string.IsNullOrEmpty(server.serverTemplateName))
                    {
                        ServerTemplateData serverTemplate = mainForm.currentProject.GetServerTemplateByName(server.serverTemplateName);
                        if (serverTemplate != null)
                        {
                            //Overrides
                            exportServerObj.floorZDist     = server.floorZDist != 0 ? server.floorZDist : serverTemplate.floorZDist;
                            exportServerObj.transitionMinZ = server.transitionMinZ != 0 ? server.transitionMinZ : serverTemplate.transitionMinZ;
                            exportServerObj.oceanEpicSpawnEntriesOverrideTemplateName = !string.IsNullOrEmpty(server.oceanEpicSpawnEntriesOverrideTemplateName) ? server.oceanEpicSpawnEntriesOverrideTemplateName : serverTemplate.oceanEpicSpawnEntriesOverrideTemplateName;
                            exportServerObj.NPCShipSpawnEntriesOverrideTemplateName   = !string.IsNullOrEmpty(server.NPCShipSpawnEntriesOverrideTemplateName) ? server.NPCShipSpawnEntriesOverrideTemplateName : serverTemplate.NPCShipSpawnEntriesOverrideTemplateName;
                            exportServerObj.waterColorR   = server.waterColorR != 0 ? server.waterColorR : serverTemplate.waterColorR;
                            exportServerObj.waterColorG   = server.waterColorG != 0 ? server.waterColorG : serverTemplate.waterColorG;
                            exportServerObj.waterColorB   = server.waterColorB != 0 ? server.waterColorB : serverTemplate.waterColorB;
                            exportServerObj.skyStyleIndex = server.skyStyleIndex != 0 ? server.skyStyleIndex : serverTemplate.skyStyleIndex;
                            exportServerObj.serverIslandPointsMultiplier = server.serverIslandPointsMultiplier != 1.0f ? server.serverIslandPointsMultiplier : serverTemplate.serverIslandPointsMultiplier;
                            exportServerObj.GlobalBiomeSeamlessServerGridPreOffsetValues           = !string.IsNullOrEmpty(server.GlobalBiomeSeamlessServerGridPreOffsetValues) ? server.GlobalBiomeSeamlessServerGridPreOffsetValues : serverTemplate.GlobalBiomeSeamlessServerGridPreOffsetValues;
                            exportServerObj.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater = !string.IsNullOrEmpty(server.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater) ? server.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater : serverTemplate.GlobalBiomeSeamlessServerGridPreOffsetValuesOceanWater;
                            exportServerObj.OceanDinoDepthEntriesOverride       = !string.IsNullOrEmpty(server.OceanDinoDepthEntriesOverride) ? server.OceanDinoDepthEntriesOverride : serverTemplate.OceanDinoDepthEntriesOverride;
                            exportServerObj.OceanEpicSpawnEntriesOverrideValues = !string.IsNullOrEmpty(server.OceanEpicSpawnEntriesOverrideValues) ? server.OceanEpicSpawnEntriesOverrideValues : serverTemplate.OceanEpicSpawnEntriesOverrideValues;
                            exportServerObj.oceanFloatsamCratesOverride         = !string.IsNullOrEmpty(server.oceanFloatsamCratesOverride) ? server.oceanFloatsamCratesOverride : serverTemplate.oceanFloatsamCratesOverride;
                            exportServerObj.treasureMapLootTablesOverride       = !string.IsNullOrEmpty(server.treasureMapLootTablesOverride) ? server.treasureMapLootTablesOverride : serverTemplate.treasureMapLootTablesOverride;
                            exportServerObj.regionOverrides = !string.IsNullOrEmpty(server.regionOverrides) ? server.regionOverrides : serverTemplate.regionOverrides;

                            //Appends
                            exportServerObj.AdditionalCmdLineParams = exportServerObj.AdditionalCmdLineParams + serverTemplate.AdditionalCmdLineParams;

                            foreach (KeyValuePair <string, string> kvp in serverTemplate.OverrideShooterGameModeDefaultGameIni)
                            {
                                if (!exportServerObj.OverrideShooterGameModeDefaultGameIni.ContainsKey(kvp.Key))
                                {
                                    exportServerObj.OverrideShooterGameModeDefaultGameIni.Add(kvp.Key, kvp.Value);
                                }
                            }

                            //Splice these together cleanly:
                            if (!string.IsNullOrWhiteSpace(exportServerObj.ServerCustomDatas1))
                            {
                                exportServerObj.ServerCustomDatas1 = exportServerObj.ServerCustomDatas1.TrimEnd(',');
                            }
                            if (!string.IsNullOrWhiteSpace(exportServerObj.ServerCustomDatas2))
                            {
                                exportServerObj.ServerCustomDatas2 = exportServerObj.ServerCustomDatas2.TrimEnd(',');
                            }
                            if (!string.IsNullOrWhiteSpace(exportServerObj.ClientCustomDatas1))
                            {
                                exportServerObj.ClientCustomDatas1 = exportServerObj.ClientCustomDatas1.TrimEnd(',');
                            }
                            if (!string.IsNullOrWhiteSpace(exportServerObj.ClientCustomDatas2))
                            {
                                exportServerObj.ClientCustomDatas2 = exportServerObj.ClientCustomDatas2.TrimEnd(',');
                            }

                            if (!string.IsNullOrWhiteSpace(serverTemplate.ServerCustomDatas1))
                            {
                                exportServerObj.ServerCustomDatas1 = exportServerObj.ServerCustomDatas1 + "," + serverTemplate.ServerCustomDatas1.TrimStart(',');
                            }
                            if (!string.IsNullOrWhiteSpace(serverTemplate.ServerCustomDatas2))
                            {
                                exportServerObj.ServerCustomDatas2 = exportServerObj.ServerCustomDatas2 + "," + serverTemplate.ServerCustomDatas2.TrimStart(',');
                            }
                            if (!string.IsNullOrWhiteSpace(serverTemplate.ClientCustomDatas1))
                            {
                                exportServerObj.ClientCustomDatas1 = exportServerObj.ClientCustomDatas1 + "," + serverTemplate.ClientCustomDatas1.TrimStart(',');
                            }
                            if (!string.IsNullOrWhiteSpace(serverTemplate.ClientCustomDatas2))
                            {
                                exportServerObj.ClientCustomDatas2 = exportServerObj.ClientCustomDatas2 + "," + serverTemplate.ClientCustomDatas2.TrimStart(',');
                            }
                        }
                    }
                    Data.servers.Add(exportServerObj);
                }
            }

            Data.MetaWorldURL             = MetaWorldURL;
            Data.WorldFriendlyName        = WorldFriendlyName;
            Data.WorldAtlasId             = WorldAtlasId;
            Data.coordsScaling            = coordsScaling;
            Data.showServerInfo           = showServerInfo;
            Data.showDiscoZoneInfo        = showDiscoZoneInfo;
            Data.showShipPathsInfo        = showShipPathsInfo;
            Data.showLines                = showLines;
            Data.alphaBackground          = alphaBackground;
            Data.showBackground           = showBackground;
            Data.showForeground           = showForeground;
            Data.backgroundImgPath        = backgroundImgPath;
            Data.foregroundImgPath        = foregroundImgPath;
            Data.idGenerator              = idGenerator;
            Data.regionsIdGenerator       = regionsIdGenerator;
            Data.spawnerOverrideTemplates = spawnerOverrideTemplates;
            Data.bUseUTCTime              = bUseUTCTime;
            Data.columnUTCOffset          = columnUTCOffset;
            Data.globalTransitionMinZ     = globalTransitionMinZ;
            Data.AdditionalCmdLineParams  = AdditionalCmdLineParams;
            Data.OverrideShooterGameModeDefaultGameIni = OverrideShooterGameModeDefaultGameIni;
            Data.Day0 = Day0;
            Data.discoZonesImagePath = discoZonesImagePath;
            Data.lastImageOverride   = lastImageOverride;
            Data.ModIDs      = modIDs;
            Data.MapImageURL = MapImageURL;
            Data.AuthListURL = AuthListURL;
            if (shipPaths != null)
            {
                Data.shipPaths = shipPaths;
            }
            Data.shipPathsIdGenerator = shipPathsIdGenerator;
            Data.showIslandNames      = showIslandNames;
            Data.globalGameplaySetup  = globalGameplaySetup;
            if (serverTemplates == null)
            {
                serverTemplates = new List <ServerTemplateData>();
            }
            Data.serverTemplates    = serverTemplates.ToList();
            Data.WorldAtlasPassword = WorldAtlasPassword;

            return(Data);
        }
 public EditServerTemplate(MainForm mainForm, ServerTemplateData targetServerTemplate)
 {
     this.mainForm             = mainForm;
     this.targetServerTemplate = targetServerTemplate;
     InitializeComponent();
 }
Ejemplo n.º 8
0
 public static Color GetTemplateColor(this ServerTemplateData Data)
 {
     return(Color.FromArgb((int)(255 * Data.templateColorR), (int)(255 * Data.templateColorG), (int)(255 * Data.templateColorB)));
 }