mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
Implement unique IDs and card linking
This commit is contained in:
@@ -15,11 +15,11 @@
|
||||
#include <data/card.hpp>
|
||||
#include <data/stylesheet.hpp>
|
||||
#include <data/symbol.hpp>
|
||||
#include <data/field/symbol.hpp>
|
||||
#include <data/field/symbol.hpp>
|
||||
#include <data/format/formats.hpp>
|
||||
#include <gfx/generated_image.hpp>
|
||||
#include <render/symbol/filter.hpp>
|
||||
#include <cli/text_io_handler.hpp> // for MSE_CLI
|
||||
#include <cli/text_io_handler.hpp> // for MSE_CLI
|
||||
|
||||
void parse_enum(const String&, ImageCombine& out);
|
||||
|
||||
@@ -29,45 +29,55 @@ SCRIPT_FUNCTION(to_image) {
|
||||
SCRIPT_PARAM_C(GeneratedImageP, input);
|
||||
return input;
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(to_card_image) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(CardP, input);
|
||||
SCRIPT_PARAM_DEFAULT(double, zoom, 100);
|
||||
SCRIPT_PARAM_DEFAULT(Degrees, angle, 0);
|
||||
SCRIPT_PARAM_DEFAULT(bool, use_user_settings, false);
|
||||
if (use_user_settings) {
|
||||
// Use the User's Preferences for Export Zoom and Angle settings.
|
||||
return make_intrusive<ArbitraryImage>(export_bitmap(set, input).ConvertToImage());
|
||||
} else {
|
||||
// Use the provided (or defaulted) Zoom and Angle.
|
||||
return make_intrusive<ArbitraryImage>(export_bitmap(set, input, (zoom / 100), deg_to_rad(angle)).ConvertToImage());
|
||||
}
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(import_image) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(String, input);
|
||||
auto extImg = make_intrusive<ExternalImage>(input);
|
||||
if (cli.haveConsole()) // makes sure generate() is called, but only once, when using the CLI
|
||||
extImg->generate(GeneratedImage::Options(0, 0, set->stylesheet.get(), set));
|
||||
return extImg;
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(to_card_image) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(CardP, input);
|
||||
SCRIPT_PARAM_DEFAULT(double, zoom, 100);
|
||||
SCRIPT_PARAM_DEFAULT(Degrees, angle, 0);
|
||||
SCRIPT_PARAM_DEFAULT(bool, use_user_settings, false);
|
||||
if (use_user_settings) {
|
||||
// Use the User's Preferences for Export Zoom and Angle settings.
|
||||
return make_intrusive<ArbitraryImage>(export_bitmap(set, input).ConvertToImage());
|
||||
} else {
|
||||
// Use the provided (or defaulted) Zoom and Angle.
|
||||
return make_intrusive<ArbitraryImage>(export_bitmap(set, input, (zoom / 100), deg_to_rad(angle)).ConvertToImage());
|
||||
}
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(import_image) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(String, input);
|
||||
auto extImg = make_intrusive<ExternalImage>(input);
|
||||
if (cli.haveConsole()) // makes sure generate() is called, but only once, when using the CLI
|
||||
extImg->generate(GeneratedImage::Options(0, 0, set->stylesheet.get(), set));
|
||||
return extImg;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Image functions
|
||||
|
||||
SCRIPT_FUNCTION(width_of) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(GeneratedImageP, input);
|
||||
Image image = input->generate(GeneratedImage::Options(0, 0, set->stylesheet.get()));
|
||||
SCRIPT_RETURN(image.GetWidth());
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(height_of) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(GeneratedImageP, input);
|
||||
Image image = input->generate(GeneratedImage::Options(0, 0, set->stylesheet.get()));
|
||||
SCRIPT_RETURN(image.GetHeight());
|
||||
|
||||
SCRIPT_FUNCTION(width_of) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(GeneratedImageP, input);
|
||||
Image image = input->generate(GeneratedImage::Options(0, 0, set->stylesheet.get()));
|
||||
SCRIPT_RETURN(image.GetWidth());
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(height_of) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(GeneratedImageP, input);
|
||||
Image image = input->generate(GeneratedImage::Options(0, 0, set->stylesheet.get()));
|
||||
SCRIPT_RETURN(image.GetHeight());
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(dimensions_of) {
|
||||
SCRIPT_PARAM(Set*, set);
|
||||
SCRIPT_PARAM(GeneratedImageP, input);
|
||||
Image image = input->generate(GeneratedImage::Options(0, 0, set->stylesheet.get()));
|
||||
ScriptCustomCollectionP ret(new ScriptCustomCollection());
|
||||
ret->value.push_back(to_script(image.GetWidth()));
|
||||
ret->value.push_back(to_script(image.GetHeight()));
|
||||
return ret;
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(insert_image) {
|
||||
@@ -77,7 +87,7 @@ SCRIPT_FUNCTION(insert_image) {
|
||||
SCRIPT_PARAM(int, offset_y);
|
||||
SCRIPT_OPTIONAL_PARAM_(Color, background_color);
|
||||
return make_intrusive<InsertedImage>(base_image, inserted_image, offset_x, offset_y, background_color);
|
||||
}
|
||||
}
|
||||
|
||||
SCRIPT_FUNCTION(linear_blend) {
|
||||
SCRIPT_PARAM(GeneratedImageP, image1);
|
||||
@@ -273,10 +283,11 @@ SCRIPT_FUNCTION(built_in_image) {
|
||||
// ----------------------------------------------------------------------------- : Init
|
||||
|
||||
void init_script_image_functions(Context& ctx) {
|
||||
ctx.setVariable(_("to_image"), script_to_image);
|
||||
ctx.setVariable(_("to_card_image"), script_to_card_image);
|
||||
ctx.setVariable(_("width_of"), script_width_of);
|
||||
ctx.setVariable(_("to_image"), script_to_image);
|
||||
ctx.setVariable(_("to_card_image"), script_to_card_image);
|
||||
ctx.setVariable(_("width_of"), script_width_of);
|
||||
ctx.setVariable(_("height_of"), script_height_of);
|
||||
ctx.setVariable(_("dimensions_of"), script_dimensions_of);
|
||||
ctx.setVariable(_("linear_blend"), script_linear_blend);
|
||||
ctx.setVariable(_("masked_blend"), script_masked_blend);
|
||||
ctx.setVariable(_("combine_blend"), script_combine_blend);
|
||||
@@ -298,5 +309,5 @@ void init_script_image_functions(Context& ctx) {
|
||||
ctx.setVariable(_("drop_shadow"), script_drop_shadow);
|
||||
ctx.setVariable(_("symbol_variation"), script_symbol_variation);
|
||||
ctx.setVariable(_("built_in_image"), script_built_in_image);
|
||||
ctx.setVariable(_("import_image"), script_import_image);
|
||||
ctx.setVariable(_("import_image"), script_import_image);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user