remove pivot from samples

This commit is contained in:
BlackMATov
2020-04-24 21:47:53 +07:00
parent cd971c269d
commit 31288fafd6
14 changed files with 88 additions and 58 deletions

View File

@@ -13,6 +13,7 @@ namespace e2d
class named final { class named final {
public: public:
named() = default; named() = default;
named(str value) noexcept;
named& name(str value) noexcept; named& name(str value) noexcept;
@@ -53,6 +54,9 @@ namespace e2d
namespace e2d namespace e2d
{ {
inline named::named(str value) noexcept
: name_(std::move(value)) {}
inline named& named::name(str value) noexcept { inline named& named::name(str value) noexcept {
name_ = std::move(value); name_ = std::move(value);
return *this; return *this;

View File

@@ -1,11 +1,22 @@
{ {
"prefab" : "sprite_prefab.json",
"components" : { "components" : {
"named" : { "named" : {
"name" : "ship" "name" : "ship"
}
},
"children" : [{
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
"prefab" : "sprite_prefab.json",
"components" : {
"named" : {
"name" : "sprite"
},
"actor" : {
"translation" : [-33,-56.5]
}, },
"sprite_renderer" : { "sprite_renderer" : {
"sprite" : "../sprites/ship_sprite.json" "sprite" : "../sprites/ship_sprite.json"
} }
} }
}]
} }

View File

@@ -58,38 +58,51 @@
"actor" : { "actor" : {
"translation" : [0,0], "translation" : [0,0],
"scale" : 20 "scale" : 20
},
"named" : {
"name" : "gnome"
} }
} }
}, { }, {
"prefab" : "../prefabs/ship_prefab.json",
"components" : { "components" : {
"sprite_renderer" : {
"blending" : "additive"
},
"actor" : {
"translation" : [-50,-50]
},
"named" : { "named" : {
"name" : "ship(1)" "name" : "ships"
} }
}, },
"children" : [{ "children" : [{
"prefab" : "../prefabs/ship_prefab.json", "prefab" : "../prefabs/ship_prefab.json",
"components" : { "components" : {
"sprite_renderer" : { "named" : {
"tint" : [255,0,0,255] "name" : "ship(1)"
}, },
"actor" : { "actor" : {
"translation" : [100,0] "translation" : [-50,-50]
}
}, },
"mod_children" : [{
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
"components" : {
"sprite_renderer" : {
"tint" : [255,0,0,255]
}
}
}]
}, {
"prefab" : "../prefabs/ship_prefab.json",
"components" : {
"named" : { "named" : {
"name" : "ship(2)" "name" : "ship(2)"
},
"actor" : {
"translation" : [50,-50]
}
},
"mod_children" : [{
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
"components" : {
"sprite_renderer" : {
"blending" : "additive"
} }
} }
}] }]
}]
}, { }, {
"prefab" : "../prefabs/label_bm_prefab.json", "prefab" : "../prefabs/label_bm_prefab.json",
"components" : { "components" : {

View File

@@ -1,5 +1,4 @@
{ {
"texture" : "background.png", "texture" : "background.png",
"pivot" : { "x" : 0, "y" : 0 },
"texrect" : { "x" : 0, "y" : 0, "w" : 256, "h" : 256 } "texrect" : { "x" : 0, "y" : 0, "w" : 256, "h" : 256 }
} }

View File

@@ -1,5 +1,4 @@
{ {
"texture" : "cube_0.png", "texture" : "cube_0.png",
"pivot" : { "x" : 12, "y" : 12 },
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 } "texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
} }

View File

@@ -1,5 +1,4 @@
{ {
"texture" : "cube_1.png", "texture" : "cube_1.png",
"pivot" : { "x" : 12, "y" : 12 },
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 } "texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
} }

View File

@@ -1,6 +1,5 @@
{ {
"texture" : "panel.png", "texture" : "panel.png",
"pivot" : { "x" : 0, "y" : 0 },
"inner_texrect" : { "x" : 6, "y" : 6, "w" : 88, "h" : 88 }, "inner_texrect" : { "x" : 6, "y" : 6, "w" : 88, "h" : 88 },
"outer_texrect" : { "x" : 0, "y" : 0, "w" : 100, "h" : 100 } "outer_texrect" : { "x" : 0, "y" : 0, "w" : 100, "h" : 100 }
} }

View File

@@ -1,5 +1,4 @@
{ {
"texture" : "ships.png", "texture" : "ships.png",
"pivot" : { "x" : 441, "y" : 340.5 },
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 } "texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
} }

View File

@@ -2,11 +2,9 @@
"texture" : "ships.png", "texture" : "ships.png",
"sprites" : [{ "sprites" : [{
"name" : "ship (1).png", "name" : "ship (1).png",
"pivot" : { "x" : 441, "y" : 455 },
"texrect" : { "x" : 408, "y" : 399, "w" : 66, "h" : 113 } "texrect" : { "x" : 408, "y" : 399, "w" : 66, "h" : 113 }
},{ },{
"name" : "ship (2).png", "name" : "ship (2).png",
"pivot" : { "x" : 441, "y" : 340 },
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 } "texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
}] }]
} }

View File

@@ -80,6 +80,7 @@ namespace
auto scene_i = the<world>().instantiate(); auto scene_i = the<world>().instantiate();
scene_i.component<scene>().assign(); scene_i.component<scene>().assign();
scene_i.component<named>().assign("scene");
{ {
prefab prefab; prefab prefab;
@@ -113,14 +114,22 @@ namespace
} }
{ {
prefab sprite_prefab;
sprite_prefab.prototype()
.component<named>(named()
.name("sprite"))
.component<actor>(actor()
.node(node::create(math::make_translation_trs2(v2f{-33.f,-56.5f}))))
.component<renderer>()
.component<sprite_renderer>(sprite_renderer(sprite_res)
.materials({{"normal", sprite_mat}}));
prefab prefab; prefab prefab;
prefab.prototype() prefab.prototype()
.component<named>(named() .component<named>(named()
.name("ship")) .name("ship"))
.component<node_rotator>() .component<node_rotator>();
.component<renderer>() prefab.set_children({sprite_prefab});
.component<sprite_renderer>(sprite_renderer(sprite_res)
.materials({{"normal", sprite_mat}}));
the<world>().instantiate( the<world>().instantiate(
prefab, prefab,
@@ -129,11 +138,12 @@ namespace
} }
{ {
prefab prefab_a; prefab sprite_prefab;
prefab_a.prototype() sprite_prefab.prototype()
.component<named>(named() .component<named>(named()
.name("cube")) .name("sprite"))
.component<node_rotator>() .component<actor>(actor()
.node(node::create(math::make_translation_trs2(v2f{-12.f,-12.f}))))
.component<renderer>() .component<renderer>()
.component<sprite_renderer>(sprite_renderer() .component<sprite_renderer>(sprite_renderer()
.filtering(false) .filtering(false)
@@ -142,28 +152,35 @@ namespace
.play("idle") .play("idle")
.looped(true)); .looped(true));
prefab child_prefab;
child_prefab.prototype()
.component<named>(named()
.name("child"))
.component<actor>(actor()
.node(node::create(make_trs2(
v2f{20.f,0.f},
0.f,
v2f{0.3f,0.3f}))))
.component<node_rotator>();
child_prefab.set_children({sprite_prefab});
prefab root_prefab;
root_prefab.prototype()
.component<named>(named()
.name("root"))
.component<node_rotator>();
root_prefab.set_children({sprite_prefab, child_prefab});
for ( std::size_t i = 0; i < 2; ++i ) for ( std::size_t i = 0; i < 2; ++i )
for ( std::size_t j = 0; j < 5; ++j ) { for ( std::size_t j = 0; j < 5; ++j ) {
t2f trans{ t2f trans{
{-80.f + j * 40.f, -200.f + i * 40.f}, {-80.f + j * 40.f, -200.f + i * 40.f},
0.f, 0.f,
{2.f,2.f}}; {2.f,2.f}};
gobject inst = the<world>().instantiate( the<world>().instantiate(
prefab_a, root_prefab,
scene_i.component<actor>()->node(), scene_i.component<actor>()->node(),
trans); trans);
prefab prefab_b = prefab_a;
prefab_b.prototype()
.component<node_rotator>()
.component<actor>(node::create(make_trs2(
v2f{20.f,0.f},
0.f,
v2f{0.3f,0.3f})));
the<world>().instantiate(
prefab_b,
inst.component<actor>()->node());
} }
} }

View File

@@ -2,11 +2,9 @@
"texture" : "image.png", "texture" : "image.png",
"sprites" : [{ "sprites" : [{
"name" : "sprite", "name" : "sprite",
"pivot" : { "x" : 1, "y" : 2 },
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 } "texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
},{ },{
"name" : "sprite2", "name" : "sprite2",
"pivot" : { "x" : 1, "y" : 2 },
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 }, "inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 } "outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
}] }]

View File

@@ -1,5 +1,4 @@
{ {
"texture" : "image.png", "texture" : "image.png",
"pivot" : { "x" : 1, "y" : 2 },
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 } "texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
} }

View File

@@ -1,6 +1,5 @@
{ {
"texture" : "image.png", "texture" : "image.png",
"pivot" : { "x" : 1, "y" : 2 },
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 }, "inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 } "outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
} }

View File

@@ -192,14 +192,12 @@ TEST_CASE("library"){
sprite_asset::ptr spr = atlas_res->find_nested_asset<sprite_asset>("sprite"); sprite_asset::ptr spr = atlas_res->find_nested_asset<sprite_asset>("sprite");
REQUIRE(spr); REQUIRE(spr);
REQUIRE(spr->content().pivot() == v2f(1.f,2.f));
REQUIRE(spr->content().inner_texrect() == b2f(5.f,6.f,7.f,8.f)); REQUIRE(spr->content().inner_texrect() == b2f(5.f,6.f,7.f,8.f));
REQUIRE(spr->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f)); REQUIRE(spr->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
REQUIRE(spr->content().texture()== texture_res); REQUIRE(spr->content().texture()== texture_res);
sprite_asset::ptr spr2 = atlas_res->find_nested_asset<sprite_asset>("sprite2"); sprite_asset::ptr spr2 = atlas_res->find_nested_asset<sprite_asset>("sprite2");
REQUIRE(spr2); REQUIRE(spr2);
REQUIRE(spr2->content().pivot() == v2f(1.f,2.f));
REQUIRE(spr2->content().inner_texrect() == b2f(1.f,2.f,3.f,4.f)); REQUIRE(spr2->content().inner_texrect() == b2f(1.f,2.f,3.f,4.f));
REQUIRE(spr2->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f)); REQUIRE(spr2->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
REQUIRE(spr2->content().texture()== texture_res); REQUIRE(spr2->content().texture()== texture_res);
@@ -208,14 +206,12 @@ TEST_CASE("library"){
{ {
auto sprite_res = l.load_asset<sprite_asset>("sprite.json"); auto sprite_res = l.load_asset<sprite_asset>("sprite.json");
REQUIRE(sprite_res); REQUIRE(sprite_res);
REQUIRE(sprite_res->content().pivot() == v2f(1.f, 2.f));
REQUIRE(sprite_res->content().inner_texrect() == b2f(5.f, 6.f, 7.f, 8.f)); REQUIRE(sprite_res->content().inner_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
REQUIRE(sprite_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f)); REQUIRE(sprite_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
REQUIRE(sprite_res->content().texture() == texture_res); REQUIRE(sprite_res->content().texture() == texture_res);
auto sprite2_res = l.load_asset<sprite_asset>("sprite2.json"); auto sprite2_res = l.load_asset<sprite_asset>("sprite2.json");
REQUIRE(sprite2_res); REQUIRE(sprite2_res);
REQUIRE(sprite2_res->content().pivot() == v2f(1.f, 2.f));
REQUIRE(sprite2_res->content().inner_texrect() == b2f(1.f, 2.f, 3.f, 4.f)); REQUIRE(sprite2_res->content().inner_texrect() == b2f(1.f, 2.f, 3.f, 4.f));
REQUIRE(sprite2_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f)); REQUIRE(sprite2_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
REQUIRE(sprite2_res->content().texture() == texture_res); REQUIRE(sprite2_res->content().texture() == texture_res);