mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
Merge remote-tracking branch 'haganbmj/master' into clear-console
This commit is contained in:
@@ -10,6 +10,7 @@ Features:
|
|||||||
* Add Button to Center the loaded image in the Image Slice Window.
|
* Add Button to Center the loaded image in the Image Slice Window.
|
||||||
* Add "Created At", "Last Modified At" columns to card list.
|
* Add "Created At", "Last Modified At" columns to card list.
|
||||||
* Add filter box to Game and Stylesheet selection.
|
* Add filter box to Game and Stylesheet selection.
|
||||||
|
* Add extra_card("field name") script function for accessing Extra Card Fields.
|
||||||
* Add Clear button to console panel.
|
* Add Clear button to console panel.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
Function: extra_data
|
||||||
|
|
||||||
|
DOC_MSE_VERSION: since 2.2.0
|
||||||
|
|
||||||
|
--Usage--
|
||||||
|
> extra_data("field_name")
|
||||||
|
|
||||||
|
Access the value of extra card fields.
|
||||||
|
|
||||||
|
Due to lazy initialization of stylesheet specific Extra Card Fields they are not exposed directly from the card using `card.field_name` syntax.
|
||||||
|
As a workaround this function returns the Value of the specified field name for the active card using an access pattern that supports late resolution of the value for the active stylesheet.
|
||||||
|
|
||||||
|
--Parameters--
|
||||||
|
! Parameter Type Description
|
||||||
|
| @input@ [[type:string]] Field name, with or without underscores.
|
||||||
|
|
||||||
|
--Examples--
|
||||||
|
|
||||||
|
>extra card field:
|
||||||
|
> ...
|
||||||
|
> name: my first extra field
|
||||||
|
>
|
||||||
|
>extra card field:
|
||||||
|
> ...
|
||||||
|
> name: my second extra field
|
||||||
|
> script:
|
||||||
|
>> space_to_comma(extra_data("my first extra field")) + "!"
|
||||||
@@ -65,7 +65,8 @@ These functions are built into the program, other [[type:function]]s can be defi
|
|||||||
| [[fun:english_plural|english_singular]] Find the singular of a word, @"cards" -> "card"@.
|
| [[fun:english_plural|english_singular]] Find the singular of a word, @"cards" -> "card"@.
|
||||||
| [[fun:process_english_hints]] Process the hints left by english_ functions in a keyword's reminder text.
|
| [[fun:process_english_hints]] Process the hints left by english_ functions in a keyword's reminder text.
|
||||||
|
|
||||||
! Fields and values <<<
|
! Fields and values <<<
|
||||||
|
| [[fun:extra_data]] Access the value of extra card fields.
|
||||||
| [[fun:combined_editor|forward_editor]] Use one field to edit another.
|
| [[fun:combined_editor|forward_editor]] Use one field to edit another.
|
||||||
| [[fun:combined_editor]] Use one field to edit multiple others.
|
| [[fun:combined_editor]] Use one field to edit multiple others.
|
||||||
| [[fun:primary_choice]] Return the top level choice chosen from a choice field.
|
| [[fun:primary_choice]] Return the top level choice chosen from a choice field.
|
||||||
|
|||||||
@@ -382,6 +382,26 @@ SCRIPT_FUNCTION(count_chosen) {
|
|||||||
SCRIPT_RETURN(count);
|
SCRIPT_RETURN(count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------- : Extra Card Fields
|
||||||
|
|
||||||
|
SCRIPT_FUNCTION(extra_data) {
|
||||||
|
SCRIPT_PARAM_C(String, input);
|
||||||
|
SCRIPT_PARAM_C(CardP, card);
|
||||||
|
SCRIPT_PARAM_C(StyleSheetP, stylesheet);
|
||||||
|
|
||||||
|
// Transform input to standard field name syntax.
|
||||||
|
// Other functions are doing lookups for ValuePs, which I assume is doing some of this automatically.
|
||||||
|
String canonical_field_name = canonical_name_form(input);
|
||||||
|
|
||||||
|
FOR_EACH(valueP, card->extraDataFor(*stylesheet)) {
|
||||||
|
if (valueP->fieldP->name == canonical_field_name) {
|
||||||
|
SCRIPT_RETURN(valueP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return delay_error(ScriptErrorNoMember("extra_data()", input));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------- : Init
|
// ----------------------------------------------------------------------------- : Init
|
||||||
@@ -395,5 +415,6 @@ void init_script_editor_functions(Context& ctx) {
|
|||||||
ctx.setVariable(_("require_choice"), script_require_choice);
|
ctx.setVariable(_("require_choice"), script_require_choice);
|
||||||
ctx.setVariable(_("exclusive_choice"), script_exclusive_choice);
|
ctx.setVariable(_("exclusive_choice"), script_exclusive_choice);
|
||||||
ctx.setVariable(_("require_exclusive_choice"), script_require_exclusive_choice);
|
ctx.setVariable(_("require_exclusive_choice"), script_require_exclusive_choice);
|
||||||
ctx.setVariable(_("remove_choice"), script_remove_choice);
|
ctx.setVariable(_("remove_choice"), script_remove_choice);
|
||||||
|
ctx.setVariable(_("extra_data"), script_extra_data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user