From e94c23b2c1e81835de014239372887199b90d855 Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Thu, 18 Feb 2016 22:23:15 -0500 Subject: [PATCH] push weed and bu buildable vessels and vehicles mod --- goals.txt | 7 + mods/environment/sea/seaplants/init.lua | 17 +- mods/food/weed/VERSION | 1 + mods/food/weed/depends.txt | 3 + mods/food/weed/init.lua | 310 ++++++++++++++++++ mods/food/weed/textures/cigarette.png | Bin 0 -> 167 bytes mods/food/weed/textures/weed_bed.png | Bin 0 -> 788 bytes mods/food/weed/textures/weed_big_grass.png | Bin 0 -> 15453 bytes mods/food/weed/textures/weed_brownie.png | Bin 0 -> 609 bytes .../food/weed/textures/weed_brownie_dough.png | Bin 0 -> 351 bytes mods/food/weed/textures/weed_flour.png | Bin 0 -> 398 bytes mods/food/weed/textures/weed_seeds.png | Bin 0 -> 1203 bytes mods/food/weed/textures/weed_state_1.png | Bin 0 -> 124 bytes mods/food/weed/textures/weed_state_2.png | Bin 0 -> 184 bytes mods/food/weed/textures/weed_state_3.png | Bin 0 -> 213 bytes mods/food/weed/textures/weed_state_4.png | Bin 0 -> 309 bytes mods/food/weed/textures/weed_state_5.png | Bin 0 -> 324 bytes mods/food/weed/textures/weed_state_6.png | Bin 0 -> 345 bytes mods/food/weed/textures/weed_state_7.png | Bin 0 -> 526 bytes mods/food/weed/textures/weed_state_8.png | Bin 0 -> 522 bytes mods/food/weed/textures/weed_weed_form.png | Bin 0 -> 329 bytes .../weed/textures/weed_weed_form_water.png | Bin 0 -> 357 bytes mods/food/weed/textures/weed_weed_nug.png | Bin 0 -> 701 bytes .../unified_inventory/depends.txt | 1 + mods/tools_and_machines/bvav/init.lua | 128 ++++++++ 25 files changed, 465 insertions(+), 2 deletions(-) create mode 100644 mods/food/weed/VERSION create mode 100644 mods/food/weed/depends.txt create mode 100644 mods/food/weed/init.lua create mode 100644 mods/food/weed/textures/cigarette.png create mode 100644 mods/food/weed/textures/weed_bed.png create mode 100644 mods/food/weed/textures/weed_big_grass.png create mode 100644 mods/food/weed/textures/weed_brownie.png create mode 100644 mods/food/weed/textures/weed_brownie_dough.png create mode 100644 mods/food/weed/textures/weed_flour.png create mode 100644 mods/food/weed/textures/weed_seeds.png create mode 100644 mods/food/weed/textures/weed_state_1.png create mode 100644 mods/food/weed/textures/weed_state_2.png create mode 100644 mods/food/weed/textures/weed_state_3.png create mode 100644 mods/food/weed/textures/weed_state_4.png create mode 100644 mods/food/weed/textures/weed_state_5.png create mode 100644 mods/food/weed/textures/weed_state_6.png create mode 100644 mods/food/weed/textures/weed_state_7.png create mode 100644 mods/food/weed/textures/weed_state_8.png create mode 100644 mods/food/weed/textures/weed_weed_form.png create mode 100644 mods/food/weed/textures/weed_weed_form_water.png create mode 100644 mods/food/weed/textures/weed_weed_nug.png create mode 100644 mods/tools_and_machines/bvav/init.lua diff --git a/goals.txt b/goals.txt index ef303ba..31d5bda 100644 --- a/goals.txt +++ b/goals.txt @@ -36,4 +36,11 @@ GOALS: # make drinks replenish stamina maybe +# diving outfit that slows down losing breath, or, stops you from losing breath while damaging suit over time + +# marijuana mod which allows player's to consume it, bongs, pipes, edibles, joints, different intakes do different things +#### + +# make lucky block spawn in the world + ]]-- diff --git a/mods/environment/sea/seaplants/init.lua b/mods/environment/sea/seaplants/init.lua index b9bc837..e6fd9e0 100644 --- a/mods/environment/sea/seaplants/init.lua +++ b/mods/environment/sea/seaplants/init.lua @@ -218,8 +218,20 @@ minetest.register_craft({ }) --- SEAPLANTS SAND AND DIRT GENERATION +-- SEAPLANTS GENERATION +minetest.register_ore({ + ore_type = "scatter", + ore = "moreblocks:super_glow_glass", + wherein = "default:water_source", + clust_scarcity = 8*8*8, + clust_num_ores = 8, + clust_size = 3, + height_min = -31000, + height_max = 64554, +}) + +--[[ minetest.register_ore({ ore_type = "scatter", @@ -536,4 +548,5 @@ minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen") minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown") minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen") minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred") -minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") \ No newline at end of file +minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") +]]-- diff --git a/mods/food/weed/VERSION b/mods/food/weed/VERSION new file mode 100644 index 0000000..4e379d2 --- /dev/null +++ b/mods/food/weed/VERSION @@ -0,0 +1 @@ +0.0.2 diff --git a/mods/food/weed/depends.txt b/mods/food/weed/depends.txt new file mode 100644 index 0000000..c99d85f --- /dev/null +++ b/mods/food/weed/depends.txt @@ -0,0 +1,3 @@ +default +farming + diff --git a/mods/food/weed/init.lua b/mods/food/weed/init.lua new file mode 100644 index 0000000..5f69657 --- /dev/null +++ b/mods/food/weed/init.lua @@ -0,0 +1,310 @@ +--[[ + +Weed mod (based on wheat and baking mods) +VERSION: 0.0.2 +LICENSE: GPLv3 +TODO: + +]] + +PLANTS_GROW_INTERVAL = 80 -- interval in ABMs for plants +PLANTS_GROW_CHANCE = 60 -- chance in ABMs for plants +PLANTS_VISUAL_SCALE = 1 -- visualscale for plants + + + + + + + +local LIGHT = 5 -- amount of light neded to weed grow + +-- ABMs +--[[ +minetest.register_abm({ + nodenames = {"weed:weed_1","weed:weed_2","weed:weed_3","weed:weed_4", + "weed:weed_5","weed:weed_6","weed:weed_7"}, + interval = PLANTS_GROW_INTERVAL/3*2, + chance = PLANTS_GROW_CHANCE/2, + action = function(pos, node, _, __) + local l = minetest.env:get_node_light(pos, nil) + local p = pos + local rnd = math.random(1, 3) + p.y = p.y - 1 -- it will change pos too, that cause using p.y = p.y + 1 + local under_node = minetest.env:get_node(p) + if (l >= LIGHT) and (under_node.name == "weed:dirt_bed") and (rnd == 1) then + local nname --= 'weed:weed_final' + if node.name == "weed:weed_1" then + + nname = 'weed:weed_2' + + elseif node.name == "weed:weed_2" then + + nname = 'weed:weed_3' + + elseif node.name == 'weed:weed_3' then + + nname = 'weed:weed_4' + + elseif node.name == 'weed:weed_4' then + + nname = 'weed:weed_5' + + elseif node.name == 'weed:weed_5' then + + nname = 'weed:weed_6' + + elseif node.name == 'weed:weed_6' then + + nname = 'weed:weed_7' + + else nname = 'weed:weed_final' end + p.y = p.y + 1 + minetest.env:remove_node(pos) + minetest.env:add_node(pos, { name = nname }) + end + end +}) + +minetest.register_abm({ + nodenames = NODES_TO_DELETE_IF_THEY_ABOVE_AIR, + interval = 3, + chance = 1, + action = function(pos, node, _, __) + local p = {x = pos.x,y = pos.y -1,z = pos.z} + --p.y = p.y - 1 -- it will change pos too, that cause using p.y = p.y + 1 + local under_node = minetest.env:get_node(p) + if (under_node.name == "air") then + --p.y = p.y + 1 + minetest.env:remove_node(pos) + minetest.env:add_node(p, {name = node.name}) + end + end +}) +minetest.register_abm({ + nodenames = "weed:dirt_bed", + interval = 40, + chance = 3, + action = function(pos, node, _, __) + local p = {x = pos.x,y = pos.y +1,z = pos.z} + local above_node = minetest.env:get_node(p) + + for i, plant in ipairs(DIRT_BED_TO_GRASS) do + if (above_node.name == plant) then return; end + end + minetest.env:remove_node(pos) + minetest.env:add_node(pos, {name = "weed:dirt_bed"}) + end +})-- ABMs end +]]-- + +-- nodes and abms +for i = 1,8 do + + -- the more grown the higher chance of crop - level 8 always has crop + local rarity = (14 - (i*2)) + 1 + + if i < 4 then + max_items = 0 + elseif i >= 4 and i < 7 then + max_items = 1 + elseif i == 7 then + max_items = 2 + elseif i == 8 then + max_items = 3 + end + + + minetest.register_node("weed:weed_" .. i, { + description = "Weed State " .. i, + drawtype = "plantlike", + tile_images = {"weed_state_" .. i .. ".png"}, + inventory_image = "weed_state_" .. i .. ".png", + paramtype = "light", + is_ground_content = true, + walkable = false, + groups = {snappy = 3,flammable = 2,flower = 1,flora = 1,attached_node = 1}, + drop = { + max_items = max_items, + items = { + { + items = {}, + rarity = rarity, + }, + { + items = {'default:dirt'}, + rarity = rarity, + } + } + }, + wall_mounted = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -0.4, 1/2}, + }, + }) + -- Fuel + minetest.register_craft({ + type = "fuel", + recipe = "weed:weed_" .. i, + burntime = 2, + }) +end + + + +minetest.register_node("weed:big_grass", { + drawtype = "plantlike", + paramtype = "facedir_simple", + tile_images = {"weed_weed_final.png"}, + inventory_image = "weed_weed_final.png", + paramtype = "light", + is_ground_content = true, + walkable = false, + groups = {dig_immediate=3,choppy=3}, + drop = { + max_items = 1, + items = { + { + items = {'weed:weed_nug'}, + rarity = 10, + }, + }, + }, + visual_scale = PLANTS_VISUAL_SCALE, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -0.3, 1/2}, + }, +}) + +--spawn weed in the world +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = min, + y_max = max, + decoration = "weed:weed_8", + --spawn_by = spawnby, + --num_spawn_by = num, +}) + +-- Nodes end +minetest.register_node("weed:wild_grass", { + drawtype = "plantlike", + paramtype = "facedir_simple", + tile_images = {"weed_weed_4.png"}, + inventory_image = "weed_weed_4.png", + paramtype = "light", + is_ground_content = true, + walkable = false, + groups = {dig_immediate=3,choppy=3}, + drop = { + max_items = 1, + items = { + { + items = {'weed:weed_nug'}, + rarity = 10, + }, + }, + }, + visual_scale = PLANTS_VISUAL_SCALE, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -0.3, 1/2}, + }, +}) + + + +------ + +minetest.register_craftitem("weed:flour", { + image = "weed_flour.png", + on_place = minetest.item_place +}) + +minetest.register_craftitem("weed:seeds", { + description = "Weed Seeds", + image = "weed_seeds.png", + on_place = minetest.item_place, + on_use = minetest.item_eat(-1) +}) + +minetest.register_craftitem("weed:brownie", { + description = "Weed Brownie", + image = "weed_brownie.png", + on_place = minetest.item_place, + on_use = minetest.item_eat(9) +}) +minetest.register_craftitem("weed:weed_cigarette", { + image = "cigarette.png", + on_place = minetest.item_place, + on_use = minetest.item_eat(1) +}) +minetest.register_craftitem("weed:brownie_dough", { + image = "weed_brownie_dough.png", + on_place = minetest.item_place, +}) + +minetest.register_craft({ + output = 'weed:flour 1', + recipe = { + {'weed:weed_nug', 'weed:weed_nug'}, + {'weed:weed_nug', 'weed:weed_nug'}, + } +}) + +minetest.register_craft({ + output = 'weed:brownie_dough 1', + recipe = { + {'weed:flour', 'weed:flour', 'weed:flour'}, + {'weed:flour', 'weed:weed_form_water', 'weed:flour'}, + {'weed:flour', 'weed:flour', 'weed:flour'}, + } +}) + +minetest.register_craft({ + output = 'weed:weed_form_empty 1', + recipe = { + {'default:wood', '', 'default:wood'}, + {'', 'default:wood', ''}, + } +}) +minetest.register_craft({ + output = 'weed:weed_cigarette', + recipe = { + {'default:paper'}, + {'weed:weed_nug'}, + } +}) + + + +minetest.register_craft({ + type = "cooking", + output = "weed:brownie", + recipe = "weed:brownie_dough", + cooktime = 10, + replacements = { + {"weed:brownie_dough", "weed:weed_form_empty"}, --- this is not work!!! + }, +}) + +minetest.register_node("weed:poop", { + description = "Weed poop", + drawtype = "plantlike", + tile_images = {"weed_state_1.png"}, + inventory_image = "weed_state_1.png", +}) + +print("[weed mod] Loaded!") diff --git a/mods/food/weed/textures/cigarette.png b/mods/food/weed/textures/cigarette.png new file mode 100644 index 0000000000000000000000000000000000000000..dccba959a90b4a4180871ee62c80520f46c55080 GIT binary patch literal 167 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 T9Xi)(00000NkvXXu0mjfN84>^ literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_brownie.png b/mods/food/weed/textures/weed_brownie.png new file mode 100644 index 0000000000000000000000000000000000000000..adb3c21fdd57563170675813b3ef9fe8bdf7d825 GIT binary patch literal 609 zcmV-n0-pVeP)>QW81(aA%%!HiB_8#Uth^m+-5B6f+sm+$5KJbb=94e#Khu|qGG3ddKpgnW9y$4bDPwm%D(=LVLh5(`6W<+rRuOL;R#OMX2~a174w zG15_vpOR(Yiy5v_RwN+=&UR0aG3;(k|oXyX%*=O$O_;`LahwXp2bNu*S2*K8T3~)xBmE zgBZ6>nXl1{JCiNW~ v_eP?#g3!6O?yoFHr(L!QJe{|a|9*Y|i@fFGFK09w00000NkvXXu0mjf$+i}E literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_brownie_dough.png b/mods/food/weed/textures/weed_brownie_dough.png new file mode 100644 index 0000000000000000000000000000000000000000..eebb0a30cffc448a9e2850f78f1ec7b88d12cd83 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf2CGC-mGo-U3d7N?UF z76=$Tn)KuU`v?Dx`SXlsXsmD+F}j%?db-8ixP@_HT>U==;otrz7HlfJ#V20z{i*Qb*5l<8b4+>#q-MMc{E}4BIPs+1x{mqX?GL}5R=;7A zT;3>QEQL70(Y)*K0-AbW|YuPgg)9(gt~sW}(!%mxa{W`;zRIOpf) zrskCZxeN@>MX8A;sVNHOnI#zt?w-B@DSD~wK=G%ZE{-7D;&NZg)yr}3 zodfC*oGhF98BCuqDBHoZa!;?dwrg038IvZ9_re3#nMoJ2dA>(c zcGSLGXWvh{KUepA<-4c%`vVTp-%=v*z&OBo--mqcpGZE&8rSY`V%?I;_) zyqXn#FYEq!IwkkKycekbjlJK#g5jEf_NnVa&t=b9Gt9cMq5gJ#^_AVF0SX!d=aU{q z@*LP`x2g8tx9|x|eg!cb?494Ys?a-N3ae`*!-GAGO<5xHragXkI?ibB{qwcmStk-M j%`BbtWLvfLKYcrfiT{td-Mn@)4HOcdu6{1-oD!Mh=m}d0L%N|Ks}gX&#J2bE2pRb$CSYoVZsz*V0ioX zEjD4SVvJZt(F8#*0vQ^fITNlPCI)u_K4)Wd5r!DZ&&2v0&4B~JMfNT{46wNaSs}7K zvj0Je2PZ&Qh^z=XHju@^Y+SZtD1-`Ncmds3LIz@Z0o{4%2I6uF10kDW8qw9ky+Eu@ vc-5hs4zd-S7|b;w8twuR2b<~G#6W6c;MSI`>PwOpQXsyktDnm{r-UW|{EU+! literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_1.png b/mods/food/weed/textures/weed_state_1.png new file mode 100644 index 0000000000000000000000000000000000000000..530a1695d3c0a633a6fdee03110f7fe097f1e3ec GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`&YmugAr-fh6C_v{Cx}d7Vd`@E zH+k*Of=w^~Un%q5z_@VX!ZVs@wfI;}MSTr_%ZDg^+h6Z>r2c)(zyB%L+gIL|UZ2LG Ye?{bN-md6LK;sxZUHx3vIVCg!02OsCG5`Po literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_2.png b/mods/food/weed/textures/weed_state_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6705e339c84d4bd63d07af983b8ea4e146c13963 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^`0({Ar-fh6C_v{H_TJW?K)Y% zNL1b5piDz01@y^{;)-{Wpw_`tR)QJd^tu zugr%muH3MH^KY*GZNI?d$^Tcps{i*E|Loj;b9c}u`x842{!N*=afzk%3P(oQ!$&d$ k|7&vnjr=_MqZ9*!5wo7$(olC}pi>w;UHx3vIVCg!03=XO(EtDd literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_3.png b/mods/food/weed/textures/weed_state_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a946fda1d6515c04f995f291166cdbe93a57782a GIT binary patch literal 213 zcmV;`04o29P)nh{5Q3G<23*P*kU{Mjpl(o P00000NkvXXu0mjfi)38d literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_4.png b/mods/food/weed/textures/weed_state_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd63af844be2c963935901f3796ae0120eb92fb GIT binary patch literal 309 zcmV-50m}Y~P)kL%I-PqqPp_45CdTGakWcWRPvNJN|3|IBXP{~6QF$TuW)vhn}edPT4S z$rBC#2Na3?4=tDcAJw6O+t9QQt^a-nLjN7|_`r(XN`RW0mH+$Z3xfG}IXqy4uxbWr zOrL7{KfYJ@e@dIif42;-{{eM!|3R9N)y32){10nUK{X_&&j4;K41f%{ex(BJqL3z~ z|K637{~h!Bi3<~uUqSShi>3cvi-o~1^33M_5Aq^jjsCT=;3x#K*R9JI?(7SKYp}`U z`X5#y_1~vT3b!GV)w19~1F?M0OJDym=|+SBrswk00000NkvXX Hu0mjfX#$V+ literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_5.png b/mods/food/weed/textures/weed_state_5.png new file mode 100644 index 0000000000000000000000000000000000000000..8247f2be72dd97e047134ea494d4ce080790c077 GIT binary patch literal 324 zcmV-K0lWT*P)Vpk% zFBSct+OGLOsz&a=RR#xcLqSdlVf$QOup;kD$^T9T0{^3H<-z>OcJ=>})i_)Q3Ou(G zk^d=^jQ%G!tNzcMU<3}#=uS-(4L*4S|6{wg|6|w;vI$uX6b3i0R{nQM;{XS!c`ECF zkc)`&e^`YSSmCYf)&Cvx`2NS%EB=qEQ}|yr#SFgz&V_>ii>I1{6)jvCCp>3iDqI7| zYyO48|9z^Ya2o=0c1V*FSizDd3A&SK#Goinn_}`mqf3YQs9nCM;6Fvlx}!G`uK@rM W$agM`p@@M10000o*wWVP)7;6}y&WE?~=kkILOl{ZvZ;{4^+t92Yz5k$a2x(FRD@vJU^xwHq@PBMQBuuO_IR5AK8DKY{ zXo}hYh&HwVHd$Q%3n!cYFPUcXKWT!&|G;{A6b&(T3jbrfwNVWL*$~yCfg%WU{_Ptz zU}rn#^MhTL*sl*)<5wUAVSD9Z29!^p09fqexuXA|0L|?;{O_L0{l9psIsQO(FBSbC zQ3Z*2P??v()sUGB?VS6b7r*es`bSviZiB}{SPb_#clx1 r*~p-++aE(LxmBI`w6Sts5njar@JWMUoNYnG$oyv@7g(mV|Br7}{_l{-N4_D}nVkRAI<&wB*yr+s4NPs<{BM!Q zhTG7r9=-q3wetT%nv}qbQYIPwcPi zPB#5tGR*>PP++}0iiVgvh5xbL+Ng$rYyfFg31WcT4syO*2G{@4X665m`TSt<#D0CS zoO2Arf4>4Dh#_7%m;nWf3CCpC|K637|3UuG?lt%yP$=@hc&hn-yKsj89zZdhLHPPplKLOjsQ%wBhv&aW7{h<75QhJt@M&D{|371z+5f;|(f`U`45)^HoavJ% z02iFIAUOv_YezEt*91Dbe5vdI?3tGTCr^&dO>R~HukOq6U&WgNdu)J0xNeFIIL=qD zEBdb$fl%1d;iU^>tNCCtAi7iYKPWAf*Sdfe?m5`{KWl~s+~1Xz&cb+8AIO;?I={pc z?1d9&CxZFmt*YSY%+A&jCMh}Z+}8wmW>|{~>G@*S`eO1k6F4>&rV=y&0M^jee+(iW QQ2+n{07*qoM6N<$f-_tWqyPW_ literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_state_8.png b/mods/food/weed/textures/weed_state_8.png new file mode 100644 index 0000000000000000000000000000000000000000..ef80c63078c765e875b8d264c063e7517f57b212 GIT binary patch literal 522 zcmV+l0`>igP)biCR$7b>TFDsV^^FtDu{$M}Cyz2g6{B-a03 z-A4a=`%J+GWmQO_Xecd{`(NIohH41N29QQ89|pMXAm_&?aQx4&k^3K=!37qt?$83u z#e^{YPtOp57?P68^B-GGL`O6KPc0Jp5AuIYtM32IETR8By{7-e0vP@$rE>ibi(~-l zV}@(;jsQv|bN>$ln!ajgnr=uK!~YrW!T+6o8UD{&?)g6{U+{lhyB^$yD8K`#I2>p| zQB_ZcVM~e;ap({}$+mzyK(Or}R35<9yf3(*I6@ z2!%6iy>wx0D>p0#ls2mT2c?Ckau=||v%A~>w@fsG`@1dMSr~8X1342!*XCP-y>R2i z6fnQAP5~U9m2n!vBqirlJ6qt+EU1+yJzwlzRZ4zl0)e%&GYA?00ER8wjVo-=vH$=8 M07*qoM6N<$f+orOc>n+a literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_weed_form.png b/mods/food/weed/textures/weed_weed_form.png new file mode 100644 index 0000000000000000000000000000000000000000..7a28affb72dde34af46ac6df9e19945bd6bc4b6c GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg)9&tVc{X{5q){$^*k>xPsCB-%|$f2A@hG<240 zX$0e`BYd4{zL5?~I;N^NzS%3nkS!-ze_Cnjdz<-RYFtbIY&x~z?n~zBEA7_uNvVDY OdBW4x&t;ucLK6T(RCLS$ literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_weed_form_water.png b/mods/food/weed/textures/weed_weed_form_water.png new file mode 100644 index 0000000000000000000000000000000000000000..b0d594087b2bd0aed41d38b2e29c3d7d7d3064dc GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg)9&tWHt8I78LB_~thD4M&=jZ08 z=9K`s3=Gaisfi`2DGKG8B^e6tp1uJoda3L{@jad{jv*GOlM^H|4sMe>EaMnO-Hlsvb!%n7HV`gS%A7elL1m6gd%mdKI;Vst05H>lO#lD@ literal 0 HcmV?d00001 diff --git a/mods/food/weed/textures/weed_weed_nug.png b/mods/food/weed/textures/weed_weed_nug.png new file mode 100644 index 0000000000000000000000000000000000000000..58c4d420606f93e2d5dc16b65483dec0f9b94c05 GIT binary patch literal 701 zcmV;u0z&l-v-c`e$>A<58H5X(0ycH1A zT9zE}Utxr7uXwZfW}$!9+sVG7qWa{B!+pa7ZMKrbO*$c1`T5bdwVwi$4Qu94Avo%Y+;3g!v`_}eIc~kbZR(M{z1XWWKX**n5t+> zTf+FW`BzB7fE&zcXr7^%FFX z6LeZHm<3&wNvY3rf7JHLK)Q{Th$^{mAQ*I9K;V(gGaAvbMEkf3eUox52+f?yqT)Q; j224o%q8cVJN(%l059(K=mgwM100000NkvXXu0mjf=ixr$ literal 0 HcmV?d00001 diff --git a/mods/mechanic_changes/unified_inventory/depends.txt b/mods/mechanic_changes/unified_inventory/depends.txt index e99f07b..833f62c 100644 --- a/mods/mechanic_changes/unified_inventory/depends.txt +++ b/mods/mechanic_changes/unified_inventory/depends.txt @@ -2,3 +2,4 @@ creative? intllib? datastorage? default +weed diff --git a/mods/tools_and_machines/bvav/init.lua b/mods/tools_and_machines/bvav/init.lua new file mode 100644 index 0000000..2feef57 --- /dev/null +++ b/mods/tools_and_machines/bvav/init.lua @@ -0,0 +1,128 @@ +bvav_settings = {} +bvav_settings.attach_scaling = -30 +bvav_settings.scaling = 0.667 + +math.randomseed( os.time() ) +minetest.register_entity("bvav:bvav_element", { + initial_properties = { + physical = true, + collide_with_objects = true, + collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, + visual = "wielditem", + textures = {}, + automatic_face_movement_dir = 0.0, + }, + + node = {}, + + set_node = function(self, node) + self.node = node + local prop = { + is_visible = true, + textures = {node.name}, + } + self.object:set_properties(prop) + end, + + get_staticdata = function(self) + return self.node.name + end, + + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + if staticdata then + self:set_node({name=staticdata}) + end + minetest.after(0,function() + if self.parent ~= nil and self.relative ~= nil then + self.object:set_attach(self.parent, "", {x=self.relative.x,y=self.relative.y,z=self.relative.z}, {x=0,y=0,z=0}) + self.object:set_properties({visual_size = {x=bvav_settings.scaling*3, y=bvav_settings.scaling*3}}) + else + --this fixes issues with scaling + self.object:set_properties({visual_size = {x=bvav_settings.scaling, y=bvav_settings.scaling}}) + end + end) + end, + + -- maybe have cannons, anchors, trolling lines, etc + on_step = function(self, dtime) + if self.parent ~= nil then + + else + --self.object:setvelocity({x=math.random(-1,1)*math.random(),y=0,z=math.random(-1,1)*math.random()}) + end + end, + -- +}) + + +function spawn_bvav_element(p, node) + local obj = core.add_entity(p, "bvav:bvav_element") + obj:get_luaentity():set_node(node) + return obj +end + +minetest.register_chatcommand("bvav", { + params = "", + description = "Send text to chat", + func = function(name) + pos = minetest.get_player_by_name(name):getpos() + local parent = spawn_bvav_element(pos, {name="default:wood"}) + local basepos = parent:getpos() + + pos.y = pos.y + 1 + local child = spawn_bvav_element(pos, {name="default:wood"}) + child:get_luaentity().parent = parent + child:get_luaentity().relative = {x=(basepos.x - pos.x) * bvav_settings.attach_scaling,y=(basepos.y - pos.y) * bvav_settings.attach_scaling,z= (basepos.z - pos.z) * bvav_settings.attach_scaling} + + end, +}) + +function bvav_create_vessel(pos) + + local parent = spawn_bvav_element(pos, {name="default:wood"}) + local basepos = parent:getpos() + + local range = 2 + + + + local min = {x=pos.x-range,y=pos.y-range,z=pos.z-range} + local max = {x=pos.x+range,y=pos.y+range,z=pos.z+range} + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(min,max) + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + local data = vm:get_data() + + + --build the air ship + for x = range*-1,range do + for y = range*-1,range do + for z = range*-1,range do + local node = vm:get_node_at({x=pos.x+x,y=pos.y+y,z=pos.z+z}).name + + local child = spawn_bvav_element(pos, {name=node}) + child:get_luaentity().parent = parent + child:get_luaentity().relative = {x=(basepos.x - pos.x) * bvav_settings.attach_scaling,y=(basepos.y - pos.y) * bvav_settings.attach_scaling,z= (basepos.z - pos.z) * bvav_settings.attach_scaling} + + end + end + end + + + + vm:set_data(data) + vm:calc_lighting() + vm:write_to_map() + vm:update_map() +end + + +minetest.register_node("bvav:control_node", { + description = "Control Node", + tiles = {"default_stone.png"}, + groups = {cracky=3, stone=1}, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + bvav_create_vessel(pos) + end, +})