From 1ce5b1c3ba3719feb54a449e32265048c293ffbd Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sat, 9 Nov 2019 14:32:59 +0200 Subject: [PATCH] fixes --- ability.lua | 2 +- book.lua | 27 ++++++++++++++++++++-- crystals.lua | 6 ++--- register.lua | 32 +++++++++++++++----------- research_table.lua | 2 +- textures/magicalities_crystal_gui.png | Bin 2213 -> 3546 bytes 6 files changed, 48 insertions(+), 21 deletions(-) diff --git a/ability.lua b/ability.lua index 55a36ac..97af208 100644 --- a/ability.lua +++ b/ability.lua @@ -106,7 +106,7 @@ function magicalities.player_learn(player_name, item, recipe, silent) ability_n = no_newline(ability_n.description) table.insert(magicalities.data[player_name].abilities, item) success = true - msgname = "to " .. ability_n + msgname = ability_n end end diff --git a/book.lua b/book.lua index 39d15d3..4aee149 100644 --- a/book.lua +++ b/book.lua @@ -35,18 +35,40 @@ local function book_read_page(book, user, page, ptype) check = magicalities.player_has_recipe end - if not check(uname, page) then return book end + if not check(uname, page) then return false end local chapter = "#"..ptype..""..page if not page_cache[chapter] then - return + return false end minetest.show_formspec(uname, "magicalities:book", book_formspec(uname, chapter, 0)) + return true end local function book_read(book, user, pointed_thing) local uname = user:get_player_name() + if pointed_thing and pointed_thing.type == "node" then + local pos = pointed_thing.under + local node = minetest.get_node(pos) + local ptype = 2 + local page = node.name + + -- Special case for crystals + if minetest.get_item_group(node.name, "crystal_cluster") > 0 then + ptype = 1 + page = "magicalities:crystal" + end + + -- Open a page instead + if page_cache["#"..ptype..""..page] then + local read = book_read_page(book, user, page, ptype) + if read then + return book + end + end + end + local meta = book:get_meta() minetest.show_formspec(uname, "magicalities:book", book_formspec(uname, nil, meta:get_int("scrolli"))) return book @@ -133,6 +155,7 @@ end) minetest.register_craftitem("magicalities:book", { description = "Magicalities' Guide for Witches and Wizards", inventory_image = "magicalities_book.png", + on_use = book_read, on_place = book_read, on_secondary_use = book_read, _wand_created = function (itemstack, wand, user, pos) diff --git a/crystals.lua b/crystals.lua index 30d1261..3e961b4 100644 --- a/crystals.lua +++ b/crystals.lua @@ -101,10 +101,10 @@ local function crystal_rightclick(pos, node, clicker, itemstack, pointed_thing) return itemstack end - -- Check if the player knows anything about the Element Ring, if not, surprise them! - local element_ring = magicalities.player_has_recipe(player, "magicalities:element_ring") + -- The player learned about crystal tapping + local element_ring = magicalities.player_has_recipe(player, "magicalities:crystal") if not element_ring then - magicalities.player_learn(player, "magicalities:element_ring", true) + magicalities.player_learn(player, "magicalities:crystal") end -- Check if player can preserve this crystal diff --git a/register.lua b/register.lua index a58289e..5cf2884 100644 --- a/register.lua +++ b/register.lua @@ -226,9 +226,9 @@ local recipes = { }, { input = { - {"magicalities:tellium"}, - {"magicalities:transterra"}, - {"default:stick"} + {"", "magicalities:tellium", ""}, + {"", "magicalities:transterra", ""}, + {"", "default:stick", ""} }, output = "magicalities:shovel_tellium", requirements = { @@ -242,9 +242,9 @@ local recipes = { }, { input = { - {"magicalities:tellium"}, - {"magicalities:transterra"}, - {"default:stick"} + {"", "magicalities:tellium", ""}, + {"", "magicalities:tellium", ""}, + {"", "magicalities:transterra", ""} }, output = "magicalities:sword_tellium", requirements = { @@ -428,6 +428,8 @@ end -- Treasurer mod, add Research Notes as a form of treasure. if minetest.get_modpath("treasurer") then treasurer.register_treasure("magicalities:note", 0.35, 5, {1,3}, nil, "tool") + treasurer.register_treasure("magicalities:tellium", 0.8, 8, {1,3}, nil, "crafting_component") + treasurer.register_treasure("magicalities:transterra", 0.8, 5, {1,3}, nil, "crafting_component") end --------------- @@ -442,13 +444,6 @@ magicalities.register_recipe_learnable({ default = true, }) -magicalities.register_ability_learnable({ - name = "magicalities:crystal", - description = "Crystal Tapping\nExtract elements from crystals", - icon = "magicalities_crystal_gui.png", - default = true, -}) - magicalities.register_recipe_learnable({ name = "magicalities:table", description = "Research Table\nDo research about the magic world", @@ -467,10 +462,19 @@ magicalities.register_recipe_learnable({ default = true }) +-- Crystals + +magicalities.register_ability_learnable({ + name = "magicalities:crystal", + description = "Crystal Tapping\nExtract elements from crystals", + icon = "magicalities_crystal_gui.png", +}) + magicalities.register_ability_learnable({ name = "magicalities:crystal_preserve", description = "Crystal Preservation\nAvoid collecting every last drop of elements", - icon = "magicalities_crystal_preservation.png" + icon = "magicalities_crystal_preservation.png", + depends = {"magicalities:crystal"} }) magicalities.register_ability_learnable({ diff --git a/research_table.lua b/research_table.lua index 306f813..ac5baf6 100644 --- a/research_table.lua +++ b/research_table.lua @@ -44,7 +44,7 @@ function magicalities.researching.generate_formspec_list(list, x, y, w, h, index end if pages > index + 1 then - i = i .. "button["..(x+w)..","..(y+h-0.25)..";1,1;dn;Down]" + i = i .. "button["..(x+w)..","..(y+ty-1)..";1,1;dn;Down]" end return i diff --git a/textures/magicalities_crystal_gui.png b/textures/magicalities_crystal_gui.png index a4f956fef20ffe7ee99aa9f60251dd5e41dd3b70..dcda973bcca3c8ee37b89d6b8c3763afd5074295 100644 GIT binary patch delta 3497 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 Xyti#tPTu7U00000NkvXXu0mjft`KJc delta 2153 zcmV-v2$uKS8>JDDHwgy-2LK1qNaRV8Kp=kz4GJ6xR{i7v00<>XL_t(|+U=UliyYM# z$3OQ`kFI{rjLF0Y4hf8+Q5T}13qhiPfjb2s3(db^f(v&pUAQz55VCTmNI-DmA|N8! zBqj@^f(tQZOlGF%)!p^D_x=`L-Q2W2c{tURm|q{bRL@lP%st=pJ?EZB!Axc{lbL_a zWF|A2$xLQ4lbOuq|4+od-ar&Z6Zep&se2#**iFGZk^KNc+y~0<_Ke#P5X3$xF79v- z!dJY!x@ogPOi_9ND#k54;l3DCe0)s>1TjVBC#`V+hD(m!x8*X^20>3zd08&C3jlcc zRr#4x@uFO!1i?=D?)}4n3Cb&PX%Bw{H^zYB{h<8pN`*6T6&?t-Y8L1zSzeV&1wdF{ zrAP1K^TYe0x0f8~m1{gM2*5>AB&q^ISIj2qSv3S|<%-JR zB1(a6?|C=I99ty_szU4gmXCl0XaMbxK1$nfzipal&+5bjr4F=#`42uw=Z}9KWA4Zi z8c#oM!tcM=!gB{R77RzRz!-C1Fkn2I`_^wg@`#-~dX(1kGT|FXwA*hc<3RLQu%+N1VDQGtt^47 zk^z1Y49m^O&XM$bG@ct**Vji8JyMD&Nr(;{AZ)h@r5yPD5J+p$ zJ3FJl7oR+t4&5oZMLhV|tv6jk^uH+qI&y^i^Uu@jbZCA4dD{H;TN>6u#P7bFCa=Cq;vI+KSY;{hhhy*`r$Ckwr73Y3lDz&p^&lYW z^@xjNKw}}$NrEm4M47}51DUdxz*?d(B!2TvYR^7P?YG|sz)eH>y~cn^l^Rlll*pn$ zUA>BKHqng+dSzu0$)!XJF`}`A!Oum3>h}k}f9x1xvq^v0=@4GKc2fWx?=FdZ$pGio z_oi%IUHGO5;BSqfBgkluI%0; ztfE77#{i^h>dHXlCIC>BMN9w7FQaZ4rrlPHZo5rSYceUxwWe?mD+EsKQAIZrYjM`% zf&kNQW4eD`ia-A(|K=MtEQX2+W$`_C0pI#5&;_>6oQXCrUSzZ1XUkf)jiF}@nK9(f zVWh+=H41*VEb2^AkZVnrW%O59>HhHt-3u3V59p7z$0}pNU6sRHYq3ie_>W`phaYtC z$}1*pGzhgObZ*chQwk~Nz@M!hG(ChM&vW|5u-$)bveE6bdg&53KK?lR8@K^HupWei*K9Zn72xbc|uk7Qmil3|6{9IeC+?z$mjjPaSU+Ym$ovM7W)c+lup3%#%~NO+_~ zWf^~}+XZ8=N|8%RKg-xkQ`Uvx`nhwgoH`Y)l-6G_LFjpIV5^!H=n9U(VWU%cEErXU zr%pw2tCdD`b3{o(;2bJV5m|;&3aK@@F?5|{tKVm1Wrg+6K8w~$7Ht4KCH3<$<+&#e zn7{&dNlr#==yp+$KI-(LLnv!eMS(O1R}_B~wHp1RU^~xQ?{v8S-FK|~@{3*pu6w@U zo6r}mWKvW`L&T2-qTFa&T22GOg$p`dS~Agd&k<~Iqq|)Yf-Ff!ZLlpN=;S$TUw=Ka z{$}|%(rH*`Rw>d(gB@$>{Qf&PPM=nPU%P)M zhmn7y45*VLe`RyRJuzTHa%4Rwq+X$<0e$*(q@H;u6^o0QD59$r!H@x4Tim#CL9cqW z?|Rm^(@?$=7q|rod1<|y2B7E9<6eA`?BGEfMM0o7rqf}2b(J+>b(g?rn8ILm&y%4E z36ej{o0K-2%a^rz>@kxC0sWmFw&#E6*|>CxwNE~YR)L}aPo4Ty-Cn-UkTfb=Wesn| zB?E0q_3e`S+Y^G{XsCMMz8|oQD~t!m;kc_?<_W`*_|RR3Q{mJ*_T04SUnv9bfC-0h{QNgXEmFTW>v8xY2?lS*v%L-~CH;5I<)mOei??+V`ngga@vJXiqS3W)ty fd?quQ2>|~CGKkHKV=}ov00000NkvXXu0mjf$ukex