Code Monkey home page Code Monkey logo

Comments (22)

alerikaisattera avatar alerikaisattera commented on August 28, 2024 1

Some more suggestions:

  • Make Spongestone drop Dirt on digging
  • Add fences made from colorful wood

from dfcaverns.

alerikaisattera avatar alerikaisattera commented on August 28, 2024 1

Another: add all plants to "flora" group

from dfcaverns.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

When this is added, how would one use it to change restrictions to restriction by substrate?

from dfcaverns.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

alerikaisattera avatar alerikaisattera commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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.

FaceDeer avatar FaceDeer commented on August 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.