From f1d2bf90d87b7cc9db73d55694420b5f25255eed Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 18:33:41 +0900 Subject: [PATCH 01/10] Update nodebox --- maidroid_tool/egg_writer.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index ae24a8d..2012bb2 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -65,12 +65,14 @@ local tiles = { local node_box = { type = "fixed", fixed = { - { -0.5, -0.375, -0.4375, 0.5, 0.3125, 0.4375}, - {-0.4375, -0.4375, -0.5, 0.4375, 0.25, 0.5}, - {-0.3125, -0.5, -0.3125, 0.3125, -0.4375, 0.3125}, - { -0.375, 0.3125, -0.375, -0.3125, 0.375, 0.375}, - { 0.3125, 0.3125, -0.375, 0.375, 0.375, 0.375}, - { -0.125, -0.5, -0.0625, 0.125, 0.375, 0.0625}, + {-0.4375, -0.3125, -0.4375, -0.375, 0.4375, 0.4375}, + {-0.4375, -0.3125, -0.4375, 0.4375, 0.4375, -0.375}, + { 0.375, -0.3125, -0.4375, 0.4375, 0.4375, 0.4375}, + {-0.4375, -0.3125, 0.375, 0.4375, 0.4375, 0.4375}, + {-0.4375, -0.25, -0.375, 0.4375, 0.25, 0.375}, + { -0.5, 0, -0.5, 0.5, 0.125, 0.5}, + { -0.25, -0.5, -0.3125, 0.25, -0.3125, 0.3125}, + {-0.3125, -0.5, -0.25, 0.3125, -0.3125, 0.25}, }, } From 83d2c0ca942eaf0a11e066f20b87af3475b8cc4b Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 18:36:22 +0900 Subject: [PATCH 02/10] Update selection_box --- maidroid_tool/egg_writer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index 2012bb2..a63cb07 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -79,7 +79,7 @@ local node_box = { local selection_box = { type = "fixed", fixed = { - {-0.4375, -0.4375, -0.4375, 0.4375, -0.4375, 0.4375}, + {-0.4375, -0.5, -0.4375, 0.4375, 0.4375, 0.4375}, }, } From 88ee24b140862bd54b2b0d803d70e4085256319c Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 18:40:11 +0900 Subject: [PATCH 03/10] Divide scope --- maidroid_tool/egg_writer.lua | 154 ++++++++++++++++++----------------- 1 file changed, 81 insertions(+), 73 deletions(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index a63cb07..4a755bc 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -3,35 +3,14 @@ -- https://github.com/tacigar/maidroid ------------------------------------------------------------ -local dye_item_map = { - ["dye:red"] = "maidroid:maidroid_mk1_egg", -} +do -- register egg writer -local formspec = { -- want to change. - ["inactive"] = "size[8,9]" - .. default.gui_bg - .. default.gui_bg_img - .. default.gui_slots - .. "label[3.75,0;Egg]" - .. "list[current_name;main;3.5,0.5;1,1;]" - .. "label[2.75,2;Coal]" - .. "list[current_name;fuel;2.5,2.5;1,1;]" - .. "label[4.75,2;Dye]" - .. "list[current_name;dye;4.5,2.5;1,1;]" - .. "image[3.5,1.5;1,2;maidroid_tool_gui_arrow.png]" - .. "image[3.1,3.5;2,1;maidroid_tool_gui_meter.png^[transformR270]" - .. "list[current_player;main;0,5;8,1;]" - .. "list[current_player;main;0,6.2;8,3;8]", + local dye_item_map = { + ["dye:red"] = "maidroid:maidroid_mk1_egg", + } - ["active"] = function(time) - local arrow_percent = (100 / 40) * time - local merter_percent = 0 - if time % 16 >= 8 then - meter_percent = (8 - (time % 8)) * (100 / 8) - else - meter_percent = (time % 8) * (100 / 8) - end - return "size[8,9]" + local formspec = { -- want to change. + ["inactive"] = "size[8,9]" .. default.gui_bg .. default.gui_bg_img .. default.gui_slots @@ -41,55 +20,84 @@ local formspec = { -- want to change. .. "list[current_name;fuel;2.5,2.5;1,1;]" .. "label[4.75,2;Dye]" .. "list[current_name;dye;4.5,2.5;1,1;]" - .. "image[3.5,1.5;1,2;maidroid_tool_gui_arrow.png^[lowpart:" - .. arrow_percent - .. ":maidroid_tool_gui_arrow_filled.png]" - .. "image[3.1,3.5;2,1;maidroid_tool_gui_meter.png^[lowpart:" - .. meter_percent - .. ":maidroid_tool_gui_meter_filled.png^[transformR270]" + .. "image[3.5,1.5;1,2;maidroid_tool_gui_arrow.png]" + .. "image[3.1,3.5;2,1;maidroid_tool_gui_meter.png^[transformR270]" .. "list[current_player;main;0,5;8,1;]" - .. "list[current_player;main;0,6.2;8,3;8]" - end, -} + .. "list[current_player;main;0,6.2;8,3;8]", -local tiles = { - ["active"] = { - "default_stone.png", - }, + ["active"] = function(time) + local arrow_percent = (100 / 40) * time + local merter_percent = 0 + if time % 16 >= 8 then + meter_percent = (8 - (time % 8)) * (100 / 8) + else + meter_percent = (time % 8) * (100 / 8) + end + return "size[8,9]" + .. default.gui_bg + .. default.gui_bg_img + .. default.gui_slots + .. "label[3.75,0;Egg]" + .. "list[current_name;main;3.5,0.5;1,1;]" + .. "label[2.75,2;Coal]" + .. "list[current_name;fuel;2.5,2.5;1,1;]" + .. "label[4.75,2;Dye]" + .. "list[current_name;dye;4.5,2.5;1,1;]" + .. "image[3.5,1.5;1,2;maidroid_tool_gui_arrow.png^[lowpart:" + .. arrow_percent + .. ":maidroid_tool_gui_arrow_filled.png]" + .. "image[3.1,3.5;2,1;maidroid_tool_gui_meter.png^[lowpart:" + .. meter_percent + .. ":maidroid_tool_gui_meter_filled.png^[transformR270]" + .. "list[current_player;main;0,5;8,1;]" + .. "list[current_player;main;0,6.2;8,3;8]" + end, + } - ["inactive"] = { - "default_stone.png", - }, -} + local tiles = { + ["active"] = { + "default_stone.png", + }, -local node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.3125, -0.4375, -0.375, 0.4375, 0.4375}, - {-0.4375, -0.3125, -0.4375, 0.4375, 0.4375, -0.375}, - { 0.375, -0.3125, -0.4375, 0.4375, 0.4375, 0.4375}, - {-0.4375, -0.3125, 0.375, 0.4375, 0.4375, 0.4375}, - {-0.4375, -0.25, -0.375, 0.4375, 0.25, 0.375}, - { -0.5, 0, -0.5, 0.5, 0.125, 0.5}, - { -0.25, -0.5, -0.3125, 0.25, -0.3125, 0.3125}, - {-0.3125, -0.5, -0.25, 0.3125, -0.3125, 0.25}, - }, -} + ["inactive"] = { + "default_stone.png", + }, + } -local selection_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.4375, 0.4375, 0.4375, 0.4375}, - }, -} + local node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.3125, -0.4375, -0.375, 0.4375, 0.4375}, + {-0.4375, -0.3125, -0.4375, 0.4375, 0.4375, -0.375}, + { 0.375, -0.3125, -0.4375, 0.4375, 0.4375, 0.4375}, + {-0.4375, -0.3125, 0.375, 0.4375, 0.4375, 0.4375}, + {-0.4375, -0.25, -0.375, 0.4375, 0.25, 0.375}, + { -0.5, 0, -0.5, 0.5, 0.125, 0.5}, + { -0.25, -0.5, -0.3125, 0.25, -0.3125, 0.3125}, + {-0.3125, -0.5, -0.25, 0.3125, -0.3125, 0.25}, + }, + } -maidroid_tool.register_writer("maidroid_tool:egg_writer", { - description = "maidroid tool : egg writer", - formspec = formspec, - tiles = tiles, - node_box = node_box, - selection_box = selection_box, - duration = 40, - empty_itemname = "maidroid:empty_egg", - dye_item_map = dye_item_map, -}) + local selection_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, 0.4375, 0.4375}, + }, + } + + maidroid_tool.register_writer("maidroid_tool:egg_writer", { + description = "maidroid tool : egg writer", + formspec = formspec, + tiles = tiles, + node_box = node_box, + selection_box = selection_box, + duration = 40, + empty_itemname = "maidroid:empty_egg", + dye_item_map = dye_item_map, + }) + +end -- register egg writer + +do -- register a definition of an egg entity + +end From 959d308048ad46e48513b42343fe40a080bd5052 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 18:43:01 +0900 Subject: [PATCH 04/10] Brushup maidroid/api.lua --- maidroid/api.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/maidroid/api.lua b/maidroid/api.lua index c377aee..3be51f1 100644 --- a/maidroid/api.lua +++ b/maidroid/api.lua @@ -250,15 +250,15 @@ end) end minetest.register_entity("maidroid:dummy_item", { - hp_max = 1, - visual = "wielditem", - visual_size = {x = 0.025, y = 0.025}, + hp_max = 1, + visual = "wielditem", + visual_size = {x = 0.025, y = 0.025}, collisionbox = {0, 0, 0, 0, 0, 0}, - physical = false, - textures = {"air"}, - on_activate = on_activate, - on_step = on_step, - itemname = "", + physical = false, + textures = {"air"}, + on_activate = on_activate, + on_step = on_step, + itemname = "", }) end) () From e557b220f137a773495ff21911aebcc1ac525f94 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 20:01:06 +0900 Subject: [PATCH 05/10] Update egg writer, egg move up and down --- maidroid_tool/egg_writer.lua | 128 ++++++++++++++++++++++++++++++++--- 1 file changed, 119 insertions(+), 9 deletions(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index 4a755bc..f0e8638 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -85,19 +85,129 @@ do -- register egg writer }, } + local function get_nearest_egg_entity(pos) + local all_objects = minetest.get_objects_inside_radius(pos, 1.0) + for _, object in ipairs(all_objects) do + if object:get_luaentity().name == "maidroid_tool:egg_entity" then + return object:get_luaentity() + end + end + return nil + end + + local function on_deactivate(pos) + local egg_entity = get_nearest_egg_entity(pos) + egg_entity:stop_move() + end + + local function on_activate(pos) + local egg_entity = get_nearest_egg_entity(pos) + egg_entity:start_move() + end + + local function on_metadata_inventory_put_to_main(pos) + local center_position = { + x = pos.x, y = pos.y + 0.25, z = pos.z + } + local egg_entity = minetest.add_entity(center_position, "maidroid_tool:egg_entity") + local lua_entity = egg_entity:get_luaentity() + lua_entity:initialize(center_position) + end + + local function on_metadata_inventory_take_from_main(pos) + local egg_entity = get_nearest_egg_entity(pos) + egg_entity.object:remove() + end + maidroid_tool.register_writer("maidroid_tool:egg_writer", { - description = "maidroid tool : egg writer", - formspec = formspec, - tiles = tiles, - node_box = node_box, - selection_box = selection_box, - duration = 40, - empty_itemname = "maidroid:empty_egg", - dye_item_map = dye_item_map, + description = "maidroid tool : egg writer", + formspec = formspec, + tiles = tiles, + node_box = node_box, + selection_box = selection_box, + duration = 40, + on_activate = on_activate, + on_deactivate = on_deactivate, + empty_itemname = "maidroid:empty_egg", + dye_item_map = dye_item_map, + on_metadata_inventory_put_to_main = on_metadata_inventory_put_to_main, + on_metadata_inventory_take_from_main = on_metadata_inventory_take_from_main, }) end -- register egg writer do -- register a definition of an egg entity + local function on_activate(self, staticdata) + self.object:set_properties{textures={"maidroid:empty_egg"}} -end + if staticdata ~= "" then + local data = minetest.deserialize(staticdata) + self.is_moving = data["is_moving"] + + if self.is_moving then + self:start_move() + end + end + end + + local function start_move(self) + self.object:set_properties{automatic_rotate = 1} + is_moving = true + end + + local function stop_move(self) + self.object:set_properties{automatic_rotate = 0} + is_moving = false + end + + local function get_staticdata(self) + local data = { + ["is_moving"] = self.is_moving, + ["center_position"] = self.center_position, + } + return minetest.serialize(data) + end + + local function on_step(self, dtime) + if self.is_moving then + + end + -- move up and down. + if self.angle >= 360 then + self.angle = 0 + else + self.angle = self.angle + 3 + end + local current_pos = self.object:getpos() + self.object:setpos( + vector.add(current_pos, { + x = 0, + y = math.sin(self.angle * math.pi / 180.0) * 0.0025, + z = 0 + }) + ) + end + + local function initialize(self, pos) + self.center_position = pos + local init_pos = vector.add(pos, {x = 0.15, y = 0, z = 0}) + self.object:setpos(init_pos) + end + + minetest.register_entity("maidroid_tool:egg_entity", { + hp_max = 1, + visual = "wielditem", + visual_size = {x = 0.2, y = 0.2}, + collisionbox = {0, 0, 0, 0, 0, 0}, + physical = false, + on_activate = on_activate, + start_move = start_move, + stop_move = stop_move, + get_staticdata = get_staticdata, + on_step = on_step, + initialize = initialize, + center_position = nil, + is_moving = false, + angle = 0, + }) +end -- register egg entity From 3529295db10b39a3e75d15d6f0616e91c2cde3e9 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 21:27:15 +0900 Subject: [PATCH 06/10] Add egg entity and moving system --- maidroid_tool/api.lua | 6 ++-- maidroid_tool/egg_writer.lua | 68 ++++++++++++++++++++++++------------ 2 files changed, 50 insertions(+), 24 deletions(-) diff --git a/maidroid_tool/api.lua b/maidroid_tool/api.lua index 12e1eb0..3ef4d00 100644 --- a/maidroid_tool/api.lua +++ b/maidroid_tool/api.lua @@ -72,8 +72,10 @@ function maidroid_tool.register_writer(nodename, options) local main_name = main_list[1]:get_name() if main_name == empty_itemname and (not fuel_list[1]:is_empty()) and (not dye_list[1]:is_empty()) then + local output = dye_item_map[dye_list[1]:get_name()] + meta:set_string("time", 0) - meta:set_string("output", dye_item_map[dye_list[1]:get_name()]) + meta:set_string("output", output) local fuel_stack = fuel_list[1] fuel_stack:take_item() @@ -86,7 +88,7 @@ function maidroid_tool.register_writer(nodename, options) swap_node(pos, nodename .. "_active") if on_activate ~= nil then -- call on_activate callback. - on_activate(pos) + on_activate(pos, output) end end end diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index f0e8638..e8a3989 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -100,9 +100,10 @@ do -- register egg writer egg_entity:stop_move() end - local function on_activate(pos) + local function on_activate(pos, output) local egg_entity = get_nearest_egg_entity(pos) - egg_entity:start_move() + egg_entity.object:set_properties{textures={"maidroid:empty_egg"}} + egg_entity:start_move(output) end local function on_metadata_inventory_put_to_main(pos) @@ -139,56 +140,77 @@ end -- register egg writer do -- register a definition of an egg entity local function on_activate(self, staticdata) self.object:set_properties{textures={"maidroid:empty_egg"}} + self.object:set_properties{automatic_rotate = 1} if staticdata ~= "" then local data = minetest.deserialize(staticdata) - self.is_moving = data["is_moving"] + + self.is_moving = data["is_moving"] + self.center_position = data["center_position"] + self.output = data["output"] + self.current_egg = data["current_egg"] + + self.object:set_properties{textures={self.current_egg}} + self:initialize(self.center_position) if self.is_moving then self:start_move() end + else + self.object:set_properties{textures={"maidroid:empty_egg"}} end end - local function start_move(self) - self.object:set_properties{automatic_rotate = 1} - is_moving = true + local function start_move(self, output) + self.is_moving = true + self.output = output end local function stop_move(self) - self.object:set_properties{automatic_rotate = 0} - is_moving = false + self.object:set_properties{textures={self.output}} + self.is_moving = false + self.current_egg = self.output + self.output = "" end local function get_staticdata(self) local data = { - ["is_moving"] = self.is_moving, - ["center_position"] = self.center_position, + ["is_moving"] = self.is_moving, + ["center_position"] = self.center_position, + ["output"] = self.output, + ["current_egg"] = self.current_egg, } return minetest.serialize(data) end local function on_step(self, dtime) - if self.is_moving then - - end - -- move up and down. if self.angle >= 360 then self.angle = 0 else - self.angle = self.angle + 3 + self.angle = self.angle + 2 end - local current_pos = self.object:getpos() - self.object:setpos( - vector.add(current_pos, { - x = 0, - y = math.sin(self.angle * math.pi / 180.0) * 0.0025, - z = 0 + + if self.is_moving then + local length = 0.15 + local new_position = vector.add(self.center_position, { + x = length * math.cos(self.angle * math.pi / 180.0), + y = math.sin(self.angle * math.pi / 180.0) * 0.035, + z = length * math.sin(self.angle * math.pi / 180.0), }) - ) + self.object:setpos(new_position) + else + self.object:setpos( + vector.add(self.center_position, { + x = 0, + y = math.sin(self.angle * math.pi / 180.0) * 0.035, + z = 0 + }) + ) + end end local function initialize(self, pos) + self.angle = 0 self.center_position = pos local init_pos = vector.add(pos, {x = 0.15, y = 0, z = 0}) self.object:setpos(init_pos) @@ -206,6 +228,8 @@ do -- register a definition of an egg entity get_staticdata = get_staticdata, on_step = on_step, initialize = initialize, + output = "", + current_egg = "", center_position = nil, is_moving = false, angle = 0, From cce38c1753c575c34dcb1f7ea3a7a6a74ebdac3a Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 22:53:45 +0900 Subject: [PATCH 07/10] Add egg writer textures --- .../textures/maidroid_tool_egg_writer_bottom.png | Bin 0 -> 550 bytes .../textures/maidroid_tool_egg_writer_bottom.xcf | Bin 0 -> 1403 bytes .../textures/maidroid_tool_egg_writer_front.png | Bin 0 -> 650 bytes .../textures/maidroid_tool_egg_writer_front.xcf | Bin 0 -> 1412 bytes .../maidroid_tool_egg_writer_front_active.png | Bin 0 -> 824 bytes .../maidroid_tool_egg_writer_front_active.xcf | Bin 0 -> 3683 bytes .../textures/maidroid_tool_egg_writer_right.png | Bin 0 -> 637 bytes .../textures/maidroid_tool_egg_writer_right.xcf | Bin 0 -> 1424 bytes .../textures/maidroid_tool_egg_writer_top.png | Bin 0 -> 691 bytes .../textures/maidroid_tool_egg_writer_top.xcf | Bin 0 -> 1397 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_bottom.png create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_bottom.xcf create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_front.png create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_front.xcf create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_front_active.png create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_front_active.xcf create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_right.png create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_right.xcf create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_top.png create mode 100644 maidroid_tool/textures/maidroid_tool_egg_writer_top.xcf diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.png b/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4faa689fbc5a51dfcbaae6b90dc34960c87a32b8 GIT binary patch literal 550 zcmV+>0@?kEP)WFU8GbZ8()Nlj2>E@cM*00D|gL_t(I%cYZBuBtE; zhQHN|R=~som^dNl>x3MDF#%d=yY|CAt?|5WUI;1tcSKeB%jE#>_q)az8OIS-rPhk7 zA|m9R2_aBx1wd6<*A?$QkHy=>`05AZhlrPz(lrF!0Tx(^TCPV}gp=IX)=6MFd zdrwLU5dpwji-=&YrIfss1Bg?V?a5x+QI!Jrbd*AIf+g}y{a?a$OdqpWF zRFz>EP*wJQ#~6c%^j6IOtS#-FGuB!{2yENdt;84sSl9If&}6oN8fat6Id_ob@%Ux6 z12pzh3OQ%?eeVM@#&ABLskKr{K~;NZriIulbk54d8GtvKfp5niv?r^aUCcDwZk+MrYwYwg#J+r0yX5SZtg5CSPBy!XHI o{wZn0Y3$3gFplFd(O-Y(9~r(O2{K~ntpET307*qoM6N<$g72W{T>t<8 literal 0 HcmV?d00001 diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.xcf b/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.xcf new file mode 100644 index 0000000000000000000000000000000000000000..1b8c5d4cda71fae36299cbcb5303d1cf27a28ea7 GIT binary patch literal 1403 zcmeHF%Wl&^6tyEnOCf3~j};3e#hHigko-YBW16P6o5CNYj_q1X;wm#DXn9 z0sp|qRQ$zoudz`OVZ#z}r8D=;xsSQ_OqwmPjO!>dl57!cV4WJs9|Ck8mPden@ln$d zV2=TJYCNqy<~@P@G5B^0ZJj7zF5^`Rdkup}avjggcy7GS%1dKB3C}UosZz7$ERCIX zoy}2$Y+a*8xmmMO^+I5UYQeeki||;(w@3|J*R}&HdmX z-TQX);r7!PjJ9wAy9>aZQGorLW9q${gVUaE@q;aXe~UlZ;_WSd2ps!1wg&{yLu+0| zGYd$q>P-P@#)jP129v>Rt@XazsCU|pFV8~%)E`g7FpwuoN!OENB&92bD}+*0k1~r{ zgpub&hDrs3aLQq8I@Al4a$Vc(QEu6c67dq_wq@D2X>x9hS4vF;C6;Y=Uof*Tr_fI@ z#woR7>B(cIP6XHa*FNKBmpKv}N}Kf9kdh(cI6xpAi}#pmaZcRVN}Z0n%pR~lC)C0? qOsdOU&mG~wE(rd}_a>9$^RuxZh)^A>&j0WHx9(GGEB!Cf(Y^y}!%+WFU8GbZ8()Nlj2>E@cM*00HhvL_t(I%cYaQN-QxH zhrc8zqr=#0AqW;5T@ieXEf!x_vCwxAWZ50TDP61tvDg_h$+?AYu6ph6fpCiC{QG?; zMpgMA6M&nW8(pv0?CaPtKX==VuNM4iFL6>otdmhs@`5BLH`I zcXVCHbUG!a#N*>5Aq1Rr<=o%jb8>P5K-YDI5SY*BA02q_F~*QmVjM@TwK(S(#}R;W z9NF2~K~<@$s`xU3sxk}%B7(IR5h(#VX8=-4R8{rO1K6*ZUn_1l8)A&5T1p9H3;;34 z^43^uHRnuKRTyI!hM_2IjNvOK5h3SX66KsRz&{*Cgp?Ahiini1wh67ZY)3b$%H`#y zzP-J%x3`D2mcH+4ng)Q~-Cc%Z;QjrbrfEw1bzO6Hb@hQUgh1DIoSvQ{A}kgQLI_0{ z=N!xBlH=oJ>bj!@d3bmL;QIRd*Uh`QxL`7w6dhzMmiM07Y{qOh z_)OE!qgcVzD5`NZYnJ=Xia6CB_IqUDs?j8&XQF zRx1GdzGt~yevtZx$rw$5|LiKM;+-q#;wQFI)qML*TbrJrqpC%d7$YK5)*L7Ze@(FE kyj@{yZCT}Q@XrK)0J8=a5D+n3E5Z7WZ@~&cj9p}7_%W7SBIJ8Cq`a}dT-}9|bVD*&92@aKd z!)%L4VVUX-JGQ0SzS9#LW>Zq+!E9hD+#NVQb)(p~yY9gCmEv;JeEXoIY*)9Jwu0=$ zAr(sxR+J`jgiDi+9{e-1|#hF6b@=u|Y92;}lEDpvRdo26{yjaX%FP?vR`~Kbh&0@X)@LN$} z`r-6Q_dL@Fh}wbI3ddpazzv&IfJtLI**^|A-wpk}5P-LWNsGJw%$WG*7#PW9@gJR1 z9KOj+k|>eLN0|~?Mujm7`mK87ZnOE&ykp$2831mRN5(kflja~48~R2S8~Ulb$8qsC z=Pm9Xah-=|1W>OTySH_HU$5(W%>)J~5?RYgxlEQxAj3(yq*ZQ~E2>&X?|Y?GDXC2T qQPzOMKYvw5zG5#a{<;4*P2QB`f&PJ00yhAM&2tfntixIiMt%aqB#kcs literal 0 HcmV?d00001 diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_front_active.png b/maidroid_tool/textures/maidroid_tool_egg_writer_front_active.png new file mode 100644 index 0000000000000000000000000000000000000000..700ac5085461bef905ea3edc0c5c3ee36d5470af GIT binary patch literal 824 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 XDnl6uAqImv00000NkvXXu0mjfu;>)3 literal 0 HcmV?d00001 diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_right.xcf b/maidroid_tool/textures/maidroid_tool_egg_writer_right.xcf new file mode 100644 index 0000000000000000000000000000000000000000..fc19a3c27663651d1b2d8dd85075c85c0a4c99e4 GIT binary patch literal 1424 zcmeHF&2G~`5MHm{BrS~yzbAxzBTiz}p5XvNB8n5&q2&eA#BnVpv9r5&5|tY#Bo17W zB5vFe2!w(V?}K=ON(e-U+0;gcmKQ*b^zD56&CJgJdHyKWXT5Uyr}F~2W0%vMO5i}}#ic`)?*#zuMI^@3r*^zzD?%-iqkTQ|2>b_Ur_LI#%Z zpHZ5|^}iEYI^$ut=Z`&oJMD$y{46oi%xLTj-5>W3TrTT_!GOEs*9K+vY3W4yy;R;q zV#@23p-QCV$-8SaZc@j)C`b5r4@M^huyL|EK{l^cBcgw{RfH_lPvuJi` zg`v#=rX3MF(IgTNf~Y+Mh?}!`?~&kqCt|x10Cz;}@PN%*F|#K?NiL87=vcwwn?_Yt zAu4&PDMZsyp;Q6uR-<{h-F|4_Y2B~40D?B3T9YY{+rvmUWGxYNxQIiC1-l#@bU1f- zc*rdt*;9Z03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00I|DL_t(I%cYaeP82~D zM$fIEF48+TB;XL1Gnh^!2GpP=tat}EZVV_;s7R-37=+f@i!h-MOBG0qN;ems1f$zAEcDX^L^gk906bedc7W5mLVdD z2-aG>_gHJO)^h$a;G9EMvDQ*mHN9T11BeJ!RgqF^0mc{r%ChA3mxzdPa%kIq5$OP< z(TFU|co1rgkW#`JLrRGlBTdur=4;~n`^Da9H0l6bTU*TMb5xZd9~@;lC(Aql-g`s@ z?>#X__Kp^g`u%e}cXxLkU@#bvQo?)B%crk68=ka1d+$jp@$=6q+k+Qv zZFzaQ1B4J*T3SL?X_|)JXM6VpQz0UR5P06-A%xJ*OI_C;;Ns$frfJ$+AKG!wwe>8^ zn9XK*?{UsC9*;YTo12>)PQS78WQ9D>xxT(;ZDXyCZ>?oG98weoF-E4-DH}xrfIRj) Z{|C@K7v8y~jp+aY002ovPDHLkV1gmKEJy$V literal 0 HcmV?d00001 diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_top.xcf b/maidroid_tool/textures/maidroid_tool_egg_writer_top.xcf new file mode 100644 index 0000000000000000000000000000000000000000..6490fe7ded598cf3793ce3f761c27eb637ff380d GIT binary patch literal 1397 zcmbVK%Wm676eX3QNz)o}Us-j*rL%BgTjFCx!HZ^LbWxzcV9SzBM79h|MdNi=0SYL! zL=HzJy!9q%fdX}9E3peS-;!jVSRy$iYI?6K6)LI#K`wAOhxf&ENLHNPeeGeftd*T= zNr70L0QqMCRfWqJfScbuQ4|Ekmw@YlYk)fwj(uN2{|1~36!rrO0&)8Psedy69mV%B3H6sLgLC?Q@QvPh{phEc>{qO2@B;A> z0Kbd`+?;T1{dmIRP`;kww`TY!GyKyTzA(dY1INA7xBhcW#trdlAC8UIs2rm~?o zbBN6llU(NU_(r}u4}U*@dfGkfHhY)hnUrDHGL7t-X{ZLxt%p)}39*Q!=Ve|ut*(@3 zS(6m<`dZ%RmJI_mUREb6Ik5`4teG=#p`OcFc}q78#mYUE@{cSbif-p~O3o&*;KBwqmTuc? zuoDC|&8$^0iD_7%2?TV*-=2l1y|ZV{UN`K?+j4P^%a%{Q))DnokG7A|C1XDG-Hz>u14%-h{;8M@)piA#(52`F= z0d>)3%VjD%@xykDwmn?vwrhUJcRjD_x6x&bu?KF@X+LNO3|$7G#&?6@2zH`N+VVrn zsON*G_jTFlN!-6mVl}1%i7tiUf=5F+j1rD6`-vD0qpM-cd5WS$EF@3fBuOj;y1a^H zER%?j`kbRnF%&OSkw!@z57A}(HioJgi8P7OWj_+CIN_r~KN-ZhFdF>DhdheoKluP% r_Jz2N(&6B8kP38}f*KyB=@slmmr0+G5|P9lG|hFXEJ*bOu&DeE%#%B4 literal 0 HcmV?d00001 From e80ef175b1c8294f67df54571ff32c7bf667db12 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 22:58:44 +0900 Subject: [PATCH 08/10] Add texture to egg writer --- maidroid_tool/egg_writer.lua | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index e8a3989..bb98c90 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -56,11 +56,41 @@ do -- register egg writer local tiles = { ["active"] = { - "default_stone.png", + "maidroid_tool_egg_writer_top.png", + "maidroid_tool_egg_writer_bottom.png", + "maidroid_tool_egg_writer_right.png", + "maidroid_tool_egg_writer_right.png^[transformFX", + { + backface_culling = false, + image = "maidroid_tool_egg_writer_front_active.png^[transformFX", + + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5, + }, + }, + { + backface_culling = false, + image = "maidroid_tool_egg_writer_front_active.png", + + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5, + }, + }, }, ["inactive"] = { - "default_stone.png", + "maidroid_tool_egg_writer_top.png", + "maidroid_tool_egg_writer_bottom.png", + "maidroid_tool_egg_writer_right.png", + "maidroid_tool_egg_writer_right.png^[transformFX", + "maidroid_tool_egg_writer_front.png^[transformFX", + "maidroid_tool_egg_writer_front.png", }, } From a5d83f0aa752d96105838df5d1aefc71c1f3bfb5 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 23:03:16 +0900 Subject: [PATCH 09/10] Fix egg writer --- maidroid_tool/egg_writer.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/maidroid_tool/egg_writer.lua b/maidroid_tool/egg_writer.lua index bb98c90..e0a9097 100644 --- a/maidroid_tool/egg_writer.lua +++ b/maidroid_tool/egg_writer.lua @@ -224,18 +224,18 @@ do -- register a definition of an egg entity local length = 0.15 local new_position = vector.add(self.center_position, { x = length * math.cos(self.angle * math.pi / 180.0), - y = math.sin(self.angle * math.pi / 180.0) * 0.035, + y = math.sin(self.angle * math.pi / 180.0) * 0.025, z = length * math.sin(self.angle * math.pi / 180.0), }) self.object:setpos(new_position) else - self.object:setpos( - vector.add(self.center_position, { - x = 0, - y = math.sin(self.angle * math.pi / 180.0) * 0.035, - z = 0 - }) - ) + local cur_position = self.object:getpos() + local new_position = { + x = cur_position.x, + y = self.center_position.y + math.sin(self.angle * math.pi / 180.0) * 0.025, + z = cur_position.z, + } + self.object:setpos(new_position) end end From 20ff55492d7064ac2475cd281e104a4cef720e07 Mon Sep 17 00:00:00 2001 From: tacigar Date: Sat, 17 Dec 2016 23:06:00 +0900 Subject: [PATCH 10/10] Fix egg writer textures --- .../maidroid_tool_egg_writer_bottom.png | Bin 550 -> 603 bytes .../maidroid_tool_egg_writer_bottom.xcf | Bin 1403 -> 1421 bytes .../textures/maidroid_tool_egg_writer_top.png | Bin 691 -> 728 bytes .../textures/maidroid_tool_egg_writer_top.xcf | Bin 1397 -> 1430 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.png b/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.png index 4faa689fbc5a51dfcbaae6b90dc34960c87a32b8..a822194b8442c62596cbea832907fe9ba258bb66 100644 GIT binary patch delta 489 zcmVo5!jhoYjyO>{w*U*KzF!6vAgM@s+~5kv%c2N=)a@BZ%hx(IN+URjofmzNjZoz~hY zthF*t6TNr#m2)P>$nAC`iU>Jp+?~(QPgE5%qqWB2Z~)-z>kD_s-4PK~m33Wze+Vv@ z3-|k-_xE>po!`tgh%ikPwN_LWRVC+)sJM0p^{R1G;nv;bwyQ)G2-sjT4}9uKA(s8JkRvrX{}*qEX(px z5Ru`yk1@tbt(Bbf7-g-M7~{xjp64He9eZ6@dhdt`r_%|5)9HknQA(k;S4K(+RpsO3 z1K=^nS}X3(+uIuy=>`05AZhlrPz(lrF!0Tx(^TCPV}gp=IX)=6MFddrwLU5dpwji-=&Y zrIfss1Bg?V?a5x+QI!Jrbd*AIf+g}y{a?a$OdqpWFRFz>EP*wJQ#~6c% z^j6IOtS#-FGuB!{2yENdt;84se^}S`1JGo)fEs9H$~kwCXI zGRAN|pQ*J{NjccE&c8)9Hk& z_N_SQ5D{Ll*Qds2;dZII+jN82fgbcX diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.xcf b/maidroid_tool/textures/maidroid_tool_egg_writer_bottom.xcf index 1b8c5d4cda71fae36299cbcb5303d1cf27a28ea7..ad47163596aedffac3b444aef87179ef8d04f01b 100644 GIT binary patch literal 1421 zcmeHFO>Wab6no}^hVP*fg3W!jE%gq- z7~%oi&D5;u*<=z;Q|yBY-qZ7_pGHIbMUr0F?auM3iR@;n$)q1g zBAzEhqhU4yx=5Gf$X?9G$&hW+Q9PK9XLFloPR!%;zFn)un(9BLpUUs0<{Wa64+TSC z+>bfY&9ATDetG}VL@m=GHqgw?T%&E}+@#*hIXZZ}!narW?G=7!h3~BJyU5MB1vZhG z`3#CzQLF_eD|=H&ie+Q2wKU0yT(jPo&SxN&d29KPE|9&GZZ~N4LK1$`Z9-H-HFe$h zwUVmY0CJ)!^E~cQ_lYY*3%bhXF2k=}rG7|2X;F5l$15&zUuhrUSaB{YqEzOrqMi{r z@+sxQDeY6IrcSLJXTHZdb%n>7+iVeXBysqCmzSP0p+f-aSDC{PnS1CksR#+A;GV#DXn9 z0sp|qRQ$zoudz`OVZ#z}r8D=;xsSQ_OqwmPjO!>dl57!cV4WJs9|Ck8mPden@ln$d zV2=TJYCNqy<~@P@G5B^0ZJj7zF5^`Rdkup}avjggcy7GS%1dKB3C}UosZz7$ERCIX zoy}2$Y+a*8xmmMO^+I5UYQeeki||;(w@3|J*R}&HdmX z-TQX);r7!PjJ9wAy9>aZQGorLW9q${gVUaE@q;aXe~UlZ;_WSd2ps!1wg&{yLu+0| zGYd$q>P-P@#)jP129v>Rt@XazsCU|pFV8~%)E`g7FpwuoN!OENB&92bD}+*0k1~r{ zgpub&hDrs3aLQq8I@Al4a$Vc(QEu6c67dq_wq@D2X>x9hS4vF;C6;Y=Uof*Tr_fI@ z#woR7>B(cIP6XHa*FNKBmpKv}N}Kf9kdh(cI6xpAi}#pmaZcRVN}Z0n%pR~lC)C0? qOsdOU&mG~wE(rd}_a>9$^RuxZh)^A>&j0WHx9(GGEB!Cf(Y^y}!%+_PSEG%G*K|}!Px{merb-ec+e;*$+ z8jaZA-o~jar>Cd9ojk{%dsG!wC8dOj;Jv5T3h^oC*icI0#*JsZ_`U;x0a#sKCC2!h z#TX;bIjptpznN=7&N+r5F&d4o1w@2l7}^2vJ=R(P`o8D!yNZbL->X^8T8oGvA~S)m z>j)trBGg*3b_U5>ORbfZ5~UO#f4{4Icsbkax^Ct`MA+Qir0;uFmA%)FzMtZprIbPl z0b>jycuFZe+9{M$SX*1Wc2H|&Zf*|e9FKMipTB(~=YlbY7$d4m-w(~YbB-9}tYuXt z=S%iZI-NG)4!{_LsuE*t*|$M)j=t~7e>t~XMTDI5 zbqZbAHIemX?-g0;);~p$*b>I_2TLCwTAMG|tb@^UrvT7$Z4nYOTMwaCmq~N{O5^ z&N+-R&Gr@C7$cL(1m_$fRRoTXjxff|AdbglUjKN{^71l^i;J9`oN#k=6YqVSg@c0w zHa0dWrEq?J&aJz5uYigIsA_w8fBs)3@@qO*>z@a2C+7QgkN^Mx002ovPDHLkV1i1s BAj$v$ delta 578 zcmV-I0=@m%1+xW^R0j<)6TSYq=8;=0e-}waK~y-)rIXE06hRb5&#j*>(mOUJ;1HHG zm`)@H)Sx7+cn3Fb3?@F2iOR~yU}+FAx*&ryiH3v>^8~P%p6;%?E(W?EfLh*4o%-&n zTcWBwW;uZ4<71snCakWm;=Skg_Le-)F~%Sws4C;}n4&0f&T(~h#rpa>2L}h@e*h+v z37=+f@i!h-MOBG0qN;ems1f$zAEcDX^L^gk906bedc7W5mLVdD2-aG>_gHJO)^h$a z;G9EMvDQ*mHN9T11BeJ!RgqF^0mc{r%ChA3mxzdPa%kIq5$OP<(TFU|co1rgkW#`J zLrRGlBTdur=4;~n`^Da9H0l6be_LD3=W|q*A0HfLIVa0J0N#5<1n)gDM)r;tj{5z6 z2T)Z)2zc+={oL^T?=NCpB*?Oi7$bFEW36qIg%CPG(=@~wnayUz7}@UcP*oMGN=k_k z0>+p&OP2hcnh-npcW Q=>Px#07*qoM6N<$f@U)m@c;k- diff --git a/maidroid_tool/textures/maidroid_tool_egg_writer_top.xcf b/maidroid_tool/textures/maidroid_tool_egg_writer_top.xcf index 6490fe7ded598cf3793ce3f761c27eb637ff380d..739ba382a570708e444f01b8fcb8bebfad09c3c3 100644 GIT binary patch delta 795 zcma*lxl-If5C-7UlG&kO1a_slw7~n=4tRrg>IC+X=8}LHAh4@!yvuS0yo+;KNpnfE zhQx_oMb%VKb@F%hS6#hh@4tN=%_7i6U=+$8_yT@M07TpKADgS|^=5N=^HAOZP);y{ z2V;~ZC_YvIY$!$uL)y~><23*`6PQj@I8IZG(@g}<2qMRn>_ZG4J&mG=1K6V@2=UPb zqMxJaj!?Qs@gaf`&C=T;FxiK2$ePj=CPTlC5ut<}CI>i9h5>U3_vjSE1Ok*?foL6L z0w#n`Kuqu*0QV`LP#mYzahkvl0B0~pQ%n#dV=`Tgz_0TAU3tA--=A*RP!;YD@$ z!LUCV+BYDq1ZRsS&vTw#1_UKI7fkgk7a}06SWy;iSrk?j0YP$kspOmq=2Spfu%2Hq zCN5Tt2L!3qi4wDO&KNHOLOy3~$SPIA@_>+WsiZv57b4380%Iqt6f9?-c^(ilAwR98 zT7Ar<2ndB(DUlWBvdCFLU>Prk40^=|G6R6o~CP*imk1k$@{mO%;gkIoMX(G+Q7fg0opRNN_Lo5PME` zerEbD5XDr#=F|JIXZ_Pp@2^(Z@awMqa(BD$4&C~AY7YQyOfZV)7)6LD%NC%clu(jp zkfoS(0EZaUMV8L9+>+dXSW`ro1i!=>Il2Zo%~L>2oRURM$R6N!U3jEIl&1zr33zTF=W_v>TV9^nN%#w-M9t75}h#CW+4PAP>HRSk8;MQ|2e zwsp0s8!MVnC7Ij`{(*DmWN>aOU|U{^wh$sXWi8(}vZ**@b#Ste%wJ_I8(sxwQOQW| zL|YcTWMQycm2X5XD#l)mGB^tpv)Z^}jnXXA53)ifJF8l1ckEti}LAN8-!-WuJX zjgB-QATXV?&Z-ecWmYygd*d#nI**gJQ^<1Kfi=I4(ar_uS%C(l?4`FhINj)ePHs|0 z>oGX>AMLO1;wGblvsW&1J9`;=Gw3j=h97pcO6%`-2+ZEOlbXii^lq43a8AC*s%bj= Y(cm<_y%=Y-^-+&HXU`$}k9R%$3wU4KsQ>@~