| if not config.EditableBiomeGrid then return end | |
| function OnMsg.PresetSave(class) | |
| local brush = XEditorGetCurrentTool() | |
| local classdef = g_Classes[class] | |
| if IsKindOf(classdef, "Biome") and IsKindOf(brush, "XBiomeBrush") then | |
| brush:UpdateItems() | |
| end | |
| end | |
| DefineClass.XBiomeBrush = { | |
| __parents = { "XMapGridAreaBrush" }, | |
| properties = { | |
| { id = "edit_button", editor = "buttons", default = false, | |
| buttons = { { name = "Edit biome presets", func = function() OpenPresetEditor("Biome") end } }, | |
| no_edit = function(self) return self.selection_available end, | |
| }, | |
| }, | |
| GridName = "BiomeGrid", | |
| ToolSection = "Terrain", | |
| ToolTitle = "Biome", | |
| Description = { | |
| "Defines the biome areas on the map.", | |
| "(<style GedHighlight>Ctrl-click</style> to select & lock areas)\n" .. | |
| "(<style GedHighlight>Shift-click</style> to select entire biomes)\n" .. | |
| "(<style GedHighlight>Alt-click</style> to get the biome at the cursor)" | |
| }, | |
| ActionSortKey = "22", | |
| ActionIcon = "CommonAssets/UI/Editor/Tools/TerrainBiome.tga", | |
| ActionShortcut = "B", | |
| } | |
| function XBiomeBrush:GetGridPaletteItems() | |
| local white = "CommonAssets/System/white.dds" | |
| local items = {{text = "Blank", value = 0, image = white, color = RGB(0, 0, 0)}} | |
| local only_id = #(Presets.Biome or "") < 2 | |
| ForEachPreset("Biome", function(preset) | |
| table.insert(items, { | |
| text = only_id and preset.id or (preset.id .. "\n" .. preset.group), | |
| value = preset.grid_value, | |
| image = white, | |
| color = preset.palette_color}) | |
| end) | |
| return items | |
| end | |
| function XBiomeBrush:GetPalette() | |
| return DbgGetBiomePalette() | |
| end | |