remove duplication in cnc order button wiring
This commit is contained in:
@@ -111,17 +111,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|||||||
|
|
||||||
var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND");
|
var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND");
|
||||||
|
|
||||||
var sellButton = sidebarRoot.GetWidget<ToggleButtonWidget>("SELL_BUTTON");
|
BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell");
|
||||||
sellButton.OnClick = () => world.ToggleInputMode<SellOrderGenerator>();
|
BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair");
|
||||||
sellButton.IsToggled = () => world.OrderGenerator is SellOrderGenerator;
|
|
||||||
var sellIcon = sellButton.GetWidget<ImageWidget>("ICON");
|
|
||||||
sellIcon.GetImageName = () => world.OrderGenerator is SellOrderGenerator ? "sell-active" : "sell";
|
|
||||||
|
|
||||||
var repairButton = sidebarRoot.GetWidget<ToggleButtonWidget>("REPAIR_BUTTON");
|
|
||||||
repairButton.OnClick = () => world.ToggleInputMode<RepairOrderGenerator>();
|
|
||||||
repairButton.IsToggled = () => world.OrderGenerator is RepairOrderGenerator;
|
|
||||||
var repairIcon = repairButton.GetWidget<ImageWidget>("ICON");
|
|
||||||
repairIcon.GetImageName = () => world.OrderGenerator is RepairOrderGenerator ? "repair-active" : "repair";
|
|
||||||
|
|
||||||
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
|
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
|
||||||
sidebarRoot.GetWidget<LabelWidget>("CASH_DISPLAY").GetText = () =>
|
sidebarRoot.GetWidget<LabelWidget>("CASH_DISPLAY").GetText = () =>
|
||||||
@@ -162,5 +153,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void BindOrderButton<T>(World world, Widget parent, string button, string icon)
|
||||||
|
where T : IOrderGenerator, new()
|
||||||
|
{
|
||||||
|
var w = parent.GetWidget<ToggleButtonWidget>(button);
|
||||||
|
w.OnClick = () => world.ToggleInputMode<T>();
|
||||||
|
w.IsToggled = () => world.OrderGenerator is T;
|
||||||
|
|
||||||
|
w.GetWidget<ImageWidget>("ICON").GetImageName =
|
||||||
|
() => world.OrderGenerator is T ? icon+"-active" : icon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user