MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / make

Method make

source/windowing/StarWidgetLuaBindings.cpp:21–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19namespace Star {
20
21LuaMethods<CanvasWidgetPtr> LuaUserDataMethods<CanvasWidgetPtr>::make() {
22 LuaMethods<CanvasWidgetPtr> methods;
23
24 methods.registerMethodWithSignature<Vec2I, CanvasWidgetPtr>("size", mem_fn(&CanvasWidget::size));
25 methods.registerMethodWithSignature<Vec2I, CanvasWidgetPtr>("mousePosition", mem_fn(&CanvasWidget::mousePosition));
26
27 methods.registerMethodWithSignature<void, CanvasWidgetPtr>("clear", mem_fn(&CanvasWidget::clear));
28
29 methods.registerMethod("drawDrawable", [](CanvasWidgetPtr canvasWidget, Drawable drawable, Maybe<Vec2F> screenPos) {
30 canvasWidget->drawDrawable(std::move(drawable), screenPos.value(Vec2F()));
31 });
32
33 methods.registerMethod("drawDrawables", [](CanvasWidgetPtr canvasWidget, List<Drawable> drawables, Maybe<Vec2F> screenPos) {
34 Vec2F pos = screenPos.value(Vec2F());
35 for (auto& drawable : drawables)
36 canvasWidget->drawDrawable(std::move(drawable), pos);
37 });
38
39 methods.registerMethod("drawImage",
40 [](CanvasWidgetPtr canvasWidget, String image, Vec2F position, Maybe<float> scale, Maybe<Color> color, Maybe<bool> centered) {
41 if (centered && *centered)
42 canvasWidget->drawImageCentered(image, position, scale.value(1.0f), color.value(Color::White).toRgba());
43 else
44 canvasWidget->drawImage(image, position, scale.value(1.0f), color.value(Color::White).toRgba());
45 });
46 methods.registerMethod("drawImageDrawable",
47 [](CanvasWidgetPtr canvasWidget, String image, Vec2F position, MVariant<Vec2F, float> scale, Maybe<Color> color, Maybe<float> rotation) {
48 auto drawable = Drawable::makeImage(image, 1.0, true, {0.0, 0.0}, color.value(Color::White));
49 if (auto s = scale.maybe<Vec2F>())
50 drawable.transform(Mat3F::scaling(*s));
51 else if(auto s = scale.maybe<float>())
52 drawable.transform(Mat3F::scaling(*s));
53 if (rotation)
54 drawable.rotate(*rotation);
55 canvasWidget->drawDrawable(drawable, position);
56 });
57 methods.registerMethod("drawImageRect",
58 [](CanvasWidgetPtr canvasWidget, String image, RectF texCoords, RectF screenCoords, Maybe<Color> color) {
59 canvasWidget->drawImageRect(image, texCoords, screenCoords, color.value(Color::White).toRgba());
60 });
61 methods.registerMethod("drawTiledImage",
62 [](CanvasWidgetPtr canvasWidget, String image, Vec2D offset, RectF screenCoords, Maybe<float> scale, Maybe<Color> color) {
63 canvasWidget->drawTiledImage(image, scale.value(1.0f), offset, screenCoords, color.value(Color::White).toRgba());
64 });
65 methods.registerMethod("drawLine",
66 [](CanvasWidgetPtr canvasWidget, Vec2F begin, Vec2F end, Maybe<Color> color, Maybe<float> lineWidth) {
67 canvasWidget->drawLine(begin, end, color.value(Color::White).toRgba(), lineWidth.value(1.0f));
68 });
69 methods.registerMethod("drawRect",
70 [](CanvasWidgetPtr canvasWidget, RectF rect, Maybe<Color> color) {
71 canvasWidget->drawRect(rect, color.value(Color::White).toRgba());
72 });
73 methods.registerMethod("drawPoly",
74 [](CanvasWidgetPtr canvasWidget, PolyF poly, Maybe<Color> color, Maybe<float> lineWidth) {
75 canvasWidget->drawPoly(poly, color.value(Color::White).toRgba(), lineWidth.value(1.0f));
76 });
77 methods.registerMethod("drawTriangles",
78 [](CanvasWidgetPtr canvasWidget, List<PolyF> triangles, Maybe<Color> color) {

Callers

nothing calls this directly

Calls 15

StarExceptionClass · 0.85
TextPositioningClass · 0.85
registerMethodMethod · 0.80
drawImageCenteredMethod · 0.80
toRgbaMethod · 0.80
drawImageMethod · 0.80
drawImageRectMethod · 0.80
drawTiledImageMethod · 0.80
drawRectMethod · 0.80
drawPolyMethod · 0.80
sidesMethod · 0.80
drawTextMethod · 0.80

Tested by

no test coverage detected