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); } } } } }
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(); }
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(); }
public static Color GetTemplateColor(this ServerTemplateData Data) { return(Color.FromArgb((int)(255 * Data.templateColorR), (int)(255 * Data.templateColorG), (int)(255 * Data.templateColorB))); }