From 2d1694e735ccd7277a83b2da6e77fb63ff6ca2c6 Mon Sep 17 00:00:00 2001 From: BuckarooBanzay Date: Fri, 7 Jul 2023 17:36:34 +0200 Subject: [PATCH] visuals makeover --- entity.lua | 28 +++++++++- preview.lua | 81 ++++++++-------------------- textures/building_lib_autoplace.png | Bin 5199 -> 5406 bytes textures/building_lib_place.png | Bin 4931 -> 5160 bytes textures/building_lib_remove.png | Bin 4939 -> 5140 bytes 5 files changed, 50 insertions(+), 59 deletions(-) diff --git a/entity.lua b/entity.lua index 486e825..9497095 100644 --- a/entity.lua +++ b/entity.lua @@ -5,7 +5,7 @@ local active_entities = {} minetest.register_entity("building_lib:display", { initial_properties = { physical = false, - static_save = false, + static_save = false, collisionbox = {0, 0, 0, 0, 0, 0}, visual = "upright_sprite", visual_size = {x=10, y=10}, @@ -19,6 +19,32 @@ minetest.register_entity("building_lib:display", { end }) +minetest.register_entity("building_lib:cube_display", { + initial_properties = { + physical = false, + static_save = false, + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = "cube", + backface_culling = false, + visual_size = {x=1, y=1, z=1}, + glow = 10 + }, + on_step = function(self) + if not active_entities[self.id] then + -- not valid anymore + self.object:remove() + end + end +}) + +function building_lib.add_cube_entity(pos, id) + active_entities[id] = true + local ent = minetest.add_entity(pos, "building_lib:cube_display") + local luaent = ent:get_luaentity() + luaent.id = id + return ent +end + function building_lib.add_entity(pos, id) active_entities[id] = true local ent = minetest.add_entity(pos, "building_lib:display") diff --git a/preview.lua b/preview.lua index 11d9907..2d4bdb5 100644 --- a/preview.lua +++ b/preview.lua @@ -2,15 +2,6 @@ -- playername => key local active_preview = {} -local function add_preview_entity(texture, key, visual_size, pos, rotation) - local ent = building_lib.add_entity(pos, key) - ent:set_properties({ - visual_size = visual_size, - textures = {texture} - }) - ent:set_rotation(rotation) -end - function building_lib.show_preview(playername, texture, color, building_def, mapblock_pos1, mapblock_pos2, rotation) texture = texture .. "^[colorize:" .. color @@ -35,47 +26,20 @@ function building_lib.show_preview(playername, texture, color, building_def, map local size = vector.multiply(size_mapblocks, 16) -- 16 .. n local half_size = vector.divide(size, 2) -- 8 .. n - -- z- - add_preview_entity(texture, key, - {x=size.x, y=size.y}, - vector.add(min, {x=half_size.x-0.5, y=half_size.y-0.5, z=-0.5}), - {x=0, y=0, z=0} - ) + local origin = vector.add(min, half_size) - -- z+ - add_preview_entity(texture, key, - {x=size.x, y=size.y}, - vector.add(min, {x=half_size.x-0.5, y=half_size.y-0.5, z=size.z-0.5}), - {x=0, y=0, z=0} - ) - - -- x- - add_preview_entity(texture, key, - {x=size.z, y=size.y}, - vector.add(min, {x=-0.5, y=half_size.y-0.5, z=half_size.z-0.5}), - {x=0, y=math.pi/2, z=0} - ) - - -- x+ - add_preview_entity(texture, key, - {x=size.z, y=size.y}, - vector.add(min, {x=size.x-0.5, y=half_size.y-0.5, z=half_size.z-0.5}), - {x=0, y=math.pi/2, z=0} - ) - - -- y- - add_preview_entity(texture, key, - {x=size.x, y=size.z}, - vector.add(min, {x=half_size.x-0.5, y=-0.5, z=half_size.z-0.5}), - {x=math.pi/2, y=0, z=0} - ) - - -- y+ - add_preview_entity(texture, key, - {x=size.x, y=size.z}, - vector.add(min, {x=half_size.x-0.5, y=size.y-0.5, z=half_size.z-0.5}), - {x=math.pi/2, y=0, z=0} - ) + local ent = building_lib.add_cube_entity(origin, key) + ent:set_properties({ + visual_size = size, + textures = { + texture, + texture, + texture, + texture, + texture, + texture + } + }) if building_def and building_def.markers then -- add markers @@ -96,15 +60,16 @@ function building_lib.show_preview(playername, texture, color, building_def, map z_rotation = z_rotation + math.pi/2 end - add_preview_entity( - marker.texture .. texture_modifier, - key, marker.size, - node_pos, { - x=marker.rotation.x, - y=marker.rotation.y, - z=z_rotation - } - ) + ent = building_lib.add_entity(node_pos, key) + ent:set_properties({ + visual_size = marker.size, + textures = {marker.texture .. texture_modifier} + }) + ent:set_rotation({ + x=marker.rotation.x, + y=marker.rotation.y, + z=z_rotation + }) end end end diff --git a/textures/building_lib_autoplace.png b/textures/building_lib_autoplace.png index 298fdb57c33bcb198d2475352daac094d4d472a4..6a58233014e38f9c2cda07e6093775cc6b630a0b 100644 GIT binary patch delta 1634 zcmV-o2A%oOD4r^iB!7!~R9JLUVRs;Ka&Km7Y-J#Hd2nSQWq4_3004N})mKq=BPk60 z=M;McBmok~p`m$iZm`GS0^_zlu_x^$A3IIbfDlrllIXoB6T;_ElO4;<`Xss^KVTtVa8$>z9L>ll8>{V07*w_a} zJlg=;E9Yq_UIKauuJfxZ0~7B;;_(()C}sSL6!dy|J1Eke$XpQ78F&vW0Rc$!a#Z{g z%=_5fV)WuUbAK!kCw(8vcdXqKv5xtPFG&oqZv=-!%R-cakshr}~&~-r$KYZ`m z>f!l8Ufbbf#psUi-kbG#Xq=*igjl3?sOwSY2zuLy;@p+c)F+3mH4H|}Xy%Kr$f@Ql zDs96!6NCFsff^O+w9md$1;oHRD|+VYSfcsS|ajx#0t20R3}h)0{x?d8W^Fzf*NOlukH6|@G4+1 z&M+GeSp4QLCbmeoQ?l?Z_}5L5u2CGZ9Y zC`N7o$$vp4fgDr^d}EK&ROQGQF>X}}PNF0ft%0EevOB+WduHB!P&%1E1(7#K8``-4ad35fGuX=YL!dF>)1I_8`KV$xHs{O{`i1Lhe40w2~Z zQg;*g;_Sr8R*)G8FALZ}s5buhW~51KS2DK3tJYr(;v#j1mg zv#t)Vf*|+<;_Bk0=prS4mlRsWc*k)M?|tvb-Ftx0s4&gy8V5ApHq*(3n9Z$$B!1+&;_(~jqRRsB88tKMdEzLsSnOb>gIUSch^L5Ss-{zaA?vZqd5g1Fsj=2Q z`3u8&ePx;Jw1$zyB9uqXHXo+I3Par0G22;~#SU61fy|mBGldfGRY|t{?ml zet&0c6(%RVPT>U5{o*(uBS2^uXx1I)``B@sCqVESxYFDHY6F=0B)#6&Vn;w^8@RY` zYswyQxdRM58L}z6QjnHVC;;zg^i4US{}$+7^KxsQH8C(PHaBH4Ei_~}H7z(e zHa0CcFgRp0Wn(vFG+{84Aqb`pI5;;nG%ztYH8?UdI5)G^2tNXoF$!EHWiVkdHfA(3 zEigAQV=Xi_IAJY0F*GwRH8*5oGC4LiI5jw9ld%d#6EiI^H!UzXR53R?Gc!6fH!CnQ zvk41p2o^l#Ald)`00v@9M??Ss00000`9r&ZlZq1_3g-t04kSFbG2p_rLRVBb}<{qh$kynGgaMz_DTGfh2wL!?^5EcK}W0000907*qoM6N<$f|>g9Y5)KL delta 1588 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 diff --git a/textures/building_lib_remove.png b/textures/building_lib_remove.png index 970e99643ef37f2c4158b6d8089e6c49b5252e06..8150a486ed2a74ec96c85c0cb5d1f7159875d9fb 100644 GIT binary patch delta 1612 zcmV-S2DACgCX^_UB!7f@R9JLUVRs;Ka&Km7Y-J#Hd2nSQWq4_3004N})mK|~>?jQU zXBD#qBmol3!C=mr9nA8lu(7*4>74ZI<6e{SkcCvJB%HYQzkj>?2M_z4T!?BZr{wX3 z95NS7%#_2k3W&xJoGH*$BrV2A{x?90qkzCw;U&2^qm=zq{Z44s||X7Tc(lqp|s z<;yh4_SMitAhdh-ZEl!`geRh~uj@pVvgysyTAiN56xroBh;oXFG@uXcRa3^?*at;C z+W^`t=gm;u19}RM^`XkZ#H)~a^db|bj9-z0QTN_Kk+y|MKp(}nz$2tb;rqvFqC zUdQGVqaU6}j(_Fhq_0EyinU9E+~&tQqaWlm4Nlf9%@=Y@t54^6S5EOTbi9z$4_|w> zdV0Q*=XSc7F}k9=_hx-NG)_@MLM+le)Nzz;2EAoOaod&9)F+3mHB3g!Xy%Kr$f@Ql zDs90$6NCFsff^O+v~FXi3W$MMR*cNmv1~#ENtvsRWPb>wQD>DbO$-@Rw;T$>Cl=b= z=FMFt^Ue82P-TKK!j_ktdsMOaQAXHer7;G=zg2Co7J z;}&Ma0gGSUZeodaNiNxl7AQuHd)1S+X#gRD>j*F;V8ADmNC}9PS&0xx13?AQSpqL$ zfMVnZkbfLR639Vyz&G|NZK@o37voly;83OsMQdQFfUFQA@<)Rqhf0(fVvH$jw3uT_ zl1AmFq-k8wMMZ-~O{!{6vlbHz7A={YS+Ev!Q=eT@^H>bAo#_uxc26YcI_no(UthMo#s2gK@8IGWO zL4Wmi?S&0L`27Any5AHY9sd$TvOaIiJ-I>Fen0f?Jsg+Oy@%s6y7zEgM)w|$3k>%e zJogMeh2wSlf6b%Ua9r(juR{20)_nra%SC(7tb2{4S4-r9ly&dnc&tR8DjoO!mG*3{ z{gNc^{VVOUT6;KIoqgyt;$Fq^?W+CIy?^#68Ql81o(az=e_*v{v3U3-eN#NB%Wo4 zX%lY{PjA`==Y8TRE6FPHIq{fD7bJe3QNPu~_V2rGr_?)QG2u zW2&Z8eNkl30Rtsb2#?009ShWR0Zf2c8txKGvoip*qG$QD+IM{b0000< KMNUMnLSTYURPX@+ delta 1554 zcmV+t2JQKjD9a|0B!9JfR9JLUVRs;Ka&Km7Y-J#Hd2nSQWq4_3004N}tygVw!zc{> z&nfl@Na8~r2ZNc}8|?A-fw7acP3y!l6Tm{29(oeAX8rHqX8ys$l-M{QHKY(M9+zC= zjEUOqSw>IRjefq^eexhT#{xqn7-f4+Jmo9onA3bu(+TbRyMLj>Q^w5S7IL2Q8s`bVqkzLhb9-qNEuz6xm327|0sOnOUbYO^iKscH)< zZNWSdgZoB~DrIW4jvmc)d>`qKz|>g21cmOp!yNuy?uQ;uL1`B z2(w~?*)C=?v3R;Amkgo>iXP)u^%UzgfDpm82N=|uBO6FO1t5ydkqCiQ5R?I(#qk0L z$a}5;$$w5HfE-i@eB+x)LzO*mVw|etjCctsS_MNHWI5-NKhY_2D0}hFdmnuC>XXkw zLa)3KV(7KUU-qk zEq)10Ty#lh$pz_CT=6B8ShS>)D_5x~@EU5YT7Of`E3HVS)vbOFYg~0rYi>xjCe1b9 zLW`zpOD!L)OV&CZCZZc;O#gFi2q7L5pDs!e&capj9y#2&l?YBf3jBRDu zgMVrT)ra*}Gi&bG>(kNvrEqrq-B4T3fElCt0GQ2C)8BCXu=->)Z$tRv&U^yR`>g%o z&Rj;*vhQDEYps;hkj}?S%Gzvi5D&ynAdsJw~o#GOrcFa~{oWg+=fjpSe<~_xQ|}LOsRWtN6^7LcIrIt`zEL z4*xIi%x8|Zt5^1&yFV_-m#hD6Ncy>8U%#^PHx>RlHva?TuPaevv>mOJu>&1{9K~Nh zq@ooC3yL^os7@9{MI5yXMW_&Jg;pI*F8zWg4M~cNqu^R_@ME#+;Nq;SgR3A2etx%`#GnxRA-N3ZYkYBY-{xF(5HhpA*F- zJjd5Pe0;r&@htCie~um{XEMNlClJpv-LQx^h^IF#o%23%gcT))_?&pmpbHW|a$R=$ zjdQ_aKhKO9>C`-NgjguFvE0V2XsEe3JSuIyt^Pc>L;heUz%ypW> zNMI355FtQD6(y8mAx5i4iis5M$36T*j$b5~Os*0bITlcX3d!+<|H1EnZq5AUgqswO z10656{V@WBc7aCCw!e>UyKw>po`EZ^<*(F%nNQMdEiHNk^lk$e*DX!n11@)f!6#iZ zBu5I+^yl-y`x$*x7U;hPy4Kv@n)^6?0MgV|@&-6K1V#&#z3%bu&i3B^J=5&(2mPgT zc!~l!`Tzh88fjEmbXZNZO9h1jBV#o(H#lK4Eo3-jF)cJTF*q$@F*Ic@Wiw(kF=jF~ zGcq$Ulk*3r4mLM5IWaUhG%z+dH8?o4rwCjDv*rq52o_YX_#6NL00v@9M??V80ImQr z&+eVZlUx%X3g!y~5CkH`hU-w1gcB%HJV``BR5;6HV4x5%GB7YO{Qv*|KUta?85tSK zH2|iEiBc~N0|Qua1rEWGrhEwqyPW_07*qoM6N<$ Ef&?nn)c^nh