1579 {
1580 string message = "";
1581
1582 array<ActionBase_Basic> interactActions = new array<ActionBase_Basic>();
1584 if (interactActions)
1585 {
1586 message += "\n== Interact (F)\n\n";
1587 foreach (ActionBase_Basic iaction : interactActions)
1588 {
1589 if (iaction.Type() == ActionWorldCraft)
1590 continue;
1591
1592 ActionBase ia = ActionBase.Cast(iaction);
1593 message +=
string.
Format(
"%1 <%2>\n",
Widget.TranslateString(ia.
GetText()), ia.ClassName());
1594 }
1595 }
1596
1597 array<ActionBase_Basic> continuousInteractActions = new array<ActionBase_Basic>();
1598 m_PreviewEntity.GetActions(ContinuousInteractActionInput, continuousInteractActions);
1599 if (continuousInteractActions)
1600 {
1601 message += "\n== Continuous Interact (F hold)\n\n";
1602 foreach (ActionBase_Basic ciaction : continuousInteractActions)
1603 {
1604 if (ciaction.Type() == ActionWorldCraft)
1605 continue;
1606
1607 ActionBase cia = ActionBase.Cast(ciaction);
1608 message +=
string.
Format(
"%1 <%2>\n",
Widget.TranslateString(cia.
GetText()), cia.ClassName());
1609 }
1610 }
1611
1612 array<ActionBase_Basic> singleActions = new array<ActionBase_Basic>();
1614 if (singleActions)
1615 {
1616 message += "\n== Single (LMB)\n\n";
1617 foreach (ActionBase_Basic saction : singleActions)
1618 {
1619 if (saction.Type() == ActionWorldCraft)
1620 continue;
1621
1622 ActionBase sa = ActionBase.Cast(saction);
1623 message +=
string.
Format(
"%1 <%2>\n",
Widget.TranslateString(sa.
GetText()), sa.ClassName());
1624 }
1625 }
1626
1627 array<ActionBase_Basic> continuousActions = new array<ActionBase_Basic>();
1629 if (continuousActions)
1630 {
1631 ActionBase_Basic craftingAction;
1632 message += "\n== Continuous (LMB hold)\n\n";
1633 foreach (ActionBase_Basic caction : continuousActions)
1634 {
1635 if (caction.Type() != ActionWorldCraft)
1636 {
1637 ActionBase ca = ActionBase.Cast(caction);
1638 message +=
string.
Format(
"%1 <%2>\n",
Widget.TranslateString(ca.
GetText()), ca.ClassName());
1639 }
1640 else
1641 {
1642 craftingAction = caction;
1643 }
1644 }
1645 message += "\n== Crafting recipes \n\n";
1646 if (craftingAction)
1647 {
1648 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
1649 array<RecipeBase> recipes = pluginRecipesManager.GetRecipesForItem(
m_PreviewEntity.GetType());
1650 foreach (RecipeBase recipe : recipes)
1651 {
1652 if (recipe.IsItemInRecipe("Inventory_Base"))
1653 continue;
1654
1655 message +=
string.
Format(
"%1 <%2>\n",
Widget.TranslateString(recipe.GetName()), recipe.Type());
1656 }
1657 }
1658 }
1659
1661 infoDialog.SetLabel(
string.Format(
"%1 related actions",
m_PreviewEntity.GetType()));
1662 infoDialog.SetContent(message);
1663
1664 return true;
1665 }
PluginBase GetPlugin(typename plugin_type)
static EntityAI m_PreviewEntity
ScriptConsole m_ScriptConsole
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.