commit 21dd350ca7d11e9636e464ac9ff070e4744f0a28 Author: Mossmanikin Date: Fri Dec 20 19:23:52 2013 +0100 Prehistoric 0.1.8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/archaetools/crafting.lua b/archaetools/crafting.lua new file mode 100644 index 0000000..bf81e90 --- /dev/null +++ b/archaetools/crafting.lua @@ -0,0 +1,257 @@ +----------------------------------------------------------------------------------------------- +-- Archae Tools - Crafting Recipes 0.1.0 +-- by Mossmanikin +-- License (everything): WTFPL +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Wooden Axe -> Club +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:axe_wood', + recipe = { + {'default:stick', 'default:stick'}, + {'default:stick', 'default:stick'}, + {'', 'default:stick'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Stone Axe +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:axe_stone', + recipe = { + {'flint:flintstone', 'flint:flintstone'}, + {'flint:flintstone', 'default:stick'}, + {'', 'default:stick'}, + } +}) + +if BONE_TOOLS == true then + +----------------------------------------------------------------------------------------------- +-- Wooden Pick -> Antler Pick +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- animalmaterials + output = 'default:pick_wood', + recipe = { + {'animalmaterials:bone', 'animalmaterials:bone', 'animalmaterials:bone'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + } +}) +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'animalmaterials:bone', 'animalmaterials:bone', 'animalmaterials:bone'}, + {'', 'animalmaterials:bone', ''}, + {'', 'animalmaterials:bone', ''}, + } +}) +minetest.register_craft({ -- bone + output = 'default:pick_wood', + recipe = { + {'bone:bone', 'bone:bone', 'bone:bone'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + } +}) +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'bone:bone', 'bone:bone', 'bone:bone'}, + {'', 'bone:bone', ''}, + {'', 'bone:bone', ''}, + } +}) + +minetest.register_craft({ -- gnawedbones + output = 'default:pick_wood', + recipe = { + {'gnawedbones:bone', 'gnawedbones:bone', 'gnawedbones:bone'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + } +}) +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'gnawedbones:bone', 'gnawedbones:bone', 'gnawedbones:bone'}, + {'', 'gnawedbones:bone', ''}, + {'', 'gnawedbones:bone', ''}, + } +}) +-- get rid of old recipe +minetest.register_craft({ + output = 'default:stick 14', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + } +}) + +end + +----------------------------------------------------------------------------------------------- +-- Stone Pickaxe +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:pick_stone', + recipe = { + {'flint:flintstone', 'flint:flintstone', 'flint:flintstone'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + } +}) + +if BONE_TOOLS == true then +----------------------------------------------------------------------------------------------- +-- Wooden Shovel -> Bone Shovel +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- animalmaterials + output = 'default:shovel_wood', + recipe = { + {''}, + {'animalmaterials:bone'}, + {'animalmaterials:bone'}, + } +}) +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'animalmaterials:bone'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ -- bone + output = 'default:shovel_wood', + recipe = { + {''}, + {'bone:bone'}, + {'bone:bone'}, + } +}) +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'bone:bone'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ -- gnawedbones + output = 'default:shovel_wood', + recipe = { + {''}, + {'gnawedbones:bone'}, + {'gnawedbones:bone'}, + } +}) +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'gnawedbones:bone'}, + {'default:stick'}, + {'default:stick'}, + } +}) +-- get rid of old recipe +minetest.register_craft({ + output = 'default:stick 6', + recipe = { + {'group:wood'}, + {'default:stick'}, + {'default:stick'}, + } +}) +end +----------------------------------------------------------------------------------------------- +-- Stone Shovel +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:shovel_stone', + recipe = { + {'flint:flintstone'}, + {'default:stick'}, + {'default:stick'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Wooden Sword -> Wooden Spear +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:sword_wood', + recipe = { + {'default:stick'}, + {'default:stick'}, + {'default:stick'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Stone Sword -> Stone Spear +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'default:sword_stone', + recipe = { + {'flint:flintstone'}, + {'flint:flintstone'}, + {'default:stick'}, + } +}) + +if (minetest.get_modpath("farming")) ~= nil then +----------------------------------------------------------------------------------------------- +-- Wooden Hoe -> Digging Stick +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'farming:hoe_wood', + recipe = { + {'default:stick', 'default:stick'}, + {'', 'default:stick'}, + {'', 'default:stick'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Stone Hoe +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'farming:hoe_stone', + recipe = { + {'flint:flintstone', 'flint:flintstone'}, + {'', 'default:stick'}, + {'', 'default:stick'}, + } +}) + +end + +if (minetest.get_modpath("stoneage")) ~= nil then +----------------------------------------------------------------------------------------------- +-- Biface +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'stoneage:biface', + recipe = { + {'flint:flintstone'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Firestriker +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + type = 'shapeless', + output = 'stoneage:firestriker_stone', + recipe = {'flint:flintstone', 'group:stone'}, +}) + +end + + + diff --git a/archaetools/depends.txt b/archaetools/depends.txt new file mode 100644 index 0000000..d77ba25 --- /dev/null +++ b/archaetools/depends.txt @@ -0,0 +1,2 @@ +default +farming diff --git a/archaetools/init.lua b/archaetools/init.lua new file mode 100644 index 0000000..cc785bc --- /dev/null +++ b/archaetools/init.lua @@ -0,0 +1,207 @@ +----------------------------------------------------------------------------------------------- +local title = "Archae Tools" +local version = "0.1.1" +local mname = "archaetools" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: default, farming, flint & stoneage +-- Looked at code from: animalmaterials, bone +-- Dependencies: default, farming +-- Supports: animalmaterials, bone, flint, gnawedbones, stoneage +----------------------------------------------------------------------------------------------- + +dofile(minetest.get_modpath("archaetools").."/settings.txt") +dofile(minetest.get_modpath("archaetools").."/crafting.lua") + +----------------------------------------------------------------------------------------------- +-- Wooden Axe -> Club +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:axe_wood", { + description = "Club", + inventory_image = "archaetools_woodclub.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + choppy={times={[3]=0.80}, uses=10, maxlevel=1}, + fleshy={times={[2]=1.50, [3]=0.80}, uses=10, maxlevel=1}, + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +if BONE_TOOLS == true then +----------------------------------------------------------------------------------------------- +-- Wooden Pick -> Antler Pick +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:pick_wood", { + description = "Deer Antler Pickaxe", + inventory_image = "archaetools_antlerpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +----------------------------------------------------------------------------------------------- +-- Wooden Shovel -> Bone Shovel +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:shovel_wood", { + description = "Bone Shovel", + inventory_image = "archaetools_boneshovel.png", + wield_image = "archaetools_boneshovel.png^[transformFX", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +else +----------------------------------------------------------------------------------------------- +-- Wooden Shovel +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:shovel_wood", { + description = "Wooden Shovel", + inventory_image = "archaetools_woodshovel.png", + wield_image = "archaetools_woodshovel.png^[transformFX", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +end + +----------------------------------------------------------------------------------------------- +-- Stone Shovel +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:shovel_stone", { + description = "Stone Shovel", + inventory_image = "archaetools_stoneshovel.png", + wield_image = "archaetools_stoneshovel.png^[transformFX", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, +}) + +----------------------------------------------------------------------------------------------- +-- Wooden Sword -> Wooden Spear +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:sword_wood", { + description = "Wooden Spear", + inventory_image = "archaetools_woodspear.png", + wield_image = "archaetools_woodspear.png^[transformFX", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Stone Sword -> Stone Spear +----------------------------------------------------------------------------------------------- +minetest.register_tool(":default:sword_stone", { + description = "Stone Spear", + inventory_image = "archaetools_stonespear.png", + wield_image = "archaetools_stonespear.png^[transformFX", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Wooden Hoe -> Digging Stick +----------------------------------------------------------------------------------------------- +if (minetest.get_modpath("farming")) ~= nil then +-- turns nodes with group soil=1 into soil +local function hoe_on_use(itemstack, user, pointed_thing, uses) + local pt = pointed_thing + -- check if pointing at a node + if not pt then + return + end + if pt.type ~= "node" then + return + end + + local under = minetest.get_node(pt.under) + local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} + local above = minetest.get_node(p) + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return + end + if not minetest.registered_nodes[above.name] then + return + end + + -- check if the node above the pointed thing is air + if above.name ~= "air" then + return + end + + -- check if pointing at dirt + if minetest.get_item_group(under.name, "soil") ~= 1 then + return + end + + -- turn the node into soil, wear out item and play sound + minetest.set_node(pt.under, {name="farming:soil"}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + if minetest.get_modpath("fishing") ~= nil then + if math.random(1, 100) < 60 then + local inv = user:get_inventory() + if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) + end + end + end + itemstack:add_wear(65535/(uses-1)) + return itemstack +end + +minetest.register_tool(":farming:hoe_wood", { + description = "Digging Stick", + inventory_image = "archaetools_wooddigstick.png", + wield_image = "archaetools_wooddigstick.png^[transformFX", + on_use = function(itemstack, user, pointed_thing) + return hoe_on_use(itemstack, user, pointed_thing, 30) + end, +}) +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/archaetools/settings.txt b/archaetools/settings.txt new file mode 100644 index 0000000..674f247 --- /dev/null +++ b/archaetools/settings.txt @@ -0,0 +1 @@ +BONE_TOOLS = true \ No newline at end of file diff --git a/archaetools/textures/archaetools_antlerpick.png b/archaetools/textures/archaetools_antlerpick.png new file mode 100644 index 0000000..6ab9633 Binary files /dev/null and b/archaetools/textures/archaetools_antlerpick.png differ diff --git a/archaetools/textures/archaetools_boneshovel.png b/archaetools/textures/archaetools_boneshovel.png new file mode 100644 index 0000000..299150a Binary files /dev/null and b/archaetools/textures/archaetools_boneshovel.png differ diff --git a/archaetools/textures/archaetools_stoneshovel.png b/archaetools/textures/archaetools_stoneshovel.png new file mode 100644 index 0000000..4ad0c36 Binary files /dev/null and b/archaetools/textures/archaetools_stoneshovel.png differ diff --git a/archaetools/textures/archaetools_stonespear.png b/archaetools/textures/archaetools_stonespear.png new file mode 100644 index 0000000..f2ac028 Binary files /dev/null and b/archaetools/textures/archaetools_stonespear.png differ diff --git a/archaetools/textures/archaetools_woodclub.png b/archaetools/textures/archaetools_woodclub.png new file mode 100644 index 0000000..da92310 Binary files /dev/null and b/archaetools/textures/archaetools_woodclub.png differ diff --git a/archaetools/textures/archaetools_wooddigstick.png b/archaetools/textures/archaetools_wooddigstick.png new file mode 100644 index 0000000..a948c98 Binary files /dev/null and b/archaetools/textures/archaetools_wooddigstick.png differ diff --git a/archaetools/textures/archaetools_woodshovel.png b/archaetools/textures/archaetools_woodshovel.png new file mode 100644 index 0000000..d68f119 Binary files /dev/null and b/archaetools/textures/archaetools_woodshovel.png differ diff --git a/archaetools/textures/archaetools_woodspear.png b/archaetools/textures/archaetools_woodspear.png new file mode 100644 index 0000000..9128358 Binary files /dev/null and b/archaetools/textures/archaetools_woodspear.png differ diff --git a/archaetools/textures/default_stick.png b/archaetools/textures/default_stick.png new file mode 100644 index 0000000..deb84bd Binary files /dev/null and b/archaetools/textures/default_stick.png differ diff --git a/archaetools/textures/default_tool_stoneaxe.png b/archaetools/textures/default_tool_stoneaxe.png new file mode 100644 index 0000000..665a771 Binary files /dev/null and b/archaetools/textures/default_tool_stoneaxe.png differ diff --git a/archaetools/textures/default_tool_stonepick.png b/archaetools/textures/default_tool_stonepick.png new file mode 100644 index 0000000..0d35b71 Binary files /dev/null and b/archaetools/textures/default_tool_stonepick.png differ diff --git a/archaetools/textures/default_tool_woodpick.png b/archaetools/textures/default_tool_woodpick.png new file mode 100644 index 0000000..5674715 Binary files /dev/null and b/archaetools/textures/default_tool_woodpick.png differ diff --git a/archaetools/textures/farming_tool_stonehoe.png b/archaetools/textures/farming_tool_stonehoe.png new file mode 100644 index 0000000..ae37ddb Binary files /dev/null and b/archaetools/textures/farming_tool_stonehoe.png differ diff --git a/burningmaterials/depends.txt b/burningmaterials/depends.txt new file mode 100644 index 0000000..6e3837a --- /dev/null +++ b/burningmaterials/depends.txt @@ -0,0 +1 @@ +stoneage \ No newline at end of file diff --git a/burningmaterials/init.lua b/burningmaterials/init.lua new file mode 100644 index 0000000..8ef6353 --- /dev/null +++ b/burningmaterials/init.lua @@ -0,0 +1,255 @@ +----------------------------------------------------------------------------------------------- +local title = "Burning Materials" +local version = "0.0.4" +local mname = "burningmaterials" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: campfire, stoneage +-- Looked at code from: +-- Dependencies: stoneage +-- Supports: darkage, dryplants +----------------------------------------------------------------------------------------------- + +dofile(minetest.get_modpath("burningmaterials").."/settings.txt") + +tinder = { + "flowers:cotton", + "default:paper", + "default:coal_lump", + "garden:cotton", + + "default:dry_shrub", + "darkage:dry_leaves", + "darkage:straw", + "dryplants:hay", + "dryplants:reed", +} + +for _,tinder in ipairs(tinder) do + minetest.register_craft({ + output = 'stoneage:bonfire', + recipe = { + {'', 'default:stick', ''}, + {'default:stick', tinder, 'default:stick'}, + } + }) +end + +if BONFIRE_FOR_COOKING == true then + +minetest.register_node(":stoneage:bonfire_unlit", { + description = "Bonfire", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"stoneage_bonfire_unlit.png"}, + inventory_image = "stoneage_bonfire_unlit.png", + wield_image = "stoneage_bonfire_unlit.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + drop = "default:coal_lump", + groups = {snappy=3,flammable=2,attached_node=1}, + after_dig_node = function(pos, node, oldmetadata, puncher) + local wield = puncher:get_wielded_item():get_name() + if wield == "default:torch" then + node.name = "stoneage:bonfire" + minetest.env:set_node(pos, node) + local inv = puncher:get_inventory() + inv:remove_item("main", "default:coal_lump") + end + end, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3}, + }, + + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("infotext", "Campfire") + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, +}) + +minetest.register_node(":stoneage:bonfire", { + description = "Bonfire", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = { + {name="stoneage_bonfire_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}} + }, + inventory_image = "stoneage_bonfire_unlit.png", + wield_image = "stoneage_bonfire_unlit.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + drop = "", + damage_per_second = 1, + light_source = LIGHT_MAX-1, + groups = {dig_immediate=3,igniter=1,attached_node=1}, + after_place_node = function(pos, placer) +-- fire.on_flame_add_at(pos) + end, + after_dig_node = function(pos, node, oldmetadata, puncher) + node.name = "stoneage:bonfire_unlit" + minetest.env:set_node(pos, node) +-- fire.on_flame_remove_at(pos) + puncher:set_hp(puncher:get_hp()-3) + end, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3}, + }, + + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", default.furnace_inactive_formspec) + meta:set_string("infotext", "Bonfire"); + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos); + local inv = meta:get_inventory() + if not inv:is_empty("fuel") then + return false + elseif not inv:is_empty("dst") then + return false + elseif not inv:is_empty("src") then + return false + end + return true + end, +}) + +function hacky_swap_node(pos,name) + local node = minetest.env:get_node(pos) + local meta = minetest.env:get_meta(pos) + local meta0 = meta:to_table() + if node.name == name then + return + end + node.name = name + local meta0 = meta:to_table() + minetest.env:set_node(pos,node) + meta = minetest.env:get_meta(pos) + meta:from_table(meta0) +end + +minetest.register_abm({ + nodenames = {"stoneage:bonfire_unlit","stoneage:bonfire"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.env:get_meta(pos) + for i, name in ipairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time" + }) do + if meta:get_string(name) == "" then + meta:set_float(name, 0.0) + end + end + + local inv = meta:get_inventory() + + local srclist = inv:get_list("src") + local cooked = nil + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_float("fuel_time", meta:get_float("fuel_time") + 0.25) + meta:set_float("src_time", meta:get_float("src_time") + 0.25) + if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then + -- check if there's room for output in "dst" list + if inv:room_for_item("dst",cooked.item) then + -- Put result in "dst" list + inv:add_item("dst", cooked.item) + -- take stuff from "src" list + srcstack = inv:get_stack("src", 1) + srcstack:take_item() + inv:set_stack("src", 1, srcstack) + else + print("Could not insert '"..cooked.item:to_string().."'") + end + meta:set_string("src_time", 0) + end + end + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + local percent = math.floor(meta:get_float("fuel_time") / + meta:get_float("fuel_totaltime") * 100) + meta:set_string("infotext","Furnace active: "..percent.."%") + hacky_swap_node(pos,"stoneage:bonfire") + meta:set_string("formspec", + "size[8,9]".. + "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-percent)..":default_furnace_fire_fg.png]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;1,1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]") + return + end + + local fuel = nil + local cooked = nil + local fuellist = inv:get_list("fuel") + local srclist = inv:get_list("src") + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + if fuellist then + fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if fuel.time <= 0 then + meta:set_string("infotext","Put more wood on the fire!") + hacky_swap_node(pos,"stoneage:bonfire_unlit") + meta:set_string("formspec", default.furnace_inactive_formspec) + return + end + + + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + local stack = inv:get_stack("fuel", 1) + stack:take_item() + inv:set_stack("fuel", 1, stack) + end, +}) + +end +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/burningmaterials/settings.txt b/burningmaterials/settings.txt new file mode 100644 index 0000000..37bd032 --- /dev/null +++ b/burningmaterials/settings.txt @@ -0,0 +1 @@ +BONFIRE_FOR_COOKING = false \ No newline at end of file diff --git a/gnawedbones/depends.txt b/gnawedbones/depends.txt new file mode 100644 index 0000000..3e13a75 --- /dev/null +++ b/gnawedbones/depends.txt @@ -0,0 +1,2 @@ +default +legacy \ No newline at end of file diff --git a/gnawedbones/init.lua b/gnawedbones/init.lua new file mode 100644 index 0000000..fadd100 --- /dev/null +++ b/gnawedbones/init.lua @@ -0,0 +1,218 @@ +----------------------------------------------------------------------------------------------- +local title = "Gnawed Bones" +local version = "0.0.3" +local mname = "gnawedbones" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: animalmaterials, fishing, legacy, mobs +-- Looked at code from: +-- Dependencies: default, legacy +-- Supports: animalmaterials, mobs +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Bone +----------------------------------------------------------------------------------------------- +minetest.register_craftitem("gnawedbones:bone", { + description = "Bone", + inventory_image = "gnawedbones_bone.png", +}) + +-- replace, just in case bones from animalmaterials and/or bone are in inventory/world and mod(s) disabled/deinstalled +minetest.register_alias("bone:bone", "gnawedbones:bone") +minetest.register_alias("animalmaterials:bone", "gnawedbones:bone") + +local heal_1 = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() + 1 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end + +local heal_3 = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() + 3 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end + +----------------------------------------------------------------------------------------------- +-- Old items (legacy) +----------------------------------------------------------------------------------------------- +-- Rat +minetest.register_craftitem(":rat", { + description = "Rat", + inventory_image = "rat.png", + on_use = heal_3, +}) +-- Cooked Rat +minetest.register_craftitem(":cooked_rat", { + description = "Cooked rat", + inventory_image = "cooked_rat.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() + 6 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end, +}) + +----------------------------------------------------------------------------------------------- +-- Simple Mobs +----------------------------------------------------------------------------------------------- + +if minetest.get_modpath("mobs") ~= nil then +-- Raw Meat +minetest.register_craftitem(":mobs:meat_raw", { + description = "Raw Meat", + inventory_image = "mobs_meat_raw.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() + 4 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end, +}) +-- Meat +minetest.register_craftitem(":mobs:meat", { + description = "Meat", + inventory_image = "mobs_meat.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() + 8 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end, +}) +-- Rat +minetest.register_craftitem(":mobs:rat", { + description = "Rat", + inventory_image = "mobs_rat_inventory.png", + on_use = heal_1, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.above then + minetest.env:add_entity(pointed_thing.above, "mobs:rat") + itemstack:take_item() + end + return itemstack + end, +}) +-- Cooked Rat +minetest.register_craftitem(":mobs:rat_cooked", { + description = "Cooked Rat", + inventory_image = "mobs_cooked_rat.png", + on_use = heal_3, +}) +end + +----------------------------------------------------------------------------------------------- +-- Mobf +----------------------------------------------------------------------------------------------- +if minetest.get_modpath("animalmaterials") ~= nil then +minetest.register_craftitem(":animalmaterials:meat_raw", { + description = "Raw meat", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_pork", { + description = "Pork (raw)", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_beef", { + description = "Beef (raw)", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_chicken", { + description = "Chicken (raw)", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_lamb", { + description = "Lamb (raw)", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_venison", { + description = "Venison (raw)", + image = "animalmaterials_meat_raw.png", + on_use = heal_1, + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem(":animalmaterials:meat_undead", { + description = "Meat (not quite dead)", + image = "animalmaterials_meat_raw.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() - 2 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end, + groups = { meat=1, eatable=1 }, + stack_max=5 +}) +minetest.register_craftitem(":animalmaterials:meat_toxic", { + description = "Toxic Meat", + image = "animalmaterials_meat_raw.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local heal = user:get_hp() - 5 + user:set_hp(heal) + itemstack:take_item() + if inv:room_for_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) then + inv:add_item("main", {name="gnawedbones:bone", count=1, wear=0, metadata=""}) + end + return itemstack + end, + groups = { meat=1, eatable=1 }, + stack_max=5 +}) +minetest.register_craftitem(":animalmaterials:meat_ostrich", { + description = "Ostrich Meat", + image = "animalmaterials_meat_raw.png", + on_use = heal_3, + groups = { meat=1, eatable=1 }, + stack_max=5 +}) +end + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/gnawedbones/textures/gnawedbones_bone.png b/gnawedbones/textures/gnawedbones_bone.png new file mode 100644 index 0000000..037ac57 Binary files /dev/null and b/gnawedbones/textures/gnawedbones_bone.png differ diff --git a/huntertools/depends.txt b/huntertools/depends.txt new file mode 100644 index 0000000..891fe97 --- /dev/null +++ b/huntertools/depends.txt @@ -0,0 +1 @@ +throwing \ No newline at end of file diff --git a/huntertools/init.lua b/huntertools/init.lua new file mode 100644 index 0000000..93e6520 --- /dev/null +++ b/huntertools/init.lua @@ -0,0 +1,126 @@ +----------------------------------------------------------------------------------------------- +local title = "Hunter Tools" +local version = "0.0.3" +local mname = "huntertools" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: throwing +-- Looked at code from: default +-- Dependencies: throwing +-- Supports: animalmaterials, flint, stoneage +----------------------------------------------------------------------------------------------- +-- add obsidian shard? + +----------------------------------------------------------------------------------------------- +-- Bow +----------------------------------------------------------------------------------------------- + +minetest.register_craft({ + output = 'throwing:bow_wood', + recipe = { + {'farming:string', 'default:stick', ''}, + {'farming:string', '', 'default:stick'}, + {'farming:string', 'default:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'throwing:bow_wood', + recipe = { + {'', 'default:stick', 'farming:string'}, + {'default:stick', '', 'farming:string'}, + {'', 'default:stick', 'farming:string'}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Arrow +----------------------------------------------------------------------------------------------- + +-- default + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'group:stone', 'default:stick', 'default:stick'}, + } +}) + +-- stoneage + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'stoneage:silex', 'default:stick', 'default:stick'}, + } +}) + +-- flint + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'flint:flintstone', 'default:stick', 'default:stick'}, + } +}) + +-- with feathers + +-- animalmaterials + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'', 'group:stone', ''}, + {'', 'default:stick', ''}, + {'', 'animalmaterials:feather', ''}, + } +}) + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'group:stone', 'default:stick', 'animalmaterials:feather'}, + } +}) + +-- animalmaterials & stoneage + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'', 'stoneage:silex', ''}, + {'', 'default:stick', ''}, + {'', 'animalmaterials:feather', ''}, + } +}) + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'stoneage:silex', 'default:stick', 'animalmaterials:feather'}, + } +}) + +-- animalmaterials & flint + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'', 'flint:flintstone', ''}, + {'', 'default:stick', ''}, + {'', 'animalmaterials:feather', ''}, + } +}) + +minetest.register_craft({ + output = 'throwing:arrow 16', + recipe = { + {'flint:flintstone', 'default:stick', 'animalmaterials:feather'}, + } +}) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/huntertools/textures/alternates/throwing_bow_wood.png b/huntertools/textures/alternates/throwing_bow_wood.png new file mode 100644 index 0000000..9f5cf37 Binary files /dev/null and b/huntertools/textures/alternates/throwing_bow_wood.png differ diff --git a/huntertools/textures/animalmaterials_feather.png b/huntertools/textures/animalmaterials_feather.png new file mode 100644 index 0000000..31b1698 Binary files /dev/null and b/huntertools/textures/animalmaterials_feather.png differ diff --git a/huntertools/textures/throwing_arrow.png b/huntertools/textures/throwing_arrow.png new file mode 100644 index 0000000..1bc4a7c Binary files /dev/null and b/huntertools/textures/throwing_arrow.png differ diff --git a/huntertools/textures/throwing_bow_wood.png b/huntertools/textures/throwing_bow_wood.png new file mode 100644 index 0000000..dad0524 Binary files /dev/null and b/huntertools/textures/throwing_bow_wood.png differ diff --git a/modpack.txt b/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/moresilex/depends.txt b/moresilex/depends.txt new file mode 100644 index 0000000..6e3837a --- /dev/null +++ b/moresilex/depends.txt @@ -0,0 +1 @@ +stoneage \ No newline at end of file diff --git a/moresilex/init.lua b/moresilex/init.lua new file mode 100644 index 0000000..24b20a0 --- /dev/null +++ b/moresilex/init.lua @@ -0,0 +1,83 @@ +----------------------------------------------------------------------------------------------- +local title = "More Silex" +local version = "0.0.4" +local mname = "moresilex" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: stoneage +-- Looked at code from: +-- Dependencies: stoneage +-- Supports: +----------------------------------------------------------------------------------------------- + +minetest.register_node("moresilex:desert_sand_with_silex", { + description = "Silex", + tiles = {"default_desert_sand.png^stoneage_silex_ore.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1}, + drop = 'stoneage:silex', + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("moresilex:gravel_with_silex", { + description = "Silex", + tiles = {"default_gravel.png^stoneage_silex_ore.png"}, + is_ground_content = true, + groups = {crumbly=3, falling_node=1}, + drop = 'stoneage:silex', + sounds = default.node_sound_sand_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Generating +----------------------------------------------------------------------------------------------- + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max) + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) + local pr = PseudoRandom(seed) + local num_chunks = math.floor(chunks_per_volume * volume) + local chunk_size = 3 + if ore_per_chunk <= 4 then + chunk_size = 2 + end + local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) + --print("generate_ore num_chunks: "..dump(num_chunks)) + for i=1,num_chunks do + local y0 = pr:next(y_min, y_max-chunk_size+1) + if y0 >= height_min and y0 <= height_max then + local x0 = pr:next(minp.x, maxp.x-chunk_size+1) + local z0 = pr:next(minp.z, maxp.z-chunk_size+1) + local p0 = {x=x0, y=y0, z=z0} + for x1=0,chunk_size-1 do + for y1=0,chunk_size-1 do + for z1=0,chunk_size-1 do + if pr:next(1,inverse_chance) == 1 then + local x2 = x0+x1 + local y2 = y0+y1 + local z2 = z0+z1 + local p2 = {x=x2, y=y2, z=z2} + if minetest.env:get_node(p2).name == wherein then + minetest.env:set_node(p2, {name=name}) + end + end + end + end + end + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("moresilex:desert_sand_with_silex", "default:desert_sand", minp, maxp, seed+485, 1/21/21/21, 11, -16, 32) +generate_ore("moresilex:gravel_with_silex", "default:gravel", minp, maxp, seed+485, 1/21/21/21, 11, -16, 32) +end) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/primitivedeco/depends.txt b/primitivedeco/depends.txt new file mode 100644 index 0000000..8401bd9 --- /dev/null +++ b/primitivedeco/depends.txt @@ -0,0 +1,2 @@ +default +dye \ No newline at end of file diff --git a/primitivedeco/init.lua b/primitivedeco/init.lua new file mode 100644 index 0000000..119b55b --- /dev/null +++ b/primitivedeco/init.lua @@ -0,0 +1,75 @@ +----------------------------------------------------------------------------------------------- +local title = "Primitive Deco" +local version = "0.0.3" +local mname = "primitivedeco" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: sign +-- Looked at code from: animalmaterials, dye +-- Dependencies: default, dye +-- Supports: animalmaterials +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Fur Cover +----------------------------------------------------------------------------------------------- +if (minetest.get_modpath("animalmaterials")) ~= nil then +minetest.register_node("primitivedeco:fur", { + description = "Fur Cover", + inventory_image = "animalmaterials_fur.png", + wield_image = "animalmaterials_fur.png", + drawtype = "signlike", + tiles = { "animalmaterials_fur.png" }, + paramtype = "light", + paramtype2 = "wallmounted", + --paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {choppy=2,dig_immediate=2,attached_node=1}, + legacy_wallmounted = true, +}) +-- craft +minetest.register_craft({ + output = 'primitivedeco:fur', + recipe = { + {'animalmaterials:fur'}, + } +}) +end + +----------------------------------------------------------------------------------------------- +-- Wisent Painting +----------------------------------------------------------------------------------------------- +minetest.register_node("primitivedeco:wisent", { + description = "Wisent Painting", + inventory_image = "primitivedeco_wisent.png", + wield_image = "dye_red.png", + drawtype = "signlike", + tiles = { "primitivedeco_wisent.png" }, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {choppy=2,dig_immediate=2,attached_node=1}, + legacy_wallmounted = true, +}) +-- craft +minetest.register_craft({ + output = 'primitivedeco:wisent', + recipe = { + {'dye:black', '', 'dye:black'}, + {'dye:red', 'dye:red', 'dye:red'}, + {'', 'dye:red', ''}, + } +}) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/primitivedeco/textures/primitivedeco_wisent.png b/primitivedeco/textures/primitivedeco_wisent.png new file mode 100644 index 0000000..b0620a1 Binary files /dev/null and b/primitivedeco/textures/primitivedeco_wisent.png differ diff --git a/resin/depends.txt b/resin/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/resin/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/resin/init.lua b/resin/init.lua new file mode 100644 index 0000000..48b2318 --- /dev/null +++ b/resin/init.lua @@ -0,0 +1,28 @@ +----------------------------------------------------------------------------------------------- +-- Dry Plants - Resin 0.0.2 (not in use) +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: default, plants_lib, trees +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Resin +----------------------------------------------------------------------------------------------- +--[[minetest.register_node("dryplants:resin", { + description = "Resin", + drawtype = "signlike", + tile_images = { "dryplants_resin.png" }, + inventory_image = "dryplants_resin.png", + wield_image = "dryplants_resin.png", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + groups = { snappy = 3},]] + --sounds = default.node_sound_leaves_defaults(), + --[[selection_box = { + type = "wallmounted", + }, + buildable_to = true, +})]] diff --git a/resin/textures/dryplants_dandelion_leave.png b/resin/textures/dryplants_dandelion_leave.png new file mode 100644 index 0000000..089cd7e Binary files /dev/null and b/resin/textures/dryplants_dandelion_leave.png differ diff --git a/resin/textures/dryplants_resin.png b/resin/textures/dryplants_resin.png new file mode 100644 index 0000000..eddf43a Binary files /dev/null and b/resin/textures/dryplants_resin.png differ diff --git a/resin/textures/resin.png b/resin/textures/resin.png new file mode 100644 index 0000000..e7fa417 Binary files /dev/null and b/resin/textures/resin.png differ diff --git a/resin/textures/resin_palette.png b/resin/textures/resin_palette.png new file mode 100644 index 0000000..95ac693 Binary files /dev/null and b/resin/textures/resin_palette.png differ diff --git a/stringrecipes/depends.txt b/stringrecipes/depends.txt new file mode 100644 index 0000000..420562c --- /dev/null +++ b/stringrecipes/depends.txt @@ -0,0 +1 @@ +farming \ No newline at end of file diff --git a/stringrecipes/init.lua b/stringrecipes/init.lua new file mode 100644 index 0000000..c804f95 --- /dev/null +++ b/stringrecipes/init.lua @@ -0,0 +1,63 @@ +----------------------------------------------------------------------------------------------- +local title = "String Recipes" +local version = "0.0.5" +local mname = "stringrecipes" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: +-- Looked at code from: animaltools, default, farming +-- Dependencies: default, farming +-- Supports: animalmaterials, dryplants +----------------------------------------------------------------------------------------------- + +minetest.register_craft({ + output = "farming:string 4", -- looked ad farming mod and thought: why not the other way around? + recipe = { + {"group:wool"}, + } +}) + +minetest.register_craft({ + output = "farming:string 4", + recipe = { + {"animalmaterials:fur"}, + {"animalmaterials:fur"}, + } +}) + +minetest.register_craft({ + output = "farming:string 2", + recipe = { + {"default:grass_1"}, + {"default:grass_1"}, + } +}) + + +minetest.register_craft({ + output = "farming:string 4", -- wanted the recipe of the original throwing mod, but with more output + recipe = { + {"default:junglegrass"}, + {"default:junglegrass"}, + } +}) + +minetest.register_craft({ + output = "farming:string 4", + recipe = { + {"default:papyrus"}, + {"default:papyrus"}, + } +}) + +minetest.register_craft({ + output = "farming:string 4", + recipe = { + {"dryplants:reedmace_sapling"}, + {"dryplants:reedmace_sapling"}, + } +}) +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/woodstuff/crafting.lua b/woodstuff/crafting.lua new file mode 100644 index 0000000..ba910e3 --- /dev/null +++ b/woodstuff/crafting.lua @@ -0,0 +1,61 @@ +----------------------------------------------------------------------------------------------- +-- Wood Stuff - Crafting 0.0.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: default, darkage, stairs, stoneage +-- Dependencies: default +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = 'woodstuff:twigs', + recipe = { + {'default:stick','default:stick'}, + {'default:stick','default:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 4', + recipe = { + {'woodstuff:twigs'}, + } +}) + +minetest.register_craft({ + output = 'woodstuff:twigs_slab 6', + recipe = { + {'woodstuff:twigs','woodstuff:twigs','woodstuff:twigs'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 2', + recipe = { + {'woodstuff:twigs_slab'}, + } +}) + +minetest.register_craft({ + output = 'woodstuff:twigs_roof 4', + recipe = { + {'woodstuff:twigs',''}, + {'','woodstuff:twigs'}, + } +}) + +minetest.register_craft({ + output = 'woodstuff:twigs_roof 4', + recipe = { + {'','woodstuff:twigs'}, + {'woodstuff:twigs',''}, + } +}) + +minetest.register_craft({ + output = 'woodstuff:twigs_roof_corner 8', + recipe = { + {'','woodstuff:twigs',''}, + {'woodstuff:twigs','','woodstuff:twigs'}, + } +}) + diff --git a/woodstuff/depends.txt b/woodstuff/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/woodstuff/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/woodstuff/init.lua b/woodstuff/init.lua new file mode 100644 index 0000000..e6490c6 --- /dev/null +++ b/woodstuff/init.lua @@ -0,0 +1,46 @@ +----------------------------------------------------------------------------------------------- +local title = "Wood Stuff" +local version = "0.0.4" +local mname = "woodstuff" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Contains code from: trees +-- Looked at code from: default, stoneage +-- Dependencies: default +----------------------------------------------------------------------------------------------- + +dofile(minetest.get_modpath("woodstuff").."/settings.txt") +dofile(minetest.get_modpath("woodstuff").."/crafting.lua") +dofile(minetest.get_modpath("woodstuff").."/poles.lua") +dofile(minetest.get_modpath("woodstuff").."/twigs.lua") + +minetest.register_craft({ + output = 'default:stick 6', + recipe = { + {'group:leafdecay'}, + {'group:leafdecay'}, + {'group:leafdecay'}, + } +}) + +if PLANKS_NOW_LOGS == true then +minetest.register_node(":default:junglewood", { + description = "Junglewood Logs", + tiles = {"default_junglewood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":default:wood", { + description = "Wooden Logs", + tiles = {"default_wood.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) +end + + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/woodstuff/poles.lua b/woodstuff/poles.lua new file mode 100644 index 0000000..09b7547 --- /dev/null +++ b/woodstuff/poles.lua @@ -0,0 +1,117 @@ +----------------------------------------------------------------------------------------------- +-- Wood Stuff - Poles 0.0.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: default, mobf, throwing +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- POLE +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:pole", { + description = "Pole", + drawtype = "nodebox", + paramtype = "light", + tiles = { + "woodstuff_pole_top.png", + "woodstuff_pole_top.png", + "woodstuff_pole.png" + }, + node_box = { + type = "fixed", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + }, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- WATER POLE +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:water_pole", { + description = "Water Pole", + drawtype = "nodebox", + paramtype = "light", + tiles = { + "woodstuff_pole_top.png", + "woodstuff_pole_top.png", + "woodstuff_pole.png" + }, + node_box = { + type = "fixed", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + }, + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + sounds = default.node_sound_wood_defaults(), + on_place = function (itemstack, placer, pointed_thing) + minetest.add_entity(pointed_thing.above, "woodstuff:pole_entity") + if string.find(minetest.env:get_node(pointed_thing.under).name, "woodstuff:water_pole") then + minetest.remove_node(pointed_thing.under, {name="woodstuff:water_pole"}) + end + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) + +----------------------------------------------------------------------------------------------- +-- WATER POLE ENTITY +----------------------------------------------------------------------------------------------- +minetest.register_entity("woodstuff:pole_entity",{ + physical = true, + hp_max = 8, + visual = "wielditem", + visual_size = {x=2/3, y=2/3, z=2/3}, + textures = {"woodstuff:water_pole"}, + collisionbox = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + on_punch = function(self, puncher) + self.object:set_hp(self.object:get_hp()-1) + minetest.sound_play("default_dig_oddly_breakable_by_hand", { + pos = self.object:getpos(), + gain = 0.4, + }) + if self.object:get_hp() == 0 then + if puncher:is_player() and puncher:get_inventory() then + if not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "woodstuff:water_pole") + end + self.object:remove() + end + end + end, +}) + +----------------------------------------------------------------------------------------------- +-- CRAFTING +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "woodstuff:pole 12", + recipe = { + {'default:tree'}, + {'default:tree'}, + {'default:tree'}, + } +}) + +minetest.register_craft({ + output = "woodstuff:water_pole", + recipe = { + {"woodstuff:pole"}, + } +}) + +minetest.register_craft({ + output = "woodstuff:pole", + recipe = { + {"woodstuff:water_pole"}, + } +}) \ No newline at end of file diff --git a/woodstuff/settings.txt b/woodstuff/settings.txt new file mode 100644 index 0000000..e9d6053 --- /dev/null +++ b/woodstuff/settings.txt @@ -0,0 +1,2 @@ +PLANKS_NOW_LOGS = true +AUTO_ROOF_CORNER = true \ No newline at end of file diff --git a/woodstuff/textures/default_junglewood.png b/woodstuff/textures/default_junglewood.png new file mode 100644 index 0000000..f076beb Binary files /dev/null and b/woodstuff/textures/default_junglewood.png differ diff --git a/woodstuff/textures/default_wood.png b/woodstuff/textures/default_wood.png new file mode 100644 index 0000000..9fec116 Binary files /dev/null and b/woodstuff/textures/default_wood.png differ diff --git a/woodstuff/textures/old/default_junglewood_old.png b/woodstuff/textures/old/default_junglewood_old.png new file mode 100644 index 0000000..a2ff447 Binary files /dev/null and b/woodstuff/textures/old/default_junglewood_old.png differ diff --git a/woodstuff/textures/old/default_wood_old.png b/woodstuff/textures/old/default_wood_old.png new file mode 100644 index 0000000..59da5ec Binary files /dev/null and b/woodstuff/textures/old/default_wood_old.png differ diff --git a/woodstuff/textures/old/woodstuff_pole_algae.png b/woodstuff/textures/old/woodstuff_pole_algae.png new file mode 100644 index 0000000..52f5f3a Binary files /dev/null and b/woodstuff/textures/old/woodstuff_pole_algae.png differ diff --git a/woodstuff/textures/old/woodstuff_pole_algae_top.png b/woodstuff/textures/old/woodstuff_pole_algae_top.png new file mode 100644 index 0000000..2030ef7 Binary files /dev/null and b/woodstuff/textures/old/woodstuff_pole_algae_top.png differ diff --git a/woodstuff/textures/old/woodstuff_twigs_old2.png b/woodstuff/textures/old/woodstuff_twigs_old2.png new file mode 100644 index 0000000..9ba0b10 Binary files /dev/null and b/woodstuff/textures/old/woodstuff_twigs_old2.png differ diff --git a/woodstuff/textures/woodstuff_pole.png b/woodstuff/textures/woodstuff_pole.png new file mode 100644 index 0000000..b8c026f Binary files /dev/null and b/woodstuff/textures/woodstuff_pole.png differ diff --git a/woodstuff/textures/woodstuff_pole_top.png b/woodstuff/textures/woodstuff_pole_top.png new file mode 100644 index 0000000..5cce18d Binary files /dev/null and b/woodstuff/textures/woodstuff_pole_top.png differ diff --git a/woodstuff/textures/woodstuff_twigs.png b/woodstuff/textures/woodstuff_twigs.png new file mode 100644 index 0000000..20ae6ca Binary files /dev/null and b/woodstuff/textures/woodstuff_twigs.png differ diff --git a/woodstuff/textures/woodstuff_twigs_corner.png b/woodstuff/textures/woodstuff_twigs_corner.png new file mode 100644 index 0000000..a1ebde7 Binary files /dev/null and b/woodstuff/textures/woodstuff_twigs_corner.png differ diff --git a/woodstuff/textures/woodstuff_twigs_top.png b/woodstuff/textures/woodstuff_twigs_top.png new file mode 100644 index 0000000..828768a Binary files /dev/null and b/woodstuff/textures/woodstuff_twigs_top.png differ diff --git a/woodstuff/twigs.lua b/woodstuff/twigs.lua new file mode 100644 index 0000000..747fd28 --- /dev/null +++ b/woodstuff/twigs.lua @@ -0,0 +1,221 @@ +----------------------------------------------------------------------------------------------- +-- Wood Stuff - Twigs 0.0.4 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: default, darkage, stairs, stoneage +-- Dependencies: default +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- TWIGS +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:twigs", { + description = "Twigs", + paramtype2 = "facedir", + tiles = {"woodstuff_twigs.png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWIGS SLAB +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:twigs_slab", { + description = "Twigs Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"woodstuff_twigs.png"}, + node_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2}, + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWIGS ROOF +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:twigs_roof", { + description = "Twigs Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"woodstuff_twigs.png"}, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, -1/2, -1/2, 1/2, 0, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWIGS ROOF CORNER +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:twigs_roof_corner", { + description = "Twigs Roof Corner", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "woodstuff_twigs_corner.png", + "woodstuff_twigs_corner.png", + "woodstuff_twigs.png" + }, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, 0, 0, 0, 1/2, 1/2}, + {0, -1/2, 0, 1/2, 0, 1/2}, + {-1/2, -1/2, -1/2, 0, 0, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- TWIGS ROOF CORNER 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("woodstuff:twigs_roof_corner_2", { + description = "Twigs Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = { + "woodstuff_twigs_corner.png", + "woodstuff_twigs_corner.png", + "woodstuff_twigs.png" + }, + node_box = { + type = "fixed", +-- { left , bottom , front , right , top , back } + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-1/2, -1/2, 0, 0, 0, 1/2}, + {0, 0, 0, 1/2, 1/2, 1/2}, + {-1/2, 0, -1/2, 0, 1/2, 0}, + } + }, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +if AUTO_ROOF_CORNER == true then + + local roof = "woodstuff:twigs_roof" + local corner = "woodstuff:twigs_roof_corner" + local corner_2 = "woodstuff:twigs_roof_corner_2" + + minetest.register_abm({ + nodenames = {roof}, + interval = 1, + chance = 1, + action = function(pos) + + local node_east = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z }) + local node_west = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z }) + local node_north = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z+1}) + local node_south = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z-1}) + -- corner 1 + if ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner and node_north.param2 == 3)) + then + minetest.env:add_node(pos, {name=corner, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner and node_east.param2 == 0)) + then + minetest.env:add_node(pos, {name=corner, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner and node_south.param2 == 1)) + then + minetest.env:add_node(pos, {name=corner, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner and node_west.param2 == 2)) + then + minetest.env:add_node(pos, {name=corner, param2=3}) + end + -- corner 2 + if ((node_west.name == roof and node_west.param2 == 2) + or (node_west.name == corner_2 and node_west.param2 == 1)) + and ((node_north.name == roof and node_north.param2 == 1) + or (node_north.name == corner_2 and node_north.param2 == 3)) + then + minetest.env:add_node(pos, {name=corner_2, param2=0}) + end + + if ((node_north.name == roof and node_north.param2 == 3) + or (node_north.name == corner_2 and node_north.param2 == 2)) + and ((node_east.name == roof and node_east.param2 == 2) + or (node_east.name == corner_2 and node_east.param2 == 0)) + then + minetest.env:add_node(pos, {name=corner_2, param2=1}) + end + + if ((node_east.name == roof and node_east.param2 == 0) + or (node_east.name == corner_2 and node_east.param2 == 3)) + and ((node_south.name == roof and node_south.param2 == 3) + or (node_south.name == corner_2 and node_south.param2 == 1)) + then + minetest.env:add_node(pos, {name=corner_2, param2=2}) + end + + if ((node_south.name == roof and node_south.param2 == 1) + or (node_south.name == corner_2 and node_south.param2 == 0)) + and ((node_west.name == roof and node_west.param2 == 0) + or (node_west.name == corner_2 and node_west.param2 == 2)) + then + minetest.env:add_node(pos, {name=corner_2, param2=3}) + end + + end, + }) +end \ No newline at end of file