From 688c8b27453af08de509727959a14bea654945c8 Mon Sep 17 00:00:00 2001 From: Mossmanikin Date: Fri, 11 Oct 2013 22:43:00 +0200 Subject: [PATCH] Grasses 0.1.6 Less tall grass (more room for other plants). Neuramacers textures: default_grass_5.png & default_papyrus.png. --- .gitattributes | 22 + .gitignore | 215 +++++++++ crafting.lua | 360 +++++++++++++++ depends.txt | 3 + init.lua | 185 ++++++++ juncus.lua | 127 ++++++ meadowvariation.lua | 27 ++ moregrass.lua | 35 ++ reed.lua | 380 ++++++++++++++++ reedmace.lua | 410 ++++++++++++++++++ settings.txt | 52 +++ textures/default_grass_1.png | Bin 0 -> 313 bytes textures/default_grass_2.png | Bin 0 -> 419 bytes textures/default_grass_3.png | Bin 0 -> 530 bytes textures/default_grass_4.png | Bin 0 -> 624 bytes textures/default_grass_5.png | Bin 0 -> 1119 bytes textures/default_papyrus.png | Bin 0 -> 577 bytes textures/dryplants_grass.png | Bin 0 -> 571 bytes textures/dryplants_grass_short.png | Bin 0 -> 868 bytes textures/dryplants_grass_short_side.png | Bin 0 -> 502 bytes textures/dryplants_hay.png | Bin 0 -> 605 bytes textures/dryplants_juncus_02.png | Bin 0 -> 929 bytes textures/dryplants_juncus_03.png | Bin 0 -> 963 bytes textures/dryplants_juncus_inv.png | Bin 0 -> 685 bytes textures/dryplants_reed.png | Bin 0 -> 795 bytes textures/dryplants_reed_wet.png | Bin 0 -> 767 bytes textures/dryplants_reedmace.png | Bin 0 -> 734 bytes textures/dryplants_reedmace_bottom.png | Bin 0 -> 864 bytes textures/dryplants_reedmace_height_2.png | Bin 0 -> 1544 bytes textures/dryplants_reedmace_height_3.png | Bin 0 -> 2368 bytes .../dryplants_reedmace_height_3_spikes.png | Bin 0 -> 2543 bytes textures/dryplants_reedmace_sapling.png | Bin 0 -> 582 bytes textures/dryplants_reedmace_spikes.png | Bin 0 -> 575 bytes textures/dryplants_reedmace_top.png | Bin 0 -> 446 bytes textures/dryplants_reedmace_water.png | Bin 0 -> 675 bytes textures/dryplants_sickle.png | Bin 0 -> 260 bytes textures/not_in_use/big_pic_8.png | Bin 0 -> 2243 bytes textures/not_in_use/big_pic_9.png | Bin 0 -> 2451 bytes textures/not_in_use/default_grass_5y.png | Bin 0 -> 1111 bytes textures/not_in_use/default_papyrus16.png | Bin 0 -> 737 bytes textures/not_in_use/default_papyrus16b.png | Bin 0 -> 593 bytes textures/not_in_use/default_papyrus16m.png | Bin 0 -> 492 bytes textures/not_in_use/default_papyrus32.png | Bin 0 -> 1529 bytes textures/not_in_use/default_papyrus32m.png | Bin 0 -> 1543 bytes .../not_in_use/dryplants_cattailsG_m2.png | Bin 0 -> 1641 bytes .../not_in_use/dryplants_juncus_02_left.png | Bin 0 -> 444 bytes .../not_in_use/dryplants_juncus_02_right.png | Bin 0 -> 477 bytes .../not_in_use/dryplants_juncus_02_whole2.png | Bin 0 -> 712 bytes .../not_in_use/dryplants_juncus_03_left.png | Bin 0 -> 497 bytes .../not_in_use/dryplants_juncus_03_right.png | Bin 0 -> 473 bytes .../not_in_use/dryplants_juncus_03_whole2.png | Bin 0 -> 768 bytes textures/not_in_use/dryplants_reedmace_01.png | Bin 0 -> 487 bytes textures/not_in_use/dryplants_reedmace_02.png | Bin 0 -> 910 bytes textures/not_in_use/dryplants_reedmace_03.png | Bin 0 -> 1361 bytes textures/not_in_use/dryplants_reedmace_04.png | Bin 0 -> 1554 bytes textures/not_in_use/reedmace2.png | Bin 0 -> 2511 bytes textures/not_in_use/reedmace3.png | Bin 0 -> 3035 bytes textures/not_in_use/reedmace4.png | Bin 0 -> 3119 bytes textures/not_in_use/reedtest.png | Bin 0 -> 463 bytes textures/not_in_use/texturing.png | Bin 0 -> 3924 bytes textures/old/default_grass_5_old.png | Bin 0 -> 710 bytes textures/old/dryplants_grass_short_old3.png | Bin 0 -> 823 bytes textures/old/dryplants_grass_short_old4.png | Bin 0 -> 455 bytes textures/old/dryplants_juncus_02_left_old.png | Bin 0 -> 459 bytes .../old/dryplants_juncus_02_right_old.png | Bin 0 -> 481 bytes textures/old/dryplants_juncus_03_left_old.png | Bin 0 -> 511 bytes .../old/dryplants_juncus_03_right_old.png | Bin 0 -> 491 bytes .../dryplants_reedmace_bottom_left_old2.png | Bin 0 -> 234 bytes .../old/dryplants_reedmace_bottom_old4.png | Bin 0 -> 897 bytes .../dryplants_reedmace_bottom_right_old2.png | Bin 0 -> 267 bytes textures/old/dryplants_reedmace_left_old2.png | Bin 0 -> 286 bytes textures/old/dryplants_reedmace_old8.png | Bin 0 -> 777 bytes .../old/dryplants_reedmace_right_old2.png | Bin 0 -> 288 bytes .../old/dryplants_reedmace_spikes_old3.png | Bin 0 -> 649 bytes .../old/dryplants_reedmace_top_left_old2.png | Bin 0 -> 181 bytes textures/old/dryplants_reedmace_top_old3.png | Bin 0 -> 504 bytes .../old/dryplants_reedmace_top_right_old2.png | Bin 0 -> 206 bytes .../old/dryplants_reedmace_water_old2.png | Bin 0 -> 659 bytes 78 files changed, 1816 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 crafting.lua create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 juncus.lua create mode 100644 meadowvariation.lua create mode 100644 moregrass.lua create mode 100644 reed.lua create mode 100644 reedmace.lua create mode 100644 settings.txt create mode 100644 textures/default_grass_1.png create mode 100644 textures/default_grass_2.png create mode 100644 textures/default_grass_3.png create mode 100644 textures/default_grass_4.png create mode 100644 textures/default_grass_5.png create mode 100644 textures/default_papyrus.png create mode 100644 textures/dryplants_grass.png create mode 100644 textures/dryplants_grass_short.png create mode 100644 textures/dryplants_grass_short_side.png create mode 100644 textures/dryplants_hay.png create mode 100644 textures/dryplants_juncus_02.png create mode 100644 textures/dryplants_juncus_03.png create mode 100644 textures/dryplants_juncus_inv.png create mode 100644 textures/dryplants_reed.png create mode 100644 textures/dryplants_reed_wet.png create mode 100644 textures/dryplants_reedmace.png create mode 100644 textures/dryplants_reedmace_bottom.png create mode 100644 textures/dryplants_reedmace_height_2.png create mode 100644 textures/dryplants_reedmace_height_3.png create mode 100644 textures/dryplants_reedmace_height_3_spikes.png create mode 100644 textures/dryplants_reedmace_sapling.png create mode 100644 textures/dryplants_reedmace_spikes.png create mode 100644 textures/dryplants_reedmace_top.png create mode 100644 textures/dryplants_reedmace_water.png create mode 100644 textures/dryplants_sickle.png create mode 100644 textures/not_in_use/big_pic_8.png create mode 100644 textures/not_in_use/big_pic_9.png create mode 100644 textures/not_in_use/default_grass_5y.png create mode 100644 textures/not_in_use/default_papyrus16.png create mode 100644 textures/not_in_use/default_papyrus16b.png create mode 100644 textures/not_in_use/default_papyrus16m.png create mode 100644 textures/not_in_use/default_papyrus32.png create mode 100644 textures/not_in_use/default_papyrus32m.png create mode 100644 textures/not_in_use/dryplants_cattailsG_m2.png create mode 100644 textures/not_in_use/dryplants_juncus_02_left.png create mode 100644 textures/not_in_use/dryplants_juncus_02_right.png create mode 100644 textures/not_in_use/dryplants_juncus_02_whole2.png create mode 100644 textures/not_in_use/dryplants_juncus_03_left.png create mode 100644 textures/not_in_use/dryplants_juncus_03_right.png create mode 100644 textures/not_in_use/dryplants_juncus_03_whole2.png create mode 100644 textures/not_in_use/dryplants_reedmace_01.png create mode 100644 textures/not_in_use/dryplants_reedmace_02.png create mode 100644 textures/not_in_use/dryplants_reedmace_03.png create mode 100644 textures/not_in_use/dryplants_reedmace_04.png create mode 100644 textures/not_in_use/reedmace2.png create mode 100644 textures/not_in_use/reedmace3.png create mode 100644 textures/not_in_use/reedmace4.png create mode 100644 textures/not_in_use/reedtest.png create mode 100644 textures/not_in_use/texturing.png create mode 100644 textures/old/default_grass_5_old.png create mode 100644 textures/old/dryplants_grass_short_old3.png create mode 100644 textures/old/dryplants_grass_short_old4.png create mode 100644 textures/old/dryplants_juncus_02_left_old.png create mode 100644 textures/old/dryplants_juncus_02_right_old.png create mode 100644 textures/old/dryplants_juncus_03_left_old.png create mode 100644 textures/old/dryplants_juncus_03_right_old.png create mode 100644 textures/old/dryplants_reedmace_bottom_left_old2.png create mode 100644 textures/old/dryplants_reedmace_bottom_old4.png create mode 100644 textures/old/dryplants_reedmace_bottom_right_old2.png create mode 100644 textures/old/dryplants_reedmace_left_old2.png create mode 100644 textures/old/dryplants_reedmace_old8.png create mode 100644 textures/old/dryplants_reedmace_right_old2.png create mode 100644 textures/old/dryplants_reedmace_spikes_old3.png create mode 100644 textures/old/dryplants_reedmace_top_left_old2.png create mode 100644 textures/old/dryplants_reedmace_top_old3.png create mode 100644 textures/old/dryplants_reedmace_top_right_old2.png create mode 100644 textures/old/dryplants_reedmace_water_old2.png 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/crafting.lua b/crafting.lua new file mode 100644 index 0000000..ae36a3c --- /dev/null +++ b/crafting.lua @@ -0,0 +1,360 @@ +----------------------------------------------------------------------------------------------- +-- Dry Plants - Recipes 0.1.0 -- Short Grass -> Dirt +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: darkage, default, farming, sickle, stairs +-- Dependencies: default, farming +-- Supports: flint, stoneage, sumpf +----------------------------------------------------------------------------------------------- + +----------------------------------------------------------------------------------------------- +-- Short Grass +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "default:dirt", + recipe = { + {"dryplants:grass_short"}, + } +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass +----------------------------------------------------------------------------------------------- +-- grass recipes (remove roots) +minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"default:grass_1"}, + } +}) +minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"default:junglegrass"}, + } +}) +if minetest.get_modpath("sumpf") ~= nil then + minetest.register_craft({ + output = "dryplants:grass", + recipe = { + {"sumpf:gras"}, + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Sickle +----------------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"group:stone",""}, + {"", "default:stick"}, + {"default:stick",""} + } +}) +if minetest.get_modpath("flint") ~= nil then + minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"flint:flintstone",""}, + {"", "default:stick"}, + {"default:stick",""} + } + }) +end +if minetest.get_modpath("stoneage") ~= nil then + minetest.register_craft({ + output = "dryplants:sickle", + recipe = { + {"stoneage:silex",""}, + {"", "default:stick"}, + {"default:stick",""} + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Hay +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ + type = "cooking", + output = "dryplants:hay", + recipe = "dryplants:grass", + cooktime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:hay", + burntime = 1, +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- papyrus -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"default:papyrus","default:papyrus"}, + {"default:papyrus","default:papyrus"}, + } +}) +minetest.register_craft({ -- reedmace_sapling -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_sapling","dryplants:reedmace_sapling"}, + {"dryplants:reedmace_sapling","dryplants:reedmace_sapling"}, + } +}) +minetest.register_craft({ -- reedmace_top -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_top","dryplants:reedmace_top"}, + {"dryplants:reedmace_top","dryplants:reedmace_top"}, + } +}) +minetest.register_craft({ -- reedmace -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace","dryplants:reedmace"}, + {"dryplants:reedmace","dryplants:reedmace"}, + } +}) +minetest.register_craft({ -- reedmace_bottom -> wetreed + output = "dryplants:wetreed 2", + recipe = { + {"dryplants:reedmace_bottom","dryplants:reedmace_bottom"}, + {"dryplants:reedmace_bottom","dryplants:reedmace_bottom"}, + } +}) + + +local ReeD = { + {"wetreed"}, + {"reed"} +} +for i in pairs(ReeD) do + local reed = "dryplants:"..ReeD[i][1] + local slab = reed.."_slab" + local roof = reed.."_roof" + local corner = roof.."_corner" + local corner_2 = corner.."_2" +----------------------------------------------------------------------------------------------- +-- Block +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- slab -> block + output = reed, + recipe = { + {slab}, + {slab}, + } + }) + minetest.register_craft({ -- roof -> block + output = reed, + recipe = { + {roof}, + {roof}, + } + }) + minetest.register_craft({ -- corner -> block + type = "shapeless", + output = reed.." 3", + recipe = {corner,corner,corner,corner,corner,corner,corner,corner}, -- 8x + }) + minetest.register_craft({ -- corner_2 -> block + type = "shapeless", + output = reed.." 3", + recipe = {corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2}, -- 8x + }) +----------------------------------------------------------------------------------------------- +-- Slab +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> slab + output = slab.." 6", + recipe = { + {reed,reed,reed}, + } + }) + minetest.register_craft({ -- roof -> slab + output = slab, + recipe = { + {roof}, + } + }) + minetest.register_craft({ -- corner -> slab + output = slab.." 3", + recipe = { + {corner,corner}, + {corner,corner}, + } + }) + minetest.register_craft({ -- corner_2 -> slab + output = slab.." 3", + recipe = { + {corner_2,corner_2}, + {corner_2,corner_2}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> roof + output = roof.." 4", + recipe = { + {reed,""}, + {"",reed}, + } + }) + minetest.register_craft({ -- block -> roof + output = roof.." 4", + recipe = { + {"",reed}, + {reed,""}, + } + }) + minetest.register_craft({ -- slab -> roof + output = roof, + recipe = { + {slab}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof Corner +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> corner + output = corner.." 8", + recipe = { + {"",reed,""}, + {reed,"",reed}, + } + }) + minetest.register_craft({ -- corner_2 -> corner + output = corner, + recipe = { + {corner_2}, + } + }) +----------------------------------------------------------------------------------------------- +-- Roof Corner 2 +----------------------------------------------------------------------------------------------- + minetest.register_craft({ -- block -> corner_2 + output = corner_2.." 8", + recipe = { + {reed,"",reed}, + {"",reed,""}, + } + }) + minetest.register_craft({ -- corner -> corner_2 + output = corner_2, + recipe = { + {corner}, + } + }) +end + +----------------------------------------------------------------------------------------------- +-- Reed +----------------------------------------------------------------------------------------------- +minetest.register_craft({ -- hay -> reed + output = "dryplants:reed 2", + recipe = { + {"dryplants:hay","dryplants:hay"}, + {"dryplants:hay","dryplants:hay"}, + } +}) +--cooking +minetest.register_craft({ -- wetreed -> reed + type = "cooking", + output = "dryplants:reed", + recipe = "dryplants:wetreed", + cooktime = 2, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed", + burntime = 4, +}) +----------------------------------------------------------------------------------------------- +-- Reed Slab +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_slab -> reed_slab + type = "cooking", + output = "dryplants:reed_slab", + recipe = "dryplants:wetreed_slab", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_slab", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Reed Roof +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof -> reed_roof + type = "cooking", + output = "dryplants:reed_roof", + recipe = "dryplants:wetreed_roof", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner + type = "cooking", + output = "dryplants:reed_roof_corner", + recipe = "dryplants:wetreed_roof_corner", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof_corner", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +--cooking +minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner + type = "cooking", + output = "dryplants:reed_roof_corner_2", + recipe = "dryplants:wetreed_roof_corner_2", + cooktime = 1, +}) +--fuel +minetest.register_craft({ + type = "fuel", + recipe = "dryplants:reed_roof_corner_2", + burntime = 2, +}) +----------------------------------------------------------------------------------------------- +-- Dandelion Leave +----------------------------------------------------------------------------------------------- +--[[minetest.register_craftitem("dryplants:dandelion_leave", { + description = "Dandelion Leave", + inventory_image = "dryplants_dandelion_leave.png", + on_use = minetest.item_eat(1), +}) +minetest.register_craft({ + type = "shapeless", + output = "dryplants:dandelion_leave 4", + recipe = {"flowers:dandelion_yellow"}, + replacements = { + {"flowers:dandelion_yellow", "dye:yellow"} + }, +})]] \ No newline at end of file diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..7e9f472 --- /dev/null +++ b/depends.txt @@ -0,0 +1,3 @@ +default +farming +plants_lib \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..4ea3913 --- /dev/null +++ b/init.lua @@ -0,0 +1,185 @@ +----------------------------------------------------------------------------------------------- +local title = "Grasses" -- former "Dry plants" +local version = "0.1.6" +local mname = "dryplants" +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: default, farming +-- Looked at code from: darkage, sickle, stairs +-- Dependencies: default, farming, plants_lib +-- Supports: +----------------------------------------------------------------------------------------------- +abstract_dryplants = {} + +dofile(minetest.get_modpath("dryplants").."/crafting.lua") +dofile(minetest.get_modpath("dryplants").."/settings.txt") +dofile(minetest.get_modpath("dryplants").."/reed.lua") +if REEDMACE_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/reedmace.lua") +end +if SMALL_JUNCUS_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/juncus.lua") +end +if EXTRA_TALL_GRASS_GENERATES == true then +dofile(minetest.get_modpath("dryplants").."/moregrass.lua") +end +--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua") + +----------------------------------------------------------------------------------------------- +-- Sickle +----------------------------------------------------------------------------------------------- +-- turns nodes with group flora=1 & flower=0 into cut grass +local function sickle_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 + + local node = minetest.env:get_node(pt.under) + -- check if something that can be cut using fine tools + if minetest.get_item_group(under.name, "snappy") > 0 then + -- check if flora but no flower + if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then + -- turn the node into cut grass, wear out item and play sound + minetest.set_node(pt.under, {name="dryplants:grass"}) + else -- otherwise get the drop + local inv = user:get_inventory() + local name = minetest.env: get_node(pt.under).name + + local the_drop = minetest.registered_nodes[name].drop + + if the_drop ~= nil then + if inv:room_for_item("main", the_drop) then + inv:add_item("main", the_drop) + end + else + if inv:room_for_item("main", name) then + inv:add_item("main", name) + end + end + minetest.env:remove_node(pt.under) + end + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + itemstack:add_wear(65535/(uses-1)) + return itemstack + elseif string.find(node.name, "default:dirt_with_grass") then + minetest.set_node(pt.under, {name="dryplants:grass_short"}) + minetest.set_node(pt.above, {name="dryplants:grass"}) + minetest.sound_play("default_dig_crumbly", { + pos = pt.under, + gain = 0.5, + }) + itemstack:add_wear(65535/(uses-1)) + return itemstack + end +end +-- the tool +minetest.register_tool("dryplants:sickle", { + description = "Sickle", + inventory_image = "dryplants_sickle.png", + on_use = function(itemstack, user, pointed_thing) + return sickle_on_use(itemstack, user, pointed_thing, 220) + end, +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:grass", { + description = "Cut Grass", + inventory_image = "dryplants_grass.png", + wield_image = "dryplants_grass.png", + paramtype = "light", + sunlight_propagates = true, + tiles = {"dryplants_grass.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 }, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Cut Grass becomes Hay over time +----------------------------------------------------------------------------------------------- +minetest.register_abm({ + nodenames = {"dryplants:grass"}, + interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 1, + action = function(pos) + minetest.env:add_node(pos, {name="dryplants:hay"}) + end, +}) + +----------------------------------------------------------------------------------------------- +-- Hay +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:hay", { + description = "Hay", + inventory_image = "dryplants_hay.png", + wield_image = "dryplants_hay.png", + paramtype = "light", + sunlight_propagates = true, + tiles = {"dryplants_hay.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 }, + }, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Short Grass +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:grass_short", { + description = "Short Grass", + tiles = {"default_grass.png^dryplants_grass_short.png", "default_dirt.png", "default_dirt.png^default_grass_side.png^dryplants_grass_short_side.png"}, + is_ground_content = true, + groups = {crumbly=3,soil=1,not_in_creative_inventory=1}, + --drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +----------------------------------------------------------------------------------------------- +-- Short Grass becomes Dirt with Grass over time +----------------------------------------------------------------------------------------------- +minetest.register_abm({ + nodenames = {"dryplants:grass_short"}, + interval = GRASS_REGROWING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 100/GRASS_REGROWING_CHANCE, + action = function(pos) + minetest.env:add_node(pos, {name="default:dirt_with_grass"}) + end, +}) + +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/juncus.lua b/juncus.lua new file mode 100644 index 0000000..72934d2 --- /dev/null +++ b/juncus.lua @@ -0,0 +1,127 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Juncus 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_juncus = function(pos) + local juncus_type = math.random(2,3) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + if minetest.env:get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.env:get_node(right_here).name == "default:junglegrass" then + if juncus_type == 2 then + minetest.env:add_node(right_here, {name="dryplants:juncus_02"}) + else + minetest.env:add_node(right_here, {name="dryplants:juncus"}) + end + end +end + +minetest.register_node("dryplants:juncus", { + description = "Juncus", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_juncus_03.png"}, + inventory_image = "dryplants_juncus_inv.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1, + flora=1 + --not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + local juncus_type = math.random(2,3) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + if juncus_type == 2 then + minetest.env:add_node(right_here, {name="dryplants:juncus_02"}) + else + minetest.env:add_node(right_here, {name="dryplants:juncus"}) + end + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) +minetest.register_node("dryplants:juncus_02", { + description = "Juncus", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_juncus_02.png"}, + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1, + flora=1, + not_in_creative_inventory=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, + }, + drop = "dryplants:juncus", +}) +----------------------------------------------------------------------------------------------- +-- GENERATE SMALL JUNCUS +----------------------------------------------------------------------------------------------- +-- near water or swamp +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + --"default:desert_sand", + --"default:sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK, + rarity = 101 - JUNCUS_NEAR_WATER_RARITY, + min_elevation = 1, -- above sea level + near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_dryplants.grow_juncus" +) +-- at dunes/beach +plantslib:register_generate_plant({ + surface = { + --"default:dirt_with_grass", + --"default:desert_sand", + "default:sand", + --"stoneage:grass_with_silex", + --"sumpf:peat", + --"sumpf:sumpf" + }, + max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK, + rarity = 101 - JUNCUS_AT_BEACH_RARITY, + min_elevation = 1, -- above sea level + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_dryplants.grow_juncus" +) \ No newline at end of file diff --git a/meadowvariation.lua b/meadowvariation.lua new file mode 100644 index 0000000..2c3b554 --- /dev/null +++ b/meadowvariation.lua @@ -0,0 +1,27 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Meadow Variation 0.0.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_grass_variation = function(pos) + local right_here = {x=pos.x, y=pos.y, z=pos.z} + minetest.add_node(right_here, {name="dryplants:grass_short"}) +end + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + }, + max_count = 4800, + rarity = 25, + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_dryplants.grow_grass_variation" +) \ No newline at end of file diff --git a/moregrass.lua b/moregrass.lua new file mode 100644 index 0000000..71cb009 --- /dev/null +++ b/moregrass.lua @@ -0,0 +1,35 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - More Tall Grass 0.0.2 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_grass = function(pos) + local right_here = {x=pos.x, y=pos.y+1, z=pos.z} + local grass_size = math.random(1,5) + if minetest.get_node(right_here).name == "air" -- instead of check_air = true, + or minetest.get_node(right_here).name == "default:junglegrass" then + minetest.add_node(right_here, {name="default:grass_"..grass_size}) + end +end + +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "dryplants:grass_short", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = TALL_GRASS_PER_MAPBLOCK, + rarity = 101 - TALL_GRASS_RARITY, + min_elevation = 1, -- above sea level + plantlife_limit = -0.9, + check_air = false, + }, + "abstract_dryplants.grow_grass" +) \ No newline at end of file diff --git a/reed.lua b/reed.lua new file mode 100644 index 0000000..f648f55 --- /dev/null +++ b/reed.lua @@ -0,0 +1,380 @@ +----------------------------------------------------------------------------------------------- +-- Dry Plants - Reed 0.0.5 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- License (everything): WTFPL +-- Looked at code from: darkage, default, stairs +-- Dependencies: default +----------------------------------------------------------------------------------------------- +minetest.register_alias("stairs:stair_wetreed", "dryplants:wetreed_roof") +minetest.register_alias("stairs:slab_wetreed", "dryplants:wetreed_slab") +minetest.register_alias("stairs:stair_reed", "dryplants:reed_roof") +minetest.register_alias("stairs:slab_reed", "dryplants:reed_slab") + + +----------------------------------------------------------------------------------------------- +-- Wet Reed +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed", { + description = "Wet Reed", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Slab +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_slab", { + description = "Wet Reed Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof", { + description = "Wet Reed Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +if AUTO_ROOF_CORNER == true then + + local CoRNeR = { +-- MaTeRiaL + {"wetreed"}, + {"reed"} + } + + for i in pairs(CoRNeR) do + + local MaTeRiaL = CoRNeR[i][1] + local roof = "dryplants:"..MaTeRiaL.."_roof" + local corner = "dryplants:"..MaTeRiaL.."_roof_corner" + local corner_2 = "dryplants:"..MaTeRiaL.."_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 +end + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof_corner", { + description = "Wet Reed Roof Corner", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:wetreed_roof_corner_2", { + description = "Wet Reed Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed_wet.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Wet Reed becomes (dry) Reed over time +----------------------------------------------------------------------------------------------- +if REED_WILL_DRY == true then + + local DRyiNG = { +-- WeT DRy + {"dryplants:wetreed", "dryplants:reed"}, + {"dryplants:wetreed_slab", "dryplants:reed_slab"}, + {"dryplants:wetreed_roof", "dryplants:reed_roof"}, + {"dryplants:wetreed_roof_corner", "dryplants:reed_roof_corner"}, + {"dryplants:wetreed_roof_corner_2", "dryplants:reed_roof_corner_2"} + } + for i in pairs(DRyiNG) do + + local WeT = DRyiNG[i][1] + local DRy = DRyiNG[i][2] + + minetest.register_abm({ + nodenames = {WeT}, + interval = REED_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle + chance = 1, + action = function(pos) + local direction = minetest.get_node(pos).param2 + minetest.env:add_node(pos, {name=DRy, param2=direction}) + end, + }) + end +end + +----------------------------------------------------------------------------------------------- +-- Reed +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed", { + description = "Reed", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.png"}, + groups = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Slab +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_slab", { + description = "Reed Slab", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof", { + description = "Reed Roof", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof_corner", { + description = "Reed Roof Corner", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) + +----------------------------------------------------------------------------------------------- +-- Reed Roof Corner 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reed_roof_corner_2", { + description = "Reed Roof Corner 2", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"dryplants_reed.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 = {snappy=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) \ No newline at end of file diff --git a/reedmace.lua b/reedmace.lua new file mode 100644 index 0000000..88d9f76 --- /dev/null +++ b/reedmace.lua @@ -0,0 +1,410 @@ +----------------------------------------------------------------------------------------------- +-- Grasses - Reedmace 0.1.1 +----------------------------------------------------------------------------------------------- +-- by Mossmanikin +-- textures & ideas partly by Neuromancer + +-- License (everything): WTFPL +-- Contains code from: plants_lib +-- Looked at code from: default, trees +----------------------------------------------------------------------------------------------- + +-- NOTES (from wikipedia, some of this might get implemented) +-- rhizomes are edible +-- outer portion of young plants can be peeled and the heart can be eaten raw or boiled and eaten like asparagus +-- leaf bases can be eaten raw or cooked +-- sheath can be removed from the developing green flower spike, which can then be boiled and eaten like corn on the cob +-- pollen can be collected and used as a flour supplement or thickener +-- Typha stems and leaves can be used to make paper +-- The seed hairs were used by some Native American groups as tinder for starting fires + +----------------------------------------------------------------------------------------------- +-- REEDMACE SHAPES +----------------------------------------------------------------------------------------------- + +abstract_dryplants.grow_reedmace = function(pos) + local size = math.random(1,3) + local spikes = math.random(1,3) + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z} + local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z} + if minetest.env:get_node(pos_01).name == "air" -- bug fix + or minetest.env:get_node(pos_01).name == "dryplants:reedmace_sapling" then + if minetest.env:get_node(pos_02).name ~= "air" then + minetest.env:add_node(pos_01, {name="dryplants:reedmace_top"}) + elseif minetest.env:get_node(pos_03).name ~= "air" then + minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_2"}) + elseif size == 1 then + minetest.env:add_node(pos_01, {name="dryplants:reedmace_top"}) + elseif size == 2 then + minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_2"}) + elseif size == 3 then + if spikes == 1 then + minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_3_spikes"}) + else + minetest.env:add_node(pos_01, {name="dryplants:reedmace_height_3"}) + end + end + end +end + +abstract_dryplants.grow_reedmace_water = function(pos) + local size = math.random(1,3) + local spikes = math.random(1,3) + local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z} + local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z} + local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z} + local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z} + minetest.add_entity(pos_01, "dryplants:reedmace_water_entity") + if minetest.env:get_node(pos_02).name == "air" then -- bug fix + if minetest.env:get_node(pos_03).name ~= "air" then + minetest.env:add_node(pos_02, {name="dryplants:reedmace_top"}) + elseif minetest.env:get_node(pos_04).name ~= "air" then + minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_2"}) + elseif size == 1 then + minetest.env:add_node(pos_02, {name="dryplants:reedmace_top"}) + elseif size == 2 then + minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_2"}) + elseif size == 3 then + if spikes == 1 then + minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_3_spikes"}) + else + minetest.env:add_node(pos_02, {name="dryplants:reedmace_height_3"}) + end + end + end +end + +----------------------------------------------------------------------------------------------- +-- REEDMACE SPIKES +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_spikes", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_spikes.png"}, + inventory_image = "dryplants_reedmace_spikes.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 1 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_top", { + description = "Reedmace, height: 1", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_top.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 2 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_2", { + description = "Reedmace, height: 2", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_2.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 3 +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_3", { + description = "Reedmace, height: 3", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_3.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE height: 3 & Spikes +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_height_3_spikes", { + description = "Reedmace, height: 3 & Spikes", + drawtype = "plantlike", + visual_scale = 2, + paramtype = "light", + tiles = {"dryplants_reedmace_height_3_spikes.png"}, + inventory_image = "dryplants_reedmace_top.png", + walkable = false, + groups = { + snappy=3, + flammable=2--, + --not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE STEMS +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace.png"}, + inventory_image = "dryplants_reedmace.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "dryplants:reedmace_top" + or node.name == "dryplants:reedmace_spikes" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"dryplants:reedmace_sapling") + end + end, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE BOTTOM +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_bottom", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_bottom.png"}, + inventory_image = "dryplants_reedmace_bottom.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + drop = 'dryplants:reedmace_sapling', + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + after_destruct = function(pos,oldnode) + local node = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}) + if node.name == "dryplants:reedmace" + or node.name == "dryplants:reedmace_top" + or node.name == "dryplants:reedmace_spikes" then + minetest.dig_node({x=pos.x,y=pos.y+1,z=pos.z}) + minetest.add_item(pos,"dryplants:reedmace_sapling") + end + end, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE "SAPLING" (the drop from the above) +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_sapling", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_sapling.png"}, + inventory_image = "dryplants_reedmace_sapling.png", + walkable = false, + groups = { + snappy=3, + flammable=2, + attached_node=1 + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +-- abm +minetest.register_abm({ + nodenames = "dryplants:reedmace_sapling", + interval = REEDMACE_GROWING_TIME, + chance = 100/REEDMACE_GROWING_CHANCE, + action = function(pos, node, _, _) + if string.find(minetest.env:get_node({x = pos.x + 1, y = pos.y, z = pos.z }).name, "default:water") + or string.find(minetest.env:get_node({x = pos.x, y = pos.y, z = pos.z + 1}).name, "default:water") + or string.find(minetest.env:get_node({x = pos.x - 1, y = pos.y, z = pos.z }).name, "default:water") + or string.find(minetest.env:get_node({x = pos.x, y = pos.y, z = pos.z - 1}).name, "default:water") then + if minetest.env:get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then + abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z}) + end + minetest.env:add_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"}) + else + abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z}) + end + end +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE WATER (for entity) +----------------------------------------------------------------------------------------------- +minetest.register_node("dryplants:reedmace_water", { + description = "Reedmace", + drawtype = "plantlike", + paramtype = "light", + tiles = {"dryplants_reedmace_water.png"}, + inventory_image = "dryplants_reedmace_water.png", + groups = {not_in_creative_inventory=1}, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, +}) +----------------------------------------------------------------------------------------------- +-- REEDMACE WATER ENTITY +----------------------------------------------------------------------------------------------- +minetest.register_entity("dryplants:reedmace_water_entity",{ + visual = "wielditem", + visual_size = {x=2/3, y=2/3, z=2/3}, + textures = {"dryplants:reedmace_water"}, + collisionbox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}, + on_punch = function(self, puncher) + if puncher:is_player() and puncher:get_inventory() then + if not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "dryplants:reedmace_sapling") + end + self.object:remove() + end + end, +}) +----------------------------------------------------------------------------------------------- +-- SPAWN REEDMACE +----------------------------------------------------------------------------------------------- +--[[plantslib:spawn_on_surfaces({ + spawn_delay = 1200, + spawn_plants = {"dryplants:reedmace_sapling"}, + spawn_chance = 400, + spawn_surfaces = { + "default:dirt_with_grass", + "default:desert_sand", + "default:sand", + "dryplants:grass_short", + "stoneage:grass_with_silex" + }, + seed_diff = 329, + near_nodes = {"default:water_source"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, +})]] +----------------------------------------------------------------------------------------------- +-- GENERATE REEDMACE +----------------------------------------------------------------------------------------------- +-- near water or swamp +plantslib:register_generate_plant({ + surface = { + "default:dirt_with_grass", + "default:desert_sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK, + rarity = 101 - REEDMACE_NEAR_WATER_RARITY, + --rarity = 60, + min_elevation = 1, -- above sea level + near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + "abstract_dryplants.grow_reedmace" +) +-- in water +plantslib:register_generate_plant({ + surface = { + "default:dirt", + "default:dirt_with_grass", + --"default:desert_sand", + --"stoneage:grass_with_silex", + "stoneage:sand_with_silex", + "sumpf:peat", + "sumpf:sumpf" + }, + max_count = REEDMACE_IN_WATER_PER_MAPBLOCK, + rarity = 101 - REEDMACE_IN_WATER_RARITY, + --rarity = 35, + min_elevation = 0, -- a bit below sea level + max_elevation = 0, -- "" + near_nodes = {"default:water_source","sumpf:dirtywater_source"}, + near_nodes_size = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + "abstract_dryplants.grow_reedmace_water" +) +-- for oases & tropical beaches & tropical swamps +plantslib:register_generate_plant({ + surface = { + "default:sand", + "sumpf:sumpf" + }, + max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK, + rarity = 101 - REEDMACE_FOR_OASES_RARITY, + --rarity = 10, + neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"}, + ncount = 1, + min_elevation = 1, -- above sea level + near_nodes = {"default:desert_sand","sumpf:sumpf"}, + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, + }, + "abstract_dryplants.grow_reedmace" +) diff --git a/settings.txt b/settings.txt new file mode 100644 index 0000000..3882b94 --- /dev/null +++ b/settings.txt @@ -0,0 +1,52 @@ +-- Here you can enable/disable the different plants +REEDMACE_GENERATES = true +SMALL_JUNCUS_GENERATES = true +EXTRA_TALL_GRASS_GENERATES = true + + + +-- Amount of Reedmace near water or swamp +REEDMACE_NEAR_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_NEAR_WATER_RARITY = 40 -- percent + +-- Amount of Reedmace in water +REEDMACE_IN_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_IN_WATER_RARITY = 65 -- percent + +-- Amount of Reedmace for oases, tropical beaches and tropical swamps +REEDMACE_FOR_OASES_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number) +REEDMACE_FOR_OASES_RARITY = 90 -- percent + +-- growing of reedmace sapling +REEDMACE_GROWING_TIME = 16800 -- seconds +REEDMACE_GROWING_CHANCE = 5 -- percent + + + +-- Amount of small Juncus near water or swamp +JUNCUS_NEAR_WATER_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number) +JUNCUS_NEAR_WATER_RARITY = 75 -- percent + +-- Amount of small Juncus at dunes/beach +JUNCUS_AT_BEACH_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number) +JUNCUS_AT_BEACH_RARITY = 75 -- percent + + + +-- Tall Grass on dirt with grass +TALL_GRASS_PER_MAPBLOCK = 4800 -- plants per 80x80x80 nodes (absolute maximum number) +TALL_GRASS_RARITY = 67 -- percent + + + +-- short grass becomes dirt with grass again +GRASS_REGROWING_TIME = 16800 -- seconds +GRASS_REGROWING_CHANCE = 0.5 -- percent + +HAY_DRYING_TIME = 3600 -- seconds + +REED_WILL_DRY = false -- wet reed nodes will become dry reed nodes +REED_DRYING_TIME = 3600 -- seconds + +AUTO_ROOF_CORNER = true + diff --git a/textures/default_grass_1.png b/textures/default_grass_1.png new file mode 100644 index 0000000000000000000000000000000000000000..594a23b42b9e3b811530c575878462b6c904c220 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G_YAk0{w5<>&kwYSx8ij-;=M?11Ka_;u=vBoS#-wo>-L15RjOeSEA?V z8lq5UtY@lcXkhTAXdzJ5B2O2`5DWk02ag^lEno>=BAN1W1>@pGgMya|D%T&_>-;o! znfChs^9K(S9F8sgS*4NGXlbQUvtGp4V*WvW_s{#QyH3@cnVGRk@abK0df5EL@s-0T z#+_0LR$F|eeT;XgX#e|uChX_=GiS~`2w%aqEH+3~(IkM+rFla+pG&X5o(r!BzlSU{ z$B*z84U&10TnV?<$4L78p5~Mx@If=sX<~CHBg6iOK6}$v%sLEoErX}4pUXO@geCwT CkZfB3 literal 0 HcmV?d00001 diff --git a/textures/default_grass_2.png b/textures/default_grass_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1025aed0fad2005d0baf2bd77d84ff586dffd0 GIT binary patch literal 419 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G_YAk0{w5<>&kwYSx8h&$m(!5 zz;J?%hir%Zgw>48oKJ5#XwvMx=~4apoT>l$&gk$cyqUC$Bki~N%D?O<4<6ZDtdLbx z6nfCagWp59nVFfnxt=vZ$fJ2f{7$1eZ=<^seoxV8JUa2IV-kb)!3{FYQ>V26Lyy7J L)z4*}Q$iB}Yucc6 literal 0 HcmV?d00001 diff --git a/textures/default_grass_3.png b/textures/default_grass_3.png new file mode 100644 index 0000000000000000000000000000000000000000..aec589f0f90910045b5395f0a22a81102501325b GIT binary patch literal 530 zcmV+t0`2{YP)mRVj8yIHB#Q*?Bks-JN%mrO-4qhKkx zs_nU6?ChxPx#JDRM#kvc*adU`d0()^t$84PRu6%@qIuZXmmAIlm&OhXZ+nOg4AWEd zKrrLR458FG6khUOJ%rzz``2Ai!44r)+dyn^Na(X_Q0Sbs4TjXr-0_Ar->|0p<~Gvh z6(}B$&{=C;=-kI9^7fXiFN~nO;hsCKvI@%DYf$?7Ng`ve3a{x)NR|UapX$qyJI*;v zRTc$PS`R>d@ImS6rOd|?&g)L$=rhYXZe`r_j{S+T;O6WpR-D06&4<%>Kf+zz6f4aj z{x}P*?gw`=PwGFLlrb-Me8XExy*cBC52`+m$ipPk_8d416VdVekCsr1-nO3eZ@Ah8 Ulni4g0RR9107*qoM6N<$f(_W@^Z)<= literal 0 HcmV?d00001 diff --git a/textures/default_grass_4.png b/textures/default_grass_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c8c88478acad84b792b5eb14cc43eb9db1f6d0 GIT binary patch literal 624 zcmV-$0+0QPP)Xh$zeE#_ zu@7FNMx(8zU>n*}t@VNtSfm1}Lb=6)7zMgm)?F6LWvLO3fBCp`$RQHn?89V!^Ua*i zN;Vvj^XUH{2R9|_>s%k0{H{Vyr)8v9LZW4L4;HfR6&AAITZ0_P^7dXpoarIxy#W}ew`BX4fsmAVrLz2PR5Yc+d@$~7kjcBVVaTGpBWftnLVdmKmV)*b&( z4CT~k_cc0aNtLy?+!+4e9QWc7a}vXm^Bl=*Hx*axXNntxC@9TzcHEHphAiffD2mn& z=v3X^Lu33xsp-8$>iP{Kf9UR^WIa}!_VktNnB~*>DU78hsr7e3uJ)d&T(Tp`oot~# z+(p^hQJuas=R4afOTpemwzZCmyN#+B!O<`>%l$1FSFQ?g%-oT=V zhH>e#q}xGczJ^d9guzbV4;}xb{-)5~P&>ZiRtlpKN|SXQ*lXBtucGKZ0&j^67o|9! zu~y1_xX|-1?}n>Lh$zo_0T`|OAZxuJ1s3|`@dKpo733#tYV!vSElqOXaKtnK0000< KMNUMnLSTZ#OC1CN literal 0 HcmV?d00001 diff --git a/textures/default_grass_5.png b/textures/default_grass_5.png new file mode 100644 index 0000000000000000000000000000000000000000..008f082287fe6f59bbfc7c1f103bf411582a54b4 GIT binary patch literal 1119 zcmV-l1fctgP)N2bPDNB8 zb~7$DE-^7j^FlWO00Y}eL_t(IPd!gbY#Rj>9mEByDuU38O0=|)N?~mhN~laso2|Cv zcq4J@#QWG|kH;Q+CW-CX9*<}9cp;8sXQ{KaNwZW<(~=9~KqXE{oZ*NN7o?&{l&VsK z5ajTgRDv&ky}!Np|3|jxxEH47p})80rBnABC1P()zOvJh&Ocl!#5d=-){Ppg`tnx! zrQKy|XRVS@Z`IkZ^%>^;*IQN3?gDcHDM^OMyUS(W?Mk+=KFbq#YU$RpWIp_Av(~;= zWp6J?^o5dW{O#KZjpnjsda_x|ymNO!7^>#*OFMJSYe=5c{k&3&8&)f6aaKq)H%gO> z8*|L%hCCr{&5M0YrE$x~>{N2QHucusdTM?}rcdU1?N6&E`mD_BenIZk*lTr;+`gHo zhBIN?2YGJb*VS@DU(ba*>q7W-nbZHdT%=!KE>iWC;y6>y1_p2D$(H3ptZ}PIbs|Dm zyPwYu?3a`1D-{N>&hcbZDTT|6a`KGK4Ib8V!S#Gj|7drJt$@fo~J$YOBKc`vbv{q*ret%ngcFo*Rtg3Ic4UE zi;Y>hNe>9L&z8W=D@ZanipOx%WG;REFNgEmFt4aq`FK>yhanQsWr6_>Lxqe2?$h*5 z#;iaF&AhvnDVO;+pglT0D+QSFj z*H!VT?VBlbln>)3z(OXq$JGsp6Ybseg|vK*>3qZ+}ymFhG+1 zsCWW1o+NzwFA@=(-ZG&M)7uX^l zFgmW}WINcRAA!;TA=u~+7$MuhiT1CLD1F2be;Y>ZJ#dVssTSz*pL-tv=f*?}gfYwi l{a)-%(2^IxoVxhD_Afj*+g=chkQD#`002ovPDHLkV1k}v5~TnD literal 0 HcmV?d00001 diff --git a/textures/default_papyrus.png b/textures/default_papyrus.png new file mode 100644 index 0000000000000000000000000000000000000000..f6670d7875183b15183588f5a64f0a6f6c27be0c GIT binary patch literal 577 zcmV-H0>1r;P)H;LN@>a0n$lCK~y+T zV{}aLHU|Wkt6>9(d}0Z76H+$ z3~8Op|3L~At;_=K3{a5P)i1&CS#C*f~6_k0FWfekle}PYA_8T7l6bvCj?1? zEKCW|g;-*b!+@-bA(1ebz?_^pAvg=>Ww@7s{?-LK5#$1|^l)dG>3LHkxR3+U+Lhsd z&g3xd>`5UKFfV}R9TNgHK?W!yc>z5TQJf471CW6b1L6bJK?dl!S;c#1`A1=k1(;aI zgdp#%iNV3BE{G4%015aNc+Ld*4`di95Rqd6BoDF?5{SX5UT}!>*9I$yaLV$|35Y_D zbD(X$ut0+u3gV-9DXcKj2qa(|>=Wpe5MT>)LGF}rTVPCR0}Uxac5=bgC}tFI0%Ji3 zB%p3@?F$T0TbN>Ch;xFx0W`!K#n0#|(>XB^91E&;R=xo_(e~(ybEib`;f)250U%9k zKm$NY8C@}QN<>Z<@PKxL836PGEH9v^19VqmBqUfE0K>xuS2{qBT4VzN)894mu4^P)N2bPDNB8 zb~7$DE-^4L^m3s900Fm2L_t(IPqkCoYQj(u?GN-pK?ueLS88!B2%-i}aLI#9n_5sS zgrE|HkSF`1Sm>9Z&RjKUtN2hF2!wlQ&YWd(clRGp%TC~k`?|@B@5Vglon4)&*=esx zvtuYvf*5ae-kG|%0iw}lp44{I(49DRH?yB^MNpYa=-6=&tb4fg*!0$Ws^y7{nki%W zk-=d7i0UjTn#&Uj+A@abK}usD{VhpdCZJeh(KOy==*>Y}L_~ARkkECKnC^;aOaz0@ zDgmZnHA7(2*u;naJv9dKw#|a?2kSI}h3W2s4?VgxHhJ_&7Z((a08tGQfDhwM40SU| zfIh*5-^x^`fj@xiW*BUix`>KmW-wewp_me0$d85<64JU(0`H&2bNy9nuFPa{*s`NS zE3+yYe(0-+@IiM|7?B*~uooA1p+-RY=KxL2qG`z}kp~JTlJEPWQUWYdVWyW7=sGFE zpyOoFUZsexBq-}{n&^i~8Uaw$v#%#ncZ~Cl2`>>BDda`Zjf;IKP<$iWMs*&cSohjF z?yKv}ktt*t7qHtkidG|Id1Bj6-u@p>k&jWG(p9Vr8~B$$`Wv}D=Qnt0X3_uv002ov JPDHLkV1kXC_cs6l literal 0 HcmV?d00001 diff --git a/textures/dryplants_grass_short.png b/textures/dryplants_grass_short.png new file mode 100644 index 0000000000000000000000000000000000000000..ad186e5d053c2f65c1880cfe6bcab088b8b423e4 GIT binary patch literal 868 zcmV-q1DpJbP)H;LN@>a0?kQ8K~y+TRg?Qp8c`6&_YKY) z^fcO-RjO|;nBiq%b zBs`E#d(-m>)9!I$xyBe7mAI-}JLwg*s2hsL6t7DMbQ1HTv#vuk=4ND8;@kd7{@08I zxNVg8O|qJt1?|&b94|{z(M!6;zVQSHTLzL@>0YAS&SX}#EM2S=oE8K@ZCH%rdBL1feFL&ssMX!1vp0Hf9jZI$FLT0+u9%-5+4c?B;AYLwY)$O?57tiWJVG{jCr7Jx)eYV zfbWN9xJE{%%!hQQdH)3DeB+Q64=MUG40k2IwGGvss{~|L;;P=A*l}h_yvqfk5p{|} zU<%2M#o%*!k})^|lx}}M&aSeS<%eo?0ZOYc*&uJSpE;~sbbKVJT z#yv{+mP7zfLNa3`ro&l53WA_EN-(hfye6ISI^+;#(+LD%c>`2rsK-2_5!Y{}67)06 z@NqYcgYA&KTS_Or#7JCK_42xzW=9!A5Cl)Cb8%&wj%{9C6ixWvOo{7yNRw4NJjSzvNz3%nHxK?Amhoq6Q=Atg+aS%SeU1cqfy4vibK|;Zkt9Lt6{fP uQ#o2=e`ASKg~=4He61#c0Q^fO27drpcte-VO&kvZ0000H;LN@>a0bfZ(K~y+T?U36_0#Ou(=MDBF zY|t*UqD>JxjyPM9CNXpxsjXs&3b_6hdaFk*g-nMmFip|5@a~ED(IpGAo{L0q3 za%e0t45wDc2SG+~Z6m-tjxJFEb<=MmAYa@2;xZE@0g!|Q1OxR%FzHHSkz=4{`rWpvMaK@w&bBTtHZ_JYg%@K!K867Wqd^BzA8VKa zp*&W%U|31ZUPhBA#w^_C4M3Rk=|!W-2veV$DyzhoBuYRTl+*A~O1Z=1BwRaT^WzKp zd4pj%HBIdo));0aMhOlHKPlavRk$lAU0jqv$#jwDmdbjLlnBF3E+)I#$n+lxc0(R$ sSepBFZ$Ew`447|A{uTUx=}&Cn9p8e1ig39>#sB~S07*qoM6N<$g6glt?*IS* literal 0 HcmV?d00001 diff --git a/textures/dryplants_hay.png b/textures/dryplants_hay.png new file mode 100644 index 0000000000000000000000000000000000000000..a919166a3608f9b7d4f5ee9553759eda8dfff7f5 GIT binary patch literal 605 zcmV-j0;2tiP)N2bPDNB8 zb~7$DE-^4L^m3s900G%aL_t(IPo-09Yui8&%uh;Ugw^;7Mg}FuD6Z_tvXGy$B5^qz z+X&PoI0-I=LjQ87d+S)W>Xd%yhlA7J?(EF$>I}fy|C|qtWoQ!S9{45g@jV0i-LN z9|yLMvHJ;6iG?q#TMTp* zq67o|P65%VL;x4qr3NN$kpM54i8@|ar-nve!o({>nH5iKoU9l;t?CF|4bS99=wGq4 zjWkKdAY;K2hHeF3Pv@YV*I27!<#sNSh${P#ELwOaIa`wW*F6{$3+J{#9c|qEI$ZJ~ z@N_uVCE{6wB?exFMqSS{P>37Z;^10ZSc(?W)tGX!XcPT1Ni&F*jUV3v&Wk2{Gjn59 zOQezl@*-U{c^~>6ji@__Csi8lUb`CiLB`3yphg<_B~DOokKHTspw0`ljBaxJPZ%7V rqwa@M9kx%!0{^%Ee**jo_|f+-`;&%287%=(00000NkvXXu0mjflOPDL literal 0 HcmV?d00001 diff --git a/textures/dryplants_juncus_02.png b/textures/dryplants_juncus_02.png new file mode 100644 index 0000000000000000000000000000000000000000..aebaacee23e433b744d2c90eeb13ce0c5e0b6d76 GIT binary patch literal 929 zcmV;S177@zP)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00SLKL_t(|UhP(0Q`%4zr2n8r3?HphvBpJ@`*|T?D09;N!9Sxp0o(OQV z{7C^c0^|W?g0u_JEpo+Z}oV~3hk#J#Oe=-3&9IYGo>dP?p zPM`l@1aM&4jt}yoDf3F-i{rDU3CQZv3cAPZ7{19vROWvHubt#?CBzmA7*BS2;73{W z8DPGB9~f8O?cA;pnYItDqX<&XdAxov8PBSnFg82S{-}nTB!B}*tHDX(wShVJm3|0Z z36<^=ayuc6F1C?Xy%1%;@jTNEpx6r;_odyCF(!A};!F}SE_#b~o1c80?*xo%OHUvn z&m*TUqpeB86EG&CHH;$J^rAgnH9(0>=AvR6 zpxE#sS9^>UyYh8Ha$}?8N3`rQ*4!Je6Zx|uY(W4oy4GJttm4MOD1k!HkGL!#tAwEL z35dj9P_zj0tsql}U;s}x1mv1Q6fU>T+eTsL31|$i+&(UOk&^s)_c6mdE+DOVv9`@R zUV4D+P5_auhmd(8yE4<%puPt&pTdX+u>T(&DN~*mqvJ(>}^dzTaVz?MF|xp zfQA->SoWi(g;8Ywplaqec%Q>|3gF;Af9l~#PodKd<9L)sy%EGYBjrB8$L~&^0ILN| z`+LhtYT5v-{y!05l|j3IPYSSm2d&mm3b4wc-M{|N2bPDNB8 zb~7$DE-^7j^FlWO00TcsL_t(|UhP&}PZ~iO<*8}YN24G&6$++NY~>CMs7twD7Dc>L zidJL#VxL;uq_?E$Tc7#^`cr%Q&8$$hX`t?dOZJ5lOQKSPJ(QLoCG-uauT$(4_F#JCqYhv zoCG-uvI%k$$U9O{L zT^XZ>sRb-njFQxmXt6d6`BQgC9m zJcU+2j7)P5t3^AWKAR=*L8zU1WHlf1yB;b1!oF8rk-x@KfvE|&2_RPuLJ*;l%a;xo z5vFybIw!BbR{t>+QiD9T zI0D3>-(Pfa&<#UtEn>T~jB3q~6C!2Ys$YHX&IvGjfV+O*u!Qa!fYJZY1Q=y-(%)wV lOnL>4o}U$9l)*`V|2Koz_pb7pSpfh5002ovPDHLkV1iXpvWWly literal 0 HcmV?d00001 diff --git a/textures/dryplants_juncus_inv.png b/textures/dryplants_juncus_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..4fad2f2a1a46ca4fa2a771cb671d96d6205e2190 GIT binary patch literal 685 zcmV;e0#f~nP)N2bPDNB8 zb~7$DE-^7j^FlWO00JpVL_t(IPkmBbZxT@u=E>Oj*uZjKZUQj{Ez80dmRlErg@s)x zY%hS7);5hV^+~IVx5W77lRv

gSxZWvih$$;nJ+&iUs1W{$_R!7g6!VN;Fe0q}FL z{rq(ewee`J`tFPA=GFj=Mba&P{BGm;G=Z-_rf%-~Z3_&Tbu5~JJMa|}^Ce4g3vX_U zJf2^bxmW93V8D}e8U6VV&oynIqhobs!;g|lNwURdhWoM=;$Eselxr!60(o+%bXVpWeI z-xi2&5c({ILQjM`Oz}-L4*iY<#z3aQ?3oTtbr>hj#KKA=SKG$^*cq784-tzfwCN65 zcXxp93JIh>4nyktQP3&2Qph%a$n6WLQNB5eq0o(>GPwJ2oW^=|B<1{oohMJW?>nOshw@*a2;@@j5>iskd?I7u-3$qL)ij{tpuWqz_0+m>5wzJ-i z*0JL_zpSCnKqgrlWE|bmW3&try;1D{k5{N4ZfwjJ60A`MQ#*^kk;Dao-q-aH^65BR Tl^#4MOgp`zKfDFdCQJEtMZBjpIqO-4hq+*NuXYQ;HS=D-Y-w3!DEXm& zy$(5eE`qva6aW%F4XVq4KCD|X<_${gu=X%-giaA{rhL)W7ium9`My%s5$yBCt!E@zY+09FA-Jw8lS=s@8tj zR$FPn`}fPVw1U!1{eJ1b9Tl|j>#k9N0nnKHby)Bs6dLXO$0)YA$ZEoY z6C^iMi=g^;><}Ri+L()itI#RE9y*W}l;tA^aXaOoprCvNLA_)idP>WD4DwcSJhW+3 z$^O_ABE%fyw#7xa(}so<1FZl%K~QNJ4ec@%L6b9Z0gy1TUpBiqIUW?jI)K@*m(_1`DbS(Laz3~tNtHzHInqfFI zuo4i+4sF$C08eq@M*${rHB`j~-TWCw+qvSdF8x>cY-#EywG|teDPR>BzRO+Pe^uy} zX7uDaBix!Gk)JpK8n+Qd^pp>vRGNDBzIz)106<2NO~A^xjGax4t*LL0fA(72fUG2qK33u3)(3=_zYoKcy|jhswf1M^5iFaa1q>uFODZMLpO z0eN~`0j#hrFBrJ`ifLg%B@MxPaT4~_%Sk%$7UVbkwUak7NWd6V*W&HCY=p5LCCn17 xki;UuItnm}2CR2NrV5G+(J`x_q~3oB{{SzW(xyG002ovPDHLkV1k{iNCN-> literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace.png b/textures/dryplants_reedmace.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7840f4b3b1e4090b77a04de1c82475030b23d9 GIT binary patch literal 734 zcmV<40wMj0P)N2bPDNB8 zb~7$DE-^7j^FlWO00LS`L_t(IPi0eUSK2@nH{3KzcbjVjx|>3Gn)OL?oi{## z{j<2jH%4*n-)^ic7{x^GcA6K@PfOXXp!XzeV%6;^4h9?l8r`H{WDm|A*)#jYt@M7& zc9>xPx3(gvS|Jq852&|eV1pRM1eZ%+w4nm_sl7Cs3G6=-$MrznM!Y-~8o_OCicxHb@`6`0OIF7+X0jJX#YE}dsfKZ@&DSRG=(3&KC0*-d@ASbbEg>f-R zpgC4>Gs|MHyNQ||CX%ou(A)&d!!TOp!_6!&6mYb?xs0$)xvQ>%D|Z_mn!@H&25dfK z1;Hf^4HM`d0VpnWT)@8ZmJ~_nt8Ns>R*<4hL!YEjaUx`H5T>`hLub^Bx=;i=JKY)O zQSOi;Qr4q!)*clU%y%M)Kdrl?hP>%s QSpWb407*qoM6N<$g5hIDUH||9 literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace_bottom.png b/textures/dryplants_reedmace_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4e441f43402486172a4f0da214c2dde8107d129b GIT binary patch literal 864 zcmV-m1E2hfP)N2bPDNB8 zb~7$DE-^7j^FlWO00P`eL_t(IPeqeySK3ezhVyHxt@WtLCbEb~02RTtT0mtD5D>DF z4FXuJ2TyC4@9pU?_3h-+>U_#w-e=yKJK;oY2ZjCy62cpB6c?%=Cx!<(X$3b!9v6xq z{ZSeR{S{QS7_J5(6wM8!Zx)`tZu30_#hr5XlT*JIdiFQIvtWPp+uL|$D(%iczBn8LLdMwLW~#v(422m~{Z?q?n+ zqK~b)${>Q2xPWYRl>uDAp}Nkp+z_BTh~b0mMOO0QQr={Dn$rXXZF|1H9&94hTYN6H z!syyO%T|~MP|yPC*h$p&IF9?|=o|k6s7+%yZFy0o-m#kZo6ERp1XL0!`dPTTR7-0 zqhy9&0PQCp`t3eW`}7J0&5ydXg^Cr1>}1fg5*YnDMo9^xW<^jp;>h;iF=toGCR&t0 zd`d!_?BY!JfRiYz^(l+iEDmG32a#;|f246Cc~LP!5D1W$m!3sEi82A2Tl4i6^9{I4RT{_fm6w{L!zqg zg+qW5ed~8TiqbOFNdhv>!i6b|x7Drt$DK3)z?h+%O-KFi5Aklc-4%OpIN0Wa=ozc$mh-%Aws^!|e7L_v1Xw zX%r$2(|>?s`k~4ZsFDllMqn#Du&fxnFw&Bk4ssCdLCi)3u=9AFWgs-?|B4%59@FRw z^MowAjSy;;`6x@RC@dv~PA!a~ya&BUK$RQ`z8As$lt=mU{VSka_MlRJ&Cu literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace_height_2.png b/textures/dryplants_reedmace_height_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc097818ced0f2888b22b26893a913c374c1f7a8 GIT binary patch literal 1544 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 Ug$}S+UH||907*qoM6N<$f(}6OnE(I) literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace_spikes.png b/textures/dryplants_reedmace_spikes.png new file mode 100644 index 0000000000000000000000000000000000000000..efab46890b04c9dd9bc57755eff9e6135509f209 GIT binary patch literal 575 zcmV-F0>J%=P)N2bPDNB8 zb~7$DE-^7j^FlWO00Fy6L_t(IPh(&hGN7;C=RZ-7{r~?z12P6_n%NnSp}BurEOrC2 z8PHPZgrT^rAJb5{3m-i?^8dn_4RB2pTYNDLSi80vy9>U5zy5#Up2hzgiemmB-?s>? zs5I6NMe*4atNzw!1wq7etKCo}@7_K5fAi+K|L0Dt{eOJdB(PkSmB9aY7jZEA{rijm zH?5lZuOJHQEo4cMf)gj!{a?L$>i-?qt|8u9-{f~Fk z|9}3}n*R(Slf5JuP+YNeUi*I#etdluSiH`f?|*(AzTn@bT}}UwZE5=t zmW)tihZ|5_=Lw96{|ueI32?C{d!hfa+FWpcew5??tD6e`pWHL?KSQgN=>I@@CWK_Q zJJ^7R4n#B+8!-Qm*5rVzIdg2q|AmuMAp9zGuKzw#2rs0R+x^ci_WoZ|=?B-4W61SC zNCBZHyTtW>RXx-IbV-oyDMb$dCrnC(8{n(R{NGa?VL*C`10u}OB|!#6m00`_Niu>f z0@;>T;0otQ=bIr607>RmAtXWG0vQsKV*Vc#ps?hbU*QgC`{nAu*#OYM1N-oH(Cz>L N002ovPDHLkV1h{>3Vr|p literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace_top.png b/textures/dryplants_reedmace_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6beb58506385712ab8cde29201b755b725f2abcd GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L2E{@KZ#fq~J= z)5S5w!hh~0NB=_(0wL+D?}3m*S}>=NhCOEM@(zK=g!q0yVy+aF$a z(>~tp5u?ej%=87%MOzjA?D=Q?AZtd`yDbVV=Zrq3zdkhaq|2SzlbsbWWJ@c)ZkRS* zn88G%`i8WU5HI)nZe!I$f9Ga%Fi7bzd`YoV__HI$VeQba!G{SzAsIee;3c= m;C#|!*C7RshL_7EKk#0w7I^wmqq_|l)(oDmelF{r5}E)prK?~7 literal 0 HcmV?d00001 diff --git a/textures/dryplants_reedmace_water.png b/textures/dryplants_reedmace_water.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2b06d93addbf28081a1574ebe58b33899c1673 GIT binary patch literal 675 zcmV;U0$lxxP)N2bPDNB8 zb~7$DE-^7j^FlWO00JLLL_t(IPgRp`bJ9Q*h4X)`Z*66y2-xycppMp0I9j0-NeUs! z1_&fAC`AUQ+G=N6L}HqmXrOl!k7pTqi?O9j?*WqaVf z#(H`TViZlXh(%2~SigtY%_;!~<>YYsK~pA(Y}+aD3&dy=aet{T`oPCZ&_4QSqA&0K42^6WV7G>TfM|1sLm$4i)V#E;%6sZmT7rYs|Wz5E9knKdE z)7pX8k&${Tl6|(VhKn4M3KQQ5jNAj0&BwF7tit=OAf&`HuC;R+0x_vbVBoK=# z0!z1*x+GjJNNv0inZL&2h5?C0!y-nmo=oZzMM!SEy*WxD{|AHyb&D(yRE7Wm002ov JPDHLkV1fv^DIx#> literal 0 HcmV?d00001 diff --git a/textures/dryplants_sickle.png b/textures/dryplants_sickle.png new file mode 100644 index 0000000000000000000000000000000000000000..31d21de10810abfcc1222fdbc176662d8f2f89bc GIT binary patch literal 260 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 Tyu9K&00000NkvXXu0mjfgmXUT literal 0 HcmV?d00001 diff --git a/textures/not_in_use/default_papyrus16b.png b/textures/not_in_use/default_papyrus16b.png new file mode 100644 index 0000000000000000000000000000000000000000..a70d312575027d4f63ce0b5ced713cf7e8f9cdfc GIT binary patch literal 593 zcmV-X0H;LN@>a0pdwSK~y+T zV{}aLH! zXjX=_PUZg~0Yxjb0Q)#UUl3c~!o(S-8K%L?o$)`ifgnCeFGE;StnG~6g#V^Ku0eLO zzRn;6z!FFRB%czX`+wQS1xzpljqRBJXHN>XWB_V125C~TG=&>r;A0&IG9-6$xEitx zKw_B_f+S%Eg6*)!Vt`GwLt56vkVu$IKo)?UoH-#l3+83Gmw^7(g}J~hJ=_^&x>c~N zN8XeOE@VGjyE6RGnH;8_Jt;&2q#oo2u)JeJfF?K)k-UH&h$v2m#sbJdhyn2d>L3Gj z+^pg~v;3p*#X`n}An&Y+!NI65h!4;J3HTLw&P0k*d-P}o*$4^5U{o(S#QAH346u%H z%JR+$0J{K~CTu|l0B!Sy84B|=h>zl>u);(mkbrHlPoPsmfGx-XC2Mor+$rIN2bPDNB8 zb~7$DE-^7j^FlWO00C%8L_t(IPnDC|PQp+ShWiwX#%L6bv6QrBu~l?v1yuiO>6SbbQ19)5dc?B>@WdP zflye4hi_$ohl(|EIsj9k?gTJzakZr@ZGj?o{%GYz|AtyGhO3NS|Mnk+A~ zja0)CqWK7*fml1al*a+r&z|d(09HHY=8oTAe{)dp?gmrPO#dDb;PEGG-+g8V*shCjJ4zx-D(kS43O@0000H;LN@>a1&T>TK~z{r zwU=3J8$}q$9aoSlMQssC6-P;v#yLt5pt`=}D~^xE=h|K$@fGK?9XpMiG(kYCJXC!G znv;@BDJ2yZ^r?L)LLl+L)r#X4fdr(8phAO`3I(XZ>F~`au#JL->I^FU?mYipO~g*geHLb%3WelZ{QSu2&~8Cu zg!-Bqa9kz;`&F{(`vIT@0A(OQ8F6aVorc&8g3P#Yuf5MXjp;GnKKY^Z#R9-AQN2-J zPywQ**wt_a;%0g${Fj(m!J+WUKz|(R{Z6ECT8aY5o;(`!ABiJl*o};>?msSEKDV7$ z0~7(M(MiX9#=KH!?aVu_bf}k6KrTklne}fMtH63SfNP{F?nV-;5y@%Y2ZLwgr2wF3 zV&Nhr0PCgTE2a44?!0 z2Gks(!<-_`18h(O5Zuyz%Jnx4{1N2P0Bv~&@G->QIszclNERXRmGn4`k|We5XlE@c zM-NE>OfuhZOA5e%S{Q5w0^0y$7>cNr09d+w3Ib5Al`bSl-8Nk1FHUy}@jG}KvH%)5 z3TQT&0^A7#KMzXiv8+8~9wQmZ)Je;EDKG%+JA-H1cB}!=!UqT!ssTeA#pI1`L@@Je z&H!*@?C?qnK!xJaEdXo+STi&eeiz)Iv6p#;h-Uq9IU4(RB3|SL?ByMS9 z8b2ue9{SheF=`u?;D)l?(W%&z!!x}lkhaJ1dypa%al$H`tP?iIsr`728ohGOeFFn1RsdEh zfGhO>0(2hF?&Jf2Uw{{Q6j%*LftAe&0Jd=yYHXv->d^9DP^pl-1=TH0j=1Tq?1tf? zR2drp0`EzjaxFj+&cn5c4FD;~FJA@(_HrxP4G-G2??Z>zG84WVj;!N5g}-@I+p)jD z^HDYcc)$>t(R=AJ?^*DK3yzH6O%wothd2u8qE3ncm=aA_p>k<#B%VQPo^;yiJV0mL zcW@POzY9yT5&%vBNJr~&?8^qRVu$uaSm#drW%W9L%C0MHaT=JKfEJW!`op&E^157&qy_Ew^R#I609Jj69n2mk_` zAn+XI`5#ExXX!E8j{!tlIcF7snq32LM1+S=3`nV-Fp@dU$Q}Byq`3k_yZQ0YIBy31K@xTzgA7)9V$9*QO03RSf87{zs90l-+l>pRelx|q=35@umP%A{|oSLh#RiljdsJ8LfdQ&6b9fcu-QK* z_Y6S9TLt$DKo@n?vz8%O0XVJXYv8^C#GJK-0b;BonK?XD527$ZU{!LH4m2hg{7odJAcaTNeU%(2{>2$Ykp fohX0=-#_*rv~J%WGP>1E00000NkvXXu0mjfcxtbY literal 0 HcmV?d00001 diff --git a/textures/not_in_use/default_papyrus32m.png b/textures/not_in_use/default_papyrus32m.png new file mode 100644 index 0000000000000000000000000000000000000000..0bda5840d5eca2a3b4633830fce523ecdba7aac9 GIT binary patch literal 1543 zcmV+i2Kf1jP)N2bPDNB8 zb~7$DE-^7j^FlWO00o0dL_t(oN41x0Oq*30#~B+!nAv8WFfOIp76!f03zyzYFT8De zY0ITR*+$ECwzS+t-M}Rx_ld(T>gHN*8(X%Zi3ujo7)|_OV*KP+6F+OR4}8FwDY|Hm z&v~0u-uE5lQnw~2wD09Szw>{d^M4L0DezH+bzxVR5}m5bLAjK44qwBc+6yv7x64q0 z=@n*>>)ZWRhYY&fF8RN5rw|FvS-x-rL%Jsbn8O1ANLEvTpI_$#lm*oun@>yt3IOC zf?AKGEw-2}b8-1ZMA-+iH&UkNRf5K0(-Nk~H?u9Gd&vUSbt{k(QjkaiqNe=DHyR8z(?C#X(0d-D(5i-emJ$DM&q{>YcQ7S*A2ZS1+d8Y zd;3xVCN#rjcOkGFAjY7G(g}cZz=C~%*@jYE?#4v4)QzkB`n~E@{0!cPEC3@%fr@}; zPbt7JL0}~)Va2jeMoaBvBEx`1%S!aNuXbZQaBNAO$6y_o0AV@XM!6SsWh-UZjz)&xkY)5@zs& zvVTJziSQgHv;dXS`TxAXV$Hv?>Nx;u%f-(@iX6lVb1jksTm?c}#zq-{%HpJa;OuC# zI6UG)^<4%SmPdTp%0a86x-DkK;I>=fiEAJc00eeG z;9nunPatLAPev=wVt^uh4rdpDnt{1HrqurT0_u)IJ2EuMkUi*5;{d#Rr6U-=uz9RtNVj+0_l_gy&Y&%oZ0NSu2z76>)pxY%# zWD_L(zhGujtHMyAz)OQ~)j}Vrgobo7UdRbj!0iQWfIQn)4d8Bw2d>=Rx*-m<4+Rnf z@D>4` z#8aRbJbfZcWJLP}_#+WO)sQU?z&R0Zrd>*hZs;Ze1$G7F1AiVmbaXH0fxpjhwRYGA tkNE%@PiC28x%D+lNLo8lU^8tq=RXhVrN!A8;(P!A002ovPDHLkV1h)YsQCZ@ literal 0 HcmV?d00001 diff --git a/textures/not_in_use/dryplants_cattailsG_m2.png b/textures/not_in_use/dryplants_cattailsG_m2.png new file mode 100644 index 0000000000000000000000000000000000000000..5af46890e04e0d24b3268e41fe0463f471b472f6 GIT binary patch literal 1641 zcmV-v2A27WP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000HpNkl6zyN=q-Ygu9RT&A zl_?M)jG_z)5C~%!E!5hsbv{{_lK=b_SqioZz_58dw|)~_uO8b@d>?y_4dc-j21NPnRCLrs{Qe#PD*%1% zaJs(VzQ)T-Y%?3hu5Y?v5x|e}=arkw`DI#@$Ji_1?W2&i##k)QuqMbBvRK81_J9kGsa_=^`V||} zbvwku35HL1E30UYgVX1J#Yz;ZIF09pq%|q(zzd%|GdbS84NAv74Pde`OKq&Shj8i4 zSQE^jp!-Fd10u+lhj?=~_~jkreMsRZHJa(YSlmapbva)Mt1_r?#fEb{(c&jw;guyS zm#9x#m1y#{g0hcd=i2zY)O8U67H=P+(sJ7b%5~qkp!W+VQ|E&0HU%VWCr0Ha;;>46mCxYM>>@}?PSwxQ8FF)x z)Dr|qeATX>1Z(+8U-#hU->k7lB%jGtxmFU51LWE#78~I@_w8iG4gE_TgKmKO^}!I6 z3Ba3sZv+oyKOwE1qBitmpjqx__Fe69_VkvBZd-sO{2DiO+NxavDUExBq%E`}rg8B_ zOD?oJ5ez9vmPF$x5JlaIOzji=g=H%FABPczbkY3IardyUsEptTQ;5xYjspLdVxkR*LL#8!z*r`J|Dt&(b z2Odtz_0Cb&touNOXs>qp==tSc)H(uROMkQP%lKO~J0d#c2=1!KU}h7_o+F`NAx`dU zwlG9-17u{&)zi5hVCGR^=0O|F7r3w8OgH8lx5&3YL)Cq7r`}J1?7)|`VelNKgnKCV zycqpVaA4G`C;<=(rwEg;u>X@S2hue+f;rL;-8W27)9(`fNHl*ut#zJSiKospxG8^8l>v{50TjbOjN9| zLe{!;E>@<|sG58H)cdUgM2J!bU^ZaBZcT*woB>cK-m#8WGpRtQpob2ypVwa7*+nN;K_yUG@I~;wb2cJ_Y~r00000NkvXXu0mjfR*3|e literal 0 HcmV?d00001 diff --git a/textures/not_in_use/dryplants_juncus_02_left.png b/textures/not_in_use/dryplants_juncus_02_left.png new file mode 100644 index 0000000000000000000000000000000000000000..8b23c7add8e647aa0ed2eaf70d40186d0c35978b GIT binary patch literal 444 zcmV;t0YmN2bPDNB8 zb~7$DE-^7j^FlWO00B5jL_t(IPt}smPQp+Sh5HI3P)Y=aMl4A~O8E&?D>Sr}@?)tj zmOvwkh>1}b#`qF$ec)s7CFn|NmrimsoB7V1nL7;g@8W#IgP6X5QD}}7?ko>05Gios zoMQdhha@qW1xL|Ensx@pJWm15V{yAKMu&GcyFQ1mo1x&xr~kXa!?TXs`1re^=WplM zyaI?5ZCXTYRKRM}`P;>1*o`~_x9u#=!$5*$q|h4kP_9m*jWJx7Q5~?DEK3xq4^pUG zF&0Rmp2tJf61Z7OP#g{wBaNn2*zdsff3{uGS;#tvr`HB#GmVOnjKdWqvw=;9FVQ5F?F8DC%$2)Ns*(5x&> mcYEHk@0000<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00CJ^L_t(IPpyz`Pl8|+hUp)aDWa{It0rbCBBGcWAqWDB%GL)p zU$$Pp^bh*fFTaCF*UJ*k)!EnsJml!Tm`Y{4EXHJBIF@l5o{y@cL%_&Vy(&sI`tD1ZNoL^%$yN z3OO}SzC$-npCQlME!-guu0WyVbC7Koyg`%3l1Zaxv8Z>KTSZp>CYY$~L2}aIn)@&Y zIfO1Qga1W!3ENnORvesifU?1$pvNKE#}L{}se(>J^V!Xil68o@8pBl(u9!)bSK+Ty z=ZktYL~%06Yca@9FnJ|%+t%OiMKuN6&!V9x;rd&Its_ro651wN2bPDNB8 zb~7$DE-^7j^FlWO00KlwL_t(YOWjmWbJ9Q<#($s`LV{AH*b)RGgpd*nErA3G4TKO{ zIuN0?t&XD}9LJL!*Bn7(p zP`L+KkOIrvo~O4<#yQ)C;bv*ms=bfvw=D=l0B7!#CD3%9r)%?N3d5`C+a=&NmMs?g zg>SPuiePrVw*+ZS_A!{{F@2*zGQz)rJD19K2-U|N>JCerefvJ9v!}M)XHn|0=uUWu zoiJX%*XXx~mBNwr?9aiy21PTz+}IrZ=dO+t@SIQwdnlhKFuy&4Y(^mI9Q|JEL{YU9 zbY1Hw=rL^+%wwX~d%Px!6{U066(Hzgl+7e6{ihhXMF=Vb#fm{Y^@$!5l3%{+n}M$~ z?@rSwbRy_Y4`@?~*en@-0HrpIa`Q1nGJCb41#xI`NY_KO_Oh`mWNk;9qa?Cw5a)9N z6`Mm&XCNC1m_r79E&#*fp>*TK9fkrI+6>B_I4X;4yEbrpe3$l|7J;a7c=xeH6f-Cq z5oAt?;@Shqr%~|7524#>cv;Aj_xZX{X5;bGLgS)e@AmF8T1jPmTD%j=K{lDf$ zM5^WiabX7vvD{N!BiAw02$Gs8Uj%U@fZuKIxjbIo)}R_uw4E%ZI)|>4LY3shbo^`h u*T?5iHYTnJYmmZhE~C|sN2bPDNB8 zb~7$DE-^7j^FlWO00C`DL_t(IPo0rnOTusz#&^|Cm!ex{hKhQTFS+S9*?hrrTfS^I zvqZzn!gyjAvztITN>2*2?)fy+}MJ0kwo)6j%yyUS8HhSr#%nE~I)I0jo0LG}0SMWa{3N zt}OG4TP$$RFbY}#y$K6h-$y~Aad^Drui!hq+DgFzN#qIDQ5r1i{UZ1=cPw2`D`+~9 ne&+uGhxjlbU}Ui{dTD$DsfLpa@E=Ay00000NkvXXu0mjfb~n*# literal 0 HcmV?d00001 diff --git a/textures/not_in_use/dryplants_juncus_03_right.png b/textures/not_in_use/dryplants_juncus_03_right.png new file mode 100644 index 0000000000000000000000000000000000000000..d43af2e0ce65ead54cffa56ac7ebb6e9fa77236e GIT binary patch literal 473 zcmV;~0Ve*5P)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00C7=L_t(IPpy*8PQpMGg<0wYC_jaQAR1FyC~Zhvt1txn3$!Vf zAee|hamP;M!syBu@Bw^OkDbB7!o}3Y*>p0w=bZ1}+f3#^&(qrgiJ$HlSNBvIi^ncL zJ{L@+4D#v4(+8Cm>!+J|d5;j@$Z)0-duvDAd?R%zu%csagMGE1^yHn3PYc~y4f9(W z=i@q5F9+{xpP!sKld#5+DXt!y$!?b2Wot>sJ#MfC#VRa&4n;h_5@>yKB{rubg1Llb zR=*4tTL9@-q1bseni)_-T0|yA)*6@KsF#g#3$QNhXxbw5ew}UN>>|e(Q}<4=99YW{ zVu~`zNCHjgCMN}rP8LQ`L_4gYX_laQYivrvZNmumK%xqaVHMqRiJ|uPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A0007SNklTJ;zuyv?f+ zRS8M3&C@&*Q@~)b4a9i>rI03ydPz@hTB$Fo>aC}KfPU2eJG%~4v^_*XRzf=-c4z+c zo7uIs1=q!^EEc@F{IwrHuc4G5|0Ce-XJh75EdOc+>ci+P;D>KEPDc@Z`F=F>UB9V- z31j7@4A1h(2Uj^{4fkB2wCS3CzrIOvo1J63QhEd?tamP>IoRgD1AB8hAuK@F^uikL z@j$ZfM%r+K4llR(o-=)X7xNGKp1-Yr>R-O$6d}`cLm$R@f;3Udk*L#g3iW|NwvYac zV)9Z(?IeaAoozjL#I1D6+6KB~2kl;M1DUqKZM7HW$Qdn##K^jf+p^}6S!%J$lrCX! zIlV8Le!RF+v0K@M*l-bn1oX}ZQkvK4c~8K*Pb%`a;+T(7>P)sVos~NYGDo{}>dRDR zhI(I6A8^do;|LNe5gCa{HGELp5!yXSNNZdWCv)cKt+`Xe{~aoH1*A>Z?*I>yVYcDN z$FFr~API3n3m{o_5pFNEehgAWfYOffmry>Qe?bcik!Yx7`eh9Vv(gSz&xwK=N20in z!;Uj>nWm2@1fd>ngH^w9!oM%p>@W=+RY@XB9Y4gn8ISFv|)iZ%T(O)a0 zFbz~{#=(RrH0AaF7DTc$%^-hz*7zwDqNLi+^SrmkT5^6_M3sr??a&~GQMaC;q6=tP yq5Dlft?K=ajs8%CX>H-i-a%83;(|miQuS}{dml&l4*}Nz0000N2bPDNB8 zb~7$DE-^4L^m3s900Co3L_t(IPnD8yOTthT#`l4wqCbNulL*r-S&k%Ms5#I%G>6jE zB%~DVMHC8s;7&dp=j?7|(S-~5aPR%`oaZ?j5ox@&%~ESV4`-##F?yGNllY)sPUdC# z5JUFJiN4BF2pgKJz_9z6TCk>H7HUq5o z0oDAh0E*sz5|ExWL(002ovPDHLkV1iJ8!My+g literal 0 HcmV?d00001 diff --git a/textures/not_in_use/dryplants_reedmace_02.png b/textures/not_in_use/dryplants_reedmace_02.png new file mode 100644 index 0000000000000000000000000000000000000000..8380c200c7f4436db8c03b0da5172a61574a133d GIT binary patch literal 910 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 TQ4I->00000NkvXXu0mjfKSE^8 literal 0 HcmV?d00001 diff --git a/textures/not_in_use/dryplants_reedmace_04.png b/textures/not_in_use/dryplants_reedmace_04.png new file mode 100644 index 0000000000000000000000000000000000000000..800cb964c247a8e19ed775b4d8e72a8a10f36c64 GIT binary patch literal 1554 zcmV+t2JQKYP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000GnNklHwRNi<%uPWo>jq_IyXh=yp{#|D!h}(j zL1D0h1i;hwA?EKI1Id8lu^mYLgpZ7fHcb?~e-uM3=i{*du$sT@>ahhqep+x#>UOU=H{=c z?iH!ibj=&o`gVy1EG#A{cJ{cA8{geU?%fJ-_wG%)apMPCTU(*c%~h3?{lrQQZvU0w#xOh(G6qks2FkeURk-ZwwG+0JGV^uo7 zcI|t*a^+i5$&czj6*tZ89zkbqm^W}T3?iafkZ9&@;03?oN!TV&;<5P+Q>O%0tct< z)E-fq$dA{kqQ*#>z7Whfs4r>)Q>R;~#V~>48TSs6Eugi<%miQBMm_OL4NRVD-qAv2 zu6~EevI6_i9zDUEJ3_5dv*&2OK~$hBL^Xk2jVUrNpaM=nQfKBc;X1cCmi377gEB@n zBRLm210Sk!T)<5;^0`M(=tx%*t``IBK{Wx_&&>By$4G_B!56l%DPWe|ov9|2%>e9D zb5yC0{Ha+l4JRCwm~2u2+%&$BsXA_DlwG__qhHr+Kz^>1IzpdP{A8m7Gz=Y}u3)9^ zJ9O5*0|1RW(iIvIpKYb~u?mWzN&vbiDyi9Dru&A7D4T_ZM&6Wq7Nm$@dE}UE6MYQi zYN=1`Jqwrpu9L8}977|2{HO#VA2$-ljGSl-eSkJNU8g5t1(eMIXfzaeN&xb4D`WL> z0MG{#Q8s=d9{Yg?Z2JMm0O-sdk$F<+2>}2NPa^}^4;a9H5INzN!nuYIngH|xQZa!2 z0R3W&{Qv+g=%2Dnk!1zN08Bs<`vC*k4={#m+hXNXWC?%}><8!%N$dw4vmb=hPN_Wm z0dg&%upjUQ_5+UD4~A0?sXY6^XvU=g><8!%RQ3Y~upb1Ib+T;sgHYOGRscUhe*mx_ z0EkuC4_G+%0|0de@B{RR3G4@$I3oIHKM2HYgB?I;1ky^SdsmJC$JwNhEVJWasnQxZ9f3mf)&^g7{Gpj80E7c$O+=ZexL#D2M`TF z_5%Q*H2VPq*bih&NMb+0jROGt0mk~p*0CQjfc*etQbhIx?0c~v;9-)0qVs`zZzw;& zVwQ37l@SxY!VglSg@gc(iSt35u(6z|$VfVBEp^X6zqTy=F8Xk&npAX_=HIx{2(?DP!<)Za; zVqCb8I3Glc&Ic314~%e?{IeMSRg?(UQa+~cvS@!bB?es->=qRbdng@r(qzI$Lw@so zFrBkgWc$n{Up_{66-B)2?Q3*ZQ6}J^XqSz$eI82s>gaT!g$$qh`kzU;DSX^Kgjph; z>NDS+b6N4wb*V$xe+oOCx&bwv0ssI207*qoM6N<$ Ef`T&2E&u=k literal 0 HcmV?d00001 diff --git a/textures/not_in_use/reedmace2.png b/textures/not_in_use/reedmace2.png new file mode 100644 index 0000000000000000000000000000000000000000..2450ceae8cf293666f8f64ed4e5e4b5c8349c687 GIT binary patch literal 2511 zcmV;=2{87FP)N2bPDNB8 zb~7$DE-^4L^m3s900~P;L_t(&L+x2@Ok39(zF?YAnx-sinuG)lCJ^$0jg2uFFb)`l zZN5JZi4E8ou=(%@*L(z0NK&QUmNnh7cA7dx+WxlFq&3>2b=uNt)09ryk4}oT{HUsB z|0Ye@{Sp z?#IK2zxwxWHNcQtom&US5=u8+ie-UehVYx~jTx&Z71KM0gfVa64Mw=?& zle6tr@;?1DyGE(+c` z%d?Zw7Iu-P4G+Y{ei#W@l=h(L$n!1PzABr7f58UR5eF0$6y%8p%?D}MK_Q>ZU9t}v zX}KuOi|)L+jSfXXRP2HAP{xHKmpWh|RCi1^h4?EyI77|co~RW(qIoY0$hpOhYJrH# zMIjJvJuy6A&jQ4n-07uYEzHCmN;|p`c%zMZvMD6K(hEc3TBUvYQnyl84J05fLTeWa z>$+e15dFC@?GBUiCP=&4%Ju*ZMlI`9Cd6;_LeIP*eQ*AFxIujZgkZuBT7ytnY!p7g z3yN!mo6*z6FI+!}UCx^u?vH8bh}t^4eM{_3(_J0{cMe(-A(T?#8z0m=tlB6vMA}-Ia;9zNH2KV%pS&PEMV&^0TQ7#3gI-N zv;fH#6uWg;2c@+d7!1@v+h7^D8PIJyki2hET07)oB#_EkM`KqJN0IP~6N=43Y$stF z!B$@x7&;F?+Rf@PQc-*7*hz?p4lXxz9p%13bT#^&h_|RioxLIP z!d0o{RxjIgS6tvbP76W^$=O>1ZgLhB2Zn&i$Ly0&rk)F`Vv`NpO#;`fQcE+ zf*yT7?M5V^KWK#0&HJFgTcfQ0g3$Jys z0NMkXRE_W{5%#ay6_OSlWnbpH5TwQw79U38-!Q+McD!p;$1gA)l8a3uRc!_U=&jG>zy#V)&%qD(-fI%9FqI! z8lK^pPlC8Finq9rf(}RC(3V+4Weq|#zbqR_=l|)cE|FhKWcU|Hk|NFcdJBh3+Q_O~ zpI69H%*WsFP}z;=fOI|W)LL^c3+5MP6O)O|C&N-XT;i^qN|T|5N#_AdGwc|xIOcO( zj*>21dczA9)_l1h-3Qkeg;QD|{NQY2XWSlJu;TO=N<@$-E$9&XHJt~_FnLQ8r0ZnU zUS-n~Zw&Bxfa*^*Kc_s8){k6N4>jk~0;FT2#eIYqF(qp|1^8BN%BD5{H4pHHh^`mF zh0PB_&>2E5ss~DgE72WV$8^wwF4H$@H!VQ#j(@^=9Zgf11A!WqtGdcZi}( zEMw@jW5y|>m?U0-gcXM7&%)-*JuntDu^{q!>Q9kqV9o@?6Z+jDAc2c;W6cAzi8}sW zML}=g^urXU3YXTqxo$FSf*76$V zd0=g(6Sk6en4QuqWUp=F0e&j;2gp-LY}^KmKI!XoY|IAh!48Oz*$?JrUJEQwWC*TJ+d=e8pG!nv8*B&qAU2tCp*J?VV1DfEe?WjB Z`~!f%`m(H(3WERu002ovPDHLkV1m4@sX+h$ literal 0 HcmV?d00001 diff --git a/textures/not_in_use/reedmace3.png b/textures/not_in_use/reedmace3.png new file mode 100644 index 0000000000000000000000000000000000000000..395a1102a815fecfa71acc17353a6061b7319972 GIT binary patch literal 3035 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 literal 0 HcmV?d00001 diff --git a/textures/not_in_use/reedtest.png b/textures/not_in_use/reedtest.png new file mode 100644 index 0000000000000000000000000000000000000000..34a7a052fc136ddd47ac61bf0249b4540d3243c4 GIT binary patch literal 463 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 bj~yLNdC?t;Vmq=}O)p?(Y-v<;2^;r6M_onw literal 0 HcmV?d00001 diff --git a/textures/old/default_grass_5_old.png b/textures/old/default_grass_5_old.png new file mode 100644 index 0000000000000000000000000000000000000000..20dcd2b45682a234de746ee55fab364034ed0aa9 GIT binary patch literal 710 zcmV;%0y+JOP)hw|;o{+`oO24o`{K zIRx?FYxoE1{Vxl8&6@*A^QH*P+s1liQh1kMLAl+^-($e(vrpuPT-L+m;@uk4VCPQ{ zd9H6BGT6K;ffwXKC)k*A9#(A=sey>teh!wqq5QJFb?;T(v~p(bD{p3$OY+^2IJa9M zT3%YQ$2U=Sld9djTra=L-sjBNG3Ah)xGN?I$$6cFkb0JvLbZ`neNtZqGkQVJ%(^xY z9651V{u)vobTym%?Q&ODBr3pn+^ z;kOq9J@ULYgYwl^{4{yNp3|ehSBq&@=`2Ey+h349k7B}_F_`C*mq$>j zO`_;WvD=FFbYlYXXU~NmHGAajQIj*5wMrNndlZHC7~)T!O6n|(wetw_%`q?w{4K{k zYC1W0RD0a8E4ix(b~+>2u!pgFHi&KiBj_zZdMw-R9uID%^5H>FUp8BVSQb&t_(O=7 s`#~PukE@{vdE)dvQuY9{onh_#1s*h-kxDaO0000007*qoM6N<$f-pWp`v3p{ literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_grass_short_old3.png b/textures/old/dryplants_grass_short_old3.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f6c5b15b36603fd2c12b9e4b570b162983f370 GIT binary patch literal 823 zcmV-71IYY|P)2zkgOXjj<-*U$#Z%$56&iTF1 zdER1~0m_f*>=21g7-G5`x-xUGjZk62$UeDa;EOuwQ3SrYK z#~lS#pZ@LU7LC+xSI*j~IEm(6Dr-k}N3mU>EuCy+dZ>IB|JqToS&h&3h#!3gz#x&c z)_2VHOc$5Tfb5Xat@(@&W24wbod?0#MU~IH2)?CuB-IM)K3g2qaqZbpr%;+OMUTz& zh&x;1Ed0upO2;e)L$kV|d334~dR18!I$_|=YbnkMeYV8%37a$mA1a*UP~esB(U{N* zstzHTgg#_+FA9CM_VkOD)qO^FQE@~=U2`emN*3|Pk77b|UG0;Kjqdu&FJIL>R<^0U z%VGxs zH`cZfRw2hEGrV`c3HzxofDy=m+aVW^B65#}_~PBt;{row(G=tQ5|(a;;dMZtVBrOi z(vRt_dSL%N{=UY~4uwxGDb)zVB=`%;w-16?q8iZLN2jNaw9pC31C%oHn~q!<(qKGL z!RYS;^;-`r3~({UCLn_Y4|3g1Um9t6FR2^h%y3~86Iz7a!*5MNb?67b2tO6}_jLck zD?+!}j)0XwmHVXFBe!b7j03Bq#UY<;;*a?Mlz$#X0)Xu6I`04g002ovPDHLkV1kAu BZsPy| literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_grass_short_old4.png b/textures/old/dryplants_grass_short_old4.png new file mode 100644 index 0000000000000000000000000000000000000000..571019a56cea72bfccd89346e21975a9acd19867 GIT binary patch literal 455 zcmV;&0XY7NP)H;LN@>a0We8KK~y+Tl~dbJ!axw+k0Zz> z2n~@ZU!*OC29b*r5)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00BoyL_t(IPo0w6PQpMGMfn90C^S$l1f)qN+$0o5T4^ceRM_JK}?is7R@0KZ`=9b;L(4L6bVZvOV5E@Mp=uaIm)3mxenIC zU?rf^XE0tBD5Tzxqi&?bt+8w8ASzKTyfRv|6iQkG4TC>zpgY;$S(H=;RW$|uHIJ&E zK+RxI1Bmi*7RIsyp&do{xd_S3z;^F~0gl@spn5L@u@i&fw^M9igago@I4bxSmym`m zN@^@TVC)w0wrxW(Sm>4*9zZPi-!r_pRhZKo`~c^Op4)%!&jA1c002ovPDHLkV1miS BwP^qV literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_juncus_02_right_old.png b/textures/old/dryplants_juncus_02_right_old.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9af80bef200f2b620e39ac2c3851a5b2cd5cfc GIT binary patch literal 481 zcmV<70UrK|P)N2bPDNB8 zb~7$DE-^7j^FlWO00CV|L_t(IPoymVN>HmK{9l#KiDr)+0Gwb>8nKJ|c`A>!7 zp2uwaco{&OKVY(|VDT+O>?i+--Hm({NW5;%F^l?$g+1pXSV?^S=)OR6@_2FXBi#^b zn1W~o@2^`Kw5K_Lu8f26RFTQDhUyyw*~vm5-1(x0!=5Gf?h?^t(d^zpprf}@)njNl zX%y6izxJ}}xU64?+>nwQN7YE8@A8msj?NkX;n+c0$0b16klU_(qfPX8StGe z7}Em0EJ}30q6V-?K)IU$uUw;Muqf*ZNOl%NF9=o88E7sS?cmvpqo`6BR9rVxsO`l2 zT{qj-Q3z26ITYy=N2bPDNB8 zb~7$DE-^7j^FlWO00DbRL_t(IPnA1}ceSd5>A}+oTwr?| zT?1$>-!#~L37;SGe)*GS0eMs0fH+WP!sh&HM-D6Cfa=hXJPV*V&p4NJZ4s*Jck0?METQkR~NQ}D_SJG zv-VzLAv`T>NZr))hdn=F)i09nI}-aN2bPDNB8 zb~7$DE-^7j^FlWO00C!7L_t(IPnDBfPr^VDh4)V=w^ERb#Go-s38AH-6oFo7X)To~ zn217n<^Ml;Y)4yo0E?3}yV>lV{m#skvAtM-hzNuI=S$L;i#u$$D&hm#JmxwLGnUXv3V>X|D$7wEiW++LHoZa!ig^>G$>cJVrbwLIT!8 z!17bXa8^ZooW=O9mRLv?(0qZABV0KY6RiyGMg50tKMql_j$1)f&r`)!pU1=S43f!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP*s|z zi(`m|fAWw2|LvJIEw&%~SzoeHGT?MQTR)TNC6i{8MxKVq7qKhcb}`-z?JHpZ!?o4J zTw&=Qu{?)@iE=O5j)+Ac;^ol1qJEblf}!b<;+hK`CCnF+dzNS%5xcvX?N7P{Z}Wd1 Z2FG_Fl7l9QwE}Hq@O1TaS?83{1ON>HOk)55 literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_bottom_old4.png b/textures/old/dryplants_reedmace_bottom_old4.png new file mode 100644 index 0000000000000000000000000000000000000000..8a39dceaff1d525e272e999f52afed575b445ab1 GIT binary patch literal 897 zcmV-{1AhF8P)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00R9vw)XSZ{zac{Af;V(s^*;2{hYTiqvWgeq_io5xjq!J@c9d( zri-ZVrcevAa^BB*Jw&wRCT-5KDd!1GW%<1CFERncSNt)vX zGyUvcct}?~BFEzk$?pbtQpoV7i$t!aDp6Fe00*veO-70L=6{PCu8iEB!!sB zjpT<&W<_#+k@poZvGO3BrkhO7N5=NET^eJ%rm}DJ6zJbpd83W9t*I!l^_Qf|Q^b!) z(HcwSYXM^B0EzM#@2WFos(#irH~Y>k2R{LMQDa@N5-Sa%Y>J$0)5lTWi`fcuS`X6r zXM?@+B)hgst~Srch4@r`yf1sCwE<2AV78WtT@0WYjS%$@5sG*7I5(@JLN32A3t*fb z%PqhFZ>_;ct+vFm<>6Emo!tdE7IjH;6vb+WXbK?RoTA=d!)dQ#KP*eXM@c&>g}RTV z)Zm~n)y@C3`bvCfNm;`bt^7Zu!C(Z;PK1RB$c^BqL9Ew++wESfCNsOAm3pjK9 z?3YxUtq_K&QEDRby0LDx zLPg+L?HI?}vx3&=MUt7pXF#ejLj3Ug;86auM7H;0TE_L*m?M7l>r+71o*{Z5Ga&Xq XLgLvOqSjl#00000NkvXXu0mjfI)R{T literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_bottom_right_old2.png b/textures/old/dryplants_reedmace_bottom_right_old2.png new file mode 100644 index 0000000000000000000000000000000000000000..d82ce5a24bafbf7212ccb4c5f0490e0bce91a00c GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP*uC9 zi(`m|fAWw2|LvW#mcFeQVB6?3|khb-2{d=da|1%xLMXv9j zn8V@hGxOyC15R`QbE<~@|C}A`X?|e2hwK{7T^HWipRiVGZ_J;l786`HRrw`bi>UNL zQ`Mk=ww5O?&F>BcGXFE?sgYn{XiIrs>)LC180aJhPgg&e IbxsLQ00=B$f&c&j literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_left_old2.png b/textures/old/dryplants_reedmace_left_old2.png new file mode 100644 index 0000000000000000000000000000000000000000..a66f882ad741f15eac05c5ea4edb9f7f8febe785 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP}M9? z7sn6_|KuP4|JyU~v{-y;Ud>qrZ(*-B8paAc9Quuz9o8w_{=cC>+Jd?3RZL^wf&<)@ zTlJnu2V8pa&wl%{pY|sNHXUMk^5;TO^Z%QseNQAAHd$`)cwHZ)I+K(0$)5>Hd;f2I zy6nkLh7^Z{iSPcuFcQAR%fOmYHdWbz&B^P8$EgJjKAPKEr60sE@!ZAjz$g)&!)bP4 dbHG=7hU~;guWoCGssmlg;OXk;vd$@?2>>-4XxRV& literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_old8.png b/textures/old/dryplants_reedmace_old8.png new file mode 100644 index 0000000000000000000000000000000000000000..404cac0bedbfcdbe2c02207f5ae59166903eae82 GIT binary patch literal 777 zcmV+k1NQuhP)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00MBD$kB zJ~M6$(5zWryPvjje6x&A;}!2i*P~UGyV2kQ0|s;0wkAM#w5PvjP4n7$*u=>oiK00v z0eU|T^=cC5pYuTmyZ)j8OrkMR7(!pZ9sUQnOQCE=Bw()>Md5l3#l~C!sQL+1ta;vF z`Z?&Xf^9n*0LuLc8jd0X@2n|o7-N5qI?Dl|`MiRoUV`^+FUuL6f0r3j3B#W|s9eM( zKsCpqo=@X_YY8L}9k!knkg&8qwBooL=F#+40)Y8r3uR+L0z`CFdyCNY2#8LHm0^t2 zZVc1VjA>9AbvwnG(3|#iE(jJpVGI0O5>z;>N^8BtOSH8+ml{RUd! z-tgP*&ARlxIZ~j1Q33!(AZuTMReJ%toxzp}X5ST{KV?9@@$qI&0!{`A?D|pYzD$!u zBx|kPbuLLWr?8{XqbRJs9A!}%#shm9u;ddygij7t{Xy=j_!&@;6C;cR-@k&mVMLzS=5}+F6sNE%T=q|9*EhmSab`;y@1lofP z>JLe*btZ5s;F{2ZL?n^x?vfl7qN&{(u6I{x(eSf4wo=%4WBiC3tSEZF(a*50WFv`O z5?KY)SaRfWP=uOr<3Nma(|^svk)2cm0mzB7uTtbq(S&~ieKIsy2_d&U00000NkvXX Hu0mjfOy5mr literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_right_old2.png b/textures/old/dryplants_reedmace_right_old2.png new file mode 100644 index 0000000000000000000000000000000000000000..c916975d766b3ecbfdd879fd3d15cf2744eb12dd GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP}Lky z7sn6_|KuP4|Jys~^%_t3b>4xGEql=kh6&Gh6d8YtWiUFhIACfG^QKj@|Efh+Ovrce zYW-Tj-pTY6?}8)$7jPtWXc#u#=HucIN^Viy;31vk5Hs`X{}n;WllC5Z!26{>Yw6qi z`%Ju(Oq=&IbTN7zYGj<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00IR`L_t(IPheW;K?^xIQ|HiRtV6kEY z=Ks-}9B>29o>=+6J}U^!2ZsU3i4kh-a0N@}wf_g<$JbYZ#c~X}{s$>QEO`I^;{Q#n zCj2jmazYr;>LmIEUtI^ zUsC1sKQ_}8Za^H+fQ%d$I6pti@&DCL1^-X(nFuie*@^izF8?P^PW~UAWAqOeZDkF9 z|FcV-;Rb|QD*azLDFqP*VVU~>5`fwa^x>0px|y0%JrNbi4i!%GN;`5SnZFKePm4gIAH-|Hu-f|DXT`Sy0;O{olVp j58;A|ZvQ>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP?e#l zi(`m|fAWw2|LvJoXDFRj=yvCo;B8i%$Jh1xZiC$d1*y;3F&f4S+mFpGVs>a_V8}E7 VDRSh|%n+bv22WQ%mvv4FO#s6TGzS0x literal 0 HcmV?d00001 diff --git a/textures/old/dryplants_reedmace_top_old3.png b/textures/old/dryplants_reedmace_top_old3.png new file mode 100644 index 0000000000000000000000000000000000000000..07f9539497a85b253c5c18bbbfc7ab9fe46f11e1 GIT binary patch literal 504 zcmVN2bPDNB8 zb~7$DE-^7j^FlWO00DGKL_t(IPnD8wO9DX@h5avvMkr=khA3&7T4rbzS!R)?W+nTQ zyKE|z;+F_||Gk~OV>3IEi}+za9A@srx#x@vfNRoG?^DAk?#3Vv{%KD_HO4hb_EKM zZ1d!|Ze~$xuLxa#O@N2&2q4=WkZQVdYD9#ty~M#oW&pV|(t1A)vdsZ$)%{&<#f7ds z#lS;m0J$>Ko#!2pZ4Ss>&LLl!7kaM~0uPx1lW(ABT#)(#DmK0nV++ z=zGeQDcvNijBIm2b&x>G3JYL)5Mv=1TfzT;V>5)ayC~9CuNWv;L1cBGt&IS4kX1b+ z0MWRMqPc)0a}oKv9b&l`MzUc8Da6L`Uu4vo5r8U_d*9Z*IMMCisimCe|5IbxTw!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P^!c=q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL{`R{j-xfP?eXb zi(`m|fAWw2|LvJoXDFRj=yvB_;3gq*eK#ZX@oni3$ xP)N2bPDNB8 zb~7$DE-^4L^m3s900Iw5L_t(IPgRp!Q`1lsh4X*J8(_y;+6rx~mRJ>)R)qCPw(7O2PXlgm;XqV1puSUDgX{ zk3w@zt@~Rv?yvkS_G=@f^k_pCyrHk&JG$^XeCX2dQuuLI33zSt^ry1c&JLf`_iMeAp!37B5;#9vA+M(_XF-i%J8`#pQ*1UUa!S(C-PEMGpRe&i zo}pfs6Sv6@!FKF4cn*wyWxG<~J~n8$|60~saPX4+UPTK0_|#&7iS?G}z$o?0l!@%9 z?-E@=Eaw7vOw0;7dx|n3vTduz2f!$Ct2B37T>nhF3^{Q`41l`w8 z`2ZNrtW6o|Ht8_r*cK513Tih|lQ+W=zQC?}$X#Zq8_b9!0u?SROCc$Sm%#h){g-{&H7B{tuEJUi