From 5723ba508eff3339500c241f4ae78950579ca8e0 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Tue, 2 Mar 2021 13:35:17 +0000 Subject: [PATCH] add Land Guards --- dirt_monster.lua | 2 +- dungeon_master.lua | 4 +- init.lua | 1 + land_guard.lua | 127 ++++++++++++++++++++++++++++++++ readme.md | 6 +- sand_monster.lua | 1 + textures/mobs_land_guard.png | Bin 0 -> 1195 bytes textures/mobs_land_guard2.png | Bin 0 -> 2653 bytes textures/mobs_land_guard3.png | Bin 0 -> 3481 bytes textures/mobs_land_guard4.png | Bin 0 -> 2637 bytes textures/mobs_land_guard5.png | Bin 0 -> 2512 bytes textures/mobs_land_guard6.png | Bin 0 -> 3538 bytes textures/mobs_land_guard7.png | Bin 0 -> 2410 bytes textures/mobs_land_guard8.png | Bin 0 -> 2661 bytes textures/mobs_sand_monster2.png | Bin 0 -> 778 bytes tree_monster.lua | 2 +- 16 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 land_guard.lua create mode 100644 textures/mobs_land_guard.png create mode 100644 textures/mobs_land_guard2.png create mode 100644 textures/mobs_land_guard3.png create mode 100644 textures/mobs_land_guard4.png create mode 100644 textures/mobs_land_guard5.png create mode 100644 textures/mobs_land_guard6.png create mode 100644 textures/mobs_land_guard7.png create mode 100644 textures/mobs_land_guard8.png create mode 100644 textures/mobs_sand_monster2.png diff --git a/dirt_monster.lua b/dirt_monster.lua index 31e515a..3631fb2 100644 --- a/dirt_monster.lua +++ b/dirt_monster.lua @@ -60,7 +60,7 @@ mobs:register_mob("mobs_monster:dirt_monster", { punch_end = 63, }, - -- check surrounding nodes and spawn a specific spider + -- check surrounding nodes and spawn a specific monster on_spawn = function(self) local pos = self.object:get_pos() ; pos.y = pos.y - 1 diff --git a/dungeon_master.lua b/dungeon_master.lua index bcc04f8..4b68184 100644 --- a/dungeon_master.lua +++ b/dungeon_master.lua @@ -16,8 +16,8 @@ mobs:register_mob("mobs_monster:dungeon_master", { shoot_interval = 2.2, arrow = "mobs_monster:fireball", shoot_offset = 1, - hp_min = 22, - hp_max = 45, + hp_min = 42, + hp_max = 75, armor = 60, collisionbox = {-0.7, -1, -0.7, 0.7, 1.6, 0.7}, visual = "mesh", diff --git a/init.lua b/init.lua index 02142fd..4df355f 100644 --- a/init.lua +++ b/init.lua @@ -28,6 +28,7 @@ dofile(path .. "tree_monster.lua") dofile(path .. "lava_flan.lua") -- Zeg9 dofile(path .. "mese_monster.lua") dofile(path .. "spider.lua") -- AspireMint +dofile(path .. "land_guard.lua") -- Load custom spawning diff --git a/land_guard.lua b/land_guard.lua new file mode 100644 index 0000000..6545b33 --- /dev/null +++ b/land_guard.lua @@ -0,0 +1,127 @@ + +local S = mobs.intllib + + +local guard_types = { + + { nodes = { + "default:snow", "default:snowblock", "default:ice", + "default:dirt_with_snow" + }, + skins = {"mobs_land_guard6.png", "mobs_land_guard7.png", "mobs_land_guard8.png"}, + drops = { + {name = "default:ice", chance = 1, min = 1, max = 4}, + {name = "mobs:leather", chance = 2, min = 0, max = 2}, + {name = "default:diamond", chance = 4, min = 0, max = 2}, + }, + }, + + { nodes = { + "ethereal:dry_dirt", "default:sand", "default:desert_sand", + "default:dry_dirt_with_dry_grass", "default:dry_dirt" + }, + skins = {"mobs_land_guard4.png", "mobs_land_guard5.png"}, + drops = { + {name = "default:sandstone", chance = 1, min = 1, max = 4}, + {name = "mobs:leather", chance = 2, min = 0, max = 2}, + {name = "default:mese_crystal", chance = 4, min = 0, max = 2}, + }, + } +} + +-- Land Guard + +mobs:register_mob("mobs_monster:land_guard", { + type = "monster", + passive = false, + attack_type = "dogfight", + group_attack = true, + reach = 3, + damage = 15, + hp_min = 30, + hp_max = 65, + armor = 50, + collisionbox = {-0.5, -1.01, -0.5, 0.5, 1.6, 0.5}, + visual_size = {x = 1, y = 1}, + visual = "mesh", + mesh = "mobs_dungeon_master.b3d", + textures = { + {"mobs_land_guard.png"}, + {"mobs_land_guard2.png"}, + {"mobs_land_guard3.png"} + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dungeonmaster", + }, + walk_velocity = 1.5, + run_velocity = 3.4, + jump = true, + jump_height = 2.0, + floats = 0, + view_range = 15, + drops = { + {name = "mobs:leather", chance = 2, min = 0, max = 2}, + {name = "default:mese_crystal", chance = 3, min = 0, max = 2}, + {name = "default:diamond", chance = 4, min = 0, max = 1}, + }, + water_damage = 0, + lava_damage = 6, + light_damage = 0, + fear_height = 8, + animation = { + stand_start = 0, + stand_end = 19, + walk_start = 20, + walk_end = 35, + punch_start = 36, + punch_end = 48, + speed_normal = 15, + speed_run = 20, + }, + + -- check surrounding nodes and spawn a specific guard + on_spawn = function(self) + + local pos = self.object:get_pos() ; pos.y = pos.y - 1 + local tmp + + for n = 1, #guard_types do + + tmp = guard_types[n] + + if minetest.find_node_near(pos, 1, tmp.nodes) then + + self.base_texture = { tmp.skins[math.random(#tmp.skins)] } + self.object:set_properties({textures = self.base_texture}) + self.docile_by_day = tmp.docile + + if tmp.drops then + self.drops = tmp.drops + end + + return true + end + end + + return true -- run only once, false/nil runs every activation + end, +}) + + +if not mobs.custom_spawn_monster then +mobs:spawn({ + name = "mobs_monster:land_guard", + nodes = { + "default:snow", "default:ice", "default:stone", + "default:dry_dirt_with_dry_grass", "ethereal:dry_dirt" + }, + max_light = 7, + chance = 25000, + min_height = 0, + active_object_count = 1, +}) +end + + +mobs:register_egg("mobs_monster:land_guard", S("Land Guard"), "default_ice.png", 1) diff --git a/readme.md b/readme.md index 800079c..d00305a 100644 --- a/readme.md +++ b/readme.md @@ -27,7 +27,7 @@ Sand Monster Spiders -- Snowy spiders are found on higher cold areas, Tarantula's in higher jungle, Cave spider below -20 and Mese spider near areas containing the ore and Crystal spiders only in Ethereal's crystal biomes. Some are docile during the daytime and will drop string when killed. +- Snowy spiders are found on higher cold areas, spitting Tarantula's in higher jungle, small Cave spider below -20 and Mese spider near areas containing the ore and Crystal spiders only in Ethereal's crystal biomes. Some are docile during the daytime and will drop string when killed. Stone Monster @@ -37,4 +37,8 @@ Tree Monster - Found atop tree's at night time they drop down and look for food in the form of players and animals. Can drop saplings and sometimes an apple or three. +Land Guard + +- These huge monsters roam the land in cold, hot and temperate areas and don't like players wandering around their domain. + Lucky Blocks: 11 diff --git a/sand_monster.lua b/sand_monster.lua index a46f509..21c5af6 100644 --- a/sand_monster.lua +++ b/sand_monster.lua @@ -49,6 +49,7 @@ mobs:register_mob("mobs_monster:sand_monster", { mesh = "mobs_sand_monster.b3d", textures = { {"mobs_sand_monster.png"}, + {"mobs_sand_monster2.png"}, }, blood_texture = "default_desert_sand.png", makes_footstep_sound = true, diff --git a/textures/mobs_land_guard.png b/textures/mobs_land_guard.png new file mode 100644 index 0000000000000000000000000000000000000000..53100abe6d0bf46accd84e36270c765aff6e59aa GIT binary patch literal 1195 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 LNkvXXu0mjfs+Kph literal 0 HcmV?d00001 diff --git a/textures/mobs_land_guard3.png b/textures/mobs_land_guard3.png new file mode 100644 index 0000000000000000000000000000000000000000..69e86916c9611feb619efaa0a508b8279ef77c48 GIT binary patch literal 3481 zcmV;K4QBF*P)JeQ0Ul3^w@0WyFh zScID*MJ!o>#D)#a-muJ$1zUs!f)z*+LLo3HKqi`**ps=~p0?e#+uhYw)zwv}>fEnC z3y;`;oA1;6zTfkTzxm6X>Kj{qUb)=n$NxR#@9s_*mQmd_0K>`z8I%V%M_xcoK8xsn3;lmz}jXvoQJpc@VfAjc=WA@$QvXe&&aKa5_hS z=Q|sFv00#e#ahE)64z`ETy9-&acWQk zi*78r&@h=6ibY;?+10su!6OJt-oD!AkH5Xijh02JOaArl8OO7dxn6U0FXQYaMgnvy zoj0$w_=C4LU}uFN{^LhXjtZuS31-XSr4@(JR%inJI~i$Z@y>RW)uu_Wq4Sg3oLNw@ z?R7aECF}LioI9vyvbL+m3}@Ti9(K zZwJsyvasgTriopZOcp8ndf(a`X9`W%85ITLX@wJ5=()f$C7AoynKCh}LVwCOqqyX*FsworI&3Dkg~-;|h2(BIU^V+a>D`9d-&N{lX;-JG7L7-SkZ zO^>ZU__4rsa|W^GeC@DeIXF8C@nzOegOZ(wL<#}Jtl%st@EikgMParpu4^WTrNH!3 zW=Vz_+w?R+yby$ol2NI#)z#?y_`sXx8bw->BLILSQXEd+a>UWqf7A(S?%LAA1Ug{x$ zg9JVsEzuBM8rbaG9@8kpk5fi6qFUCp#`=pVhvJ_<9dl#VL3dWXy;_I;QNk#xS;QGz zo{Q-jJeh?wG5AWqi4hw-p5*Kw``A+Qom(qxy9Pf!^EsR*ES}fMmf-qTgKLc@+bb49 zQ1N7*Agr2!=kUF2UEbJj^YJhxNiyUtO!%jd3uZyaBF_2sm;0==G>(=ry~4w-bT+z@ zZY==8kz>(mS^yj-8E0X}laqpM0fUYKC_Z@V(={DFJIa`xWr*`STC*mVf~R51^_wo; ziHUr5%^{Tr?*$o3DGsxkLbnK)ie4e{gA(;3vbnk8^5`Vy%D`ckCG4MO9Gn!yM+wq( znJqJZen%tsHK=mJC;z>Qjh~n!!22H@ZFKVBKO=YB+7dJQk!{$!J^<9KpPX zOv{-^IoS+^5cpxn{b_;hHSq(1nVL-MoYw~q>urNiMiDP>G*C+M=`r+sCEMpEhetV| z3qjW~=wNU+@R2`CXD{rvBiOxQf>1OHgRFwf=S<$XvPMhk9EK&QQO2huouy2UrD5>$puuXxWEy1*nv&ennLUBlXxaJ|iH!(z>o1bT&?Tb#FST7AhE!zKDVuMYMOMlrshaCnxWoSOBn z%V0xrmeu^=wLV)toA>tvG`mKN4X&T-Fj~}nxbIVB8oTQae&f~(S2s*vzt{qy`0(+Z z@v@{sU|Kr0R&y*f-aXgj)s{t`mgv8Kdu^}nIm~56tFO^olcWyJgN!&7Y-%P?W(A|L zsp)b70I)C$*qCQw=Oh!tRm)B$=3!=3Z*zb&3JSgv+5ZHxniZI^SsWG zzJ?Gwi)DuV-P`Nji&Fx>r0IYVFd3I53yp14a%UXzvoDsENy^q%langM$zhz8EMGHi#!tTpxi^gPS~l&l;)BON9mfQ^q;|z5ElC#@wg9;Za)cq+tR(jzrzlZy zdQ@W-5^LQ80gEu_WD?Ohv1xelU^yoVGSCDMk|iSbXe-4p9);xd2tUYZd*+vgMKPWR z{Ae1mdELRZ4O*_vTGK*?x<;#pUg^-!6c5vouIm!}iXh5ZZ@IKR6Q!C2ivpu^Xw{I0 zfyAD)%;J(t_74W6DQ)TPEUGyr&Z5@PlZ+?K)Rbr&H7(y8fb1|J<|cv8`CNp?4F z-fDUX1lI>1$H#5{^O4Wki701^yW^OJ1pS-0`g?|@;Z=%46MVXeXc&^ts^Fvw2uqz; z)>|AeOD6LeKQ1t&*QvICKOXW<1mTP3yrR8@kzMgNfn``CJhh9qU4RW z9=~<2!NF;Yynht(;5cHnX&{7PnkRTIjYodUA`xUk0S*kBl5oAn)A5pLlaPMX;500m znTqRp91JriCpC7n;C>_GQs9CO^GMMYFeM{hDpIrJ^&6`I$QxT8KmKCQVVL8p3f3T8 zROG%vxTqO44BT3Ad&7OvMqGolEW(!snN~23G(NeX@KVDgw*^m+13q7doJI+qO^1#W zxQ@n9FR^Nk)s~5$7F^zFAiuri5m57Z7$Gnyn;Q8{^7_C-bK!K6^E@tCX_z1cw_Y;& zJS|DXjAjoKU*V!LS>!Cj92BI1Vsca?L`vGy7)KS!qGCID>A5-}@Pq6H!_Bpvk(tpd zOzft{%dX9esk7o4=uNn1#k4bxLp$X8Dcp8FgyV83V)9()os~ATq~a(pn8z6%$6(Wv zj20PIWg%u6hm(TV&Wr2400e+ zWry>-4zUn?=m&hQ<+9o`czdVCw=a4eMI~opLAF-%;c~%+pn<#AC1FmO6wKm^_nw7Z zumt+6ms)$ns-&}_QEGx}q7m37Wfz`RF@~&I#^4_p$Z<_6bl&LOgqp@@<0V$5Q|E%4 zYYr##lu{G8md;PJfS1+{yr{vq&biE^iu)%4!?0u&R~*fA9(GtQzI-!o~IHrhg=H4IRSXQ?6}0|dk8F~5ic?jJ?mJl{Ymh^QInDQYP(rx6!C z$!gnVkrenz&ds$3PtqLy_M3yfiyfDvgOrn}A*F!HSxQsdBy)vRnY`3>IEhO9Wrl4@ z+J?se9{XrcNl!L73v%{PBQhaz1avH&Roy0?30gw1E}>&+ED`kD4R%)@wt6o5pM7^@ z?>D#CSS7@lg85tRK*bdLrV{wc?>{wa0pYJ{Q zod0y4{N*3Xvy@p*T3|Ba|MUI_ze9D0yhDUdqxkG}{keeRm0ux-Gko9IJ zH3}!~>C(IHWb-HcF zDV-6uC9)5<71|R@DSP+0>N1;BSs_d21tiEA^cjswJM;$f^}CYtK389}_LRysdB$#; z$rKZ2GpdWUJFKp8dBy!ZeEyu|XMb*Xan8yL?|PC^!eqdrXyar?wTK$GSJWY4XNTJ^ z*^~$OIJu0|E-p|iadAmje!;3zgZZ!zrVp8x%Zek*tLj@d9~y0;T; zY|Qa781eczMwJy=-=LBPXe(v*cjJ(y0<{{+-~3d*y2f>jn=1+lDlAtpqc^14k011g zRLiWdva-Z<#P%|$O%_XBT}M%k29FqN}kX; z;q4KvA+KKt;7)GQV|A7FMyz$`0lW7|=WCY-q$wvSG`kd2va2qY#Q<7unf+%Wp?S`z zP3ay( ze!UT_81zZggoitvUj};b-woLujRSx;w>JCtZ(z>*YWwq zJ8JcKcG#s>4Q($KxjZKodu3@J;%`c6o6ZsIOF_L!9vZy%9?HzlV*ZE6ELC}X!Cr~$ zN$A4zCd;d#{mtv>;%ppX8;?0T8l zDYsvKfvdC_2R%Ot1|)y|6Zv2q?W--a{~+d* z7FcMIOy&Wi5}+H8Ik^bCJiiHQU0z4P*x3$I8H{MRxU(19J{U&v&z|w^K`7*8M0S2o zu^6qc)PiE0yPTgOH|fBPr$NlyDF%%InemaQ*`vFz{B9k7ti3t8agkYbhTFf{u=U$DO&j@BE7 z(`|1=#~$8~v2?pp^k^P3HnvFHEnXc)%(?AHMJsg{sv)(vw+uRb@g?mhr*9&7)XPj~ zbUV}*`1%``8zIG|8J*k60_UfZTIn(SxAGG!L}C z{{agNG1KxAzx{%(HF~XJKyS)vFR*iZ%6=up=-W3j^X(0?Qpjtq&docrm#v63lWDxp zavm*lavF3xK4on#4B3QYjn94^VWHFEgU9jgkG{`si*gnn8|1Wm^e4Qx9|mL0$!ppd zJbp@+C;Z;M5SfK)wBoWGh@4HSmAJa%laE7{vI5O2)e7|`de>AJn6;_za{Veo#Mwoh ze5DZ`OsaI7+}~t*Kk$^!X8ijbUUhkX#VqB6`@#F0UT}2(4y~JTqE44;!g$ERH_`4v zo8gqS#@beReCsv4faZPk4FACy&B1w>CIEqch~;ZUl?V6ZZB4Jdamc-UyZJPk8y7 zkDmnXUVIn1Zf`#dIDQ*?-o2$iq+AIvxNb%K%0_*r^NiI!=j{RYgPpz=uwQ(ENyMtFVp z{il@nNUpKL>|G#y*yPPSuD@m2qkYbg|1k7BEyj!+wYZC|Z%1fYUkwwPOh^;w43^!DW)RGnB#CLXshLb7Dul`DY@jC8ZTR)`tZJgxQ zVLVW*aCAfAhOEKXGK)2Cnjsv!JIqSxGMYsWXf)V*7z&w=`_cXnc)Z;xoTB5q&YMA2XUnt%OygvNuzxWN<( z5v!j(2!>_JM*NkL_Q-ql3&CyZ_raUkd@zbXe*WWgwzpYZivr3OHn-W_2%TPD3b1v$ zap&LMU}KY{5V*-QRvW?dL7z0gVsy;(D#GGIJzAF*_~b+0yB7;(6*kuC42`~1EP)tXT@>iLAE1kN*Cs$0K~J#@tFbNFmSkD7Op2sv9yBC}!x?f;UECBTt7u{G zhKqOjJokNF|Lb}u^*5Id@)^2)vRT^ae3QR__A@GL^q-K)(QA@U^W_c)JG}fd=@h3; z9v?B3&`Gg=m*l9YTO~7hiS{8^7o=KEn){sf$qjMdC&_WzVWiASlgR>SJu(BD4{7yi zH^`)Uw8Qy1=cf!lrI%u2ocb>9geRxerbxfJDl%9LDEUmJ!K`x;($Dqqph2thKEi-dW zr$s5t>}5&?uFa9`);Uf~Ipi0w#~183czB23uG8)CC%<5LjPzyx>hF2$P3~L|MebAi%iyd=RJ~y;{(#=GE+5DU9v+||9oI9q28rBV6nzf zh00$HbTeFAW02v8uQNz<(&q7Q-1g=@GCjIoRu*~f8kd%M`_Fje56EU18=-MRK2Q4d z52fl)xci7F+tmLyWv9-6e}pU#cWE7R_?Ib-J+|-BZ-t<)USV~G>O|cB$}&sy^l{$h zyiKdk`~S)2JqFl2V1J*X8mYhgp26%qTf01dM3P2{>5&-O(J4E}6tf&PDVJEBV|I$p zDXTNQ^MJV#YE}9@=I43%1(Q?p+(&n~e3`>KjiV6Z;~kPq^K9>u>r)sa-KSaSNkXYd zd6c1%aKl-j`K7Sg2e%k0@tfVa#Yr>vn$40)Vufct$`$6O+o9V1V@6`-_0kq=wmD=hj0muQ5H&;wyaeF3nb0?6nD6 z9X|Vl>JUStEY34CLpsaka=>VRJ=}D1NGeV0pa0O{UvKl%*JBT-4GI++$8<6b6&S6s zaD^`F52<&k_WAf$2yQ#gcc+-0qcRe=KW|eWCModo?Kn)M!KZh5yvM6+r2hIfgXtQ% z0V5;yx}n@mhDI}Xe%g-FK6pSOL!rQClZ6WDJiofh8`E*np)7*|%?^b;xgxnV`v*vI zdKzvR&XaC5n4jk5)$p){)t5rKS6|`sDnrA}%~LF}FwWcrZ~cTp!qyS5u0&wWm%}Zm zy}5PV#0Boq{sU0 z2%nJ}^;3rOl!iF(ancW%3R))F%i0NT=J4|F^1rrr&6;4i=n2I$u`y@rS?nK6K z?vY2QL~`dgZ~im_q*#pooVPE$*bA@D%!FSH`5@X^H&(KVq51F2(2l0}l3CU1N5fWaA4GEG*OOgpvnHI*gXXdg*LfCR59eM?RaGf*kZLzpW?m4u!UqI{V2&L!Hde$c?T@a~r7Hm$6F{a8$JhZeDbXuI} zcfaGq`y^SeT@N)sIbw7)R`w!VPyZjZ?srJ8Ug7;O$d#C=vUU4H)%7@SryE#ood+b^ zZL+BVMH2zzt31lR2NC{ToAHlJ!?BW^>-3JO zE>gtoOq9f<#swwOAMnXd^6AKdt<4bW(!#~gn++<^%Fs+(SBDqUDwf5z)DHtV@d4S*+-=PQOjEGRHd`%w=gDL_2+H zEfm=}js2w35d?>I+AWe%3OPP}m+TTNb1co!I_1(Dx9;%LQmp6W2VDNW=tv1!E2#r15{)owG7MFwhck4mCLY~?<=>gLhie6b} zz7b-c9Olw2r6Pmr$dIJoB;V!1M%3K2sJz>|)XIEkHI#h+GbXbv%ut@AeH`uQXoKPJ z{qN>lylAfPyvOn)lT|)?uDKp{NtR|KII87npKD7T9mm*;#Zd9=6puF}wem#{5`KK0 zU;Ua^_gQnDs61<~lT+jiOkdb{>o&C!w)UdA)@r1ir_s@#PqcpT|4y{}NsM)KlXfS1 zSvnPmezCc>UudoePn+u)FVB&_vKDbTQ;Se|nrOqrC!`}}J zPEB!Mc!t;gZ-Cdmvx|3xm9LR#$#aRe-{krwe(+t63haIQ&GA~DB)R!n-1fZ}5^es4 zL@Q>3{eupr$@qcb^Ue5NEQBMTHrIieR#J#(7w01z4(mb6SJy}nlT1&4{Y1NYk!aW7 zqPxj(!ax3+SH^?erEKv0X>-jN$v%hI_H%e`ACo@ogsmp4Y~H?jKf6e@%4m$M(Rh|< z=RF=iV5iA%-i<(c+Fa8wG}l!AtIf6hTyy<$kL0kFRXK#;J*4XS&Ood*~do;QMlWs3aneLIz33R3@=E&t3pCp-Cd6sA!&nH^-tBF>= zNVHs*?G!VWXeNL35;yP0FBr2cRL`Pd>>NcVOwG_L#UUzH_PR02W}o!^hwSVIZ*!g{ z+WKZ#LN^3b%15I02JyQ~?E*e$$6T6@*X892&JS1|;p!qo9p-afU!k1hjTI`VTpQ=g a82RA}ei{x>=kS zc8vxo5;Rv`fC5EdCmd;58wNL-+P`{oPYT>ixglj2m!|O|9LKd_G{FqoRj_t5z{wA$Z}qHL#%`$iC6m2l`WA%Z$;fBRPjqX?ux z1a*Wp;McItt&R8A;5@vAZEi)B_K<;x&d;L`3W%^ya{4{2RG7AIM5%zPRgk3urnLiI zJNJ2|cUCaT4B?R{(VI)iz$4CegHjO32**JvjV*3NP)7$IlnOQ;7#H5-7s*`xK9z|t zk%(i$j-!xF6B>hvLNGC=r43o!A?h7L=jRAcTp;z%_YkN5`k#zmyh}7Njx#?aRJ8xrno~hF+g1>g)$&367k>N{wx5#w=ve#ZA=y4&mq&CY2%X z8OAha!EuSR9oU{>)YdA(O%QbsBA$8e>oyoXf|GxQ+FU|Ng;fr5XFpcE=-oWBumReE zCCar!U6ZJpHz5JxzhOBgqasuVHl7Hl$2oXH{mDkj;4^s5Aij$_)oNqqcsNH-%& z1)_m*tadT29jLWAf)f|9Qlj=Yk%di!fVim@QfZREe1o{X7f~xC8|xGi9-hJq*^sCy zhj;F?#F-p%doL#4f@$xCC?Yv?6?gVJapwU3_-T-esI3>9OhesA2!T6u6_d&k_Ko5{ z@jSuMQE(F&H%0BjOGLRIqQMC?ag5&IAyAs?mER%kJ&dzHkJ?(H^3v~PrN&)*h;#2l zqTwS1gA;_uo+k0ZPf-WE==FKT;}?*->!d!u+9-JX1)Qb(xXX8`Ui=bh-7q9KNz~R0 z+Qof%1M%da{EbcAc#G-_vIORQp!3k2eecbj=Vg&ioGuY87(o1)7wpWO=o#@>>)k`nqKly3mmUcuO;vapQ z`pHX(+5vHUFL8SxBvZ)3ChqD3)X=f1*TdsaLlk0i-9!TuINPfjCxHw+WVuM@+7F3y z-9+tuWbeIC+x#s`P7{^p4l=cUOs)%zB{_E!q7YfH5p@sauFhgIt)LWoW09zT40nD8 z5-EgVMI#l~T0|V-A3aCv)>{Nak0An|*i9m&pm^aWECRj1P1HX|)9q{Y)eeZ}@3Qd1 zs~rBxw=pek)F+-G?jFKQjk9te_s;u>ID$Ar_*I-oALB0Hr*`@>!Ptq$o`>Tnk%bL{ zKs7U z%0yj*1SdX)+*pD{inyf%(oMu}n$+~WSnVLrf8{lc?_o1pqOL*e$If9L7l9?}7yu~| zwK6y^Rw`7bi1TO~VPf>!BjWC1)cOJo&%R2|E7JPlBk-y?yKDGIoPoZU4B@^>jFTiESCO3#g-VvV6b`3xr6MDqSeRK`z{ymJlj#3hthCeC)CdVce( zuZLZOIJ;{IuS(+H2k4bqa9o`EkFn_t?$TXUwFH$CwzCgeE@D#|!oD%WiBqWc1x(i< znT-VsL&qQtP+k4#)rXk&9;{Nhs}CTK8+CjS)83039-nwUF+WW(d>m(M36ste4~`S( zdXQL%V^pO`^7@;Q$)YwEF+Ib?%{g>&6XFO}E0LVJN_6xLt&eU{?i*vjdxX}FIfw#O zc^|#COmO-IWO18lbc*`KY1H84sn=y`7iVV`{2Hpdk6xaIL<;;GB5uH6aO^3?F+r&*-q+dZ)4zQ^Vt=E4>ZDfkQp-DR5`FEVfJJ?JX|HxTny+$y6 zl*HUL;^L)CRzPFjguq&h=^8*(%fwv+sO?pvfeEZN*i;6q9Ngu5m}DB8%1}G^xyGG7 z`*OoVGp!`=TtoOC)JnLEcL}G?Q@Qv>q+g@yjejNX=%@1Ht4IOV&R!wz8Kypdis1Ou z*dQPr7{@q?#$aqL5{#cB?C2-%=p}B-66d-Jdq>c_d7@l5vUWiA^cD2>D)q5bST}(T z15A4_v6IBKbbwc({`jY;y!a|OF49^{`o^26trZgUGgu+<&t5_Atm14fW18Ct9y^WR zS|&C7A!=_E+uVxuDx_xKL)6Ns(hkzAAhaNuIE5~(qqkR(bq^~Q&h`o@g#<)-4-zRd zKl(?s5Q5Tge1pu}|3NT*vH=C3$V(Iy6*(&@s@OpnDi+eF49{7g6^x$qeq? zG@?>MRf-6&ima6pwF>^}7r?I~q5vDm2*Ab>!bFYEvp@O=WNDYwt#>dj?T|=fr9xPP zbzJgp*GOOeFH*PO2CqtR@h2(Lo=`Wwjookr*0@pGVEDlfiD^N+tny}1q3(ni!Xj4*M7U~XT7IKrlz z5!C~t{!wIcyP?eVdxYIXm}DBTjbx%7%153gUEIbbn{e`T7$J~e1(R$-9qb`4Uc6|9 zQdnaU+QCL4LQ1T$4b)kCNbS;>NnU>g)7ArF9aY-JH0MCO5C$Lx76DEIQTJ$Q3&HqF z)J`55c;HpBxlU{xBkQ$BUaMYyh17>XrS{xcun3|oXlh$FPKvDlCdFj`al z{MRsUs?qVoo77HU#@$**);&aF16eI0yeeupPuM+#&9svEWKd007M-6XZtbGw``^TU zc$3=mzlB;~Ktut4QwvCmH+6y3^*7L!%db$MI*;C5BJ4ekyLbmOt?2wb$=Q#{y!mep zqS@P`{K}sa_8dYe4JO96b>fdbL2&3eBB~P&9YvIjNWVe^gcGNzk4)jZDMVDqv~?3I zjVkRT%X>&w-Xr@je}ydX6C+T&>!jcQE~)8v(aW=q)h6|9LG++Hr?Y%CJDwBu|op?30E z$3?2W4dVV$g0Yh%3u_HtpP#|HDP-Vdw2ROhxxYhj_A;VgLqq|puueSsIB}|(#G{+& z?Nx*|=#>XZze>x0{w*Ef`XdszuaUm>R>OWj@dN*7B#XL-@T%x2K<=(% zx&~0Uf6;KP>H+@QE2Q53F5&PI!hvxxhPb7T;P^Shk>el)QQs)Cc7Ql20#F}+g5a?; zByRs4(IqhH7U(^M++IVK_fS1Az4p4hv4A)zAj3K)+kp&xtWFROA0;?EiQZXjz@+0K zs|StD)isElpKBbb^{=>mZW@wl;#@cG%KcBAP@^}Oe#Py{6vC_WzZtT~d#+%`ga7~l M07*qoM6N<$f)?q*nE(I) literal 0 HcmV?d00001 diff --git a/textures/mobs_land_guard7.png b/textures/mobs_land_guard7.png new file mode 100644 index 0000000000000000000000000000000000000000..6a9d0fd8b34306401cb029a298df2f24cd8696d0 GIT binary patch literal 2410 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 IM6N<$g0Hq^5dZ)H literal 0 HcmV?d00001 diff --git a/tree_monster.lua b/tree_monster.lua index 1708e46..99b3eaf 100644 --- a/tree_monster.lua +++ b/tree_monster.lua @@ -98,7 +98,7 @@ mobs:register_mob("mobs_monster:tree_monster", { punch_end = 62, }, - -- check surrounding nodes and spawn a specific spider + -- check surrounding nodes and spawn a specific tree monster on_spawn = function(self) local pos = self.object:get_pos() ; pos.y = pos.y - 1