Comments (22)
Some more suggestions:
- Make Spongestone drop Dirt on digging
- Add fences made from colorful wood
from dfcaverns.
Another: add all plants to "flora" group
from dfcaverns.
Heh. I was going to ask you if you had any suggestions. :)
Yeah, the cooking recipes are kind of a mess. They were originally based on Dwarf Fortress' recipes, which were extremely simplistic - one ingredient input resulted in an "X biscuit", two resulted in "X stew", and three resulted in "X roast", as I recall. I tinkered around with giving them more unique names but the recipes remained pretty boring. I'll take a look at making it a little more cookbook-like.
What uses would you suggest for the primordial small plants?
I recall considering adding growth restrictions to those trees, but not wanting to be too limiting on player creativity. But yeah, it makes sense that you couldn't easily grow tower caps or whatever just anywhere. I'm going to ponder ways to allow players to transplant the substrates to other locations, so that if someone really wants to they can set up a tower cap garden in their base but it'll take a bit of extra effort to do so.
from dfcaverns.
What uses would you suggest for the primordial small plants?
As fuel, edibles (possibly in cooking)
I recall considering adding growth restrictions to those trees, but not wanting to be too limiting on player creativity. But yeah, it makes sense that you couldn't easily grow tower caps or whatever just anywhere. I'm going to ponder ways to allow players to transplant the substrates to other locations, so that if someone really wants to they can set up a tower cap garden in their base but it'll take a bit of extra effort to do so.
Ethereal provides a way to transplant soil (that's why I mentioned it). I think Black Caps, Nether Caps and Bloodthorns should not be limited, for they are extremophiles
from dfcaverns.
For cooking, I think that Minetest Game stuff (Wheat, Apples, Blueberries, Brown Mushrooms) can also be used. Making a cross-over with Farming Redo and Ethereal is also a good idea
from dfcaverns.
Sounds like I need to grab Ethereal and pick through it for ideas to borrow. :)
When I added compatibility with a hunger mod a while back I remember adding a few Primordial plants that did some hit point effects, but I couldn't think of anything else that worked well with the base game. Are there any popular magic mods you know of, perhaps? I could see if I could insert these things into alchemal recipes or whatnot.
from dfcaverns.
Sounds like I need to grab Ethereal and pick through it for ideas to borrow. :)
I think reimplementing stuff from Ethereal in this mod is not good, but using items from it for cooking and stuff is rather good idea.
Are there any popular magic mods you know of, perhaps? I could see if I could insert these things into alchemal recipes or whatnot.
Seems there is none of good quality
from dfcaverns.
All the single-node plants? Sure, that's easy enough.
Spongestone already turns to dirt when exposed to light so having it do that when dug makes sense.
Can add fences easily enough, there's a utility function in the default mod I can wrap.
from dfcaverns.
To keep track of which suggestions have been dealt with, I'm going to use thumbs-up emoticons on those.
I've been looking at ethereal and it seems the only soil type that can be transplanted is crystal soil, using a crystal shovel. Also there are more dirt types in Ethereal than in dfcaverns, and when I created the dirt types I was more focused on making them look thematic than about using them as biome indicators. So I think I'm going to take a different approach to tree growth restrictions in dfcaverns. I've centralized the "can sapling X grow here" methods into two files (one for df_trees and one for df_primordial_items) and I think to make the whole thing nice and unified I'll also do the same for df_farming's plants. I think I can expose "get biome" functions for the various dfcaverns layers, from there I think I can link the two together and restrict plant growth geographically. It's a little ugly because the dependency between the mod that carves the cavern and the mods that define the things that are placed in it is supposed to go the other way but I think it's doable.
from dfcaverns.
I've been looking at ethereal and it seems the only soil type that can be transplanted is crystal soil, using a crystal shovel.
False. Any "crumbly" block can be collected as-is with Crystal Shovel. I don't know why you think so, as that's not how it works and code for Crystal Shovel does not refer to Crystal Dirt in any way
I've been looking at ethereal and it seems the only soil type that can be transplanted is crystal soil, using a crystal shovel. Also there are more dirt types in Ethereal than in dfcaverns, and when I created the dirt types I was more focused on making them look thematic than about using them as biome indicators. So I think I'm going to take a different approach to tree growth restrictions in dfcaverns. I've centralized the "can sapling X grow here" methods into two files (one for df_trees and one for df_primordial_items) and I think to make the whole thing nice and unified I'll also do the same for df_farming's plants. I think I can expose "get biome" functions for the various dfcaverns layers, from there I think I can link the two together and restrict plant growth geographically. It's a little ugly because the dependency between the mod that carves the cavern and the mods that define the things that are placed in it is supposed to go the other way but I think it's doable.
Sorry, but this is a very bad idea. Substrate restriction is better in every way: it is consistent between mods and integrates with game elements from other mods. It is also a lot easier to implement and does not require these dirty hacks
In Ethereal, soil types are not biome indicators either, as same soil can be found in very different biomes
In addition, I am going to make a mod that has a machine for "converting" biomes and it won't work properly with this restriction
from dfcaverns.
Ah, I see the code now. I got the impression that it only worked with crystal soil from a Reddit thread I googled up on the subject. Ethereal doesn't have particularly thorough documentation and when you're reading the code of a large mod like this it's not easy to immediately see how it all works.
The "dirty hacks" would be required regardless, since the substrate nodes are also not defined in the tree and farming mods. The intention of splitting these mods up like this is to make it easier to pull these parts out for use in other modpacks, this is working as designed. They're not even that "dirty" - I'm adding an API to the tree and farming mods that allow other mods to add their own conditions to where these things will germinate.
Substrate restriction is not "better in every way" in every case. DF Caverns is one such case. There are a number of plants that appear in cavern types that don't have a unique substrate. black caps, torchspines, nethercaps, bloodthorns, these among other things all grow on common nodes that just happen to be placed in a cavern. Other substrate types are not unique to particular environments - you can find cave moss on level 1, level 2 and the sunless sea, floor fungus is found in black cap caverns as well as "dry" caverns that don't support large vegetation, and so forth. To make this strictly substrate-based I'd have to completely rework the substrates in ways that I have no particular desire to.
Please ease off a bit on insisting these things must be done a certain way. I'm implementing your suggestions when I agree that they fit nicely into how I envision dfcaverns, not out of obligation. I intend to make these features very configurable, if you really want to you should be able to use the APIs I'm developing to change plant growth restrictions however you like. I'll publish the branch where I'm working on this so you can see what I have in mind.
from dfcaverns.
In addition, I am going to make a mod that has a machine for "converting" biomes and it won't work properly with this restriction
Ah, that wasn't in your comment when I wrote up the response above. I see why you want me to do it in a particular way.
I still don't see it as workable, but perhaps I'll be able to accommodate your mod. How does it work? Large-scale replacement of ground nodes?
from dfcaverns.
I still don't see it as workable, but perhaps I'll be able to accommodate your mod. How does it work? Large-scale replacement of ground nodes?
Similar, but replaces various types nodes, including soil, flora, trees and other stuff if applicaple. It is going to take a lot of time to implement though
Please ease off a bit on insisting these things must be done a certain way. I'm implementing your suggestions when I agree that they fit nicely into how I envision dfcaverns, not out of obligation. I intend to make these features very configurable, if you really want to you should be able to use the APIs I'm developing to change plant growth restrictions however you like. I'll publish the branch where I'm working on this so you can see what I have in mind.
Making them configurable in settings is probably even better. Another option would be to check if Ethereal is in use and switch to substrate restriction if that's the case, for consistency
from dfcaverns.
Here's an example of what my current work on growth restrictions looks like: https://github.com/FaceDeer/dfcaverns/blob/restricted_plant_growth/df_trees/sapling_growth_conditions.lua . There's a similar file in df_primordial_items and df_farming, currently they contain the same checks that the master branch has since I'm just getting the framework ready.
The functions here are publicly accessible so other mods will be able to update these, for example you could have your mod add a check to particular trees for a nearby "biome machine" that's set to support those trees' development. Or add your own special substrates in your own mod, "black_cap_soil" for example, and then amend the black cap growabilty check to look for that.
Edit: Oh, that branch has barely been tested BTW, I made a branch to work on this feature so that I could commit in-progress code without worrying about breaking things. So if you switch over to it and things aren't growing right don't be surprised. Also I want to fiddle with the API a bit more to make the tree and farming functions more similar to each other.
from dfcaverns.
When this is added, how would one use it to change restrictions to restriction by substrate?
from dfcaverns.
Hypothetically, you could create a new type of soil called "mymod:black_cap_soil". Then set your mod to depend on df_caverns and do something like this:
local old_black_cap_growth_permitted = df_trees.black_cap_growth_permitted
local new_black_cap_growth_permitted = function(pos)
return minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "mymod:black_cap_soil"
end
df_trees.black_cap_growth_permitted = function(pos)
return old_black_cap_growth_permitted(pos) or new_black_cap_growth_permitted(pos)
end
The end result would be that black caps could grow under the old restrictions that came with df_caverns or they could grow on mymod:black_cap_soil placed anywhere.
If you wanted to remove the old restrictions you could replace the method without saving the old one.
Oh, since black caps currently use coal as their substrate, you might instead have it check if coal is underneath and mymod:black_cap_soil is simply nearby. This code is run once when the sapling is placed so you can afford to be a little expensive with the check.
from dfcaverns.
I decided to do it somewhat differently for what I need. By the way, when will the new version be available on Content DB?
from dfcaverns.
I'll update the Content DB version when the current spate of suggestions and other changes has been finished and thoroughly tested. Could be a couple of weeks, my next two weekends after this one are fully booked and fully testing DF Caverns can be quite the chore (I'll need to revisit every biome and grow every plant, in this case).
from dfcaverns.
Wow, it's been almost a month. I've been on quite a coding binge. :)
even though the branch is called "mineclone_compatibility", I've been adding a lot of new stuff over there as well. I just submitted a first pass at creating a ton of "achievements" via the awards mod (Mineclone's got achievements so I figured adding those would help DFCaverns fit in), and I added an ambient noises mod to bring some "life" to the caverns. Both of these are optional, you can leave them uninstalled and the rest of DFCaverns should work fine without them.
I think the end is in sight now. :)
from dfcaverns.
I just submitted a first pass at creating a ton of "achievements" via the awards mod (Mineclone's got achievements so I figured adding those would help DFCaverns fit in)
One problem with this addition is that awards
is listed as obligate dependency of df_achievements
and will be installed together with dfcaverns (even though both can be disabled). Is it possible to declare awards
as optional?
from dfcaverns.
Oh, how annoying. I like using the choice of installing sub-mods as a way of toggling options because it means you don't have to waste disk space and bandwidth on media you don't need, but oh well. This mod is already going to be doing weird things with its dependencies anyway.
I can make awards an optional dependency for df_achievements and then have df_achievements early-out and do nothing if awards isn't installed. I'll experiment with that.
from dfcaverns.
I believe all the suggestions from this thread have been addressed in one form or another. I'm going to close this issue, if you come up with more suggestions in the future we should start a new one.
from dfcaverns.
Related Issues (20)
- Dirt with Primordial Mycelium is not photosensitive HOT 2
- Repeatedly placing and breaking Plump Helmets and Spindlestems allows unlimited generation of their seeds HOT 7
- Dirt with Pimordial Mycelium drops itself when digged HOT 1
- Primordial Jungle Mushroom Sapling lacks "sapling" group HOT 1
- Add the new version to Content DB HOT 2
- Jungle grass and Primordial mycelium do not spread HOT 2
- Crash on startup when mesecons is in use HOT 1
- Remove flora group from plants HOT 1
- Crash from subterrane.get_cavern_value() returning nil in df_caverns/level3.lua HOT 4
- df_caverns should depend on "oil" and "mine_gas"
- just some texture warnings.
- Grow Quarry Bushes on Desert Sand Soil HOT 1
- Use of `string` instead of `tostring`
- crash when fake player dig slade
- Minetest Subgame
- dfcaverns in mineclone2 fails to move bedrock further down
- Field "alpha": Obsolete, only limited compatibility provided; replaced by "use_texture_alpha"
- proper tool use
- Tunnel Tube biome spawns unexpected nodes from other mods HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dfcaverns.