From ad5c0d5a66ffcb7b5dab3e3b2963b0e9fb89ecf5 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Mon, 15 Jul 2024 16:59:03 +0100 Subject: [PATCH] added missing materials and textures --- LICENSE | 3 + init.lua | 5 +- nssm_materials.lua | 196 ++++++++++++++++++++++++++++++++ textures/black_scorpion_egg.png | Bin 0 -> 855 bytes textures/cold_stars.png | Bin 0 -> 780 bytes textures/earth_heart.png | Bin 0 -> 855 bytes textures/masticone_core.png | Bin 0 -> 744 bytes textures/mud.png | Bin 0 -> 597 bytes textures/mud_animated.png | Bin 0 -> 2946 bytes textures/mude.png | Bin 0 -> 641 bytes 10 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 nssm_materials.lua create mode 100644 textures/black_scorpion_egg.png create mode 100644 textures/cold_stars.png create mode 100644 textures/earth_heart.png create mode 100644 textures/masticone_core.png create mode 100644 textures/mud.png create mode 100644 textures/mud_animated.png create mode 100644 textures/mude.png diff --git a/LICENSE b/LICENSE index 6e9e82f..503798d 100644 --- a/LICENSE +++ b/LICENSE @@ -7,3 +7,6 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License for all the models, textures and sound: CC BY-SA 4.0 + diff --git a/init.lua b/init.lua index 4df44ee..cd63167 100644 --- a/init.lua +++ b/init.lua @@ -1,8 +1,11 @@ local path = minetest.get_modpath("nssm_extra") --- additions to nssm api +-- additional api functions dofile(path.."/nssm_api.lua") +-- additional items +dofile(path.."/nssm_materials.lua") + --Mobs dofile(path.."/mobs/albino_spider.lua") dofile(path.."/mobs/berinhog.lua") diff --git a/nssm_materials.lua b/nssm_materials.lua new file mode 100644 index 0000000..b27d0cd --- /dev/null +++ b/nssm_materials.lua @@ -0,0 +1,196 @@ +--non eatable craftitems + +local function nssm_register_noneatcraftitems (name, descr) + +minetest.register_craftitem(":nssm:"..name, { + description = descr, + image = name..".png", +}) + +end + +nssm_register_noneatcraftitems ('masticone_core','Masticone Core') +nssm_register_noneatcraftitems ('berinhog_horn','Berinhog Horn') +nssm_register_noneatcraftitems ('earth_heart','Earth Heart') + + +minetest.register_craftitem(":nssm:cold_stars", { + description = "Cold Stars", + image = "cold_stars.png", + on_place = function(itemstack, placer, pointed_thing) + for i=1,33 do + local pos1 = minetest.get_pointed_thing_position(pointed_thing, true) + local dx = math.random(-20,20) + local dy = math.random(-3,20) + local dz = math.random(-20,20) + local pos1 = {x = pos1.x+dx, y=pos1.y+dy, z=pos1.z+dz} + if not minetest.is_protected(pos, "") or not minetest.get_item_group(minetest.get_node(pos).name, "unbreakable") == 1 then + minetest.set_node(pos1, {name="nssm:cold_star"}) + minetest.get_node_timer(pos1):start(400) + end + end + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end +}) + + + +--nodes + +minetest.register_node(":nssm:crystal_gas", { + description = "Crystal Gas", + --inventory_image = minetest.inventorycube("venomous_gas.png"), + drawtype = "airlike", + --tiles = { + --{name="venomous_gas_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} + --}, + paramtype = "light", + walkable = false, + --sunlight_propagates = true, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 2, + post_effect_color = {a=1000, r=1000, g=1000, b=1000}, + groups = {flammable = 2, not_in_creative_inventory =1}, +}) + +minetest.register_node(":nssm:slug_crystal", { + description = "Slug Crystal", + tile_images = {"slug_crystal.png"} , + paramtype = "light", + drawtype = "glasslike", + drowning = 10, + damage_per_second = 1, + drop = "", + post_effect_color = {a=1000, r=1000, g=1000, b=1000}, + light_source = 2, + groups = {cracky=1, not_in_creative_inventory =1}, +}) + +minetest.register_node(":nssm:coldest_ice", { + description = "Coldest Ice", + tile_images = {"coldest_ice.png"} , + paramtype = "light", + drowning = 2, + damage_per_second = 1, + drop = "", + light_source = 3, + groups = {cracky=1, not_in_creative_inventory =1}, +}) + +minetest.register_node(":nssm:mud", { + description = "Mud", + inventory_image = "mude.png", + tiles = { + {name="mud_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=16.0}} + }, + walkable = false, + paramtype = "light", + pointable = true, + buildable_to = false, + drop = "", + drowning = 0, + liquid_renewable = false, + liquidtype = "source", + liquid_range= 0, + liquid_alternative_flowing = "nssm:mud", + liquid_alternative_source = "nssm:mud", + liquid_viscosity = 10, + groups = {crumbly=1, liquid=1}, +}) + +minetest.register_abm({ + nodenames = {"nssm:mud"}, + neighbors = {"air"}, + interval = 15, + chance = 10, + action = function(pos, node, active_object_count, active_object_count_wider) + local vec={x=1, y=1, z=1} + local poslist = minetest.find_nodes_in_area(vector.subtract(pos, vec), vector.add(pos,vec), "group:water") + if #poslist == 0 then + minetest.set_node(pos, {name="default:dirt"}) + end + end +}) + + +--abms + +minetest.register_abm({ + nodenames = {"nssm:crystal_gas"}, + interval = 1, + chance = 4, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nssm:slug_crystal"}) + end +}) + +minetest.register_abm({ + nodenames = {"nssm:slug_crystal"}, + interval = 20, + chance = 3, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "air"}) + end +}) + +--Eggs + +function nssm_register_egg (name, descr) + + minetest.register_craftitem(":nssm:".. name, { + description = descr .. " Egg", + image = name.."_egg.png", + on_place = function(itemstack, placer, pointed_thing) + local pos1=minetest.get_pointed_thing_position(pointed_thing, true) + pos1.y=pos1.y+1.5 + core.after(0.1, function() + minetest.add_entity(pos1, "nssm:".. name) + end) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, + }) +end + +function nssm_register_egg2 (name, descr) --mobs you can't catch + + minetest.register_craftitem(":nssm:".. name.."_egg", { + description = descr .. " Egg", + image = name.."_egg.png", + on_place = function(itemstack, placer, pointed_thing) + local pos1=minetest.get_pointed_thing_position(pointed_thing, true) + pos1.y=pos1.y+1.5 + core.after(0.1, function() + minetest.add_entity(pos1, "nssm:".. name) + end) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, + }) +end + +nssm_register_egg ('albino_spider', 'Albino Spider') +nssm_register_egg ('chog', 'Chog') +nssm_register_egg2 ('silversand_dragon', 'Silversand Dragon') +nssm_register_egg2 ('tartacacia', 'Tartacacia') +nssm_register_egg2 ('river_lord', 'River Lord') +nssm_register_egg ('icelizard', 'Icelizard') +nssm_register_egg ('kele', 'Kele') +nssm_register_egg ('crystal_slug', 'Crystal Slug') +nssm_register_egg ('berinhog', 'Berinhog') +nssm_register_egg ('black_scorpion', 'Black Scorpion') +nssm_register_egg ('pumpkid', 'Pumpkid') +nssm_register_egg ('salamander', 'Salamander') +nssm_register_egg ('flust', 'Flust') +nssm_register_egg ('pelagia', 'Pelagia') + diff --git a/textures/black_scorpion_egg.png b/textures/black_scorpion_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..a92097912c50d383c834076df23a75b0c668febd GIT binary patch literal 855 zcmV-d1E~CoP)q_l8iEnP8LV_R-f*LK*w++FwM`}W6$iy%SopAXOb zywCHz@IR*Gu6jD|ZUEqyPd{L&rwf3CO)GCDZ(si3LYF`L5WNI?4s@W5na2_d*86^i z^wLHc-Mf)v&CL}|M?rsrwRf~Z0WOyI!y;@+r7$aup~3Umm(7;hehXpt9(D{~(2;>Y z&5aDIG@{%FEQf39FIcyFFDTT-V#xUisyQ_(q|<4ZfY!DRWZyiZ-}Q77Pb?#qN^xUu zmWQ6&$<)|6smb3Dvp@{wUND*ZfI~Ag%;j>V<8dzhIE8T>rpAA#R4OrZeTpcG5D~nf z7F-}v7RbN-FmB!YI-=Dzcxu@-9Mb*OX~h_l)wRUq5as?MwX6oKN|;)yI*#B27DC_L z+H^9RRM&OY10DFfTR%B^K#l9DabgOno&o(CIy*Z7kein?nT$qJL_VMA(wSZ+r~kx_ z8I~56P1|2)ZKj^FiE&?BI>)7N{FhOYQiw200cq6=O+&%BFxXvbK=M$06fRTT1(^WdsxV=z=_wx^;a7z zE<#X1jq9j~(cvGy)UzMIUvcDudTva0=^d^OwNkjU72^dCy1xa0MbAe>z$)LIJk0py zB)^XR!O?whu&B0t#abp#yv6i^Q&bf}bYKIdLykQ?#?C936)jh5#BjR%U5s&gV#^DN z2x2XQ(7)|jY24)CU%Y|nZ!NU08{)y*T2`%D!*l)Ls;bia-a&%uDhh=nB8F$$cH{d2 z-H$&i#&MV^7MZ>}h_tu2Gt$*X(OSMgyNB6@VXA`r7`3a&Htzu7qbDE1F8s~5{$T)K hYigooE#BtM{0juG9q}|S(y9Oe002ovPDHLkV1o99nBM>Z literal 0 HcmV?d00001 diff --git a/textures/cold_stars.png b/textures/cold_stars.png new file mode 100644 index 0000000000000000000000000000000000000000..4da68bff2b3c9784cd054d44c0b463ababba57a8 GIT binary patch literal 780 zcmV+n1M~ceP)GpW@sVviOiU;T2hOh)*WO zJBPUBV{AMG3Fj~7{Q1{8&;Nb`X?(z5c8t{(P1}V?rD)wlnVhEW!oy#FCr%HreuOc7 zjIOX|K+|?uGXQ5VV@#i>?Ls|Ugr@C+c^CG7ZT*P%XKzOcp+QJcI!CFDC`#4@QG&K5 zyT!@cVEgC~18pB`hd4KeYWFj=t%y{DbwlE0A8jh?*@CRNiE(}E*@85`LDP0Y>mJ^X z>6f?Arh<9>464!l2DI*>O|_wskwXYg({=$9^WdjPSY0B7=Iri$D9c-0cv8A8y}Ng^ zrSsyHrtLzWPf;cZZ7ZA~)3jX>B0@^DX%r$t2))^-o-IBIn}Rky@@h)9cauktpOW|q zHXahk2h_6#%H*8gy-%c4j2!^bv|Y%GW3(>U1lm?8ovl}Q1C-8*q6DQfj2)2nZjhI! z8{_TU-;)y3dgbR^XiDew2VYUW+sC;pTlbMlk`IT!&2OuOuXoQFe;WaN`J_~t%Nhni z2mtFw2n4Ip5yER=MIb-`!io@<+`01u-+uEoae9@=cmS5&1#bc26-7_kpjh(&0000< KMNUMnLSTX)8)F*) literal 0 HcmV?d00001 diff --git a/textures/earth_heart.png b/textures/earth_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..33f6b5804d8081140c0e3ac7f6199f44e0f2e781 GIT binary patch literal 855 zcmV-d1E~CoP)~PqT9`<2xAI zj!vtkTV^l+>Gtv}gmQ*aR4Ug!n7v?e@vgDRcoivhn%ilh_Yb)q^Zf#cyM6A((QeF$1&1MYAWKwT$zmLBi3%F-| zJTyD|qu|0%*L^g-Ki=5gq+E?`+uA2J zv1_->S7wCScGYr8GMUtsFDMiWnvI5BE+>lagAb4Y95m`JFgVcd;>-;xTAtj0kinv< z{05C?!@uRSR4S!ZTGeblFf^JCTJ&^>s{tH@;AIq;S*K0nUA`}Foov8Gtu=KB1cg`0OkrCOEm>{Lmnq|<4G1H+E| zFdM9_tf_waj!Z|}`sxi5gqD^T<-$?@{oN|nin;l#D%G0KFnmOjZhKx=S18l5&!t}% z*42a{2nNJ)#i`S0?c1{*y!PyP{P1~=X3LT9I|Dk5jO6`MTcB29X$27{PyR;GL$(it zip8hByn9nTH8~njO^(KwuiV5AjJWX2+#{mHAAGgm-gOkR|EqK!oH=*xkzsoJ6XeKl h76e0rpjVLC=s%<88lYBwN4x+4002ovPDHLkV1gU~qTT=i literal 0 HcmV?d00001 diff --git a/textures/masticone_core.png b/textures/masticone_core.png new file mode 100644 index 0000000000000000000000000000000000000000..c062a0119a4c75a32a6d0eee0ad47938564bf054 GIT binary patch literal 744 zcmVP)VGd000McNliru;RzE584@#wHc|ip0(D75 zK~y-)jgq}jlTj4LfA{jfw|o?Z(!Q;N6jRVeFc=LckT_zDlPfxqh!Nx9;zELi!5AGB z2ZX`65S<7R7s4OF!eYe4flq-Lifu4jX(_btap(sS7EW@Ko11f=^L$(-BAlec#sIMI zx|Elcu#`>%paC4CC1~_9q=D{MY6A~A?e8F7dVyV?k*wuPLS>}Uac`??p8cyUf#T)l@hHG1QBor zRDQ;LrA{?vvRrDY;Pvq*nU6&O=(6yLJMv0{70a!9Ed<&H^lZ-Op zi{J`$-HxbO+Eu_&4*(we!vHky%@a@0=FY%WeOqBMLlcX|c@6O7etW@W2Dg_Pjjz!h zO>vz{oYHohqbWw>YYc8LANyc>a&nUMp;N_+{^|%@I>S`Bjb%>@A{6yM^F9*xh_O6 zBB)P;x5)18v9Z3%tLbXI<|66X2N9tC@mp2ut-=^Xa_1k@LoX=Hu87J<2;=~Mu5Pfl z9;3!z!N}CAhzPdto=T<`*w3cWT9eJDaI+~=yFZS4klfkf_x4}ToUNvB>^s9o6WenY aC#?TRE*aZQ0M~H<0000IqP)5n0pdwS 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