Make brush rendering self-contained

This commit is contained in:
Gustas
2024-08-16 17:53:49 +03:00
committed by Paul Chote
parent b073155018
commit 87850378c7
19 changed files with 259 additions and 314 deletions

View File

@@ -19,7 +19,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
readonly EditorViewportControllerWidget editor;
readonly WorldRenderer worldRenderer;
readonly EditorCursorLayer editorCursor;
readonly ScrollPanelWidget layerTemplateList;
readonly ScrollItemWidget layerPreviewTemplate;
@@ -29,8 +28,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
this.worldRenderer = worldRenderer;
editor = widget.Parent.Parent.Get<EditorViewportControllerWidget>("MAP_EDITOR");
editorCursor = worldRenderer.World.WorldActor.Trait<EditorCursorLayer>();
layerTemplateList = widget.Get<ScrollPanelWidget>("LAYERTEMPLATE_LIST");
layerTemplateList.Layout = new GridLayout(layerTemplateList);
layerPreviewTemplate = layerTemplateList.Get<ScrollItemWidget>("LAYERPREVIEW_TEMPLATE");
@@ -46,7 +43,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
foreach (var resourceType in resourceRenderer.ResourceTypes)
{
var newResourcePreviewTemplate = ScrollItemWidget.Setup(layerPreviewTemplate,
() => editorCursor.Type == EditorCursorType.Resource && editorCursor.ResourceType == resourceType,
() => editor.CurrentBrush is EditorResourceBrush brush && brush.ResourceType == resourceType,
() => editor.SetBrush(new EditorResourceBrush(editor, resourceType, worldRenderer)));
newResourcePreviewTemplate.Bounds.X = 0;